Loading code/test3.php +16 −0 Changes for code/test3.php: 16 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,3 +7,19 @@ * @var $viewName string * @var $viewFile string */ /** @var \Application\Service\ContextService $c */ $c = $container->get(\Application\Service\ContextService::class); $roleId = $c->getSelectedIdentityRole()->getRoleId(); var_dump($roleId); $p = $c->getIntervenant()->getStatut()->getPrivileges(); foreach ($p as $priv => $ok) { if (!$ok) unset($p[$priv]); } //$p = $r->getPrivileges(); var_dump(array_keys($p)); No newline at end of file data/indicateurs.php +1 −1 Changes for data/indicateurs.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ return [ 'enabled' => true, 'libelle_singulier' => '%s intervenant a saisi des enseignements dont l\'étape, l\'élément pédagogique ou la période ont disparu', 'libelle_pluriel' => '%s intervenants ont saisi des enseignements dont l\'étape, l\'élément pédagogique ou la période ont disparu', 'route' => 'intervenant/services', 'route' => 'intervenant/services-prevus', 'irrecevables' => false, ], ], Loading data/workflow_etapes.php +1 −1 Changes for data/workflow_etapes.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ return [ "SERVICE_SAISIE" => [ "LIBELLE_INTERVENANT" => "Je saisis mes enseignements prévisionnels", "LIBELLE_AUTRES" => "J'accède aux enseignements prévisionnels", "ROUTE" => "intervenant/services", "ROUTE" => "intervenant/services-prevus", "DESC_NON_FRANCHIE" => "Aucun enseignement prévisionnel n'a été saisi", "OBLIGATOIRE" => true, ], Loading module/Application/config/intervenant.config.php +17 −12 Changes for module/Application/config/intervenant.config.php: 17 added lines, 12 removed lines. Original line number Diff line number Diff line Loading @@ -182,14 +182,13 @@ return [ ], ], ], 'services' => [ 'services-prevus' => [ 'type' => 'Segment', 'options' => [ 'route' => '/:intervenant/services', 'route' => '/:intervenant/services-prevus', 'defaults' => [ 'controller' => 'Application\Controller\Intervenant', 'action' => 'services', 'type-volume-horaire-code' => Entity\Db\TypeVolumeHoraire::CODE_PREVU, 'action' => 'services-prevus', ], ], ], Loading @@ -210,8 +209,7 @@ return [ 'route' => '/:intervenant/services-realises', 'defaults' => [ 'controller' => 'Application\Controller\Intervenant', 'action' => 'services', 'type-volume-horaire-code' => Entity\Db\TypeVolumeHoraire::CODE_REALISE, 'action' => 'services-realises', ], ], ], Loading Loading @@ -415,16 +413,16 @@ return [ 'resource' => PrivilegeController::getResourceId('Application\Controller\ModificationServiceDu', 'saisir'), 'order' => 4, ], 'service' => [ 'services-prevus' => [ 'label' => "Enseignements prévisionnels", 'title' => "Enseignements prévisionnels de l'intervenant", 'route' => 'intervenant/services', 'route' => 'intervenant/services-prevus', 'paramsInject' => [ 'intervenant', ], 'workflow-etape-code' => WfEtape::CODE_SERVICE_SAISIE, 'withtarget' => true, 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'services'), 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'services-prevus'), 'visible' => Assertion\ServiceAssertion::class, 'order' => 6, ], Loading @@ -448,7 +446,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_SERVICE_SAISIE_REALISE, 'withtarget' => true, 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'services'), 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'services-realises'), 'visible' => Assertion\ServiceAssertion::class, 'order' => 13, ], Loading Loading @@ -477,11 +475,18 @@ return [ ], [ 'controller' => 'Application\Controller\Intervenant', 'action' => ['services'], 'action' => ['services-prevus'], 'privileges' => [ Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, Privileges::REFERENTIEL_PREVU_VISUALISATION, ], 'assertion' => Assertion\ServiceAssertion::class, ], [ 'controller' => 'Application\Controller\Intervenant', 'action' => ['services-realises'], 'privileges' => [ Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, Privileges::REFERENTIEL_REALISE_VISUALISATION, ], 'assertion' => Assertion\ServiceAssertion::class, Loading module/Application/src/Assertion/ServiceAssertion.php +127 −22 Changes for module/Application/src/Assertion/ServiceAssertion.php: 127 added lines, 22 removed lines. Original line number Diff line number Diff line Loading @@ -74,6 +74,12 @@ class ServiceAssertion extends AbstractAssertion case 'intervenant/validation/service/prevu': return $this->assertEntity($intervenant, Privileges::ENSEIGNEMENT_PREVU_VISUALISATION); break; case 'intervenant/services-prevus': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_PREVU); break; case 'intervenant/services-realises': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_REALISE); break; } } Loading Loading @@ -140,14 +146,28 @@ class ServiceAssertion extends AbstractAssertion case $entity instanceof Intervenant: switch ($privilege) { case Privileges::ENSEIGNEMENT_PREVU_VISUALISATION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_PREVU, false); case Privileges::ENSEIGNEMENT_PREVU_EDITION: case Privileges::REFERENTIEL_PREVU_VISUALISATION: case Privileges::REFERENTIEL_PREVU_EDITION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_PREVU, true); case Privileges::ENSEIGNEMENT_REALISE_VISUALISATION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_REALISE, false); case Privileges::ENSEIGNEMENT_REALISE_EDITION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_REALISE, true); case Privileges::REFERENTIEL_PREVU_VISUALISATION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_PREVU, false); case Privileges::REFERENTIEL_PREVU_EDITION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_PREVU, true); case Privileges::REFERENTIEL_REALISE_VISUALISATION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_REALISE, false); case Privileges::REFERENTIEL_REALISE_EDITION: return $this->assertIntervenant($role, $entity); return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_REALISE, true); case Privileges::MOTIF_NON_PAIEMENT_VISUALISATION: case Privileges::MOTIF_NON_PAIEMENT_EDITION: Loading Loading @@ -205,8 +225,12 @@ class ServiceAssertion extends AbstractAssertion return $this->assertImportAgenda($role); break; case 'Application\Controller\Intervenant.services': return $this->assertPageServices($role, $intervenant); case 'Application\Controller\Intervenant.servicesPrevus': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_PREVU); break; case 'Application\Controller\Intervenant.servicesRealises': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_REALISE); break; } return true; Loading @@ -214,20 +238,28 @@ class ServiceAssertion extends AbstractAssertion protected function assertPageServices(Role $role, Intervenant $intervenant = null) protected function assertPageServices(Role $role, Intervenant $intervenant = null, string $typeVolumeHoraireCode) { if (!$intervenant) return true; $typeVolumehoraireCode = $this->getMvcEvent()->getRouteMatch()->getParam('type-volume-horaire-code'); if (!$typeVolumehoraireCode) return true; $typeVolumeHoraire = $this->getServiceTypeVolumeHoraire()->getByCode($typeVolumehoraireCode); $statut = $intervenant->getStatut(); $typeVolumeHoraire = $this->getServiceTypeVolumeHoraire()->getByCode($typeVolumeHoraireCode); $wfEtape = $this->getWorkflowEtape($typeVolumeHoraire, 'saisie'); return $this->asserts([ $asserts = [ $this->assertIntervenant($role, $intervenant), $this->assertEtapeAtteignable($wfEtape, $intervenant), ]); ]; if ($typeVolumeHoraire->isPrevu()) { $asserts[] = $statut->getServicePrevu() || $statut->getReferentielPrevu(); } if ($typeVolumeHoraire->isRealise()) { $asserts[] = $statut->getServiceRealise() || $statut->getReferentielRealise(); } return $this->asserts($asserts); } Loading @@ -235,7 +267,12 @@ class ServiceAssertion extends AbstractAssertion protected function assertEnseignements(Role $role) { return $this->asserts([ ($role->hasPrivilege(Privileges::ENSEIGNEMENT_PREVU_VISUALISATION) || $role->hasPrivilege(Privileges::ENSEIGNEMENT_REALISE_VISUALISATION)), ( $role->hasPrivilege(Privileges::ENSEIGNEMENT_PREVU_VISUALISATION) || $role->hasPrivilege(Privileges::ENSEIGNEMENT_REALISE_VISUALISATION) || $role->hasPrivilege(Privileges::REFERENTIEL_PREVU_VISUALISATION) || $role->hasPrivilege(Privileges::REFERENTIEL_REALISE_VISUALISATION) ), !$role->getIntervenant(), ]); } Loading @@ -252,24 +289,48 @@ class ServiceAssertion extends AbstractAssertion protected function assertServiceVisualisation(Role $role, Service $service) { $wfEtape = $this->getWorkflowEtape($service->getTypeVolumeHoraire(), 'saisie'); $typeVolumeHoraire = $service->getTypeVolumeHoraire(); $intervenant = $service->getIntervenant(); $statut = $intervenant->getStatut(); return $this->asserts([ $this->assertIntervenant($role, $service->getIntervenant()), $this->assertEtapeAtteignable($wfEtape, $service->getIntervenant()), ]); $wfEtape = $this->getWorkflowEtape($typeVolumeHoraire, 'saisie'); $asserts = [ $this->assertIntervenant($role, $intervenant), $this->assertEtapeAtteignable($wfEtape, $intervenant), ]; if ($typeVolumeHoraire->isPrevu()) { $asserts[] = $statut->getServicePrevu(); } if ($typeVolumeHoraire->isRealise()) { $asserts[] = $statut->getServiceRealise(); } return $this->asserts($asserts); } protected function assertServiceReferentielVisualisation(Role $role, ServiceReferentiel $serviceReferentiel) { $wfEtape = $this->getWorkflowEtape($serviceReferentiel->getTypeVolumeHoraire(), 'saisie'); $typeVolumeHoraire = $serviceReferentiel->getTypeVolumeHoraire(); $intervenant = $serviceReferentiel->getIntervenant(); $statut = $intervenant->getStatut(); return $this->asserts([ $this->assertIntervenant($role, $serviceReferentiel->getIntervenant()), $this->assertEtapeAtteignable($wfEtape, $serviceReferentiel->getIntervenant()), ]); $wfEtape = $this->getWorkflowEtape($typeVolumeHoraire, 'saisie'); $asserts = [ $this->assertIntervenant($role, $intervenant), $this->assertEtapeAtteignable($wfEtape, $intervenant), ]; if ($typeVolumeHoraire->isPrevu()) { $asserts[] = $statut->getServicePrevu(); } if ($typeVolumeHoraire->isRealise()) { $asserts[] = $statut->getServiceRealise(); } return $this->asserts($asserts); } Loading Loading @@ -507,6 +568,50 @@ class ServiceAssertion extends AbstractAssertion protected function assertIntervenantService( Role $role, Intervenant $intervenant, string $typeVolumeHoraireCode, bool $edition = false ) { if (!$this->assertIntervenant($role, $intervenant)) return false; // si on n'est pas le bon intervenant!! $statut = $intervenant->getStatut(); if (TypeVolumeHoraire::CODE_PREVU == $typeVolumeHoraireCode) { if (!$statut->getServicePrevu()) return false; } if (TypeVolumeHoraire::CODE_REALISE == $typeVolumeHoraireCode) { if (!$statut->getServiceRealise()) return false; } return true; } protected function assertIntervenantReferentiel( Role $role, Intervenant $intervenant, string $typeVolumeHoraireCode, bool $edition = false ) { if (!$this->assertIntervenant($role, $intervenant)) return false; // si on n'est pas le bon intervenant!! $statut = $intervenant->getStatut(); if (TypeVolumeHoraire::CODE_PREVU == $typeVolumeHoraireCode) { if (!$statut->getReferentielPrevu()) return false; } if (TypeVolumeHoraire::CODE_REALISE == $typeVolumeHoraireCode) { if (!$statut->getReferentielRealise()) return false; } return true; } protected function assertStructure(Role $role, ?Structure $structure = null) { if ($structure) { Loading Loading
code/test3.php +16 −0 Changes for code/test3.php: 16 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,3 +7,19 @@ * @var $viewName string * @var $viewFile string */ /** @var \Application\Service\ContextService $c */ $c = $container->get(\Application\Service\ContextService::class); $roleId = $c->getSelectedIdentityRole()->getRoleId(); var_dump($roleId); $p = $c->getIntervenant()->getStatut()->getPrivileges(); foreach ($p as $priv => $ok) { if (!$ok) unset($p[$priv]); } //$p = $r->getPrivileges(); var_dump(array_keys($p)); No newline at end of file
data/indicateurs.php +1 −1 Changes for data/indicateurs.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ return [ 'enabled' => true, 'libelle_singulier' => '%s intervenant a saisi des enseignements dont l\'étape, l\'élément pédagogique ou la période ont disparu', 'libelle_pluriel' => '%s intervenants ont saisi des enseignements dont l\'étape, l\'élément pédagogique ou la période ont disparu', 'route' => 'intervenant/services', 'route' => 'intervenant/services-prevus', 'irrecevables' => false, ], ], Loading
data/workflow_etapes.php +1 −1 Changes for data/workflow_etapes.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ return [ "SERVICE_SAISIE" => [ "LIBELLE_INTERVENANT" => "Je saisis mes enseignements prévisionnels", "LIBELLE_AUTRES" => "J'accède aux enseignements prévisionnels", "ROUTE" => "intervenant/services", "ROUTE" => "intervenant/services-prevus", "DESC_NON_FRANCHIE" => "Aucun enseignement prévisionnel n'a été saisi", "OBLIGATOIRE" => true, ], Loading
module/Application/config/intervenant.config.php +17 −12 Changes for module/Application/config/intervenant.config.php: 17 added lines, 12 removed lines. Original line number Diff line number Diff line Loading @@ -182,14 +182,13 @@ return [ ], ], ], 'services' => [ 'services-prevus' => [ 'type' => 'Segment', 'options' => [ 'route' => '/:intervenant/services', 'route' => '/:intervenant/services-prevus', 'defaults' => [ 'controller' => 'Application\Controller\Intervenant', 'action' => 'services', 'type-volume-horaire-code' => Entity\Db\TypeVolumeHoraire::CODE_PREVU, 'action' => 'services-prevus', ], ], ], Loading @@ -210,8 +209,7 @@ return [ 'route' => '/:intervenant/services-realises', 'defaults' => [ 'controller' => 'Application\Controller\Intervenant', 'action' => 'services', 'type-volume-horaire-code' => Entity\Db\TypeVolumeHoraire::CODE_REALISE, 'action' => 'services-realises', ], ], ], Loading Loading @@ -415,16 +413,16 @@ return [ 'resource' => PrivilegeController::getResourceId('Application\Controller\ModificationServiceDu', 'saisir'), 'order' => 4, ], 'service' => [ 'services-prevus' => [ 'label' => "Enseignements prévisionnels", 'title' => "Enseignements prévisionnels de l'intervenant", 'route' => 'intervenant/services', 'route' => 'intervenant/services-prevus', 'paramsInject' => [ 'intervenant', ], 'workflow-etape-code' => WfEtape::CODE_SERVICE_SAISIE, 'withtarget' => true, 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'services'), 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'services-prevus'), 'visible' => Assertion\ServiceAssertion::class, 'order' => 6, ], Loading @@ -448,7 +446,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_SERVICE_SAISIE_REALISE, 'withtarget' => true, 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'services'), 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'services-realises'), 'visible' => Assertion\ServiceAssertion::class, 'order' => 13, ], Loading Loading @@ -477,11 +475,18 @@ return [ ], [ 'controller' => 'Application\Controller\Intervenant', 'action' => ['services'], 'action' => ['services-prevus'], 'privileges' => [ Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, Privileges::REFERENTIEL_PREVU_VISUALISATION, ], 'assertion' => Assertion\ServiceAssertion::class, ], [ 'controller' => 'Application\Controller\Intervenant', 'action' => ['services-realises'], 'privileges' => [ Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, Privileges::REFERENTIEL_REALISE_VISUALISATION, ], 'assertion' => Assertion\ServiceAssertion::class, Loading
module/Application/src/Assertion/ServiceAssertion.php +127 −22 Changes for module/Application/src/Assertion/ServiceAssertion.php: 127 added lines, 22 removed lines. Original line number Diff line number Diff line Loading @@ -74,6 +74,12 @@ class ServiceAssertion extends AbstractAssertion case 'intervenant/validation/service/prevu': return $this->assertEntity($intervenant, Privileges::ENSEIGNEMENT_PREVU_VISUALISATION); break; case 'intervenant/services-prevus': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_PREVU); break; case 'intervenant/services-realises': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_REALISE); break; } } Loading Loading @@ -140,14 +146,28 @@ class ServiceAssertion extends AbstractAssertion case $entity instanceof Intervenant: switch ($privilege) { case Privileges::ENSEIGNEMENT_PREVU_VISUALISATION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_PREVU, false); case Privileges::ENSEIGNEMENT_PREVU_EDITION: case Privileges::REFERENTIEL_PREVU_VISUALISATION: case Privileges::REFERENTIEL_PREVU_EDITION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_PREVU, true); case Privileges::ENSEIGNEMENT_REALISE_VISUALISATION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_REALISE, false); case Privileges::ENSEIGNEMENT_REALISE_EDITION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_REALISE, true); case Privileges::REFERENTIEL_PREVU_VISUALISATION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_PREVU, false); case Privileges::REFERENTIEL_PREVU_EDITION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_PREVU, true); case Privileges::REFERENTIEL_REALISE_VISUALISATION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_REALISE, false); case Privileges::REFERENTIEL_REALISE_EDITION: return $this->assertIntervenant($role, $entity); return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_REALISE, true); case Privileges::MOTIF_NON_PAIEMENT_VISUALISATION: case Privileges::MOTIF_NON_PAIEMENT_EDITION: Loading Loading @@ -205,8 +225,12 @@ class ServiceAssertion extends AbstractAssertion return $this->assertImportAgenda($role); break; case 'Application\Controller\Intervenant.services': return $this->assertPageServices($role, $intervenant); case 'Application\Controller\Intervenant.servicesPrevus': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_PREVU); break; case 'Application\Controller\Intervenant.servicesRealises': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_REALISE); break; } return true; Loading @@ -214,20 +238,28 @@ class ServiceAssertion extends AbstractAssertion protected function assertPageServices(Role $role, Intervenant $intervenant = null) protected function assertPageServices(Role $role, Intervenant $intervenant = null, string $typeVolumeHoraireCode) { if (!$intervenant) return true; $typeVolumehoraireCode = $this->getMvcEvent()->getRouteMatch()->getParam('type-volume-horaire-code'); if (!$typeVolumehoraireCode) return true; $typeVolumeHoraire = $this->getServiceTypeVolumeHoraire()->getByCode($typeVolumehoraireCode); $statut = $intervenant->getStatut(); $typeVolumeHoraire = $this->getServiceTypeVolumeHoraire()->getByCode($typeVolumeHoraireCode); $wfEtape = $this->getWorkflowEtape($typeVolumeHoraire, 'saisie'); return $this->asserts([ $asserts = [ $this->assertIntervenant($role, $intervenant), $this->assertEtapeAtteignable($wfEtape, $intervenant), ]); ]; if ($typeVolumeHoraire->isPrevu()) { $asserts[] = $statut->getServicePrevu() || $statut->getReferentielPrevu(); } if ($typeVolumeHoraire->isRealise()) { $asserts[] = $statut->getServiceRealise() || $statut->getReferentielRealise(); } return $this->asserts($asserts); } Loading @@ -235,7 +267,12 @@ class ServiceAssertion extends AbstractAssertion protected function assertEnseignements(Role $role) { return $this->asserts([ ($role->hasPrivilege(Privileges::ENSEIGNEMENT_PREVU_VISUALISATION) || $role->hasPrivilege(Privileges::ENSEIGNEMENT_REALISE_VISUALISATION)), ( $role->hasPrivilege(Privileges::ENSEIGNEMENT_PREVU_VISUALISATION) || $role->hasPrivilege(Privileges::ENSEIGNEMENT_REALISE_VISUALISATION) || $role->hasPrivilege(Privileges::REFERENTIEL_PREVU_VISUALISATION) || $role->hasPrivilege(Privileges::REFERENTIEL_REALISE_VISUALISATION) ), !$role->getIntervenant(), ]); } Loading @@ -252,24 +289,48 @@ class ServiceAssertion extends AbstractAssertion protected function assertServiceVisualisation(Role $role, Service $service) { $wfEtape = $this->getWorkflowEtape($service->getTypeVolumeHoraire(), 'saisie'); $typeVolumeHoraire = $service->getTypeVolumeHoraire(); $intervenant = $service->getIntervenant(); $statut = $intervenant->getStatut(); return $this->asserts([ $this->assertIntervenant($role, $service->getIntervenant()), $this->assertEtapeAtteignable($wfEtape, $service->getIntervenant()), ]); $wfEtape = $this->getWorkflowEtape($typeVolumeHoraire, 'saisie'); $asserts = [ $this->assertIntervenant($role, $intervenant), $this->assertEtapeAtteignable($wfEtape, $intervenant), ]; if ($typeVolumeHoraire->isPrevu()) { $asserts[] = $statut->getServicePrevu(); } if ($typeVolumeHoraire->isRealise()) { $asserts[] = $statut->getServiceRealise(); } return $this->asserts($asserts); } protected function assertServiceReferentielVisualisation(Role $role, ServiceReferentiel $serviceReferentiel) { $wfEtape = $this->getWorkflowEtape($serviceReferentiel->getTypeVolumeHoraire(), 'saisie'); $typeVolumeHoraire = $serviceReferentiel->getTypeVolumeHoraire(); $intervenant = $serviceReferentiel->getIntervenant(); $statut = $intervenant->getStatut(); return $this->asserts([ $this->assertIntervenant($role, $serviceReferentiel->getIntervenant()), $this->assertEtapeAtteignable($wfEtape, $serviceReferentiel->getIntervenant()), ]); $wfEtape = $this->getWorkflowEtape($typeVolumeHoraire, 'saisie'); $asserts = [ $this->assertIntervenant($role, $intervenant), $this->assertEtapeAtteignable($wfEtape, $intervenant), ]; if ($typeVolumeHoraire->isPrevu()) { $asserts[] = $statut->getServicePrevu(); } if ($typeVolumeHoraire->isRealise()) { $asserts[] = $statut->getServiceRealise(); } return $this->asserts($asserts); } Loading Loading @@ -507,6 +568,50 @@ class ServiceAssertion extends AbstractAssertion protected function assertIntervenantService( Role $role, Intervenant $intervenant, string $typeVolumeHoraireCode, bool $edition = false ) { if (!$this->assertIntervenant($role, $intervenant)) return false; // si on n'est pas le bon intervenant!! $statut = $intervenant->getStatut(); if (TypeVolumeHoraire::CODE_PREVU == $typeVolumeHoraireCode) { if (!$statut->getServicePrevu()) return false; } if (TypeVolumeHoraire::CODE_REALISE == $typeVolumeHoraireCode) { if (!$statut->getServiceRealise()) return false; } return true; } protected function assertIntervenantReferentiel( Role $role, Intervenant $intervenant, string $typeVolumeHoraireCode, bool $edition = false ) { if (!$this->assertIntervenant($role, $intervenant)) return false; // si on n'est pas le bon intervenant!! $statut = $intervenant->getStatut(); if (TypeVolumeHoraire::CODE_PREVU == $typeVolumeHoraireCode) { if (!$statut->getReferentielPrevu()) return false; } if (TypeVolumeHoraire::CODE_REALISE == $typeVolumeHoraireCode) { if (!$statut->getReferentielRealise()) return false; } return true; } protected function assertStructure(Role $role, ?Structure $structure = null) { if ($structure) { Loading