Updates and improves code for Xorg/AX directory merge.
[platal.git] / modules / fusionax / Anciens.sql
CommitLineData
b9ad0878
PC
1-- Import complet des anciens
2
22f043e4 3DROP TABLE IF EXISTS fusionax_anciens;
b9ad0878 4
22f043e4
SJ
5CREATE TABLE IF NOT EXISTS fusionax_anciens (
6 AN CHAR(2) NOT NULL COMMENT 'Vaut toujours AN pour cette table',
ddc4c642 7 ax_id VARCHAR(8) NOT NULL COMMENT 'Id unique de l''ancien',
22f043e4
SJ
8 Login VARCHAR(15) NOT NULL COMMENT 'Login sur le site de l''AX',
9 Password INT(11) NOT NULL COMMENT 'Mot de passe sur le site AX',
10 promotion_etude SMALLINT(4) NOT NULL COMMENT 'Promotion avec laquelle il/elle a fait ses études',
73be4434 11 Groupe_promo ENUM('', 'A', 'B', 'C', 'N', 'S') character set binary NOT NULL COMMENT 'Groupe de promotion (code compris seulement par AX)',
ddc4c642
SJ
12 Nom_patronymique VARCHAR(255) NOT NULL COMMENT 'Nom patronymique (nom de jeune fille) sans la particule',
13 partic_patro VARCHAR(5) NOT NULL COMMENT 'Particule du nom patronymique',
14 prenom VARCHAR(30) NOT NULL COMMENT 'Prénom',
15 Nom_usuel VARCHAR(255) NOT NULL COMMENT 'Nom usuel (nom marital par exemple) sans la particule',
16 partic_nom VARCHAR(5) NOT NULL COMMENT 'Particule du nom usuel',
17 Nom_complet VARCHAR(255) NOT NULL COMMENT 'Nom patronymique complet (avec la particule)',
18 Civilite ENUM('', '.', 'M', 'MME', 'MLLE') NOT NULL COMMENT 'Civilité',
0b37833b 19 Code_nationalite CHAR(4) NOT NULL COMMENT 'Nationalité (code)',
73be4434 20 Type_membre ENUM('', '*', 'F', 'FB', 'P', 'PB', 'T', 'TB', 'TA') character set binary NOT NULL COMMENT 'Type de membre (code compris seulement par AX)',
ddc4c642 21 corps_sortie VARCHAR(50) NOT NULL COMMENT 'Corps de sortie (ou D si aucun)',
22f043e4
SJ
22 Date_deces DATE COMMENT 'Date de décès',
23 grade VARCHAR(50) NOT NULL COMMENT 'Grade actuel dans son corps',
24 Mel_usage VARCHAR(255) NOT NULL COMMENT 'Adresse e-mail d''usage',
25 Mel_publiable TINYINT(4) NOT NULL COMMENT 'Autorisation d''utiliser le mail',
26 tel_mobile VARCHAR(30) NOT NULL COMMENT 'Numéro de téléphone mobile',
27 annee_dernCot INT(11) NOT NULL COMMENT 'Année de dernière cotisation AX',
73be4434 28 Representant ENUM('', 'K', 'DE') character set binary NOT NULL COMMENT 'Représentant de promotion',
22f043e4
SJ
29 hash_adr_defaut BINARY(5) NOT NULL COMMENT 'Hash de l''adresse par défaut',
30 Date_maj DATE NOT NULL,
ddc4c642
SJ
31 PRIMARY KEY (ax_id)
32) ENGINE=InnoDB, CHARSET=utf8;
b9ad0878 33
ddc4c642
SJ
34LOAD DATA LOCAL INFILE '{?}Anciens.txt' INTO TABLE `fusionax_anciens` FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n'
35(`AN`, `ax_id`, `Login`, `Password`, `promotion_etude`, `Groupe_promo`, `Nom_patronymique`, `partic_patro`, `prenom`, Nom_usuel, partic_nom,
b9ad0878
PC
36 Nom_complet, Civilite, Code_nationalite, Type_membre, corps_sortie, @StringDate_deces, grade, Mel_usage, Mel_publiable,
37 tel_mobile, annee_dernCot, Representant, @Type_adr_defaut, @AdrC_Ligne1, @AdrC_Ligne2, @AdrC_Ligne3, @AdrC_code_postal, @AdrC_ville,
38 @AdrC_zip_cedex, @AdrC_etat_distr, @AdrC_pays, @tel, @fax, @StringDate_maj)
39SET
40 `hash_adr_defaut` = SUBSTRING( MD5( @Type_adr_defaut ), 1, 5),
41 `Date_maj` = CONCAT(SUBSTRING(@StringDate_maj,7),'-',SUBSTRING(@StringDate_maj,4,2),'-',SUBSTRING(@StringDate_maj,1,2)),
42 `Date_deces` = CONCAT(SUBSTRING(@StringDate_deces,7),'-',SUBSTRING(@StringDate_deces,4,2),'-',SUBSTRING(@StringDate_deces,1,2));
43
ddc4c642 44ALTER TABLE fusionax_anciens ADD INDEX (ax_id);
0b37833b 45
cc8ea8b2 46-- Correspondances entre fiches X.org et fiches AX
b9ad0878 47DROP TABLE IF EXISTS `fusionax_import`;
22f043e4 48
b9ad0878 49CREATE TABLE IF NOT EXISTS `fusionax_import` (
ddc4c642
SJ
50 `ax_id` VARCHAR(8) NOT NULL COMMENT 'identifiant AX de l''ancien',
51 `pid` INT(11) DEFAULT NULL COMMENT 'identifiant du profil x.org de l''ancien si on l''a trouvé',
73be4434 52 `date_match_id` TIMESTAMP NULL DEFAULT NULL COMMENT 'date de mise en correspondance des identifiants',
ddc4c642
SJ
53 PRIMARY KEY (`ax_id`),
54 KEY `pid` (`pid`)
55) ENGINE=InnoDB, CHARSET=utf8;
b9ad0878 56
ddc4c642
SJ
57INSERT INTO `fusionax_import` ( SELECT `ax_id`, NULL, NULL FROM `fusionax_anciens` );
58REPLACE INTO `fusionax_import` ( SELECT `ax_id`, `pid`, NOW() FROM `profiles` );
59
60CREATE TEMPORARY TABLE IF NOT EXISTS tmp_update_fusionax_anciens (
61 good CHAR(4) DEFAULT NULL,
62 bad CHAR(4) DEFAULT NULL,
63 PRIMARY KEY(bad),
64 UNIQUE KEY(good)
65) CHARSET=utf8;
66
67INSERT IGNORE INTO tmp_update_fusionax_anciens (bad, good)
68 VALUES ('TC', 'CAM'),
69 ('SH', 'CN'),
70 ('R', 'RO'),
71 ('TW', 'RC'),
72 ('TG', 'RT'),
73 ('U', 'ROU'),
74 ('KP', 'ROK'),
75 ('CRO', 'HR'),
76 ('UKR', 'UA'),
77 ('AM', 'ARM'),
78 ('CS', 'CZ'),
79 ('SU', 'RUS'),
80 ('LET', 'LV'),
81 ('MDA', 'MD');
82
83 UPDATE fusionax_anciens AS f
84INNER JOIN tmp_update_fusionax_anciens AS t ON (f.Code_nationalite = t.bad)
85 SET f.Code_nationalite = t.good;