WIP: Implement admin dashboard

This commit is contained in:
Björn Fromme committed 2023-10-22 17:05:43 +02:00
1 parent 38d6fafcb2
commit 91f0f76ccc
15 files changed
+280 -4

No files matched your search

+41
View File
@@ -6,6 +6,7 @@ use App\Entity\Upload;
use App\Repository\Traits\QueryHelperTrait;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query;
use Doctrine\ORM\Query\Expr\Join;
use Doctrine\Persistence\ManagerRegistry;
/**
@@ -83,4 +84,44 @@ class UploadRepository extends ServiceEntityRepository
->getQuery()
;
}
public function getNew(int $limit = 5): array
{
$qb = $this->createQueryBuilder('upload');
return $qb
->select('upload', 'owner', 'teamer', 'disposition', 'assignment')
->innerJoin('upload.owner', 'owner')
->innerJoin('owner.teamer', 'teamer')
->leftJoin('upload.disposition', 'disposition')
->leftJoin('disposition.assignment', 'assignment')
->where($qb->expr()->andX(
$qb->expr()->in('upload.type', ':type'),
$qb->expr()->in('upload.status', ':status')
))
->orderBy('upload.createdAt', 'DESC')
->setParameter('type', [Upload::TYPE_CONTRACT, Upload::TYPE_INVOICE])
->setParameter('status', [Upload::STATUS_NEW, Upload::STATUS_PENDING])
->setMaxResults($limit)
->getQuery()
->getResult()
;
}
public function getCountByStatus(string $status): ?int
{
$qb = $this->createQueryBuilder('upload');
return $qb
->select($qb->expr()->count('upload'))
->where($qb->expr()->andX(
$qb->expr()->in('upload.type', ':type'),
$qb->expr()->eq('upload.status', ':status')
))
->setParameter('type', [Upload::TYPE_CONTRACT, Upload::TYPE_INVOICE])
->setParameter('status', $status)
->getQuery()
->getSingleScalarResult()
;
}
}