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

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

parents ae30dae8 c413bd8a
Loading
Loading
Loading
Loading
+30 −7
Original line number Diff line number Diff line
@@ -12,7 +12,10 @@ ini_set('memory_limit', '-1');
$importDirectory = $osedir . 'cache/employeurs/';
$importArchive = 'employeurs.tar.gz';
$importFilePath = $importDirectory . $importArchive;
if (!file_exists($importDirectory)) {
    mkdir($importDirectory);
}

if (file_exists($importFilePath)) {
    unlink($importFilePath);
}
@@ -23,16 +26,30 @@ if (!file_exists($importFilePath)) {
    $c->printDie("L'archive $importArchive manquante");
}
//On vérifie que le répertoire import contient uniquement l'archive et aucun autre CSV

$listFiles = preg_grep('~\.(csv)$~', scandir($importDirectory));
if (count($listFiles) > 0) {
    $c->printDie("Merci de supprimer les fichiers CSV présents dans le dossier $importDirectory");
}
//Extraction du PharData
//$phar = new PharData($importFilePath);
//$phar->extractTo($importDirectory);
$phar = new PharData($importFilePath);
$phar->extractTo($importDirectory);
exec('cd ' . $importDirectory . ' && tar -xvf ' . $importFilePath);
//Verification si des SIRET sont déjà chargé en base
$bdd = $oa->getBdd();

//On vérifie si la source INSEE existe dans OSE

$haveAlreadyInseeSource = $bdd->select("SELECT * FROM source WHERE code='INSEE'", [], ['fetch' => $bdd::FETCH_ONE]);
if (!($haveAlreadyInseeSource)) {
    $idSource = $bdd->sequenceNextVal('SOURCE_ID_SEQ');
    $bdd->exec("INSERT INTO source (id, code, libelle, importable) VALUES ($idSource, 'INSEE', 'INSEE', 1)");
    //Le source INSEE n'existe pas encore, donc on migre tout ce qui est source OSE vers source INSEE
    $bdd->exec("UPDATE employeur SET source_id = $idSource");
} else {
    $idSource = $haveAlreadyInseeSource['ID'];
}

//$haveAlreadySiret     = $bdd->select("SELECT siret FROM employeur e WHERE siret IS NOT null FETCH FIRST 5 ROWS ONLY", [], ['fetch' => $bdd::FETCH_ONE]);
$haveAlreadySiret = $bdd->select("SELECT siret FROM (SELECT siret, rownum AS rn FROM employeur e WHERE siret IS NOT NULL) e WHERE e.rn < 10", [], ['fetch' => $bdd::FETCH_ONE]);
$haveAlreadyEmployeur = $bdd->select("SELECT * FROM employeur e");
@@ -40,6 +57,7 @@ $haveAlreadyEmployeur = $bdd->select("SELECT * FROM employeur e");

//récupération de la liste des fichiers CSV
$listFiles = preg_grep('~\.(csv)$~', scandir($importDirectory));

