48 lines
1.4 KiB
PHP
48 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace External\ZNZBundle\Context;
|
|
|
|
use External\ZNZBundle\Util\ZNZConfiguration;
|
|
use External\ZNZBundle\Util\ZNZUtil;
|
|
use KupShop\KupShopBundle\Util\Contexts;
|
|
use KupShop\PricelistBundle\Context\PricelistContext;
|
|
use KupShop\QuantityDiscountBundle\Util\QuantityDiscountUtil;
|
|
use Symfony\Contracts\Service\Attribute\Required;
|
|
|
|
class QuantityDiscountContext extends \KupShop\QuantityDiscountBundle\Context\QuantityDiscountContext
|
|
{
|
|
#[Required]
|
|
public ZNZConfiguration $configuration;
|
|
|
|
#[Required]
|
|
public ZNZUtil $znzUtil;
|
|
|
|
#[Required]
|
|
public QuantityDiscountUtil $quantityDiscountUtil;
|
|
|
|
public function getActive()
|
|
{
|
|
$groups = $this->quantityDiscountUtil->getGroups();
|
|
|
|
// v pripade B2B by se ID aktivni skupiny melo rovnat ID aktivniho ceniku
|
|
if ($this->configuration->isB2BShop()) {
|
|
if (isset($groups[Contexts::get(PricelistContext::class)->getActiveId()])) {
|
|
return Contexts::get(PricelistContext::class)->getActiveId();
|
|
}
|
|
|
|
return parent::getActive();
|
|
}
|
|
|
|
$groups = array_flip($groups);
|
|
$website = $this->znzUtil->getCurrentWebsite();
|
|
// aktivuju skupinu pro danou websitu
|
|
if ($groups[$website] ?? false) {
|
|
return $groups[$website];
|
|
}
|
|
|
|
return parent::getActive();
|
|
}
|
|
}
|