Browse Source

Refactoring/traduction modèle ProductionProduit > ProductsDistribution

dev
Guillaume Bourgeois 6 years ago
parent
commit
798323e8f0
1 changed files with 46 additions and 39 deletions
  1. +46
    -39
      common/models/ProductDistribution.php

common/models/ProductionProduit.php → common/models/ProductDistribution.php View File

@@ -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;
}

}

Loading…
Cancel
Save