27 lines
1.0 KiB
PHP
27 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace External\PompoBundle\Util\Watchdog;
|
|
|
|
use External\PompoBundle\DataGo\Synchronizer\StockSynchronizer;
|
|
use KupShop\WatchdogBundle\Util\Watchdog;
|
|
use Query\QueryBuilder;
|
|
|
|
class PompoWatchdog extends Watchdog
|
|
{
|
|
/**
|
|
* Předefinovávám `getInStoreField`, protože chci vracet skladovost pouze pro centrální sklad. Pokud je produkt skladem třeba
|
|
* jen na jedný prodejně, tak to zákazníka nemusí zajímat, protože ta prodejna může být na druhý straně republiky.
|
|
*/
|
|
public function getInStoreField(QueryBuilder $qb, string $productAlias = 'p', string $variationAlias = 'pv'): string
|
|
{
|
|
// Najoinuju si skladovost na centralnim skladu
|
|
$qb->leftJoin($productAlias, 'stores_items', 'si_wd', "si_wd.id_product = {$productAlias}.id AND {$variationAlias}.id IS NULL AND si_wd.id_store = :wdStoreId")
|
|
->setParameter('wdStoreId', StockSynchronizer::STORE_ID);
|
|
|
|
// Vracim skladovost na centralnim skladu
|
|
return 'COALESCE(si_wd.quantity, 0)';
|
|
}
|
|
}
|