HEX
Server: Apache
System: Linux s198.coreserver.jp 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: nagasaki (10062)
PHP: 7.1.33
Disabled: NONE
Upload Files
File: /virtual/nagasaki/public_html/ec/app/Plugin/GmoEpsilon/Repository/RegularProductRepository.php
<?php

namespace Plugin\GmoEpsilon\Repository;

use Doctrine\ORM\EntityRepository;

class RegularProductRepository extends EntityRepository
{

    public function getRegularFlg()
    {
        $qb = $this->createQueryBuilder('r')
                    ->select('r.regular_flg');
        return $qb
                ->getQuery()
                ->getSingleScalarResult();
    }

    public function getCreateFlg()
    {
        $qb = $this->createQueryBuilder('r')
                    ->select('r.create_flg');
        return $qb
                ->getQuery()
                ->getSingleScalarResult();
    }

    public function getRegularProduct($searchData)
    {
        $qb = $this->getEntityManager()->createQueryBuilder();
        $qb
            ->select('p')
            ->from('\Eccube\Entity\Product', 'p')
            ->innerJoin('p.ProductClasses', 'pc')
            ->innerJoin('pc.ProductType', 'pt')
            ->innerJoin('\Plugin\GmoEpsilon\Entity\RegularProduct', 'g', 'WITH', 'pt.id = g.product_type_id');

        // multi
        if (!empty($searchData['multi']) && $searchData['multi']) {
            $multi = preg_match('/^\d+$/', $searchData['multi']) ? $searchData['multi'] : null;
            $qb
                ->andWhere('p.id = :multi OR p.name LIKE :likemulti OR pc.code LIKE :likemulti')
                ->setParameter('multi', $multi)
                ->setParameter('likemulti', '%' . $searchData['multi'] . '%');
        }

        // category
        if (!empty($searchData['category_id']) && $searchData['category_id']) {
            $Categories = $searchData['category_id']->getSelfAndDescendants();
            if ($Categories) {
                $qb
                    ->innerJoin('p.ProductCategories', 'pct')
                    ->innerJoin('pct.Category', 'c')
                    ->andWhere($qb->expr()->in('pct.Category', ':Categories'))
                    ->setParameter('Categories', $Categories);
            }
        }

        return $qb
            ->getQuery()
            ->getResult();
    }

}