SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; -- ------------------------------------------------------------------------------------------ -- Augmentation du SMIC (Décret n° 2012-828 du 28 juin 2012) : -- 9.40 euros en valeur horaire (au lieu de 9.22 euros) -- 1425.67 en valeur mensuelle (au lieu de 1398.37) -- Rubrique 1 SMIC -- Rubrique 2905 Forfait apprentissage : (cette valeur ne doit changer qu'une fois par an en janvier) : -- Le cas échéant restauration valeur de janvier 2012 à 1398.37 au lieu de 1425.67 affecté à tort avec script de juin 2012 -- ------------------------------------------------------------------------------------------ UPDATE AFIGPRUB SET TOUV_E = 940 , TPAT_E = 940, T4_E = 142567 WHERE CLERUB = '1' AND (TOUV_E IS NULL OR TOUV_E < 940); UPDATE AFIGPRUB SET PREV_E = 139837 WHERE CLERUB = '2905' AND PREV_E = 142567; Commit; -- ********************************************************************************************************* -- #5953 : Mise à jour indices selon décret n° 2012-853 du 5 juillet 2012 -- ********************************************************************************************************* -- --------------------------------------------------------------------------------------- -- Juillet 2012 : Indice majoré de référence 1% solidarité, rubrique 133 passe à 308 (au lieu de 302) -- --------------------------------------------------------------------------------------- Update AFIGPRUB Set TOUV_E = 30800 Where CLERUB='133' and TOUV_E < 30800; -- ---------------------------------------------------------------------------------------------- -- Juillet 2012 : Rubrique 16 Indemnité de résidence l'indice majoré plancher passe à 312 (au lieu de 306) -- ---------------------------------------------------------------------------------------------- Update AFIGPRUB Set TPAT_E = 31200 Where CLERUB = '16' And TPAT_E < 31200; Commit; DELIMITER $ DROP PROCEDURE IF EXISTS SPINITLOG $ CREATE PROCEDURE SPINITLOG() BEGIN DROP TABLE IF EXISTS AFISPLOGS; CREATE TABLE AFISPLOGS ( ID int(11) NOT NULL auto_increment, MSG VARCHAR(250), DATELOG TIMESTAMP, PRIMARY KEY (`ID`)); END $ DROP PROCEDURE IF EXISTS SPLOG $ CREATE PROCEDURE SPLOG(p_message VARCHAR(250)) BEGIN INSERT INTO AFISPLOGS (MSG, DATELOG) values (p_message, NOW()); END $ DROP FUNCTION IF EXISTS SFGETBRUTMAJ $ CREATE FUNCTION SFGETBRUTMAJ (p_brut INTEGER, p_majore INTEGER) RETURNS INTEGER BEGIN DECLARE v_idbrut INTEGER DEFAULT -1; SELECT id INTO v_idbrut FROM AFIGPBRUTMAJ WHERE BRUT = p_brut AND MAJORE = p_majore ; IF v_idbrut = -1 THEN INSERT INTO AFIGPBRUTMAJ (BRUT,MAJORE,ARCHIVE) VALUES (p_brut, p_majore, 0); SELECT LAST_INSERT_ID() INTO v_idbrut; CALL SPLOG(concat_ws(' ','Creation idbrut=', v_idbrut, ' pour brut=', p_brut, ', majore=', p_majore)); ELSE CALL SPLOG(concat_ws(' ','Recuperation idbrut=' , v_idbrut , ' pour brut=' , p_brut , ', majore=' , p_majore)); END IF; RETURN v_idbrut; END $ DROP PROCEDURE IF EXISTS SPMAJECHELON $ CREATE PROCEDURE SPMAJECHELON(p_brut INTEGER, p_majore_old INTEGER, p_majore_new INTEGER) BEGIN DECLARE v_done INT DEFAULT 0; DECLARE v_idBrutNew INT DEFAULT 0; DECLARE v_idBrutOld INT DEFAULT 0; DECLARE v_idGrille INT DEFAULT 0; DECLARE v_idEchelon INT DEFAULT 0; DECLARE v_nomGrille VARCHAR(64); DECLARE cur_echelon CURSOR FOR select IDGRILLE,ECHELON,IDBRUT,NOM from AFIGPECHELON e, AFIGPBRUTMAJ b, AFIGPGRILLE g Where e.idbrut = b.id and g.id = e.idgrille and b.archive = 0 and b.BRUT = p_brut and b.MAJORE = p_majore_old; DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = 1; SET v_idBrutNew = SFGETBRUTMAJ(p_brut, p_majore_new); OPEN cur_echelon; read_loop: LOOP set v_done = 0; FETCH cur_echelon INTO v_idGrille, v_idEchelon, v_idBrutOld, v_nomGrille; IF v_done THEN LEAVE read_loop; END IF; CALL SPLOG(concat_ws(' ','Traitement afigpechelon grille=', v_nomGrille, ', idgrille=' , v_idGrille , ', idechelon=' , v_idEchelon , ', brut=' , p_brut , ', majore=' , p_majore_old, ', nouveau brut=', v_idBrutNew) ); INSERT INTO AFIGPECHEVT (IDGRILLE,ECHELON,IDBRUTOLD,IDBRUTNEW,DATEEFFET) SELECT v_idGrille, v_idEchelon, v_idBrutOld, v_idBrutNew, '2012-07-01' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM AFIGPECHEVT WHERE IDGRILLE = v_idGrille AND ECHELON = v_idEchelon AND IDBRUTOLD = v_idBrutOld ); UPDATE AFIGPECHELON SET IDBRUT = v_idBrutNew WHERE IDGRILLE = v_idGrille AND ECHELON = v_idEchelon AND IDBRUT = v_idBrutOld; UPDATE AFIGPBRUTMAJ SET ARCHIVE = 1 WHERE ID = v_idBrutOld; END LOOP; CLOSE cur_echelon; END $ DROP PROCEDURE IF EXISTS SPMAJSITUATION $ CREATE PROCEDURE SPMAJSITUATION(p_brut INTEGER, p_majore_old INTEGER, p_majore_new INTEGER) BEGIN DECLARE v_done INT DEFAULT 0; DECLARE v_idBrutNew INT DEFAULT 0; DECLARE v_idBrutOld INT DEFAULT 0; DECLARE v_idSitu INT DEFAULT 0; DECLARE v_idEvtSituL INT DEFAULT 0; DECLARE cur_situ CURSOR FOR select s.ID, s.idbrut from AFIGPSITU s, AFIGPBRUTMAJ b, AFIGPGRILLE g Where s.idbrut = b.id and s.archive = 0 and s.idgrille = g.id and g.archive = 0 and b.BRUT = p_brut and b.MAJORE = p_majore_old; DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = 1; /* Récupération ou création nouveau idbrut */ SET v_idBrutNew = SFGETBRUTMAJ(p_brut, p_majore_new); /* Boucle sur select */ OPEN cur_situ; read_loop: LOOP set v_done = 0; FETCH cur_situ INTO v_idSitu, v_idBrutOld; IF v_done THEN LEAVE read_loop; END IF; CALL SPLOG(concat_ws(' ','Traitement afigpsitu id=' , v_idSitu, ' remplacement idbrut=', v_idBrutOld, ' par ', v_idBrutNew) ); /* Création evt de situation */ SET v_idEvtSituL = SFADDEVSITUL(v_idSitu, "IND", "2012-07-01", "Augmentation 1er juillet 2012"); CALL SPADDEVSITU( v_idEvtSituL, "afigpsitu", "afigpbrutmaj.brut", p_brut, p_brut, "Indice brut") ; CALL SPADDEVSITU( v_idEvtSituL, "afigpsitu", "afigpbrutmaj.majore", p_majore_old, p_majore_new, "Indice majoré") ; /* Mise à jour de la situation */ UPDATE AFIGPSITU SET IDBRUT = v_idBrutNew WHERE ID = v_idSitu; END LOOP; CLOSE cur_situ; END $ DROP FUNCTION IF EXISTS SFADDEVSITUL $ CREATE FUNCTION SFADDEVSITUL(p_idSitu INTEGER, p_IdentCar VARCHAR(3), p_DateDeb DATE, p_Libelle VARCHAR(250)) RETURNS INTEGER BEGIN DECLARE v_id INTEGER DEFAULT -1; INSERT INTO AFIGPEVSITUL (IDSITU, IDEVENTCAR, DATEDEBUT, COMMENTAIRE, ARCHIVE ) VALUES (p_idSitu, p_IdentCar, p_DateDeb, p_Libelle, 0); SELECT LAST_INSERT_ID() INTO v_id; RETURN v_id; END $ DROP PROCEDURE IF EXISTS SPADDEVSITU $ CREATE PROCEDURE SPADDEVSITU(p_IdEvtSituL INTEGER, p_Home VARCHAR(32), p_Colonne VARCHAR(32), p_AncValeur VARCHAR(250), p_NouvValeur VARCHAR(250), p_Libelle VARCHAR(120) ) BEGIN INSERT INTO AFIGPEVSITU (IDEV, HOME, COLONNE, ANCVALEUR, NOUVALEUR, LIBELLE) VALUES (p_IdEvtSituL, p_Home, p_Colonne, p_AncValeur, p_NouvValeur, p_Libelle); END $ DROP PROCEDURE IF EXISTS SPMAMAJORE $ CREATE PROCEDURE SPMAMAJORE(p_brutDebut INTEGER, p_brutFin INTEGER, p_majore_old INTEGER, p_majore_new INTEGER) BEGIN DECLARE v_brut INTEGER; SET v_brut = p_brutDebut; WHILE v_brut <= p_brutFin DO CALL SPLOG(concat_ws(' ','Debut mise a jour indice majore brut=', v_brut, ', majore ancien=', p_majore_old, ', majore nouveau=', p_majore_new )); CALL SPMAJECHELON(v_brut, p_majore_old, p_majore_new); CALL SPMAJSITUATION(v_brut, p_majore_old, p_majore_new); SET v_brut = v_brut + 1; END WHILE; END $ DELIMITER ; INSERT INTO AFIGPEVENTCAR (ID, LIBELLE) SELECT 'IND','Reclassement indiciaire' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM AFIGPEVENTCAR WHERE ID = 'IND'); CALL SPINITLOG; CALL SPMAMAJORE(244, 297, 302, 308); CALL SPMAMAJORE(295, 298, 303, 309); CALL SPMAMAJORE(299, 301, 304, 310); CALL SPMAMAJORE(302, 306, 305, 311); CALL SPMAMAJORE(307, 317, 306, 312); CALL SPMAMAJORE(318, 321, 307, 313); CALL SPMAMAJORE(322, 323, 308, 314); CALL SPMAMAJORE(324, 324, 309, 314); CALL SPMAMAJORE(325, 325, 310, 314); CALL SPMAMAJORE(326, 327, 311, 315); CALL SPMAMAJORE(328, 328, 312, 315); CALL SPMAMAJORE(329, 329, 313, 316); CALL SPMAMAJORE(330, 331, 314, 316); CALL SPMAMAJORE(332, 332, 315, 316); Commit; -- --------------------------------------------------------------------------------------------------------------------------------------------------- -- Met en archive les événements liés à un changement d'indice brut qui ont une ancienne valeur à zéro ou une nouvelle valeur à zéro -- --------------------------------------------------------------------------------------------------------------------------------------------------- UPDATE AFIGPEVSITUL SET ARCHIVE = 1 WHERE ARCHIVE = 0 AND ID IN (SELECT IDEV FROM AFIGPEVSITU WHERE COLONNE = 'afigpbrutmaj.brut' AND (ANCVALEUR = 0 OR NOUVALEUR = 0 ) ); commit; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;