mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 21:34:25 +00:00
FEATURE [genericDoc][calendar] use metadatas
This commit is contained in:
parent
d09e5d33db
commit
bd074ebade
@ -21,6 +21,7 @@ use Chill\DocStoreBundle\GenericDoc\GenericDocForAccompanyingPeriodProviderInter
|
|||||||
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||||
use Doctrine\DBAL\Types\Types;
|
use Doctrine\DBAL\Types\Types;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
|
use Doctrine\ORM\Mapping\MappingException;
|
||||||
use Symfony\Component\Security\Core\Security;
|
use Symfony\Component\Security\Core\Security;
|
||||||
|
|
||||||
final class AccompanyingPeriodCalendarGenericDocProvider implements GenericDocForAccompanyingPeriodProviderInterface
|
final class AccompanyingPeriodCalendarGenericDocProvider implements GenericDocForAccompanyingPeriodProviderInterface
|
||||||
@ -39,6 +40,9 @@ final class AccompanyingPeriodCalendarGenericDocProvider implements GenericDocFo
|
|||||||
$this->em = $entityManager;
|
$this->em = $entityManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws MappingException
|
||||||
|
*/
|
||||||
public function buildFetchQueryForAccompanyingPeriod(AccompanyingPeriod $accompanyingPeriod, ?\DateTimeImmutable $startDate = null, ?\DateTimeImmutable $endDate = null, ?string $content = null, ?string $origin = null): FetchQueryInterface
|
public function buildFetchQueryForAccompanyingPeriod(AccompanyingPeriod $accompanyingPeriod, ?\DateTimeImmutable $startDate = null, ?\DateTimeImmutable $endDate = null, ?string $content = null, ?string $origin = null): FetchQueryInterface
|
||||||
{
|
{
|
||||||
$classMetadata = $this->em->getClassMetadata(CalendarDoc::class);
|
$classMetadata = $this->em->getClassMetadata(CalendarDoc::class);
|
||||||
@ -52,15 +56,23 @@ final class AccompanyingPeriodCalendarGenericDocProvider implements GenericDocFo
|
|||||||
$classMetadata->getSchemaName().'.'.$classMetadata->getTableName().' AS cd'
|
$classMetadata->getSchemaName().'.'.$classMetadata->getTableName().' AS cd'
|
||||||
);
|
);
|
||||||
$query->addJoinClause(
|
$query->addJoinClause(
|
||||||
'JOIN chill_doc.stored_object doc_store ON doc_store.id = cd.storedobject_id'
|
sprintf('JOIN %s doc_store ON doc_store.%s = cd.%s',
|
||||||
);
|
$storedObjectMetadata->getSchemaName().'.'.$storedObjectMetadata->getTableName(),
|
||||||
|
$storedObjectMetadata->getColumnName('id'),
|
||||||
|
$classMetadata->getSingleAssociationJoinColumnName('storedObject')
|
||||||
|
));
|
||||||
|
|
||||||
$query->addJoinClause(
|
$query->addJoinClause(
|
||||||
'JOIN chill_calendar.calendar calendar ON calendar.id = cd.calendar_id'
|
sprintf('JOIN %s calendar ON calendar.%s = cd.%s',
|
||||||
|
$calendarMetadata->getSchemaName().'.'.$calendarMetadata->getTableName(),
|
||||||
|
$calendarMetadata->getColumnName('id'),
|
||||||
|
$classMetadata->getSingleAssociationJoinColumnName('calendar')
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$query->addWhereClause(
|
$query->addWhereClause(
|
||||||
'calendar.accompanyingperiod_id = ?',
|
sprintf('calendar.%s = ?',
|
||||||
|
$calendarMetadata->getAssociationMapping('accompanyingPeriod')['joinColumns'][0]['name']),
|
||||||
[$accompanyingPeriod->getId()],
|
[$accompanyingPeriod->getId()],
|
||||||
[Types::INTEGER]
|
[Types::INTEGER]
|
||||||
);
|
);
|
||||||
@ -83,7 +95,7 @@ final class AccompanyingPeriodCalendarGenericDocProvider implements GenericDocFo
|
|||||||
|
|
||||||
if (null !== $content) {
|
if (null !== $content) {
|
||||||
$query->addWhereClause(
|
$query->addWhereClause(
|
||||||
'doc_store.title ilike ?',
|
sprintf('doc_store.%s ilike ?', $storedObjectMetadata->getColumnName('title')),
|
||||||
['%' . $content . '%'],
|
['%' . $content . '%'],
|
||||||
[Types::STRING]
|
[Types::STRING]
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user