<?php
namespace Customize\Controller;
use Customize\Entity\Enterprise;
use Customize\Repository\CatalogFaqRepository;
use Customize\Repository\DistributorRepository;
use Customize\Repository\Distributor2Repository;
use Customize\Repository\EnterpriseRepository;
use Customize\Repository\FaqRepository;
use Customize\Repository\PriceListRepository;
use Eccube\Controller\AbstractController;
use Eccube\Repository\Master\PrefRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
class AgencyController extends AbstractController
{
/**
* @var EnterpriseRepository
*/
protected $enterpriseRepository;
/**
* @var PriceListRepository
*/
protected $priceListRepository;
/**
* @var DistributorRepository
*/
protected $distributorRepository;
/**
* @var Distributor2Repository
*/
protected $distributor2Repository;
/**
* @var PrefRepository
*/
protected $prefRepository;
/**
* @var CatalogFaqRepository
*/
private $catalogFaqRepository;
public function __construct(EnterpriseRepository $enterpriseRepository, PriceListRepository $priceListRepository,
DistributorRepository $distributorRepository, Distributor2Repository $distributor2Repository,
PrefRepository $prefRepository, CatalogFaqRepository $catalogFaqRepository)
{
$this->enterpriseRepository = $enterpriseRepository;
$this->priceListRepository = $priceListRepository;
$this->distributorRepository = $distributorRepository;
$this->distributor2Repository = $distributor2Repository;
$this->prefRepository = $prefRepository;
$this->catalogFaqRepository = $catalogFaqRepository;
}
/**
* supplier detail
*
* @Route("/member_page", name="page_member")
* @Template("MemberPage/detail.twig")
*/
public function supplierItem()
{
$catalogList = $this->catalogFaqRepository->getList(0);
return [
'catalogList' => $catalogList
];
}
/**
* supplier detail
*
* @Route("/member_page/{code}", name="page_supplier-detail")
* @Template("SupplierDetail/detail.twig")
*/
public function supplierDetail(Request $request, $code)
{
//Get Item Company by name
/* @var Enterprise $itemCompany */
$itemCompany = $this->enterpriseRepository->getItemByCode($code);
if (!$itemCompany) {
throw new NotFoundHttpException();
}
//Find price list by company
$PriceLists = $this->priceListRepository->findBy(['enterprise_id' => $itemCompany->getId()], ['sort_no' => 'DESC']);
$catalogList = $this->catalogFaqRepository->getList(0);
return [
'PriceLists' => $PriceLists,
'itemCompany' => $itemCompany,
'catalogList' => $catalogList
];
}
/**
* Dealer-detail.
*
* @Route("/dealers", name="page_dealer-detail")
* @Template("Dealer/detail.twig")
*/
public function dealerDetail()
{
$Distributor = $this->distributorRepository->findBy([], ['sort_no' => 'DESC']);
// FormType: DeliveryFeeの生成
$Prefs = $this->prefRepository->findAll();
//List item pref has input company data
$dataItem = [];
foreach ($Prefs as $Pref) {
$DistributorItem = $this->distributorRepository
->findBy(
[
'pref_id' => $Pref->getId(),
],
['sort_no' => 'DESC']
);
$dataCount[$Pref->getId()] = 0;
if ($DistributorItem) {
$itemPrefData = [];
$itemPrefData['pref_id'] = $Pref->getId();
$itemPrefData['pref_name'] = $Pref->getName();
//List item company
$dataItemDistribure = [];
foreach ($DistributorItem as $Item) {
$itemCompany = [];
$itemCompany['company_name'] = $Item->getCompanyName();
$itemCompany['company_code'] = $Item->getCompanyCode();
$dataItemDistribure[] = $itemCompany;
}
$itemPrefData['dataCompany'] = $dataItemDistribure;
$dataItem[$Pref->getId()] = $itemPrefData;
}
}
return [
'DistributorData' => $Distributor,
'Prefs' => $Prefs,
'dataItem' => $dataItem,
];
}
/**
* Dealer-detail2.
*
* @Route("/dealers2", name="page_dealer-detail2")
* @Template("Dealer/detail2.twig")
*/
public function dealerDetail2()
{
$Distributor2 = $this->distributor2Repository->findBy([], ['sort_no' => 'DESC']);
// FormType: DeliveryFeeの生成
$Prefs = $this->prefRepository->findAll();
//List item pref has input company data
$dataItem = [];
foreach ($Prefs as $Pref) {
$Distributor2Item = $this->distributor2Repository
->findBy(
[
'pref_id' => $Pref->getId(),
],
['sort_no' => 'DESC']
);
$dataCount[$Pref->getId()] = 0;
if ($Distributor2Item) {
$itemPrefData = [];
$itemPrefData['pref_id'] = $Pref->getId();
$itemPrefData['pref_name'] = $Pref->getName();
//List item company
$dataItemDistribure = [];
foreach ($Distributor2Item as $Item) {
$itemCompany = [];
$itemCompany['company_name'] = $Item->getCompanyName();
$itemCompany['company_code'] = $Item->getCompanyCode();
$dataItemDistribure[] = $itemCompany;
}
$itemPrefData['dataCompany'] = $dataItemDistribure;
$dataItem[$Pref->getId()] = $itemPrefData;
}
}
return [
'Distributor2Data' => $Distributor2,
'Prefs' => $Prefs,
'dataItem' => $dataItem,
];
}
}