Commit f297ec61 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Merge branch 'master' into alc-agrement-duree-vie

parents b2b306dd a14ddd06
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
# OSE 13.1

## Correction de bugs

* Lors de l'installation de OSE, les taux horaires des heures équivalent TD s'initialisent maintenant bien quelle que soit la configuration du serveur
* Lors de la saisie de service, un élément remonte maintenant même si on filtre par une composante qui n'est pas la composante porteuse de l'élément
* Les numéros d'INSEE Corses sont maintenant gérés correctement, de même que les anciens départements français du Maroc et de Tunisie
* Lors de l'installation de l'application, l'initialisation des données fonctionne à nouveau
* Le cache des données de pièces jointes (TBL_PIECE_JOINTE) pose problème depuis la V13 avec les version d'Oracle > 11. Un palliatif est intégré à cette nouvelle version.

# OSE 13.0

## Nouveautés
+0 −1
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@ ENV APACHE_CONF_DIR=/etc/apache2 \

## Installation de packages requis.
RUN apt-get update -y
RUN apt-get upgrade -y
RUN apt-get install -y unoconv

# Nettoyage
+2 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ ENV APACHE_CONF_DIR=/etc/apache2 \
    APPLICATION_ENV=test

## Installation de packages requis.
RUN apt-get update -y
RUN apt-get install -y unoconv

# Nettoyage
@@ -30,6 +31,7 @@ RUN ln -sf /app/bin/ose /usr/local/bin/ose

# Config PHP.
ADD docker/${APPLICATION_ENV}/php.conf ${PHP_CONF_DIR}/fpm/conf.d/app.ini
ADD docker/${APPLICATION_ENV}/php.conf ${PHP_CONF_DIR}/cli/conf.d/app.ini

# Configuration Apache et FPM
ADD docker/${APPLICATION_ENV}/apache-ports.conf    ${APACHE_CONF_DIR}/ports.conf
+44 −70
Original line number Diff line number Diff line
@@ -25,83 +25,57 @@ var_dump($r);

$bdd = $oa->getBdd();

$ds           = $bdd->select('SELECT * FROM DEPARTEMENT');
$departements = [];
foreach ($ds as $d) {
    $departements[$d['CODE']] = $d;
}
var_dump($departements);

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

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

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

$c->println("");

/* On fournie et on valide de force les PJ qui n'étaient pas tout le temps demandées avant */
$sql = '
        SELECT
          TPJ.INTERVENANT_ID, TPJ.TYPE_PIECE_JOINTE_ID, I.STRUCTURE_ID, TV.ID TYPE_VALIDATION_ID, P.VALEUR UTILISATEUR_ID
        FROM 
          TBL_PIECE_JOINTE TPJ
          JOIN INTERVENANT I ON I.ID = TPJ.INTERVENANT_ID AND I.HISTO_DESTRUCTION IS NULL
          JOIN TYPE_PIECE_JOINTE_STATUT TPJS ON TPJS.HISTO_DESTRUCTION IS NULL AND TPJS.TYPE_PIECE_JOINTE_ID = TPJ.TYPE_PIECE_JOINTE_ID AND TPJS.STATUT_INTERVENANT_ID = I.STATUT_ID AND TPJS.DUREE_VIE = 99
          JOIN PARAMETRE P ON P.NOM = \'oseuser\'
          JOIN TYPE_VALIDATION TV ON TV.CODE = \'PIECE_JOINTE\'
          LEFT JOIN PIECE_JOINTE PJ ON PJ.TYPE_PIECE_JOINTE_ID = TPJ.TYPE_PIECE_JOINTE_ID AND PJ.INTERVENANT_ID = I.ID AND PJ.HISTO_DESTRUCTION IS NULL
        WHERE 
          TPJ.DEMANDEE = 1 AND TPJ.FOURNIE = 0 AND TPJ.OBLIGATOIRE = 1
          AND I.PREMIER_RECRUTEMENT = 0
          AND PJ.ID IS NULL
SELECT DISTINCT 
  I.NUMERO_INSEE, I.NUMERO_INSEE_EST_PROVISOIRE NUMERO_INSEE_PROVISOIRE, D.CODE, D.LIBELLE_LONG
