Skip to content
Snippets Groups Projects
Select Git revision
  • b04ba4844a517f4205e3c4931771dbdd67b51ff1
  • master default protected
  • b24
  • ll-workflow
  • alc-scindage-donnees-pj
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • b22
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
  • 24.0-beta12
  • 24.0-beta11
41 results

v18Divers.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    v18Divers.php 3.33 KiB
    <?php
    
    
    
    
    
    class v18Divers extends AbstractMigration
    {
    
        public function description(): string
        {
            return "Migration OSE 17 vers OSE 18";
        }
    
    
    
        public function utile(): bool
        {
            return $this->manager->hasNew('table', 'PLAFOND_PERIMETRE');
        }
    
    
    
        public function before()
        {
            $bdd = $this->manager->getBdd();
            $c   = $this->manager->getOseAdmin()->getConsole();
    
            // test pour savoir si on est bien en V17 minimum
            if (!$this->manager->hasColumn('INTERVENANT', 'EXPORT_DATE')) {
                $c->printDie('Attention : vous devez d\'abord mettre à jour en version 17.3 AVANT de mettre à jour en version 18');
            }
    
            try {
                $c->msg('Coupure forcée de la synchronisation sur la table INTERVENANT');
                $bdd->exec("UPDATE IMPORT_TABLES SET SYNC_ENABLED = 0 WHERE TABLE_NAME = 'INTERVENANT'");
            } catch (\Exception $e) {
                // rien à faire : la contrainte a déjà du être supprimée
            }
    
            $this->sauvegardes();
    
            try {
                $c->msg('Suppression des affectations de recherche ayant des structures invalides');
                $bdd->exec("DELETE FROM AFFECTATION_RECHERCHE WHERE structure_id NOT IN (SELECT ID FROM STRUCTURE)");
            } catch (\Exception $e) {
                // rien à faire : la contrainte a déjà du être supprimée
            }
    
            try {
                $c->msg('Suppression de la contrainte TYPE_INTERVENANT_CODE_UN en prévision de sa recréation');
                $bdd->exec("ALTER TABLE TYPE_INTERVENANT DROP CONSTRAINT TYPE_INTERVENANT_CODE_UN");
            } catch (\Exception $e) {
                // rien à faire : la contrainte a déjà du être supprimée
            }
        }
    
    
    
        protected function sauvegardes()
        {
            $bdd = $this->manager->getBdd();
            $c   = $this->manager->getOseAdmin()->getConsole();
    
            $tables = [
                'INTERVENANT'                    => 'SAVE_V18_INTERVENANT',
                'INTERVENANT_DOSSIER'            => 'SAVE_V18_DOSSIER',
                'TYPE_PIECE_JOINTE_STATUT'       => 'SAVE_V18_TPJS',
                'TYPE_INTERVENTION_STATUT'       => 'SAVE_V18_TIS',
                'STATUT_INTERVENANT'             => 'SAVE_V18_STATUT',