diff --git a/module/Application/src/Application/Controller/ServiceController.php b/module/Application/src/Application/Controller/ServiceController.php index af137463cdfce51165b7a865b97c9ddf60bec72d..d23dc95b4106dc9dda944f2c58f1ea5cf5a4a3f5 100644 --- a/module/Application/src/Application/Controller/ServiceController.php +++ b/module/Application/src/Application/Controller/ServiceController.php @@ -343,6 +343,7 @@ class ServiceController extends AbstractController } $service = $this->getServiceService(); $form = $this->getFormServiceSaisie(); + $form->setTypeVolumeHoraire($typeVolumeHoraire); $element = $this->context()->elementPedagogiqueFromPost('element'); $etablissement = $this->context()->etablissementFromPost(); @@ -464,6 +465,7 @@ class ServiceController extends AbstractController } $service = $this->getServiceService(); $form = $this->getFormServiceSaisie(); + $form->setTypeVolumeHoraire($typeVolumeHoraire); $intervenant = $this->getServiceLocalContext()->getIntervenant(); diff --git a/module/Application/src/Application/Controller/VolumeHoraireController.php b/module/Application/src/Application/Controller/VolumeHoraireController.php index 9d8ebda1761a4144a151365dd091f90c669c2807..15788dfbcf0f0534a6068b36a7023c4d4e2eb8a9 100644 --- a/module/Application/src/Application/Controller/VolumeHoraireController.php +++ b/module/Application/src/Application/Controller/VolumeHoraireController.php @@ -29,101 +29,106 @@ class VolumeHoraireController extends AbstractController use WorkflowServiceAwareTrait; use PlafondProcessusAwareTrait; + + public function listeAction() { $this->em()->getFilters()->enable('historique')->init([ - \Application\Entity\Db\VolumeHoraire::class + \Application\Entity\Db\VolumeHoraire::class, ]); $service = $this->getEvent()->getParam('service'); - /* @var $service Service */ - if (! $service) throw new RuntimeException("Service non spécifié ou introuvable."); + /* @var $service Service */ + if (!$service) throw new RuntimeException("Service non spécifié ou introuvable."); $typeVolumeHoraire = $this->context()->typeVolumeHoraireFromQueryPost('type-volume-horaire'); $service->setTypeVolumeHoraire($typeVolumeHoraire); - $readOnly = 1 == (int)$this->params()->fromQuery('read-only', 0); + $readOnly = 1 == (int)$this->params()->fromQuery('read-only', 0); + + $volumeHoraireListe = $service->getVolumeHoraireListe()->setTypeVolumehoraire($typeVolumeHoraire); + $semestriel = $this->getServiceContext()->isModaliteServicesSemestriel($typeVolumeHoraire); - $volumeHoraireListe = $service->getVolumeHoraireListe()->setTypeVolumehoraire( $typeVolumeHoraire ); - $semestriel = $this->getServiceContext()->isModaliteServicesSemestriel(); return compact('volumeHoraireListe', 'readOnly', 'semestriel'); } + + public function saisieAction() { $this->em()->getFilters()->enable('historique')->init([ \Application\Entity\Db\VolumeHoraire::class, - \Application\Entity\Db\MotifNonPaiement::class + \Application\Entity\Db\MotifNonPaiement::class, ]); - $service = $this->context()->serviceFromRoute(); - $typeVolumehoraire = $this->context()->typeVolumeHoraireFromQueryPost('type-volume-horaire'); - $periode = $this->context()->periodeFromQueryPost(); - $typeIntervention = $this->context()->typeInterventionFromQueryPost('type-intervention'); - $errors = []; + $service = $this->context()->serviceFromRoute(); + $typeVolumehoraire = $this->context()->typeVolumeHoraireFromQueryPost('type-volume-horaire'); + $periode = $this->context()->periodeFromQueryPost(); + $typeIntervention = $this->context()->typeInterventionFromQueryPost('type-intervention'); + $errors = []; $canViewMNP = $this->isAllowed($service->getIntervenant(), Privileges::MOTIF_NON_PAIEMENT_VISUALISATION); $canEditMNP = $this->isAllowed($service->getIntervenant(), Privileges::MOTIF_NON_PAIEMENT_EDITION); - if ($canViewMNP){ + if ($canViewMNP) { $tousMotifsNonPaiement = $this->params()->fromQuery('tous-motifs-non-paiement'); - if ($tousMotifsNonPaiement == '1'){ - $motifNonPaiement = false; - }else{ - $motifNonPaiement = $this->context()->motifNonPaiementFromQueryPost('motif-non-paiement'); + if ($tousMotifsNonPaiement == '1') { + $motifNonPaiement = false; + } else { + $motifNonPaiement = $this->context()->motifNonPaiementFromQueryPost('motif-non-paiement'); } $ancienMotifNonPaiement = $this->context()->motifNonPaiementFromQueryPost('ancien-motif-non-paiement', $motifNonPaiement); - }else{ - $motifNonPaiement = false; + } else { + $motifNonPaiement = false; $ancienMotifNonPaiement = false; } - /* @var $service \Application\Entity\Db\Service */ - $service->setTypeVolumeHoraire( $typeVolumehoraire ); + $service->setTypeVolumeHoraire($typeVolumehoraire); $volumeHoraireList = $service->getVolumeHoraireListe($periode, $typeIntervention); $volumeHoraireList->setMotifNonPaiement($motifNonPaiement); $form = $this->getFormVolumeHoraireSaisie(); - $form->setViewMNP( $canViewMNP ); - $form->setEditMNP( $canEditMNP ); + $form->setViewMNP($canViewMNP); + $form->setEditMNP($canEditMNP); $request = $this->getRequest(); - if ($request->isPost()){ + if ($request->isPost()) { $heures = StringFromFloat::run($request->getPost()['heures']); - try{ + try { $volumeHoraireList->setHeures($heures, $motifNonPaiement, $ancienMotifNonPaiement); - }catch(\Exception $e){ + } catch (\Exception $e) { $errors[] = $e->getMessage(); } } - $form->bind( $volumeHoraireList ); - if ($request->isPost()){ - if ($form->isValid()){ - try{ + $form->bind($volumeHoraireList); + if ($request->isPost()) { + if ($form->isValid()) { + try { $this->getProcessusPlafond()->beginTransaction(); $this->getServiceService()->save($service); $this->updateTableauxBord($service->getIntervenant()); $this->getProcessusPlafond()->endTransaction($service->getIntervenant(), $typeVolumehoraire); - }catch(\Exception $e){ - $e = DbException::translate($e); + } catch (\Exception $e) { + $e = DbException::translate($e); $errors[] = $e->getMessage(); } - }else{ + } else { $errors[] = 'La validation du formulaire a échoué. L\'enregistrement des données n\'a donc pas été fait.'; } } - $terminal = $this->getRequest()->isXmlHttpRequest(); + $terminal = $this->getRequest()->isXmlHttpRequest(); $viewModel = new \Zend\View\Model\ViewModel(); $viewModel - ->setTemplate('application/volume-horaire/saisie') - ->setVariables(compact('form', 'errors', 'ancienMotifNonPaiement')); + ->setTemplate('application/volume-horaire/saisie') + ->setVariables(compact('form', 'errors', 'ancienMotifNonPaiement')); if ($terminal) { return $this->popoverInnerViewModel($viewModel, "Saisie d'heures d'enseignement", false); } + return $viewModel; } @@ -132,7 +137,7 @@ class VolumeHoraireController extends AbstractController private function updateTableauxBord(Intervenant $intervenant) { $this->getServiceWorkflow()->calculerTableauxBord([ - 'formule','validation_enseignement','service','service_saisie','piece_jointe_fournie' + 'formule', 'validation_enseignement', 'service', 'service_saisie', 'piece_jointe_fournie', ], $intervenant); } diff --git a/module/Application/src/Application/Form/Service/Saisie.php b/module/Application/src/Application/Form/Service/Saisie.php index 11c300af2aa3b8dc17efda94566f8e333f5ec5b0..0ff231ff171189ad93317faec14e0f4457da1595 100644 --- a/module/Application/src/Application/Form/Service/Saisie.php +++ b/module/Application/src/Application/Form/Service/Saisie.php @@ -4,6 +4,7 @@ namespace Application\Form\Service; use Application\Entity\Db\Periode; use Application\Entity\Db\Service; +use Application\Entity\Db\Traits\TypeVolumeHoraireAwareTrait; use Application\Form\AbstractForm; use Application\Form\Service\Traits\SaisieFieldsetAwareTrait; use Application\Form\VolumeHoraire\Traits\SaisieMultipleFieldsetAwareTrait; @@ -20,6 +21,7 @@ use Zend\Stdlib\Hydrator\HydratorInterface; */ class Saisie extends AbstractForm { + use TypeVolumeHoraireAwareTrait; use PeriodeServiceAwareTrait; use SaisieFieldsetAwareTrait; use SaisieMultipleFieldsetAwareTrait; diff --git a/module/Application/src/Application/Service/ContextService.php b/module/Application/src/Application/Service/ContextService.php index 02b63ec3b479830a4b2df66e4d44bde9cb6a82ee..fc85fd73d91744fcf967d63d564f5bc19c41e25d 100644 --- a/module/Application/src/Application/Service/ContextService.php +++ b/module/Application/src/Application/Service/ContextService.php @@ -187,7 +187,7 @@ class ContextService extends AbstractService */ public function isModaliteServicesSemestriel($typeVolumeHoraire = TypeVolumeHoraire::CODE_PREVU): bool { - return $this->getModaliteServices() == Parametre::SERVICES_MODALITE_SEMESTRIEL; + return $this->getModaliteServices($typeVolumeHoraire) == Parametre::SERVICES_MODALITE_SEMESTRIEL; } diff --git a/module/Application/src/Application/View/Helper/Service/Liste.php b/module/Application/src/Application/View/Helper/Service/Liste.php index dc78da31b02f229cb251da055738d240825659a0..5dd8e2ccbc70de964f605a0ddeecbda27adc092e 100644 --- a/module/Application/src/Application/View/Helper/Service/Liste.php +++ b/module/Application/src/Application/View/Helper/Service/Liste.php @@ -296,7 +296,7 @@ class Liste extends AbstractViewHelper { $ligneView = $this->getView()->serviceLigne($this, $service); - if ($this->getServiceContext()->isModaliteServicesSemestriel()){ + if ($this->getServiceContext()->isModaliteServicesSemestriel($this->getTypeVolumeHoraire())){ $volumeHoraireListe = $this->getView()->volumeHoraireListe($service->getVolumeHoraireListe()); /* @var $volumeHoraireListe \Application\View\Helper\VolumeHoraire\Liste */ }else{ diff --git a/module/Application/src/Application/View/Helper/Service/SaisieForm.php b/module/Application/src/Application/View/Helper/Service/SaisieForm.php index 7966ae1849a4b4bb61572d6ca5368f5590602673..e572d93d237d000a068546453e2b5d11d8c763d4 100644 --- a/module/Application/src/Application/View/Helper/Service/SaisieForm.php +++ b/module/Application/src/Application/View/Helper/Service/SaisieForm.php @@ -2,7 +2,6 @@ namespace Application\View\Helper\Service; -use Application\Entity\Db\Parametre; use Application\Entity\Db\Periode; use Application\Entity\Db\Service; use Application\Entity\Db\TypeVolumeHoraire; @@ -130,7 +129,7 @@ class SaisieForm extends AbstractViewHelper public function renderVolumesHoraires() { - if (!$this->getServiceContext()->isModaliteServicesSemestriel()){ + if (!$this->getServiceContext()->isModaliteServicesSemestriel($this->form->getTypeVolumeHoraire())){ return null; } $res = ''; diff --git a/module/Application/view/application/service/volumes-horaires-refresh.phtml b/module/Application/view/application/service/volumes-horaires-refresh.phtml index bf78c0f5461db131664bf92964df4974ea8a1c94..b3d8296a2485611d4f86d4f30d372902c361664b 100644 --- a/module/Application/view/application/service/volumes-horaires-refresh.phtml +++ b/module/Application/view/application/service/volumes-horaires-refresh.phtml @@ -1,3 +1,7 @@ <?php +/** + * @var $this \Application\View\Renderer\PhpRenderer + */ + echo $this->serviceSaisieForm( $form )->renderVolumesHoraires(); \ No newline at end of file