Commit ae09c618 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Script de migration : agrément automatique des intervenants non PR dont la DR = 99

parent 2280de67
Loading
Loading
Loading
Loading
+52 −0
Original line number Diff line number Diff line
<?php

$bdd     = $oa->getBdd();
$console = $c;


$console->println("Calcul du tableau de bord agrement");
$bdd->exec('BEGIN unicaen_tbl.calculer(\'agrement\'); END;');

$console->println("");

/* On fournie et on valide de force les PJ qui n'étaient pas tout le temps demandées avant */
$sql   = '
        SELECT
          a.structure_id,
          i.id intervenant_id,
          a.type_agrement_id,
          P.VALEUR UTILISATEUR_ID
        FROM 
          tbl_agrement a
          JOIN intervenant i ON i.id = a.intervenant_id AND i.histo_destruction IS NULL
          JOIN PARAMETRE P ON P.NOM = \'oseuser\'
        WHERE
          a.duree_vie = 99 
          AND a.agrement_id IS NULL
          AND I.PREMIER_RECRUTEMENT = 0
        ';
$r     = $bdd->select($sql);
$count = 0;
foreach ($r as $i) {
    $count++;
    $o = ['histo-user-id' => $i['UTILISATEUR_ID']];

    $agrement = [
        'ID'               => $bdd->sequenceNextVal('AGREMENT_ID_SEQ'),
        'STRUCTURE_ID'     => $i['STRUCTURE_ID'],
        'INTERVENANT_ID'   => $i['INTERVENANT_ID'],
        'DATE_DECISION'    => new \DateTime(),
        'TYPE_AGREMENT_ID' => $i['TYPE_AGREMENT_ID'],
    ];
    $bdd->getTable('AGREMENT')->insert($agrement, $o);

    $console->print("Insertion des agréments manquants : $count / " . count($r) . "\r");
}

$console->println("Nouveau calcul du tableau de bord agrement");
$bdd->exec('BEGIN unicaen_tbl.calculer(\'agrement\'); END;');

$console->println("Nouveau calcul du tableau de bord workflow");
$bdd->exec('BEGIN unicaen_tbl.calculer(\'workflow\'); END;');

$console->println("Terminé");
 No newline at end of file
+0 −48
Original line number Diff line number Diff line
<?php
/*
$bdd = new \BddAdmin\Bdd(Config::get('bdds', 'deploy-local'));
$oa->setBdd($bdd);*/
/*
$schema = new \BddAdmin\Schema($bdd);

/* Récupération du schéma de référence *
$ref = $schema->loadFromFile($oa->getOseDir() . 'data/ddl');

/* Construction de la config de DDL pour filtrer *
$ddlConfig = require $oa->getOseDir() . 'data/ddl_config.php';
foreach ($ref as $ddlClass => $objects) {
    foreach ($objects as $object => $objectDdl) {
        $ddlConfig[$ddlClass]['includes'][] = $object;
    }
}

$mm = new MigrationManager($oa, $schema);
$mm->initTablesDef($ref, $ddlConfig);

$r = $mm->testUtile('FormuleMigrationVolumeHoraireStructuresTestVersCode');
var_dump($r);
*/


$devLocal    = new \BddAdmin\Bdd(Config::get('bdds', 'dev-local'));
$deployLocal = new \BddAdmin\Bdd(Config::get('bdds', 'deploy-local'));
$test        = new \BddAdmin\Bdd(Config::get('bdds', 'test'));

$devLocal->setLogger($c);
$deployLocal->setLogger($c);

//$deployLocal->drop();
//$deployLocal->create($devLocal);


//$deployLocal->copy($devLocal);

//$devLocal->getTable('ANNEE')->copy($deployLocal);

$deployLocal->getTable('TAUX_HORAIRE_HETD')->delete(['ID' => 999]);

$d = [
    'ID'     => 999,
    'VALEUR' => 15.78956,
];

$deployLocal->getTable('TAUX_HORAIRE_HETD')->insert($d, ['histo-user-id' => $oa->getOseAppliId()]);
 No newline at end of file
