feat: all-season assignments

This commit is contained in:
Björn Fromme authored and Björn Fromme committed 2026-09-26 12:13:16 +02:00
1 parent 675cec1b69
commit cf876ed224
119 files changed
+6194 -294

No files matched your search

+28 -9
View File
@@ -8,6 +8,7 @@ use App\Model\DocumentFilterDto;
use App\Repository\Traits\QueryHelperTrait;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query;
use Doctrine\ORM\QueryBuilder;
use Doctrine\Persistence\ManagerRegistry;
/**
@@ -46,17 +47,17 @@ class UploadRepository extends ServiceEntityRepository
;
}
/**
* The picker behind every "choose a document" field, restricted to the global library.
*
* Without the type condition it offers every upload in the system - Honorarverträge,
* Honorarnoten, Belege, Führerscheine - so picking one would have pointed a setting at a
* teamer's private file.
*/
public function getAutocompletionData(string $search): array
{
$qb = $this->createQueryBuilder('upload');
$documents = $qb
->where($qb->expr()->orX(
$qb->expr()->like('upload.originalFilename', ':filename'),
$qb->expr()->like('upload.displayName', ':filename')
))
->setParameter('filename', '%'.$this->escapeLikeWildcards($search).'%')
->orderBy('upload.originalFilename', \SortDirection::Ascending)
$documents = $this
->createAutocompletionQueryBuilder($search)
->getQuery()
->getResult()
;
@@ -79,6 +80,24 @@ class UploadRepository extends ServiceEntityRepository
return $data;
}
private function createAutocompletionQueryBuilder(string $search): QueryBuilder
{
$qb = $this->createQueryBuilder('upload');
return $qb
->where($qb->expr()->andX(
$qb->expr()->eq('upload.type', ':type'),
$qb->expr()->orX(
$qb->expr()->like('upload.originalFilename', ':filename'),
$qb->expr()->like('upload.displayName', ':filename')
)
))
->setParameter('type', Upload::TYPE_DOCUMENT)
->setParameter('filename', '%'.$this->escapeLikeWildcards($search).'%')
->orderBy('upload.originalFilename', \SortDirection::Ascending)
;
}
public function getBatchDownloadListQuery(
string $type = Upload::TYPE_INVOICE,
string $status = Upload::STATUS_PAID,