first commit

This commit is contained in:
2025-08-02 16:30:27 +02:00
commit 23646bfcee
14851 changed files with 1750626 additions and 0 deletions

60
class/Query/Variation.php Normal file
View File

@@ -0,0 +1,60 @@
<?php
namespace Query;
use Doctrine\DBAL\Connection;
use KupShop\I18nBundle\Translations\VariationsTranslation;
class VariationBase
{
public static function labelsInSections(array $sectionIds)
{
return function (QueryBuilder $qb) use ($sectionIds) {
$qb->join('pvcl', 'products_variations_sections', 'pvs', 'pvcl.id = pvs.id_label');
$qb->setParameter('sectionIds', $sectionIds, Connection::PARAM_INT_ARRAY);
return $qb->expr()->in('pvs.id_section', ':sectionIds');
};
}
public static function isVisible()
{
if (!findModule(\Modules::PRODUCTS_VARIATIONS)) {
return null;
}
static $counter = 0;
return function (QueryBuilder $qb) use (&$counter) {
if ($qb->isAliasPresent('pv')) {
$paramName = 'visible_variation_'.$counter++;
$expression = null;
$qb->setParameter($paramName, 'Y');
$qb->andWhere(
Translation::joinTranslatedFields(
VariationsTranslation::class,
function (QueryBuilder $qb, $columnName, $translatedField) use (&$expression, $paramName) {
$expression = Operator::coalesce($translatedField, "pv.{$columnName}")." = :{$paramName}";
return false;
},
['figure']
)
);
return Operator::orX(
$expression,
Operator::isNull('pv.figure')
);
}
return '1';
};
}
}
if (empty($subclass)) {
class Variation extends VariationBase
{
}
}