From 1f4b0d881266dee75a177f93d575cc8b0f0707e2 Mon Sep 17 00:00:00 2001 From: lecluse <lecluse@d57fa8bc-6af1-4de9-8b7d-78e900e231e7> Date: Thu, 19 Nov 2015 14:49:18 +0000 Subject: [PATCH] =?UTF-8?q?Erradication=20du=20type=20d'intervenant=20dire?= =?UTF-8?q?ctement=20accessible=20depuis=20l'intervenant.=20Le=20type=20se?= =?UTF-8?q?=20d=C3=A9duit=20d=C3=A9sormais=20du=20statut=20(c'est=20+=20pr?= =?UTF-8?q?opre)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "data/Sql/__pense b\303\252te.sql" | 32 ++++++++++++++- data/Sql/intervenant changement statut.sql | 4 +- .../src/Application/Entity/Db/Intervenant.php | 6 +-- .../Application.Entity.Db.Intervenant.dcm.xml | 4 +- .../src/Application/Service/Intervenant.php | 40 ++++++++++++++++--- .../Intervenant/IntervenantViewHelper.php | 2 +- .../application/intervenant/apercevoir.phtml | 2 +- .../intervenant/voir-heures-comp.phtml | 2 +- .../view/application/intervenant/voir.phtml | 2 +- 9 files changed, 78 insertions(+), 16 deletions(-) diff --git "a/data/Sql/__pense b\303\252te.sql" "b/data/Sql/__pense b\303\252te.sql" index 93420be4ed..e409f1b77b 100644 --- "a/data/Sql/__pense b\303\252te.sql" +++ "b/data/Sql/__pense b\303\252te.sql" @@ -1 +1,31 @@ -select q'[o'connor]' from dual; \ No newline at end of file +select q'[o'connor]' from dual; + + + +select +annee_id, annee_debut_id, annee_fin_id, res res_attendu, +case when + + +annee_id BETWEEN GREATEST(NVL(annee_debut_id,0),annee_id) AND LEAST(NVL(annee_fin_id,9999),annee_id) + + +then 1 else 0 end res_calcule from ( + + SELECT 2014 annee_id, null annee_debut_id, null annee_fin_id, 1 res FROM dual + +UNION ALL SELECT 2014 annee_id, 2014 annee_debut_id, 2014 annee_fin_id, 1 res FROM dual +UNION ALL SELECT 2014 annee_id, null annee_debut_id, 2014 annee_fin_id, 1 res FROM dual +UNION ALL SELECT 2014 annee_id, 2014 annee_debut_id, null annee_fin_id, 1 res FROM dual + +UNION ALL SELECT 2014 annee_id, 2012 annee_debut_id, 2015 annee_fin_id, 1 res FROM dual +UNION ALL SELECT 2014 annee_id, null annee_debut_id, 2015 annee_fin_id, 1 res FROM dual +UNION ALL SELECT 2014 annee_id, 2012 annee_debut_id, null annee_fin_id, 1 res FROM dual + +UNION ALL SELECT 2014 annee_id, 2015 annee_debut_id, 2017 annee_fin_id, 0 res FROM dual +UNION ALL SELECT 2014 annee_id, 2015 annee_debut_id, null annee_fin_id, 0 res FROM dual + +UNION ALL SELECT 2014 annee_id, 2011 annee_debut_id, 2013 annee_fin_id, 0 res FROM dual +UNION ALL SELECT 2014 annee_id, null annee_debut_id, 2013 annee_fin_id, 0 res FROM dual + +) t1; \ No newline at end of file diff --git a/data/Sql/intervenant changement statut.sql b/data/Sql/intervenant changement statut.sql index 284ce98100..3d7db4d0bc 100644 --- a/data/Sql/intervenant changement statut.sql +++ b/data/Sql/intervenant changement statut.sql @@ -1,6 +1,8 @@ select * from intervenant where id = 3679; +select * from intervenant where source_code = '34424' AND annee_id = 2014; -update intervenant set statut_id = 4, type_id=1 WHERE id = 3112; + +update intervenant set statut_id = 4, type_id=1 WHERE id = 3681; select * from statut_intervenant; select * from type_intervenant; \ No newline at end of file diff --git a/module/Application/src/Application/Entity/Db/Intervenant.php b/module/Application/src/Application/Entity/Db/Intervenant.php index b16fb0fb8f..c37a0be18b 100644 --- a/module/Application/src/Application/Entity/Db/Intervenant.php +++ b/module/Application/src/Application/Entity/Db/Intervenant.php @@ -1141,7 +1141,7 @@ class Intervenant implements IntervenantInterface, HistoriqueAwareInterface, Res * @param \Application\Entity\Db\TypeIntervenant $type * * @return Intervenant - */ + * public function setType(\Application\Entity\Db\TypeIntervenant $type = null) { $this->type = $type; @@ -1155,11 +1155,11 @@ class Intervenant implements IntervenantInterface, HistoriqueAwareInterface, Res * Get type * * @return \Application\Entity\Db\TypeIntervenant - */ + * public function getType() { return $this->type; - } + }*/ diff --git a/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml b/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml index 6f0fac93e4..c96f32150d 100644 --- a/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml +++ b/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml @@ -96,11 +96,11 @@ <join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/> </join-columns> </many-to-one> - <many-to-one field="type" target-entity="Application\Entity\Db\TypeIntervenant"> + <!--<many-to-one field="type" target-entity="Application\Entity\Db\TypeIntervenant"> <join-columns> <join-column name="TYPE_ID" referenced-column-name="ID"/> </join-columns> - </many-to-one> + </many-to-one>--> <many-to-one field="dossier" target-entity="Application\Entity\Db\Dossier"> <join-columns> <join-column name="DOSSIER_ID" referenced-column-name="ID"/> diff --git a/module/Application/src/Application/Service/Intervenant.php b/module/Application/src/Application/Service/Intervenant.php index c2b3d830e3..4e3796905c 100644 --- a/module/Application/src/Application/Service/Intervenant.php +++ b/module/Application/src/Application/Service/Intervenant.php @@ -6,6 +6,8 @@ use Application\Entity\Db\Intervenant as IntervenantEntity; use Application\Entity\Db\Structure as StructureEntity; use Application\Entity\Db\Periode as PeriodeEntity; use Application\Entity\Db\Annee as AnneeEntity; +use Application\Entity\Db\TypeIntervenant; +use Application\Service\Traits\StatutIntervenantAwareTrait; use Common\Exception\RuntimeException; use Doctrine\ORM\QueryBuilder; use Import\Processus\Import; @@ -17,6 +19,10 @@ use Import\Processus\Import; */ class Intervenant extends AbstractEntityService { + use StatutIntervenantAwareTrait; + + + /** * Recherche par : * - id source exact (numéro Harpege ou autre), @@ -72,7 +78,7 @@ class Intervenant extends AbstractEntityService */ public function getEntityClass() { - return 'Application\Entity\Db\Intervenant'; + return IntervenantEntity::class; } @@ -252,14 +258,16 @@ class Intervenant extends AbstractEntityService /** * Recherche d'intervenant par le "source code" et l'année. * - * @param string $sourceCode Code de l'intervenant dans la source de données (ex: numéro Harpege) - * @param AnneeEntity $annee Année concernée + * @param string $sourceCode Code de l'intervenant dans la source de données (ex: numéro Harpege) + * @param AnneeEntity $annee Année concernée + * @param QueryBuilder|null $queryBuilder + * @param string|null $alias * * @return QueryBuilder */ - public function finderBySourceCodeAndAnnee($sourceCode, AnneeEntity $annee, QueryBuilder $qb = null) + public function finderBySourceCodeAndAnnee($sourceCode, AnneeEntity $annee, QueryBuilder $qb = null, $alias = null) { - list($qb, $alias) = $this->initQuery($qb); + list($qb, $alias) = $this->initQuery($qb, $alias); $qb ->andWhere("$alias.sourceCode = :code AND $alias.annee = :annee") ->setParameter('code', $sourceCode) @@ -267,4 +275,26 @@ class Intervenant extends AbstractEntityService return $qb; } + + + + /** + * Filtre par le type d'intervenant + * + * @param TypeIntervenant $typeIntervenant Type de l'intervenant + * @param QueryBuilder|null $queryBuilder + * @param string|null $alias + * + * @return QueryBuilder + */ + public function finderByType(TypeIntervenant $typeIntervenant, QueryBuilder $qb = null, $alias = null) + { + list($qb, $alias) = $this->initQuery($qb, $alias); + $sStatut = $this->getServiceStatutIntervenant(); + + $this->join($sStatut, $qb, 'statut', false, $alias); + $sStatut->finderByTypeIntervenant($typeIntervenant, $qb); + + return $qb; + } } diff --git a/module/Application/src/Application/View/Helper/Intervenant/IntervenantViewHelper.php b/module/Application/src/Application/View/Helper/Intervenant/IntervenantViewHelper.php index 370d2a3166..fd3d8721f1 100644 --- a/module/Application/src/Application/View/Helper/Intervenant/IntervenantViewHelper.php +++ b/module/Application/src/Application/View/Helper/Intervenant/IntervenantViewHelper.php @@ -70,7 +70,7 @@ class IntervenantViewHelper extends AbstractHtmlElement "Adresse" => nl2br($entity->getAdressePrincipale()), ], 'metier' => [ - "Type d'intervenant" => $entity->getType(), + "Type d'intervenant" => $entity->getStatut()->getTypeIntervenant(), "Statut de l'intervenant" => $entity->getStatut(), "N° {$entity->getSource()}" => $entity->getSourceCode(), "Affectation principale" => $entity->getStructure() ?: "(Inconnue)", diff --git a/module/Application/view/application/intervenant/apercevoir.phtml b/module/Application/view/application/intervenant/apercevoir.phtml index c3afa24f91..aaedbfafa4 100644 --- a/module/Application/view/application/intervenant/apercevoir.phtml +++ b/module/Application/view/application/intervenant/apercevoir.phtml @@ -1,3 +1,3 @@ -<h3><?php echo $intervenant ?> <small><?php echo $intervenant->getType() ?></small></h3> +<h3><?php echo $intervenant ?> <small><?php echo $intervenant->getStatut()->getTypeIntervenant() ?></small></h3> <?php echo $this->intervenant($intervenant) ?> diff --git a/module/Application/view/application/intervenant/voir-heures-comp.phtml b/module/Application/view/application/intervenant/voir-heures-comp.phtml index adb3affdd4..e48f0166e7 100644 --- a/module/Application/view/application/intervenant/voir-heures-comp.phtml +++ b/module/Application/view/application/intervenant/voir-heures-comp.phtml @@ -24,7 +24,7 @@ $this->headTitle()->append($intervenant->getNomUsuel())->append("Heures compl.") <style> th { background-color: #eee } </style> -<h1 class="page-header"><?php echo $intervenant ?> <small><?php echo $intervenant->getType() ?></small></h1> +<h1 class="page-header"><?php echo $intervenant ?> <small><?php echo $intervenant->getStatut()->getTypeIntervenant() ?></small></h1> <?php echo $this->form()->openTag($form->prepare()); ?> <div class="row"> <div class="col-sm-4"><?php echo $this->formControlGroup($form->get('type-volume-horaire')); ?></div> diff --git a/module/Application/view/application/intervenant/voir.phtml b/module/Application/view/application/intervenant/voir.phtml index 8eec90f67f..192fc826b1 100644 --- a/module/Application/view/application/intervenant/voir.phtml +++ b/module/Application/view/application/intervenant/voir.phtml @@ -1,6 +1,6 @@ <?php $this->headTitle()->append($intervenant->getNomUsuel())->append("Fiche") ?> -<h1 class="page-header"><?php echo $intervenant ?> <small><?php echo $intervenant->getType() ?></small></h1> +<h1 class="page-header"><?php echo $intervenant ?> <small><?php echo $intervenant->getStatut()->getTypeIntervenant() ?></small></h1> <?php echo $this->intervenant($intervenant) ?> -- GitLab