Loading front/Paiement/DemandeMiseEnPaiementStructure.vue +5 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ <div v-for="(enseignement,codeEnseignement) in etape.enseignements"> <div class="cartridge gray bordered" style="padding-bottom: 5px"> <span>Enseignement</span> <span v-html="codeEtape + ' - ' + shorten(etape.libelle, 50)"></span> <span v-html="codeEtape + ' - ' + shorten(etape.libelle, 40)"></span> <span>{{ codeEnseignement + ' - ' + enseignement.libelle }}</span> </div> <div class="container"> Loading Loading @@ -794,6 +794,10 @@ export default { }, shorten(chaine, length = 20) { if (chaine === null) { return chaine; } if (chaine.length > length) { var centreCout = '<span title="' + chaine + '"'; Loading module/Formule/src/Model/AbstractFormuleCalcul.php +17 −4 Original line number Diff line number Diff line Loading @@ -32,6 +32,10 @@ class AbstractFormuleCalcul /** @var FormuleVolumeHoraire[] */ protected array $volumesHoraires = []; /** @var FormuleVolumeHoraire[] */ protected array $nonPayables = []; protected array $cache = []; protected int $mainLine = 20; Loading Loading @@ -154,7 +158,16 @@ class AbstractFormuleCalcul public function calculer(FormuleIntervenant $intervenant, Formule $formule): void { $this->intervenant = $intervenant; $this->volumesHoraires = $intervenant->getVolumesHoraires()->toArray(); $this->volumesHoraires = []; $this->nonPayables = []; foreach ($intervenant->getVolumesHoraires() as $volumesHoraire) { if ($volumesHoraire->isNonPayable()) { $this->nonPayables[] = $volumesHoraire; } else { $this->volumesHoraires[] = $volumesHoraire; } } $this->formule = $formule; $this->cache = [ 'vh' => [], Loading @@ -162,14 +175,14 @@ class AbstractFormuleCalcul ]; foreach ($this->volumesHoraires as $l => $volumeHoraire) { if ($volumeHoraire->isNonPayable()){ $this->calculNonPayable($l, $volumeHoraire); }else { $this->calculPayable($l, $volumeHoraire); if ($intervenant->isDepassementServiceDuSansHC()) { $this->interdictionHC($l, $volumeHoraire); } } foreach ($this->nonPayables as $l => $volumeHoraire) { $this->calculNonPayable($l, $volumeHoraire); } if ($this->intervenant instanceof FormuleTestIntervenant) { Loading module/Formule/src/Service/TestService.php +4 −4 Original line number Diff line number Diff line Loading @@ -2,18 +2,18 @@ namespace Formule\Service; use Administration\Service\ParametresServiceAwareTrait; use Application\Hydrator\GenericHydrator; use Application\Service\AbstractEntityService; use Application\Service\Traits\ParametresServiceAwareTrait; use Formule\Entity\FormuleIntervenant; use Formule\Entity\FormuleVolumeHoraire; use RuntimeException; use Formule\Entity\Db\Formule; use Formule\Entity\Db\FormuleTestIntervenant; use Formule\Entity\Db\FormuleTestVolumeHoraire; use Formule\Entity\FormuleIntervenant; use Formule\Entity\FormuleVolumeHoraire; use Formule\Model\FormuleCalcul; use Intervenant\Entity\Db\Intervenant; use Intervenant\Entity\Db\TypeIntervenant; use RuntimeException; use Service\Entity\Db\EtatVolumeHoraire; use Service\Entity\Db\TypeVolumeHoraire; Loading module/Formule/src/Tbl/Process/FormuleProcess.php +13 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,12 @@ class FormuleProcess implements ProcessInterface $intervenant->setHeuresServiceModifie((float)$data['HEURES_SERVICE_MODIFIE']); $intervenant->setDepassementServiceDuSansHC($data['DEPASSEMENT_SERVICE_DU_SANS_HC'] == '1'); $intervenant->setParam1($data['PARAM_1']); $intervenant->setParam2($data['PARAM_2']); $intervenant->setParam3($data['PARAM_3']); $intervenant->setParam4($data['PARAM_4']); $intervenant->setParam5($data['PARAM_5']); $intervenant->setArrondisseur(($data['ARRONDISSEUR'] == '1') ? FormuleIntervenant::ARRONDISSEUR_FULL : FormuleIntervenant::ARRONDISSEUR_MINIMAL); } Loading Loading @@ -200,6 +206,13 @@ class FormuleProcess implements ProcessInterface $volumeHoraire->setTauxServiceCompl((float)$data['TAUX_SERVICE_COMPL']); $volumeHoraire->setPonderationServiceDu((float)$data['PONDERATION_SERVICE_DU']); $volumeHoraire->setPonderationServiceCompl((float)$data['PONDERATION_SERVICE_COMPL']); $volumeHoraire->setParam1($data['PARAM_1']); $volumeHoraire->setParam2($data['PARAM_2']); $volumeHoraire->setParam3($data['PARAM_3']); $volumeHoraire->setParam4($data['PARAM_4']); $volumeHoraire->setParam5($data['PARAM_5']); $volumeHoraire->setHeures((float)$data['HEURES']); } Loading module/Paiement/src/Service/DemandesService.php +78 −1 Original line number Diff line number Diff line Loading @@ -203,7 +203,8 @@ class DemandesService extends AbstractService MAX(s.libelle_long) structure_libelle, MAX(s.libelle_court) structure_libelle_court, CASE WHEN MAX(tp.service_id) IS NOT NULL THEN 'enseignement' WHEN MAX(tp.service_id) IS NOT NULL AND MAX(s.element_pedagogique_id) IS NOT NULL THEN 'enseignement' WHEN MAX(tp.service_id) IS NOT NULL AND MAX(s.element_pedagogique_id) IS NULL THEN 'enseignement-exterieur' WHEN MAX(tp.service_referentiel_id) IS NOT NULL THEN 'referentiel' ELSE 'mission' END typage, Loading @@ -213,6 +214,9 @@ class DemandesService extends AbstractService MAX(ep.id) element_id, ep.code element_code, MAX(ep.libelle) element_libelle, MAX(etab.libelle) etab_libelle, MAX(etab.source_code) etab_code, MAX(s.description) enseignement_ext_libelle, MAX(fr.id) fonction_id, fr.code fonction_code, MAX(fr.libelle_long) fonction_libelle, Loading Loading @@ -261,6 +265,7 @@ class DemandesService extends AbstractService LEFT JOIN periode p ON p.id = tp.periode_paiement_id LEFT JOIN mission m ON m.id = tp.mission_id LEFT JOIN type_mission tm ON tm.id = m.type_mission_id LEFT JOIN etablissement etab ON etab.id = s.etablissement_id WHERE tp.intervenant_id = :intervenant "; Loading Loading @@ -382,6 +387,78 @@ class DemandesService extends AbstractService ], ]; } } elseif ($value['TYPAGE'] == "enseignement-exterieur") { $ensCode = 1; //Partie enseignements exterieurs $dmep[$value['STRUCTURE_CODE']]['code'] = $value['STRUCTURE_CODE']; $dmep[$value['STRUCTURE_CODE']]['id'] = $value['STRUCTURE_ID']; $dmep[$value['STRUCTURE_CODE']]['libelle'] = $value['STRUCTURE_LIBELLE']; $dmep[$value['STRUCTURE_CODE']]['libelleCourt'] = $value['STRUCTURE_LIBELLE_COURT']; $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['libelle'] = $value['ETAB_LIBELLE']; $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['libelle'] = $value['ENSEIGNEMENT_EXT_LIBELLE']; $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']]['libelle'] = $value['TYPE_HEURE_LIBELLE']; if (!array_key_exists('heures', $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']])) { $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']]['heures'] = []; } //Heure déjà mise en paiement if (!empty($value['MEP_ID'])) { $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']]['heures']['mep_id_' . $value['MEP_ID']] = [ 'mepId' => $value['MEP_ID'], 'typeHeureId' => $value['TYPE_HEURE_ID'], 'typeHeureCode' => $value['TYPE_HEURE_CODE'], 'serviceId' => $value['SERVICE_ID'], 'serviceReferentielId' => $value['SERVICE_REFERENTIEL_ID'], 'missionId' => $value['MISSION_ID'], 'heuresAPayer' => $value['HEURES_A_PAYER'], 'heuresDemandees' => $value['HEURES_DEMANDEES'], 'heuresPayees' => $value['HEURES_PAYEES'], 'periodeLibelle' => $value['PERIODE_LIBELLE'], 'periodeCode' => $value['PERIODE_CODE'], 'datePaiement' => $value['DATE_PAIEMENT'], 'dateDemande' => $value['DATE_DEMANDE'], 'domaineFonctionnel' => [ 'domaineFonctionnelId' => $value['DOMAINE_FONCTIONNEL_ID'] ?: '', 'libelle' => $value['DOMAINE_FONCTIONNEL_LIBELLE'] ?: '', 'code' => $value['DOMAINE_FONCTIONNEL_CODE'] ?: '', ], 'centreCout' => [ 'centreCoutId' => $value['CENTRE_COUT_ID'] ?: '', 'libelle' => $value['CENTRE_COUT_LIBELLE'] ?: '', 'code' => $value['CENTRE_COUT_CODE'] ?: '', 'typeRessourceCode' => $value['CENTRE_COUT_LIBELLE'] ?: '', 'typeRessourceLibelle' => $value['CENTRE_COUT_LIBELLE'] ?: '', ], ]; } else { $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']]['heures']['a_demander'] = [ 'mepId' => '', 'typeHeureId' => $value['TYPE_HEURE_ID'], 'typeHeureCode' => $value['TYPE_HEURE_CODE'], 'serviceId' => $value['SERVICE_ID'], 'serviceReferentielId' => $value['SERVICE_REFERENTIEL_ID'], 'missionId' => $value['MISSION_ID'], 'heuresAPayer' => $value['HEURES_A_PAYER'], 'heuresDemandees' => $value['HEURES_DEMANDEES'], 'heuresPayees' => $value['HEURES_PAYEES'], 'periodeLibelle' => $value['PERIODE_LIBELLE'], 'periodeCode' => $value['PERIODE_CODE'], 'datePaiement' => $value['DATE_PAIEMENT'], 'dateDemande' => $value['DATE_DEMANDE'], 'domaineFonctionnel' => [ 'domaineFonctionnelId' => $value['DOMAINE_FONCTIONNEL_ID'] ?: '', 'libelle' => $value['DOMAINE_FONCTIONNEL_LIBELLE'] ?: '', 'code' => $value['DOMAINE_FONCTIONNEL_CODE'] ?: '', ], 'centreCout' => [ 'centreCoutId' => $value['CENTRE_COUT_ID'] ?: '', 'libelle' => $value['CENTRE_COUT_LIBELLE'] ?: '', 'code' => $value['CENTRE_COUT_CODE'] ?: '', 'typeRessourceCode' => $value['CENTRE_COUT_LIBELLE'] ?: '', 'typeRessourceLibelle' => $value['CENTRE_COUT_LIBELLE'] ?: '', ], ]; } $ensCode++; } elseif ($value['TYPAGE'] == "referentiel") { //Partie référentiel $dmep[$value['STRUCTURE_CODE']]['code'] = $value['STRUCTURE_CODE']; Loading Loading
front/Paiement/DemandeMiseEnPaiementStructure.vue +5 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ <div v-for="(enseignement,codeEnseignement) in etape.enseignements"> <div class="cartridge gray bordered" style="padding-bottom: 5px"> <span>Enseignement</span> <span v-html="codeEtape + ' - ' + shorten(etape.libelle, 50)"></span> <span v-html="codeEtape + ' - ' + shorten(etape.libelle, 40)"></span> <span>{{ codeEnseignement + ' - ' + enseignement.libelle }}</span> </div> <div class="container"> Loading Loading @@ -794,6 +794,10 @@ export default { }, shorten(chaine, length = 20) { if (chaine === null) { return chaine; } if (chaine.length > length) { var centreCout = '<span title="' + chaine + '"'; Loading
module/Formule/src/Model/AbstractFormuleCalcul.php +17 −4 Original line number Diff line number Diff line Loading @@ -32,6 +32,10 @@ class AbstractFormuleCalcul /** @var FormuleVolumeHoraire[] */ protected array $volumesHoraires = []; /** @var FormuleVolumeHoraire[] */ protected array $nonPayables = []; protected array $cache = []; protected int $mainLine = 20; Loading Loading @@ -154,7 +158,16 @@ class AbstractFormuleCalcul public function calculer(FormuleIntervenant $intervenant, Formule $formule): void { $this->intervenant = $intervenant; $this->volumesHoraires = $intervenant->getVolumesHoraires()->toArray(); $this->volumesHoraires = []; $this->nonPayables = []; foreach ($intervenant->getVolumesHoraires() as $volumesHoraire) { if ($volumesHoraire->isNonPayable()) { $this->nonPayables[] = $volumesHoraire; } else { $this->volumesHoraires[] = $volumesHoraire; } } $this->formule = $formule; $this->cache = [ 'vh' => [], Loading @@ -162,14 +175,14 @@ class AbstractFormuleCalcul ]; foreach ($this->volumesHoraires as $l => $volumeHoraire) { if ($volumeHoraire->isNonPayable()){ $this->calculNonPayable($l, $volumeHoraire); }else { $this->calculPayable($l, $volumeHoraire); if ($intervenant->isDepassementServiceDuSansHC()) { $this->interdictionHC($l, $volumeHoraire); } } foreach ($this->nonPayables as $l => $volumeHoraire) { $this->calculNonPayable($l, $volumeHoraire); } if ($this->intervenant instanceof FormuleTestIntervenant) { Loading
module/Formule/src/Service/TestService.php +4 −4 Original line number Diff line number Diff line Loading @@ -2,18 +2,18 @@ namespace Formule\Service; use Administration\Service\ParametresServiceAwareTrait; use Application\Hydrator\GenericHydrator; use Application\Service\AbstractEntityService; use Application\Service\Traits\ParametresServiceAwareTrait; use Formule\Entity\FormuleIntervenant; use Formule\Entity\FormuleVolumeHoraire; use RuntimeException; use Formule\Entity\Db\Formule; use Formule\Entity\Db\FormuleTestIntervenant; use Formule\Entity\Db\FormuleTestVolumeHoraire; use Formule\Entity\FormuleIntervenant; use Formule\Entity\FormuleVolumeHoraire; use Formule\Model\FormuleCalcul; use Intervenant\Entity\Db\Intervenant; use Intervenant\Entity\Db\TypeIntervenant; use RuntimeException; use Service\Entity\Db\EtatVolumeHoraire; use Service\Entity\Db\TypeVolumeHoraire; Loading
module/Formule/src/Tbl/Process/FormuleProcess.php +13 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,12 @@ class FormuleProcess implements ProcessInterface $intervenant->setHeuresServiceModifie((float)$data['HEURES_SERVICE_MODIFIE']); $intervenant->setDepassementServiceDuSansHC($data['DEPASSEMENT_SERVICE_DU_SANS_HC'] == '1'); $intervenant->setParam1($data['PARAM_1']); $intervenant->setParam2($data['PARAM_2']); $intervenant->setParam3($data['PARAM_3']); $intervenant->setParam4($data['PARAM_4']); $intervenant->setParam5($data['PARAM_5']); $intervenant->setArrondisseur(($data['ARRONDISSEUR'] == '1') ? FormuleIntervenant::ARRONDISSEUR_FULL : FormuleIntervenant::ARRONDISSEUR_MINIMAL); } Loading Loading @@ -200,6 +206,13 @@ class FormuleProcess implements ProcessInterface $volumeHoraire->setTauxServiceCompl((float)$data['TAUX_SERVICE_COMPL']); $volumeHoraire->setPonderationServiceDu((float)$data['PONDERATION_SERVICE_DU']); $volumeHoraire->setPonderationServiceCompl((float)$data['PONDERATION_SERVICE_COMPL']); $volumeHoraire->setParam1($data['PARAM_1']); $volumeHoraire->setParam2($data['PARAM_2']); $volumeHoraire->setParam3($data['PARAM_3']); $volumeHoraire->setParam4($data['PARAM_4']); $volumeHoraire->setParam5($data['PARAM_5']); $volumeHoraire->setHeures((float)$data['HEURES']); } Loading
module/Paiement/src/Service/DemandesService.php +78 −1 Original line number Diff line number Diff line Loading @@ -203,7 +203,8 @@ class DemandesService extends AbstractService MAX(s.libelle_long) structure_libelle, MAX(s.libelle_court) structure_libelle_court, CASE WHEN MAX(tp.service_id) IS NOT NULL THEN 'enseignement' WHEN MAX(tp.service_id) IS NOT NULL AND MAX(s.element_pedagogique_id) IS NOT NULL THEN 'enseignement' WHEN MAX(tp.service_id) IS NOT NULL AND MAX(s.element_pedagogique_id) IS NULL THEN 'enseignement-exterieur' WHEN MAX(tp.service_referentiel_id) IS NOT NULL THEN 'referentiel' ELSE 'mission' END typage, Loading @@ -213,6 +214,9 @@ class DemandesService extends AbstractService MAX(ep.id) element_id, ep.code element_code, MAX(ep.libelle) element_libelle, MAX(etab.libelle) etab_libelle, MAX(etab.source_code) etab_code, MAX(s.description) enseignement_ext_libelle, MAX(fr.id) fonction_id, fr.code fonction_code, MAX(fr.libelle_long) fonction_libelle, Loading Loading @@ -261,6 +265,7 @@ class DemandesService extends AbstractService LEFT JOIN periode p ON p.id = tp.periode_paiement_id LEFT JOIN mission m ON m.id = tp.mission_id LEFT JOIN type_mission tm ON tm.id = m.type_mission_id LEFT JOIN etablissement etab ON etab.id = s.etablissement_id WHERE tp.intervenant_id = :intervenant "; Loading Loading @@ -382,6 +387,78 @@ class DemandesService extends AbstractService ], ]; } } elseif ($value['TYPAGE'] == "enseignement-exterieur") { $ensCode = 1; //Partie enseignements exterieurs $dmep[$value['STRUCTURE_CODE']]['code'] = $value['STRUCTURE_CODE']; $dmep[$value['STRUCTURE_CODE']]['id'] = $value['STRUCTURE_ID']; $dmep[$value['STRUCTURE_CODE']]['libelle'] = $value['STRUCTURE_LIBELLE']; $dmep[$value['STRUCTURE_CODE']]['libelleCourt'] = $value['STRUCTURE_LIBELLE_COURT']; $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['libelle'] = $value['ETAB_LIBELLE']; $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['libelle'] = $value['ENSEIGNEMENT_EXT_LIBELLE']; $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']]['libelle'] = $value['TYPE_HEURE_LIBELLE']; if (!array_key_exists('heures', $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']])) { $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']]['heures'] = []; } //Heure déjà mise en paiement if (!empty($value['MEP_ID'])) { $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']]['heures']['mep_id_' . $value['MEP_ID']] = [ 'mepId' => $value['MEP_ID'], 'typeHeureId' => $value['TYPE_HEURE_ID'], 'typeHeureCode' => $value['TYPE_HEURE_CODE'], 'serviceId' => $value['SERVICE_ID'], 'serviceReferentielId' => $value['SERVICE_REFERENTIEL_ID'], 'missionId' => $value['MISSION_ID'], 'heuresAPayer' => $value['HEURES_A_PAYER'], 'heuresDemandees' => $value['HEURES_DEMANDEES'], 'heuresPayees' => $value['HEURES_PAYEES'], 'periodeLibelle' => $value['PERIODE_LIBELLE'], 'periodeCode' => $value['PERIODE_CODE'], 'datePaiement' => $value['DATE_PAIEMENT'], 'dateDemande' => $value['DATE_DEMANDE'], 'domaineFonctionnel' => [ 'domaineFonctionnelId' => $value['DOMAINE_FONCTIONNEL_ID'] ?: '', 'libelle' => $value['DOMAINE_FONCTIONNEL_LIBELLE'] ?: '', 'code' => $value['DOMAINE_FONCTIONNEL_CODE'] ?: '', ], 'centreCout' => [ 'centreCoutId' => $value['CENTRE_COUT_ID'] ?: '', 'libelle' => $value['CENTRE_COUT_LIBELLE'] ?: '', 'code' => $value['CENTRE_COUT_CODE'] ?: '', 'typeRessourceCode' => $value['CENTRE_COUT_LIBELLE'] ?: '', 'typeRessourceLibelle' => $value['CENTRE_COUT_LIBELLE'] ?: '', ], ]; } else { $dmep[$value['STRUCTURE_CODE']]['etapes'][$value['ETAB_CODE']]['enseignements'][$ensCode]['typeHeure'][$value['TYPE_HEURE_CODE']]['heures']['a_demander'] = [ 'mepId' => '', 'typeHeureId' => $value['TYPE_HEURE_ID'], 'typeHeureCode' => $value['TYPE_HEURE_CODE'], 'serviceId' => $value['SERVICE_ID'], 'serviceReferentielId' => $value['SERVICE_REFERENTIEL_ID'], 'missionId' => $value['MISSION_ID'], 'heuresAPayer' => $value['HEURES_A_PAYER'], 'heuresDemandees' => $value['HEURES_DEMANDEES'], 'heuresPayees' => $value['HEURES_PAYEES'], 'periodeLibelle' => $value['PERIODE_LIBELLE'], 'periodeCode' => $value['PERIODE_CODE'], 'datePaiement' => $value['DATE_PAIEMENT'], 'dateDemande' => $value['DATE_DEMANDE'], 'domaineFonctionnel' => [ 'domaineFonctionnelId' => $value['DOMAINE_FONCTIONNEL_ID'] ?: '', 'libelle' => $value['DOMAINE_FONCTIONNEL_LIBELLE'] ?: '', 'code' => $value['DOMAINE_FONCTIONNEL_CODE'] ?: '', ], 'centreCout' => [ 'centreCoutId' => $value['CENTRE_COUT_ID'] ?: '', 'libelle' => $value['CENTRE_COUT_LIBELLE'] ?: '', 'code' => $value['CENTRE_COUT_CODE'] ?: '', 'typeRessourceCode' => $value['CENTRE_COUT_LIBELLE'] ?: '', 'typeRessourceLibelle' => $value['CENTRE_COUT_LIBELLE'] ?: '', ], ]; } $ensCode++; } elseif ($value['TYPAGE'] == "referentiel") { //Partie référentiel $dmep[$value['STRUCTURE_CODE']]['code'] = $value['STRUCTURE_CODE']; Loading