Skip to content
Snippets Groups Projects
Commit b5ce377b authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Prise en compte du témoin 'corrections effectuées' de chaque thèse.

parent 0f460c81
No related branches found
No related tags found
No related merge requests found
Journal des modifications
=========================
1.3.5
-----
- Prise en compte du témoin "corrections effectuées" de chaque thèse.
- Mise à jour de la vue Apogée `V_SYGAL_INDIVIDU` : inclusion des co-encadrants (i.e. individus rattachés à une composante fictive 'COE').
- Mise à jour de la vue Apogée `V_SYGAL_THESE` : renommage du témoin "corrections effectuées".
1.3.4 (06/07/2020)
------------------
......
......@@ -201,6 +201,7 @@ create table SYGAL_THESE
COD_NEG_TRE VARCHAR2(1),
ETA_RPD_THS VARCHAR2(1),
CORRECTION_POSSIBLE VARCHAR2(11),
CORRECTION_EFFECTUEE VARCHAR2(11),
COD_ANU_PRM_IAE VARCHAR2(20),
DAT_ABANDON DATE,
DAT_TRANSFERT_DEP DATE,
......
......@@ -97,7 +97,8 @@ select distinct
and ind.cod_etu is not null -- oui, oui, ça arrive
union
-- acteurs
select "SOURCE_ID","TYPE","ID","SUPANN_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 (
select "SOURCE_ID","TYPE","ID","SUPANN_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,
......@@ -151,6 +152,17 @@ select distinct
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
union
select
null as cod_ths,
'B' as cod_roj,
pic.cod_per,
null as cod_etb,
null as cod_cps,
null as tem_rap_recu,
null as cod_roj_compl
from per_intervenir_cmp pic
where pic.cod_cmp = 'COE' -- composante fictive associee aux co-encadrants
)
select distinct
'apogee' as source_id,
......@@ -276,7 +288,8 @@ select
decode(ths.eta_rpd_ths,
'N', 'obligatoire',
'C', 'facultative',
null) as correction_possible -- Témoin de corrections attendues
null) as correction_possible, -- Témoin de corrections attendues
ths.tem_cor_ths as correction_effectuee -- Témoin de corrections effectuees
from inscription_administrative iae
join individu ind on ind.cod_ind = iae.cod_ind
......
......@@ -620,6 +620,7 @@ WHERE A_COT.ASS_CODE = 'D_LAB_THESE'
ecole_doct_id,
COD_NEG_TRE,
CORRECTION_POSSIBLE,
CORRECTION_EFFECTUEE,
DAT_AUT_SOU_THS,
LIB_ETB_COT,
LIB_PAY,
......@@ -662,6 +663,7 @@ FROM
etab_cot1.c_structure AS ecole_doct_id,
'' AS COD_NEG_TRE,
null AS CORRECTION_POSSIBLE,
null AS CORRECTION_EFFECTUEE,
th.DATE_PREV_SOUTENANCE AS DAT_AUT_SOU_THS,
cot.NOM_ETABLISSEMENT_COTUTELLE as LIB_ETB_COT,
cot.PAYS_COTUTELLE AS LIB_PAY,
......
# Version 1.3.5
## Sources PHP
Sur le serveur, placez-vous dans le répertoire du web service (sans doute `/var/www/sygal-import-ws`)
puis lancez les commandes suivantes pour installer la nouvelle version :
```bash
git fetch && git fetch --tags && git checkout --force 1.3.5 && bash install.sh
```
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
### Apogée
Passez le script ci-après pour appliquer les changements suivants :
- inclure les co-encadrants (saisis dans Apogée sous la forme d'individus rattachés à une composante fictive 'COE') ;
- prendre en compte le témoin "corrections effectuées" de chaque thèse.
```sql
create view V_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
to_char(ind.cod_etu) as supann_id,
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","SUPANN_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
union
select
null as cod_ths,
'B' as cod_roj,
pic.cod_per,
null as cod_etb,
null as cod_cps,
null as tem_rap_recu,
null as cod_roj_compl
from per_intervenir_cmp pic
where pic.cod_cmp = 'COE' -- composante fictive associee aux co-encadrants
)
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
regexp_replace(per.num_dos_har_per,'[^0-9]','') as supann_id, -- Code Harpege 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
)
;
create or replace view V_SYGAL_THESE as
with inscription_administrative as (
select distinct
ths.cod_ind,
iae.cod_dip,
iae.cod_vrs_vdi
from these_hdr_sout ths
join ins_adm_etp iae on iae.cod_ind = ths.cod_ind and ( iae.cod_dip, iae.cod_vrs_vdi ) in ( ( ths.cod_dip, ths.cod_vrs_vdi ), ( ths.cod_dip_anc, ths.cod_vrs_vdi_anc ) )
join diplome dip on dip.cod_dip = iae.cod_dip
join typ_diplome tpd on tpd.cod_tpd_etb = dip.cod_tpd_etb
where ths.cod_ths_trv = '1' -- Exclusion des travaux
and iae.eta_iae = 'E' -- Inscription administrative non annulee
and iae.eta_pmt_iae = 'P' -- Inscription administrative payee
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
),
hierarchie_structures as (
select
cod_cmp_inf,
cod_cmp_sup
from cmp_cmp
where connect_by_isleaf = 1
connect by prior cod_cmp_sup = cod_cmp_inf
),
ancienne_these as (
select distinct
cod_ind,
cod_dip_anc,
cod_vrs_vdi_anc,
'A' eta_ths
from these_hdr_sout
where cod_ths_trv = '1'
and cod_dip_anc is not null
)
select
'apogee' as source_id, -- Id de la source
---------- Enregistrement de la these --------
ths.cod_ths as id, -- Identifiant de la these
case when ths.eta_ths = 'S' and nvl ( ths.dat_sou_ths, sysdate + 1 ) > sysdate
then 'E' else ths.eta_ths end eta_ths, -- Etat de la these (E=En cours, A=Abandonnee, S=Soutenue, U=Transferee)
ind.cod_etu as doctorant_id, -- Identifiant du doctorant
ths.cod_dis, -- Code discipline
dis.lib_int1_dis, -- Libellé discipline
ths.lib_ths, -- Titre de la these
ths.cod_lng, -- Code langue etrangere du titre
ths.dat_deb_ths, -- Date de 1ere inscription
ths.dat_abandon, -- Date d'abandon
ths.dat_transfert_dep, -- Date de transfert
edo.cod_nat_edo as ecole_doct_id, -- Identifiant de l'ecole doctorale
ths.cod_eqr as unite_rech_id, -- Identifiant de l'unité de recherche principale
----------- Cotutelle ----------
pay.lib_pay, -- Denomination pays de cotutelle
nvl ( etb.lib_web_etb, etb.lib_etb ) lib_etb_cot, -- Denomination etablissement de cotutelle
ths.tem_avenant, -- Avenant a la convention de cotutelle (O/N)
------- Organisation de la soutenance ------
ths.dat_prev_sou, -- Date previsionnelle de soutenance
ths.tem_sou_aut_ths, -- Soutenance autorisee (O/N/null)
ths.dat_aut_sou_ths, -- Date d autorisation de soutenance
ths.dat_sou_ths, -- Date de soutenance de la these
---------- Confidentialite --------
ths.dat_fin_cfd_ths, -- Date de fin de confidentialite de la these
---------- Jury et resultats --------
tre.cod_neg_tre, -- Resultat positif (1) ou non (0)
ths.eta_rpd_ths, -- Reproduction de la these ( O=Oui / C=Oui avec corrections / N=Non )
decode(ths.eta_rpd_ths,
'N', 'obligatoire',
'C', 'facultative',
null) as correction_possible, -- Témoin de corrections attendues
ths.tem_cor_ths as correction_effectuee -- Témoin de corrections effectuees
from inscription_administrative iae
join individu ind on ind.cod_ind = iae.cod_ind
join version_diplome vdi on vdi.cod_dip = iae.cod_dip and vdi.cod_vrs_vdi = iae.cod_vrs_vdi
join these_hdr_sout ths on ths.cod_ind = iae.cod_ind and ths.cod_dip = iae.cod_dip and ths.cod_vrs_vdi = iae.cod_vrs_vdi
left join ancienne_these anc on anc.cod_ind = ths.cod_ind and anc.cod_dip_anc = ths.cod_dip and anc.cod_vrs_vdi_anc = ths.cod_vrs_vdi and anc.eta_ths = ths.eta_ths
left join annee_uni ans on ans.cod_anu = ths.daa_fin_ths
left join ecole_doctorale edo on edo.cod_edo = ths.cod_edo
left join secteur_rch ser on ser.cod_ser = ths.cod_ser
left join equipe_rch eqr on eqr.cod_eqr = ths.cod_eqr
left join resultat_vdi rvi on rvi.cod_ind = iae.cod_ind and rvi.cod_dip = iae.cod_dip and rvi.cod_vrs_vdi = iae.cod_vrs_vdi and rvi.cod_ses = '0' and rvi.cod_adm = '1' and rvi.cod_tre is not null
left join annee_uni anr on anr.cod_anu = rvi.cod_anu
left join typ_resultat tre on tre.cod_tre = rvi.cod_tre
left join mention men on men.cod_men = rvi.cod_men
left join hierarchie_structures ccm on ccm.cod_cmp_inf = ths.cod_cmp
left join composante cmp on cmp.cod_cmp = nvl ( ccm.cod_cmp_sup, ths.cod_cmp )
left join diplome_sise dis on dis.cod_dis = ths.cod_dis
left join etablissement etb on etb.cod_etb = ths.cod_etb
left join pays pay on pay.cod_pay = ths.cod_pay
left join etablissement sou on sou.cod_etb = ths.cod_etb_sou
left join etablissement ori on ori.cod_etb = ths.cod_etb_origine
left join langue lng on lng.cod_lng = ths.cod_lng
where
ths.cod_ths_trv = '1' and -- Exclusion des travaux
anc.cod_dip_anc is null
;
alter table SYGAL_THESE add CORRECTION_EFFECTUEE VARCHAR2(11);
```
### Physalis
La vue `V_SYGAL_INDIVIDU` ne nécessite aucune retouche puisqu'elle inclue déjà les co-encadrants.
La vue `V_SYGAL_THESE` doit avoir une nouvelle colonne `CORRECTION_EFFECTUEE`.
Cette colonne doit valoir :
- 'N' lorsqu'aucune correction du manuscrit de thèse (second dépôt) n'est attendue ou lorsque les corrections attendues
ne sont pas faites ;
- 'O' lorsque les corrections attendues sont faites.
......@@ -25,6 +25,7 @@
<field name="resultat" type="string" column="COD_NEG_TRE" length="1" nullable="true"/>
<field name="etatReporduction" type="string" column="ETA_RPD_THS" length="1" nullable="true"/>
<field name="correctionAutorisee" type="string" column="CORRECTION_POSSIBLE" length="1" nullable="true"/>
<field name="correctionEffectuee" type="string" column="CORRECTION_EFFECTUEE" length="1" nullable="true"/>
<field name="dateAbandon" type="datetime" column="DAT_ABANDON" nullable="true"/>
<field name="dateTransfert" type="datetime" column="DAT_TRANSFERT_DEP" nullable="true"/>
......
......@@ -31,6 +31,7 @@ class These
private $resultat;
private $etatReporduction;
private $correctionAutorisee;
private $correctionEffectuee;
private $dateAbandon;
private $dateTransfert;
......@@ -212,6 +213,14 @@ class These
return $this->correctionAutorisee;
}
/**
* @return mixed
*/
public function getCorrectionEffectuee()
{
return $this->correctionEffectuee;
}
/**
* @return mixed
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment