Loading module/Oscar/src/Oscar/Exception/OscarDeletePersonNotPossibleException.php 0 → 100644 +8 −0 Original line number Diff line number Diff line <?php namespace Oscar\Exception; class OscarDeletePersonNotPossibleException extends OscarException { } No newline at end of file module/Oscar/src/Oscar/Service/PersonDeleteService.php +7 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ namespace Oscar\Service; use Oscar\Entity\Person; use Oscar\Entity\TimeSheet; use Oscar\Exception\OscarDeletePersonNotPossibleException; use Oscar\Exception\OscarException; use Oscar\Provider\Privileges; use Oscar\Traits\UseEntityManager; Loading @@ -21,5 +23,10 @@ class PersonDeleteService implements UseOscarUserContextService, UseEntityManage if ($person === NULL) { throw new OscarException("La personne avec l'identifiant $person_id n'est pas présente dans la base de données."); } $timesheets = $this->getEntityManager()->getRepository(TimeSheet::class)->findBy(['person' => $person]); if (count($timesheets) > 0) { throw new OscarDeletePersonNotPossibleException("Impossible de supprimer la personne avec l'identifiant $person_id car elle a rempli des feuilles de temps."); } } } Loading
module/Oscar/src/Oscar/Exception/OscarDeletePersonNotPossibleException.php 0 → 100644 +8 −0 Original line number Diff line number Diff line <?php namespace Oscar\Exception; class OscarDeletePersonNotPossibleException extends OscarException { } No newline at end of file
module/Oscar/src/Oscar/Service/PersonDeleteService.php +7 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ namespace Oscar\Service; use Oscar\Entity\Person; use Oscar\Entity\TimeSheet; use Oscar\Exception\OscarDeletePersonNotPossibleException; use Oscar\Exception\OscarException; use Oscar\Provider\Privileges; use Oscar\Traits\UseEntityManager; Loading @@ -21,5 +23,10 @@ class PersonDeleteService implements UseOscarUserContextService, UseEntityManage if ($person === NULL) { throw new OscarException("La personne avec l'identifiant $person_id n'est pas présente dans la base de données."); } $timesheets = $this->getEntityManager()->getRepository(TimeSheet::class)->findBy(['person' => $person]); if (count($timesheets) > 0) { throw new OscarDeletePersonNotPossibleException("Impossible de supprimer la personne avec l'identifiant $person_id car elle a rempli des feuilles de temps."); } } }