Commit 24765e4c authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Merge remote-tracking branch 'origin/b24'

# Conflicts:
#	module/Formule/src/Service/TestService.php
parents d58cb995 07988ac5
Loading
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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">
@@ -794,6 +794,10 @@ export default {
        },
        shorten(chaine, length = 20)
        {
            if (chaine === null) {
                return chaine;
            }

            if (chaine.length > length) {

                var centreCout = '<span title="' + chaine + '"';
+17 −4
Original line number Diff line number Diff line
@@ -32,6 +32,10 @@ class AbstractFormuleCalcul

    /** @var FormuleVolumeHoraire[] */
    protected array $volumesHoraires = [];

    /** @var FormuleVolumeHoraire[] */
    protected array $nonPayables = [];

    protected array $cache = [];

    protected int $mainLine = 20;
@@ -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'     => [],
@@ -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) {
+4 −4
Original line number Diff line number Diff line
@@ -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;

+13 −0
Original line number Diff line number Diff line
@@ -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);
    }

@@ -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']);
    }

+78 −1
Original line number Diff line number Diff line
@@ -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,
@@ -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,
@@ -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 ";

@@ -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