Base de Données: SAMS 
  
  
    | F1 | Dossiers | 
  
    | F11 | Appels | 
  
    | F12 | Interventions | 
  
    | F13 | Demandes de corrections | 
  
    | F14 | Techniciens par intervention | 
  
    | F15 | Historique des événements du dossier | 
  
    | F16 | Liens inter-dossiers | 
  
    | F2 | Devis | 
  
    | F21 | Demandes d'évolution | 
  
    | F22 | Versions applicatives par évolution (évolution répartie sur plusieurs versions) | 
  
    | F23 | Compléments d'analyse de demande d'évolution | 
  
    | F3 | Commandes | 
  
    | F30 | Utilisateurs | 
  
    | F31 | Profils d'utilisateur | 
  
    | F32 | Droits par profil d'utilisateur | 
  
    | F33 | Livraisons | 
  
    | F34 | Reports de livraison | 
  
    | F4 | Applications | 
  
    | F41 | Versions | 
  
    | F5 | Sites | 
  
    | F51 | Correspondants locaux (des sites) | 
  
    | F6 | Diffusions des versions | 
  
    | F61 | Envois/installations de versions (correctifs, sites pilotes ou diffusion) | 
  
    | F7 | Fiches d'expression de besoin | 
  
    | F70 | Techniciens | 
  
    | F71 | Profils de technicien | 
  
    | F72 | Qualifications de dossier | 
  
    | F73 | Modes de résolution | 
  
    | F74 | Types de juridiction | 
  
    | F75 | Qualités de correspondant | 
  
    | F76 | Types d'action préventive | 
  
    | F77 | Logiciels de base | 
  
    | F78 | Niveaux de support | 
  
    | F79 | Etats d'avancement | 
  
    | F80 | Paramètres SAMS | 
  
    | F81 | Domaines fonctionnels | 
  
    | F82 | Domaine métiers | 
  
    | F83 | Environnements | 
  
    | F84 | Environnements techniques | 
  
    | F85 | Référentiel des qualifications | 
  
    | MENUS | Eléments du menu HTML de l'application | 
  
    | TAILLELISTE | Taille des différentes listes par utilisateur | 
 
Table: F1
Index:
Champs:
	
	| F1ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F1NUM | varchar(9) | NULL | NULL |  | Automatique (égal au n° du 1er appel saisi pour le dossier) | 
|---|
	| F1DATE | datetime | NULL | NULL |  | Date et heure de l'appel initial - Automatique (égal à la date et heure du 1er appel saisi pour le dossier) | 
|---|
	| F1INCID | int(1) | NULL | NULL |  | 0 ou NULL (difficulté d'utilisation), 1 (incident) | 
|---|
	| F1BLOQ | int(1) | NULL | NULL |  | Bloquant (0 ou NULL = Non, 1 = Oui) | 
|---|
	| F1DTFIN | datetime | NULL | NULL |  | Date et heure de clôture du dossier | 
|---|
	| F1DESCR | text | NULL | NULL |  | Descriptif (PJ stockées dans le répertoire DESCR) | 
|---|
	| F1SOLUTION | text | NULL | NULL |  | Solution (PJ stockées dans le répertoire SOLUTION) | 
|---|
	| F1SITE | int(11) | NULL | NULL |  | Ville du site | 
|---|
	| F1VERSAPP | int(11) | NULL | NULL |  | Code de la version de l'application | 
|---|
	| F1NIVINC | int(11) | NULL | NULL |  | Code du mode de résolution | 
|---|
	| F1DOMFONCT | int(11) | NULL | NULL |  | Code du domaine fonctionnel | 
|---|
	| F1QUALIF | int(11) | NULL | NULL |  | Code de la qualification | 
|---|
Clé secondaire:
top
Table: F11
Index:
Champs:
	
	| F11ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F11NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de la date d'appel et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F11DATE | datetime | NULL | NULL |  | Date et heure  (par défaut date et heure système à la validation) | 
|---|
	| F11MOTIF | text | NULL | NULL |  | Motif de l'appel (PJ stockées dans le répertoire MOTIF) | 
|---|
	| F11TYPE | int(1) | NULL | NULL |  | Type d'appel (0 = appel complémentaire, 1 = appel initial) | 
|---|
	| F11REPONSE | text | NULL | NULL |  | Réponse du technicien qui a traité l'appel (PJ stockées dans le répertoire REPONSE) | 
|---|
	| F11DUREE | int(4) | NULL | NULL |  | Durée de l'appel en minutes | 
|---|
	| F11DURRES | int(4) | NULL | NULL |  | Durée de résolution en minutes | 
|---|
	| F11DTRECEP | datetime | NULL | NULL |  | Date de réception (saisissable par un utilisateur de profil Ministère) | 
|---|
	| F11FACT | int(1) | NULL | NULL |  | Appel facturable (0 ou NULL = facturable, 1= non facturable) | 
|---|
	| F11DTETAT | datetime | NULL | NULL |  | Date d'état d'avancement (depuis le) | 
|---|
	| F11DOS | int(11) | NULL | NULL |  | Code du dossier | 
|---|
	| F11CORRESP | int(11) | NULL | NULL |  | Auteur de l'appel | 
|---|
	| F11TECH | int(11) | NULL | NULL |  | Technicien qui traite l'appel | 
|---|
	| F11QUALIF | int(11) | NULL | NULL |  | Code qualification (inutilisé) | 
|---|
	
	| F11TRANSTECH | int(11) | NULL | NULL |  | Technicien à qui l'appel est transféré | 
|---|
	| F11ETAT | int(11) | NULL | NULL |  | Etat d'avancement de l'appel | 
|---|
Clé secondaire:
top
Table: F12
Index:
Champs:
	
	| F12ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F12NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de la date de début d'intervention et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F12DTDEB | datetime | NULL | NULL |  | Date et heure de début de l'intervention | 
|---|
	| F12DTFIN | datetime | NULL | NULL |  | Date et heure de fin de l'intervention | 
|---|
	| F12DESCR | text | NULL | NULL |  | Descriptif (PJ stockées dans le répertoire DESCR) | 
|---|
	| F12NATURE | int(1) | NULL | NULL |  | Nature de l'intervention (1 = A distance, 2 : Sur site) | 
|---|
	| F12TYPE | varchar(8) | NULL | NULL |  | Nature de l'intervention (1 = Incident, 2 = Action préventive) | 
|---|
	| F12DTRECEP | datetime | NULL | NULL |  | Date de réception | 
|---|
	| F12SITE | int(11) | NULL | NULL |  | Ville du site | 
|---|
	| F12VERSAPP | int(11) | NULL | NULL |  | Code de la version de l'application | 
|---|
	| F12DOS | int(11) | NULL | NULL |  | Numéro de dossier | 
|---|
	| F12TYPAP | int(11) | NULL | NULL |  | Code de l'action préventive si F12TYPE = 2 | 
|---|
Clé secondaire:
top
Table: F13
Index:
Champs:
	
	| F13ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F13NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de la date de demande de correction et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F13DATE | datetime | NULL | NULL |  | Date de la demande | 
|---|
	| F13ORIGINE | int(1) | NULL | NULL |  | Origine (0 = Administrateur, 1 = Ministère, 2 = Site) | 
|---|
	| F13DESDEM | text | NULL | NULL |  | Descriptif de la demande (PJ stockées dans le répertoire DESDEM) | 
|---|
	| F13REPONSE | text | NULL | NULL |  | Réponse (PJ stockées dans le répertoire REPONSE) | 
|---|
	| F13DESCOR | text | NULL | NULL |  | Description de la correction (Pièces jointes stockées dans le répertoire DESCOR) | 
|---|
	| F13DTCOR | datetime | NULL | NULL |  | Date de la correction | 
|---|
	| F13DTRECEP | datetime | NULL | NULL |  | Date de réception | 
|---|
	| F13DTANNUL | datetime | NULL | NULL |  | Date d'annulation | 
|---|
	| F13PRIO | varchar(1) | NULL | NULL |  | Indicateur de priorité de correction | 
|---|
	| F13DTETAT | datetime | NULL | NULL |  | Date associée à l'état d'avancement (depuis le) | 
|---|
	| F13NBRET | int(2) | NULL | NULL |  | Nombre de retours au réalisateur | 
|---|
	| F13SITE | int(11) | NULL | NULL |  | Ville du site à l'origine de la demande si F13ORIGINE = 2 | 
|---|
	| F13VERSAPP | int(11) | NULL | NULL |  | Code de la version de l'application concernée par la demande | 
|---|
	| F13CORRECTIF | int(11) | NULL | NULL |  |  | 
|---|
	| F13DOS | int(11) | NULL | NULL |  | Numéro du dossier | 
|---|
	| F13EVOL | int(11) | NULL | NULL |  | N° de l'évolution objet de la présente demande de correction | 
|---|
	| F13DOMFONCT | int(11) | NULL | NULL |  | Code du domaine fonctionnel | 
|---|
	| F13DOMMETIER | int(11) | NULL | NULL |  | Code du domaine métier | 
|---|
	| F13ENVIR | int(11) | NULL | NULL |  | Code de l'environnement techniques | 
|---|
	| F13ETAT | int(11) | NULL | NULL |  | Code de l'état d'avancement | 
|---|
	| F13CORINI | int(11) | NULL | NULL |  | N° de la demande de correction initiale objet de la présente demande de correction | 
|---|
Clé secondaire:
top
Table: F14
Index:
Champs:
	
	| F14DUREE | decimal(5,1) | NULL | NULL |  | Durée de l'intervention du technicien | 
|---|
	| F14INTERV | int(11) | NULL | NULL |  | Numéro de l'intervention | 
|---|
	| F14TECH | int(11) | NULL | NULL |  | Code du technicien | 
|---|
Clé secondaire:
top
Table: F15
Index:
Champs:
	
	| F15ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F15ORDRE | tinyint(4) | NULL | '1' |  | N° d'ordre de la ligne d'historique pour l'appel | 
|---|
	| F15DATE | datetime | NULL | NULL |  | Date et heure | 
|---|
	| F15UTILISATEUR | int(11) | NULL | NULL |  | Code de l'utilisateur connecté (créateur de l'appel ou émetteur du message) | 
