Commit 2a87ab5c authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Merge branch 'master' of https://git.unicaen.fr/open-source/OSE

parents 4ca78036 60be0511
Loading
Loading
Loading
Loading
+28 −30
Changes for admin/actions/maj-code-intervenant-octopus.php: 28 added lines, 30 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ $bdd = $this->getBdd();
$console = $this->getConsole();
$console->printMainTitle("Maj des codes intervenants de harpège vers Octopus", $console::BG_BLUE);
$console->println("Récupération source id 'Octopus'", $console::COLOR_GREEN);
$notFound = [];
//On récupére la source octopus
$sqlSource = "SELECT id FROM source WHERE code = 'Octopus'";
$result    = $bdd->select($sqlSource, [], ['fetch' => $bdd::FETCH_ONE]);
@@ -13,45 +14,39 @@ if ($result) {
    $console->println("Source id : " . $sourceIdOctopus);
} else {
    $console->println('Source Octopus inconnu', $console::BG_RED);
    die;
}

//On récupére la source harpege
$sqlSource = "SELECT id FROM source WHERE code = 'Harpege'";
$result    = $bdd->select($sqlSource, [], ['fetch' => $bdd::FETCH_ONE]);

if ($result) {
    $sourceIdHarpege = $result['ID'];
    $console->println("Source id : " . $sourceIdHarpege);
} else {
    $console->println('Source Harpege inconnu', $console::BG_RED);
    die;
}

//On récupére tous les intervenants de OSE provenant de la source Harpege
$sql = "SELECT 
           id       intervenant_id,
           code     code_harpege,
           source_id   source_harpege,
           annee_id
$sql = "SELECT DISTINCT
           code     code_harpege
       FROM intervenant 
       WHERE source_id = (SELECT id FROM source WHERE code ='Harpege')";
       WHERE source_id =" . $sourceIdHarpege;

$resultIntervenantOse = $bdd->select($sql);

//On récupére de octopus le mapping des codes harpeges vs code octopus
$sql = " SELECT DISTINCT
   			FIRST_VALUE(c_individu_chaine) OVER (PARTITION BY c_individu_chaine ORDER BY ordre_source) code_octopus,
			FIRST_VALUE(c_source) OVER (PARTITION BY c_individu_chaine ORDER BY ordre_source) c_source,
			FIRST_VALUE(c_src_individu) OVER (PARTITION BY c_individu_chaine ORDER BY ordre_source) code_harpege FROM (
				SELECT DISTINCT
			   		u.c_individu_chaine,
			   		u.c_source,
			   		u.c_src_individu,
			   		CASE WHEN u.c_source = 'SIHAM' THEN 1
			            WHEN u.c_source = 'HARP'  THEN 2
			   		    WHEN u.c_source = 'OCTO'  THEN 3
			    	    WHEN u.c_source = 'APO'   THEN 4
			       END                  ordre_source
				FROM individu_unique u
	 		)
";

/*$sql = "SELECT
$sql = "SELECT
            c_individu_chaine        code_octopus,
            c_src_individu           code_harpege            
        FROM individu_unique
        WHERE c_source = 'HARP'";*/
        WHERE c_source = 'HARP'";

$resultIntervenantOctopus  = $bdd->select($sql);
$mappingCodeOctopusHarpege = [];

