Merge branch 'xorg/maint' into xorg/master
[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 8 promotion_etude SMALLINT(4) NOT NULL COMMENT 'Promotion avec laquelle il/elle a fait ses études',
ad1c9939 9 groupe_promo CHAR(1) NOT NULL COMMENT '0, M ou D',
ddc4c642
SJ
10 Nom_patronymique VARCHAR(255) NOT NULL COMMENT 'Nom patronymique (nom de jeune fille) sans la particule',
11 partic_patro VARCHAR(5) NOT NULL COMMENT 'Particule du nom patronymique',
12 prenom VARCHAR(30) NOT NULL COMMENT 'Prénom',
13 Nom_usuel VARCHAR(255) NOT NULL COMMENT 'Nom usuel (nom marital par exemple) sans la particule',
14 partic_nom VARCHAR(5) NOT NULL COMMENT 'Particule du nom usuel',
15 Nom_complet VARCHAR(255) NOT NULL COMMENT 'Nom patronymique complet (avec la particule)',
0b37833b 16 Code_nationalite CHAR(4) NOT NULL COMMENT 'Nationalité (code)',
ddc4c642 17 corps_sortie VARCHAR(50) NOT NULL COMMENT 'Corps de sortie (ou D si aucun)',
22f043e4
SJ
18 Date_deces DATE COMMENT 'Date de décès',
19 grade VARCHAR(50) NOT NULL COMMENT 'Grade actuel dans son corps',
20 Mel_usage VARCHAR(255) NOT NULL COMMENT 'Adresse e-mail d''usage',
21 Mel_publiable TINYINT(4) NOT NULL COMMENT 'Autorisation d''utiliser le mail',
a48b23c3 22 Mob_publiable TINYINT(4) NOT NULL COMMENT 'Autorisation d''utiliser le mobile',
22f043e4 23 tel_mobile VARCHAR(30) NOT NULL COMMENT 'Numéro de téléphone mobile',
723d4c6b 24 Date_maj DATE NOT NULL COMMENT 'Date de mise à jour de ces informations',
a48b23c3
SJ
25 pid INT(11) UNSIGNED DEFAULT NULL,
26 PRIMARY KEY (ax_id),
27 INDEX (pid)
ddc4c642 28) ENGINE=InnoDB, CHARSET=utf8;
b9ad0878 29
53595c2a 30LOAD DATA LOCAL INFILE '{?}Anciens.txt' INTO TABLE `fusionax_anciens` CHARACTER SET utf8 FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n'
ad1c9939 31(AN, ax_id, @login, @password, promotion_etude, groupe_promo, Nom_patronymique, partic_patro, prenom, Nom_usuel, partic_nom,
a48b23c3 32 Nom_complet, @civilite, Code_nationalite, @type, corps_sortie, @StringDate_deces, grade, Mel_usage, Mel_publiable, @xxx, Mob_publiable,
4ad7b8ca 33 tel_mobile, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @X_M_D, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @Type_adr,
723d4c6b 34 @Ligne1, @Ligne2, @Ligne3, @code_postal, @ville, @zip_cedex, @etat_distr, @pays, @tel, @fax, @StringDate_maj)
b9ad0878 35SET
723d4c6b
SJ
36 Date_deces = CONCAT(SUBSTRING(@StringDate_deces,7),'-',SUBSTRING(@StringDate_deces,4,2),'-',SUBSTRING(@StringDate_deces,1,2)),
37 Date_maj = CONCAT(SUBSTRING(@StringDate_maj,7),'-',SUBSTRING(@StringDate_maj,4,2),'-',SUBSTRING(@StringDate_maj,1,2));
4ad7b8ca 38-- Mel_publiable is not certain yet :/
b9ad0878 39
ddc4c642 40ALTER TABLE fusionax_anciens ADD INDEX (ax_id);
db8f6227 41UPDATE fusionax_anciens SET corps_sortie = TRIM(corps_sortie), grade = TRIM(grade);
ad1c9939
SJ
42UPDATE fusionax_anciens SET groupe_promo = 'X' WHERE groupe_promo NOT IN ('M', 'D');
43UPDATE fusionax_anciens SET promotion_etude = SUBSTRING(ax_id, 1, 4) WHERE groupe_promo != 'X';
0b37833b 44
cc8ea8b2 45-- Correspondances entre fiches X.org et fiches AX
b9ad0878 46DROP TABLE IF EXISTS `fusionax_import`;
22f043e4 47
b9ad0878 48CREATE TABLE IF NOT EXISTS `fusionax_import` (
ddc4c642
SJ
49 `ax_id` VARCHAR(8) NOT NULL COMMENT 'identifiant AX de l''ancien',
50 `pid` INT(11) DEFAULT NULL COMMENT 'identifiant du profil x.org de l''ancien si on l''a trouvé',
73be4434 51 `date_match_id` TIMESTAMP NULL DEFAULT NULL COMMENT 'date de mise en correspondance des identifiants',
ddc4c642
SJ
52 PRIMARY KEY (`ax_id`),
53 KEY `pid` (`pid`)
54) ENGINE=InnoDB, CHARSET=utf8;
b9ad0878 55
ddc4c642
SJ
56INSERT INTO `fusionax_import` ( SELECT `ax_id`, NULL, NULL FROM `fusionax_anciens` );
57REPLACE INTO `fusionax_import` ( SELECT `ax_id`, `pid`, NOW() FROM `profiles` );
58
59CREATE TEMPORARY TABLE IF NOT EXISTS tmp_update_fusionax_anciens (
60 good CHAR(4) DEFAULT NULL,
61 bad CHAR(4) DEFAULT NULL,
62 PRIMARY KEY(bad),
63 UNIQUE KEY(good)
64) CHARSET=utf8;
65
66INSERT IGNORE INTO tmp_update_fusionax_anciens (bad, good)
67 VALUES ('TC', 'CAM'),
68 ('SH', 'CN'),
69 ('R', 'RO'),
70 ('TW', 'RC'),
71 ('TG', 'RT'),
72 ('U', 'ROU'),
73 ('KP', 'ROK'),
74 ('CRO', 'HR'),
75 ('UKR', 'UA'),
76 ('AM', 'ARM'),
77 ('CS', 'CZ'),
78 ('SU', 'RUS'),
79 ('LET', 'LV'),
80 ('MDA', 'MD');
81
82 UPDATE fusionax_anciens AS f
83INNER JOIN tmp_update_fusionax_anciens AS t ON (f.Code_nationalite = t.bad)
84 SET f.Code_nationalite = t.good;