X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Ffusionax%2FAnciens.sql;h=5d647bf977708d3daf6099e36cf678f60c8d0c90;hb=4dcee20be6bd4ca928c54a6ae580f832b287777e;hp=7964f430af23406e896578036792c74fbd36eb80;hpb=a16cf1c2e56cc6e4c6cda1e984d2659c4cf0450c;p=platal.git diff --git a/modules/fusionax/Anciens.sql b/modules/fusionax/Anciens.sql index 7964f43..5d647bf 100644 --- a/modules/fusionax/Anciens.sql +++ b/modules/fusionax/Anciens.sql @@ -4,55 +4,82 @@ DROP TABLE IF EXISTS fusionax_anciens; CREATE TABLE IF NOT EXISTS fusionax_anciens ( AN CHAR(2) NOT NULL COMMENT 'Vaut toujours AN pour cette table', - id_ancien VARCHAR(8) NOT NULL COMMENT 'Id unique de l''ancien', - Login VARCHAR(15) NOT NULL COMMENT 'Login sur le site de l''AX', - Password INT(11) NOT NULL COMMENT 'Mot de passe sur le site AX', + ax_id VARCHAR(8) NOT NULL COMMENT 'Id unique de l''ancien', promotion_etude SMALLINT(4) NOT NULL COMMENT 'Promotion avec laquelle il/elle a fait ses études', - Groupe_promo ENUM('', 'A', 'B', 'C', 'N', 'S') character set binary NOT NULL COMMENT 'Groupe de promotion (code compris seulement par AX)', - Nom_patronymique VARCHAR(255) character set utf8 NOT NULL COMMENT 'Nom patronymique (nom de jeune fille) sans la particule', - partic_patro VARCHAR(5) character set utf8 NOT NULL COMMENT 'Particule du nom patronymique', - prenom VARCHAR(30) character set utf8 NOT NULL COMMENT 'Prénom', - Nom_usuel VARCHAR(255) character set utf8 NOT NULL COMMENT 'Nom usuel (nom marital par exemple) sans la particule', - partic_nom VARCHAR(5) character set utf8 NOT NULL COMMENT 'Particule du nom usuel', - Nom_complet VARCHAR(255) character set utf8 NOT NULL COMMENT 'Nom patronymique complet (avec la particule)', - Civilite ENUM('', '.', 'M', 'MME', 'MLLE') character set utf8 NOT NULL COMMENT 'Civilité', + groupe_promo CHAR(1) NOT NULL COMMENT '0, M ou D', + Nom_patronymique VARCHAR(255) NOT NULL COMMENT 'Nom patronymique (nom de jeune fille) sans la particule', + partic_patro VARCHAR(5) NOT NULL COMMENT 'Particule du nom patronymique', + prenom VARCHAR(30) NOT NULL COMMENT 'Prénom', + Nom_usuel VARCHAR(255) NOT NULL COMMENT 'Nom usuel (nom marital par exemple) sans la particule', + partic_nom VARCHAR(5) NOT NULL COMMENT 'Particule du nom usuel', + Nom_complet VARCHAR(255) NOT NULL COMMENT 'Nom patronymique complet (avec la particule)', + Civilite ENUM('M', 'MLLE', 'MME') NOT NULL DEFAULT 'M', Code_nationalite CHAR(4) NOT NULL COMMENT 'Nationalité (code)', - Type_membre ENUM('', '*', 'F', 'FB', 'P', 'PB', 'T', 'TB', 'TA') character set binary NOT NULL COMMENT 'Type de membre (code compris seulement par AX)', - corps_sortie VARCHAR(50) character set utf8 NOT NULL COMMENT 'Corps de sortie (ou D si aucun)', + corps_sortie VARCHAR(50) NOT NULL COMMENT 'Corps de sortie (ou D si aucun)', Date_deces DATE COMMENT 'Date de décès', grade VARCHAR(50) NOT NULL COMMENT 'Grade actuel dans son corps', Mel_usage VARCHAR(255) NOT NULL COMMENT 'Adresse e-mail d''usage', Mel_publiable TINYINT(4) NOT NULL COMMENT 'Autorisation d''utiliser le mail', + Mob_publiable TINYINT(4) NOT NULL COMMENT 'Autorisation d''utiliser le mobile', tel_mobile VARCHAR(30) NOT NULL COMMENT 'Numéro de téléphone mobile', - annee_dernCot INT(11) NOT NULL COMMENT 'Année de dernière cotisation AX', - Representant ENUM('', 'K', 'DE') character set binary NOT NULL COMMENT 'Représentant de promotion', - hash_adr_defaut BINARY(5) NOT NULL COMMENT 'Hash de l''adresse par défaut', - Date_maj DATE NOT NULL, - PRIMARY KEY (id_ancien) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; - -LOAD DATA LOCAL INFILE 'Anciens.txt' INTO TABLE `fusionax_anciens` FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n' -(`AN`, `id_ancien`, `Login`, `Password`, `promotion_etude`, `Groupe_promo`, `Nom_patronymique`, `partic_patro`, `prenom`, Nom_usuel, partic_nom, - Nom_complet, Civilite, Code_nationalite, Type_membre, corps_sortie, @StringDate_deces, grade, Mel_usage, Mel_publiable, - tel_mobile, annee_dernCot, Representant, @Type_adr_defaut, @AdrC_Ligne1, @AdrC_Ligne2, @AdrC_Ligne3, @AdrC_code_postal, @AdrC_ville, - @AdrC_zip_cedex, @AdrC_etat_distr, @AdrC_pays, @tel, @fax, @StringDate_maj) + Date_maj DATE NOT NULL COMMENT 'Date de mise à jour de ces informations', + pid INT(11) UNSIGNED DEFAULT NULL, + PRIMARY KEY (ax_id), + INDEX (pid) +) ENGINE=InnoDB, CHARSET=utf8; + +LOAD DATA LOCAL INFILE '{?}Anciens.txt' INTO TABLE `fusionax_anciens` CHARACTER SET utf8 FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n' +(AN, ax_id, @login, @password, promotion_etude, groupe_promo, Nom_patronymique, partic_patro, prenom, Nom_usuel, partic_nom, + Nom_complet, Civilite, Code_nationalite, @type, corps_sortie, @StringDate_deces, grade, Mel_usage, Mel_publiable, @xxx, Mob_publiable, + tel_mobile, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @X_M_D, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @Type_adr, + @Ligne1, @Ligne2, @Ligne3, @code_postal, @ville, @zip_cedex, @etat_distr, @pays, @tel, @fax, @StringDate_maj) SET - `hash_adr_defaut` = SUBSTRING( MD5( @Type_adr_defaut ), 1, 5), - `Date_maj` = CONCAT(SUBSTRING(@StringDate_maj,7),'-',SUBSTRING(@StringDate_maj,4,2),'-',SUBSTRING(@StringDate_maj,1,2)), - `Date_deces` = CONCAT(SUBSTRING(@StringDate_deces,7),'-',SUBSTRING(@StringDate_deces,4,2),'-',SUBSTRING(@StringDate_deces,1,2)); + Date_deces = CONCAT(SUBSTRING(@StringDate_deces,7),'-',SUBSTRING(@StringDate_deces,4,2),'-',SUBSTRING(@StringDate_deces,1,2)), + Date_maj = CONCAT(SUBSTRING(@StringDate_maj,7),'-',SUBSTRING(@StringDate_maj,4,2),'-',SUBSTRING(@StringDate_maj,1,2)); +-- Mel_publiable is not certain yet :/ -ALTER TABLE fusionax_anciens ADD INDEX (id_ancien); +ALTER TABLE fusionax_anciens ADD INDEX (ax_id); +UPDATE fusionax_anciens SET corps_sortie = TRIM(corps_sortie), grade = TRIM(grade); +UPDATE fusionax_anciens SET groupe_promo = 'X' WHERE groupe_promo NOT IN ('M', 'D'); +UPDATE fusionax_anciens SET promotion_etude = SUBSTRING(ax_id, 1, 4) WHERE groupe_promo != 'X'; -- Correspondances entre fiches X.org et fiches AX DROP TABLE IF EXISTS `fusionax_import`; CREATE TABLE IF NOT EXISTS `fusionax_import` ( - `id_ancien` VARCHAR(8) NOT NULL COMMENT 'identifiant AX de l''ancien', - `user_id` INT(11) DEFAULT NULL COMMENT 'identifiant x.org de l''ancien si on l''a trouvé', + `ax_id` VARCHAR(8) NOT NULL COMMENT 'identifiant AX de l''ancien', + `pid` INT(11) DEFAULT NULL COMMENT 'identifiant du profil x.org de l''ancien si on l''a trouvé', `date_match_id` TIMESTAMP NULL DEFAULT NULL COMMENT 'date de mise en correspondance des identifiants', - PRIMARY KEY (`id_ancien`), - KEY `user_id` (`user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; + PRIMARY KEY (`ax_id`), + KEY `pid` (`pid`) +) ENGINE=InnoDB, CHARSET=utf8; + +INSERT INTO `fusionax_import` ( SELECT `ax_id`, NULL, NULL FROM `fusionax_anciens` ); +REPLACE INTO `fusionax_import` ( SELECT `ax_id`, `pid`, NOW() FROM `profiles` ); + +CREATE TEMPORARY TABLE IF NOT EXISTS tmp_update_fusionax_anciens ( + good CHAR(4) DEFAULT NULL, + bad CHAR(4) DEFAULT NULL, + PRIMARY KEY(bad), + UNIQUE KEY(good) +) CHARSET=utf8; + +INSERT IGNORE INTO tmp_update_fusionax_anciens (bad, good) + VALUES ('TC', 'CAM'), + ('SH', 'CN'), + ('R', 'RO'), + ('TW', 'RC'), + ('TG', 'RT'), + ('U', 'ROU'), + ('KP', 'ROK'), + ('CRO', 'HR'), + ('UKR', 'UA'), + ('AM', 'ARM'), + ('CS', 'CZ'), + ('SU', 'RUS'), + ('LET', 'LV'), + ('MDA', 'MD'); -INSERT INTO `fusionax_import` ( SELECT `id_ancien`, NULL, NULL FROM `fusionax_anciens` ); -REPLACE INTO `fusionax_import` ( SELECT `matricule_ax`, `user_id`, NOW() FROM `auth_user_md5` ); + UPDATE fusionax_anciens AS f +INNER JOIN tmp_update_fusionax_anciens AS t ON (f.Code_nationalite = t.bad) + SET f.Code_nationalite = t.good;