commandeProduits)) { foreach($this->commandeProduits as $p) { if(isset($p->produit) && $p->produit->vrac) { $this->montant_vrac += $p->prix * $p->quantite/1000 ; $this->poids_vrac += $p->quantite/1000 ; } else { $this->montant_pain += $p->prix * $p->quantite ; $this->poids_pain += $p->quantite * $p->produit->poids/1000 ; } } $this->montant = $this->montant_vrac + $this->montant_pain ; } } public static function getQuantiteProduit($id_produit, $commandes) { $quantite = 0 ; if(isset($commandes) && is_array($commandes) && count($commandes)) { foreach($commandes as $c) { foreach($c->commandeProduits as $cp) { if($cp->id_produit == $id_produit) $quantite += $cp->quantite ; } } } return $quantite ; } /* * relations */ public function getUser() { return $this->hasOne(User::className(), ['id'=>'id_user']) ; } public function getCommandeProduits() { return $this->hasMany(CommandeProduit::className(), ['id_commande'=>'id'])->with('produit') ; } public function getProduction() { return $this->hasOne(Production::className(), ['id'=>'id_production']) ; } public function getPointVente() { return $this->hasOne(PointVente::className(), ['id'=>'id_point_vente']) ; } /** * @inheritdoc */ public function rules() { return [ [['id_user', 'date', 'id_point_vente','id_production'], 'required','message'=>''], [['id_user', 'id_point_vente', 'id_production'], 'integer'], [['date', 'date_update','commentaire'], 'safe'] ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'id_user' => 'Id User', 'date' => 'Date', 'date_update' => 'Date Update', 'id_point_vente' => 'Point de vente', 'id_production' => 'Date de production', ]; } public function strListeVrac() { $str = '' ; foreach($this->commandeProduits as $cp) { if($cp->produit->vrac) { $str .= $cp->quantite.' '.Html::encode($cp->produit->diminutif).', ' ; } } return substr($str, 0, strlen($str) - 2) ; } }