You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

163 lines
5.7 KiB

-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;
CREATE TEMP TABLE w_dbsetup AS
SELECT
oid,
code,
texte,
description,
is_cti,
gravite_id
FROM rh.t_expert_controle
WHERE is_cti = '1'
ORDER BY code LIMIT 0
;
-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
oid,
code,
texte,
description,
is_cti,
gravite_id
)
VALUES
(0, '', '', '', '1', 1),
(1, 'CTI_NIV1_C000', 'Présence de C000', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_CAD_EMP_NR', 'Cadre d''emploi non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_CAT_STAT_NR', 'Catégorie statutaire non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_CE_NR', 'Code emploi non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_COD_POST_NR', 'Code postal non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_COM_PAR_NR', 'Commission paritaire non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_CSP_NR', 'Catégorie socio-professionnelle non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_CTRID_NULL', 'Contrat ID null en paie', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_DAT_NAIS_NR', 'Date de naissance non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_DTEDEB_NR', 'Date de début de contrat non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_DTEFIN_NR', 'Date de fin de contrat non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_FIL_NR', 'Filière non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_GRI_NR', 'Grille non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_GROGRI_NR', 'Groupe Grille non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_GRO_COT_NR', 'Groupe de cotisant non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_MOTDEB_NR', 'Motif de début non renseigné', 'Contrats sans motif de début.', '1', '9', 'A1'),
(1, 'CTI_NIV1_MOTFIN_NR', 'Motif de Fin non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_NAT_NR', 'Nationalité non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_QUAL_NR', 'Qualification non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_SEX_NR', 'Sexe non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_SPE_NR', 'Spécialité non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_SRV_NR', 'Service non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_STT_NR', 'Statut non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_TC_NR', 'Type de contrat non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_TTT_NR', 'Type temps travail non renseigné', '', '1', '9', 'A1'),
(1, 'CTI_NIV1_UNI_FONC_NR', 'Unité fonctionnelle non renseignée', '', '1', '9', 'A1'),
(1, 'CTI_NIV2_C000_BRUT', 'Présence C000 BRUT', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_C000_COT_PAT', 'Présence C000 Cotisation Patronale', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_C000_COT_SAL', 'Présence C000 Cotisation Salariale', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_C000_H_CONTRAT', 'Présence C000 Heures Contrat', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_C000_H_PAYEES', 'Présence C000 Heures Payées', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_C000_H_TRAVAILLEES', 'Présence C000 Heures Travaillées', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_C000_MASSE_SALARIALE', 'Présence C000 Masse Salariale', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_C000_NET_A_PAYE', 'Présence C000 Net A Payer Salarié', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_C000_NET_IMP', 'Présence C000 Net Imposable Salarié', '', '1', '5', 'A1'),
(1, 'CTI_NIV2_HCSORTI', 'Salarié avec plus d''une paie avec heures contrat après sortie de l''établissement', '', '1', '5', 'A1'),
(1, 'CTI_NIV3_PRESENCE_PAIE_PAS_PLANNING', 'Liste des salariés présents en paie mais pas au planning', 'Liste des salariés présents en paie mais pas au planning', '1', 1, 'A2'),
(1, 'CTI_NIV3_PRESENCE_PLANNING_PAS_PAIE', 'Liste des personnes présentes au planning mais pas en planning', 'Liste des personnes présentes au planning mais pas en planning', '1', 1, 'A2')
;
-- 3/3 : Màj de la table iCTI
UPDATE rh.t_expert_controle SET
code = w_dbsetup.code,
texte = w_dbsetup.texte,
description = w_dbsetup.description,
is_cti = w_dbsetup.is_cti,
gravite_id = w_dbsetup.gravite_id
FROM w_dbsetup
WHERE 1=1
AND w_dbsetup.oid = 0
AND rh.t_expert_controle.oid = w_dbsetup.oid
AND
(
t_expert_controle.code IS DISTINCT FROM w_dbsetup.code OR
t_expert_controle.texte IS DISTINCT FROM w_dbsetup.texte OR
t_expert_controle.description IS DISTINCT FROM w_dbsetup.description OR
t_expert_controle.is_cti IS DISTINCT FROM w_dbsetup.is_cti OR
t_expert_controle.gravite_id IS DISTINCT FROM w_dbsetup.gravite_id
)
;
UPDATE rh.t_expert_controle SET
code = w_dbsetup.code,
texte = w_dbsetup.texte,
description = w_dbsetup.description,
is_cti = w_dbsetup.is_cti,
gravite_id = w_dbsetup.gravite_id
FROM w_dbsetup
WHERE 1=1
AND w_dbsetup.oid <> 0
AND rh.t_expert_controle.code = w_dbsetup.code
AND
(
t_expert_controle.texte IS DISTINCT FROM w_dbsetup.texte OR
t_expert_controle.description IS DISTINCT FROM w_dbsetup.description OR
t_expert_controle.is_cti IS DISTINCT FROM w_dbsetup.is_cti OR
t_expert_controle.gravite_id IS DISTINCT FROM w_dbsetup.gravite_id
)
;
INSERT INTO rh.t_expert_controle(
oid,
code,
texte,
description,
is_active,
was_active,
is_hide,
alerte_id,
is_cti,
gravite_id
)
SELECT
oid,
code,
texte,
description,
'1' AS is_active,
'0' AS is_hide,
0::bigint AS alerte_id,
is_cti,
gravite_id,
date(date_trunc('year',now())) AS date_validite_debut
FROM w_dbsetup
WHERE 1=1
AND w_dbsetup.oid = 0
AND w_dbsetup.oid NOT IN (SELECT oid FROM rh.t_expert_controle)
;
INSERT INTO rh.t_expert_controle(
code,
texte,
description,
is_active,
is_hide,
alerte_id,
is_cti,
gravite_id
)
SELECT
code,
texte,
description,
'1' AS is_active,
'0' AS was_active,
'0' AS is_hide,
0::bigint AS alerte_id,
is_cti,
gravite_id
FROM w_dbsetup
WHERE 1=1
AND w_dbsetup.oid <> 0
AND w_dbsetup.code NOT IN (SELECT code FROM rh.t_expert_controle)
;