hasOne(Produit::className(), ['id'=>'id_produit']) ; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'id_production' => 'Id Production', 'id_produit' => 'Id Produit', 'actif' => 'Actif', 'quantite_max' => 'Quantité max', ]; } public static function findProduits($id_production) { $production_produits = ProductionProduit::find()->with('produit')->where(['id_production'=>$id_production])->all() ; $arr_production_produits = [] ; $commandes = Commande::find() ->with('commandeProduits','user') ->joinWith('production') ->where(['production.id'=>$id_production]) ->orderBy('date ASC') ->all() ; foreach($production_produits as $pp) { //$arr_production_produits[$pp->id_produit] = (int) $pp->actif ; //$arr_production_produits[$pp->id_produit] = $pp ; $arr_production_produits[$pp->id_produit] = [ 'actif'=> (int) $pp->actif, 'epuise' => (int) $pp->produit->epuise, 'vrac' => (int) $pp->produit->vrac, 'quantite_max' => $pp->quantite_max, 'quantite_commandee' => Commande::getQuantiteProduit($pp->id_produit, $commandes), 'quantite_restante' => $pp->quantite_max - Commande::getQuantiteProduit($pp->id_produit, $commandes) ] ; } return $arr_production_produits ; } }