Commit 472adc2b authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Merge branch 'll-new-admin' into 'master'

Ll new admin

See merge request !52
parents ee512b93 c622890b
Loading
Loading
Loading
Loading
+13 −17
Original line number Diff line number Diff line
<?php

if (!$oa->bddIsOk($msg)) {
    $c->printDie("Impossible d'accéder à la base de données : $msg!"
        . "\nVeuillez contrôler vos paramètres de configuration s'il vous plaît, avant de refaire une tentative de MAJ de la base de données (./bin/ose update-bdd).");
}

$bdd = $oa->getBdd();
$schema = new \BddAdmin\Schema($bdd);
$bdd->setLogger($c);

$fichier = $oa->getOseDir() . 'cache/bdd-update-diff.sql';

$c->println("\nConstruction d'un script de mise à jour de la base de données ...", $c::COLOR_LIGHT_CYAN);
$c->println("Attention : par rapport à update-bdd, seules les définitions des objets sont concernées. Les requêtes de mise à jour des données ne sont pas générées.");
$c->begin("Construction d'un script de mise à jour de la base de données");
$c->msg("Attention : par rapport à update-bdd, seules les définitions des objets sont concernées. Les requêtes de mise à jour des données ne sont pas générées.");

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


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

/* Mise à jour de la BDD */
$queries = $schema->diff($ref, false, $ddlConfig);
$sqlDdl = $schema->queriesToSql($queries);
file_put_contents($fichier, $sqlDdl);
$diff = $bdd->diff($ref, $filters);
$sql  = $diff->toScript();
file_put_contents($fichier, $sql);

$c->println("Script différentiel créé et enregistré dans le fichier $fichier");
 No newline at end of file
$c->end("Script différentiel créé et enregistré dans le fichier $fichier");
 No newline at end of file
+2 −2
Original line number Diff line number Diff line
@@ -23,11 +23,11 @@ if ($params['params']['creer-intervenant']) {

    $bdd = $oa->getBdd();

    $annee                     = $bdd->select("SELECT libelle FROM annee WHERE id = (SELECT valeur FROM parametre WHERE nom = 'annee')", [], $bdd::FETCH_ONE)['LIBELLE'];
    $annee                     = $bdd->select("SELECT LIBELLE FROM ANNEE WHERE ID = (SELECT VALEUR FROM PARAMETRE WHERE NOM = 'annee')", [], ['fetch' => $bdd::FETCH_ONE])['LIBELLE'];
    $params['params']['annee'] = $c->getInput('annee', 'Année universitaire (' . $annee . ' par défaut, sinon entrez 2020 pour 2020/2021, etc.)');

    if (!$c->hasOption('statut')) {
        $statuts = $bdd->select("SELECT source_code CODE, libelle FROM statut_intervenant WHERE histo_destruction IS NULL AND source_code <> 'AUTRES' ORDER BY ordre");
        $statuts = $bdd->select("SELECT CODE CODE, LIBELLE FROM STATUT_INTERVENANT WHERE HISTO_DESTRUCTION IS NULL AND CODE <> 'AUTRES' ORDER BY ORDRE");
        $c->println('Statut de \'intervenant ("AUTRES" par défaut, sinon entrez le code parmi les propositions suivantes) :');
        $maxCodeLength = 0;
        foreach ($statuts as $statut) {
+6 −23
Original line number Diff line number Diff line
<?php

/* Initialisation */
$c->println("\nInstallation de la base de données", $c::COLOR_LIGHT_CYAN);
if (!$oa->bddIsOk($msg)) {
    $c->printDie("Impossible d'accéder à la base de données : $msg!"
        . "\nVeuillez contrôler les paramètres de configurations entrés dans le fichier confg.local.php s'il vous plaît, avant de refaire une tentative d'installation de la base de données.");
}

$bdd = $oa->getBdd();
$schema = new \BddAdmin\Schema($bdd);

$bdd->setLogger($c);

/* Mise en place du schéma de la BDD */
$c->println("\n" . 'Création des définitions de la base de données', $c::COLOR_LIGHT_PURPLE);

$ref = $schema->loadFromFile($oa->getOseDir() . 'data/ddl.php');

$scl          = new \BddAdmin\SchemaConsoleLogger();
$scl->console = $c;
$schema->setLogger($scl);
$schema->create($ref, true);

$ref = new BddAdmin\Ddl\Ddl();
$ref->loadFromDir($oa->getOseDir() . 'data/ddl');
$bdd->create($ref);

/* Insertion des données */
$c->println("\n" . 'Insertion des données', $c::COLOR_LIGHT_PURPLE);
$dataGen = new DataGen($oa);
$dataGen->install();

$c->println("\n" . 'Mise à jour du point d\'indice pour les HETD', $c::COLOR_LIGHT_PURPLE);
$bdd->exec('BEGIN OSE_FORMULE.UPDATE_ANNEE_TAUX_HETD; END;');


/* Définition d'un mdp pour oseappli */
if ($c->hasOption('oseappli-pwd')) {
@@ -47,7 +30,7 @@ if ($c->hasOption('oseappli-pwd')) {
    }
}

$c->println('Application du de mot de pase de oseappli...');
$c->println('Application du de mot de passe de oseappli...');
$oa->exec("changement-mot-de-passe --utilisateur=oseappli --mot-de-passe=$pwd1");

$c->println('Mot de passe changé', $c::COLOR_LIGHT_GREEN);
+1 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ if ($composerExists) {
}

// Mise à jour des liens vers les répertoires publics des dépendances
$oa->run('maj-public-links', false);
$oa->run('maj-public-links');

if (!file_exists($osedir . 'config.local.php')) {
    $c->exec([
+16 −48
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ $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.php');
$ref = $schema->loadFromFile($oa->getOseDir() . 'data/ddl');

/* Construction de la config de DDL pour filtrer *
$ddlConfig = require $oa->getOseDir() . 'data/ddl_config.php';
@@ -23,59 +23,27 @@ $r = $mm->testUtile('FormuleMigrationVolumeHoraireStructuresTestVersCode');
var_dump($r);
*/

$bdd = $oa->getBdd();

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

$sql = '
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
';
$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'));

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

    if (is_int($dep) && $dep != 99) {
        $dep = '0' . $dep;
    }
//$deployLocal->drop();
//$deployLocal->create($devLocal);

    if ($dep != $i['CODE'] && $dep != 99) {
        $count++;
        $prov = $i['NUMERO_INSEE_PROVISOIRE'] == 1 ? ' P' : '  ';
        $c->println($i['NUMERO_INSEE'] . $prov . '       .' . $i['CODE'] . '. ' . $dep);
    }
}

$c->println($count . ' concernés');
//$deployLocal->copy($devLocal);

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

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

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

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);

        return (int)$iDepartement;
    }

    return (int)$iDepartement;
}
 No newline at end of file
$deployLocal->getTable('TAUX_HORAIRE_HETD')->insert($d, ['histo-user-id' => $oa->getOseAppliId()]);
 No newline at end of file
Loading