fix: rework document and disposition workflow
This commit is contained in:
@@ -23,6 +23,7 @@ class Disposition implements BlameableEntityInterface, TimestampableEntityInterf
|
||||
public const STATUS_NEW = 'new';
|
||||
public const STATUS_CHECKING_CONTRACT = 'checking_contract';
|
||||
public const STATUS_CONFIRMED = 'confirmed';
|
||||
public const STATUS_ENDED = 'ended';
|
||||
public const STATUS_CHECKING_INVOICE = 'checking_invoice';
|
||||
public const STATUS_PAID = 'paid';
|
||||
public const STATUS_COMPLETED = 'completed';
|
||||
|
||||
@@ -110,7 +110,7 @@ class DispositionWorkflowGuardSubscriber implements EventSubscriberInterface
|
||||
$disposition = $event->getSubject();
|
||||
$invoiceDocument = $disposition->getDocumentByType(Upload::TYPE_INVOICE);
|
||||
|
||||
if (null === $invoiceDocument || Upload::STATUS_CHECKED !== $invoiceDocument->getStatus()) {
|
||||
if (null === $invoiceDocument || Upload::STATUS_PAID !== $invoiceDocument->getStatus()) {
|
||||
$message = $this
|
||||
->translator
|
||||
->trans('message.confirm_invoice.document_missing_or_not_checked')
|
||||
|
||||
@@ -225,13 +225,21 @@ class DispositionRepository extends ServiceEntityRepository
|
||||
return $qb
|
||||
->innerJoin('disposition.assignment', 'assignment')
|
||||
->innerJoin('assignment.destination', 'destination')
|
||||
->where($qb->expr()->orX(
|
||||
$qb->expr()->andX(
|
||||
$qb->expr()->isNotNull('assignment.dateTo'),
|
||||
$qb->expr()->lte('assignment.dateTo', ':dateTo')
|
||||
),
|
||||
$qb->expr()->lte('destination.dateTo', ':dateTo')
|
||||
->where($qb->expr()->andX(
|
||||
$qb->expr()->in('disposition.status', ':status'),
|
||||
$qb->expr()->orX(
|
||||
$qb->expr()->andX(
|
||||
$qb->expr()->isNotNull('assignment.dateTo'),
|
||||
$qb->expr()->lte('assignment.dateTo', ':dateTo')
|
||||
),
|
||||
$qb->expr()->lte('destination.dateTo', ':dateTo')
|
||||
)
|
||||
))
|
||||
->setParameter('status', [
|
||||
Disposition::STATUS_NEW,
|
||||
Disposition::STATUS_CHECKING_CONTRACT,
|
||||
Disposition::STATUS_CONFIRMED,
|
||||
])
|
||||
->setParameter('dateTo', new \DateTimeImmutable())
|
||||
->getQuery()
|
||||
->getResult()
|
||||
|
||||
@@ -18,7 +18,8 @@ class DispositionStatusService
|
||||
{
|
||||
$endedDispositions = $this
|
||||
->entityManager
|
||||
->getRepository(Disposition::class)->findEndedDispositions()
|
||||
->getRepository(Disposition::class)
|
||||
->findEndedDispositions()
|
||||
;
|
||||
|
||||
if (0 === $count = count($endedDispositions)) {
|
||||
@@ -26,7 +27,7 @@ class DispositionStatusService
|
||||
}
|
||||
|
||||
foreach ($endedDispositions as $disposition) {
|
||||
$disposition->setStatus(Disposition::STATUS_COMPLETED);
|
||||
$disposition->setStatus(Disposition::STATUS_ENDED);
|
||||
}
|
||||
|
||||
$this->entityManager->flush();
|
||||
|
||||
Reference in New Issue
Block a user