|---|
	| F15DESTCORR | int(11) | NULL | NULL |  | Code du correspondant destinataire du message (bouton Informer) | 
|---|
	| F15DESTTECH | int(11) | NULL | NULL |  | Code du technicien destinataire du message (bouton Transférer) | 
|---|
	| F15APPEL | int(11) | NULL | NULL |  | N° de l'appel | 
|---|
Clé secondaire:
top
Table: F16
Index:
Champs:
	
	| F16DATE | datetime | NULL | NULL |  | Date du lien | 
|---|
	| F16COMMENT | text | NULL | NULL |  | Commentaires du lien | 
|---|
	| F16DOS | int(11) | NULL | NULL |  | N° du dossier | 
|---|
	| F16DOSLIE | int(11) | NULL | NULL |  | N° du dossier lié | 
|---|
Clé secondaire:
top
Table: F2
Index:
Champs:
	
	| F2ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F2NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de la date de demande de devis et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F2DATE | datetime | NULL | NULL |  | Date de demande | 
|---|
	| F2REFDEM | varchar(60) | NULL | NULL |  | Référence du demandeur du devis | 
|---|
	| F2REFTITU | varchar(60) | NULL | NULL |  | Référence de l'émetteur du devis | 
|---|
	| F2DTREMIS | datetime | NULL | NULL |  | Date de remise | 
|---|
	| F2COMMENT | text | NULL | NULL |  | Commentaires (PJ stockées dans le répertoire COMMENT) | 
|---|
top
Table: F21
Index:
Champs:
	
	| F21ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F21NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de la date de demande et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F21DATE | datetime | NULL | NULL |  | Date de la demande | 
|---|
	| F21REF | varchar(60) | NULL | NULL |  | Référence de la demande (libellé succint) | 
|---|
	| F21DESCR | text | NULL | NULL |  | Descriptif de la demande (PJ stockées dans le répertoire DESCR) | 
|---|
	| F21REPMIN | text | NULL | NULL |  | Réponse du ministère (PJ stockées dans le répertoire REPMIN) | 
|---|
	| F21REPTITU | text | NULL | NULL |  | Réponse de l'administrateur (Pièces jointes stockées dans le répertoire REPTITU) | 
|---|
	| F21ORIG | int(1) | NULL | NULL |  | Origine (0 = Administrateur, 1 = Ministère, 2 = Site) | 
|---|
	| F21PRIO | varchar(1) | NULL | NULL |  | Indicateur de priorité de la demande d'évolution | 
|---|
	| F21DTETAT | datetime | NULL | NULL |  | Date associée à l'état d'avancement (depuis le) | 
|---|
	| F21MIN | int(1) | NULL | NULL |  | Evolution mineure (0 ou NULL = Non, 1 = Oui) | 
|---|
	| F21SITE | int(11) | NULL | NULL |  | Ville du site à l'origine de la demande (si F21ORIG = 2) | 
|---|
	| F21DEVIS | int(11) | NULL | NULL |  | Numéro de devis évaluant la demande | 
|---|
	| F21CMD | int(11) | NULL | NULL |  | Numéro de commande | 
|---|
	| F21APPLI | int(11) | NULL | NULL |  | Code de l'application concernée | 
|---|
	| F21DOMFONCT | int(11) | NULL | NULL |  | Code du domaine fonctionnel | 
|---|
	| F21DOMMETIER | int(11) | NULL | NULL |  | Code du domaine métier | 
|---|
	| F21ETAT | int(11) | NULL | NULL |  | Code de l'état d'avancement | 
|---|
Clé secondaire:
top
Table: F22
Index:
Champs:
	
	| F22DTDEB | datetime | NULL | NULL |  | Date de début de réalisation | 
|---|
	| F22DTFIN | datetime | NULL | NULL |  | Date de fin de réalisation | 
|---|
	| F22COMMENT | text | NULL | NULL |  | Commentaire (PJ stockées dans le répertoire COMMENT) | 
|---|
	| F22VERSAPP | int(11) | NULL | NULL |  | Code de la version de l'application | 
|---|
	| F22EVOL | int(11) | NULL | NULL |  | Numéro d'évolution | 
|---|
Clé secondaire:
top
Table: F23
Index:
Champs:
	
	| F23ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F23ORDRE | varchar(2) | NULL | NULL |  | N° ordre du complément (automatique) | 
|---|
	| F23DTQUES | datetime | NULL | NULL |  | Date de la question | 
|---|
	| F23QUES | text | NULL | NULL |  | Question (PJ stockées dans le répertoire QUES) | 
|---|
	| F23DTREP | datetime | NULL | NULL |  | Date de la réponse | 
|---|
	| F23REP | text | NULL | NULL |  | Réponse  (PJ stockées dans le répertoire REPONSE) | 
|---|
	| F23EVO | int(11) | NULL | NULL |  | N° d'évolution | 
|---|
Clé secondaire:
top
Table: F3
Index:
Champs:
	
	| F3ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F3NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de la date de commande et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F3DATE | datetime | NULL | NULL |  | Date de la commande | 
|---|
	| F3NUMMIN | varchar(60) | NULL | NULL |  | Numéro de la commande pour le ministère | 
|---|
	| F3OBJET | varchar(60) | NULL | NULL |  | Objet | 
|---|
	| F3DTLIV | datetime | NULL | NULL |  | Date limite de livraison | 
|---|
	| F3DTDOCUT | datetime | NULL | NULL |  | Date limite de livraison de la documentation utilisateur | 
|---|
	| F3DTDOCMA | datetime | NULL | NULL |  | Date limite de livraison de la documentation de maintenance | 
|---|
	| F3DTRECEP | datetime | NULL | NULL |  | Date de réception définitive de la commande | 
|---|
	| F3COMMENT | text | NULL | NULL |  | Commentaire (PJ stockées dans le répertoire COMMENT) | 
|---|
	| F3CHARGE | decimal(6,2) | NULL | NULL |  | Charges en j*h | 
|---|
	| F3MONTANT | decimal(11,2) | NULL | NULL |  | Montant TTC | 
|---|
	| F3DEVIS | int(11) | NULL | NULL |  | Numéro du devis | 
|---|
	| F3CATEG | int(11) | NULL | NULL |  | Code de la catégorie | 
|---|
Clé secondaire:
top
Table: F30
Index:
Champs:
	
	| F30ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F30NOM | varchar(60) | NULL | NULL |  | Nom | 
|---|
	| F30PRENOM | varchar(60) | NULL | NULL |  | Prénom | 
|---|
	| F30MOTPASS | varchar(32) | NULL | NULL |  | Mot de passe | 
|---|
	| F30PROFIL | int(11) | NULL | NULL |  | Code du profil de l'utilisateur | 
