START TRANSACTION;

--    IRAP : Distribution 21/01/2016 *
/*
- Si elle existe, supprimer table "fichiers"
- Sauvegarder les utilisateurs
- Transformer table "utilisateurs" en "users"
- Ajout table "configuration"
- Ajout clé étrangère emprunts (site_id)/suivis (type_suivi_id)
- Transformation des données correspondantes
- Suppression ancien champ emprunt (e_lieu_stockage), suivis (type_intervention)
*/
set foreign_key_checks=0;

update materiels set organisme_id = NULL where organisme is NULL;
update materiels set organisme_id ="1" where organisme like "CNRS%";
update materiels set organisme_id ="2" where organisme like "UPS%";
update materiels set organisme_id ="3" where organisme like "Ird%";
alter table `materiels` drop `organisme`;
alter table `materiels` drop `lieu_stockage`;

DROP TABLE IF EXISTS `fichiers`;


-- Utilisateurs -> Users 
-- 25/04/2016
-- Modifications nom table "utilisateurs" ==> "users"
-- Ajout attribut "password" dans la table users
-- Modification attribut "login" de la table users en "username"

CREATE TABLE users AS SELECT * FROM utilisateurs ;

ALTER TABLE `users` ADD `password` VARCHAR(255) DEFAULT '$2y$10$nBQMNstgN.sgad1ZANznY.pbJI.ZG/.Q5qX4gC8SXCFQnDIZC8rcW';

ALTER TABLE `users` CHANGE `login` `username` VARCHAR(45) DEFAULT NULL;

DROP TABLE IF EXISTS `utilisateurs`;

INSERT INTO users (id, nom, username, password, email, role) VALUES
('25', 'super-admin', 'superadmin', '$2y$10$nBQMNstgN.sgad1ZANznY.pbJI.ZG/.Q5qX4gC8SXCFQnDIZC8rcW', 'superadmin@admin.fr', 'Super Administrateur');

--
-- Contraintes pour la table `users`
--
ALTER TABLE `users`
  ADD CONSTRAINT `fk_users_groupes_travails1` FOREIGN KEY (`groupes_metier_id`) REFERENCES `groupes_metiers` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;


DROP TABLE IF EXISTS `configurations`;
CREATE TABLE IF NOT EXISTS `configurations` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(45) NOT NULL COMMENT 'obligatoire (et unique)',
  `mode_install` tinyint(1)  DEFAULT NULL,
  `mode_debug` tinyint(1)  DEFAULT NULL,
  `use_ldap` tinyint(1)  DEFAULT NULL,
  `host_ldap` varchar(30)  DEFAULT NULL,
  `port_ldap` varchar(10)  DEFAULT NULL,
  `authentificationType_ldap` varchar(30)  DEFAULT 'xxx',
  `baseDn_ldap` varchar(30)  DEFAULT NULL,
  `filter_ldap` varchar(30)  DEFAULT NULL,
  `labName` varchar(30)  DEFAULT NULL,
  `labNameShort` varchar(20)  DEFAULT NULL,
  `labPresent` varchar(10)  DEFAULT NULL,
  `labUmr` varchar(30)  DEFAULT NULL,
  `hasPrinter` tinyint(1)  DEFAULT NULL,
  `nom_groupe_thematique` varchar(50) DEFAULT 'Groupe thematique',
  `nom_groupe_metier` varchar(50) DEFAULT 'Groupe metier',
  `envoi_mail_management_dev` tinyint(1) DEFAULT NULL,
  `emailGuest1` varchar(45)  DEFAULT NULL,
  `emailGuest2` varchar(45)  DEFAULT NULL,
  `emailGuest3` varchar(45)  DEFAULT NULL,
  `emailGuest4` varchar(45)  DEFAULT NULL,
  `emailGuest5` varchar(45)  DEFAULT NULL,
  `test` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `nom_UNIQUE` (`nom`)
);


