-- version openRecensement 1.0.0 vers version 2.0.0

-- mise a jour de la base mysql pour framewwork om_4.3.0
-- v4.2.0 -> v4.3.0
--
-- ce script permet de mettre à jour une base mysql engine=myisam
-- en version 4.3.0 mais ne change pas le engine de la base en innodb
-- alors qu'une nouvelle base est en engine=innodb lorsque le init.sql
-- est utilisée
--

ALTER TABLE om_droit ALTER COLUMN om_profil DROP DEFAULT;

ALTER TABLE om_utilisateur ALTER COLUMN om_utilisateur DROP DEFAULT;
ALTER TABLE om_utilisateur ALTER COLUMN nom DROP DEFAULT;
ALTER TABLE om_utilisateur ALTER COLUMN email DROP DEFAULT;
ALTER TABLE om_utilisateur ALTER COLUMN login DROP DEFAULT;
ALTER TABLE om_utilisateur ALTER COLUMN pwd DROP DEFAULT;
ALTER TABLE om_utilisateur ALTER COLUMN om_profil DROP DEFAULT;
ALTER TABLE om_utilisateur ALTER COLUMN om_type SET DEFAULT 'DB';

ALTER TABLE om_utilisateur ADD CONSTRAINT om_utilisateur_login_key UNIQUE (login);

ALTER TABLE om_etat ALTER COLUMN titreattribut SET DEFAULT '';
ALTER TABLE om_etat ALTER COLUMN corpsattribut SET DEFAULT '';
ALTER TABLE om_etat ALTER COLUMN footerattribut SET DEFAULT '';
ALTER TABLE om_etat CHANGE sousetat sousetat TEXT NULL;
ALTER TABLE om_lettretype ALTER COLUMN titreattribut SET DEFAULT '';
ALTER TABLE om_lettretype ALTER COLUMN corpsattribut SET DEFAULT '';
ALTER TABLE om_sousetat ALTER COLUMN titreattribut SET DEFAULT '';

UPDATE om_etat SET actif = 1 WHERE actif = 'Oui';
ALTER TABLE om_etat change actif actif boolean;
UPDATE om_sousetat SET actif = 1 WHERE actif = 'Oui';
ALTER TABLE om_sousetat change actif actif boolean;
UPDATE om_lettretype SET actif = 1 WHERE actif = 'Oui';
ALTER TABLE om_lettretype change actif actif boolean;

ALTER TABLE om_profil ALTER COLUMN om_profil DROP DEFAULT;
ALTER TABLE om_widget MODIFY om_profil varchar(2) NOT NULL;

-- changements sur la table inscription pour prise en compte de l evolution de pecoto
ALTER TABLE inscription add column  telephone_fixe varchar(10) default NULL;
ALTER TABLE inscription add column   telephone_portable varchar(10) default NULL;   
ALTER TABLE inscription add column   mail varchar(40) default NULL;

--
-- Gestion des profils non hiérarchiques / Mise à jour OBLIGATOIRE
--
--

ALTER TABLE om_droit CHANGE om_droit om_droit_old varchar(30) NOT NULL;
ALTER TABLE om_droit CHANGE om_profil om_profil_old varchar(2) NOT NULL;

ALTER TABLE om_droit DROP PRIMARY KEY;

ALTER TABLE om_droit ADD COLUMN om_droit integer PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE om_droit ADD COLUMN libelle varchar(100);
ALTER TABLE om_droit ADD COLUMN om_profil integer;

UPDATE om_droit SET libelle=om_droit_old;
UPDATE om_droit SET om_profil=CAST(om_profil_old AS UNSIGNED);
--
ALTER TABLE om_profil CHANGE om_profil om_profil_old varchar(2) NOT NULL;
ALTER TABLE om_profil CHANGE libelle libelle_old varchar(30) NOT NULL;

ALTER TABLE om_profil DROP PRIMARY KEY;
ALTER TABLE om_profil ADD COLUMN om_profil integer PRIMARY KEY AUTO_INCREMENT NOT NULL;
ALTER TABLE om_profil ADD COLUMN libelle varchar(100);
ALTER TABLE om_profil ADD COLUMN hierarchie integer NOT NULL DEFAULT 0 ;

UPDATE om_profil SET libelle=libelle_old;
UPDATE om_profil SET hierarchie= CAST(om_profil_old AS UNSIGNED);
UPDATE om_droit SET om_profil=(select om_profil.om_profil from om_profil where hierarchie= CAST(om_droit.om_profil_old AS UNSIGNED));
--
ALTER TABLE om_utilisateur CHANGE om_profil om_profil_old integer(4) NOT NULL;
ALTER TABLE om_utilisateur ADD COLUMN om_profil integer;

UPDATE om_utilisateur SET om_profil=(select om_profil.om_profil from om_profil where hierarchie= CAST(om_utilisateur.om_profil_old AS UNSIGNED));
--
ALTER TABLE om_widget CHANGE om_profil om_profil_old varchar(2) NOT NULL;
ALTER TABLE om_widget ADD COLUMN om_profil integer;

UPDATE om_widget SET om_profil=(select om_profil.om_profil from om_profil where hierarchie= CAST(om_widget.om_profil_old AS UNSIGNED));
--
ALTER TABLE om_droit MODIFY libelle varchar(100) NOT NULL;
ALTER TABLE om_droit MODIFY om_profil integer NOT NULL;
ALTER TABLE om_profil MODIFY libelle varchar(100) NOT NULL;
ALTER TABLE om_utilisateur MODIFY om_profil integer NOT NULL;
ALTER TABLE om_widget MODIFY om_profil integer NOT NULL;

ALTER TABLE om_droit DROP COLUMN om_droit_old;
ALTER TABLE om_droit DROP COLUMN om_profil_old;
ALTER TABLE om_profil DROP COLUMN libelle_old;
ALTER TABLE om_profil DROP COLUMN om_profil_old;
ALTER TABLE om_utilisateur DROP COLUMN om_profil_old;
ALTER TABLE om_widget DROP COLUMN om_profil_old;

ALTER TABLE `om_droit` ADD UNIQUE (`libelle` ,`om_profil`);

ALTER TABLE om_utilisateur CHANGE Login login varchar(30) NOT NULL;
ALTER TABLE om_utilisateur CHANGE Pwd pwd varchar(100) NOT NULL;

-- mise a jour nouveau pecoto
ALTER TABLE inscription ADD COLUMN telephone_fixe varchar(10) default NULL after exemption;
ALTER TABLE inscription ADD COLUMN telephone_portable varchar(10) default NULL after telephone_fixe;
ALTER TABLE inscription ADD COLUMN mail varchar(40) default NULL after telephone_portable;
