<?php
namespace Plugin\TeikiOrder42\EventSubscriber\Controller\Admin;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Eccube\Common\EccubeConfig;
use Eccube\Event\TemplateEvent;
use Eccube\Event\EventArgs;
use Eccube\Event\EccubeEvents;
use Doctrine\ORM\EntityManagerInterface;
use Plugin\TeikiOrder42\Entity\TeikiOrder;
use Plugin\TeikiOrder42\Repository\TeikiOrderRepository;
use Plugin\TeikiOrder42\Service\TeikiProductService;
use Plugin\TeikiOrder42\Repository\Master\OrganizationRepository;
use Plugin\TeikiOrder42\Repository\Master\ClaimTimesRepository;
class OrderControllerSubscriber implements EventSubscriberInterface
{
/**
* @var EntityManagerInterface
*/
private $entityManager;
/**
* @var TeikiOrderRepository
*/
private $teikiOrderRepository;
/**
* @var TeikiProductService
*/
private $teikiProductService;
/**
* @var OrganizationRepository
*/
private $organizationRepository;
/**
* @var ClaimTimesRepository
*/
private $claimTimesRepository;
/**
* Event constructor.
* @param EntityManagerInterface $entityManager
* @param TeikiOrderRepository $teikiOrderRepository
* @param TeikiProductService $teikiProductService
* @param OrganizationRepository $organizationRepository
* @param ClaimTimesRepository $claimTimesRepository
*/
public function __construct(
EntityManagerInterface $entityManager,
TeikiOrderRepository $teikiOrderRepository,
TeikiProductService $teikiProductService,
OrganizationRepository $organizationRepository,
ClaimTimesRepository $claimTimesRepository
) {
$this->entityManager = $entityManager;
$this->teikiOrderRepository = $teikiOrderRepository;
$this->teikiProductService = $teikiProductService;
$this->organizationRepository = $organizationRepository;
$this->claimTimesRepository = $claimTimesRepository;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
'@admin/Order/index.twig' => ['AdminOrderIndex', 1],
EccubeEvents::ADMIN_ORDER_INDEX_SEARCH => 'AdminOrderIndexSearch',
];
}
/**
* @param TemplateEvent $event
*/
public function AdminOrderIndex(TemplateEvent $event)
{
$event->addSnippet('@TeikiOrder42/admin/Order/index.twig');
}
/**
* @param EventArgs $event
*/
public function AdminOrderIndexSearch(EventArgs $event)
{
$qb = $event->getArgument('qb');
$searchData = $event->getArgument('searchData');
//if(
// $searchData['Organization'] ||
// count($searchData['claim_times']) > 0 ||
// $searchData['search_claim_date'] ||
// $searchData['search_shipping_date']
//) {
// $qb->innerJoin('o.TeikiOrder', 'to1');
//}
//
//if ($searchData['Organization']) {
// $qb
// ->andWhere('to1.Organization = :Organization')
// ->setParameter('Organization', $searchData['Organization']);
//}
//
//if(count($searchData['claim_times']) > 0){
// $qb
// ->andWhere($qb->expr()->in('to1.ClaimTimes', ':ClaimTimes'))
// ->setParameter('ClaimTimes', $searchData['claim_times']);
//}
//
//if($searchData['search_claim_date']) {
// $base_month = $searchData['search_claim_date']->format('Y-m');
// $end_claim_date = new \Datetime('first day of next month' . $base_month);
// $start_claim_date = $searchData['search_claim_date'];
//
// $qb
// ->andWhere('(to1.claim_date1 >= :start_date1 and to1.claim_date1 < :end_date1) or
// (to1.claim_date2 >= :start_date1 and to1.claim_date2 < :end_date1) or
// (to1.claim_date3 >= :start_date1 and to1.claim_date3 < :end_date1) or
// (to1.claim_date4 >= :start_date1 and to1.claim_date4 < :end_date1)')
// ->setParameter('start_date1', $start_claim_date)
// ->setParameter('end_date1', $end_claim_date);
//
//}
//if ($searchData['search_shipping_date']) {
// $search_shipping_date = $searchData['search_shipping_date']->format('Y-m');
// $shipping_book = new \Datetime('+9 day' . $search_shipping_date);
// $shipping_book = new \Datetime('-1 month' . $shipping_book->format('Y-m-d'));
//
// $qb
// ->andWhere('to1.teiki_start_date <= :start_date2 and to1.teiki_end_date >= :end_date2')
// ->setParameter('start_date2', $shipping_book)
// ->setParameter('end_date2', $shipping_book);
//}
}
}