+51 −1
Original line number Diff line number Diff line
@@ -46,13 +46,63 @@ class AgrementPassageDureeVie extends AbstractMigration

    protected function after()
    {
        $bdd     = $this->manager->getBdd();
        $console = $this->manager->getOseAdmin()->getConsole();

        $sql = '
        UPDATE TYPE_AGREMENT_STATUT SET DUREE_VIE = (
          SELECT CASE WHEN PREMIER_RECRUTEMENT = 1 THEN 99 ELSE 1 END FROM TAS_AJOUT_DUREE_VIE O WHERE O.ID = TYPE_AGREMENT_STATUT.ID
        )';

        $this->manager->getSchema()->getBdd()->exec($sql);
        $bdd->exec($sql);
        $this->manager->supprimerSauvegarde('TAS_AJOUT_DUREE_VIE');

        $console->println("Calcul du tableau de bord agrement");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'agrement\'); END;');

        $console->println("");

        /* On fournie et on valide de force les PJ qui n'étaient pas tout le temps demandées avant */
        $sql   = '
        SELECT
          a.structure_id,
          i.id intervenant_id,
          a.type_agrement_id,
          P.VALEUR UTILISATEUR_ID
        FROM 
          tbl_agrement a
          JOIN intervenant i ON i.id = a.intervenant_id AND i.histo_destruction IS NULL
          JOIN PARAMETRE P ON P.NOM = \'oseuser\'
        WHERE
          a.duree_vie = 99 
          AND a.agrement_id IS NULL
          AND I.PREMIER_RECRUTEMENT = 0
        ';
        $r     = $bdd->select($sql);
        $count = 0;
        foreach ($r as $i) {
            $count++;
            $o = ['histo-user-id' => $i['UTILISATEUR_ID']];

            $agrement = [
                'ID'               => $bdd->sequenceNextVal('AGREMENT_ID_SEQ'),
                'STRUCTURE_ID'     => $i['STRUCTURE_ID'],
                'INTERVENANT_ID'   => $i['INTERVENANT_ID'],
                'DATE_DECISION'    => new \DateTime(),
                'TYPE_AGREMENT_ID' => $i['TYPE_AGREMENT_ID'],
            ];
            $bdd->getTable('AGREMENT')->insert($agrement, $o);

            $console->print("Insertion des agréments manquants : $count / " . count($r) . "\r");
        }

        $console->println("Nouveau calcul du tableau de bord agrement");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'agrement\'); END;');

        $console->println("Nouveau calcul du tableau de bord workflow");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'workflow\'); END;');

        $console->println("Terminé");
    }

}
 No newline at end of file
+12 −11
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ class PJPassageDureeVie extends AbstractMigration
    protected function after()
    {
        $bdd     = $this->manager->getBdd();
        $console = $this->manager->getOseAdmin()->getConsole();

        $sql = '
        UPDATE TYPE_PIECE_JOINTE_STATUT SET DUREE_VIE = (
@@ -56,16 +57,16 @@ class PJPassageDureeVie extends AbstractMigration
        $bdd->exec($sql);
        $this->manager->supprimerSauvegarde('TPJS_AJOUT_DUREE_VIE');

        $this->manager->getOseAdmin()->getConsole()->println("Calcul du tableau de bord piece_jointe_demande");
        $console->println("Calcul du tableau de bord piece_jointe_demande");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'piece_jointe_demande\'); END;');

        $this->manager->getOseAdmin()->getConsole()->println("Calcul du tableau de bord piece_jointe_fournie");
        $console->println("Calcul du tableau de bord piece_jointe_fournie");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'piece_jointe_fournie\'); END;');

        $this->manager->getOseAdmin()->getConsole()->println("Calcul du tableau de bord piece_jointe");
        $console->println("Calcul du tableau de bord piece_jointe");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'piece_jointe\'); END;');

        $this->manager->getOseAdmin()->getConsole()->println("");
        $console->println("");

        /* On fournie et on valide de force les PJ qui n'étaient pas tout le temps demandées avant */
        $sql   = '
@@ -119,22 +120,22 @@ class PJPassageDureeVie extends AbstractMigration
                'FICHIER_ID'      => $fichier['ID'],
            ];
            $bdd->getTable('PIECE_JOINTE_FICHIER')->insert($pjf, $o);
            $this->manager->getOseAdmin()->getConsole()->print("Insertion des pièces jointes manquantes : $count / " . count($r) . "\r");
            $console->print("Insertion des pièces jointes manquantes : $count / " . count($r) . "\r");
        }

        $this->manager->getOseAdmin()->getConsole()->println("Nouveau calcul du tableau de bord piece_jointe_demande");
        $console->println("Nouveau calcul du tableau de bord piece_jointe_demande");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'piece_jointe_demande\'); END;');

        $this->manager->getOseAdmin()->getConsole()->println("Nouveau calcul du tableau de bord piece_jointe_fournie");
        $console->println("Nouveau calcul du tableau de bord piece_jointe_fournie");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'piece_jointe_fournie\'); END;');

        $this->manager->getOseAdmin()->getConsole()->println("Nouveau calcul du tableau de bord piece_jointe");
        $console->println("Nouveau calcul du tableau de bord piece_jointe");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'piece_jointe\'); END;');

        $this->manager->getOseAdmin()->getConsole()->println("Nouveau calcul du tableau de bord workflow");
        $console->println("Nouveau calcul du tableau de bord workflow");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'workflow\'); END;');

        $this->manager->getOseAdmin()->getConsole()->println("Terminé");
        $console->println("Terminé");
    }

}
 No newline at end of file