Commit 045a3ca8 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

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

parents 816b6f24 300c7a15
Loading
Loading
Loading
Loading
+3 −13
Changes for admin/migration/MigrationDossier.php: 3 added lines, 13 removed lines.
Original line number Diff line number Diff line
@@ -23,18 +23,7 @@ class MigrationDossier extends AbstractMigration

    public function utile(): bool
    {
        $bdd = $this->manager->getBdd();
        if ($this->manager->hasOld('table', 'INTERVENANT_DOSSIER')) {
            $tableIntervenantDossier = $bdd->getTable('INTERVENANT_DOSSIER');
            //Si table intervenant_dossier n'est pas vide, c'est que la migration
            //a déjà eu lieu donc on ne lance pas la migration
            $intervenantDossier = $tableIntervenantDossier->select();
            if ($intervenantDossier) {
                return false;
            }
        }

        return true;
        return $this->manager->hasOld('table', 'DOSSIER');
    }


@@ -52,7 +41,7 @@ class MigrationDossier extends AbstractMigration

    protected function before()
    {

        $this->manager->sauvegarderTable('DOSSIER', 'DOSSIER_SAVE');
    }


@@ -190,6 +179,7 @@ class MigrationDossier extends AbstractMigration
        //Recalcule le tableau de bord des dossier
        $console->println("Calcul du tableau de bord TBL_DOSSIER");
        $bdd->exec('BEGIN unicaen_tbl.calculer(\'dossier\'); END;');
        $this->manager->supprimerSauvegarde('DOSSIER');
        $console->println("Terminé");
        $console->println("Fin de la migration des dossiers V15");
    }
+97 −0
Changes for admin/migration/MigrationPrivileges.php: 97 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php





class MigrationPrivileges extends AbstractMigration
{
    protected $contexte = self::CONTEXTE_ALL;



    public function description(): string
    {
        return "Ajout des privileges d'édition et visualisation du dossier pour les intervenants";
    }



    public function utile(): bool
    {
        return true;
    }



    public function action(string $contexte)
    {
        if ($contexte == self::CONTEXTE_PRE) {
            $this->before();
        } else {
            $this->after();
        }
    }



    protected function before()
    {

    }



    protected function after()
    {
        $oa      = $this->manager->getOseAdmin();
        $bdd     = $this->manager->getBdd();
        $console = $this->manager->getOseAdmin()->getConsole();
        $console->println("Récupération des statuts intervenants");
        $sqlStatut = "
            SELECT 
              *
            FROM statut_intervenant si 
            WHERE 
                si.histo_destruction IS NULL
            AND si.peut_saisir_dossier = 1";

        $statutsIntervenant = $bdd->select($sqlStatut);

        $sqlPrivileges = "
            SELECT
                p.id   id,
                p.code code
            FROM
                privilege p 
            JOIN 
                categorie_privilege cp ON p.categorie_id = cp.id
            WHERE
                cp.code = 'dossier'
            AND 
                p.code NOT IN ('differences', 'purger-differences', 'devalidation', 'validation', 'suppression', 'visualisation', 'edition')";

        $privileges = $bdd->select($sqlPrivileges);

        foreach ($statutsIntervenant as $statut) {
            $statutId = $statut['ID'];
            $console->println("Insertion privliege dossier pour le statut : " . $statut['LIBELLE'], $console::COLOR_LIGHT_GREEN);
            foreach ($privileges as $privilege) {
                $privilegeId = $privilege['ID'];
                try {
                    $sqlInsert = "INSERT INTO statut_privilege (privilege_id, statut_id) VALUES ('" . $privilegeId . "', '" . $statutId . "')";
                    $bdd->exec($sqlInsert);
                } catch (Exception $e) {
                    $message = $e->getMessage();
                    continue;
                    /*if (!strpos($message, 'ORA-00001')) {
                        $console->println("Privilege déjà existant en base pour ce statut", $console::COLOR_LIGHT_RED);
                    }*/
                }
            }
        }

        $console->println("Fin de l'insertion des privileges dossier");
    }
}
+1 −3
Changes for module/Application/src/Application/Service/DossierService.php: 1 added line, 3 removed lines.
Original line number Diff line number Diff line
@@ -257,8 +257,6 @@ class DossierService extends AbstractEntityService

        //Complétude de contact
        if ($statutIntervenantDossier->getDossierContact()) {
            $completudeEmail = true;
            $completudeTel   = true;
            if ($statutIntervenantDossier->getDossierEmailPerso()) {
                $completudeEmail = ($intervenantDossier->getEmailPerso() && $intervenantDossier->getEmailPro()) ? true : false;
            } else {
@@ -323,7 +321,7 @@ class DossierService extends AbstractEntityService
                       'dossierIban'                   => $completudeDossierIban,
                       'dossierEmployeur'              => $completudeDossierEmployeur,
                       'dossierAutres'                 => $completudeDossierAutre,
                       'dossierStatut'                 => $completudeDossier,
                       'dossierStatut'                 => $completudeDossierStatut,
        ];

        return $completude;