$nbFiles = count($listFiles);
$i = 1;
$c->println("Nombre de fichier à charger : $nbFiles", $c::COLOR_LIGHT_GREEN);
@@ -50,11 +68,15 @@ foreach ($listFiles as $file) {
    $num = str_replace('.csv', '', $file);

    $c->println("Chargement du fichier employeur N° $i sur $nbFiles");

    $csvFile = fopen($importDirectory . $file, "r");

    $row = 0;
    $datas = [];

    while (($data = fgetcsv($csvFile, 1000, ",")) !== false) {


        /*
        * $data[0] = Siren
        * $data[1] = Etat Administratif
@@ -115,7 +137,7 @@ foreach ($listFiles as $file) {
        $data['RAISON_SOCIALE'] = $raisonSociale;
        $data['NOM_COMMERCIAL'] = $nomCommercial;
        $data['SOURCE_CODE'] = $siret;
        $data['SOURCE_ID'] = $oseSource;
        $data['SOURCE_ID'] = $idSource;
        $data['IDENTIFIANT_ASSOCIATION'] = $identifiantAssociation;
        $data['HISTO_DESTRUCTEUR_ID'] = null;
        $data['HISTO_DESTRUCTION'] = null;
@@ -123,8 +145,8 @@ foreach ($listFiles as $file) {
        $data['CRITERE_RECHERCHE'] = reduce($raisonSociale . ' ' . $nomCommercial . ' ' . $siren . ' ' . $siret);
        $datas[] = $data;
        $options['histo-user-id'] = $oseId;
        $options['where'] = 'SIREN LIKE \'' . $num . '%\' AND SOURCE_ID = (SELECT id FROM source WHERE code = \'OSE\') AND SIREN NOT IN (\'999999999\', \'000000000000\')';
        $options['soft-delete'] = false;
        $options['where'] = 'SIREN LIKE \'' . $num . '%\' AND SOURCE_ID = (SELECT id FROM source WHERE code = \'INSEE\') AND SIREN NOT IN (\'999999999\', \'000000000000\')';
        $options['delete'] = false;
    }

    $i++;
@@ -135,13 +157,14 @@ foreach ($listFiles as $file) {
        $tableEmployeur->merge($datas, 'SIRET', $options);
    }
}

//On remet l'insertion de l'employeur étrangé
$data = [];
$data['SIREN'] = '999999999';
$data['RAISON_SOCIALE'] = 'EMPLOYEUR ETRANGÉ';
$data['NOM_COMMERCIAL'] = 'EMPLOYEUR ETRANGÉ';
$data['SOURCE_CODE'] = '999999999';
$data['SOURCE_ID'] = $oseSource;
$data['SOURCE_ID'] = $idSource;
$data['IDENTIFIANT_ASSOCIATION'] = null;
$data['HISTO_DESTRUCTEUR_ID'] = null;
$data['HISTO_DESTRUCTION'] = null;
@@ -159,7 +182,7 @@ $data['SIREN'] = '000000000000';
$data['RAISON_SOCIALE'] = 'Employeur non présent dans la liste';
$data['NOM_COMMERCIAL'] = 'Employeur non présent dans la liste';
$data['SOURCE_CODE'] = '000000000000';
$data['SOURCE_ID'] = $oseSource;
$data['SOURCE_ID'] = $idSource;
$data['IDENTIFIANT_ASSOCIATION'] = null;
$data['HISTO_DESTRUCTEUR_ID'] = null;
$data['HISTO_DESTRUCTION'] = null;
+2 −0
Original line number Diff line number Diff line
@@ -417,6 +417,8 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_UVSQ AS
        WHEN c = 'AW' AND v >= 1 THEN
          IF cell('AU17') = 0 THEN
            RETURN (cell('AT',l) - cell('AV',l)) / cell('AE',l);
          ELSE
            RETURN 0;
          END IF;


+3 −7
Original line number Diff line number Diff line
@@ -5,17 +5,13 @@ SELECT
  Max(v.HISTO_CREATION) AS "Date de modification"
FROM
  tbl_workflow w
  JOIN VALIDATION v ON v.INTERVENANT_ID = w.INTERVENANT_ID
  JOIN type_volume_horaire tvh ON tvh.code = 'REALISE'
  LEFT JOIN VALIDATION_VOL_HORAIRE vvh ON vvh.VALIDATION_ID = v.ID
  LEFT JOIN VALIDATION_VOL_HORAIRE_REF vvhr ON vvhr.VALIDATION_ID = v.ID
  LEFT JOIN VOLUME_HORAIRE vh ON vh.ID = vvh.VOLUME_HORAIRE_ID
  LEFT JOIN VOLUME_HORAIRE_REF vhr ON vhr.ID = vvhr.VOLUME_HORAIRE_REF_ID
  LEFT JOIN type_volume_horaire tvh ON tvh.code = 'REALISE'
  LEFT JOIN service s ON s.intervenant_id = w.intervenant_id
  LEFT JOIN volume_horaire vh ON s.id = vh.service_id
WHERE
  w.etape_code = 'DEMANDE_MEP'
  AND w.type_intervenant_code = 'E'
  AND w.atteignable = 1
  AND w.objectif > w.realisation
  AND (vhr.TYPE_VOLUME_HORAIRE_ID = tvh.id OR vh.TYPE_VOLUME_HORAIRE_ID = tvh.id)
GROUP BY
  w.intervenant_id, w.structure_id
 No newline at end of file
+3 −6
Original line number Diff line number Diff line
@@ -5,12 +5,9 @@ SELECT DISTINCT
  Max(v.HISTO_CREATION) AS "Date de modification"
FROM
  tbl_workflow w
  JOIN VALIDATION v ON v.INTERVENANT_ID = w.INTERVENANT_ID
  JOIN type_volume_horaire tvh ON tvh.code = 'REALISE'
  LEFT JOIN VALIDATION_VOL_HORAIRE vvh ON vvh.VALIDATION_ID = v.ID
  LEFT JOIN VALIDATION_VOL_HORAIRE_REF vvhr ON vvhr.VALIDATION_ID = v.ID
  LEFT JOIN VOLUME_HORAIRE vh ON vh.ID = vvh.VOLUME_HORAIRE_ID
  LEFT JOIN VOLUME_HORAIRE_REF vhr ON vhr.ID = vvhr.VOLUME_HORAIRE_REF_ID
  LEFT JOIN type_volume_horaire tvh ON tvh.code = 'REALISE'
  LEFT JOIN service s ON s.intervenant_id = w.intervenant_id
  LEFT JOIN volume_horaire vh ON s.id = vh.service_id
WHERE
  w.etape_code = 'DEMANDE_MEP'
  AND w.type_intervenant_code = 'P'
+6 −4
Original line number Diff line number Diff line
CREATE OR REPLACE FORCE VIEW V_INTERVENANT_HISTORIQUE AS
CREATE
OR REPLACE FORCE VIEW V_INTERVENANT_HISTORIQUE AS
WITH historique AS (
--Initialisation des données personnelles
    SELECT d.intervenant_id                              intervenant_id,
@@ -94,8 +95,9 @@ UNION ALL
SELECT s.intervenant_id                                                                          intervenant_id,
       '3 - Service prévisionnel et/ou service référentiel'                                                              categorie,
       'Modification/Ajout du service prévisionnel pour la composante ' || MAX(st.libelle_court) label,
       MAX(vh.histo_creation)                                                                histo_date,
       MAX(vh.histo_createur_id)                                                             KEEP (dense_rank FIRST ORDER BY vh.histo_modification DESC)   histo_createur_id, MAX(u.display_name) KEEP (dense_rank FIRST ORDER BY vh.histo_modification DESC)    histo_user,
       MAX(s.histo_creation)                                                                histo_date,
       MAX(s.histo_createur_id)                                                             KEEP (dense_rank FIRST ORDER BY s.histo_modification DESC)   histo_createur_id,
       MAX(u.display_name) KEEP (dense_rank FIRST ORDER BY s.histo_modification DESC)    histo_user,
       'glyphicon glyphicon-ok'                           icon,
       3                                                                                         ordre
FROM volume_horaire vh
@@ -105,7 +107,7 @@ FROM volume_horaire vh
         JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id AND tvh.code = 'PREVU'
         JOIN periode p ON p.id = vh.periode_id
         JOIN type_intervention ti ON ti.id = vh.type_intervention_id
         JOIN utilisateur u ON u.id = vh.histo_modificateur_id
         JOIN utilisateur u ON u.id = s.histo_modificateur_id
         LEFT JOIN motif_non_paiement mnp ON mnp.id = vh.motif_non_paiement_id
GROUP BY s.intervenant_id, ep.structure_id

Loading