-- 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) ;