|
|
@@ -45,11 +45,11 @@ use Yii; |
|
|
|
* This is the model class for table "production_produit". |
|
|
|
* |
|
|
|
* @property integer $id |
|
|
|
* @property integer $id_production |
|
|
|
* @property integer $id_produit |
|
|
|
* @property integer $id_distribution |
|
|
|
* @property integer $id_product |
|
|
|
* @property integer $actif |
|
|
|
*/ |
|
|
|
class ProductionProduit extends \yii\db\ActiveRecord |
|
|
|
class ProductDistribution extends \yii\db\ActiveRecord |
|
|
|
{ |
|
|
|
|
|
|
|
/** |
|
|
@@ -57,7 +57,7 @@ class ProductionProduit extends \yii\db\ActiveRecord |
|
|
|
*/ |
|
|
|
public static function tableName() |
|
|
|
{ |
|
|
|
return 'production_produit'; |
|
|
|
return 'product_distribution'; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -66,7 +66,7 @@ class ProductionProduit extends \yii\db\ActiveRecord |
|
|
|
public function rules() |
|
|
|
{ |
|
|
|
return [ |
|
|
|
[['id_production', 'id_produit', 'actif', 'quantite_max'], 'integer'] |
|
|
|
[['id_distribution', 'id_product', 'active', 'quantity_max'], 'integer'] |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
@@ -74,9 +74,9 @@ class ProductionProduit extends \yii\db\ActiveRecord |
|
|
|
* Relations |
|
|
|
*/ |
|
|
|
|
|
|
|
public function getProduit() |
|
|
|
public function getProduct() |
|
|
|
{ |
|
|
|
return $this->hasOne(Produit::className(), ['id' => 'id_produit']); |
|
|
|
return $this->hasOne(Product::className(), ['id' => 'id_product']); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -86,49 +86,56 @@ class ProductionProduit extends \yii\db\ActiveRecord |
|
|
|
{ |
|
|
|
return [ |
|
|
|
'id' => 'ID', |
|
|
|
'id_production' => 'Id Production', |
|
|
|
'id_produit' => 'Id Produit', |
|
|
|
'actif' => 'Actif', |
|
|
|
'quantite_max' => 'Quantité max', |
|
|
|
'id_distribution' => 'Distribution', |
|
|
|
'id_product' => 'Produit', |
|
|
|
'active' => 'Actif', |
|
|
|
'quantity_max' => 'Quantité max', |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Retourne les options de base nécessaires à la fonction de recherche. |
|
|
|
* |
|
|
|
* @return array |
|
|
|
*/ |
|
|
|
public static function defaultOptionsSearch() { |
|
|
|
return [ |
|
|
|
'with' => ['produit','distribution'], |
|
|
|
'join_with' => [], |
|
|
|
'orderby' => '', |
|
|
|
'attribute_id_producer' => '' |
|
|
|
] ; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Recherche les enregistrement ProductionProduit liés à une production. |
|
|
|
* |
|
|
|
* @param integer $id_production |
|
|
|
* @param integer $idDistribution |
|
|
|
* @return array |
|
|
|
*/ |
|
|
|
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) { |
|
|
|
if (isset($pp->produit)) { |
|
|
|
$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) |
|
|
|
]; |
|
|
|
public static function searchByDistribution($idDistribution) |
|
|
|
{ |
|
|
|
$arrayProductsDistribution = ProductDistribution::searchAll([ |
|
|
|
'id_distribution' => $idDistribution |
|
|
|
]) ; |
|
|
|
|
|
|
|
$orders = Order::searchAll([ |
|
|
|
'distribution.id' => $idDistribution |
|
|
|
]) ; |
|
|
|
|
|
|
|
foreach ($arrayProductsDistribution as $productDistribution) { |
|
|
|
if (isset($productDistribution->product)) { |
|
|
|
$arrayProductsDistribution[$productDistribution->id_product] = [ |
|
|
|
'active' => (int) $productDistribution->active, |
|
|
|
'epuise' => (int) $productDistribution->product->unavailable, |
|
|
|
'quantity_max' => $productDistribution->quantity_max, |
|
|
|
'quantity_order' => Order::getProductQuantity($productDistribution->id_product, $orders), |
|
|
|
'quantity_remaining' => $productDistribution->quantity_max - Order::getProductQuantity($productDistribution->id_product, $orders) |
|
|
|
]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return $arr_production_produits; |
|
|
|
return $arrayProductsDistribution; |
|
|
|
} |
|
|
|
|
|
|
|
} |