Insert into `configurations`(`nom`, `mode_install`, `mode_debug`, `use_ldap`, `host_ldap`, `port_ldap`, `authentificationType_ldap`, `baseDn_ldap`, `filter_ldap`, `labName`, `labNameShort`, `labPresent`, `labUmr`, `hasPrinter`, `emailGuest1`, `emailGuest2`, `emailGuest3`) values ('default', '1', '0', '0', '', '', 'xxx', '', '', 'LABONAME', 'LABO', 'du ', '', '0', '', '', '');

-- EMPRUNTS
-- Structure de la table emprunts
ALTER TABLE `emprunts` ADD `site_id` int(11) DEFAULT NULL;

-- Contrainte de la table emprunts
ALTER TABLE `emprunts`
  ADD CONSTRAINT `fk_emprunts_site_id` FOREIGN KEY (`site_id`) REFERENCES `sites` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Transformation des données
update emprunts set site_id = NULL where e_lieu_stockage is NULL;
update emprunts set site_id ="1" where e_lieu_stockage like "B%";
update emprunts set site_id ="2" where e_lieu_stockage like "R%";
update emprunts set site_id ="3" where e_lieu_stockage like "T%";
update emprunts set site_id ="4" where e_lieu_stockage like "C%";

-- Suppression attribut
ALTER TABLE `emprunts` DROP `e_lieu_stockage`;


-- SUIVIS
-- Structure de la table suivis
ALTER TABLE `suivis` ADD `type_suivi_id` int(11) DEFAULT NULL;

-- Contrainte de la table suivis
ALTER TABLE `suivis`
  ADD CONSTRAINT `fk_suivis_type_suivi_id` FOREIGN KEY (`type_suivi_id`) REFERENCES `type_suivis` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Transformation des données
update suivis set type_suivi_id = NULL where type_intervention is NULL;
update suivis set type_suivi_id ="1" where type_intervention like "Etalonnage%";
update suivis set type_suivi_id ="2" where type_intervention like "Maintenance%";

-- Suppression attribut
ALTER TABLE `suivis` DROP `type_intervention`;

Alter table `suivis` Add `type_frequence` VARCHAR(30) DEFAULT NULL;

DROP TABLE IF EXISTS `documents`;
CREATE TABLE IF NOT EXISTS `documents` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type_doc` varchar(20) DEFAULT NULL,
  `description` varchar(100) DEFAULT NULL,
  `chemin` varchar(100) DEFAULT NULL,
  `materiel_id` int(11) DEFAULT NULL,
  `suivi_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_documents_materiel_id` (`materiel_id`),
  KEY `fk_documents_suivi_id` (`suivi_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

ALTER TABLE `documents`
  ADD CONSTRAINT `fk_documents_materiel_id` FOREIGN KEY (`materiel_id`) REFERENCES `materiels` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `fk_documents_suivi_id` FOREIGN KEY (`suivi_id`) REFERENCES `suivis` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;


Insert into type_suivis(id, nom) values (9, 'Panne');
Insert into sites(id, nom) values (9, 'N/A');

ALTER TABLE `suivis` ADD `panne_resolu` tinyint(1) DEFAULT 1;

ALTER TABLE `materiels` ADD `date_fin_garantie` date DEFAULT NULL;
ALTER TABLE `materiels` ADD `duree_garantie` int(10) DEFAULT NULL;
ALTER TABLE `materiels` ADD `unite_duree_garantie` varchar (30) DEFAULT NULL;

ALTER TABLE `configurations` ADD `prix_inventaire_administratif` int( 10 ) DEFAULT '800';

ALTER TABLE `users` ADD `groupe_thematique_id` int(11) DEFAULT NULL;
ALTER TABLE `users`
  ADD CONSTRAINT `fk_users_groupe_thematique_id` FOREIGN KEY (`groupe_thematique_id`) REFERENCES `groupes_thematiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;


COMMIT;
