Browse Source

Gestion commandes au montant total négatif

feature/export_comptable
Guillaume 4 years ago
parent
commit
16b3500a23
3 changed files with 41 additions and 22 deletions
  1. +15
    -6
      ShopBundle/Controller/Frontend/CartController.php
  2. +10
    -10
      ShopBundle/Services/Order/OrderUtils.php
  3. +16
    -6
      ShopBundle/Services/Order/OrderUtilsReductionTrait.php

+ 15
- 6
ShopBundle/Controller/Frontend/CartController.php View File

use Lc\ShopBundle\Model\OrderReductionCart; use Lc\ShopBundle\Model\OrderReductionCart;
use Lc\ShopBundle\Model\ProductFamily; use Lc\ShopBundle\Model\ProductFamily;
use Lc\ShopBundle\Services\UserUtils; use Lc\ShopBundle\Services\UserUtils;
use Lc\ShopBundle\Services\UtilsManager;
use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGenerator; use Symfony\Component\Routing\Generator\UrlGenerator;
{ {
protected $orderUtils ; protected $orderUtils ;
protected $userUtils ; protected $userUtils ;
protected $priceUtils ;
protected $router ; protected $router ;
protected $productFamilyRepository ; protected $productFamilyRepository ;
protected $orderProductRepository ; protected $orderProductRepository ;
protected $orderProducts = [] ; protected $orderProducts = [] ;




public function __construct(EntityManagerInterface $em, Security $security, MerchantUtilsInterface $merchantUtils, OrderUtilsInterface $orderUtils,
UserUtils $userUtils, UrlGeneratorInterface $router)
public function __construct(EntityManagerInterface $em, Security $security, MerchantUtilsInterface $merchantUtils,
UrlGeneratorInterface $router, UtilsManager $utilsManager)
{ {
parent::__construct($em, $security, $merchantUtils); parent::__construct($em, $security, $merchantUtils);
$this->orderUtils = $orderUtils ;
$this->userUtils = $userUtils ;
$this->orderUtils = $utilsManager->getOrderUtils() ;
$this->userUtils = $utilsManager->getUserUtils() ;
$this->priceUtils = $utilsManager->getPriceUtils() ;
$this->router = $router ; $this->router = $router ;
$this->productFamilyRepository = $this->em->getRepository($this->em->getClassMetaData(ProductFamilyInterface::class)->getName()) ; $this->productFamilyRepository = $this->em->getRepository($this->em->getClassMetaData(ProductFamilyInterface::class)->getName()) ;
$this->orderProductRepository = $this->em->getRepository($this->em->getClassMetaData(OrderProductInterface::class)->getName()) ; $this->orderProductRepository = $this->em->getRepository($this->em->getClassMetaData(OrderProductInterface::class)->getName()) ;
&& $this->orderUtils->isReductionCreditAllowAddToOrder($orderShop, $reductionCredit) && $this->orderUtils->isReductionCreditAllowAddToOrder($orderShop, $reductionCredit)
&& !$this->orderUtils->isReductionCreditAddedToOrder($orderShop, $reductionCredit)) { && !$this->orderUtils->isReductionCreditAddedToOrder($orderShop, $reductionCredit)) {


$this->orderUtils->createOrderReductionCredit($orderShop, $reductionCredit) ;
$this->addFlash('success', 'Votre avoir a bien été ajouté à votre panier.') ;
$return = $this->orderUtils->createOrderReductionCredit($orderShop, $reductionCredit) ;

if($return) {
$this->addFlash('success', 'Votre avoir a bien été ajouté à votre panier.') ;
}
else {
$this->addFlash('error', 'Vous ne pouvez pas effectuer cette action. Le montant de la commande est insuffisant.') ;
}
} }
else { else {
$this->addFlash('error', "Impossible d'effectuer cette action"); $this->addFlash('error', "Impossible d'effectuer cette action");

+ 10
- 10
ShopBundle/Services/Order/OrderUtils.php View File

if (!$updated) { if (!$updated) {
$orderShop->addOrderProduct($orderProductAdd); $orderShop->addOrderProduct($orderProductAdd);


if (isset($orderProductReductionCatalog)) {
$this->em->persist($orderProductReductionCatalog);

if ($persist) {
if (isset($orderProductReductionCatalog)) {
$this->em->persist($orderProductReductionCatalog);
}
$this->em->persist($orderProductAdd);
$this->em->persist($orderShop);
if ($persist) {
if (isset($orderProductReductionCatalog)) {
$this->em->persist($orderProductReductionCatalog);
} }
$this->em->persist($orderProductAdd);
$this->em->persist($orderShop);
} }


$return = true; $return = true;
return $orderProductsByProductFamily; return $orderProductsByProductFamily;
} }


public function isOrderShopPositiveAmount(OrderShopInterface $orderShop)
{
return $this->priceUtils->getTotalWithTax($orderShop) > 0 ;
}

public function eventOrderShopChangeQuantity(OrderShopInterface $orderShop) public function eventOrderShopChangeQuantity(OrderShopInterface $orderShop)
{ {


} }

} }

+ 16
- 6
ShopBundle/Services/Order/OrderUtilsReductionTrait.php View File

$orderReductionCart->setAppliedTo($reductionCart->getAppliedTo()); $orderReductionCart->setAppliedTo($reductionCart->getAppliedTo());
$orderReductionCart->setType($reductionCart->getType()); $orderReductionCart->setType($reductionCart->getType());


$this->em->persist($orderReductionCart);
$this->em->flush();
$orderShop->addOrderReductionCart($orderReductionCart) ;


return $orderReductionCart;
if($this->isOrderShopPositiveAmount($orderShop)) {
$this->em->persist($orderReductionCart);
$this->em->flush();
return $orderReductionCart ;
}

return false;
} }


public function isReductionCreditAllowAddToOrder($orderShop, $reductionCredit) public function isReductionCreditAllowAddToOrder($orderShop, $reductionCredit)
$orderReductionCredit->setUnit($reductionCredit->getUnit()); $orderReductionCredit->setUnit($reductionCredit->getUnit());
$orderReductionCredit->setBehaviorTaxRate($reductionCredit->getBehaviorTaxRate()); $orderReductionCredit->setBehaviorTaxRate($reductionCredit->getBehaviorTaxRate());


$this->em->persist($orderReductionCredit);
$this->em->flush();
$orderShop->addOrderReductionCredit($orderReductionCredit) ;


return $orderReductionCredit;
if($this->isOrderShopPositiveAmount($orderShop)) {
$this->em->persist($orderReductionCredit);
$this->em->flush();
return $orderReductionCredit;
}

return false ;
} }


/*public function getReductionCreditsAvailable($order) /*public function getReductionCreditsAvailable($order)

Loading…
Cancel
Save