Browse Source

Correctifs

packProduct
Guillaume 3 years ago
parent
commit
214ea019f0
6 changed files with 53 additions and 15 deletions
  1. +8
    -6
      Builder/Credit/CreditHistoryBuilder.php
  2. +34
    -6
      Builder/Order/OrderShopBuilder.php
  3. +2
    -2
      Controller/ControllerTrait.php
  4. +1
    -1
      Repository/Product/ProductCategoryRepositoryQuery.php
  5. +7
    -0
      Repository/Product/ProductCategoryStore.php
  6. +1
    -0
      Resources/translations/admin.fr.yaml

+ 8
- 6
Builder/Credit/CreditHistoryBuilder.php View File

@@ -40,12 +40,12 @@ class CreditHistoryBuilder
): CreditHistoryInterface {
$creditHistory = $this->creditHistoryFactory->create($type, $userMerchant);

$amount = isset($params['amount']) ?? null ;
$meanPayment = isset($params['meanPayment']) ?? null ;
$reference = isset($params['reference']) ?? null ;
$comment = isset($params['comment']) ?? null ;
$orderPayment = isset($params['orderPayment']) ?? null ;
$orderRefund = isset($params['orderRefund']) ?? null ;
$amount = isset($params['amount']) ? $params['amount'] : null ;
$meanPayment = isset($params['meanPayment']) ? $params['meanPayment'] : null ;
$reference = isset($params['reference']) ? $params['reference'] : null ;
$comment = isset($params['comment']) ? $params['comment'] : null ;
$orderPayment = isset($params['orderPayment']) ? $params['orderPayment'] : null ;
$orderRefund = isset($params['orderRefund']) ? $params['orderRefund'] : null ;

$creditHistory->setType($type);
$creditHistory->setUserMerchant($userMerchant);
@@ -56,6 +56,8 @@ class CreditHistoryBuilder
$creditHistory->setOrderPayment($orderPayment);
$creditHistory->setOrderRefund($orderRefund);

$this->save($creditHistory);

return $creditHistory;
}


+ 34
- 6
Builder/Order/OrderShopBuilder.php View File

@@ -4,8 +4,10 @@ namespace Lc\CaracoleBundle\Builder\Order;

use App\Builder\Distribution\DistributionBuilder;
use Doctrine\ORM\EntityManagerInterface;
use Lc\CaracoleBundle\Builder\Credit\CreditHistoryBuilder;
use Lc\CaracoleBundle\Builder\File\DocumentBuilder;
use Lc\CaracoleBundle\Event\Order\OrderShopChangeStatusEvent;
use Lc\CaracoleBundle\Factory\Credit\CreditHistoryFactory;
use Lc\CaracoleBundle\Factory\File\DocumentFactory;
use Lc\CaracoleBundle\Factory\Order\OrderPaymentFactory;
use Lc\CaracoleBundle\Factory\Order\OrderProductFactory;
@@ -15,8 +17,10 @@ use Lc\CaracoleBundle\Factory\Order\OrderReductionCreditFactory;
use Lc\CaracoleBundle\Factory\Order\OrderShopFactory;
use Lc\CaracoleBundle\Factory\Order\OrderStatusHistoryFactory;
use Lc\CaracoleBundle\Model\Address\AddressInterface;
use Lc\CaracoleBundle\Model\Credit\CreditHistoryModel;
use Lc\CaracoleBundle\Model\File\DocumentInterface;
use Lc\CaracoleBundle\Model\File\DocumentModel;
use Lc\CaracoleBundle\Model\Order\OrderPaymentModel;
use Lc\CaracoleBundle\Model\Order\OrderProductInterface;
use Lc\CaracoleBundle\Model\Order\OrderReductionCartInterface;
use Lc\CaracoleBundle\Model\Order\OrderReductionCreditInterface;
@@ -34,6 +38,7 @@ use Lc\CaracoleBundle\Repository\Order\OrderProductStore;
use Lc\CaracoleBundle\Repository\Order\OrderShopStore;
use Lc\CaracoleBundle\Repository\Order\OrderStatusStore;
use Lc\CaracoleBundle\Repository\Product\ProductFamilyStore;
use Lc\CaracoleBundle\Resolver\MerchantResolver;
use Lc\CaracoleBundle\Resolver\OpeningResolver;
use Lc\CaracoleBundle\Resolver\OrderShopResolver;
use Lc\CaracoleBundle\Solver\Order\OrderProductReductionCatalogSolver;
@@ -42,6 +47,7 @@ use Lc\CaracoleBundle\Solver\Price\PriceSolver;
use Lc\CaracoleBundle\Solver\Product\ProductSolver;
use Lc\CaracoleBundle\Statistic\Product\ProductsSalesStatistic;
use Lc\SovBundle\Model\User\UserInterface;
use Lc\SovBundle\Translation\FlashBagTranslator;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;

@@ -63,6 +69,8 @@ class OrderShopBuilder
protected OrderShopResolver $orderShopResolver;
protected OrderProductReductionCatalogSolver $orderProductReductionCatalogSolver;
protected DistributionBuilder $distributionBuilder;
protected MerchantResolver $merchantResolver;
protected CreditHistoryBuilder $creditHistoryBuilder;

