<?php

namespace common\models;

use yii\base\Object;

use Yii;

/**
 * This is the model class for table "production_produit".
 *
 * @property integer $id
 * @property integer $id_production
 * @property integer $id_produit
 * @property integer $actif
 */
class ProductionProduit extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'production_produit';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['id_production', 'id_produit', 'actif','quantite_max'], 'integer']
        ];
    }
    
    public function getProduit() 
    {
    	return $this->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 ;
    }
}