diff --git "a/data/Sql/__pense b\303\252te.sql" "b/data/Sql/__pense b\303\252te.sql" index 93420be4ed1416c17d1cb75212ce7d57824f4141..e409f1b77b55bb5248a51bd32062a13e5a109aa9 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 284ce981005d4d0e8ee727c826f4e1513d5aa97d..3d7db4d0bcb24ec15cdcbec97c83e169be4af552 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 b16fb0fb8f9ce4ef3159fa7b2e169ac8a3c18fde..c37a0be18b5fd94a717040d82a05e7556ba91071 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 6f0fac93e459fe7557473b73fcea000e08945e12..c96f32150d2919d26aeb97a4e0cf8ab3dbb37e39 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 c2b3d830e3acd077c887e7a08fab8c2663338cca..4e3796905cace32826550d13f8dbe60cae90da4e 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 370d2a31667c4f8e712e05c81d82ed3c63b56ff8..fd3d8721f1ccc3c3c5d67f1999668877f0fc5399 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 c3afa24f913e2fb87e59f400f5f4a1bc84d60574..aaedbfafa48184ddd90677eb3fc331d5f14847a8 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 adb3affdd4d8900ea8dde444dcdae94dd4b5b145..e48f0166e74f3b4740f68bf4520dc65e842cfc2c 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 8eec90f67f448d565c6791c38f87d4a92132d8bd..192fc826b191594ef55947ffe906b383d30b6fd3 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) ?>