FROM DOSSIER I
JOIN DEPARTEMENT D ON D.ID = I.DEPT_NAISSANCE_ID
WHERE NUMERO_INSEE IS NOT NULL
';

$r     = $bdd->select($sql);
$count = 0;
foreach ($r as $i) {
    $dep = getDep($i['NUMERO_INSEE']);

    if (is_int($dep) && $dep != 99) {
        $dep = '0' . $dep;
    }

    if ($dep != $i['CODE'] && $dep != 99) {
        $count++;
    $o = ['histo-user-id' => $i['UTILISATEUR_ID']];

    $fichier = [
        'ID'          => $bdd->sequenceNextVal('FICHIER_ID_SEQ'),
        'NOM'         => 'Fichier non fourni',
        'TYPE'        => 'text/plain',
        'TAILLE'      => 0,
        'DESCRIPTION' => 'Fichier non fourni',
    ];
    $bdd->getTable('FICHIER')->insert($fichier, $o);

    $validation = [
        'ID'                 => $bdd->sequenceNextVal('VALIDATION_ID_SEQ'),
        'TYPE_VALIDATION_ID' => $i['TYPE_VALIDATION_ID'],
        'INTERVENANT_ID'     => $i['INTERVENANT_ID'],
        'STRUCTURE_ID'       => $i['STRUCTURE_ID'],
    ];
    $bdd->getTable('VALIDATION')->insert($validation, $o);

    $pieceJointe = [
        'ID'                   => $bdd->sequenceNextVal('PIECE_JOINTE_ID_SEQ'),
        'TYPE_PIECE_JOINTE_ID' => $i['TYPE_PIECE_JOINTE_ID'],
        'INTERVENANT_ID'       => $i['INTERVENANT_ID'],
        'VALIDATION_ID'        => $validation['ID'],
    ];
    $bdd->getTable('PIECE_JOINTE')->insert($pieceJointe, $o);

    $pjf = [
        'PIECE_JOINTE_ID' => $pieceJointe['ID'],
        'FICHIER_ID'      => $fichier['ID'],
    ];
    $bdd->getTable('PIECE_JOINTE_FICHIER')->insert($pjf, $o);
    $c->print("Insertion des pièces jointes manquantes : $count / " . count($r) . "\r");
        $prov = $i['NUMERO_INSEE_PROVISOIRE'] == 1 ? ' P' : '  ';
        $c->println($i['NUMERO_INSEE'] . $prov . '       .' . $i['CODE'] . '. ' . $dep);
    }
}

$c->println("Calcul du tableau de bord piece_jointe_demande");
$bdd->exec('BEGIN unicaen_tbl.calculer(\'piece_jointe_demande\'); END;');
$c->println($count . ' concernés');


//var_dump($r);

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

$c->println("Calcul du tableau de bord piece_jointe");
$bdd->exec('BEGIN unicaen_tbl.calculer(\'piece_jointe\'); END;');
function getDep($thisvalue)
{
    $iDepartement = substr(strtoupper($thisvalue), 5, 2);
    if ($iDepartement == '2A' || $iDepartement == '2B') {
        return $iDepartement; // corse
    }
    if ($iDepartement == '99') {
        return 99; // étranger
    }
    if ($iDepartement == '97' || $iDepartement == '98') {
        $iDepartement = substr(strtoupper($thisvalue), 5, 3);

$c->println("Calcul du tableau de bord workflow");
$bdd->exec('BEGIN unicaen_tbl.calculer(\'workflow\'); END;');
        return (int)$iDepartement;
    }

$c->println("Terminé");
 No newline at end of file
    return (int)$iDepartement;
}
 No newline at end of file
+2 −1
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ class Bdd
            $error = oci_error();
            throw $this->sendException($error);
        }
        $this->exec('ALTER SESSION SET NLS_NUMERIC_CHARACTERS=". "');

        return $this;
    }
@@ -149,7 +150,7 @@ class Bdd
    public function getCurrentSchema(): string
    {
        if (!$this->currentSchema) {
            $sql                 = "SELECT user scname FROM dual";
            $sql                 = "SELECT user SCNAME FROM DUAL";
            $this->currentSchema = $this->select($sql)[0]['SCNAME'];
        }

Loading