<?php
namespace WebBundle\Repository;
use Import1CBundle\Helper\v3\BiConst;
/**
* Фильтр: Материал (Material)
*/
class ListMaterialRepository extends ListEntityRepository
{
/**
* @param bool $full
* @return array|null
*/
public function getList(bool $full = false): ?array
{
$q = $this->createQueryBuilder('l');
if (!$full) {
$q->where('l.hide != 1 AND l.count > 0');
} else {
$q->orderBy('l.hide', 'ASC');
}
$r = $q->orderBy('l.sort DESC, l.name')
->getQuery()
->useQueryCache(true)
->enableResultCache(3600);
return $r->getArrayResult();
}
/**
* @param bool $full
* @return array|null
*/
public function getListForUpdate(bool $full = false): ?array
{
$q = $this
->createQueryBuilder('l')
->select('lower(l.name) name,l.id');
$r = $q->orderBy('l.sort DESC, l.name')
->getQuery()
->useQueryCache($full)
->enableResultCache(BiConst::EXPIRE_LIST_VAR);
return $r->getArrayResult();
}
/**
* @return array|null
*/
public function getCoupleList(): ?array
{
$q = $this
->createQueryBuilder('l')
->select('l.id,l.alias');
$r = $q->getQuery()
->useQueryCache(true)
->enableResultCache(3600);
$items = [];
foreach ($r->getArrayResult() as $row) {
$items[$row['id']] = $row['alias'];
}
return $items;
}
}