From 437d4a991e8a5d8db8ad761f8e1a1574fd260000 Mon Sep 17 00:00:00 2001
From: Bertrand Gauthier <bertrand.gauthier@unicaen.fr>
Date: Mon, 22 Oct 2018 14:26:13 +0200
Subject: [PATCH] Version 1.1.3

---
 CHANGELOG.md                                  |   5 +
 doc/release-notes/v1.1.3.md                   | 124 ++++++++++++++++++
 .../src/V1/Rest/Version/VersionResource.php   |   2 +-
 3 files changed, 130 insertions(+), 1 deletion(-)
 create mode 100644 doc/release-notes/v1.1.3.md

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 26cbd54..6314b96 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,3 +22,8 @@ grâce à l'utilisation d'une vue matérialisée des emails des individus, rafra
 
 - [BUGFIX] Les données n'étaient pas triées correctement, entraînant la présence possible du même enregistrement
 sur 2 pages distinctes retournées par le web service.
+
+## v1.1.3 (22/10/2018)
+
+- [BUGFIX] Correction du script de la vue Apogée SYGAL_INDIVIDU qui inversait le nom usuel et le nom de naissance 
+des acteurs.
diff --git a/doc/release-notes/v1.1.3.md b/doc/release-notes/v1.1.3.md
new file mode 100644
index 0000000..4da5ad1
--- /dev/null
+++ b/doc/release-notes/v1.1.3.md
@@ -0,0 +1,124 @@
+# v1.1.3
+
+## Sources PHP
+
+Sur le serveur, placez-vous dans le répertoire du web service (sans doute `/var/www/sygal-import-ws`) 
+puis lancez la commande git suivante pour "installer" la nouvelle version :
+```bash
+git fetch && git fetch --tags && git checkout 1.1.3
+```
+
+Selon le moteur PHP que vous avez installé, rechargez le service, exemple :
+  - php7.0-fpm         : `service php7.0-fpm reload`
+  - apache2-mod-php7.0 : `service apache2 reload`
+
+## Base de données
+
+Avis à ceux qui ont Apogée, la vue SYGAL_INDIVIDU doit être corrigée car elle inverse le nom usuel et le nom de naissance 
+des acteurs :
+
+```sql
+create or replace view SYGAL_INDIVIDU as
+  select distinct
+    'apogee'                                            as source_id,       -- Id de la source
+    'doctorant'                                         as type,
+    to_char(ind.cod_etu)                                as id,              -- Numero etudiant
+    decode(ind.cod_civ, 1, 'M.', 'Mme')                 as civ,             -- Civilite etudiant
+    ind.lib_nom_pat_ind                                 as lib_nom_pat_ind, -- Nom de famille etudiant
+    coalesce(ind.lib_nom_usu_ind, ind.lib_nom_pat_ind)  as lib_nom_usu_ind, -- Nom usage etudiant
+    initcap(coalesce(ind.lib_pr1_ind,'Aucun'))          as lib_pr1_ind,     -- Prenom 1 etudiant
+    initcap(ind.lib_pr2_ind)                            as lib_pr2_ind,     -- Prenom 2 etudiant
+    initcap(ind.lib_pr3_ind)                            as lib_pr3_ind,     -- Prenom 3 etudiant
+    emails.email                                        as email,           -- Mail etudiant
+    ind.date_nai_ind                                    as date_nai_ind,    -- Date naissance etudiant
+    ind.cod_pay_nat                                     as cod_pay_nat,     -- Code nationalite
+    pay.lib_nat                                         as lib_nat          -- Libelle nationalite
+  from these_hdr_sout ths
+    join diplome        dip on dip.cod_dip     = ths.cod_dip
+    join typ_diplome    tpd on tpd.cod_tpd_etb = dip.cod_tpd_etb
+    join individu       ind on ind.cod_ind     = ths.cod_ind --and ind.cod_etu != 21009539 -- Exclusion du compte de test Aaron AAABA
+    join pays           pay on pay.cod_pay     = ind.cod_pay_nat
+    left join SYGAL_MV_EMAIL emails on emails.id = ind.cod_etu
+  where ths.cod_ths_trv     =  '1'  --  Exclusion des travaux
+        and dip.cod_tpd_etb     in ( '39', '40' )
+        and tpd.eta_ths_hdr_drt =  'T'  -- Inscription en these
+        and tpd.tem_sante       =  'N'  -- Exclusion des theses d exercice
+        and ind.cod_etu is not null         -- oui, oui, ça arrive
+  union
+  -- acteurs
+  select "SOURCE_ID","TYPE","ID","CIV","LIB_NOM_PAT_IND","LIB_NOM_USU_IND","LIB_PR1_IND","LIB_PR2_IND","LIB_PR3_IND","EMAIL","DATE_NAI_IND","COD_PAY_NAT","LIB_NAT" from (
+    with acteur as (
+      select
+        ths.cod_ths,
+        'D'              as cod_roj,
+        ths.cod_per_dir  as cod_per,
+        ths.cod_etb_dir  as cod_etb,
+        ths.cod_cps_dir  as cod_cps,
+        null             as tem_rap_recu,
+        null             as cod_roj_compl
+      from these_hdr_sout ths
+      where ths.cod_ths_trv = '1' and ths.cod_per_dir is not null
+      union
+      select
+        ths.cod_ths,
+        'D'              as cod_roj,
+        ths.cod_per_cdr  as cod_per,
+        ths.cod_etb_cdr  as cod_etb,
+        ths.cod_cps_cdr  as cod_cps,
+        null             as tem_rap_recu,
+        null             as cod_roj_compl
+      from these_hdr_sout ths
+      where ths.cod_ths_trv = '1' and ths.cod_per_cdr is not null
+      union
+      select
+        ths.cod_ths,
+        'D'              as cod_roj,
+        ths.cod_per_cdr2 as cod_per,
+        ths.cod_etb_cdr2 as cod_etb,
+        ths.cod_cps_cdr2 as cod_cps,
+        null             as tem_rap_recu,
+        null             as cod_roj_compl
+      from these_hdr_sout ths
+      where ths.cod_ths_trv = '1' and ths.cod_per_cdr2 is not null
+      union
+      select
+        trs.cod_ths,
+        'R'              as cod_roj,
+        trs.cod_per,
+        null             as cod_etb,
+        null             as cod_cps,
+        trs.tem_rap_recu,
+        null             as cod_roj_compl
+      from ths_rap_sou trs
+      union
+      select
+        tjp.cod_ths,
+        'M'              as cod_roj,
+        tjp.cod_per,
+        tjp.cod_etb,
+        tjp.cod_cps,
+        null             as tem_rap_recu,
+        case when tjp.cod_roj in ( 'P', 'B', 'A' ) then tjp.cod_roj else null end as cod_roj_compl
+      from ths_jur_per tjp
+    )
+    select distinct
+      'apogee'                                                                                                as source_id,
+      'acteur'                                                                                                as type,
+      coalesce(regexp_replace(per.num_dos_har_per,'[^0-9]',''), 'COD_PER_'||act.cod_per)                      as id,     -- Code Harpege ou Apogee de l acteur
+      initcap(per.cod_civ_per)                                                                                as civ,             -- Civilite acteur
+      per.LIB_NOM_PAT_PER                                                                                     as lib_nom_pat_ind, -- Nom de famille acteur
+      per.lib_nom_usu_per                                                                                     as lib_nom_usu_ind, -- Nom d'usage acteur
+      per.lib_pr1_per                                                                                         as lib_pr1_ind,     -- Prenom 1 acteur
+      null                                                                                                    as lib_pr2_ind,     -- Prenom 2 acteur
+      null                                                                                                    as lib_pr3_ind,     -- Prenom 3 acteur
+      emails.email                                                                                            as email,           -- Mail acteur
+      per.dat_nai_per                                                                                         as date_nai_ind,    -- Date naissance acteur
+      null                                                                                                    as cod_pay_nat,     -- Code nationalite
+      null                                                                                                    as lib_nat          -- Libelle nationalite
+    from acteur               act
+      join role_jury            roj on roj.cod_roj = act.cod_roj
+      join personnel            per on per.cod_per = act.cod_per
+      left join SYGAL_MV_EMAIL emails on emails.id = per.num_dos_har_per
+  )
+/
+```
diff --git a/module/ImportData/src/V1/Rest/Version/VersionResource.php b/module/ImportData/src/V1/Rest/Version/VersionResource.php
index 2c96317..85766d0 100644
--- a/module/ImportData/src/V1/Rest/Version/VersionResource.php
+++ b/module/ImportData/src/V1/Rest/Version/VersionResource.php
@@ -7,7 +7,7 @@ use ZF\Rest\AbstractResourceListener;
 
 class VersionResource extends AbstractResourceListener
 {
-    const VERSION_NUMBER = '1.1.1';
+    const VERSION_NUMBER = '1.1.3';
 
     /**
      * Fetch a resource
-- 
GitLab