foreach ($resultIntervenantOctopus as $intervenantOcto) {
    if (!array_key_exists($intervenantOcto['CODE_HARPEGE'], $mappingCodeOctopusHarpege)) {
        $mappingCodeOctopusHarpege[$intervenantOcto['CODE_HARPEGE']] = $intervenantOcto['CODE_OCTOPUS'];
@@ -63,14 +58,18 @@ $totalIntervenant = count($resultIntervenantOse);
//On commence la migration des codes intervenants et on change la source en octopus
$bdd->trigger()->disable('INTERVENANT_CK');
foreach ($resultIntervenantOse as $intervenantOse) {

    $i++;
    $pourcent = round(($i * 100) / $totalIntervenant);
    if (array_key_exists($intervenantOse['CODE_HARPEGE'], $mappingCodeOctopusHarpege)) {

        $console->msg($pourcent . " % Migration code intervenant  / code harpege : " . $intervenantOse['CODE_HARPEGE'] . " vers code octopus " . $mappingCodeOctopusHarpege[$intervenantOse['CODE_HARPEGE']], true);
        $sql = "UPDATE intervenant SET code = '" . $mappingCodeOctopusHarpege[$intervenantOse['CODE_HARPEGE']] . "', source_id =" . $sourceIdOctopus . " WHERE code = '" . $intervenantOse['CODE_HARPEGE'] . "'";
        $sql = "UPDATE intervenant SET code_rh  = '" . $intervenantOse['CODE_HARPEGE'] . "', code = '" . $mappingCodeOctopusHarpege[$intervenantOse['CODE_HARPEGE']] . "', source_id =" . $sourceIdOctopus . " WHERE source_id=" . $sourceIdHarpege . " AND code = '" . $intervenantOse['CODE_HARPEGE'] . "'";
        $bdd->exec($sql);
    } else {
        $notFound [$intervenantOse['ANNEE_ID']][] = $intervenantOse['CODE_HARPEGE'];
        $notFound[] = $intervenantOse['CODE_HARPEGE'] . " => " . "HARP-" . $intervenantOse['CODE_HARPEGE'];
        $sql        = "UPDATE intervenant SET code_rh = '" . $intervenantOse['CODE_HARPEGE'] . "', code = 'HARP-" . $intervenantOse['CODE_HARPEGE'] . "' WHERE source_id=" . $sourceIdHarpege . " AND code = '" . $intervenantOse['CODE_HARPEGE'] . "'";
        $bdd->exec($sql);
    }
}
$bdd->trigger()->enable('INTERVENANT_CK');
@@ -79,10 +78,9 @@ ksort($notFound);
$console->end("Début migration des codes intervenant OSE de Harpège vers Octopus");
$console->println("==================================");
$console->println("Intervenants non trouvés dans Octopus", $console::BG_RED);
foreach ($notFound as $annee => $intervenants) {
    $console->println("Année " . $annee . " : " . implode(',', $intervenants));
$console->println(implode(',', $notFound));
$console->println("==================================");
}


//Calcul des tableaux pour mettre à jour suite changement des codes intervenants
$oa->exec('calcul-tableaux-bord');
+13 −1
Changes for data/ddl/table/INTERVENANT.php: 13 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -225,6 +225,18 @@ return [
            'position'    => 3,
            'commentaire' => NULL,
        ],
        'CODE_RH'                     => [
            'name'        => 'CODE_RH',
            'type'        => 'string',
            'bdd-type'    => 'VARCHAR2',
            'length'      => 60,
            'scale'       => NULL,
            'precision'   => NULL,
            'nullable'    => TRUE,
            'default'     => NULL,
            'position'    => 44,
            'commentaire' => NULL,
        ],
        'COMMUNE_NAISSANCE'        => [
            'name'        => 'COMMUNE_NAISSANCE',
            'type'        => 'string',
@@ -670,7 +682,7 @@ return [
            'commentaire' => NULL,
        ],
    ],
    'columns-order' => 'ID,ANNEE_ID,CODE,UTILISATEUR_CODE,STRUCTURE_ID,STATUT_ID,GRADE_ID,DISCIPLINE_ID,CIVILITE_ID,NOM_USUEL,PRENOM,DATE_NAISSANCE,NOM_PATRONYMIQUE,COMMUNE_NAISSANCE,PAYS_NAISSANCE_ID,DEPARTEMENT_NAISSANCE_ID,PAYS_NATIONALITE_ID,TEL_PRO,TEL_PERSO,EMAIL_PRO,EMAIL_PERSO,ADDR_PRECISIONS,ADDR_NUMERO,ADDR_NUMERO_COMPL_ID,ADDR_VOIRIE_ID,ADDR_VOIE,ADDR_LIEU_DIT,ADDR_CODE_POSTAL,ADDR_COMMUNE,ADDR_PAYS_ID,NUMERO_INSEE,NUMERO_INSEE_PROVISOIRE,IBAN,BIC,RIB_HORS_SEPA,AUTRE_1,AUTRE_2,AUTRE_3,AUTRE_4,AUTRE_5,EMPLOYEUR_ID,MONTANT_INDEMNITE_FC,CRITERE_RECHERCHE,SOURCE_ID,SOURCE_CODE,SYNC_STATUT,SYNC_STRUCTURE,HISTO_CREATION,HISTO_CREATEUR_ID,HISTO_MODIFICATION,HISTO_MODIFICATEUR_ID,HISTO_DESTRUCTION,HISTO_DESTRUCTEUR_ID',
    'columns-order' => 'ID,ANNEE_ID,CODE,CODE_RH,UTILISATEUR_CODE,STRUCTURE_ID,STATUT_ID,GRADE_ID,DISCIPLINE_ID,CIVILITE_ID,NOM_USUEL,PRENOM,DATE_NAISSANCE,NOM_PATRONYMIQUE,COMMUNE_NAISSANCE,PAYS_NAISSANCE_ID,DEPARTEMENT_NAISSANCE_ID,PAYS_NATIONALITE_ID,TEL_PRO,TEL_PERSO,EMAIL_PRO,EMAIL_PERSO,ADDR_PRECISIONS,ADDR_NUMERO,ADDR_NUMERO_COMPL_ID,ADDR_VOIRIE_ID,ADDR_VOIE,ADDR_LIEU_DIT,ADDR_CODE_POSTAL,ADDR_COMMUNE,ADDR_PAYS_ID,NUMERO_INSEE,NUMERO_INSEE_PROVISOIRE,IBAN,BIC,RIB_HORS_SEPA,AUTRE_1,AUTRE_2,AUTRE_3,AUTRE_4,AUTRE_5,EMPLOYEUR_ID,MONTANT_INDEMNITE_FC,CRITERE_RECHERCHE,SOURCE_ID,SOURCE_CODE,SYNC_STATUT,SYNC_STRUCTURE,HISTO_CREATION,HISTO_CREATEUR_ID,HISTO_MODIFICATION,HISTO_MODIFICATEUR_ID,HISTO_DESTRUCTION,HISTO_DESTRUCTEUR_ID',
];

//@formatter:on
+0 −1
Changes for doc/Connecteurs Import/Octopus/SRC_OCTO_CORPS.sql: 0 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -8,4 +8,3 @@ FROM corps@octodev c
         JOIN source s
              ON s.code = 'Octopus'
WHERE SYSDATE BETWEEN COALESCE(c.d_ouverture, SYSDATE) AND COALESCE(c.d_fermeture + 1, SYSDATE)
 No newline at end of file
  AND c.c_corps = '843'
+29 −0
Changes for module/Application/src/Application/Entity/Db/Intervenant.php: 29 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -48,6 +48,11 @@ class Intervenant implements HistoriqueAwareInterface, ResourceInterface, Import
     */
    protected $code;

    /**
     * @var string|null
     */
    protected $codeRh;

    /**
     * @var string|null
     */
@@ -406,6 +411,30 @@ class Intervenant implements HistoriqueAwareInterface, ResourceInterface, Import



    /**
     * @return string|null
     */
    public function getCodeRh(): ?string
    {
        return $this->codeRh;
    }



    /**
     * @param string|null $codeRh
     *
     * @return Intervenant
     */
    public function setCodeRh(?string $codeRh): Intervenant
    {
        $this->codeRh = $codeRh;

        return $this;
    }



    /**
     * @return string|null
     */
+3 −2
Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml: 3 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -9,8 +9,9 @@
        <many-to-one field="annee" target-entity="Application\Entity\Db\Annee">
            <join-column name="ANNEE_ID" referenced-column-name="ID"/>
        </many-to-one>
        <field name="code" type="string" column="CODE" length="60" nullable="false"/>
        <field name="utilisateurCode" type="string" column="UTILISATEUR_CODE" length="60" nullable="false"/>
        <field name="code" type="string" column="CODE" length="60" nullable="true"/>
        <field name="codeRh" type="string" column="CODE_RH" length="60" nullable="false"/>
        ="UTILISATEUR_CODE" length="60" nullable="false"/>

        <many-to-one field="structure" target-entity="Application\Entity\Db\Structure">
            <join-column name="STRUCTURE_ID" referenced-column-name="ID"/>
Loading