|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?php
-
- namespace Lc\ShopBundle\Services\Price;
-
-
- use Doctrine\Common\Collections\Collection;
- use Lc\ShopBundle\Context\OrderProductInterface;
- use Lc\ShopBundle\Context\OrderShopInterface;
- use Lc\ShopBundle\Context\ProductFamilyInterface;
- use Lc\ShopBundle\Context\ProductInterface;
- use Lc\ShopBundle\Context\ProductPropertyInterface;
- use Lc\ShopBundle\Context\ReductionCatalogInterface;
-
- class OrderProductPriceUtils
- {
- use PriceUtilsTrait ;
-
- protected $productPriceUtils ;
-
- public function __construct(ProductPriceUtils $productPriceUtils)
- {
- $this->productPriceUtils = $productPriceUtils ;
- }
-
- public function getPrice(OrderProductInterface $orderProduct)
- {
- return $orderProduct->getPrice();
- }
-
- public function getPriceWithTax(OrderProductInterface $orderProduct)
- {
- return $this->applyTax(
- $this->getPrice($orderProduct),
- $orderProduct->getTaxRate()->getValue()
- );
- }
-
- public function getPriceWithTaxAndReduction(OrderProductInterface $orderProduct)
- {
- return $this->applyReductionCatalog(
- $orderProduct,
- $this->getPrice($orderProduct),
- $this->getPriceWithTax($orderProduct)
- );
-
- }
-
- public function getTotal(OrderProductInterface $orderProduct)
- {
- return $orderProduct->getQuantityOrder() * $this->getPrice($orderProduct);
- }
-
-
- public function getTotalWithReduction(OrderProductInterface $orderProduct)
- {
- return $this->applyReductionCatalog(
- $orderProduct,
- $this->getTotal($orderProduct),
- $this->getTotalWithTax($orderProduct),
- null,
- false
- );
- }
-
- public function getTotalWithTax(OrderProductInterface $orderProduct)
- {
- return $this->applyTax(
- $this->getTotal($orderProduct),
- $orderProduct->getTaxRateInherited()->getValue()
- );
- }
-
- public function getTotalWithTaxAndReduction(OrderProductInterface $orderProduct)
- {
- return $this->applyReductionCatalog(
- $orderProduct,
- $this->getTotal($orderProduct),
- $this->getTotalWithTax($orderProduct)
- );
- }
-
- //inclus toujours les réductions catalogues
- public function getTotalTaxes(OrderProductInterface $orderProduct){
- return $this->getTotalWithTaxAndReduction($orderProduct) - $this->getTotalWithReduction($orderProduct);
- }
- }
-
|