Browse Source

Intégration du produit "Don" dans le formulaire de commande 'producer'

dev
Guillaume Bourgeois 5 years ago
parent
commit
fcddd590d1
3 changed files with 48 additions and 3 deletions
  1. +24
    -0
      common/models/Distribution.php
  2. +17
    -0
      common/models/Product.php
  3. +7
    -3
      producer/controllers/OrderController.php

+ 24
- 0
common/models/Distribution.php View File

$distribution->linkProduct($product) ; $distribution->linkProduct($product) ;
} }
} }
$distribution->linkProductGift() ;
} }
return $distribution ; return $distribution ;
$productDistribution->save(); $productDistribution->save();
} }
/**
* Lie le produit "Don" à la distribution
*/
public function linkProductGift()
{
$productGift = Product::getProductGift() ;
if($productGift) {
$productDistribution = ProductDistribution::searchOne([
'id_distribution' => $this->id,
'id_product' => $productGift->id
]) ;

if(!$productDistribution) {
$productDistribution = new ProductDistribution();
$productDistribution->id_distribution = $this->id;
$productDistribution->id_product = $productGift->id;
$productDistribution->active = 1;
$productDistribution->save() ;
}
}
}
/** /**
* Lie un point de vente aux jours de distribution futurs. * Lie un point de vente aux jours de distribution futurs.
* *

+ 17
- 0
common/models/Product.php View File

{ {
return self::searchCount() ; return self::searchCount() ;
} }
/**
* Retourne le produit "Don".
*
* @return Product
*/
public static function getProductGift()
{
$productGift = Product::find()
->where([
'product.id_producer' => 0
])
->andFilterWhere(['like','product.name','Don'])
->one() ;
return $productGift ;
}


} }

+ 7
- 3
producer/controllers/OrderController.php View File

// Produits // Produits
$productsArray = Product::find() $productsArray = Product::find()
->where([
'id_producer' => $this->getProducer()->id,
])
->orWhere(['id_producer' => $this->getProducer()->id,])
->orWhere(['id_producer' => 0,]) // produit "Don"
->joinWith(['productDistribution' => function($query) use($distribution) { ->joinWith(['productDistribution' => function($query) use($distribution) {
$query->andOnCondition('product_distribution.id_distribution = '.$distribution->id) ; $query->andOnCondition('product_distribution.id_distribution = '.$distribution->id) ;
}]) }])
$indexProduct = 0 ; $indexProduct = 0 ;
foreach($productsArray as &$product) { foreach($productsArray as &$product) {
if(is_null($product['photo'])) {
$product['photo'] = '' ;
}
$quantityOrder = Order::getProductQuantity($product['id'], $ordersArray) ; $quantityOrder = Order::getProductQuantity($product['id'], $ordersArray) ;
$product['quantity_ordered'] = $quantityOrder ; $product['quantity_ordered'] = $quantityOrder ;
$product['quantity_remaining'] = $product['quantity_max'] - $quantityOrder ; $product['quantity_remaining'] = $product['quantity_max'] - $quantityOrder ;
$product['index'] = $indexProduct ++ ; $product['index'] = $indexProduct ++ ;
} }
$json['products'] = $productsArray; $json['products'] = $productsArray;
} }

Loading…
Cancel
Save