|---|
	| F30TECH | int(11) | NULL | NULL |  | Code technicien (si l'utilisateur est aussi technicien) | 
|---|
	| F30SITE | int(11) | NULL | NULL |  | Ville du site de l'utilisateur | 
|---|
Clé secondaire:
top
Table: F31
Index:
Champs:
	
	| F31ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F31CODE | varchar(8) | NULL | NULL |  | Code du profil | 
|---|
	| F31TYPE | int(1) | NULL | NULL |  | Type de profil (Administrateur =1, Ministère = 2, site = 3) | 
|---|
top
Table: F32
Index:
Champs:
	
	| F32ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F32DONNEE | varchar(60) | NULL | NULL |  | Adresse de la fonction, sous la forme /nomPackage/nomFonction/ | 
|---|
	| F32CONSULT | int(1) | NULL | NULL |  | Consultation (1 = Oui (toujours)) | 
|---|
	| F32MODIF | int(1) | NULL | NULL |  | Modification (0 = Non, 1 = Oui) | 
|---|
	| F32AJOUT | int(1) | NULL | NULL |  | Ajout  (0 = Non, 1 = Oui) | 
|---|
	| F32SUPPR | int(1) | NULL | NULL |  | Suppression  (0 = Non, 1 = Oui) | 
|---|
	| F32LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
	| F32PROFIL | int(11) | NULL | NULL |  | Code du profil | 
|---|
Clé secondaire:
top
Table: F33
Index:
Champs:
	
	| F33ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F33NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de la date prévue de livraison et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F33ORIGINE | int(1) | NULL | NULL |  | Origine ( 0 = Administrateur, 1 = Ministère) | 
|---|
	| F33REF | varchar(60) | NULL | NULL |  | Référence de livraison | 
|---|
	| F33DESCR | text | NULL | NULL |  | Descriptif ( PJ stockées dans le répertoire DESCR) | 
|---|
	| F33DTPREV | datetime | NULL | NULL |  | Date de livraison prévue | 
|---|
	| F33DTREEL | datetime | NULL | NULL |  | Date de livraison réelle | 
|---|
	| F33RESERVE | text | NULL | NULL |  | Réserves (PJ stockées dans le répertoire RES) | 
|---|
	| F33TRAITEE | int(1) | NULL | NULL |  | Traitée (0 ou NULL = Non, 1 = Oui) | 
|---|
	| F33VERSAPP | int(11) | NULL | NULL |  | Code de la version de l'application | 
|---|
	| F33CMD | int(11) | NULL | NULL |  | N° de commande | 
|---|
Clé secondaire:
top
Table: F34
Index:
Champs:
	
	| F34ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F34ORDRE | varchar(2) | NULL | NULL |  | N° d'ordre du report pour une livraison | 
|---|
	| F34DATE | datetime | NULL | NULL |  | Date à laquelle la livraison est reportée | 
|---|
	| F34MOTIF | text | NULL | NULL |  | Motif (PJ dans le répertoire MOT) | 
|---|
	| F34LIV | int(11) | NULL | NULL |  | N° de livraison | 
|---|
Clé secondaire:
top
Table: F4
Index:
Champs:
	
	| F4ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F4CODE | varchar(8) | NULL | NULL |  | Code de l'application | 
|---|
	| F4LIBEL | varchar(60) | NULL | NULL |  | Libellé de l'application | 
|---|
	| F4APPSEC | int(11) | NULL | NULL |  | Code de l'application secondaire (modifiable hors SAMS via SQL | 
|---|
Clé secondaire:
top
Table: F41
Index:
Champs:
	
	| F41ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F41CODE | varchar(20) | NULL | NULL |  | Code de la version | 
|---|
	| F41DTVER | datetime | NULL | NULL |  | Date de validation de la version | 
|---|
	| F41DTNOTE | datetime | NULL | NULL |  | Date de validation de la note descriptive | 
|---|
	| F41DTPILOT | datetime | NULL | NULL |  | Date de demande d'installation des sites pilotes | 
|---|
	| F41INACTIF | int(1) | NULL | NULL |  | Inactivité (0 ou NULL = non, 1 = Oui) | 
|---|
	| F41APPLI | int(11) | NULL | NULL |  | Code de l'application | 
|---|
Clé secondaire:
top
Table: F5
Index:
Champs:
	
	| F5ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F5REPRISE | int(1) | NULL | NULL |  | Reprise de données (0 ou NULL = Non, 1 = Oui) | 
|---|
	| F5ANCSYST | varchar(60) | NULL | NULL |  | Nom de l'ancien système (si F5REPRISE = 1) | 
|---|
	| F5DTMOM | datetime | NULL | NULL |  | Date de mise en ordre de marche | 
|---|
	| F5DTADMIS | datetime | NULL | NULL |  | Date d'admission par le responsable du site | 
|---|
	| F5NBFORME | int(4) | NULL | NULL |  | Nombre d'exploitants formés | 
|---|
	| F5NBFORMU | int(4) | NULL | NULL |  | Nombre d'utilisateurs formés | 
|---|
	| F5FORMA | varchar(60) | NULL | NULL |  | Dates de formation (saisie libre) | 
|---|
	| F5ADD3 | varchar(60) | NULL | NULL |  | Adresse | 
|---|
	| F5VILLE | varchar(60) | NULL | NULL |  | Ville du site | 
|---|
	| F5ORDRE | tinyint(4) | NULL | '1' |  | N°ordre du site | 
|---|
	| F5DTMAJ | datetime | NULL | NULL |  | Date de la dernière mise à jour des informations du site, automatique (remplie avec la date du jour à chaque validation) | 
|---|
	| F5ADD1 | varchar(60) | NULL | NULL |  | Adresse | 
|---|
	| F5ADD2 | varchar(60) | NULL | NULL |  | Adresse | 
|---|
	| F5CP | varchar(5) | NULL | NULL |  | Code postal | 
|---|
	| F5TEL | varchar(20) | NULL | NULL |  | N° de téléphone | 
|---|
	| F5FAX | varchar(20) | NULL | NULL |  | N° de fax | 
|---|
	| F5MAIL | varchar(60) | NULL | NULL |  | Adresse e-mail | 
|---|
	| F5PCHANC | int(1) | NULL | NULL |  | Priorité Chancellerie pour l'informatisation initiale (0 = Non, 1 = Oui) | 
|---|
	| F5PCA | int(1) | NULL | NULL |  | Priorité du site de rattachement pour l'informatisation intiale (0 = Non, 1 = Oui) | 
|---|
	| F5DTDEPCA | datetime | NULL | NULL |  | Date dépêche au site de rattachement | 
|---|
	| F5AUTOCAB | varchar(60) | NULL | NULL |  | Autorité pour le câblage | 
|---|
	| F5AUTOMAT | varchar(60) | NULL | NULL |  | Autorité pour le matériel | 
|---|
	| F5OSSERV | varchar(60) | NULL | NULL |  | OS serveur (inutilisé car remplacé depuis la version 2 par F5LOGOSSERV) | 
|---|
	| F5SGBD | varchar(60) | NULL | NULL |  | Système de gestion des données (inutilisé car remplacé depuis la version 2 par F5LOGSGBD) | 
|---|
	| F5NBPOSTE | int(4) | NULL | NULL |  | Nombre de postes de travail | 
|---|
	| F5VERWIN | varchar(20) | NULL | NULL |  | Version de Windows (inutilisé car remplacé depuis la version 2 par F5LOGWIN) | 
|---|
	| F5VERWP | varchar(20) | NULL | NULL |  | Version de WordPerfect (inutilisé car remplacé depuis la version 2 par F5LOGTXT) | 
|---|
	| F5NBPORRE | int(4) | NULL | NULL |  | Nombre de portables réseau | 
|---|
	| F5NBPORNC | int(4) | NULL | NULL |  | Nombre de portables non connectés | 
|---|
	| F5NBIMPRE | int(4) | NULL | NULL |  | Nombre d'imprimantes réseau | 
|---|
	| F5NBIMPLO | int(4) | NULL | NULL |  | Nombre d'imprimantes locales | 
|---|
	| F5AUTRMAT | varchar(60) | NULL | NULL |  | Autres matériels | 
|---|
	| F5TELEM | int(1) | NULL | NULL |  | Télémaintenance (0 = Non, 1 = Oui) | 
|---|
	| F5MODEM | varchar(20) | NULL | NULL |  | N° d'appel modem pour télémaintenance (si F5TELEM = 1 | 
|---|
	| F5DTINMAT | datetime | NULL | NULL |  | Date d'installation initiale du matériel | 
|---|
	| F5DTDEBIM | datetime | NULL | NULL |  | Date prévue du début d'implantation | 
|---|
	| F5DTFINIM | datetime | NULL | NULL |  | Date prévue de fin d'implantation | 
|---|
	| F5COMMENT | text | NULL | NULL |  | Commentaire (PJ stockées dans le répertoire COMMENT) | 
|---|
	| F5UNITINST | varchar(20) | NULL | NULL |  | Unité d'installation de l'application (ex : C:) | 
|---|
	| F5CODEESSR | varchar(8) | NULL | NULL |  | Code national ESSR du site | 
|---|
	| F5SAR | varchar(60) | NULL | NULL |  | SAR de rattachement | 
|---|
	| F5CPR | varchar(60) | NULL | NULL |  | CPR de rattachement | 
|---|
	| F5NOMSERV | varchar(60) | NULL | NULL |  | Nom du serveur principal | 
|---|
	| F5CA | int(11) | NULL | NULL |  |  | 
|---|
	| F5TYPJUR | int(11) | NULL | NULL |  | Code du type de site | 
|---|
	| F5LOGOSSERV | int(11) | NULL | NULL |  | Code du logiciel de base 'OS Serveur' | 
|---|
	| F5LOGSGBD | int(11) | NULL | NULL |  | Code du logiciel de base 'SGBD' | 
|---|
	| F5LOGWIN | int(11) | NULL | NULL |  | Code de la version du logiciel de base 'Windows' | 
|---|
	| F5LOGTXT | int(11) | NULL | NULL |  | Code de la version du logiciel de base 'WordPerfect' | 
|---|
Clé secondaire:
top
Table: F51
Index:
Champs:
	
	| F51ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F51NOM | varchar(60) | NULL | NULL |  | Nom | 
|---|
	| F51PRENOM | varchar(60) | NULL | NULL |  | Prénom | 
|---|
	| F51TEL | varchar(20) | NULL | NULL |  | N° de téléphone | 
|---|
	| F51TELMOB | varchar(20) | NULL | NULL |  | N° de téléphone portable | 
|---|
	| F51FAX | varchar(20) | NULL | NULL |  | N° de fax | 
|---|
	| F51MAIL | varchar(60) | NULL | NULL |  | Adresse e-mail | 
|---|
	| F51RESPON | int(1) | NULL | NULL |  | Responsable (0 = Non, 1 = Oui) | 
|---|
	| F51CIVIL | int(1) | NULL | NULL |  | Civilité (1 = Monsieur, 2 = Madame, 3 = Mademoiselle) | 
|---|
	| F51POSTE | varchar(5) | NULL | NULL |  | N° de poste (téléphonique) | 
|---|
	| F51NOMPDT | varchar(60) | NULL | NULL |  | Nom du poste de travail | 
|---|
	| F51IPPDT | varchar(39) | NULL | NULL |  | Adresse IP du poste de travail | 
|---|
	| F51SITE | int(11) | NULL | NULL |  | Ville du site du correspondant | 
|---|
	| F51QUALITE | int(11) | NULL | NULL |  | Code de la qualité du correspondant (cf. table de référence) | 
|---|
Clé secondaire:
top
Table: F6
Index:
Champs:
	
	| F6ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F6NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de référence de la diffusion générale et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F6DTRECEP | datetime | NULL | NULL |  | Date de réception | 
|---|
	| F6TYPE | int(1) | NULL | NULL |  | Type de diffusion (1 : simple par envoi postal, 2 : simple par envoi d'e-mail, 3 : complexe par télémaintenance,  4 : complexe sur site | 
|---|
	| F6DESCR | text | NULL | NULL |  | Descriptif (PJ stockées dans le répertoire DESDIF) | 
|---|
	| F6VERSAPP | int(11) | NULL | NULL |  | Version de l'application | 
|---|
top
Table: F61
Index:
Champs:
	
	| F61DTENV | datetime | NULL | NULL |  | Date de l'envoi (si F6TYPE = 1 ou F6TYPE = 2) | 
|---|
	| F61DTDEB | datetime | NULL | NULL |  | Date de début de l'installation (si F6TYPE = 3 ou F6TYPE = 4) | 
|---|
	| F61DTFIN | datetime | NULL | NULL |  | Date de fin de l'installation (si F6TYPE = 3 ou F6TYPE = 4) | 
|---|
	| F61DUREE | decimal(5,1) | NULL | NULL |  | Durée de l'installation effectuée par le technicien (si F6TYPE = 3 ou F6TYPE = 4) | 
|---|
	| F61DTMOM | datetime | NULL | NULL |  | Date de mise en ordre de marche | 
|---|
	| F61DTVAL | datetime | NULL | NULL |  | Date de validation de l'envoi/installation | 
|---|
	| F61PILOTE | int(1) | NULL | NULL |  | Site pilote (0 = Non, 1 = Oui) | 
|---|
	| F61COMMENT | text | NULL | NULL |  | Commentaire (PJ stockées dans le répertoire COMMENT) | 
|---|
	| F61SITE | int(11) | NULL | NULL |  | Ville du site | 
|---|
	| F61VERSAPP | int(11) | NULL | NULL |  | Version de l'application | 
|---|
	| F61DIFFUS | int(11) | NULL | NULL |  | N° de diffusion (envoi/installation) | 
|---|
	| F61TECH | int(11) | NULL | NULL |  | Code du technicien (si F6TYPE = 3 ou F6TYPE = 4) | 
|---|
Clé secondaire:
top
Table: F7
Index:
Champs:
	
	| F7ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F7NUM | varchar(9) | NULL | NULL |  | Automatique (format AAAANNNNN où AAAA = année de la date de demande de la fiche d'expression de besoin et NNNNN = n° d'ordre dans l'année) | 
|---|
	| F7DATE | datetime | NULL | NULL |  | Date de la demande | 
|---|
	| F7REF | varchar(60) | NULL | NULL |  | Référence | 
|---|
	| F7DTETAT | datetime | NULL | NULL |  | Date associée à l'état d'avancement (depuis le) | 
|---|
	| F7DESCR | text | NULL | NULL |  | Descriptif de la demande ( PJ stockées dans le répertoire DESCR) | 
|---|
	| F7REPONSE | text | NULL | NULL |  | Réponse de la MOA (PJ stockées dans le répertoire REPONSE) | 
|---|
	| F7PRIO | varchar(1) | NULL | NULL |  | Indicateur de priorité | 
|---|
	| F7SITE | int(11) | NULL | NULL |  | Site à l'origine de la demande | 
|---|
	| F7APPLI | int(11) | NULL | NULL |  | Code de l'application | 
|---|
	| F7DOMFONCT | int(11) | NULL | NULL |  | Code du domaine fonctionnel | 
|---|
	| F7DOMMETIER | int(11) | NULL | NULL |  | Code du domaine métier | 
|---|
	| F7ETAT | int(11) | NULL | NULL |  | Code de l'état d'avancement | 
|---|
	| F7EVOL | int(11) | NULL | NULL |  | N° de la demande d'évolution (si la FEB donne lieu à une demande d'évolution) | 
|---|
Clé secondaire:
top
Table: F70
Index:
Champs:
	
	| F70ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F70CODE | varchar(8) | NULL | NULL |  | Code du technicien | 
|---|
	| F70NOM | varchar(60) | NULL | NULL |  | Nom | 
|---|
	| F70PRENOM | varchar(60) | NULL | NULL |  | Prénom | 
|---|
	| F70TEL | varchar(20) | NULL | NULL |  | N° de téléphone | 
|---|
	| F70FAX | varchar(20) | NULL | NULL |  | N° de fax | 
|---|
	| F70MAIL | varchar(60) | NULL | NULL |  | Adresse e-mail | 
|---|
	| F70INACTIF | int(1) | NULL | NULL |  | Inactivité (0 ou NULL = actif, 1 = Inactif) | 
|---|
	| F70NIVSUP | int(11) | NULL | NULL |  | Code du niveau de support dont relève le technicien | 
|---|
	| F70PROFIL | int(11) | NULL | NULL |  | Code du profil du technicien (fonction, expertise) | 
|---|
Clé secondaire:
top
Table: F71
Index:
Champs:
	
	| F71ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F71CODE | varchar(8) | NULL | NULL |  | Code | 
|---|
	| F71LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
top
Table: F72
Index:
Champs:
	
	| F72ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F72CODE | varchar(8) | NULL | NULL |  | Code | 
|---|
	| F72LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
	| F72DIFUTIL | int(1) | NULL | NULL |  | Difficulté d'utilisation (0 ou NULL = Non, 1 = Oui) | 
|---|
	| F72INCID | int(1) | NULL | NULL |  | Incident  (0 ou NULL = Non, 1 = Oui) | 
|---|
	| F72QUALR | varchar(5) | NULL | NULL |  | Code de la qualification correspondante du référentiel | 
|---|
top
Table: F73
Index:
Champs:
	
	| F73ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F73CODE | varchar(8) | NULL | NULL |  | Code | 
|---|
	| F73LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
top
Table: F74
Index:
Champs:
	
	| F74ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F74CODE | varchar(8) | NULL | NULL |  | Code | 
|---|
	| F74LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
	| F74FIGE | int(1) | NULL | NULL |  | Figé (NULL = Non, 1 = Oui) (modifiable hors SAMS via SQL) | 
|---|
	| F74TPSITRATT | int(11) | NULL | NULL |  | Code du type de site de rattachement | 
|---|
	| F74APPLIPPALE | int(11) | NULL | NULL |  | Code de l'application principale | 
|---|
Clé secondaire:
top
Table: F75
Index:
Champs:
	
	| F75ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F75CODE | varchar(8) | NULL | NULL |  | Code | 
|---|
	| F75LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
top
Table: F76
Index:
Champs:
	
	| F76ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F76CODE | varchar(8) | NULL | NULL |  | Code | 
|---|
	| F76LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
top
Table: F77
Index:
Champs:
	
	| F77ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F77CODE | varchar(10) | NULL | NULL |  | Code | 
|---|
	| F77LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
top
Table: F78
Index:
Champs:
	
	| F78ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F78CODE | varchar(10) | NULL | NULL |  | Code | 
|---|
	| F78LIBEL | varchar(30) | NULL | NULL |  | Libellé | 
|---|
top
Table: F79
Index:
Champs:
	
	| F79ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F79CODE | varchar(10) | NULL | NULL |  | Code | 
|---|
	| F79LIBEL | varchar(30) | NULL | NULL |  | Libellé | 
|---|
top
Table: F80
Index:
Champs:
	
	| F80ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F80NUM | varchar(9) | NULL | NULL |  | Numéro (cadré à droite avec des espaces) (1 : Terme "Ministère", 2 : Facturation, 3 : Saisie obligatoire "Techniciens",  4 : Saisie obligatoire "Profils de technicien", 5 : Saisie obligatoire "Qualifications", 6 : Saisie obligatoire "Modes de résolution",  7 : Saisie obligatoire "Types de site", 8 : Saisie obligatoire "Qualités de correspondant", 9 : Saisie obligatoire "Types d'action préventive", 10 : Saisie obligatoire "Logiciels de base", 11 : Saisie obligatoire "Niveaux de support", 12 : Saisie obligatoire "Etats d'avancement", 13 : Saisie obligatoire "Domaines fonctionnels", 14 : Saisie obligatoire "Domaines métiers", 15 : Saisie obligatoire "Catégories de commande", 16 : Saisie obligatoire "Environnements", 17 : Saisie obligatoire "Applications (types de site)", 18 : Site administrateur, 19 : Consultation par les utilisateurs finals) | 
|---|
	| F80NOM | varchar(60) | NULL | NULL |  | Intitulé (libellé du paramètre) | 
|---|
	| F80VALEUR | varchar(70) | NULL | NULL |  | Si F80NUM = ' 1' : Libellé remplacement terme "Ministère". Si F80NUM = ' 2' à '17' et '19' : 0 = Non, 1 = Oui. Si F80NUM = '18' : type, ville et n° ordre du site administrateur | 
|---|
top
Table: F81
Index:
Champs:
	
	| F81ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F81CODE | varchar(10) | NULL | NULL |  | Code | 
|---|
	| F81LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
	| F81DECOUPAGE | int(1) | NULL | NULL |  | Découpage (1 = Support, 2 = Maintenance, 3 = Support et maintenance) | 
|---|
top
Table: F82
Index:
Champs:
	
	| F82ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F82CODE | varchar(10) | NULL | NULL |  | Code | 
|---|
	| F82LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
top
Table: F83
Index:
Champs:
	
	| F83ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F83CODE | varchar(10) | NULL | NULL |  | Code | 
|---|
	| F83LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
top
Table: F84
Index:
Champs:
	
	| F84ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F84CODE | varchar(10) | NULL | NULL |  | Code | 
|---|
	| F84LIBEL | varchar(60) | NULL | NULL |  | Libellé | 
|---|
top
Table: F85
Index:
Champs:
	
	| F85ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| F85CODE | varchar(5) | NULL | NULL |  | Code | 
|---|
	| F85LIBEL | varchar(80) | NULL | NULL |  | Libellé | 
|---|
top
Table: MENUS 
Index:
Champs:
	
	| ID_MENU | int(10) unsigned | NULL | NULL |  |  | 
|---|
	| ROOTNODE | int(10) unsigned |  | '0' |  | Racine (niveau 0 du menu) | 
|---|
	| IDX | int(10) unsigned |  | '0' |  | Sous-menu (niveau 1 du menu) | 
|---|
	| LIBELLE | varchar(80) |  | '' |  | Libellé | 
|---|
	| LIEN | varchar(250) |  | '' |  | Lien | 
|---|
top
Table: TAILLELISTE
Index:
Champs:
	
	| ID | int(11) | NULL | NULL | auto_increment |  | 
|---|
	| IDUTILISATEUR | int(11) | NULL | NULL |  | Code de l'utilisateur | 
|---|
	| ALIAS | varchar(60) | NULL | NULL |  | Adresse de la liste dans l'application | 
|---|
	| PREMIERE | int(6) | NULL | NULL |  | Première valeur | 
|---|
	| DEUXIEME | int(6) | NULL | NULL |  | Seconde valeur | 
|---|
	| TROISIEME | int(6) | NULL | NULL |  | Troisième valeur | 
|---|
	| SELECTION | int(6) | NULL | NULL |  | Sélection par défaut (parmi les trois valeurs ci-dessus) | 
|---|
top
Procédures stockées
-- ----------------------------------------------------------------------
-- SQL stored routines script generated by the PBO, SodiFrance.
-- ----------------------------------------------------------------------
-- Modified by PBO for v1 reliability
-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- OK_Accessite
-- version 1.0 par PBO.
-- -------------------------------------------------------------------
DELIMITER $$
-- Destruction de la version précédente
DROP FUNCTION IF EXISTS `ok_accessite` $$
-- Définition de la fonction
CREATE FUNCTION `ok_accessite` (siteUtil INTEGER(11), site INTEGER(11)) RETURNS INT
BEGIN
  DECLARE ret INT DEFAULT 0 ;
  DECLARE rec INT(11) DEFAULT NULL ;
  DECLARE rat INT(11) DEFAULT NULL ;
  -- Si l'utilisateur est sur le site recherché, alors c'est bon
  IF siteUtil = site THEN
    SET ret = 1 ;
  -- Sinon, nous recherchons dans la hiérarchie des sites celui de l'utlisateur
  ELSE
    BEGIN
      SET rec = site ;
      WHILE ret = 0 AND rat IS NOT NULL DO
        -- Recherche du site associé
        SELECT F5CA INTO rat FROM F5 WHERE F5ID = rec ;
        IF rat = siteUtil THEN
          SET ret = 1 ;
        END IF ;
        SET rec = rat ;
      END WHILE ;
    END ;
  END IF ;
  RETURN ret ;
END $$
DELIMITER ;
-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- Maj_descr_solution_f1
-- version 1.0 par PBO.
-- -------------------------------------------------------------------
DELIMITER $$
-- Suppression de l'ancienne version
DROP PROCEDURE IF EXISTS `maj_descr_solution_f1` $$
-- Définition de la procédure
CREATE PROCEDURE `maj_descr_solution_f1` (dossier INT(11))
BEGIN
  DECLARE libelle1 TEXT ;
  DECLARE libelle2 TEXT ;
  DECLARE libelle3 TEXT ;
  DECLARE rTxt TEXT ;
  DECLARE rNom VARCHAR(130) ;
  DECLARE rTyp INT ;
  DECLARE rDat VARCHAR(10) ;
  DECLARE done INT(1) DEFAULT 0 ;
  DECLARE motif_appels CURSOR FOR SELECT F11TYPE,
                                         CONCAT_WS(' ',ELT(F51CIVIL,'M.','Mme','Mlle'),F51NOM,F51PRENOM) AS NOM,
                                         DATE_FORMAT(F11DATE,'%d/%m/%Y') AS DTAPL,
                                         F11MOTIF
                                    FROM F11 RIGHT JOIN F51 ON (F51ID = F11CORRESP AND F11DOS = dossier)
                                   ORDER BY F11DATE ;
  DECLARE reponse_appels CURSOR FOR SELECT F11TYPE,
                                           CONCAT_WS(' ',F70NOM, F70PRENOM) AS NOM,
                                           DATE_FORMAT(F11DATE,'%d/%m/%Y') as DTAPL,
                                           F11REPONSE
                                      FROM F11 RIGHT JOIN F70 ON (F70ID = F11TECH AND F11DOS = dossier)
                                     ORDER BY F11DATE ;
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1 ;
  -- Nettoyage des informations du dossier
  UPDATE F1 SET F1DESCR = '', F1SOLUTION = '' WHERE F1ID = dossier ;
  -- Mise à jour de la description du dossier
  OPEN motif_appels ;
  FETCH motif_appels INTO rTyp, rNom, rDat, rTxt ;
  WHILE done = 0 DO
    IF TRIM(rNom) IS NULL OR TRIM(rNom) = '' THEN
      SET libelle2 = CONCAT('?, le ',rDat,' : ') ;
    ELSE
      SET libelle2 = CONCAT(rNom,', le ',rDat,' : ') ;
    END IF ;
    IF TRIM(rTxt) IS NULL OR TRIM(rTxt) = '' THEN
      SET libelle3 = CONCAT('absence de motif.',CHR(10),CHR(10)) ;
    ELSE
      SET libelle3 = CONCAT(rTxt,CHR(10),CHR(10)) ;
    END IF ;
    SET libelle1 = CONCAT(libelle2,libelle3) ;
    IF rTyp = 1 THEN
      UPDATE F1 SET F1DESCR = libelle1 WHERE F1ID = dossier ;
    ELSE
      UPDATE F1 SET F1DESCR = CONCAT(F1DESCR,' ',libelle1) WHERE F1ID = dossier ;
    END IF ;
    FETCH motif_appels INTO rTyp, rNom, rDat, rTxt ;
  END WHILE ;
  CLOSE motif_appels ;
  SET done = 0 ;
  -- Mise à jour de la solution du dossier
  OPEN reponse_appels ;
  FETCH reponse_appels INTO rTyp, rNom, rDat, rTxt ;
  WHILE done = 0 DO
    IF TRIM(rNom) IS NULL OR TRIM(rNom) = '' THEN
      SET libelle2 = CONCAT('?, le ',rDat,' : ') ;
    ELSE
      SET libelle2 = CONCAT(rNom,', le ',rDat,' : ') ;
    END IF ;
    IF TRIM(rTxt) IS NULL OR TRIM(rTxt) = '' THEN
      SET libelle3 = CONCAT('absence de réponse.',CHR(10),CHR(10)) ;
    ELSE
      SET libelle3 = CONCAT(rTxt,CHR(10),CHR(10)) ;
    END IF ;
    SET libelle1 = CONCAT(libelle2,libelle3) ;
    IF rTyp = 1 THEN
      UPDATE F1 SET F1SOLUTION = libelle1 WHERE F1ID = dossier ;
    ELSE
      UPDATE F1 SET F1SOLUTION = CONCAT(F1SOLUTION,' ',libelle1) WHERE F1ID = dossier ;
    END IF ;
    FETCH reponse_appels INTO rTyp, rNom, rDat, rTxt ;
  END WHILE ;
  CLOSE reponse_appels ;
END $$
DELIMITER ;
-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- analysetxapl
-- version 1.0 par PBO.
-- -------------------------------------------------------------------
DELIMITER $$
DROP PROCEDURE IF EXISTS `analysetxapl` $$
CREATE PROCEDURE `analysetxapl`(util INT(11), moisDeb INT(2), moisFin INT(2), anDeb INT(4), anFin INT(4), appli INT(11))
BEGIN
  -- Création de la table de reception des données FTX
  creationTX: BEGIN
    DECLARE lookupExists INT(1) DEFAULT 1 ;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET lookupExists = 0 ;
    SET @lookupTable = CONCAT('SELECT * FROM ftx',util) ;
    PREPARE goLookup FROM @lookupTable ;
    EXECUTE goLookup ;
    DEALLOCATE PREPARE goLookup ;
    IF lookupExists = 0 THEN
      SET @createTable = CONCAT('CREATE TABLE ftx',util,' (ftxannee INTEGER(4) NOT NULL, ftxmois INTEGER(2) NOT NULL, ftxnbdos INTEGER(5), ftxnbapl INTEGER(5), ftxnbpostes INTEGER(6), ftxprcaplut INTEGER(6), ftxprcaplin INTEGER(6), ftxtxaplm DECIMAL(5,3), ftxtxapla DECIMAL(5,3), ftxtxapla_1 DECIMAL(5,3), CONSTRAINT ftx',util,'_PK PRIMARY KEY (ftxannee,ftxmois))') ;
      PREPARE goCreateTable FROM @createTable ;
      EXECUTE goCreateTable ;
      DEALLOCATE PREPARE goCreateTable ;
    ELSE
      SET @truncateTable = CONCAT('TRUNCATE TABLE ftx',util) ;
      PREPARE goTruncateTable FROM @truncateTable ;
      EXECUTE goTruncateTable ;
      DEALLOCATE PREPARE goTruncateTable ;
    END IF ;
  END creationTX ;
  -- Création de la table de reception des données FTXDF
  creationDF: BEGIN
    DECLARE lookupExists INT(1) DEFAULT 1 ;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET lookupExists = 0 ;
    SET @lookupTable = CONCAT('SELECT * FROM ftxdf',util) ;
    PREPARE goLookup FROM @lookupTable ;
    EXECUTE goLookup ;
    DEALLOCATE PREPARE goLookup ;
    IF lookupExists = 0 THEN
      SET @createTable = CONCAT('CREATE TABLE ftxdf',util,' (ftxdfannee INTEGER(4) NOT NULL, ftxdfmois INTEGER(2) NOT NULL, ftxdfcode INTEGER(11) NOT NULL, ftxdfnbapl INTEGER(5), CONSTRAINT ftxdf',util,'_PK PRIMARY KEY (ftxdfannee,ftxdfmois,ftxdfcode))') ;
      PREPARE goCreateTable FROM @createTable ;
      EXECUTE goCreateTable ;
      DEALLOCATE PREPARE goCreateTable ;
    ELSE
       SET @truncateTable = CONCAT('TRUNCATE TABLE ftxdf',util) ;
      PREPARE goTruncateTable FROM @truncateTable ;
      EXECUTE goTruncateTable ;
      DEALLOCATE PREPARE goTruncateTable ;
    END IF ;
   END creationDF ;
  -- Chargement de la période d'analyse dans la table
  loading: BEGIN
    DECLARE alreadyLoaded INT(1) DEFAULT 0 ;
    DECLARE dateDebut DATETIME ;
    DECLARE dateFin   DATETIME ;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET alreadyLoaded = 1 ;
    -- Date de début du traitement
    SET dateDebut = CONCAT(anDeb,'-',moisDeb,'-01 00:00:00') ;
    -- Soustraction de 12 mois ! Voir code initial. Pas de commentaire.
    SET dateDebut = DATE_ADD(dateDebut,INTERVAL -12 MONTH) ;
    -- Date de fin du traitement
    SET dateFin = LAST_DAY(CONCAT(anFin,'-',moisFin,'-01 23:59:00')) ;
    SET @tableName = CONCAT('ftx',util) ;
    SET @loader = CONCAT('INSERT INTO ',@tableName,' (ftxannee, ftxmois) VALUES (?,?)') ;
    PREPARE goLoading FROM @loader ;
    inserting_dates: LOOP
      IF dateDebut > dateFin THEN
        LEAVE inserting_dates ;
      END IF ;
      SET @anCourant = DATE_FORMAT(dateDebut,'%Y') ;
      SET @moisCourant = DATE_FORMAT(dateDebut,'%m') ;
      EXECUTE goLoading USING @anCourant,@moisCourant ;
      SET dateDebut = DATE_ADD(dateDebut,INTERVAL 1 MONTH) ;
    END LOOP inserting_dates ;
    DEALLOCATE PREPARE goLoading ;
  END loading ;
  first_part: BEGIN
    DECLARE dateDebut DATETIME ;
    DECLARE dateFin   DATETIME ;
    -- Variables extraites du curseur
    DECLARE rSite INT(11) ;
    DECLARE rMois INT(2) ;
    DECLARE rAn   INT(4) ;
    DECLARE rDos  INT(11) ;
    DECLARE rDif  INT(1) ;
    DECLARE rInc1 INT(1) ;
    DECLARE rDom  INT(11) ;
    DECLARE rFin  DATETIME ;
    DECLARE rInc2 INT(1) ;
    DECLARE rDat DATETIME ;
    -- Booléen de fin de parcours des dossiers
    DECLARE parseEnd INT(1) DEFAULT 0 ;
    DECLARE no_row   INT(1) DEFAULT 0 ;
    -- Variables de travail
    DECLARE nbAppels INT(6) DEFAULT 0 ;
    DECLARE debutPeriode DATETIME ;
    DECLARE finPeriode   DATETIME ;
    DECLARE debut        DATETIME ;
    DECLARE fin          DATETIME ;
    -- Curseur de travail des dossiers à traiter.
    DECLARE dossiers CURSOR FOR SELECT F1SITE,
                                       DATE_FORMAT(F1DATE,'%m') moisDeb,
                                       DATE_FORMAT(F1DATE,'%Y') anneeDeb,
                                       F1ID,
                                       F72DIFUTIL,
                                       F1INCID,
                                       F1DOMFONCT,
                                       F1DTFIN,
                                       F72INCID,
                                       F1DATE
                                  FROM F72 RIGHT JOIN
                                          F1 RIGHT JOIN F41
                                          ON ((F41ID = F1VERSAPP AND F41APPLI = appli) OR F1VERSAPP IS NULL)
                                       ON (F1QUALIF = F72ID)
                                 WHERE F1DATE <= dateFin
                                   AND (F1DTFIN >= dateDebut OR F1DTFIN IS NULL)
                                 ORDER BY F1DATE,F1SITE ;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET parseEnd = 1 ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_row = 1 ;
    -- Préparation des requête de mise à jour des tables
    SET @store_call      = CONCAT("UPDATE ftx",util,"   SET ftxnbapl    = IFNULL(ftxnbapl,0)+?    WHERE ftxannee   = ? AND ftxmois   = ?") ;
    SET @store_case      = CONCAT("UPDATE ftx",util,"   SET ftxnbdos    = IFNULL(ftxnbdos,0)+1    WHERE ftxannee   = ? AND ftxmois   = ?") ;
    SET @store_in        = CONCAT("UPDATE ftx",util,"   SET ftxprcaplin = IFNULL(ftxprcaplin,0)+? WHERE ftxannee   = ? AND ftxmois   = ?") ;
    SET @store_out       = CONCAT("UPDATE ftx",util,"   SET ftxprcaplut = IFNULL(ftxprcaplut,0)+? WHERE ftxannee   = ? AND ftxmois   = ?") ;
    SET @store_dfcall_sl = CONCAT("SELECT IFNULL(COUNT(*),0) INTO @existe_ftx from ftxdf",util," WHERE ftxdfannee = ? AND ftxdfmois = ? AND ftxdfcode = ?") ;
    SET @store_dfcall_up = CONCAT("UPDATE ftxdf",util," SET ftxdfnbapl  = IFNULL(ftxdfnbapl,0)+?  WHERE ftxdfannee = ? AND ftxdfmois = ? AND ftxdfcode = ?") ;
    SET @store_dfcall_in = CONCAT("INSERT INTO ftxdf",util," (ftxdfannee,ftxdfmois,ftxdfnbapl,ftxdfcode) VALUES(?,?,?,?)") ;
    PREPARE goStoreCall     FROM @store_call ;
    PREPARE goStoreCase     FROM @store_case ;
    PREPARE goStoreIn       FROM @store_in ;
    PREPARE goStoreOut      FROM @store_out ;
    PREPARE goStoreDfCallSl FROM @store_dfcall_sl ;
    PREPARE goStoreDfCallUp FROM @store_dfcall_up ;
    PREPARE goStoreDfCallIn FROM @store_dfcall_in ;
   SET dateDebut = CONCAT(anDeb,'-',moisDeb,'-01 00:00:00') ;
   -- Soustraction de 12 mois ! Voir code initial. Pas de commentaire.
   SET dateDebut = DATE_ADD(dateDebut,INTERVAL -12 MONTH) ;
   -- Date de fin du traitement
   SET dateFin = LAST_DAY(CONCAT(anFin,'-',moisFin,'-01 23:59:00')) ;
    -- Début du parcours des dossiers
    OPEN dossiers ;
    -- Premier dossier
    FETCH dossiers INTO rSite, rMois, rAn, rDos, rDif, rInc1, rDom, rFin, rInc2, rDat ;
    boucle: WHILE parseEnd = 0 DO
      SET nbAppels = 0 ;
      SET debutPeriode = CONCAT(rAn,'-',rMois,'-01 00:00:00') ;
      IF debutPeriode < dateDebut THEN
        SET debutPeriode = dateDebut ;
      END IF ;
      IF rFin IS NULL THEN
        SET finPeriode = dateFin ;
      ELSE
        SET finPeriode = LAST_DAY(CONCAT(DATE_FORMAT(rFin,'%Y-%m'),'-01 23:59:59')) ;
      END IF ;
      IF finPeriode > dateFin THEN
        SET finPeriode = dateFin ;
      END IF ;
      SET debut = debutPeriode ;
      SET fin = LAST_DAY(CONCAT(DATE_FORMAT(debut,'%Y-%m'),'-01 23:59:59')) ;
      working: LOOP
        IF debut > finPeriode THEN
          LEAVE working ;
        END IF ;
        SET @currentM = DATE_FORMAT(debut,'%m') ;
        SET @currentY = DATE_FORMAT(debut,'%Y') ;
        IF rDat BETWEEN debut AND fin THEN
          EXECUTE goStoreCase USING @currentY, @currentM ;
        END IF ;
        SELECT count(*) INTO nbAppels FROM F11 WHERE F11DOS = rDos AND F11DATE BETWEEN debut AND fin ;
        SET @callCount = nbAppels ;
        IF nbAppels > 0 THEN
          EXECUTE goStoreCall USING @callCount, @currentY, @currentM ;
          IF rDif = 1 THEN
            EXECUTE goStoreOut USING @callCount, @currentY, @currentM ;
          END IF ;
          IF rInc1 = 1 THEN
            EXECUTE goStoreIn USING @callCount, @currentY, @currentM ;
          END IF ;
          IF rDom IS NOT NULL THEN
            SET @domId = rDom ;
            SET @existe_ftx = 0 ;
            EXECUTE goStoreDfCallSl USING @currentY, @currentM, @domId ;
            IF @existe_ftx = 0 THEN
               EXECUTE goStoreDfCallIn USING @currentY, @currentM, @callCount, @domId ;
            ELSE
               EXECUTE goStoreDfCallUp USING @callCount, @currentY, @currentM, @domId ;
            END IF;
          END IF;
        END IF;
        SET debut = DATE_ADD(debut,INTERVAL 1 MONTH) ;
        SET fin   = LAST_DAY(CONCAT(DATE_FORMAT(debut,'%Y-%m'),'-01 23:59:59')) ;
      END LOOP working ;
      -- Dossier suivant
      FETCH dossiers INTO rSite, rMois, rAn, rDos, rDif, rInc1, rDom, rFin, rInc2, rDat ;
    END WHILE boucle ;
    CLOSE dossiers ;
    DEALLOCATE PREPARE goStoreCall ;
    DEALLOCATE PREPARE goStoreCase ;
    DEALLOCATE PREPARE goStoreIn ;
    DEALLOCATE PREPARE goStoreOut ;
    DEALLOCATE PREPARE goStoreDfCallSl ;
    DEALLOCATE PREPARE goStoreDfCallUp ;
    DEALLOCATE PREPARE goStoreDfCallIn ;
  END first_part ;
  second_part: BEGIN
    -- DECLARE nbAppels INT(6) ;
    -- DECLARE nbAplsUt INT(6) ;
    -- DECLARE nbAplsIn INT(6) ;
    -- DECLARE nbPostes INT(6) ;
    -- DECLARE currentM INT(2) ;
    -- DECLARE currentY INT(4) ;
    -- DECLARE txAnnuel DECIMAL(5,3) ;
    DECLARE finMois  DATETIME ;
    DECLARE norow    INT(1) DEFAULT 0 ;
    DECLARE notFound INT(1) DEFAULT 0 ;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET norow = 1 ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET notFound = 1 ;
    SET @nbAppels = 0 ;
    SET @nbAplsUt = 0 ;
    SET @nbAplsIn = 0 ;
    SET @nbPostes = 0 ;
    SET @currentM = 0 ;
    SET @currentY = 0 ;
    SET @txAnnuel = 0 ;
    SET @txAplA_1 = 0 ;
    -- Requête simili curseur dynamique
    SET @tauxReq       = CONCAT("SELECT IFNULL(FTXNBAPL,0), IFNULL(FTXPRCAPLUT,0), IFNULL(FTXPRCAPLIN,0), IFNULL(FTXNBPOSTES,0), FTXMOIS, FTXANNEE INTO @nbAppels, @nbAplsUt, @nbAplsIn, @nbPostes, @currentM, @currentY FROM FTX",util," LIMIT ?,1") ;
    SET @storePostes   = CONCAT("UPDATE FTX",util," SET FTXNBPOSTES = IFNULL(FTXNBPOSTES,0)+? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    SET @storeAplUtIn  = CONCAT("UPDATE FTX",util," SET FTXPRCAPLUT = ?, FTXPRCAPLIN = ? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    SET @storeTxAplM   = CONCAT("UPDATE FTX",util," SET FTXTXAPLM = ? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    SET @storeTxAplA   = CONCAT("UPDATE FTX",util," SET FTXTXAPLA = ? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    SET @tauxAnnuel    = CONCAT("SELECT IFNULL(SUM(IFNULL(FTXTXAPLM,0)),0)  INTO @txAnnuel FROM FTX",util," WHERE STR_TO_DATE(CONCAT(FTXANNEE,'-',FTXMOIS,'-01'),'%Y-%m-%d') between ? AND ? ORDER BY FTXANNEE, FTXMOIS");
    SET @storeTxAnnuel = CONCAT("UPDATE FTX",util," SET FTXTXAPLA_1 = ? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    PREPARE goTaux     FROM @tauxReq ;
    PREPARE goPostes   FROM @storePostes ;
    PREPARE goAplUtIn  FROM @storeAplUtIn ;
    PREPARE goTxAplM   FROM @storeTxAplM ;
    PREPARE goTxAplA   FROM @storeTxAplA ;
    PREPARE goTxAnnuel FROM @tauxAnnuel ;
    PREPARE goStoreTx  FROM @storeTxAnnuel ;
    -- Requête sur le premier enregistrement
    SET @idxLigne = 1 ;
    SET @txAplA = 0 ;
    EXECUTE goTaux USING @idxLigne ;
    travail: WHILE norow = 0 DO
      SET @txAplM = 0 ;
      SET finMois = LAST_DAY(CONCAT(@currentY,'-',@currentM,'-01 23:59:59')) ;
      SET notFound = 0 ;
      SET @nbPostes = 0 ;
      SELECT IFNULL(SUM(IFNULL(F5NBPOSTE,0))+SUM(IFNULL(F5NBPORRE,0))+SUM(IFNULL(F5NBPORNC,0)),0)
        INTO @nbPostes
        FROM F5
       WHERE F5DTFINIM <= finMois
         AND F5ID IN (
             SELECT DISTINCT(F61SITE)
               FROM F61 INNER JOIN F41
                    ON ((F41ID=F61VERSAPP AND F41APPLI = appli)
                        OR F61VERSAPP IS NULL)
              WHERE F61DTENV <= finMois) ;
      IF notFound = 1 THEN
        SET notFound = 0 ;
        SET @nbPostes = 0 ;
      END IF ;
      IF @nbPostes > 0 THEN
          EXECUTE goPostes USING @nbPostes, @currentY, @currentM ;
      END IF;
      IF @nbAppels > 0 THEN
        SET @prcAplUt = ROUND((@nbAplsUt/@nbAppels)*100,0) ;
        SET @prcAplIn = ROUND((@nbAplsIn/@nbAppels)*100,0) ;
        EXECUTE goAplUtIn USING @prcAplUt, @prcAplIn, @currentY, @currentM ;
        IF @nbPostes > 0 THEN
          SET @txAplM = ROUND((@nbAppels/@nbPostes),3) ;
          EXECUTE goTxAplM USING @txAplM, @currentY, @currentM ;
         -- SET @nbPostes = 0 ;
        END IF ;
      END IF ;
      IF @currentM <> 12 THEN
        SET @txAplA = @txAplA + IFNULL(@txAplM,0) ;
        SET @txAplM = 0;
      ELSE
        EXECUTE goTxAplA USING @txAplA, @currentY, @currentM ;
        SET @txAplA = 0 ;
      END IF ;
      IF STR_TO_DATE(CONCAT(@currentY,'-',@currentM,'-01'),'%Y-%m-%d') >= STR_TO_DATE(CONCAT(anDeb,'-',moisDeb,'-01'),'%Y-%m-%d') THEN
        SET @moisPrec = DATE_FORMAT(DATE_ADD(CONCAT(@currentY,'-',@currentM,'-01 00:00:00'),INTERVAL -12 MONTH),'%m') ;
        SET @anPrec   = DATE_FORMAT(DATE_ADD(CONCAT(@currentY,'-',@currentM,'-01 00:00:00'),INTERVAL -12 MONTH),'%Y') ;
 
        SET @interval12mois =  STR_TO_DATE(CONCAT(@anPrec,'-',@moisPrec,'-01'),'%Y-%m-%d');
        SET @intervalCurrent = STR_TO_DATE(CONCAT(@currentY,'-',@currentM,'-01'),'%Y-%m-%d');
        EXECUTE goTxAnnuel USING @interval12mois,@intervalCurrent  ;
        IF @txAnnuel IS NOT NULL THEN
        SET @txAplA_1 = @txAnnuel ;
        END IF;
        EXECUTE goStoreTx USING @txAplA_1, @currentY, @currentM ;
        SET @txAplA_1 = 0 ;
      END IF ;
      SET @idxLigne = @idxLigne+1 ;
      EXECUTE goTaux USING @idxLigne ;
    END WHILE travail ;
    DEALLOCATE PREPARE goTaux ;
    DEALLOCATE PREPARE goPostes ;
    DEALLOCATE PREPARE goAplUtIn ;
    DEALLOCATE PREPARE goTxAplM ;
    DEALLOCATE PREPARE goTxAplA ;
    DEALLOCATE PREPARE goTxAnnuel ;
    DEALLOCATE PREPARE goStoreTx ;
  END second_part ;
END $$
DELIMITER ;
-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- donne_dtMom
-- version 1.0 par PBO.
-- -------------------------------------------------------------------
-- Destruction de la version précédente
DELIMITER $$
DROP FUNCTION IF EXISTS `donne_dtmom` $$
CREATE FUNCTION `donne_dtmom`(appli INT(11), site INT(11)) RETURNS varchar(10)
p1: BEGIN
    DECLARE final VARCHAR(10) ;
    DECLARE dordre DATE ;
    SELECT IFNULL(F61.F61DTENV,F61.F61DTDEB) DATEORDER,
           DATE_FORMAT(F61.F61DTMOM,'%d/%m/%Y') dtMOM INTO dordre, final
      FROM F61 INNER JOIN F41
           ON (F61.F61VERSAPP = F41.F41ID AND F41.F41APPLI = appli)
     WHERE F61.F61SITE = site
     ORDER BY dtMOM DESC LIMIT 1 ;
     RETURN final ;
END p1 $$
DELIMITER ;
-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- donne_dtVal
-- version 1.0 par PBO.
-- -------------------------------------------------------------------
-- Destruction de la version précédente
DELIMITER $$
DROP FUNCTION IF EXISTS `donne_dtval` $$
CREATE FUNCTION `donne_dtval`(appli INT(11), site INT(11)) RETURNS varchar(10)
p1: BEGIN
    DECLARE final VARCHAR(10) ;
    DECLARE dordre DATE ;
    SELECT IFNULL(F61.F61DTENV,F61.F61DTDEB) DATEORDER,
           DATE_FORMAT(F61.F61DTVAL,'%d/%m/%Y') dtVAL INTO dordre, final
      FROM F61 INNER JOIN F41
           ON (F61.F61VERSAPP = F41.F41ID AND F41.F41APPLI = appli)
     WHERE F61.F61SITE = site
     ORDER BY dtVAL DESC LIMIT 1 ;
     RETURN final ;
END p1 $$
DELIMITER ;
-- -------------------------------------------------------------------
-- Migration de procdure stocke.
-- version
-- version 1.0 par ABE.
-- -------------------------------------------------------------------
-- Destruction de la version prcdente
DROP FUNCTION IF EXISTS donne_version ;
-- Dfinition de la procdure
DELIMITER //
CREATE FUNCTION donne_version (appli INT(11), site INT(11)) RETURNS VARCHAR(20)
LANGUAGE  SQL
p1: BEGIN
     DECLARE result VARCHAR(20) ;
      SELECT MAX(F41.F41CODE) INTO result
      FROM F61 INNER JOIN F41
           ON (F61.F61VERSAPP = F41.F41ID AND F41.F41APPLI = appli)
     WHERE F61.F61SITE = site ;
     RETURN result ;
END p1 ;
//
DELIMITER ;
-- -------------------------------------------------------------------
-- Migration de fonction stockee.
-- version
-- version 1.0 par ABE.
-- -------------------------------------------------------------------
-- Destruction de la version precedente
DROP FUNCTION IF EXISTS donne_ecartDate ;
-- Definition de la fonction
DELIMITER $$
CREATE FUNCTION donne_ecartDate (d1 DATETIME,d2 DATETIME) RETURNS DECIMAL(8,2)
LANGUAGE  SQL
BEGIN
       DECLARE delta DECIMAL(8,2) ;
       SELECT (
       (DATEDIFF(d1,d2)*1440)+
       (MINUTE(d1)-MINUTE(d2))+
       ((HOUR(d1)-HOUR(d2))*60)
       )/60 into delta ;
       return delta ;
END ;
$$
DELIMITER ;