Loading module/Application/src/Application/Assertion/IntervenantDossierAssertion.php +1 −2 Original line number Diff line number Diff line Loading @@ -403,11 +403,10 @@ class IntervenantDossierAssertion extends AbstractAssertion { $intervenantDossier = $this->getServiceDossier()->getByIntervenant($intervenant); $completudeDossier = $this->getServiceDossier()->getCompletude($intervenantDossier); $isValidate = $this->getServiceDossier()->getValidation($intervenant); return $this->asserts([ $completudeDossier['dossier'], $intervenantDossier->getTblDossier()->getCompletude(), !$isValidate, $this->getRole()->hasPrivilege(Privileges::DOSSIER_VALIDATION), ]); Loading module/Application/src/Application/Controller/IntervenantDossierController.php +16 −4 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace Application\Controller; use Application\Constants; use Application\Entity\Db\IndicModifDossier; use Application\Entity\Db\Intervenant; use Application\Entity\Db\WfEtape; use Application\Form\Intervenant\DossierValidation; use Application\Form\Intervenant\Traits\AutresFormAwareTrait; use Application\Form\Intervenant\Traits\IntervenantDossierFormAwareTrait; Loading Loading @@ -65,13 +66,16 @@ class IntervenantDossierController extends AbstractController } /* Récupération du dossier de l'intervenant */ $intervenantDossier = $this->getServiceDossier()->getByIntervenant($intervenant); /*Si dossier n'a pas encore d'id alors on le save et on calcule la completude*/ if (!$intervenantDossier->getId()) { $this->getServiceDossier()->save($intervenantDossier); $this->updateTableauxBord($intervenantDossier->getIntervenant()); } $intervenantDossierValidation = $this->getServiceDossier()->getValidation($intervenant); $tblDossier = $intervenantDossier->getTblDossier(); $lastCompleted = $tblDossier->getCompletude(); /* Initialisation du formulaire */ $form = $this->getIntervenantDossierForm($intervenant); $form->bind($intervenantDossier); Loading @@ -87,12 +91,21 @@ class IntervenantDossierController extends AbstractController $this->getServiceDossier()->updateIndicModifDossier($intervenant, $intervenantDossier); //Recalcul des tableaux de bord nécessaires $this->updateTableauxBord($intervenantDossier->getIntervenant()); $this->em()->refresh($tblDossier); /*On reinitialise le formulaire car le statut du dossier a pu être changé donc les règles d'affichage ne sont plus les mêmes*/ $form = $this->getIntervenantDossierForm($intervenant); $form->bind($intervenantDossier); $this->flashMessenger()->addSuccessMessage('Enregistrement de vos données effectué'); //return $this->redirect()->toUrl($this->url()->fromRoute('intervenant/dossier', [], [], true)); if (!$lastCompleted && $tblDossier->getCompletude() && $role->getIntervenant()) { // on ne redirige que pour l'intervenant et seulement si le dossier a été nouvellement créé $nextEtape = $this->getServiceWorkflow()->getNextEtape(WfEtape::CODE_DONNEES_PERSO_SAISIE, $intervenant); if ($nextEtape && $url = $nextEtape->getUrl()) { return $this->redirect()->toUrl($url); } } } else { $this->flashMessenger()->addErrorMessage("Vos données n'ont pas été enregistré, veuillez vérifier les erreurs."); } Loading @@ -110,7 +123,6 @@ class IntervenantDossierController extends AbstractController 'fieldset-employeur' => $intervenantDossier->getStatut()->getDossierEmployeur(), 'fieldset-autres' => (!empty($champsAutres)) ? 1 : 0,//Si le statut intervenant a au moins 1 champs autre ]; $intervenantDossierCompletude = $this->getServiceDossier()->getCompletude($intervenantDossier); $iPrec = $this->getServiceDossier()->intervenantVacataireAnneesPrecedentes($intervenant, 1); $lastHETD = $iPrec ? $this->getServiceService()->getTotalHetdIntervenant($iPrec) : 0; Loading @@ -135,7 +147,7 @@ class IntervenantDossierController extends AbstractController 'intervenantDossier', 'intervenantDossierValidation', 'intervenantDossierStatut', 'intervenantDossierCompletude', 'tblDossier', 'champsAutres', 'fieldsetRules' ); Loading module/Application/src/Application/Entity/Db/IntervenantDossier.php +12 −6 Original line number Diff line number Diff line Loading @@ -2,12 +2,8 @@ namespace Application\Entity\Db; use Application\Entity\Db\Traits\AnneeAwareTrait; use Application\Entity\Db\Traits\CiviliteAwareTrait; use Application\Entity\Db\Traits\DisciplineAwareTrait; use Application\Entity\Db\Traits\EmployeurAwareTrait; use Application\Entity\Db\Traits\GradeAwareTrait; use Application\Entity\Db\Traits\StructureAwareTrait; use Application\Entity\Traits\AdresseTrait; use Application\Interfaces\AdresseInterface; use Doctrine\Persistence\Mapping\ClassMetadata; Loading @@ -16,8 +12,6 @@ use Doctrine\Persistence\ObjectManagerAware; use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenImport\Entity\Db\Interfaces\ImportAwareInterface; use UnicaenImport\Entity\Db\Traits\ImportAwareTrait; use Zend\Permissions\Acl\Resource\ResourceInterface; /** Loading Loading @@ -157,6 +151,11 @@ class IntervenantDossier implements HistoriqueAwareInterface, ResourceInterface, */ protected $intervenant; /** * @var TblDossier */ protected $tblDossier; /** Loading Loading @@ -831,6 +830,13 @@ class IntervenantDossier implements HistoriqueAwareInterface, ResourceInterface, public function getTblDossier(): ?TblDossier { return $this->tblDossier; } /** * * @param \Application\Entity\Db\Intervenant $intervenant Loading module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.IntervenantDossier.dcm.xml +1 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ <field name="autre4" type="string" column="AUTRE_4" length="1000" nullable="true"/> <field name="autre5" type="string" column="AUTRE_5" length="1000" nullable="true"/> <one-to-one field="tblDossier" target-entity="Application\Entity\Db\TblDossier" mapped-by="dossier" /> <many-to-one field="employeur" target-entity="Application\Entity\Db\Employeur"> <join-column name="EMPLOYEUR_ID" referenced-column-name="ID"/> Loading module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.TblDossier.dcm.xml +5 −10 Original line number Diff line number Diff line Loading @@ -3,17 +3,11 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity name="Application\Entity\Db\TblDossier" table="TBL_DOSSIER"> <indexes> <index name="IDX_126E18FDAA401F5C" columns="ANNEE_ID"/> <index name="IDX_126E18FD52CE5789" columns="DOSSIER_ID"/> <index name="IDX_126E18FDBC260C55" columns="VALIDATION_ID"/> </indexes> <unique-constraints> <unique-constraint name="tbl_dossier__un" columns="INTERVENANT_ID"/> </unique-constraints> <id name="id" type="integer" column="ID"> <generator strategy="SEQUENCE"/> <sequence-generator sequence-name="TBL_DOSSIER_ID_seq" allocation-size="1" initial-value="1"/> </id> <field name="peutSaisirDossier" type="boolean" column="PEUT_SAISIR_DOSSIER" nullable="false"> <options> Loading @@ -30,11 +24,14 @@ <join-column name="INTERVENANT_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="dossier" target-entity="Application\Entity\Db\IntervenantDossier" fetch="LAZY"> <!--<one-to-one field="dossier" target-entity="Application\Entity\Db\IntervenantDossier" fetch="LAZY"> <join-columns> <join-column name="DOSSIER_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> </one-to-one>--> <one-to-one field="dossier" target-entity="Application\Entity\Db\IntervenantDossier" inversed-by="tblDossier"> <join-column name="DOSSIER_ID" referenced-column-name="ID" /> </one-to-one> <many-to-one field="annee" target-entity="Application\Entity\Db\Annee" fetch="LAZY"> <join-columns> <join-column name="ANNEE_ID" referenced-column-name="ID"/> Loading @@ -49,7 +46,5 @@ <field name="completudeEmployeur" type="boolean" column="COMPLETUDE_EMPLOYEUR" nullable="false"/> <field name="completudeAutres" type="boolean" column="COMPLETUDE_AUTRES" nullable="false"/> <field name="completudeStatut" type="boolean" column="COMPLETUDE_STATUT" nullable="false"/> </entity> </doctrine-mapping> Loading
module/Application/src/Application/Assertion/IntervenantDossierAssertion.php +1 −2 Original line number Diff line number Diff line Loading @@ -403,11 +403,10 @@ class IntervenantDossierAssertion extends AbstractAssertion { $intervenantDossier = $this->getServiceDossier()->getByIntervenant($intervenant); $completudeDossier = $this->getServiceDossier()->getCompletude($intervenantDossier); $isValidate = $this->getServiceDossier()->getValidation($intervenant); return $this->asserts([ $completudeDossier['dossier'], $intervenantDossier->getTblDossier()->getCompletude(), !$isValidate, $this->getRole()->hasPrivilege(Privileges::DOSSIER_VALIDATION), ]); Loading
module/Application/src/Application/Controller/IntervenantDossierController.php +16 −4 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace Application\Controller; use Application\Constants; use Application\Entity\Db\IndicModifDossier; use Application\Entity\Db\Intervenant; use Application\Entity\Db\WfEtape; use Application\Form\Intervenant\DossierValidation; use Application\Form\Intervenant\Traits\AutresFormAwareTrait; use Application\Form\Intervenant\Traits\IntervenantDossierFormAwareTrait; Loading Loading @@ -65,13 +66,16 @@ class IntervenantDossierController extends AbstractController } /* Récupération du dossier de l'intervenant */ $intervenantDossier = $this->getServiceDossier()->getByIntervenant($intervenant); /*Si dossier n'a pas encore d'id alors on le save et on calcule la completude*/ if (!$intervenantDossier->getId()) { $this->getServiceDossier()->save($intervenantDossier); $this->updateTableauxBord($intervenantDossier->getIntervenant()); } $intervenantDossierValidation = $this->getServiceDossier()->getValidation($intervenant); $tblDossier = $intervenantDossier->getTblDossier(); $lastCompleted = $tblDossier->getCompletude(); /* Initialisation du formulaire */ $form = $this->getIntervenantDossierForm($intervenant); $form->bind($intervenantDossier); Loading @@ -87,12 +91,21 @@ class IntervenantDossierController extends AbstractController $this->getServiceDossier()->updateIndicModifDossier($intervenant, $intervenantDossier); //Recalcul des tableaux de bord nécessaires $this->updateTableauxBord($intervenantDossier->getIntervenant()); $this->em()->refresh($tblDossier); /*On reinitialise le formulaire car le statut du dossier a pu être changé donc les règles d'affichage ne sont plus les mêmes*/ $form = $this->getIntervenantDossierForm($intervenant); $form->bind($intervenantDossier); $this->flashMessenger()->addSuccessMessage('Enregistrement de vos données effectué'); //return $this->redirect()->toUrl($this->url()->fromRoute('intervenant/dossier', [], [], true)); if (!$lastCompleted && $tblDossier->getCompletude() && $role->getIntervenant()) { // on ne redirige que pour l'intervenant et seulement si le dossier a été nouvellement créé $nextEtape = $this->getServiceWorkflow()->getNextEtape(WfEtape::CODE_DONNEES_PERSO_SAISIE, $intervenant); if ($nextEtape && $url = $nextEtape->getUrl()) { return $this->redirect()->toUrl($url); } } } else { $this->flashMessenger()->addErrorMessage("Vos données n'ont pas été enregistré, veuillez vérifier les erreurs."); } Loading @@ -110,7 +123,6 @@ class IntervenantDossierController extends AbstractController 'fieldset-employeur' => $intervenantDossier->getStatut()->getDossierEmployeur(), 'fieldset-autres' => (!empty($champsAutres)) ? 1 : 0,//Si le statut intervenant a au moins 1 champs autre ]; $intervenantDossierCompletude = $this->getServiceDossier()->getCompletude($intervenantDossier); $iPrec = $this->getServiceDossier()->intervenantVacataireAnneesPrecedentes($intervenant, 1); $lastHETD = $iPrec ? $this->getServiceService()->getTotalHetdIntervenant($iPrec) : 0; Loading @@ -135,7 +147,7 @@ class IntervenantDossierController extends AbstractController 'intervenantDossier', 'intervenantDossierValidation', 'intervenantDossierStatut', 'intervenantDossierCompletude', 'tblDossier', 'champsAutres', 'fieldsetRules' ); Loading
module/Application/src/Application/Entity/Db/IntervenantDossier.php +12 −6 Original line number Diff line number Diff line Loading @@ -2,12 +2,8 @@ namespace Application\Entity\Db; use Application\Entity\Db\Traits\AnneeAwareTrait; use Application\Entity\Db\Traits\CiviliteAwareTrait; use Application\Entity\Db\Traits\DisciplineAwareTrait; use Application\Entity\Db\Traits\EmployeurAwareTrait; use Application\Entity\Db\Traits\GradeAwareTrait; use Application\Entity\Db\Traits\StructureAwareTrait; use Application\Entity\Traits\AdresseTrait; use Application\Interfaces\AdresseInterface; use Doctrine\Persistence\Mapping\ClassMetadata; Loading @@ -16,8 +12,6 @@ use Doctrine\Persistence\ObjectManagerAware; use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenImport\Entity\Db\Interfaces\ImportAwareInterface; use UnicaenImport\Entity\Db\Traits\ImportAwareTrait; use Zend\Permissions\Acl\Resource\ResourceInterface; /** Loading Loading @@ -157,6 +151,11 @@ class IntervenantDossier implements HistoriqueAwareInterface, ResourceInterface, */ protected $intervenant; /** * @var TblDossier */ protected $tblDossier; /** Loading Loading @@ -831,6 +830,13 @@ class IntervenantDossier implements HistoriqueAwareInterface, ResourceInterface, public function getTblDossier(): ?TblDossier { return $this->tblDossier; } /** * * @param \Application\Entity\Db\Intervenant $intervenant Loading
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.IntervenantDossier.dcm.xml +1 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ <field name="autre4" type="string" column="AUTRE_4" length="1000" nullable="true"/> <field name="autre5" type="string" column="AUTRE_5" length="1000" nullable="true"/> <one-to-one field="tblDossier" target-entity="Application\Entity\Db\TblDossier" mapped-by="dossier" /> <many-to-one field="employeur" target-entity="Application\Entity\Db\Employeur"> <join-column name="EMPLOYEUR_ID" referenced-column-name="ID"/> Loading
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.TblDossier.dcm.xml +5 −10 Original line number Diff line number Diff line Loading @@ -3,17 +3,11 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity name="Application\Entity\Db\TblDossier" table="TBL_DOSSIER"> <indexes> <index name="IDX_126E18FDAA401F5C" columns="ANNEE_ID"/> <index name="IDX_126E18FD52CE5789" columns="DOSSIER_ID"/> <index name="IDX_126E18FDBC260C55" columns="VALIDATION_ID"/> </indexes> <unique-constraints> <unique-constraint name="tbl_dossier__un" columns="INTERVENANT_ID"/> </unique-constraints> <id name="id" type="integer" column="ID"> <generator strategy="SEQUENCE"/> <sequence-generator sequence-name="TBL_DOSSIER_ID_seq" allocation-size="1" initial-value="1"/> </id> <field name="peutSaisirDossier" type="boolean" column="PEUT_SAISIR_DOSSIER" nullable="false"> <options> Loading @@ -30,11 +24,14 @@ <join-column name="INTERVENANT_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> <many-to-one field="dossier" target-entity="Application\Entity\Db\IntervenantDossier" fetch="LAZY"> <!--<one-to-one field="dossier" target-entity="Application\Entity\Db\IntervenantDossier" fetch="LAZY"> <join-columns> <join-column name="DOSSIER_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> </one-to-one>--> <one-to-one field="dossier" target-entity="Application\Entity\Db\IntervenantDossier" inversed-by="tblDossier"> <join-column name="DOSSIER_ID" referenced-column-name="ID" /> </one-to-one> <many-to-one field="annee" target-entity="Application\Entity\Db\Annee" fetch="LAZY"> <join-columns> <join-column name="ANNEE_ID" referenced-column-name="ID"/> Loading @@ -49,7 +46,5 @@ <field name="completudeEmployeur" type="boolean" column="COMPLETUDE_EMPLOYEUR" nullable="false"/> <field name="completudeAutres" type="boolean" column="COMPLETUDE_AUTRES" nullable="false"/> <field name="completudeStatut" type="boolean" column="COMPLETUDE_STATUT" nullable="false"/> </entity> </doctrine-mapping>