public function __construct(
EntityManagerInterface $entityManager,
@@ -80,7 +88,9 @@ class OrderShopBuilder
ProductSolver $productSolver,
OrderShopResolver $orderShopResolver,
OrderProductReductionCatalogSolver $orderProductReductionCatalogSolver,
DistributionBuilder $distributionBuilder
DistributionBuilder $distributionBuilder,
MerchantResolver $merchantResolver,
CreditHistoryBuilder $creditHistoryBuilder
) {
$this->entityManager = $entityManager;
$this->orderShopStore = $orderShopStore;
@@ -98,6 +108,8 @@ class OrderShopBuilder
$this->orderShopResolver = $orderShopResolver;
$this->orderProductReductionCatalogSolver = $orderProductReductionCatalogSolver;
$this->distributionBuilder = $distributionBuilder;
$this->merchantResolver = $merchantResolver;
$this->creditHistoryBuilder = $creditHistoryBuilder;
}

public function create(
@@ -121,14 +133,24 @@ class OrderShopBuilder
UserInterface $user = null,
VisitorInterface $visitor = null
): OrderShopInterface {
$cart = $this->orderShopStore
->setSection($section)
->getOneCartCurrent($user, $visitor);
$this->orderShopStore->setSection($section);

$cartUser = $this->orderShopStore->getOneCartCurrent($user);
$cartVisitor = $this->orderShopStore->getOneCartCurrent(null, $visitor);

if ($cartUser && $cartVisitor && $cartUser->getId() != $cartVisitor->getId()) {
$cart = $this->merge($cartUser, $cartVisitor);
} else {
$cart = $cartUser ?: $cartVisitor;
}

if (!$cart) {
$cart = $this->create($section, $user, $visitor);
}

// @TODO : obligé de faire ça sinon le panier ne se met pas à jour quand on ajoute des produits. Pourquoi ?
$this->entityManager->refresh($cart);

return $cart;
}

@@ -221,7 +243,7 @@ class OrderShopBuilder
);

if ($persist) {
$this->entityManager->persist($orderProduct);
$this->entityManager->update($orderProduct);
}

$updated = true;
@@ -287,7 +309,7 @@ class OrderShopBuilder
): OrderShopInterface {
if ($orderShop1 && $orderShop2) {
foreach ($orderShop2->getOrderProducts() as $orderProduct) {
$orderProductAlreadyInCart = $orderShop1->hasOrderProductAlreadyInCart($orderProduct);
$orderProductAlreadyInCart = $this->orderShopSolver->hasOrderProductAlreadyInCart($orderShop1, $orderProduct);

if ($orderProductAlreadyInCart) {
if ($orderProduct->getQuantityOrder() > $orderProductAlreadyInCart->getQuantityOrder()) {
@@ -320,6 +342,12 @@ class OrderShopBuilder

$orderShop->addOrderPayment($orderPayment);

if($meanPayment == OrderPaymentModel::MEAN_PAYMENT_CREDIT) {
$this->creditHistoryBuilder->create(CreditHistoryModel::TYPE_DEBIT, $this->merchantResolver->getUserMerchant(), [
'orderPayment' => $orderPayment
]);
}

if ($this->orderShopResolver->isPaid($orderShop)) {
$nextStatus = OrderStatusModel::ALIAS_PAID;
} else {

+ 2
- 2
Controller/ControllerTrait.php View File

@@ -144,9 +144,9 @@ trait ControllerTrait
return $this->get(SectionResolver::class)->getCurrent();
}

public function getSectionCurrentDevAlias(): string
public function getSectionCurrentSlug(): string
{
return $this->getSectionCurrent()->getDevAlias();
return $this->getSectionCurrent()->getSlug();
}

public function getCartCurrent(): OrderShopInterface

+ 1
- 1
Repository/Product/ProductCategoryRepositoryQuery.php View File

@@ -4,6 +4,7 @@ namespace Lc\CaracoleBundle\Repository\Product;

use Knp\Component\Pager\PaginatorInterface;
use Lc\CaracoleBundle\Repository\SectionRepositoryQueryTrait;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

class ProductCategoryRepositoryQuery extends AbstractRepositoryQuery
@@ -35,5 +36,4 @@ class ProductCategoryRepositoryQuery extends AbstractRepositoryQuery
return $this->andWhere('pf.status = 1');
}


}

+ 7
- 0
Repository/Product/ProductCategoryStore.php View File

@@ -34,4 +34,11 @@ class ProductCategoryStore extends AbstractStore
{
return $query;
}

public function getOneParent(): ?ProductCategoryInterface
{
$query = $this->createDefaultQuery();
$query->filterIsParent();
return $query->findOne();
}
}

+ 1
- 0
Resources/translations/admin.fr.yaml View File

@@ -106,6 +106,7 @@ entity:
cycle: Cycle de vente
isDefault: Section par défaut
isCommon: Section commune
cycleType: Cycle
TaxRate:
label: Règle de taxe
label_plurial: Règles de taxes

Loading…
Cancel
Save