# Batchs Coltrane PERSOCHAINE
## Fichiers de perso
### Balise Traitement
```xml
<Traitement>
<Type></Type>
<Courrier></Courrier>
<Mail></Mail>
<Questionnaire></Questionnaire>
</Traitement>
```
### Valeurs possibles:
Type
```java
INITIALISATION("Initialisation"),
EDITION("Edition"),
MISEAJOUR("Mise à jour"),;
```
Courrier
```java
COURRIER_ENTREE("Entrée","entreeCOL","OUVDEB")
COURRIER_OUVERTURE("Ouverture","ouvertureCOL","OUV") ->
COURRIER_ACCOMPAGNEMENT("Accompagnement","accompagnementCOL","ACC"),
COURRIER_RELANCE("Relance","relanceCOL","REL"),
COURRIER_MED("MED","medCOL","MED"),
COURRIER_MEDAR("MEDAR","medCOL","MEDAR"),
COURRIER_CNR("CNR","cnrCOL","CNR"),
COURRIER_CNRAR("CNRAR","cnrCOL","CNRAR"),
COURRIER_REMERCIEMENT("Remerciement","remerciementCOL","REM"),
PAS_DE_COURRIER("Sans")
```
Mail
```java
MAIL_OUVERTURE("Ouverture"),
MAIL_RELANCE("Relance"),
MAIL_DIVERS("Divers"),
PAS_DE_MAIL("Sans"),
UNITAIRE("Unitaire")
```
Questionnaire
```java
OUI("Oui"),
NON("Non")
```
### Combinaisons possibles
#### Si Traitement = 'Initialisation'
* <Courrier> peut valoir
* COURRIER_ENTREE("Entrée","entreeCOL","OUVDEB"),
* COURRIER_OUVERTURE("Ouverture","ouvertureCOL","OUV")
* PAS_DE_COURRIER("Sans")
* <Mail> peut valoir
* Ouverture
* Sans
* Questionnaire peut valoir
* Oui possible si Courrier différent de Sans (COURRIER_OUVERTURE ou COURRIER_ENTREE donc)
* Non
#### Si Traitement = 'Mise à jour'
* <Courrier> Sans</Courrier>
* <Mail>Sans</Mail>
* <Questionnaire>Non</Questionnaire>
#### Si Traitement = 'Edition'
Courrier et Mail doivent être de même nature 'Ouverture' ou Relance (ou un des 2 vides)
Pas de mail pour MED MEDAR CNR CNRAR et Remerciement
### Balise Contact
Possibilité d'ajouter
```xml
<Traitement>
<Type>Modification</Type>
</Traitement>
```
dans la balise Contact pour faire une modification des infos en base du contac
## PERSOCHAINE
### Ordonnacement des batchs
Si Traitement = 'Initialisation'
PESOVERIF
PERSOLDAP
PERSOINITPILOTAGE
PERSOINITSTROMAE
COURRIERCHAINE si <Courrier> différent de 'Sans'
COURRIELCHAINE si <Mail> différent de 'Sans'
Si Traitement = 'Mise à jour'
PESOVERIF
PERSOLDAP
PERSOINITPILOTAGE
Courrier et mail doivent valoir 'Sans'
Si Traitement = 'Edition'
COURRIERCHAINE si <Courrier> différent de 'Sans'
COURRIELCHAINE si <Mail> différent de 'Sans'
### Détail des batchs
#### PESOVERIF:
verif campagne et modele existe sur orbeon
verif campagne/vague existe sur pilotage
recherche des contacts précédents si pas de contact renseigné dans fichier de perso (balise Contacts inexistante ou vide)
#### PESOLDAP:
Pour chaque contact rensigné
Si idec de contact renseigné
recuperation du contact dans le LDAP
ajout de l'habilitation relative à la campagne
Sinon
creation contact dans le ldap
creation mot de passe dans le ldap
ajout de l'habilitation relative à la campagne + consultation_coltrane + stromae_coltrane
creation d'un fichier de mots de passe
#### PERSOINITPILOTAGE
(:Si c'est une mise à jour, il faut obligatoirement que l'interrogation existe déjà. :)
Traitement des UE
Type = Initialisation -> insert or update
Type = Mise à jour -> update ou error si l'ue n'existe pas
Traitement des contacts
Pour chacun des contacts
Contact/Type = Modification -> update contact
Ajout habilitation relative à la campagne * ue
MAJ de la balise du contact <DerniereModification auteur="batch-{$campagne}" date="">
Traitement des interrogations
Type = 'Initialisation'
si interro existe deja
si l contact principal existe pour cette interro, on le recupere,
sinon, on prend en contact principal le premier contact du fichier
update interro avec infos du fichier pour les gestionnaires
sinon
creation interro avec infos du fichier de perso
Type = 'Mise à jour' (verif existence interro plus haut)
si Contact/Type = Creation ou pas de contact dans le fichier de perso (le batch cree dans ce cas un contact)
update contact principal de l' interro avec le nouveau contact créé dans les étapes précédentes
sinon
RIEN au niveau du contact principal
Dans tous les cas, update interro avec infos du fichier pour les gestionnaires
```xml!
<Interrogation idUniteEnquetee="999999100" idVague="01" idContactPrincipal="BETTYBE">
<Gestionnaires>
<Gestionnaire>
<Nom>Aude Wierre</Nom>
<Telephone>0144382258</Telephone>
<FacSimile>0144382466</FacSimile>
</Gestionnaire>
<Gestionnaire>
<Nom>M-Lorraine Chausse</Nom>
<Telephone>0144382493</Telephone>
<FacSimile>0144382466</FacSimile>
</Gestionnaire>
</Gestionnaires>
</Interrogation>
```
#### PERSOINITSTROMAE
ws...