<?php
namespace WebBundle\Repository;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\AbstractQuery;
use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\NoResultException;
use Doctrine\ORM\Query\ResultSetMapping;
use Doctrine\ORM\Tools\Pagination\Paginator;
use Doctrine\Persistence\ManagerRegistry;
use Exception;
use FlexApp\Constant\TimeConstant;
use Import1CBundle\Helper\v3\BiConst;
use WebBundle\Constant\CookieKeysConstant;
use WebBundle\Entity\Collection;
use WebBundle\Entity\Interior;
use WebBundle\Helper\App;
use WebBundle\Helper\CookieHelper;
use WebBundle\Helper\LocaleHelper;
use WebBundle\Helper\StrHelper;
use WebBundle\Service\SliderBaseService;
use WebBundle\Service\SliderService;
use WebBundle\Traits\RepoTrait;
/**
* InteriorRepository
*/
class InteriorRepository extends ServiceEntityRepository
{
use RepoTrait;
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Interior::class);
}
/**
* @throws Exception
*/
public function clearProcess()
{
$sql = 'UPDATE `interior` SET `process` = 0 WHERE `process` = 1; SELECT COUNT(`id`) FROM `interior` WHERE `process` = 0;';
$conn = $this->_em->getConnection();
try {
return $conn->executeStatement($sql);
} catch (Exception $e) {
throw new Exception($e->getMessage(), $e->getCode(), $e);
}
}
public function getInteriorsWithArticleHeader($limit = 100, $id = null): array
{
$q = $this->createQueryBuilder('i')
->leftJoin('i.headArticles', 'ah')
->leftJoin('i.articles', 'a')
->innerJoin('i.collection', 'c')
->innerJoin('c.factory', 'f')
->andWhere('i.process <> :process')
->setParameter('process', 1)
->orderBy('ah.id', 'DESC')
->addOrderBy('a.id', 'DESC')
->setMaxResults($limit)
;
if($id){
$q->andWhere('i.id =:id')
->setParameter('id', $id)
;
}else{
$q->setMaxResults($limit);
}
$r = $q->getQuery();
return $r->getResult();
}
/**
* НЕ ИЗМЕНЯТЬ специальный запрос для API
* @param null $collectionId
* @return array|null
*/
public function getInteriorArrayAPI($collectionId = null)
{
$q = $this->createQueryBuilder('i')
->select('i.id, i.name');
if (!empty($collectionId)) {
$q->andWhere('i.collection = :collection')
->setParameter('collection', $collectionId);
}
return $q->getQuery()->getArrayResult();
}
/**
* @param $collection
* @return array|null
*/
public function getInteriorsByCollection($collection): ?array
{
$q = $this->createQueryBuilder('i')
->select('i,s,a,t')
->leftJoin('i.applies', 'a')
->leftJoin('i.styles', 's')
->leftJoin('i.textures', 't')
->leftJoin('i.collection', 'c')
->andWhere('c.id = :collection')
->setParameter('collection', $collection)
->getQuery()
->useQueryCache(true);
return $q->getArrayResult();
}
/**
* @param $id
* @param int $sort
* @return array|mixed|null
* @throws Exception
*/
public function getInteriorsByIdeaSort($id, int $sort = 3)
{
ini_set('memory_limit', '4096M');
$q = $this->createQueryBuilder('i')
->leftJoin('i.interiorHistories', 'is')
->leftJoin('i.ideas', 'ii')
->leftJoin('i.collection', 'c')
->andWhere('ii.id = :id')
->setParameter('id', $id);
if ($sort == 3) {
$q->orderBy('is.date', 'DESC');
} elseif ($sort == 2) { // по цене
$field = 'prMin';
$currency = LocaleHelper::getCur();
$country = LocaleHelper::getCountry();
if ($currency == 'USD') {
$field = LocaleHelper::measureGb() ? 'prMinFUSD' : 'prMinUSD';
} elseif (in_array($currency, ['GBP', 'CHF', 'SEK', 'DKK', 'NOK', 'PLN'])) {
$field = $field . $currency;
} else {
if ($country == 'us') {
$field = LocaleHelper::measureGb() ? 'prMinFUSE' : 'prMinUSE';
} elseif (in_array($country, ['gb', 'ch', 'se', 'pl'])) {
$field = $field . strtoupper($country) . 'E';
} else {
$field = $field . 'Euro';
}
}
$q->orderBy('c.' . $field, 'ASC');
} elseif ($sort == 4) {
$q->orderBy('c.name ASC, i.name', 'ASC');
} elseif ($sort == 1) { // по рейтингу
$q1 = $this->createQueryBuilder('i')
->select('i.id, (SELECT count(t005.id)
FROM WebBundle\Entity\Idea t005
JOIN t005.interiors t005p
where t005p.id = i.id
) as threadId')
->leftJoin('i.interiorHistories', 'is')
->leftJoin('i.ideas', 'ii')
->leftJoin('i.collection', 'c')
->andWhere('ii.id = :id')
->setParameter('id', $id)
->groupBy('i.id')
->orderBy('threadId', 'DESC');
$listId = $q1
->getQuery()
->useQueryCache(true)
->getResult();
$listId = array_column($listId, 'id');
if (count($listId) > 1) {
$q->orderBy('FIELD(i.id, ' . join(',', $listId) . ')');
}
}
return $q
->getQuery()
->getResult();
}
/**
* @param $collectionId
* @param $name
* @return array|null
*/
public function getInterior($collectionId, $name)
{
$q = $this->createQueryBuilder('i')
->select('i,a,c')
->leftJoin('i.collection', 'c')
->leftJoin('i.articles', 'a')
->andWhere('c.id = :collection')
->andWhere('i.name = :name')
->setParameters([
'collection' => $collectionId,
'name' => $name,
]);
$r = $q->getQuery();
$item = $r->getResult();
return $item ? $item[0] : [];
}
/**
* @param $collectionId
* @param bool|array $ides
* @return mixed
* @throws NoResultException
* @throws NonUniqueResultException
*/
public function countInteriorsColl($collectionId, $ides = false)
{
$q = $this->createQueryBuilder('i')
->select('count(i.id)')
->andWhere('i.status = 1')
->andWhere('i.collection = :collection')
->setParameter('collection', $collectionId);
if ($ides && is_array($ides)) {
$q->andWhere('i.id IN (:ides)')
->setParameter('ides', $ides);
}
$r = $q->getQuery();
return $r->getSingleScalarResult();
}
/**
* @param $collectionId
* @param array $params
* @return array|null
*/
public function getInteriors($collectionId, $params = [])
{
$q = $this->createQueryBuilder('i')
->select('i,a,c')
->leftJoin('i.collection', 'c')
->leftJoin('i.articles', 'a')
->andWhere('c.id = :id')
->setParameter('id', $collectionId);
if (!empty($params['ids'])) {
$q->andWhere('i.id IN (:ids)')
->setParameter('ids', $params['ids']);
}
if (!empty($params['notIds'])) {
$q->andWhere('i.id NOT IN (:notIds)')
->setParameter('notIds', $params['notIds']);
}
$r = $q->getQuery();
return $r->getArrayResult();
}
/**
* @param int|array $collectionId
* @param array $params
* @return array
*/
public function getInteriorsForCollection($collectionId, array $params = [])
{
$rsm = new ResultSetMapping();
$rsm->addEntityResult('WebBundle\Entity\Interior', 'i');
$rsm->addFieldResult('i', 'iId', 'id');
$rsm->addFieldResult('i', 'iUrl', 'url');
$rsm->addFieldResult('i', 'iName', 'name');
$rsm->addFieldResult('i', 'iAlt', 'alt');
$rsm->addFieldResult('i', 'iFile', 'file');
$rsm->addFieldResult('i', 'iStatus', 'status');
$rsm->addFieldResult('i', 'iFileSizeX', 'fileSizeX');
$rsm->addFieldResult('i', 'iFileSizeY', 'fileSizeY');
$rsm->addFieldResult('i', 'iFileSizeZX', 'fileSizeZX');
$rsm->addFieldResult('i', 'iFileSizeZY', 'fileSizeZY');
$rsm->addFieldResult('i', 'iFileSizeHdX', 'fileSizeHDX');
$rsm->addFieldResult('i', 'iFileSizeHdY', 'fileSizeHDY');
$rsm->addFieldResult('i', 'iFileSizeShdX', 'fileSizeSHDX');
$rsm->addFieldResult('i', 'iFileSizeShdY', 'fileSizeSHDY');
$rsm->addFieldResult('i', 'iFileSize4kX', 'fileSize4kX');
$rsm->addFieldResult('i', 'iFileSize4kY', 'fileSize4kY');
$rsm->addFieldResult('i', 'ideaCount', 'ideasCount');
$rsm->addJoinedEntityResult('WebBundle\Entity\Collection', 'c', 'i', 'collection');
$rsm->addFieldResult('c', 'cId', 'id');
$rsm->addFieldResult('c', 'cUrl', 'url');
$rsm->addFieldResult('c', 'cStatus', 'status');
$rsm->addFieldResult('c', 'cName', 'name');
$rsm->addFieldResult('c', 'cAName', 'alternateName');
$rsm->addFieldResult('c', 'prMinEuro', 'prMinEuro');
$rsm->addFieldResult('c', 'prMinEuroDe', 'prMinEuroDe');
$rsm->addFieldResult('c', 'prMinEuroFr', 'prMinEuroFr');
$rsm->addFieldResult('c', 'prMinEuroIt', 'prMinEuroIt');
$rsm->addFieldResult('c', 'prMinEuroBe', 'prMinEuroBe');
$rsm->addFieldResult('c', 'prMinEuroIe', 'prMinEuroIe');
$rsm->addFieldResult('c', 'prMinEuroNl', 'prMinEuroNl');
$rsm->addFieldResult('c', 'prMinRUB', 'prMinRUB');
$rsm->addFieldResult('c', 'prMinRUE', 'prMinRUE');
$rsm->addFieldResult('c', 'prMinGBP', 'prMinGBP');
$rsm->addFieldResult('c', 'prMinGBE', 'prMinGBE');
$rsm->addFieldResult('c', 'prMinUSD', 'prMinUSD');
$rsm->addFieldResult('c', 'prMinUSE', 'prMinUSE');
$rsm->addFieldResult('c', 'prMinFUSD', 'prMinFUSD');
$rsm->addFieldResult('c', 'prMinFUSE', 'prMinFUSE');
$rsm->addFieldResult('c', 'prMinCHF', 'prMinCHF');
$rsm->addFieldResult('c', 'prMinCHE', 'prMinCHE');
$rsm->addFieldResult('c', 'prMinSEK', 'prMinSEK');
$rsm->addFieldResult('c', 'prMinSEE', 'prMinSEE');
$rsm->addFieldResult('c', 'prMinDKK', 'prMinDKK');
$rsm->addFieldResult('c', 'prMinDKE', 'prMinDKE');
$rsm->addFieldResult('c', 'prMinNOK', 'prMinNOK');
$rsm->addFieldResult('c', 'prMinNOE', 'prMinNOE');
$rsm->addFieldResult('c', 'prMinPLN', 'prMinPLN');
$rsm->addFieldResult('c', 'prMinPLE', 'prMinPLE');
$rsm->addFieldResult('c', 'prMinCAD', 'prMinCAD');
$rsm->addFieldResult('c', 'prMinCAE', 'prMinCAE');
$rsm->addFieldResult('c', 'prMinFCAD', 'prMinFCAD');
$rsm->addFieldResult('c', 'prMinFCAE', 'prMinFCAE');
$rsm->addJoinedEntityResult('WebBundle\Entity\Factory', 'f', 'c', 'factory');
$rsm->addFieldResult('f', 'fId', 'id');
$rsm->addFieldResult('f', 'fUrl', 'url');
$rsm->addFieldResult('f', 'fStatus', 'status');
$rsm->addFieldResult('f', 'fName', 'name');
$rsm->addFieldResult('f', 'fAName', 'alternateName');
$rsm->addFieldResult('f', 'fSuspended', 'suspended');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListCountry', 'lc', 'f', 'country');
$rsm->addFieldResult('lc', 'lcId', 'id');
$rsm->addFieldResult('lc', 'lcCode', 'code');
$rsm->addFieldResult('lc', 'lcAlias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\Article', 'a', 'i', 'articles');
$rsm->addFieldResult('a', 'itemId', 'id');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListApply', 'la', 'i', 'applies');
$rsm->addFieldResult('la', 'laId', 'id');
$rsm->addFieldResult('la', 'laAlias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListStyle', 'lst', 'i', 'styles');
$rsm->addFieldResult('lst', 'lstId', 'id');
$rsm->addFieldResult('lst', 'lstAlias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListTexture', 'lt', 'i', 'textures');
$rsm->addFieldResult('lt', 'ltId', 'id');
$rsm->addFieldResult('lt', 'ltAlias', 'alias');
if (is_array($collectionId)) {
$cIds = implode(', ', $collectionId);
$collectionWhere = "c.id IN ($cIds)";
} else {
$collectionWhere = "c.id = $collectionId";
}
$where = '';
if (!empty($params)) {
if (!empty($params['ids'])) {
$sIds = implode(', ', $params['ids']);
$where = $where . " AND i.id IN ($sIds)";
}
}
$sql = '
SELECT
i.id as iId,
i.url as iUrl,
i.name as iName,
i.alt as iAlt,
i.file as iFile,
i.status as iStatus,
i.file_size_x as iFileSizeX,
i.file_size_y as iFileSizeY,
i.file_size_z_x as iFileSizeZX,
i.file_size_z_y as iFileSizeZY,
i.file_size_hd_x as iFileSizeHdX,
i.file_size_hd_y as iFileSizeHdY,
i.file_size_shd_x as iFileSizeShdX,
i.file_size_shd_y as iFileSizeShdY,
i.file_size4k_x as iFileSize4kX,
i.file_size4k_y as iFileSize4kY,
c.id as cId,
c.url as cUrl,
c.status as cStatus,
c.name as cName,
c.alternate_name as cAName,
c.pr_min_euro as prMinEuro,
c.pr_min_euro_de as prMinEuroDe,
c.pr_min_euro_fr as prMinEuroFr,
c.pr_min_euro_it as prMinEuroIt,
c.pr_min_euro_be as prMinEuroBe,
c.pr_min_euro_ie as prMinEuroIe,
c.pr_min_euro_nl as prMinEuroNl,
c.pr_min_euro_es as prMinEuroEs,
c.pr_min_rue as prMinRUB,
c.pr_min_rue as prMinRUE,
c.pr_min_gbp as prMinGBP,
c.pr_min_gbe as prMinGBE,
c.pr_min_usd as prMinUSD,
c.pr_min_use as prMinUSE,
c.pr_min_f_usd as prMinFUSD,
c.pr_min_f_use as prMinFUSE,
c.pr_min_chf as prMinCHF,
c.pr_min_che as prMinCHE,
c.pr_min_sek as prMinSEK,
c.pr_min_see as prMinSEE,
c.pr_min_dkk as prMinDKK,
c.pr_min_dke as prMinDKE,
c.pr_min_nok as prMinNOK,
c.pr_min_noe as prMinNOE,
c.pr_min_pln as prMinPLN,
c.pr_min_ple as prMinPLE,
c.pr_min_cad as prMinCAD,
c.pr_min_cae as prMinCAE,
c.pr_min_f_cad as prMinEuroFCAD,
c.pr_min_f_cae as prMinEuroFCAE,
f.id as fId,
f.url as fUrl,
f.status as fStatus,
f.name as fName,
f.alternate_name as fAName,
f.suspended as fSuspended,
a.id as itemId,
lc.id as lcId,
lc.code as lcCode,
lc.alias as lcAlias,
la.id as laId,
la.alias as laAlias,
lst.id as lstId,
lst.alias as lstAlias,
lt.id as ltId,
lt.alias as ltAlias,
(SELECT COUNT(ii.idea_id) FROM `idea_interior` ii WHERE `ii`.`interior_id` = `i`.id) as ideaCount
FROM interior i
LEFT JOIN collection c ON c.id = i.collection
LEFT JOIN factory f ON f.id = c.factory
LEFT JOIN interior_article iat ON iat.interior_id = i.id
LEFT JOIN article a ON a.id = iat.article_id
LEFT JOIN list_country lc ON lc.id = f.country
LEFT JOIN interior_apply ia ON ia.interior_id = i.id
LEFT JOIN list_apply la ON la.id = ia.apply_id
LEFT JOIN interior_texture it ON it.interior_id = i.id
LEFT JOIN list_texture lt ON lt.id = it.texture_id
LEFT JOIN interior_style ist ON ist.interior_id = i.id
LEFT JOIN list_style lst ON lst.id = ist.style_id
WHERE ' . $collectionWhere . ' AND i.status = ' . BiConst::STATE_PUBLISHED . '
' . $where;
$q = $this->getEntityManager()
->createNativeQuery($sql, $rsm)
->enableResultCache(TimeConstant::DAY);
return $q->getArrayResult();
}
/**
* @param $collectionId
* @param array $params
* @return array|null
* @throws Exception
*/
public function getInteriorsForSlider($collectionId, $params = [])
{
$rsm = new ResultSetMapping();
$rsm->addEntityResult('WebBundle\Entity\Interior', 'i');
$rsm->addFieldResult('i', 'iId', 'id');
$where = '';
$group = '';
if (empty($params['all'])) {
$where .= ' AND i.status = 1';
}
if (!empty($params['ids'])) {
$where .= ' AND i.id IN (' . join(',', $params['ids']) . ')';
}
if (!empty($params['notIds'])) {
$where .= ' AND i.id NOT IN (' . join(',', $params['notIds']) . ')';
}
if (!empty($params['onlyId'])) {
$fields = 'i.id as iId';
$group = ' GROUP BY i.id';
} else {
$rsm->addFieldResult('i', 'iUrl', 'url');
$rsm->addFieldResult('i', 'iName', 'name');
$rsm->addFieldResult('i', 'iAlt', 'alt');
$rsm->addFieldResult('i', 'iFile', 'file');
$rsm->addFieldResult('i', 'iStatus', 'status');
$rsm->addFieldResult('i', 'iFileSizeX', 'fileSizeX');
$rsm->addFieldResult('i', 'iFileSizeY', 'fileSizeY');
$rsm->addFieldResult('i', 'iFileSizeZX', 'fileSizeZX');
$rsm->addFieldResult('i', 'iFileSizeZY', 'fileSizeZY');
$rsm->addFieldResult('i', 'iFileSizeHdX', 'fileSizeHDX');
$rsm->addFieldResult('i', 'iFileSizeHdY', 'fileSizeHDY');
$rsm->addFieldResult('i', 'iFileSizeShdX', 'fileSizeSHDX');
$rsm->addFieldResult('i', 'iFileSizeShdY', 'fileSizeSHDY');
$rsm->addFieldResult('i', 'iFileSize4kX', 'fileSize4kX');
$rsm->addFieldResult('i', 'iFileSize4kY', 'fileSize4kY');
$rsm->addFieldResult('i', 'ideaCount', 'ideasCount');
$rsm->addJoinedEntityResult('WebBundle\Entity\Collection', 'c', 'i', 'collection');
$rsm->addFieldResult('c', 'cId', 'id');
$rsm->addFieldResult('c', 'cUrl', 'url');
$rsm->addFieldResult('c', 'cStatus', 'status');
$rsm->addFieldResult('c', 'cProcess', 'process');
$rsm->addFieldResult('c', 'cName', 'name');
$rsm->addFieldResult('c', 'cAName', 'alternateName');
$rsm->addFieldResult('c', 'header', 'header');
$rsm->addFieldResult('c', 'prMinEuro', 'prMinEuro');
$rsm->addFieldResult('c', 'prMinEuroDe', 'prMinEuroDe');
$rsm->addFieldResult('c', 'prMinEuroFr', 'prMinEuroFr');
$rsm->addFieldResult('c', 'prMinEuroIt', 'prMinEuroIt');
$rsm->addFieldResult('c', 'prMinEuroBe', 'prMinEuroBe');
$rsm->addFieldResult('c', 'prMinEuroIe', 'prMinEuroIe');
$rsm->addFieldResult('c', 'prMinEuroNl', 'prMinEuroNl');
$rsm->addFieldResult('c', 'prMinRUB', 'prMinRUB');
$rsm->addFieldResult('c', 'prMinRUE', 'prMinRUE');
$rsm->addFieldResult('c', 'prMinGBP', 'prMinGBP');
$rsm->addFieldResult('c', 'prMinGBE', 'prMinGBE');
$rsm->addFieldResult('c', 'prMinUSD', 'prMinUSD');
$rsm->addFieldResult('c', 'prMinUSE', 'prMinUSE');
$rsm->addFieldResult('c', 'prMinFUSD', 'prMinFUSD');
$rsm->addFieldResult('c', 'prMinFUSE', 'prMinFUSE');
$rsm->addFieldResult('c', 'prMinCHF', 'prMinCHF');
$rsm->addFieldResult('c', 'prMinCHE', 'prMinCHE');
$rsm->addFieldResult('c', 'prMinSEK', 'prMinSEK');
$rsm->addFieldResult('c', 'prMinSEE', 'prMinSEE');
$rsm->addFieldResult('c', 'prMinDKK', 'prMinDKK');
$rsm->addFieldResult('c', 'prMinDKE', 'prMinDKE');
$rsm->addFieldResult('c', 'prMinNOK', 'prMinNOK');
$rsm->addFieldResult('c', 'prMinNOE', 'prMinNOE');
$rsm->addFieldResult('c', 'prMinPLN', 'prMinPLN');
$rsm->addFieldResult('c', 'prMinPLE', 'prMinPLE');
$rsm->addFieldResult('c', 'prMinCAD', 'prMinCAD');
$rsm->addFieldResult('c', 'prMinCAE', 'prMinCAE');
$rsm->addFieldResult('c', 'prMinFCAD', 'prMinFCAD');
$rsm->addFieldResult('c', 'prMinFCAE', 'prMinFCAE');
$rsm->addJoinedEntityResult('WebBundle\Entity\Factory', 'f', 'c', 'factory');
$rsm->addFieldResult('f', 'fId', 'id');
$rsm->addFieldResult('f', 'fUrl', 'url');
$rsm->addFieldResult('f', 'fStatus', 'status');
$rsm->addFieldResult('f', 'fName', 'name');
$rsm->addFieldResult('f', 'fAName', 'alternateName');
$rsm->addFieldResult('f', 'fSuspended', 'suspended');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListCountry', 'lc', 'f', 'country');
$rsm->addFieldResult('lc', 'lcId', 'id');
$rsm->addFieldResult('lc', 'lcCode', 'code');
$rsm->addFieldResult('lc', 'lcAlias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListStyle', 'lst', 'i', 'styles');
$rsm->addFieldResult('lst', 'lstId', 'id');
$rsm->addFieldResult('lst', 'lstAlias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListTexture', 'lt', 'i', 'textures');
$rsm->addFieldResult('lt', 'ltId', 'id');
$rsm->addFieldResult('lt', 'ltAlias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListApply', 'lapl', 'i', 'applies');
$rsm->addFieldResult('lapl', 'laplId', 'id');
$rsm->addFieldResult('lapl', 'laplAlias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\Article', 'a', 'i', 'articles');
$rsm->addFieldResult('a', 'id', 'id');
$rsm->addFieldResult('a', 'code', 'code');
$rsm->addFieldResult('a', 'name', 'name');
$rsm->addFieldResult('a', 'alternate_name', 'alternateName');
$rsm->addFieldResult('a', 'price_euro', 'priceEuro');
$rsm->addFieldResult('a', 'price_mq_euro', 'priceMqEuro');
$rsm->addFieldResult('a', 'price_euro_de', 'priceEuroDe');
$rsm->addFieldResult('a', 'price_euro_at', 'priceEuroAt');
$rsm->addFieldResult('a', 'price_euro_fi', 'priceEuroFi');
$rsm->addFieldResult('a', 'price_euro_fr', 'priceEuroFr');
$rsm->addFieldResult('a', 'price_euro_it', 'priceEuroIt');
$rsm->addFieldResult('a', 'price_euro_be', 'priceEuroBe');
$rsm->addFieldResult('a', 'price_euro_ie', 'priceEuroIe');
$rsm->addFieldResult('a', 'price_euro_nl', 'priceEuroNl');
$rsm->addFieldResult('a', 'price_euro_es', 'priceEuroEs');
$rsm->addFieldResult('a', 'price_mq_euro_de', 'priceMqEuroDe');
$rsm->addFieldResult('a', 'price_mq_euro_at', 'priceMqEuroAt');
$rsm->addFieldResult('a', 'price_mq_euro_fi', 'priceMqEuroFi');
$rsm->addFieldResult('a', 'price_mq_euro_fr', 'priceMqEuroFr');
$rsm->addFieldResult('a', 'price_mq_euro_it', 'priceMqEuroIt');
$rsm->addFieldResult('a', 'price_mq_euro_be', 'priceMqEuroBe');
$rsm->addFieldResult('a', 'price_mq_euro_ie', 'priceMqEuroIe');
$rsm->addFieldResult('a', 'price_mq_euro_es', 'priceMqEuroEs');
$rsm->addFieldResult('a', 'price_rub', 'priceRUB');
$rsm->addFieldResult('a', 'price_rue', 'priceRUE');
$rsm->addFieldResult('a', 'price_mq_rub', 'priceMqRUB');
$rsm->addFieldResult('a', 'price_mq_rue', 'priceMqRUE');
$rsm->addFieldResult('a', 'price_gbp', 'priceGBP');
$rsm->addFieldResult('a', 'price_gbe', 'priceGBE');
$rsm->addFieldResult('a', 'price_mq_gbp', 'priceMqGBP');
$rsm->addFieldResult('a', 'price_mq_gbe', 'priceMqGBE');
$rsm->addFieldResult('a', 'price_usd', 'priceUSD');
$rsm->addFieldResult('a', 'price_use', 'priceUSE');
$rsm->addFieldResult('a', 'price_fq_usd', 'priceFqUSD');
$rsm->addFieldResult('a', 'price_fq_use', 'priceFqUSE');
$rsm->addFieldResult('a', 'price_mq_use', 'priceMqUSE');
$rsm->addFieldResult('a', 'price_cad', 'priceCAD');
$rsm->addFieldResult('a', 'price_cae', 'priceCAE');
$rsm->addFieldResult('a', 'price_fq_cad', 'priceFqCAD');
$rsm->addFieldResult('a', 'price_fq_cae', 'priceFqCAE');
$rsm->addFieldResult('a', 'price_mq_cae', 'priceMqCAE');
$rsm->addFieldResult('a', 'price_chf', 'priceCHF');
$rsm->addFieldResult('a', 'price_che', 'priceCHE');
$rsm->addFieldResult('a', 'price_mq_chf', 'priceMqCHF');
$rsm->addFieldResult('a', 'price_mq_che', 'priceMqCHE');
$rsm->addFieldResult('a', 'price_sek', 'priceSEK');
$rsm->addFieldResult('a', 'price_see', 'priceSEE');
$rsm->addFieldResult('a', 'price_mq_sek', 'priceMqSEK');
$rsm->addFieldResult('a', 'price_mq_see', 'priceMqSEE');
$rsm->addFieldResult('a', 'price_dkk', 'priceDKK');
$rsm->addFieldResult('a', 'price_dke', 'priceDKE');
$rsm->addFieldResult('a', 'price_mq_dkk', 'priceMqDKK');
$rsm->addFieldResult('a', 'price_mq_dke', 'priceMqDKE');
$rsm->addFieldResult('a', 'price_nok', 'priceNOK');
$rsm->addFieldResult('a', 'price_noe', 'priceNOE');
$rsm->addFieldResult('a', 'price_mq_nok', 'priceMqNOK');
$rsm->addFieldResult('a', 'price_mq_noe', 'priceMqNOE');
$rsm->addFieldResult('a', 'price_pln', 'pricePLN');
$rsm->addFieldResult('a', 'price_ple', 'pricePLE');
$rsm->addFieldResult('a', 'price_mq_pln', 'priceMqPLN');
$rsm->addFieldResult('a', 'price_mq_ple', 'priceMqPLE');
$rsm->addFieldResult('a', 'file', 'file');
$rsm->addFieldResult('a', 'not_sample', 'notSample');
$rsm->addFieldResult('a', 'express_sample', 'expressSample');
$rsm->addFieldResult('a', 'variant_image', 'variantImage');
$rsm->addFieldResult('a', 'file_w', 'fileW');
$rsm->addFieldResult('a', 'file_h', 'fileH');
$rsm->addFieldResult('a', 'file_w4000', 'fileW4000');
$rsm->addFieldResult('a', 'file_h4000', 'fileH4000');
$rsm->addFieldResult('a', 'scheme', 'scheme');
$rsm->addFieldResult('a', 'size_x', 'sizeX');
$rsm->addFieldResult('a', 'size_y', 'sizeY');
$rsm->addFieldResult('a', 'size_z', 'sizeZ');
$rsm->addFieldResult('a', 'size_gb_x', 'sizeGbX');
$rsm->addFieldResult('a', 'size_gb_y', 'sizeGbY');
$rsm->addFieldResult('a', 'size_gb_z', 'sizeGbZ');
$rsm->addFieldResult('a', 'file_size2_x', 'fileSize2X');
$rsm->addFieldResult('a', 'file_size2_y', 'fileSize2Y');
$rsm->addFieldResult('a', 'file_size8_x', 'fileSize8X');
$rsm->addFieldResult('a', 'file_size8_y', 'fileSize8Y');
$rsm->addFieldResult('a', 'type_constraint', 'typeConstraint');
$rsm->addFieldResult('a', 'packaging_count', 'packagingCount');
$rsm->addFieldResult('a', 'packaging_count_ft', 'packagingCountFt');
$rsm->addFieldResult('a', 'packaging_count_pc', 'packagingCountPC');
$rsm->addFieldResult('a', 'reserve', 'reserve');
$rsm->addFieldResult('a', 'price_prx', 'pricePrx');
$rsm->addFieldResult('a', 'pallet', 'pallet');
$rsm->addFieldResult('a', 'pallet_ft', 'palletFt');
$rsm->addFieldResult('a', 'min_order', 'minOrder');
$rsm->addFieldResult('a', 'm2one_ps', 'm2OnePs');
$rsm->addFieldResult('a', 'multiple_pallet', 'multiplePallet');
$rsm->addFieldResult('a', 'urla', 'url');
$rsm->addFieldResult('a', 'background_white', 'backgroundWhite');
$rsm->addFieldResult('a', 'border_grey', 'borderGrey');
$rsm->addFieldResult('a', 'image_setting', 'imageSetting');
$rsm->addFieldResult('a', 'file_edit', 'fileEdit');
$rsm->addFieldResult('a', 'comment_scheme_image', 'commentSchemeImage');
$rsm->addJoinedEntityResult('WebBundle\Entity\ArticleDetail', 'ad', 'a', 'details');
$rsm->addFieldResult('ad', 'ad_id', 'id');
$rsm->addFieldResult('ad', 'ad_file', 'file');
$rsm->addFieldResult('ad', 'ad_picture_in_title', 'pictureInTitle');
$rsm->addFieldResult('ad', 'ad_gtin', 'gtin');
$rsm->addFieldResult('ad', 'ad_file_size1_x', 'fileSize1X');
$rsm->addFieldResult('ad', 'ad_file_size1_y', 'fileSize1Y');
$rsm->addFieldResult('ad', 'ad_file_size2_x', 'fileSize2X');
$rsm->addFieldResult('ad', 'ad_file_size2_y', 'fileSize2Y');
$rsm->addFieldResult('ad', 'ad_file_size3_x', 'fileSize3X');
$rsm->addFieldResult('ad', 'ad_file_size3_y', 'fileSize3Y');
$rsm->addFieldResult('ad', 'ad_file_size8_x', 'fileSize8X');
$rsm->addFieldResult('ad', 'ad_file_size8_y', 'fileSize8Y');
$rsm->addFieldResult('ad', 'ad_file_size500_x', 'fileSize500X');
$rsm->addFieldResult('ad', 'ad_file_size500_y', 'fileSize500Y');
$rsm->addFieldResult('ad', 'ad_file_size740_x', 'fileSize740X');
$rsm->addFieldResult('ad', 'ad_file_size740_y', 'fileSize740Y');
$rsm->addFieldResult('ad', 'ad_file_size1_x', 'fileSize1X');
$rsm->addFieldResult('ad', 'ad_file_size1_y', 'fileSize1Y');
$rsm->addFieldResult('ad', 'ad_comment', 'comment');
$rsm->addFieldResult('ad', 'ad_file_edit', 'fileEdit');
$rsm->addFieldResult('ad', 'ad_image_setting', 'imageSetting');
$rsm->addFieldResult('ad', 'ad_file_w', 'fileW');
$rsm->addFieldResult('ad', 'ad_file_h', 'fileH');
$rsm->addFieldResult('ad', 'ad_file_w4000', 'fileW4000');
$rsm->addFieldResult('ad', 'ad_file_h4000', 'fileH4000');
$rsm->addFieldResult('ad', 'ad_comment_scheme_image', 'commentSchemeImage');
$rsm->addFieldResult('ad', 'ad_variant_image', 'variantImage');
$rsm->addFieldResult('ad', 'ad_file_rotation', 'fileRotation');
$rsm->addFieldResult('ad', 'ad_rotate', 'rotate');
$rsm->addFieldResult('ad', 'ad_type_painting', 'typePainting');
$rsm->addFieldResult('ad', 'ad_big_size_scheme', 'bigSizeScheme');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListColor', 'lcl', 'a', 'colors');
$rsm->addFieldResult('lcl', 'lcl_id', 'id');
$rsm->addFieldResult('lcl', 'lcl_alias', 'alias');
$rsm->addFieldResult('lcl', 'lcl_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListDelivery', 'ld', 'a', 'delivery');
$rsm->addFieldResult('ld', 'ld_id', 'id');
$rsm->addFieldResult('ld', 'ld_alias', 'alias');
$rsm->addFieldResult('ld', 'ld_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListMeasure', 'lms', 'a', 'measure');
$rsm->addFieldResult('lms', 'lms_id', 'id');
$rsm->addFieldResult('lms', 'lms_alias', 'alias');
$rsm->addFieldResult('lms', 'lms_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListMaterial', 'lmt', 'a', 'material');
$rsm->addFieldResult('lmt', 'lmt_id', 'id');
$rsm->addFieldResult('lmt', 'lmt_name', 'name');
$rsm->addFieldResult('lmt', 'lmt_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ArticlePriceDiscount', 'apd', 'a', 'priceDiscounts');
$rsm->addFieldResult('apd', 'apd_id', 'id');
$rsm->addFieldResult('apd', 'apd_amount', 'amount');
$rsm->addFieldResult('apd', 'apd_amount_ft', 'amountFt');
$rsm->addFieldResult('apd', 'apd_fold', 'fold');
$rsm->addFieldResult('apd', 'apd_price', 'price');
$rsm->addFieldResult('apd', 'apd_price_euro', 'priceEuro');
$rsm->addFieldResult('apd', 'apd_price_euro_de', 'priceEuroDe');
$rsm->addFieldResult('apd', 'apd_price_euro_at', 'priceEuroAt');
$rsm->addFieldResult('apd', 'apd_price_euro_fi', 'priceEuroFi');
$rsm->addFieldResult('apd', 'apd_price_euro_fr', 'priceEuroFr');
$rsm->addFieldResult('apd', 'apd_price_euro_it', 'priceEuroIt');
$rsm->addFieldResult('apd', 'apd_price_euro_be', 'priceEuroBe');
$rsm->addFieldResult('apd', 'apd_price_euro_ie', 'priceEuroIe');
$rsm->addFieldResult('apd', 'apd_price_euro_nl', 'priceEuroNl');
$rsm->addFieldResult('apd', 'apd_price_euro_es', 'priceEuroEs');
$rsm->addFieldResult('apd', 'apd_price_rub', 'priceRUB');
$rsm->addFieldResult('apd', 'apd_price_rue', 'priceRUE');
$rsm->addFieldResult('apd', 'apd_price_gbp', 'priceGBP');
$rsm->addFieldResult('apd', 'apd_price_gbe', 'priceGBE');
$rsm->addFieldResult('apd', 'apd_price_usd', 'priceUSD');
$rsm->addFieldResult('apd', 'apd_price_use', 'priceUSE');
$rsm->addFieldResult('apd', 'apd_price_fq_usd', 'priceFqUSD');
$rsm->addFieldResult('apd', 'apd_price_fq_use', 'priceFqUSE');
$rsm->addFieldResult('apd', 'apd_price_chf', 'priceCHF');
$rsm->addFieldResult('apd', 'apd_price_che', 'priceCHE');
$rsm->addFieldResult('apd', 'apd_price_pln', 'pricePLN');
$rsm->addFieldResult('apd', 'apd_price_ple', 'pricePLE');
$rsm->addFieldResult('apd', 'apd_price_cad', 'priceCAD');
$rsm->addFieldResult('apd', 'apd_price_cae', 'priceCAE');
$rsm->addFieldResult('apd', 'apd_price_fq_cad', 'priceFqCAD');
$rsm->addFieldResult('apd', 'apd_price_fq_cae', 'priceFqCAE');
$rsm->addFieldResult('apd', 'apd_price_sek', 'priceSEK');
$rsm->addFieldResult('apd', 'apd_price_see', 'priceSEE');
$rsm->addFieldResult('apd', 'apd_price_dkk', 'priceDKK');
$rsm->addFieldResult('apd', 'apd_price_dke', 'priceDKE');
$rsm->addFieldResult('apd', 'apd_price_nok', 'priceNOK');
$rsm->addFieldResult('apd', 'apd_price_noe', 'priceNOE');
$rsm->addJoinedEntityResult('WebBundle\Entity\Collection', 'ac', 'a', 'collection');
$rsm->addFieldResult('ac', 'ac_id', 'id');
$rsm->addFieldResult('ac', 'ac_url', 'url');
$rsm->addFieldResult('ac', 'ac_name', 'name');
$rsm->addFieldResult('ac', 'ac_aname', 'alternateName');
$rsm->addFieldResult('ac', 'ac_status', 'status');
$rsm->addJoinedEntityResult('WebBundle\Entity\Factory', 'acf', 'ac', 'factory');
$rsm->addFieldResult('acf', 'acf_id', 'id');
$rsm->addFieldResult('acf', 'acf_url', 'url');
$rsm->addFieldResult('acf', 'acf_name', 'name');
$rsm->addFieldResult('acf', 'acf_aname', 'alternateName');
$rsm->addFieldResult('acf', 'acf_suspended', 'suspended');
$rsm->addFieldResult('acf', 'acf_status', 'status');
$rsm->addFieldResult('acf', 'acf_stated_at', 'statedAt');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListCountry', 'acfc', 'acf', 'country');
$rsm->addFieldResult('acfc', 'acfc_id', 'id');
$rsm->addFieldResult('acfc', 'acfc_code', 'code');
$rsm->addFieldResult('acfc', 'acfc_alias', 'alias');
$rsm->addFieldResult('acfc', 'acfc_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListFactoryColor', 'lfc', 'a', 'factoryColors');
$rsm->addFieldResult('lfc', 'lfc_id', 'id');
$rsm->addFieldResult('lfc', 'lfc_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListTexture', 'altx', 'a', 'textures');
$rsm->addFieldResult('altx', 'altx_id', 'id');
$rsm->addFieldResult('altx', 'altx_alias', 'alias');
$rsm->addFieldResult('altx', 'altx_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListStyle', 'als', 'a', 'styles');
$rsm->addFieldResult('als', 'als_id', 'id');
$rsm->addFieldResult('als', 'als_alias', 'alias');
$rsm->addFieldResult('als', 'als_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListSurface', 'lsf', 'a', 'surface');
$rsm->addFieldResult('lsf', 'lsf_id', 'id');
$rsm->addFieldResult('lsf', 'lsf_alias', 'alias');
$rsm->addFieldResult('lsf', 'lsf_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListType', 'alt', 'a', 'type');
$rsm->addFieldResult('alt', 'alt_id', 'id');
$rsm->addFieldResult('alt', 'alt_alias', 'alias');
$rsm->addFieldResult('alt', 'alt_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListMotiv', 'llm', 'a', 'motivs');
$rsm->addFieldResult('llm', 'llm_id', 'id');
$rsm->addFieldResult('llm', 'llm_alias', 'alias');
$rsm->addFieldResult('llm', 'llm_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListShape', 'lsh', 'a', 'shape');
$rsm->addFieldResult('lsh', 'lsh_id', 'id');
$rsm->addFieldResult('lsh', 'lsh_alias', 'alias');
$rsm->addFieldResult('lsh', 'lsh_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListMeasureSize', 'lmss', 'a', 'measurementSize');
$rsm->addFieldResult('lmss', 'lmss_id', 'id');
$rsm->addFieldResult('lmss', 'lmss_alias', 'alias');
$rsm->addFieldResult('lmss', 'lmss_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\InteriorArticle', 'iac', 'a', 'coordItems');
$rsm->addFieldResult('iac', 'iacId', 'id');
$rsm->addFieldResult('iac', 'iacCoordX', 'coordX');
$rsm->addFieldResult('iac', 'iacCoordY', 'coordY');
$rsm->addFieldResult('iac', 'iacTypePointer', 'typePointer');
$rsm->addJoinedEntityResult('WebBundle\Entity\Interior', 'iaci', 'iac', 'interior');
$rsm->addFieldResult('iaci', 'iaciId', 'id');
$rsm->addJoinedEntityResult('WebBundle\Entity\Article', 'iaca', 'iac', 'article');
$rsm->addFieldResult('iaca', 'iacaId', 'id');
// i.file_size4_x as iFileSize4x,
// i.file_size4_y as iFileSize4y,
// i.file_size5_x as iFileSize5x,
// i.file_size5_y as iFileSize5y,
// i.file_size6_x as iFileSize6x,
// i.file_size6_y as iFileSize6y,
$fields = '
i.id as iId,
i.url as iUrl,
i.name as iName,
i.alt as iAlt,
i.file as iFile,
i.status as iStatus,
i.file_size_x as iFileSizeX,
i.file_size_y as iFileSizeY,
i.file_size_z_x as iFileSizeZX,
i.file_size_z_y as iFileSizeZY,
i.file_size_hd_x as iFileSizeHdX,
i.file_size_hd_y as iFileSizeHdY,
i.file_size_shd_x as iFileSizeShdX,
i.file_size_shd_y as iFileSizeShdY,
i.file_size4k_x as iFileSize4kX,
i.file_size4k_y as iFileSize4kY,
c.id as cId,
c.url as cUrl,
c.status as cStatus,
c.process as cProcess,
c.name as cName,
c.alternate_name as cAName,
c.header as header,
c.pr_min_euro as prMinEuro,
c.pr_min_euro_de as prMinEuroDe,
c.pr_min_euro_fr as prMinEuroFr,
c.pr_min_euro_it as prMinEuroIt,
c.pr_min_euro_be as prMinEuroBe,
c.pr_min_euro_ie as prMinEuroIe,
c.pr_min_euro_nl as prMinEuroNl,
c.pr_min_euro_es as prMinEuroEs,
c.pr_min_rue as prMinRUB,
c.pr_min_rue as prMinRUE,
c.pr_min_gbp as prMinGBP,
c.pr_min_gbe as prMinGBE,
c.pr_min_usd as prMinUSD,
c.pr_min_use as prMinUSE,
c.pr_min_f_usd as prMinFUSD,
c.pr_min_f_use as prMinFUSE,
c.pr_min_chf as prMinCHF,
c.pr_min_che as prMinCHE,
c.pr_min_sek as prMinSEK,
c.pr_min_see as prMinSEE,
c.pr_min_dkk as prMinDKK,
c.pr_min_dke as prMinDKE,
c.pr_min_nok as prMinNOK,
c.pr_min_noe as prMinNOE,
c.pr_min_pln as prMinPLN,
c.pr_min_ple as prMinPLE,
c.pr_min_cad as prMinCAD,
c.pr_min_cae as prMinCAE,
c.pr_min_f_cad as prMinFCAD,
c.pr_min_f_cae as prMinFCAE,
f.id as fId,
f.url as fUrl,
f.status as fStatus,
f.name as fName,
f.alternate_name as fAName,
f.suspended as fSuspended,
lc.id as lcId,
lc.code as lcCode,
lc.alias as lcAlias,
lst.id as lstId,
lst.alias as lstAlias,
lt.id as ltId,
lt.alias as ltAlias,
lapl.id as laplId,
lapl.alias as laplAlias,
(SELECT COUNT(ii.idea_id) FROM `idea_interior` ii WHERE `ii`.`interior_id` = `i`.id) as ideaCount,
a.id,
a.code,
a.name,
a.not_sample,
a.alternate_name,
REPLACE(a.file, "~q~", "\'") AS file,
a.express_sample,
a.variant_image,
a.price_euro,
a.price_mq_euro,
a.price_euro_de,
a.price_mq_euro_de,
a.price_euro_at,
a.price_mq_euro_at,
a.price_euro_fi,
a.price_mq_euro_fi,
a.price_euro_fr,
a.price_mq_euro_fr,
a.price_euro_it,
a.price_mq_euro_it,
a.price_euro_be,
a.price_mq_euro_be,
a.price_euro_ie,
a.price_mq_euro_ie,
a.price_euro_nl,
a.price_mq_euro_nl,
a.price_euro_es,
a.price_mq_euro_es,
a.price_rub,
a.price_rue,
a.price_mq_rub,
a.price_mq_rue,
a.price_gbp,
a.price_gbe,
a.price_mq_gbp,
a.price_mq_gbe,
a.price_usd,
a.price_use,
a.price_fq_usd,
a.price_fq_use,
a.price_mq_use,
a.price_chf,
a.price_che,
a.price_mq_chf,
a.price_mq_che,
a.price_sek,
a.price_see,
a.price_mq_sek,
a.price_mq_see,
a.price_dkk,
a.price_dke,
a.price_mq_dkk,
a.price_mq_dke,
a.price_nok,
a.price_noe,
a.price_mq_nok,
a.price_mq_noe,
a.price_pln,
a.price_ple,
a.price_mq_pln,
a.price_mq_ple,
a.price_cad,
a.price_cae,
a.price_fq_cad,
a.price_fq_cae,
a.price_mq_cae,
a.size_x,
a.size_y,
a.size_z,
a.size_gb_x,
a.size_gb_y,
a.size_gb_z,
a.file_size2_x,
a.file_size2_y,
a.file_size8_x,
a.file_size8_y,
a.type_constraint,
a.packaging_count,
a.packaging_count_ft,
a.packaging_count_pc,
a.price_prx,
a.pallet,
a.pallet_ft,
a.min_order,
a.m2one_ps,
a.multiple_pallet,
a.urla,
a.background_white,
a.border_grey,
a.image_setting,
a.file_w,
a.file_h,
a.file_w4000,
a.file_h4000,
a.scheme,
a.file_edit,
a.comment_scheme_image,
ad.id as ad_id,
ad.file as ad_file,
ad.picture_in_title as ad_picture_in_title,
ad.gtin as ad_gtin,
ad.file_size1_x as ad_file_size1_x,
ad.file_size1_y as ad_file_size1_y,
ad.file_size2_x as ad_file_size2_x,
ad.file_size2_y as ad_file_size2_y,
ad.file_size3_x as ad_file_size3_x,
ad.file_size3_y as ad_file_size3_y,
ad.file_size8_x as ad_file_size8_x,
ad.file_size8_y as ad_file_size8_y,
ad.file_size500_x as ad_file_size500_x,
ad.file_size500_y as ad_file_size500_y,
ad.file_size740_x as ad_file_size740_x,
ad.file_size740_y as ad_file_size740_y,
ad.file_size1_x as ad_file_size1_x,
ad.file_size1_y as ad_file_size1_y,
ad.comment as ad_comment,
ad.file_edit as ad_file_edit,
ad.image_setting as ad_image_setting,
ad.file_w as ad_file_w,
ad.file_h as ad_file_h,
ad.file_w4000 as ad_file_w4000,
ad.file_h4000 as ad_file_h4000,
ad.comment_scheme_image as ad_comment_scheme_image,
ad.variant_image as ad_variant_image,
ad.file_rotation as ad_file_rotation,
ad.rotate as ad_rotate,
ad.type_painting as ad_type_painting,
ad.big_size_scheme as ad_big_size_scheme,
ld.id as ld_id,
ld.alias as ld_alias,
ld.name as ld_name,
alt.id as alt_id,
alt.alias as alt_alias,
alt.name as alt_name,
lcl.id as lcl_id,
lcl.alias as lcl_alias,
lcl.name as lcl_name,
lms.id as lms_id,
lms.alias as lms_alias,
lms.name as lms_name,
lmt.id as lmt_id,
lmt.alias as lmt_alias,
lmt.name as lmt_name,
lsf.id as lsf_id,
lsf.name as lsf_name,
lsf.alias as lsf_alias,
lfc.id as lfc_id,
lfc.name as lfc_name,
altx.id as altx_id,
altx.alias as altx_alias,
altx.name as altx_name,
als.id as als_id,
als.alias as als_alias,
als.name as als_name,
lsh.id as lsh_id,
lsh.alias as lsh_alias,
lsh.name as lsh_name,
llm.id as llm_id,
llm.name as llm_name,
llm.alias as llm_alias,
lmss.id as lmss_id,
lmss.alias as lmss_alias,
lmss.name as lmss_name,
apd.id as apd_id,
apd.amount as apd_amount,
apd.amount_ft as apd_amount_ft,
apd.fold as apd_fold,
apd.price as apd_price,
apd.price_euro as apd_price_euro,
apd.price_euro_de as apd_price_euro_de,
apd.price_euro_at as apd_price_euro_at,
apd.price_euro_fi as apd_price_euro_fi,
apd.price_euro_fr as apd_price_euro_fr,
apd.price_euro_it as apd_price_euro_it,
apd.price_euro_be as apd_price_euro_be,
apd.price_euro_ie as apd_price_euro_ie,
apd.price_euro_nl as apd_price_euro_nl,
apd.price_euro_es as apd_price_euro_es,
apd.price_rub as apd_price_rub,
apd.price_rue as apd_price_rue,
apd.price_gbp as apd_price_gbp,
apd.price_gbe as apd_price_gbe,
apd.price_usd as apd_price_usd,
apd.price_use as apd_price_use,
apd.price_fq_usd as apd_price_fq_usd,
apd.price_fq_use as apd_price_fq_use,
apd.price_chf as apd_price_chf,
apd.price_che as apd_price_che,
apd.price_sek as apd_price_sek,
apd.price_see as apd_price_see,
apd.price_dkk as apd_price_dkk,
apd.price_dke as apd_price_dke,
apd.price_nok as apd_price_nok,
apd.price_noe as apd_price_noe,
apd.price_pln as apd_price_pln,
apd.price_ple as apd_price_ple,
apd.price_cad as apd_price_cad,
apd.price_cae as apd_price_cae,
apd.price_fq_cad as apd_price_fq_cad,
apd.price_fq_cae as apd_price_fq_cae,
ac.id as ac_id,
ac.url as ac_url,
ac.name as ac_name,
ac.alternate_name as ac_aname,
ac.status as ac_status,
acf.id as acf_id,
acf.url as acf_url,
acf.name as acf_name,
acf.alternate_name as acf_aname,
acf.status as acf_status,
acf.suspended as acf_suspended,
acf.stated_at as acf_stated_at,
acfc.id as acfc_id,
acfc.code as acfc_code,
acfc.alias as acfc_alias,
acfc.name as acfc_name,
iac.id as iacId,
iac.coord_x as iacCoordX,
iac.coord_y as iacCoordY,
iac.type_pointer as iacTypePointer,
iaci.id as iaciId,
iaca.id as iacaId
';
}
$cur = '_euro';
$country = StrHelper::toLower(App::getCurCountry());
if (
CookieHelper::get(CookieKeysConstant::CURRENCY) &&
CookieHelper::get(CookieKeysConstant::CURRENCY) != 'EUR' &&
CookieHelper::get(CookieKeysConstant::CURRENCY) != 'HKD' &&
CookieHelper::get(CookieKeysConstant::CURRENCY) != 'SGD'
) {
$cur = '_' . StrHelper::toLower(CookieHelper::get(CookieKeysConstant::CURRENCY));
} elseif ($country == 'de') {
$cur = '_euro_de';
} elseif ($country == 'at') {
$cur = '_euro_at';
} elseif ($country == 'fi') {
$cur = '_euro_fi';
} elseif ($country == 'fr') {
$cur = '_euro_fr';
} elseif ($country == 'it') {
$cur = '_euro_it';
} elseif ($country == 'be') {
$cur = '_euro_be';
} elseif ($country == 'ie') {
$cur = '_euro_ie';
} elseif ($country == 'nl') {
$cur = '_euro_nl';
} elseif ($country == 'es') {
$cur = '_euro_es';
}
$sql = '
SELECT ' . $fields . '
FROM interior i
LEFT JOIN collection c ON c.id = i.collection
LEFT JOIN factory f ON f.id = c.factory
LEFT JOIN list_country lc ON lc.id = f.country
LEFT JOIN interior_texture it ON it.interior_id = i.id
LEFT JOIN list_texture lt ON lt.id = it.texture_id
LEFT JOIN interior_style ist ON ist.interior_id = i.id
LEFT JOIN list_style lst ON lst.id = ist.style_id
LEFT JOIN interior_apply iappl ON iappl.interior_id = i.id
LEFT JOIN list_style lapl ON lapl.id = iappl.apply_id
LEFT JOIN interior_article ia ON ia.interior_id = i.id
LEFT JOIN article a ON ia.article_id = a.id AND a.delivery <> 6 AND a.file <> \'\' AND a.file IS NOT NULL
LEFT JOIN interior_article_coord iac ON iac.article_id = a.id
LEFT JOIN interior iaci ON iaci.id = iac.interior_id
LEFT JOIN article iaca ON iaca.id = iac.article_id AND iaca.delivery <> 6 AND iaca.file <> \'\' AND iaca.file IS NOT NULL
LEFT JOIN collection ac ON ac.id = a.collection
LEFT JOIN factory acf ON acf.id = ac.factory
LEFT JOIN list_country acfc ON acfc.id = acf.country
LEFT JOIN list_type alt ON a.type = alt.id
LEFT JOIN list_delivery ld ON a.delivery = ld.id
LEFT JOIN list_measure lms ON a.measure = lms.id
LEFT JOIN list_material lmt ON a.material = lmt.id
LEFT JOIN list_surface lsf ON a.surface = lsf.id
LEFT JOIN article_price_discount apd ON a.id = apd.article AND apd.price' . $cur . ' > 0
LEFT JOIN article_color acl ON a.id = acl.article_id
LEFT JOIN article_factory_color afc ON a.id = afc.article_id
LEFT JOIN list_factory_color lfc ON lfc.id = afc.factory_color_id
LEFT JOIN article_texture `at` ON a.id = `at`.article_id
LEFT JOIN list_texture altx ON altx.id = `at`.texture_id
LEFT JOIN article_color alcl ON a.id = alcl.article_id
LEFT JOIN list_color lcl ON lcl.id = alcl.color_id
LEFT JOIN list_style als ON a.style = als.id
LEFT JOIN list_color alc ON alc.id = acl.color_id
LEFT JOIN article_motiv alm ON a.id = alm.article_id
LEFT JOIN list_motiv llm ON llm.id = alm.motiv_id
LEFT JOIN list_shape lsh ON lsh.id = a.shape
LEFT JOIN list_measure_size lmss ON a.measurement_size = lmss.id
LEFT JOIN article_detail ad ON ad.article_id = a.id
WHERE c.id = ' . $collectionId . $where . $group . '';
$q = $this->_em->createNativeQuery($sql, $rsm);
return $q->getArrayResult();
}
/**
* @param $key
* @param $collection
* @return mixed
*/
public function interiorId($key, $collection)
{
$q = $this->createQueryBuilder('i')
->select('i.id')
->orWhere('i.url = :key')
->orWhere('i.file = :key')
->andWhere('i.collection = :collection')
->setParameter('key', $key)
->setParameter('collection', $collection)
->setMaxResults(1);
$data = $q->getQuery()->getArrayResult();
if (!empty($data[0])) {
return $data[0]['id'];
} elseif (is_numeric($key)) {
$q = $this->createQueryBuilder('i')
->select('i.id')
->orWhere('i.id = :key')
->orWhere('i.name = :key')
->andWhere('i.collection = :collection')
->setParameter('key', $key)
->setParameter('collection', $collection)
->setMaxResults(1);
$data = $q->getQuery()->getArrayResult();
return !empty($data[0]) ? $data[0]['id'] : null;
} else {
return null;
}
}
/**
* @param string $name
* @param $collection
* @return mixed
*/
public function interiorUrlByName($name, $collection)
{
$q = $this->createQueryBuilder('i')
->select('i.url')
->andWhere('i.collection = :collection')
->andWhere('i.name = :name')
->setParameter('name', $name)
->setParameter('collection', $collection)
->setMaxResults(1);
$data = $q->getQuery()->getArrayResult();
return !empty($data[0]) ? $data[0]['url'] : null;
}
/**
* @param $interiorId
* @return mixed|null
* @throws NonUniqueResultException
*/
public function getInteriorForIdea($interiorId)
{
$q = $this->createQueryBuilder('i')
->select('i,c')
->leftJoin('i.collection', 'c')
->andWhere('i.id = :id')
->setParameter('id', $interiorId)
->setMaxResults(1);
$r = $q->getQuery();
try {
return $r->getSingleResult();
} catch (NoResultException $e) {
return null;
}
}
/**
* @return ResultSetMapping
*/
private function getResultMapping()
{
$rsm = new ResultSetMapping();
$rsm->addEntityResult('WebBundle\Entity\Interior', 'i');
$rsm->addFieldResult('i', 'id', 'id');
$rsm->addFieldResult('i', 'name', 'name');
$rsm->addFieldResult('i', 'file', 'file');
$rsm->addFieldResult('i', 'status', 'status');
$rsm->addFieldResult('i', 'is_main', 'isMain');
$rsm->addFieldResult('i', 'file_size_x', 'fileSizeX');
$rsm->addFieldResult('i', 'file_size_y', 'fileSizeY');
$rsm->addFieldResult('i', 'file_size_z_x', 'fileSizeZX');
$rsm->addFieldResult('i', 'file_size_z_y', 'fileSizeZY');
$rsm->addFieldResult('i', 'file_size_hd_x', 'fileSizeHDX');
$rsm->addFieldResult('i', 'file_size_hd_y', 'fileSizeHDY');
$rsm->addFieldResult('i', 'file_size_shd_x', 'fileSizeSHDX');
$rsm->addFieldResult('i', 'file_size_shd_y', 'fileSizeSHDY');
// $rsm->addFieldResult('i', 'file_size4_x', 'fileSize4X');
// $rsm->addFieldResult('i', 'file_size4_y', 'fileSize4Y');
// $rsm->addFieldResult('i', 'file_size5_x', 'fileSize5X');
// $rsm->addFieldResult('i', 'file_size5_y', 'fileSize5Y');
// $rsm->addFieldResult('i', 'file_size6_x', 'fileSize6X');
// $rsm->addFieldResult('i', 'file_size6_y', 'fileSize6Y');
// $rsm->addFieldResult('i', 'file_size7_x', 'fileSize7X');
// $rsm->addFieldResult('i', 'file_size7_y', 'fileSize7Y');
$rsm->addFieldResult('i', 'file_size4k_x', 'fileSize4kX');
$rsm->addFieldResult('i', 'file_size4k_y', 'fileSize4kY');
$rsm->addJoinedEntityResult('WebBundle\Entity\Collection', 'acl', 'i', 'collection');
$rsm->addFieldResult('acl', 'acl_id', 'id');
$rsm->addFieldResult('acl', 'acl_url', 'url');
$rsm->addFieldResult('acl', 'acl_name', 'name');
$rsm->addFieldResult('acl', 'acl_aname', 'alternateName');
$rsm->addFieldResult('acl', 'acl_status', 'status');
$rsm->addFieldResult('acl', 'acl_rating', 'rating');
$rsm->addFieldResult('acl', 'acl_settings', 'settings');
$rsm->addJoinedEntityResult('WebBundle\Entity\Factory', 'acf', 'acl', 'factory');
$rsm->addFieldResult('acf', 'acf_id', 'id');
$rsm->addFieldResult('acf', 'acf_url', 'url');
$rsm->addFieldResult('acf', 'acf_name', 'name');
$rsm->addFieldResult('acf', 'acf_aname', 'alternateName');
$rsm->addFieldResult('acf', 'acf_suspended', 'suspended');
$rsm->addFieldResult('acf', 'acf_status', 'status');
$rsm->addFieldResult('acf', 'acf_stated_at', 'statedAt');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListCountry', 'acflc', 'acf', 'country');
$rsm->addFieldResult('acflc', 'acflc_id', 'id');
$rsm->addFieldResult('acflc', 'acflc_code', 'code');
$rsm->addFieldResult('acflc', 'acflc_alias', 'alias');
$rsm->addFieldResult('acflc', 'acflc_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\User', 'acfu', 'acf', 'user');
$rsm->addFieldResult('acfu', 'acfu_id', 'id');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListStyle', 'istls', 'i', 'styles');
$rsm->addFieldResult('istls', 'istls_id', 'id');
$rsm->addFieldResult('istls', 'istls_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListTexture', 'istlt', 'i', 'textures');
$rsm->addFieldResult('istlt', 'istlt_id', 'id');
$rsm->addFieldResult('istlt', 'istlt_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\Idea', 'idea', 'i', 'ideas');
$rsm->addFieldResult('idea', 'idea_id', 'id');
$rsm->addJoinedEntityResult('WebBundle\Entity\Article', 'arts', 'i', 'articles');
$rsm->addFieldResult('arts', 'arts_id', 'id');
$rsm->addFieldResult('arts', 'arts_code', 'code');
$rsm->addFieldResult('arts', 'arts_name', 'name');
$rsm->addFieldResult('arts', 'arts_not_sample', 'notSample');
$rsm->addFieldResult('arts', 'arts_url', 'url');
$rsm->addFieldResult('arts', 'arts_aname', 'alternateName');
$rsm->addFieldResult('arts', 'arts_file_size2_x', 'fileSize2X');
$rsm->addFieldResult('arts', 'arts_file_size2_y', 'fileSize2Y');
$rsm->addFieldResult('arts', 'arts_multiple_pallet', 'multiplePallet');
$rsm->addFieldResult('arts', 'arts_border_grey', 'borderGrey');
$rsm->addFieldResult('arts', 'arts_size_x', 'sizeX');
$rsm->addFieldResult('arts', 'arts_size_y', 'sizeY');
$rsm->addFieldResult('arts', 'arts_size_z', 'sizeZ');
$rsm->addFieldResult('arts', 'arts_size_gb_x', 'sizeGbX');
$rsm->addFieldResult('arts', 'arts_size_gb_y', 'sizeGbY');
$rsm->addFieldResult('arts', 'arts_size_gb_z', 'sizeGbZ');
$rsm->addFieldResult('arts', 'arts_pallet', 'pallet');
$rsm->addFieldResult('arts', 'arts_pallet_ft', 'palletFt');
$rsm->addFieldResult('arts', 'arts_image_setting', 'imageSetting');
$rsm->addFieldResult('arts', 'arts_file_w', 'fileW');
$rsm->addFieldResult('arts', 'arts_file_h', 'fileH');
$rsm->addFieldResult('arts', 'arts_file_w4000', 'fileW4000');
$rsm->addFieldResult('arts', 'arts_file_h4000', 'fileH4000');
$rsm->addFieldResult('arts', 'arts_file_size8_x', 'fileSize8X');
$rsm->addFieldResult('arts', 'arts_file_size8_y', 'fileSize8Y');
$rsm->addFieldResult('arts', 'arts_file', 'file');
$rsm->addFieldResult('arts', 'arts_min_order', 'minOrder');
$rsm->addFieldResult('arts', 'arts_m2one_ps', 'm2OnePs');
$rsm->addFieldResult('arts', 'arts_price_euro', 'priceEuro');
$rsm->addFieldResult('arts', 'arts_price_mq_euro', 'priceMqEuro');
$rsm->addFieldResult('arts', 'arts_price_gbp', 'priceGBP');
$rsm->addFieldResult('arts', 'arts_price_gbe', 'priceGBE');
$rsm->addFieldResult('arts', 'arts_price_mq_gbp', 'priceMqGBP');
$rsm->addFieldResult('arts', 'arts_price_mq_gbe', 'priceMqGBE');
$rsm->addFieldResult('arts', 'arts_price_usd', 'priceUSD');
$rsm->addFieldResult('arts', 'arts_price_use', 'priceUSE');
$rsm->addFieldResult('arts', 'arts_price_fq_usd', 'priceFqUSD');
$rsm->addFieldResult('arts', 'arts_price_fq_use', 'priceFqUSE');
$rsm->addFieldResult('arts', 'arts_price_mq_usd', 'priceMqUSD');
$rsm->addFieldResult('arts', 'arts_price_mq_use', 'priceMqUSE');
$rsm->addFieldResult('arts', 'arts_price_chf', 'priceCHF');
$rsm->addFieldResult('arts', 'arts_price_che', 'priceCHE');
$rsm->addFieldResult('arts', 'arts_price_mq_chf', 'priceMqCHF');
$rsm->addFieldResult('arts', 'arts_price_mq_che', 'priceMqCHE');
$rsm->addFieldResult('arts', 'arts_price_sek', 'priceSEK');
$rsm->addFieldResult('arts', 'arts_price_see', 'priceSEE');
$rsm->addFieldResult('arts', 'arts_price_mq_sek', 'priceMqSEK');
$rsm->addFieldResult('arts', 'arts_price_mq_see', 'priceMqSEE');
$rsm->addFieldResult('arts', 'arts_price_dkk', 'priceDKK');
$rsm->addFieldResult('arts', 'arts_price_dke', 'priceDKE');
$rsm->addFieldResult('arts', 'arts_price_mq_dkk', 'priceMqDKK');
$rsm->addFieldResult('arts', 'arts_price_mq_dke', 'priceMqDKE');
$rsm->addFieldResult('arts', 'arts_price_nok', 'priceNOK');
$rsm->addFieldResult('arts', 'arts_price_noe', 'priceNOE');
$rsm->addFieldResult('arts', 'arts_price_mq_nok', 'priceMqNOK');
$rsm->addFieldResult('arts', 'arts_price_mq_noe', 'priceMqNOE');
$rsm->addFieldResult('arts', 'arts_price_pln', 'pricePLN');
$rsm->addFieldResult('arts', 'arts_price_ple', 'pricePLE');
$rsm->addFieldResult('arts', 'arts_price_mq_pln', 'priceMqPLN');
$rsm->addFieldResult('arts', 'arts_price_mq_ple', 'priceMqPLE');
$rsm->addFieldResult('arts', 'arts_price_cad', 'priceCAD');
$rsm->addFieldResult('arts', 'arts_price_cae', 'priceCAE');
$rsm->addFieldResult('arts', 'arts_price_fq_cad', 'priceFqCAD');
$rsm->addFieldResult('arts', 'arts_price_fq_cae', 'priceFqCAE');
$rsm->addFieldResult('arts', 'arts_price_mq_cad', 'priceMqCAD');
$rsm->addFieldResult('arts', 'arts_price_mq_cae', 'priceMqCAE');
$rsm->addFieldResult('arts', 'arts_price_prx', 'pricePrx');
$rsm->addFieldResult('arts', 'arts_price_euro_de', 'priceEuroDe');
$rsm->addFieldResult('arts', 'arts_price_euro_at', 'priceEuroAt');
$rsm->addFieldResult('arts', 'arts_price_euro_fi', 'priceEuroFi');
$rsm->addFieldResult('arts', 'arts_price_euro_fr', 'priceEuroFr');
$rsm->addFieldResult('arts', 'arts_price_euro_it', 'priceEuroIt');
$rsm->addFieldResult('arts', 'arts_price_mq_euro_de', 'priceMqEuroDe');
$rsm->addFieldResult('arts', 'arts_price_mq_euro_at', 'priceMqEuroAt');
$rsm->addFieldResult('arts', 'arts_price_mq_euro_fi', 'priceMqEuroFi');
$rsm->addFieldResult('arts', 'arts_price_mq_euro_fr', 'priceMqEuroFr');
$rsm->addFieldResult('arts', 'arts_price_mq_euro_it', 'priceMqEuroIt');
$rsm->addFieldResult('arts', 'arts_price_rub', 'priceRUB');
$rsm->addFieldResult('arts', 'arts_price_rue', 'priceRUE');
$rsm->addFieldResult('arts', 'arts_price_mq_rub', 'priceMqRUB');
$rsm->addFieldResult('arts', 'arts_price_mq_rue', 'priceMqRUE');
$rsm->addFieldResult('arts', 'arts_packaging_count', 'packagingCount');
$rsm->addFieldResult('arts', 'arts_packaging_count_ft', 'packagingCountFt');
$rsm->addFieldResult('arts', 'arts_packaging_count_pc', 'packagingCountPC');
$rsm->addFieldResult('arts', 'arts_type_constraint', 'typeConstraint');
$rsm->addJoinedEntityResult('WebBundle\Entity\Collection', 'aacl', 'arts', 'collection');
$rsm->addFieldResult('aacl', 'aacl_id', 'id');
$rsm->addFieldResult('aacl', 'aacl_url', 'url');
$rsm->addFieldResult('aacl', 'aacl_name', 'name');
$rsm->addFieldResult('aacl', 'aacl_aname', 'alternateName');
$rsm->addFieldResult('aacl', 'aacl_status', 'status');
$rsm->addFieldResult('aacl', 'aacl_settings', 'settings');
$rsm->addJoinedEntityResult('WebBundle\Entity\Factory', 'aacf', 'aacl', 'factory');
$rsm->addFieldResult('aacf', 'aacf_id', 'id');
$rsm->addFieldResult('aacf', 'aacf_url', 'url');
$rsm->addFieldResult('aacf', 'aacf_name', 'name');
$rsm->addFieldResult('aacf', 'aacf_aname', 'alternateName');
$rsm->addFieldResult('aacf', 'aacf_suspended', 'suspended');
$rsm->addFieldResult('aacf', 'aacf_status', 'status');
$rsm->addFieldResult('aacf', 'aacf_stated_at', 'statedAt');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListCountry', 'aacflc', 'aacf', 'country');
$rsm->addFieldResult('aacflc', 'aacflc_id', 'id');
$rsm->addFieldResult('aacflc', 'aacflc_code', 'code');
$rsm->addFieldResult('aacflc', 'aacflc_alias', 'alias');
$rsm->addFieldResult('aacflc', 'aacflc_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListDelivery', 'ald', 'arts', 'delivery');
$rsm->addFieldResult('ald', 'ald_id', 'id');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListMaterial', 'alm', 'arts', 'material');
$rsm->addFieldResult('alm', 'alm_id', 'id');
$rsm->addFieldResult('alm', 'alm_alias', 'alias');
$rsm->addFieldResult('alm', 'alm_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListType', 'alt', 'arts', 'type');
$rsm->addFieldResult('alt', 'alt_id', 'id');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListMeasure', 'alme', 'arts', 'measure');
$rsm->addFieldResult('alme', 'alme_id', 'id');
$rsm->addFieldResult('alme', 'alme_alias', 'alias');
$rsm->addFieldResult('alme', 'alme_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListFactoryColor', 'arts_lfc', 'arts', 'factoryColors');
$rsm->addFieldResult('arts_lfc', 'arts_lfc_id', 'id');
$rsm->addFieldResult('arts_lfc', 'arts_lfc_name', 'name');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListTexture', 'arts_ltx', 'arts', 'textures');
$rsm->addFieldResult('arts_ltx', 'arts_ltx_id', 'id');
$rsm->addFieldResult('arts_ltx', 'arts_ltx_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListSurface', 'arts_lsf', 'arts', 'surface');
$rsm->addFieldResult('arts_lsf', 'arts_lsf_id', 'id');
$rsm->addFieldResult('arts_lsf', 'arts_lsf_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListMotiv', 'arts_llm', 'arts', 'motivs');
$rsm->addFieldResult('arts_llm', 'arts_llm_id', 'id');
$rsm->addFieldResult('arts_llm', 'arts_llm_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListStyle', 'arts_lls', 'arts', 'style');
$rsm->addFieldResult('arts_lls', 'arts_lls_id', 'id');
$rsm->addFieldResult('arts_lls', 'arts_lls_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListStyle', 'arts_llss', 'arts', 'styles');
$rsm->addFieldResult('arts_llss', 'arts_llss_id', 'id');
$rsm->addFieldResult('arts_llss', 'arts_llss_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ArticlePriceDiscount', 'apd', 'arts', 'priceDiscounts');
$rsm->addFieldResult('apd', 'apd_id', 'id');
$rsm->addFieldResult('apd', 'apd_amount', 'amount');
$rsm->addFieldResult('apd', 'apd_amount_ft', 'amountFt');
$rsm->addFieldResult('apd', 'apd_fold', 'fold');
$rsm->addFieldResult('apd', 'apd_price', 'price');
$rsm->addFieldResult('apd', 'apd_price_euro', 'priceEuro');
$rsm->addFieldResult('apd', 'apd_price_euro_de', 'priceEuroDe');
$rsm->addFieldResult('apd', 'apd_price_euro_at', 'priceEuroAt');
$rsm->addFieldResult('apd', 'apd_price_euro_fi', 'priceEuroFi');
$rsm->addFieldResult('apd', 'apd_price_euro_fr', 'priceEuroFr');
$rsm->addFieldResult('apd', 'apd_price_euro_it', 'priceEuroIt');
$rsm->addFieldResult('apd', 'apd_price_rub', 'priceRUB');
$rsm->addFieldResult('apd', 'apd_price_rue', 'priceRUE');
$rsm->addFieldResult('apd', 'apd_price_gbp', 'priceGBP');
$rsm->addFieldResult('apd', 'apd_price_gbe', 'priceGBE');
$rsm->addFieldResult('apd', 'apd_price_usd', 'priceUSD');
$rsm->addFieldResult('apd', 'apd_price_use', 'priceUSE');
$rsm->addFieldResult('apd', 'apd_price_fq_usd', 'priceFqUSD');
$rsm->addFieldResult('apd', 'apd_price_fq_use', 'priceFqUSE');
$rsm->addFieldResult('apd', 'apd_price_chf', 'priceCHF');
$rsm->addFieldResult('apd', 'apd_price_che', 'priceCHE');
$rsm->addFieldResult('apd', 'apd_price_sek', 'priceSEK');
$rsm->addFieldResult('apd', 'apd_price_see', 'priceSEE');
$rsm->addFieldResult('apd', 'apd_price_dkk', 'priceDKK');
$rsm->addFieldResult('apd', 'apd_price_dke', 'priceDKE');
$rsm->addFieldResult('apd', 'apd_price_nok', 'priceNOK');
$rsm->addFieldResult('apd', 'apd_price_noe', 'priceNOE');
$rsm->addFieldResult('apd', 'apd_price_pln', 'pricePLN');
$rsm->addFieldResult('apd', 'apd_price_ple', 'pricePLE');
$rsm->addFieldResult('apd', 'apd_price_cad', 'priceCAD');
$rsm->addFieldResult('apd', 'apd_price_cae', 'priceCAE');
$rsm->addFieldResult('apd', 'apd_price_fq_cad', 'priceFqCAD');
$rsm->addFieldResult('apd', 'apd_price_fq_cae', 'priceFqCAE');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListShape', 'arts_lsh', 'arts', 'shape');
$rsm->addFieldResult('arts_lsh', 'arts_lsh_id', 'id');
$rsm->addFieldResult('arts_lsh', 'arts_lsh_alias', 'alias');
$rsm->addJoinedEntityResult('WebBundle\Entity\ListMeasureSize', 'arts_lmss', 'arts', 'measurementSize');
$rsm->addFieldResult('arts_lmss', 'arts_lmss_id', 'id');
$rsm->addFieldResult('arts_lmss', 'arts_lmss_alias', 'alias');
return $rsm;
}
/**
* @param $id
* @param string $type
* @return string
* @throws Exception
*/
private function getCreateNativeQuerySql($id, $type = 'collection')
{
$cur = '_euro';
if (
CookieHelper::get(CookieKeysConstant::CURRENCY) &&
CookieHelper::get(CookieKeysConstant::CURRENCY) != 'EUR' &&
CookieHelper::get(CookieKeysConstant::CURRENCY) != 'HKD' &&
CookieHelper::get(CookieKeysConstant::CURRENCY) != 'SGD'
) {
$cur = '_' . StrHelper::toLower(CookieHelper::get(CookieKeysConstant::CURRENCY));
}
// i.file_size4_x,
// i.file_size4_y,
// i.file_size5_x,
// i.file_size5_y,
// i.file_size6_x,
// i.file_size6_y,
$out =
'SELECT
i.id,
i.name,
i.file,
i.status,
i.is_main,
i.file_size_x,
i.file_size_y,
i.file_size_z_x,
i.file_size_z_y,
i.file_size_hd_x,
i.file_size_hd_y,
i.file_size_shd_x,
i.file_size_shd_y,
i.file_size4k_x,
i.file_size4k_y,
istls.id as istls_id,
istls.alias as istls_alias,
istlt.id as istlt_id,
istlt.alias as istlt_alias,
acl.id as acl_id,
lower(acl.url) as acl_url,
acl.name as acl_name,
acl.alternate_name as acl_aname,
acl.status as acl_status,
acl.settings as acl_settings,
acl.rating as acl_rating,
acl.settings as acl_settings,
acf.id as acf_id,
lower(acf.url) as acf_url,
acf.name as acf_name,
acf.alternate_name as acf_aname,
acf.stated_at as acf_stated_at,
acf.suspended as acf_suspended,
acf.status as acf_status,
acflc.id as acflc_id,
acflc.code as acflc_code,
acflc.alias as acflc_alias,
acflc.name as acflc_name,
acfu.id as acfu_id,
idea.id as idea_id,
arts.id as arts_id,
arts.code as arts_code,
lower(arts.urla) as arts_url,
arts.name as arts_name,
arts.not_sample as arts_not_sample,
arts.alternate_name as arts_aname,
arts.file_size2_x as arts_file_size2_x,
arts.file_size2_y as arts_file_size2_y,
arts.multiple_pallet as arts_multiple_pallet,
arts.border_grey as arts_border_grey,
arts.size_x as arts_size_x,
arts.size_y as arts_size_y,
arts.size_z as arts_size_z,
arts.size_gb_x as arts_size_gb_x,
arts.size_gb_y as arts_size_gb_y,
arts.size_gb_z as arts_size_gb_z,
arts.pallet as arts_pallet,
arts.pallet_ft as arts_pallet_ft,
arts.image_setting as arts_image_setting,
arts.file_w as arts_file_w,
arts.file_h as arts_file_h,
arts.file as arts_file,
arts.min_order as arts_min_order,
arts.m2one_ps as arts_m2one_ps,
arts.file_w4000 as arts_file_w4000,
arts.file_h4000 as arts_file_h4000,
arts.file_size8_x as arts_file_size8_x,
arts.file_size8_y as arts_file_size8_y,
arts.price_euro as arts_price_euro,
arts.price_mq_euro as arts_price_mq_euro,
arts.price_gbp as arts_price_gbp,
arts.price_gbe as arts_price_gbe,
arts.price_mq_gbp as arts_price_mq_gbp,
arts.price_mq_gbe as arts_price_mq_gbe,
arts.price_usd as arts_price_usd,
arts.price_use as arts_price_use,
arts.price_fq_usd as arts_price_fq_usd,
arts.price_fq_use as arts_price_fq_use,
arts.price_mq_usd as arts_price_mq_usd,
arts.price_mq_use as arts_price_mq_use,
arts.price_chf as arts_price_chf,
arts.price_che as arts_price_che,
arts.price_mq_chf as arts_price_mq_chf,
arts.price_mq_che as arts_price_mq_che,
arts.price_sek as arts_price_sek,
arts.price_see as arts_price_see,
arts.price_mq_sek as arts_price_mq_sek,
arts.price_mq_see as arts_price_mq_see,
arts.price_dkk as arts_price_dkk,
arts.price_dke as arts_price_dke,
arts.price_mq_dkk as arts_price_mq_dkk,
arts.price_mq_dke as arts_price_mq_dke,
arts.price_nok as arts_price_nok,
arts.price_noe as arts_price_noe,
arts.price_mq_nok as arts_price_mq_nok,
arts.price_mq_noe as arts_price_mq_noe,
arts.price_pln as arts_price_pln,
arts.price_ple as arts_price_ple,
arts.price_mq_pln as arts_price_mq_pln,
arts.price_mq_ple as arts_price_mq_ple,
arts.price_cad as arts_price_cad,
arts.price_cae as arts_price_cae,
arts.price_fq_cad as arts_price_fq_cad,
arts.price_fq_cae as arts_price_fq_cae,
arts.price_mq_cad as arts_price_mq_cad,
arts.price_mq_cae as arts_price_mq_cae,
arts.price_prx as arts_price_prx,
arts.price_euro_de as arts_price_euro_de,
arts.price_mq_euro_de as arts_price_mq_euro_de,
arts.price_euro_at as arts_price_euro_at,
arts.price_mq_euro_at as arts_price_mq_euro_at,
arts.price_euro_fi as arts_price_euro_fi,
arts.price_mq_euro_fi as arts_price_mq_euro_fi,
arts.price_euro_fr as arts_price_euro_fr,
arts.price_mq_euro_fr as arts_price_mq_euro_fr,
arts.price_euro_it as arts_price_euro_it,
arts.price_mq_euro_it as arts_price_mq_euro_it,
arts.price_rub as arts_price_rub,
arts.price_rue as arts_price_rue,
arts.price_mq_rub as arts_price_mq_rub,
arts.price_mq_rue as arts_price_mq_rue,
arts.packaging_count as arts_packaging_count,
arts.packaging_count_ft as arts_packaging_count_ft,
arts.packaging_count_pc as arts_packaging_count_pc,
arts.type_constraint as arts_type_constraint,
aacl.id as aacl_id,
lower(aacl.url) as aacl_url,
aacl.name as aacl_name,
aacl.alternate_name as aacl_aname,
aacl.status as aacl_status,
aacl.settings as aacl_settings,
aacf.id as aacf_id,
lower(aacf.url) as aacf_url,
aacf.name as aacf_name,
aacf.alternate_name as aacf_aname,
aacf.stated_at as aacf_stated_at,
aacf.suspended as aacf_suspended,
aacf.status as aacf_status,
aacflc.id as aacflc_id,
aacflc.code as aacflc_code,
aacflc.alias as aacflc_alias,
aacflc.name as aacflc_name,
apd.id as apd_id,
apd.amount as apd_amount,
apd.amount_ft as apd_amount_ft,
apd.fold as apd_fold,
apd.price as apd_price,
apd.price_euro as apd_price_euro,
apd.price_euro_de as apd_price_euro_de,
apd.price_euro_at as apd_price_euro_at,
apd.price_euro_fi as apd_price_euro_fi,
apd.price_euro_fr as apd_price_euro_fr,
apd.price_euro_it as apd_price_euro_it,
apd.price_rub as apd_price_rub,
apd.price_rue as apd_price_rue,
apd.price_gbp as apd_price_gbp,
apd.price_gbe as apd_price_gbe,
apd.price_usd as apd_price_usd,
apd.price_use as apd_price_use,
apd.price_fq_usd as apd_price_fq_usd,
apd.price_fq_use as apd_price_fq_use,
apd.price_chf as apd_price_chf,
apd.price_che as apd_price_che,
apd.price_sek as apd_price_sek,
apd.price_see as apd_price_see,
apd.price_dkk as apd_price_dkk,
apd.price_dke as apd_price_dke,
apd.price_nok as apd_price_nok,
apd.price_noe as apd_price_noe,
apd.price_pln as apd_price_pln,
apd.price_ple as apd_price_ple,
apd.price_cad as apd_price_cad,
apd.price_cae as apd_price_cae,
apd.price_fq_cad as apd_price_fq_cad,
apd.price_fq_cae as apd_price_fq_cae,
ald.id as ald_id,
alm.id as alm_id,
alm.alias as alm_alias,
alm.name as alm_name,
alt.id as alt_id,
alme.id as alme_id,
alme.alias as alme_alias,
alme.name as alme_name,
arts_lsf.id as arts_lsf_id,
arts_lsf.alias as arts_lsf_alias,
arts_lfc.id as arts_lfc_id,
arts_lfc.name as arts_lfc_name,
arts_ltx.id as arts_ltx_id,
arts_ltx.alias as arts_ltx_alias,
arts_llm.id as arts_llm_id,
arts_llm.alias as arts_llm_alias,
arts_lls.id as arts_lls_id,
arts_lls.alias as arts_lls_alias,
arts_llss.id as arts_llss_id,
arts_llss.alias as arts_llss_alias,
arts_lsh.id as arts_lsh_id,
arts_lsh.alias as arts_lsh_alias,
arts_lmss.id as arts_lmss_id,
arts_lmss.alias as arts_lmss_alias
FROM interior i
LEFT JOIN collection acl ON acl.id = i.collection
LEFT JOIN factory acf ON acf.id = acl.factory
LEFT JOIN list_country acflc ON acflc.id = acf.country
LEFT JOIN user acfu ON acfu.id = acf.user_id
LEFT JOIN interior_style ist ON ist.interior_id = i.id
LEFT JOIN list_style istls ON istls.id = ist.style_id
LEFT JOIN interior_texture istt ON istt.interior_id = i.id
LEFT JOIN list_texture istlt ON istlt.id = istt.texture_id
LEFT JOIN idea_interior iidea ON iidea.interior_id=i.id
LEFT JOIN idea idea ON iidea.idea_id=idea.id
LEFT JOIN interior_article iarts ON iarts.interior_id=i.id
LEFT JOIN article arts ON arts.id=iarts.article_id
LEFT JOIN collection aacl ON aacl.id = arts.collection
LEFT JOIN factory aacf ON aacf.id = aacl.factory
LEFT JOIN list_country aacflc ON aacflc.id = aacf.country
LEFT JOIN article_price_discount apd ON apd.article = arts.id AND apd.price' . $cur . ' > 0
LEFT JOIN list_delivery ald ON ald.id = arts.delivery
LEFT JOIN list_material alm ON alm.id = arts.material
LEFT JOIN list_type alt ON alt.id = arts.type
LEFT JOIN list_measure alme ON alme.id = arts.measure
LEFT JOIN article_factory_color afc ON arts.id = afc.article_id
LEFT JOIN list_factory_color arts_lfc ON arts_lfc.id = afc.factory_color_id
LEFT JOIN article_texture att ON arts.id = att.article_id
LEFT JOIN list_texture arts_ltx ON arts_ltx.id = att.texture_id
LEFT JOIN list_surface arts_lsf ON arts.surface = arts_lsf.id
LEFT JOIN article_motiv almm ON arts.id = almm.article_id
LEFT JOIN list_motiv arts_llm ON arts_llm.id = almm.motiv_id
LEFT JOIN list_style arts_lls ON arts_lls.id = arts.type
LEFT JOIN article_style alss ON arts.id = alss.article_id
LEFT JOIN list_style arts_llss ON arts_llss.id = alss.style_id
LEFT JOIN list_shape arts_lsh ON arts_lsh.id = arts.shape
LEFT JOIN list_measure_size arts_lmss ON arts_lmss.id=arts.measurement_size
';
if ($type == 'collection') {
$out .= 'WHERE i.collection=' . $id . ' order by i.is_main desc ';
} elseif ($type == 'interior') {
$out .= 'WHERE i.id=' . $id . ' limit 1';
}
return $out;
}
/**
* @param SliderService|SliderBaseService $sliderSevice
* @return array
* @throws Exception
*/
public function getNativeOrderInteriorsBySlider(SliderService $sliderSevice)
{
$id = $sliderSevice->getCollectionId();
$rsm = $this->getResultMapping();
$getCreateNativeQuerySql = $this->getCreateNativeQuerySql($id, 'collection');
$query = $this->_em->createNativeQuery($getCreateNativeQuerySql, $rsm);
return $query->getArrayResult();
}
/**
* @param $id
* @return array|null
*/
public function getNativeInteriorByHistory($id)
{
$rsm = $this->getResultMapping();
try {
$getCreateNativeQuerySql = $this->getCreateNativeQuerySql($id, 'interior');
$query = $this->_em->createNativeQuery($getCreateNativeQuerySql, $rsm);
$interior = $query->getSingleResult(AbstractQuery::HYDRATE_ARRAY);
} catch (Exception $e) {
return null;
}
return $interior;
}
/**
* @param int $interiorId
* @param ?bool $withOutMeasureMq
* @return string|null
* @throws Exception
*/
public function getArticleMinPriceByInteriorId(int $interiorId, ?bool $withOutMeasureMq = true)
{
$andWhere = '';
if ($withOutMeasureMq) {
$andWhere = " AND m.alias = 'measure_mq' ";
}
$sql = "SELECT
i.id,
i.name AS `i_name`,
a.id AS `a.id`,
a.name AS `a.name`,
a.price_euro AS `a.priceEuro`,
a.price_mq_euro AS `a.priceMqEuro`,
a.price_euro_de AS `a.priceEuroDe`,
a.price_mq_euro_de AS `a.priceMqEuroDe`,
a.price_euro_at AS `a.priceEuroAt`,
a.price_mq_euro_at AS `a.priceMqEuroAt`,
a.price_euro_fi AS `a.priceEuroFi`,
a.price_mq_euro_fi AS `a.priceMqEuroFi`,
a.price_euro_fr AS `a.priceEuroFr`,
a.price_mq_euro_fr AS `a.priceMqEuroFr`,
a.price_euro_it AS `a.priceEuroIt`,
a.price_mq_euro_it AS `a.priceMqEuroIt`,
a.price_euro_ie AS `a.priceEuroIe`,
a.price_mq_euro_ie AS `a.priceMqEuroIe`,
a.price_euro_nl AS `a.priceEuroNl`,
a.price_mq_euro_nl AS `a.priceMqEuroNl`,
a.price_euro_es AS `a.priceEuroEs`,
a.price_mq_euro_es AS `a.priceMqEuroEs`,
a.price_euro_be AS `a.priceEuroBe`,
a.price_mq_euro_be AS `a.priceMqEuroBe`,
a.price_rub AS `a.priceRUB`,
a.price_rue AS `a.priceRUE`,
a.price_mq_rub AS `a.priceMqRUB`,
a.price_mq_rue AS `a.priceMqRUE`,
a.price_gbp AS `a.priceGBP`,
a.price_gbe AS `a.priceGBE`,
a.price_mq_gbp AS `a.priceMqGBP`,
a.price_mq_gbe AS `a.priceMqGBE`,
a.price_usd AS `a.priceUSD`,
a.price_use AS `a.priceUSE`,
a.price_fq_usd AS `a.priceFqUSD`,
a.price_fq_use AS `a.priceFqUSE`,
a.price_mq_usd AS `a.priceMqUSD`,
a.price_mq_use AS `a.priceMqUSE`,
a.price_chf AS `a.priceCHF`,
a.price_che AS `a.priceCHE`,
a.price_mq_chf AS `a.priceMqCHF`,
a.price_mq_che AS `a.priceMqCHE`,
a.price_sek AS `a.priceSEK`,
a.price_see AS `a.priceSEE`,
a.price_mq_sek AS `a.priceMqSEK`,
a.price_mq_see AS `a.priceMqSEE`,
a.price_dkk AS `a.priceDKK`,
a.price_dke AS `a.priceDKE`,
a.price_mq_dkk AS `a.priceMqDKK`,
a.price_mq_dke AS `a.priceMqDKE`,
a.price_nok AS `a.priceNOK`,
a.price_noe AS `a.priceNOE`,
a.price_mq_nok AS `a.priceMqNOK`,
a.price_mq_noe AS `a.priceMqNOE`,
a.price_pln AS `a.pricePLN`,
a.price_ple AS `a.pricePLE`,
a.price_mq_pln AS `a.priceMqPLN`,
a.price_mq_ple AS `a.priceMqPLE`,
a.price_cad AS `a.priceCAD`,
a.price_cae AS `a.priceCAE`,
a.price_fq_cad AS `a.priceFqCAD`,
a.price_fq_cae AS `a.priceFqCAE`,
a.price_mq_cad AS `a.priceMqCAD`,
a.price_mq_cae AS `a.priceMqCAE`,
m.id AS `m.id`,
m.name AS `m.name`,
m.alias AS `m.alias`
FROM
article a
LEFT JOIN interior_article ia ON ia.article_id = a.id
LEFT JOIN interior i ON i.id = ia.interior_id
LEFT JOIN list_measure m ON m.id = a.measure
WHERE i.id = '$interiorId' AND a.price_euro > 0 AND a.delivery != 6 AND a.file <> '' $andWhere
GROUP BY a.id
ORDER BY a.price_euro ASC
";
$item = $this->_em->getConnection()->fetchAllAssociative($sql);
$item = $item ? $item[0] : null;
$minPrice = null;
if ($item) {
$item['id'] = intval($item['id']);
// в многомерные массивы переводим
foreach ($item as $k => $v) {
if (preg_match("~(.*)\.(.*)~ui", $k, $out)) {
$k1 = $out[1];
$k2 = $out[2];
if (empty($item[$k1])) {
$item[$k1] = [];
}
$item[$k1][$k2] = $v;
unset($item[$k]);
}
}
$article = $item['a'];
$article['measure'] = $item['m'];
$minPrice = LocaleHelper::getMinPriceStrForTitle($article);
} else {
if ($withOutMeasureMq) {
$minPrice = $this->getArticleMinPriceByInteriorId($interiorId, false);
}
}
return $minPrice;
}
/**
* @param Collection $collection
* @param null $sliderUrl
* @return mixed|null
* @todo remove from bi
*/
public function _getInteriorForReactSlider(Collection $collection, $sliderUrl = null)
{
$q = $this->createQueryBuilder('i')
->leftJoin('i.collection', 'c')
->andWhere('c.id = :collection')
->setParameter('collection', $collection->getId())
->setMaxResults(1);
if ($sliderUrl) {
$q
->andWhere('i.id = :sliderUrl')
->setParameter('sliderUrl', $sliderUrl);
} else {
$q
->andWhere('i.status = :status')
->setParameter('status', BiConst::STATE_PUBLISHED)
->andWhere('i.isMain = :main')
->setParameter('main', true);
}
$r = $q->getQuery();
try {
$items = $r->getResult();
$interior = array_shift($items);
return $interior;
} catch (NoResultException $e) {
return null;
}
}
/**
* @param $idCollection
* @return float|int|mixed|string|null
* @todo remove from bi
*/
public function _getInteriorsCyrirlicImage($idCollection)
{
$q = $this->createQueryBuilder('i')
->select('i')
->leftJoin('i.collection', 'c')
->andWhere('c.id = :collection')
->setParameter('collection', $idCollection)
->andWhere('i.status = :status')
->setParameter('status', BiConst::STATE_PUBLISHED);
$r = $q->getQuery();
try {
return $r->getResult();
} catch (NoResultException $e) {
return null;
}
}
/**
* @param $brand
* @return mixed
* @todo remove from bi
*/
public function _getInteriorUrlCreateBrand($brand)
{
$q = $this->createQueryBuilder('i')
->select('i,c,f')
->leftJoin('i.collection', 'c')
->leftJoin('c.factory', 'f')
->andWhere('f.id =:brand')
->andWhere('c.id is not null')
->andWhere('i.url is null')
->setParameter('brand', $brand)
->addOrderBy('f.name, c.name')
->addOrderBy('i.name', 'DESC')
->getQuery();
return $q->getResult();
}
/**
* @param $collection
* @return mixed
* @todo remove from bi
*/
public function _getInteriorUrlCreateCollection($collection)
{
$q = $this->createQueryBuilder('i')
->select('i,c,f')
->leftJoin('i.collection', 'c')
->leftJoin('c.factory', 'f')
->andWhere('c.id =:collection')
->andWhere('c.id is not null')
->andWhere('i.url is null')
->setParameter('collection', $collection)
->addOrderBy('f.name, c.name')
->addOrderBy('i.name', 'DESC')
->getQuery();
return $q->getResult();
}
/**
* @param $code
* @return mixed
* @todo remove from bi
*
*/
public function _getInteriorUrlCreateCode($code)
{
$q = $this->createQueryBuilder('i')
->select('i,c,f')
->leftJoin('i.collection', 'c')
->leftJoin('c.factory', 'f')
->andWhere('i.id =:code')
->andWhere('c.id is not null')
->andWhere('i.url is null')
->setParameter('code', $code)
->addOrderBy('f.name, c.name')
->addOrderBy('i.name', 'DESC')
->getQuery();
return $q->getResult();
}
/**
* @param $limit
* @param $page
* @return Paginator
* @todo remove from bi
*/
public function _getInteriorUrlCreate($limit, $page)
{
$q = $this->createQueryBuilder('i')
->select('i,c,f')
->leftJoin('i.collection', 'c')
->leftJoin('c.factory', 'f')
->andWhere('c.id is not null')
->andWhere('i.url is null')
->addOrderBy('f.name, c.name')
->addOrderBy('i.name', 'DESC');
$start = $page * $limit;
$q
->setMaxResults($limit)
->setFirstResult($start);
$r = $q->getQuery();
$items = new Paginator($r, $fetchJoinCollection = true);
return $items;
}
/**
* @param $fid
* @return array|float|int|mixed|string
* @todo remove from bi
*/
public function _getArticlesForUpdateBrand($fid)
{
$q = $this->createQueryBuilder('i')
->select('i,c,f')
->leftJoin('i.collection', 'c')
->leftJoin('c.factory', 'f')
->andWhere('f.id =:fid')
->setParameter('fid', $fid);
$r = $q->getQuery();
try {
$items = $r->getResult();
} catch (NoResultException $e) {
$items = [];
}
return $items;
}
public function save(Interior $idea, bool $flush = false): void
{
$this->getEntityManager()->persist($idea);
if ($flush) {
$this->flush();
}
}
public function flush(): void
{
$this->getEntityManager()->flush();
}
}