Commit 18163841 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

temp

parent 690405ea
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
        "unicaen/auth":          "^3.0",
        "unicaen/bjy-authorize": "^3.0",
        "unicaen/ldap":          "^3.0",
        "unicaen/db-import":     "3.0",
        "unicaen/db-import":     "dev-master",
        "graphp/graphviz": "^0.2.2",
        "curl/curl": "^2.3"
    },
+75 −256
Original line number Diff line number Diff line
<?php

namespace Application;
//use Import\Model\ImportObserv;
//use Import\Model\ImportObservResult;

use UnicaenPrivilege\Guard\PrivilegeController;


return [
    /**
     * Configuration globale du module UnicaenDbImport.
     */
    'import' => [
        //
        // Connexions.
        //
        'connections' => [
            //
            // Bases de données.
            // Format: 'identifiant unique' => 'nom de la connexion Doctrine'
            //
            'default' => 'doctrine.connection.orm_default',
            'octopus' => 'doctrine.connection.orm_octopus',
        ],
        /**
         * Liste des imports.
         */
        'synchros' => [
//            [
//                'name' => 'Import_AGENT',
                /**
                 * Configuration de la source de données à importer :
                 * - 'name'               : petit nom (unique) de la source
                 * - 'table'              : nom de la table source contenant les données à importer
                 * - 'select'             : select SQL de mise en forme des données source à importer (NB: antinomique avec 'table')
                 * - 'connection'         : identifiant de la connexion Doctrine à la base de données source
                 * - 'source_code_column' : nom de la colonne dans la table/vue source contenant l'identifiant unique
                 * - 'columns'            : liste ordonnée des noms des colonnes à prendre en compte dans la table/vue source
                 */
//                'source' => [
//                    'name'               => 'Agents geres par la DRH',
//                    'table'              => 'V_AGENT',
//                    'select'              => 'SELECT * FROM V_AGENT',
//                    'connection'         => 'octopus',
//                    'source_code_column' => 'C_INDIVIDU',
//                    'columns'            => ['C_SRC_INDIVIDU', 'C_SOURCE', 'PRENOM', 'NOM_USAGE'],
//                ],
                /**
                 * Forçage éventuel du nom de la table intermédiaire utilisée lorsque source et destination
                 * ne partagent pas la même connexion. NB: cette table intermédiaire est créée/peuplée/supprimée
                 * dans la base de données destination à chaque import.
                 * En l'absence de ce forçage, le nom de la table intermédiaire sera celui de la table destination
                 * préfixé par "src_".
                 */
//                'intermediate_table' => 'src_agent',
                /**
                 * Configuration de la destination des données importées :
                 * - 'name'               : petit nom (unique) de la destination
                 * - 'table'              : nom de la table destination vers laquelle les données sont importées
                 * - 'connection'         : identifiant de la connexion Doctrine à la base de données destination
                 * - 'source_code_column' : nom de la colonne dans la table destination contenant l'identifiant unique
                 * - 'columns'            : liste ordonnée des noms des colonnes importées dans la table destination
                 * - 'columns_to_char'    : format sprintf nécessaire pour mettre des colonnes au format requis (string)
                 */
//                'destination' => [
//                    'name'               => 'Agents gérés par la DRH',
//                    'table'              => 'agent',
//                    'connection'         => 'default',
//                    'source_code_column' => 'c_individu',
//                    'columns'            => ['c_src_individu', 'c_source', 'prenom', 'nom_usage'],
//                    'columns_to_char' => [
//                        'debut_validite' => "TO_CHAR(%s,'YYYY-MM-DD')", // car colonne destination de type TIMESTAMP
//                        'fin_validite'   => "TO_CHAR(%s,'YYYY-MM-DD')", // idem
//                    ],
//                ],
//            ],
            [
                'name' => 'Import_AGENT',
                'source' => [
                    'name'               => 'Agents geres par la DRH',
                    'select'             => 'SELECT * FROM V_PREECOG_AGENT',
                    'connection'         => 'octopus',
                    'source_code_column' => 'C_INDIVIDU',
                    'columns'            => ['PRENOM', 'NOM_USAGE'],
                ],
//                'intermediate_table' => 'src_agent',
                'destination' => [
                    'name'               => 'Agents gérés par la DRH',
                    'table'              => 'agent',
                    'connection'         => 'default',
                    'source_code_column' => 'c_individu',
                    'columns'            => ['prenom', 'nom_usage', 'harp_id'],
                ],
            ],
            [
                'name' => 'Import_AFFECTATION',
                'source' => [
                    'name'               => 'Affectations des agents',
                    'select'             => 'SELECT * FROM V_PREECOG_AFFECTATION',
                    'connection'         => 'octopus',
                    'source_code_column' => 'AFFECTATION_ID',
                    'columns'            => ['INDIVIDU_ID', 'STRUCTURE_ID', 'DATE_DEBUT', 'DATE_FIN', 'ID_ORIG', 'T_PRINCIPALE'],
                ],
//                'intermediate_table' => 'src_agent',
                'destination' => [
                    'name'               => 'Affectation des agents gérés par la DRH',
                    'table'              => 'agent_affectation',
                    'connection'         => 'default',
                    'source_code_column' => 'affectation_id',
                    'columns'            => ['individu_id', 'structure_id', 'date_debut', 'date_fin', 'id_orig', 't_principale'],
                ],
            ],
            [
                'name' => 'Import_AGENT_GRADE',
                'source' => [
                    'name'               => 'Grades liés aux agents de PreeCog',
                    'select'             => 'SELECT ID, ID_ORIG, AGENT_ID, STRUCTURE_ID, CORPS_ID, GRADE_ID, BAP_ID, D_DEBUT, D_FIN FROM V_PREECOG_GRADE',
                    'connection'         => 'octopus',
                    'source_code_column' => 'ID',
                    //'columns'            => ['AGENT_ID', 'STRUCTURE_ID', 'CORPS_ID', 'GRADE_ID', 'BAP_ID', 'DATE_DEBUT', 'DATE_FIN'],
                ],
                'intermediate_table' => 'src_agent_grade',
                'destination' => [
                    'name'               => 'Grade des agents gérés par la DRH',
                    'table'              => 'agent_grade',
                    'connection'         => 'default',
                    'source_code_column' => 'id',
                    'columns'            => ['id_orig', 'agent_id', 'structure_id', 'corps_id', 'grade_id', 'bap_id', 'd_debut', 'd_fin'],
                ],
            ],

    'bjyauthorize'    => [
        'guards' => [
            PrivilegeController::class => [
                [
                'name' => 'Import_STATUT',
                'source' => [
                    'name'               => 'Statut des agents geres par la DRH',
                    'select'             => 'SELECT ID, ID_ORIG, C_SOURCE, AGENT_ID, STRUCTURE_ID, D_DEBUT, D_FIN, T_TITULAIRE, T_CDI, T_CDD, T_VACATAIRE, T_ENSEIGNANT, T_ADMINISTRATIF, T_CHERCHEUR, T_ETUDIANT, T_AUDITEUR_LIBRE, T_DOCTORANT, T_DETACHE_IN, T_DETACHE_OUT, T_DISPO, T_HEBERGE, T_EMERITE, T_RETRAITE    FROM V_PREECOG_STATUT',
                    'connection'         => 'octopus',
                    'source_code_column' => 'ID',
//                    'columns'            => ['ID_ORIG', 'C_SOURCE', 'INDIVIDU_ID', 'STRUCTURE_ID', 'D_DEBUT', 'D_FIN', 'T_TITULAIRE', 'T_CDI', 'T_CDD', 'T_VACATAIRE', 'T_ENSEIGNANT', 'T_ADMINISTRATIF', 'T_CHERCHEUR', 'T_ETUDIANT', 'T_AUDITEUR_LIBRE', 'T_DOCTORANT', 'T_DETACHE_IN', 'T_DETACHE_OUT', 'T_DISPO', 'T_HEBERGE', 'T_EMERITE', 'T_RETRAITE', 'T_CLD', 'T_CLM'],
                ],
                'intermediate_table' => 'src_agent_statut',
                'destination' => [
                    'name'               => 'Statut des agents geres par la DRH',
                    'table'              => 'agent_statut',
                    'connection'         => 'default',
                    'source_code_column' => 'id',
                    'columns'            => ['id_orig', 'c_source', 'individu_id', 'structure_id', 'd_debut', 'd_fin', 't_titulaire', 't_cdi', 't_cdd', 't_vacataire', 't_enseignant', 't_administratif', 't_chercheur', 't_etudiant', 't_auditeur_libre', 't_doctorant', 't_detache_in', 't_detache_out', 't_dispo', 't_heberge', 't_emerite', 't_retraite', 't_cld', 't_clm'],
                    'columns_to_char' => [
                        'd_debut' => "TO_CHAR(%s,'YYYY-MM-DD')",
                        'd_fin'   => "TO_CHAR(%s,'YYYY-MM-DD')",
                    ],
                    'controller' => 'UnicaenDbImport\Controller\Console',
                    'action'     => [
                        'runImport',
                        'runSynchro',
                    ],
                    'roles' => [],
                ],
            [
                'name' => 'Import_CORPS',
                'source' => [
                    'name'               => 'Corps des agents remontés depuis OCTOPUS',
                    'select'             => 'SELECT ID,  C_CORPS as CODE, C_CATEGORIE as CATEGORIE, LIB_COURT, LIB_LONG, HISTO_DESTRUCTION as HISTO FROM CORPS',
                    'connection'         => 'octopus',
                    'source_code_column' => 'ID',
            ],
                'intermediate_table' => 'src_corps',
                'destination' => [
                    'name'               => 'Corps des agents remonté depuis OCTOPUS',
                    'table'              => 'corps',
                    'connection'         => 'default',
                    'source_code_column' => 'id',
                    'columns'            => ['code', 'categorie', 'lib_court', 'lib_long', 'histo'],
        ],
    ],
                        [
                'name' => 'Import_GRADE',
                'source' => [
                    'name'               => 'Grades des agents remonté depuis OCTOPUS',
                    'select'             => 'SELECT ID, C_GRADE AS CODE, LIB_COURT, LIB_LONG, HISTO_DESTRUCTION AS HISTO FROM GRADE',
                    'connection'         => 'octopus',
                    'source_code_column' => 'ID',
                    'columns'            => ['LIB_COURT', 'LIB_LONG', 'CODE', 'HISTO'],
                ],
                'intermediate_table' => 'src_grade',
                'destination' => [
                    'name'               => 'Grades des agents remonté depuis OCTOPUS',
                    'table'              => 'grade',
                    'connection'         => 'default',
                    'source_code_column' => 'id',
                    'columns'            => ['lib_court', 'lib_long', 'code', 'histo'],
                ],
            ],
            [
                'name' => 'Import_BAP',
                'source' => [
                    'name'               => 'BAP des agents remonté depuis OCTOPUS',
                    'select'             => 'SELECT ID, C_BAP, LIB_COURT, LIB_LONG, HISTO_DESTRUCTION AS HISTO FROM BAP',
                    'connection'         => 'octopus',
                    'source_code_column' => 'ID',
                    'columns'            => ['C_BAP', 'LIB_COURT', 'LIB_LONG', 'HISTO'],

    'import' => [

//        'import_observ_entity_class' => ImportObserv::class,
//        'import_observ_result_entity_class' => ImportObservResult::class,

        'connections' => [
            'default' => 'doctrine.connection.orm_default',
            'octopus' => 'doctrine.connection.orm_octopus',
        ],
                'intermediate_table' => 'src_correspondance',
                'destination' => [
                    'name'               => 'BAP des agents remonté depuis OCTOPUS',
                    'table'              => 'correspondance',
                    'connection'         => 'default',
                    'source_code_column' => 'id',
                    'columns'            => ['c_bap', 'lib_court', 'lib_long', 'histo'],

        //
        // Alias éventuels des noms de colonnes d'historique.
        //
        'histo_columns_aliases' => [
//            'created_on' => 'HISTO_CREATION',     // date/heure de création de l'enregistrement
//            'updated_on' => 'HISTO_MODIFICATION', // date/heure de modification
//            'deleted_on' => 'HISTO_DESTRUCTION',  // date/heure de suppression

//            'created_by' => 'HISTO_CREATEUR_ID',     // auteur de la création de l'enregistrement
//            'updated_by' => 'HISTO_MODIFICATEUR_ID', // auteur de la modification
//            'deleted_by' => 'HISTO_DESTRUCTEUR_ID',  // auteur de la suppression
        ],

        //
        // Forçage éventuel de valeur pour les colonnes d'historique.
        //
        'histo_columns_values' => [
            'created_by' => 0, // auteur de la création de l'enregistrement
            'updated_by' => 0, // auteur de la modification
            'deleted_by' => 0, // auteur de la suppression
        ],

        //
        // Témoin indiquant si la table IMPORT_OBSERV doit être prise en compte.
        // La table IMPORT_OBSERV permet d'inscrire les changements de valeurs à détecter pendant la synchro.
        // Les changements détectés sont consignés dans la table IMPORT_OBSERV_RESULT.
        //
        'use_import_observ' => false,

        //
        // Imports.
        //
        'imports' => [],

        //
        // Synchros.
        //
        'synchros' => [
            [
                'name' => 'Import_STRUCTURE_TYPE',
                'source' => [
@@ -217,80 +87,29 @@ return [
                    'connection'         => 'default',
                    'source_code_column' => 'id',
                    'columns'            => ['code', 'libelle'],
                ],
            ],
            [
                'name' => 'Import_STRUCTURE',
                'source' => [
                    'name'               => 'Agents geres par la DRH',
                    'select'             => 'SELECT ID, CODE, LIBELLE_COURT, LIBELLE_LONG, TYPE_ID, DATE_OUVERTURE AS OUVERTURE, DATE_FERMETURE AS FERMETURE, HISTO, PARENT_ID FROM V_PREECOG_STRUCTURE',
                    'connection'         => 'octopus',
                    'source_code_column' => 'ID',
                ],
                'intermediate_table' => 'src_structure',
                'destination' => [
                    'name'               => 'Structure stockees dans octopus',
                    'table'              => 'structure',
                    'connection'         => 'default',
                    'source_code_column' => 'id',
                    'columns'            => ['code', 'libelle_court', 'libelle_long', 'type_id', 'ouverture', 'fermeture', 'histo','parent_id'],
                    //'log_table' => 'import_log',
                    //'intermediate_table' => 'TMP_STRUCTURE',
                    'intermediate_table_auto_drop' => false,
                ],
            ],
//            [
//                'name' => 'Import_FONCTION',
//                'name' => 'SYNCHRO_STRUCTURE',
//                'source' => [
//                    'name'               => 'Fonctions remontées de PrEECoG',
//                    'select'             => 'SELECT * FROM V_PREECOG_FONCTION',
//                    'connection'         => 'octopus',
//                    'source_code_column' => 'ID',
//                    'columns'            => ['PARENT_ID', 'CODE', 'NIVEAU'],
//                ],
//                'intermediate_table' => 'src_fonction',
//                'destination' => [
//                    'name'               => 'Fonctions remontées de OCTOPUS',
//                    'table'              => 'fonction',
//                    'name'               => 'app',
//                    'table'              => 'SRC_STRUCTURE',
//                    'connection'         => 'default',
//                    'source_code_column' => 'id',
//                    'columns'            => ['parent_id', 'code', 'niveau'],
//                ],
//                    'source_code_column' => 'SOURCE_CODE',
//                ],
//            [
//                'name' => 'Import_FONCTION_LIBELLE',
//                'source' => [
//                    'name'               => 'Libellés des fonctions remontées de PrEECoG',
//                    'select'             => 'SELECT * FROM V_PREECOG_FONCTION_LIBELLE',
//                    'connection'         => 'octopus',
//                    'source_code_column' => 'ID',
//                    'columns'            => ['FONCTION_ID', 'LIBELLE', 'GENRE', 'DEFAUT'],
//                ],
//                'intermediate_table' => 'src_fonction_libelle',
//                'destination' => [
//                    'name'               => 'Libellés des fonctions remontées de OCTOPUS',
//                    'table'              => 'fonction_libelle',
//                    'name'               => 'app',
//                    'table'              => 'STRUCTURE',
//                    'connection'         => 'default',
//                    'source_code_column' => 'id',
//                    'columns'            => ['fonction_id', 'libelle', 'genre', 'defaut'],
//                    'source_code_column' => 'SOURCE_CODE',
//                    //'log_table' => 'import_log',
//                    //'intermediate_table' => 'TMP_STRUCTURE',
//                    'intermediate_table_auto_drop' => false,
//                ],
//            ],
//

        ],

    ],

    'bjyauthorize'    => [
        'guards' => [
            PrivilegeController::class => [
                [
                    'controller' => 'UnicaenDbImport\Controller\Console',
                    'action'     => [
                        'runImport',
                        'runSynchro',
        ],
                    'roles' => [],
    ],
            ],
        ],
    ],

];
 No newline at end of file
+296 −0

File added.

Preview size limit exceeded, changes collapsed.

+20 −2
Original line number Diff line number Diff line
@@ -241,7 +241,7 @@ IntraNavigator = {
     */
    run: function ()
    {
        var submitSelector = '.intranavigator form:not(.no-intranavigation form)';
        var submitSelector = '.intranavigator form:not(.no-intranavigation)';
        var clickSelector = '.intranavigator a:not(.pop-ajax):not(.ajax-modal):not(.no-intranavigation):not(.no-intranavigation a)';

        /* TODO: trouver une meilleure solution que d'utiliser la classe CSS "no-intranavigation" pour désactiver l'intra-navigation ?*/
@@ -855,16 +855,34 @@ $.widget("unicaen.tabAjax", {
        return this;
    },

    _create: function ()
    getContent: function(tab)
    {
        var that = this;

        tab = this.getTab(tab);
        tid = tab.attr('data-target');
        return that.element.find(".tab-pane" + tid).html();
    },

    getSelected: function()
    {
        var sel = this.element.find('.tab-pane.active').attr('id');

        return sel;
    },

    _create: function ()
    {
        var that = this;
        this.element.find('.nav-tabs a').on('click', function (e)
        {
            e.preventDefault();
            that.select($(this));
            return false;
        });
        if (!that.getContent(that.getSelected())){
            that.select(that.getSelected());
        }
    },

});