hasOne(Etablissement::className(), ['id' => 'id_etablissement']); } /** * @inheritdoc */ public function rules() { return [ [['date'], 'required'], [['date'], 'safe'], [['actif'], 'integer'] ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'date' => 'Date', 'actif' => 'Actif', ]; } /* * Relations */ public function getCommande() { return $this->hasMany(Commande::className(), ['id_production' => 'id']); } public function getProductionProduit() { return $this->hasMany(ProductionProduit::className(), ['id_production' => 'id']); } /** * Retourne si un produit est actif ou non. * * @param integer $id_produit * @return boolean */ public function produitActif($id_produit) { if ($id_produit && isset($this->productionProduit) && count($this->productionProduit) > 0) { foreach ($this->productionProduit as $production_produit) { if ($production_produit['id_produit'] == $id_produit && $production_produit['actif']) { return true; } } } return false; } /** * Initialise un jour de production. * * @param string $date * @return Production */ public static function initProduction($date) { $production = null ; if ($date != '') { $production = Production::find() ->where(['date' => $date]) ->andWhere(['id_etablissement' => Yii::$app->user->identity->id_etablissement]) ->one(); if (!$production) { $production = new Production; $production->date = $date; $production->livraison = 1; $production->id_etablissement = Yii::$app->user->identity->id_etablissement; $production->save(); } } // production_point_vente à définir s'ils ne sont pas initialisés if ($production) { $count_productions_point_vente = ProductionPointVente::find()-> where([ 'id_production' => $production->id ]) ->count(); if (!$count_productions_point_vente) { ProductionPointVente::setAll($production->id, true); } } return $production ; } }