<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<ROOT>
|
|
<NODE name="COPIE" label="REPLICATIONS">
|
|
<!--
|
|
Noeud XML appelé avant de faire l'import RH-Paie de chaque prestataire.
|
|
Permet de :
|
|
- synchroniser le schéma SQL dédié au PRESTATAIRE (rh_prestataire) avec le schéma SQL GLOBAL (rh) potentiellement mis à jour,
|
|
- remonter dans PRESTATAIRE le paramétrage effectué dans GLOBAL pour que l'import PRESTATAIRE se passe bien.
|
|
-->
|
|
<NODE label="Réplication du schéma rh">
|
|
<sqlcmd><![CDATA[
|
|
|
|
-- rh_ori correspond en temps normal au schéma rh.
|
|
-- le schéma rh_prestataire a été renommé rh.
|
|
SELECT base.cti_synchronize_schema('rh_ori', 'rh');
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Réplication du paramétrage">
|
|
<sqlcmd><![CDATA[
|
|
|
|
-- Réplication du paramétrage t_divers.
|
|
TRUNCATE rh.t_divers
|
|
;
|
|
|
|
INSERT INTO rh.t_divers(code, texte, valeur, description, valeur_date)
|
|
SELECT code, texte, valeur, description, valeur_date
|
|
FROM rh_ori.t_divers
|
|
;
|
|
|
|
-- On réplique le paramétrage des rubriques dans le schéma du prestataire.
|
|
UPDATE rh.t_rubriques
|
|
SET
|
|
c_avantage_nature = rub_ori.c_avantage_nature,
|
|
c_base = rub_ori.c_base,
|
|
c_brut = rub_ori.c_brut,
|
|
c_cotisation_patronale = rub_ori.c_cotisation_patronale,
|
|
c_cotisation_salarie = rub_ori.c_cotisation_salarie,
|
|
c_frais_imposables = rub_ori.c_frais_imposables,
|
|
c_heures_contrat = rub_ori.c_heures_contrat,
|
|
c_heures_payees = rub_ori.c_heures_payees,
|
|
c_heures_travaillees = rub_ori.c_heures_travaillees,
|
|
c_masse_salariale = rub_ori.c_masse_salariale,
|
|
c_masse_salariale_provisionnee = rub_ori.c_masse_salariale_provisionnee,
|
|
c_montant_provisions = rub_ori.c_montant_provisions,
|
|
c_net_a_payer = rub_ori.c_net_a_payer,
|
|
c_net_imposable = rub_ori.c_net_imposable,
|
|
c_nombre = rub_ori.c_nombre,
|
|
c_nombre_provisions = rub_ori.c_nombre_provisions,
|
|
c_od_net_patronale = rub_ori.c_od_net_patronale,
|
|
c_od_net_salarie = rub_ori.c_od_net_salarie,
|
|
code_calcul = rub_ori.code_calcul,
|
|
coefficient = rub_ori.coefficient,
|
|
coefficient_base = rub_ori.coefficient_base,
|
|
coefficient_nombre = rub_ori.coefficient_nombre,
|
|
coefficient_txp = rub_ori.coefficient_txp,
|
|
coefficient_txs = rub_ori.coefficient_txs,
|
|
heures_payees = rub_ori.heures_payees,
|
|
p_avantage_nature = rub_ori.p_avantage_nature,
|
|
p_base = rub_ori.p_base,
|
|
p_brut = rub_ori.p_brut,
|
|
p_cotisation_patronale = rub_ori.p_cotisation_patronale,
|
|
p_cotisation_salarie = rub_ori.p_cotisation_salarie,
|
|
p_cumul = rub_ori.p_cumul,
|
|
p_detail = rub_ori.p_detail,
|
|
p_frais_imposables = rub_ori.p_frais_imposables,
|
|
p_heures_contrat = rub_ori.p_heures_contrat,
|
|
p_heures_payees = rub_ori.p_heures_payees,
|
|
p_heures_travaillees = rub_ori.p_heures_travaillees,
|
|
p_masse_salariale = rub_ori.p_masse_salariale,
|
|
p_masse_salariale_provisionnee = rub_ori.p_masse_salariale_provisionnee,
|
|
p_montant_provisions = rub_ori.p_montant_provisions,
|
|
p_net_a_payer = rub_ori.p_net_a_payer,
|
|
p_net_imposable = rub_ori.p_net_imposable,
|
|
p_nombre = rub_ori.p_nombre,
|
|
p_nombre_provisions = rub_ori.p_nombre_provisions,
|
|
p_od_net_patronale = rub_ori.p_od_net_patronale,
|
|
p_od_net_salarie = rub_ori.p_od_net_salarie,
|
|
s_avantage_nature = rub_ori.s_avantage_nature,
|
|
s_base = rub_ori.s_base,
|
|
s_brut = rub_ori.s_brut,
|
|
s_cotisation_patronale = rub_ori.s_cotisation_patronale,
|
|
s_cotisation_salarie = rub_ori.s_cotisation_salarie,
|
|
s_frais_imposables = rub_ori.s_frais_imposables,
|
|
s_heures_contrat = rub_ori.s_heures_contrat,
|
|
s_heures_payees = rub_ori.s_heures_payees,
|
|
s_heures_travaillees = rub_ori.s_heures_travaillees,
|
|
s_masse_salariale = rub_ori.s_masse_salariale,
|
|
s_masse_salariale_provisionnee = rub_ori.s_masse_salariale_provisionnee,
|
|
s_montant_provisions = rub_ori.s_montant_provisions,
|
|
s_net_a_payer = rub_ori.s_net_a_payer,
|
|
s_net_imposable = rub_ori.s_net_imposable,
|
|
s_nombre = rub_ori.s_nombre,
|
|
s_nombre_provisions = rub_ori.s_nombre_provisions,
|
|
s_od_net_patronale = rub_ori.s_od_net_patronale,
|
|
s_od_net_salarie = rub_ori.s_od_net_salarie,
|
|
unite = rub_ori.unite,
|
|
user_modified = rub_ori.user_modified,
|
|
texte_court = rub_ori.texte_court,
|
|
texte = rub_ori.texte
|
|
FROM rh_ori.t_rubriques AS rub_ori
|
|
WHERE 1=1
|
|
AND t_rubriques.oid + fp('idx')::bigint = rub_ori.oid
|
|
AND (1!=1
|
|
OR t_rubriques.c_avantage_nature IS DISTINCT FROM rub_ori.c_avantage_nature
|
|
OR t_rubriques.c_base IS DISTINCT FROM rub_ori.c_base
|
|
OR t_rubriques.c_brut IS DISTINCT FROM rub_ori.c_brut
|
|
OR t_rubriques.c_cotisation_patronale IS DISTINCT FROM rub_ori.c_cotisation_patronale
|
|
OR t_rubriques.c_cotisation_salarie IS DISTINCT FROM rub_ori.c_cotisation_salarie
|
|
OR t_rubriques.c_frais_imposables IS DISTINCT FROM rub_ori.c_frais_imposables
|
|
OR t_rubriques.c_heures_contrat IS DISTINCT FROM rub_ori.c_heures_contrat
|
|
OR t_rubriques.c_heures_payees IS DISTINCT FROM rub_ori.c_heures_payees
|
|
OR t_rubriques.c_heures_travaillees IS DISTINCT FROM rub_ori.c_heures_travaillees
|
|
OR t_rubriques.c_masse_salariale IS DISTINCT FROM rub_ori.c_masse_salariale
|
|
OR t_rubriques.c_masse_salariale_provisionnee IS DISTINCT FROM rub_ori.c_masse_salariale_provisionnee
|
|
OR t_rubriques.c_montant_provisions IS DISTINCT FROM rub_ori.c_montant_provisions
|
|
OR t_rubriques.c_net_a_payer IS DISTINCT FROM rub_ori.c_net_a_payer
|
|
OR t_rubriques.c_net_imposable IS DISTINCT FROM rub_ori.c_net_imposable
|
|
OR t_rubriques.c_nombre IS DISTINCT FROM rub_ori.c_nombre
|
|
OR t_rubriques.c_nombre_provisions IS DISTINCT FROM rub_ori.c_nombre_provisions
|
|
OR t_rubriques.c_od_net_patronale IS DISTINCT FROM rub_ori.c_od_net_patronale
|
|
OR t_rubriques.c_od_net_salarie IS DISTINCT FROM rub_ori.c_od_net_salarie
|
|
OR t_rubriques.code_calcul IS DISTINCT FROM rub_ori.code_calcul
|
|
OR t_rubriques.coefficient IS DISTINCT FROM rub_ori.coefficient
|
|
OR t_rubriques.coefficient_base IS DISTINCT FROM rub_ori.coefficient_base
|
|
OR t_rubriques.coefficient_nombre IS DISTINCT FROM rub_ori.coefficient_nombre
|
|
OR t_rubriques.coefficient_txp IS DISTINCT FROM rub_ori.coefficient_txp
|
|
OR t_rubriques.coefficient_txs IS DISTINCT FROM rub_ori.coefficient_txs
|
|
OR t_rubriques.heures_payees IS DISTINCT FROM rub_ori.heures_payees
|
|
OR t_rubriques.p_avantage_nature IS DISTINCT FROM rub_ori.p_avantage_nature
|
|
OR t_rubriques.p_base IS DISTINCT FROM rub_ori.p_base
|
|
OR t_rubriques.p_brut IS DISTINCT FROM rub_ori.p_brut
|
|
OR t_rubriques.p_cotisation_patronale IS DISTINCT FROM rub_ori.p_cotisation_patronale
|
|
OR t_rubriques.p_cotisation_salarie IS DISTINCT FROM rub_ori.p_cotisation_salarie
|
|
OR t_rubriques.p_cumul IS DISTINCT FROM rub_ori.p_cumul
|
|
OR t_rubriques.p_detail IS DISTINCT FROM rub_ori.p_detail
|
|
OR t_rubriques.p_frais_imposables IS DISTINCT FROM rub_ori.p_frais_imposables
|
|
OR t_rubriques.p_heures_contrat IS DISTINCT FROM rub_ori.p_heures_contrat
|
|
OR t_rubriques.p_heures_payees IS DISTINCT FROM rub_ori.p_heures_payees
|
|
OR t_rubriques.p_heures_travaillees IS DISTINCT FROM rub_ori.p_heures_travaillees
|
|
OR t_rubriques.p_masse_salariale IS DISTINCT FROM rub_ori.p_masse_salariale
|
|
OR t_rubriques.p_masse_salariale_provisionnee IS DISTINCT FROM rub_ori.p_masse_salariale_provisionnee
|
|
OR t_rubriques.p_montant_provisions IS DISTINCT FROM rub_ori.p_montant_provisions
|
|
OR t_rubriques.p_net_a_payer IS DISTINCT FROM rub_ori.p_net_a_payer
|
|
OR t_rubriques.p_net_imposable IS DISTINCT FROM rub_ori.p_net_imposable
|
|
OR t_rubriques.p_nombre IS DISTINCT FROM rub_ori.p_nombre
|
|
OR t_rubriques.p_nombre_provisions IS DISTINCT FROM rub_ori.p_nombre_provisions
|
|
OR t_rubriques.p_od_net_patronale IS DISTINCT FROM rub_ori.p_od_net_patronale
|
|
OR t_rubriques.p_od_net_salarie IS DISTINCT FROM rub_ori.p_od_net_salarie
|
|
OR t_rubriques.s_avantage_nature IS DISTINCT FROM rub_ori.s_avantage_nature
|
|
OR t_rubriques.s_base IS DISTINCT FROM rub_ori.s_base
|
|
OR t_rubriques.s_brut IS DISTINCT FROM rub_ori.s_brut
|
|
OR t_rubriques.s_cotisation_patronale IS DISTINCT FROM rub_ori.s_cotisation_patronale
|
|
OR t_rubriques.s_cotisation_salarie IS DISTINCT FROM rub_ori.s_cotisation_salarie
|
|
OR t_rubriques.s_frais_imposables IS DISTINCT FROM rub_ori.s_frais_imposables
|
|
OR t_rubriques.s_heures_contrat IS DISTINCT FROM rub_ori.s_heures_contrat
|
|
OR t_rubriques.s_heures_payees IS DISTINCT FROM rub_ori.s_heures_payees
|
|
OR t_rubriques.s_heures_travaillees IS DISTINCT FROM rub_ori.s_heures_travaillees
|
|
OR t_rubriques.s_masse_salariale IS DISTINCT FROM rub_ori.s_masse_salariale
|
|
OR t_rubriques.s_masse_salariale_provisionnee IS DISTINCT FROM rub_ori.s_masse_salariale_provisionnee
|
|
OR t_rubriques.s_montant_provisions IS DISTINCT FROM rub_ori.s_montant_provisions
|
|
OR t_rubriques.s_net_a_payer IS DISTINCT FROM rub_ori.s_net_a_payer
|
|
OR t_rubriques.s_net_imposable IS DISTINCT FROM rub_ori.s_net_imposable
|
|
OR t_rubriques.s_nombre IS DISTINCT FROM rub_ori.s_nombre
|
|
OR t_rubriques.s_nombre_provisions IS DISTINCT FROM rub_ori.s_nombre_provisions
|
|
OR t_rubriques.s_od_net_patronale IS DISTINCT FROM rub_ori.s_od_net_patronale
|
|
OR t_rubriques.s_od_net_salarie IS DISTINCT FROM rub_ori.s_od_net_salarie
|
|
OR t_rubriques.unite IS DISTINCT FROM rub_ori.unite
|
|
OR t_rubriques.user_modified IS DISTINCT FROM rub_ori.user_modified
|
|
OR t_rubriques.texte_court IS DISTINCT FROM rub_ori.texte_court
|
|
OR t_rubriques.texte IS DISTINCT FROM rub_ori.texte
|
|
)
|
|
;
|
|
|
|
-- On réplique le paramétrage des entreprises/établissements dans le schéma du prestataire.
|
|
UPDATE rh.t_entreprises SET
|
|
planning_code = ent_ori.planning_code
|
|
FROM rh_ori.t_entreprises AS ent_ori
|
|
WHERE 1=1
|
|
AND t_entreprises.oid + fp('idx')::bigint = ent_ori.oid
|
|
AND t_entreprises.planning_code IS DISTINCT FROM ent_ori.planning_code
|
|
;
|
|
|
|
UPDATE rh.t_etablissements SET
|
|
planning_code = ets_ori.planning_code
|
|
FROM rh_ori.t_etablissements AS ets_ori
|
|
WHERE 1=1
|
|
AND t_etablissements.oid + fp('idx')::bigint = ets_ori.oid
|
|
AND t_etablissements.planning_code IS DISTINCT FROM ets_ori.planning_code
|
|
;
|
|
|
|
-- Réplication de t_listes_tables.
|
|
TRUNCATE rh.t_listes_tables
|
|
;
|
|
|
|
INSERT INTO rh.t_listes_tables(oid, name, texte, select_cmd, code)
|
|
SELECT oid, name, texte, select_cmd, code
|
|
FROM rh_ori.t_listes_tables
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
</NODE>
|
|
<NODE name="INIT" label="INITIALISATIONS">
|
|
<NODE name="INIT" type="common" />
|
|
<NODE label="Tables de paramètres.">
|
|
<sqlcmd><![CDATA[
|
|
|
|
-- rh correspond au schéma habituel rh.
|
|
-- rh_src correspond au schéma du prestataire.
|
|
|
|
-- Màj des Entreprises
|
|
DELETE FROM rh.t_entreprises
|
|
WHERE true
|
|
AND oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
AND oid > 0
|
|
;
|
|
INSERT INTO rh.t_entreprises(
|
|
oid,
|
|
code_original,
|
|
code,
|
|
texte,
|
|
texte_court,
|
|
planning_code,
|
|
siren)
|
|
SELECT
|
|
oid + fp('idx')::bigint,
|
|
fp('idc')||code_original,
|
|
fp('idc')||code,
|
|
texte,
|
|
texte_court,
|
|
planning_code,
|
|
siren
|
|
FROM rh_src.t_entreprises
|
|
WHERE oid > 0
|
|
;
|
|
|
|
-- Màj des Etablissements. NE PAS SUPPRIMER car paramétrage associé.
|
|
-- DELETE FROM rh.t_etablissements
|
|
-- WHERE true
|
|
-- AND oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
-- AND oid > 0
|
|
-- ;
|
|
INSERT INTO rh.t_etablissements(
|
|
oid,
|
|
code_original,
|
|
code,
|
|
texte,
|
|
texte_court,
|
|
entreprise_id,
|
|
base_calcul_etp,
|
|
mode_calcul_etp_paye,
|
|
planning_code,
|
|
siret)
|
|
SELECT
|
|
oid + fp('idx')::bigint,
|
|
fp('idc')||code_original,
|
|
fp('idc')||code,
|
|
texte,
|
|
texte_court,
|
|
entreprise_id + fp('idx')::bigint,
|
|
base_calcul_etp,
|
|
mode_calcul_etp_paye,
|
|
planning_code,
|
|
siret
|
|
FROM rh_src.t_etablissements
|
|
WHERE true
|
|
and oid > 0
|
|
and oid + fp('idx')::bigint not in (select oid from rh.t_etablissements group by 1)
|
|
;
|
|
|
|
-- Màj du siret.
|
|
UPDATE rh.t_etablissements SET
|
|
siret = src.siret
|
|
FROM rh_src.t_etablissements as src
|
|
WHERE 1=1
|
|
and t_etablissements.oid = src.oid + fp('idx')::bigint
|
|
and t_etablissements.siret is distinct from src.siret
|
|
;
|
|
|
|
-- Màj des catégories socio-professionnelles (fusion des codes).
|
|
INSERT INTO rh.t_categories_socio_professionnelle (code_original, code, texte, texte_court)
|
|
SELECT src_csp.code_original, src_csp.code, src_csp.texte, src_csp.texte_court
|
|
FROM rh_src.t_categories_socio_professionnelle AS src_csp
|
|
LEFT JOIN rh.t_categories_socio_professionnelle ON t_categories_socio_professionnelle.code_original = src_csp.code_original
|
|
WHERE 1=1
|
|
AND t_categories_socio_professionnelle.oid IS NULL
|
|
AND src_csp.oid > 0
|
|
;
|
|
|
|
-- Màj des groupes cotisants.
|
|
SELECT syncTable3('t_groupes_cotisant')
|
|
;
|
|
|
|
-- Màj Motifs début
|
|
SELECT syncTable3('t_motifs_debut_contrat')
|
|
;
|
|
|
|
-- Màj des motifs de fin de contrat
|
|
SELECT syncTable3('t_motifs_fin_contrat')
|
|
;
|
|
|
|
-- Màj des nationalités
|
|
SELECT syncTable3('t_nationalites')
|
|
;
|
|
|
|
-- Màj des organismes de cotisation
|
|
SELECT syncTable3('t_organismes_cotisation')
|
|
;
|
|
|
|
-- Màj des qualifications
|
|
SELECT syncTable3('t_qualifications')
|
|
;
|
|
|
|
-- Màj des rubriques
|
|
SELECT syncTable3('t_rubriques')
|
|
;
|
|
|
|
-- On réplique le paramétrage des rubriques.
|
|
-- FIXME besoin de refaire descendre le paramétrage ?
|
|
UPDATE rh.t_rubriques
|
|
SET
|
|
c_avantage_nature = rub_src.c_avantage_nature,
|
|
c_base = rub_src.c_base,
|
|
c_brut = rub_src.c_brut,
|
|
c_cotisation_patronale = rub_src.c_cotisation_patronale,
|
|
c_cotisation_salarie = rub_src.c_cotisation_salarie,
|
|
c_frais_imposables = rub_src.c_frais_imposables,
|
|
c_heures_contrat = rub_src.c_heures_contrat,
|
|
c_heures_payees = rub_src.c_heures_payees,
|
|
c_heures_travaillees = rub_src.c_heures_travaillees,
|
|
c_masse_salariale = rub_src.c_masse_salariale,
|
|
c_masse_salariale_provisionnee = rub_src.c_masse_salariale_provisionnee,
|
|
c_montant_provisions = rub_src.c_montant_provisions,
|
|
c_net_a_payer = rub_src.c_net_a_payer,
|
|
c_net_imposable = rub_src.c_net_imposable,
|
|
c_nombre = rub_src.c_nombre,
|
|
c_nombre_provisions = rub_src.c_nombre_provisions,
|
|
c_od_net_patronale = rub_src.c_od_net_patronale,
|
|
c_od_net_salarie = rub_src.c_od_net_salarie,
|
|
code_calcul = rub_src.code_calcul,
|
|
coefficient = rub_src.coefficient,
|
|
coefficient_base = rub_src.coefficient_base,
|
|
coefficient_nombre = rub_src.coefficient_nombre,
|
|
coefficient_txp = rub_src.coefficient_txp,
|
|
coefficient_txs = rub_src.coefficient_txs,
|
|
heures_payees = rub_src.heures_payees,
|
|
p_avantage_nature = rub_src.p_avantage_nature,
|
|
p_base = rub_src.p_base,
|
|
p_brut = rub_src.p_brut,
|
|
p_cotisation_patronale = rub_src.p_cotisation_patronale,
|
|
p_cotisation_salarie = rub_src.p_cotisation_salarie,
|
|
p_cumul = rub_src.p_cumul,
|
|
p_detail = rub_src.p_detail,
|
|
p_frais_imposables = rub_src.p_frais_imposables,
|
|
p_heures_contrat = rub_src.p_heures_contrat,
|
|
p_heures_payees = rub_src.p_heures_payees,
|
|
p_heures_travaillees = rub_src.p_heures_travaillees,
|
|
p_masse_salariale = rub_src.p_masse_salariale,
|
|
p_masse_salariale_provisionnee = rub_src.p_masse_salariale_provisionnee,
|
|
p_montant_provisions = rub_src.p_montant_provisions,
|
|
p_net_a_payer = rub_src.p_net_a_payer,
|
|
p_net_imposable = rub_src.p_net_imposable,
|
|
p_nombre = rub_src.p_nombre,
|
|
p_nombre_provisions = rub_src.p_nombre_provisions,
|
|
p_od_net_patronale = rub_src.p_od_net_patronale,
|
|
p_od_net_salarie = rub_src.p_od_net_salarie,
|
|
s_avantage_nature = rub_src.s_avantage_nature,
|
|
s_base = rub_src.s_base,
|
|
s_brut = rub_src.s_brut,
|
|
s_cotisation_patronale = rub_src.s_cotisation_patronale,
|
|
s_cotisation_salarie = rub_src.s_cotisation_salarie,
|
|
s_frais_imposables = rub_src.s_frais_imposables,
|
|
s_heures_contrat = rub_src.s_heures_contrat,
|
|
s_heures_payees = rub_src.s_heures_payees,
|
|
s_heures_travaillees = rub_src.s_heures_travaillees,
|
|
s_masse_salariale = rub_src.s_masse_salariale,
|
|
s_masse_salariale_provisionnee = rub_src.s_masse_salariale_provisionnee,
|
|
s_montant_provisions = rub_src.s_montant_provisions,
|
|
s_net_a_payer = rub_src.s_net_a_payer,
|
|
s_net_imposable = rub_src.s_net_imposable,
|
|
s_nombre = rub_src.s_nombre,
|
|
s_nombre_provisions = rub_src.s_nombre_provisions,
|
|
s_od_net_patronale = rub_src.s_od_net_patronale,
|
|
s_od_net_salarie = rub_src.s_od_net_salarie,
|
|
unite = rub_src.unite,
|
|
user_modified = rub_src.user_modified
|
|
FROM rh_src.t_rubriques AS rub_src
|
|
WHERE 1=1
|
|
AND t_rubriques.oid = rub_src.oid + fp('idx')::bigint
|
|
AND (1!=1
|
|
OR t_rubriques.c_avantage_nature IS DISTINCT FROM rub_src.c_avantage_nature
|
|
OR t_rubriques.c_base IS DISTINCT FROM rub_src.c_base
|
|
OR t_rubriques.c_brut IS DISTINCT FROM rub_src.c_brut
|
|
OR t_rubriques.c_cotisation_patronale IS DISTINCT FROM rub_src.c_cotisation_patronale
|
|
OR t_rubriques.c_cotisation_salarie IS DISTINCT FROM rub_src.c_cotisation_salarie
|
|
OR t_rubriques.c_frais_imposables IS DISTINCT FROM rub_src.c_frais_imposables
|
|
OR t_rubriques.c_heures_contrat IS DISTINCT FROM rub_src.c_heures_contrat
|
|
OR t_rubriques.c_heures_payees IS DISTINCT FROM rub_src.c_heures_payees
|
|
OR t_rubriques.c_heures_travaillees IS DISTINCT FROM rub_src.c_heures_travaillees
|
|
OR t_rubriques.c_masse_salariale IS DISTINCT FROM rub_src.c_masse_salariale
|
|
OR t_rubriques.c_masse_salariale_provisionnee IS DISTINCT FROM rub_src.c_masse_salariale_provisionnee
|
|
OR t_rubriques.c_montant_provisions IS DISTINCT FROM rub_src.c_montant_provisions
|
|
OR t_rubriques.c_net_a_payer IS DISTINCT FROM rub_src.c_net_a_payer
|
|
OR t_rubriques.c_net_imposable IS DISTINCT FROM rub_src.c_net_imposable
|
|
OR t_rubriques.c_nombre IS DISTINCT FROM rub_src.c_nombre
|
|
OR t_rubriques.c_nombre_provisions IS DISTINCT FROM rub_src.c_nombre_provisions
|
|
OR t_rubriques.c_od_net_patronale IS DISTINCT FROM rub_src.c_od_net_patronale
|
|
OR t_rubriques.c_od_net_salarie IS DISTINCT FROM rub_src.c_od_net_salarie
|
|
OR t_rubriques.code_calcul IS DISTINCT FROM rub_src.code_calcul
|
|
OR t_rubriques.coefficient IS DISTINCT FROM rub_src.coefficient
|
|
OR t_rubriques.coefficient_base IS DISTINCT FROM rub_src.coefficient_base
|
|
OR t_rubriques.coefficient_nombre IS DISTINCT FROM rub_src.coefficient_nombre
|
|
OR t_rubriques.coefficient_txp IS DISTINCT FROM rub_src.coefficient_txp
|
|
OR t_rubriques.coefficient_txs IS DISTINCT FROM rub_src.coefficient_txs
|
|
OR t_rubriques.heures_payees IS DISTINCT FROM rub_src.heures_payees
|
|
OR t_rubriques.p_avantage_nature IS DISTINCT FROM rub_src.p_avantage_nature
|
|
OR t_rubriques.p_base IS DISTINCT FROM rub_src.p_base
|
|
OR t_rubriques.p_brut IS DISTINCT FROM rub_src.p_brut
|
|
OR t_rubriques.p_cotisation_patronale IS DISTINCT FROM rub_src.p_cotisation_patronale
|
|
OR t_rubriques.p_cotisation_salarie IS DISTINCT FROM rub_src.p_cotisation_salarie
|
|
OR t_rubriques.p_cumul IS DISTINCT FROM rub_src.p_cumul
|
|
OR t_rubriques.p_detail IS DISTINCT FROM rub_src.p_detail
|
|
OR t_rubriques.p_frais_imposables IS DISTINCT FROM rub_src.p_frais_imposables
|
|
OR t_rubriques.p_heures_contrat IS DISTINCT FROM rub_src.p_heures_contrat
|
|
OR t_rubriques.p_heures_payees IS DISTINCT FROM rub_src.p_heures_payees
|
|
OR t_rubriques.p_heures_travaillees IS DISTINCT FROM rub_src.p_heures_travaillees
|
|
OR t_rubriques.p_masse_salariale IS DISTINCT FROM rub_src.p_masse_salariale
|
|
OR t_rubriques.p_masse_salariale_provisionnee IS DISTINCT FROM rub_src.p_masse_salariale_provisionnee
|
|
OR t_rubriques.p_montant_provisions IS DISTINCT FROM rub_src.p_montant_provisions
|
|
OR t_rubriques.p_net_a_payer IS DISTINCT FROM rub_src.p_net_a_payer
|
|
OR t_rubriques.p_net_imposable IS DISTINCT FROM rub_src.p_net_imposable
|
|
OR t_rubriques.p_nombre IS DISTINCT FROM rub_src.p_nombre
|
|
OR t_rubriques.p_nombre_provisions IS DISTINCT FROM rub_src.p_nombre_provisions
|
|
OR t_rubriques.p_od_net_patronale IS DISTINCT FROM rub_src.p_od_net_patronale
|
|
OR t_rubriques.p_od_net_salarie IS DISTINCT FROM rub_src.p_od_net_salarie
|
|
OR t_rubriques.s_avantage_nature IS DISTINCT FROM rub_src.s_avantage_nature
|
|
OR t_rubriques.s_base IS DISTINCT FROM rub_src.s_base
|
|
OR t_rubriques.s_brut IS DISTINCT FROM rub_src.s_brut
|
|
OR t_rubriques.s_cotisation_patronale IS DISTINCT FROM rub_src.s_cotisation_patronale
|
|
OR t_rubriques.s_cotisation_salarie IS DISTINCT FROM rub_src.s_cotisation_salarie
|
|
OR t_rubriques.s_frais_imposables IS DISTINCT FROM rub_src.s_frais_imposables
|
|
OR t_rubriques.s_heures_contrat IS DISTINCT FROM rub_src.s_heures_contrat
|
|
OR t_rubriques.s_heures_payees IS DISTINCT FROM rub_src.s_heures_payees
|
|
OR t_rubriques.s_heures_travaillees IS DISTINCT FROM rub_src.s_heures_travaillees
|
|
OR t_rubriques.s_masse_salariale IS DISTINCT FROM rub_src.s_masse_salariale
|
|
OR t_rubriques.s_masse_salariale_provisionnee IS DISTINCT FROM rub_src.s_masse_salariale_provisionnee
|
|
OR t_rubriques.s_montant_provisions IS DISTINCT FROM rub_src.s_montant_provisions
|
|
OR t_rubriques.s_net_a_payer IS DISTINCT FROM rub_src.s_net_a_payer
|
|
OR t_rubriques.s_net_imposable IS DISTINCT FROM rub_src.s_net_imposable
|
|
OR t_rubriques.s_nombre IS DISTINCT FROM rub_src.s_nombre
|
|
OR t_rubriques.s_nombre_provisions IS DISTINCT FROM rub_src.s_nombre_provisions
|
|
OR t_rubriques.s_od_net_patronale IS DISTINCT FROM rub_src.s_od_net_patronale
|
|
OR t_rubriques.s_od_net_salarie IS DISTINCT FROM rub_src.s_od_net_salarie
|
|
OR t_rubriques.unite IS DISTINCT FROM rub_src.unite
|
|
OR t_rubriques.user_modified IS DISTINCT FROM rub_src.user_modified)
|
|
;
|
|
|
|
-- Màj comptes
|
|
SELECT syncTable3('t_compte')
|
|
;
|
|
|
|
-- Màj des situations de famille
|
|
SELECT syncTable3('t_situations_famille')
|
|
;
|
|
|
|
-- Màj des types de contrat
|
|
SELECT syncTable3('t_types_contrat')
|
|
;
|
|
|
|
-- Màj des statuts
|
|
SELECT syncTable3('t_statuts')
|
|
;
|
|
|
|
-- Màj des types de temps de travail
|
|
SELECT syncTable3('t_types_temps_travail')
|
|
;
|
|
|
|
-- Màj des services
|
|
SELECT syncTable3('t_services')
|
|
;
|
|
|
|
-- Màj des spécialités
|
|
SELECT syncTable3('t_specialites')
|
|
;
|
|
|
|
-- Màj des codes emploi
|
|
SELECT syncTable3('t_codes_emploi')
|
|
;
|
|
|
|
-- Màj des types d'horaire
|
|
SELECT syncTable3('t_types_horaire')
|
|
;
|
|
|
|
-- Màj des sociétés d'interim
|
|
SELECT syncTable3('t_societes_interim')
|
|
;
|
|
|
|
-- Màj des grilles
|
|
SELECT syncTable3('t_grilles')
|
|
;
|
|
|
|
-- Màj des groupes de grilles
|
|
SELECT syncTable3('t_grilles_groupes')
|
|
;
|
|
|
|
-- Màj des sections analytiques paie
|
|
SELECT syncTable3('t_sections_analytiques_paie')
|
|
;
|
|
|
|
-- Màj des sections analytiques comptable
|
|
SELECT syncTable3('t_sections_analytiques')
|
|
;
|
|
|
|
-- Màj des plans analytiques ng
|
|
DELETE FROM rh.t_plan_analytique WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint) AND oid > 0
|
|
;
|
|
INSERT INTO rh.t_plan_analytique(oid, code, texte)
|
|
SELECT oid, code, texte
|
|
FROM rh_src.t_plan_analytique
|
|
WHERE oid > 0
|
|
;
|
|
|
|
-- Màj des sections analytiques ng
|
|
SELECT syncTable3('t_section_analytique')
|
|
;
|
|
|
|
-- Màj des motifs d'arret
|
|
SELECT syncTable3('t_motifs_arret')
|
|
;
|
|
|
|
-- Màj des précisions du motif d'arrêt
|
|
SELECT syncTable3('t_precisions_motif_arret')
|
|
;
|
|
|
|
-- Màj des motifs de visite médicale
|
|
SELECT syncTable3('t_motifs_visite')
|
|
;
|
|
|
|
-- Màj des circonstances d'accident du travail
|
|
SELECT syncTable3('t_accident_circonstance')
|
|
;
|
|
|
|
-- Màj des lieux d'accident du travail
|
|
SELECT syncTable3('t_accident_lieu')
|
|
;
|
|
|
|
-- Màj de la nature de l'accident du travail
|
|
SELECT syncTable3('t_accident_nature')
|
|
;
|
|
|
|
-- Màj des sièges d'accident du travail
|
|
SELECT syncTable3('t_accident_siege')
|
|
;
|
|
|
|
-- Màj des listes de formations
|
|
SELECT syncTable3('t_liste_formations')
|
|
;
|
|
|
|
-- Màj des codes de cotisation.
|
|
SELECT syncTable3('t_code_cotisation')
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
</NODE>
|
|
<NODE name="FUSION" label="FUSION">
|
|
<NODE label="Chiffrier">
|
|
<sqlcmd><![CDATA[
|
|
|
|
DELETE FROM rh.p_chiffrier_production WHERE mois BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM')
|
|
;
|
|
|
|
INSERT INTO rh.p_chiffrier_production (entreprise_id, etablissement_id, mois, nombre_salaries, montant_brut, nombre_heures)
|
|
SELECT
|
|
getOid(entreprise_id),
|
|
getOid(etablissement_id),
|
|
mois,
|
|
nombre_salaries,
|
|
montant_brut,
|
|
nombre_heures
|
|
FROM rh_src.p_chiffrier_production
|
|
WHERE mois BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM')
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Profils">
|
|
<sqlcmd><![CDATA[
|
|
|
|
DELETE FROM rh.p_profils WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
INSERT INTO rh.p_profils(
|
|
oid,
|
|
cadre_emploi_code_original,
|
|
categorie_conge_code_original,
|
|
categorie_socio_professionnelle_code_original,
|
|
categorie_statutaire_code_original,
|
|
code_emploi_code_original,
|
|
commission_paritaire_code_original,
|
|
compte_salarie_code_original,
|
|
filiere_code_original,
|
|
grille_code_original,
|
|
grille_groupe_code_original,
|
|
groupe_cotisant_code_original,
|
|
lettre_budgetaire_code_original,
|
|
motif_debut_code_original,
|
|
motif_fin_code_original,
|
|
qualification_code_original,
|
|
section_analytique_code_original,
|
|
section_analytique_paie_code_original,
|
|
service_code_original,
|
|
societe_interim_code_original,
|
|
specialite_code_original,
|
|
statut_code_original,
|
|
type_contrat_code_original,
|
|
type_horaire_code_original,
|
|
type_temps_travail_code_original,
|
|
unite_fonctionnelle_code_original)
|
|
WITH merged_qua as (
|
|
select
|
|
src.code_original as code_original,
|
|
max(case when dst.oid is null then fp('idc')||src.code_original else dst.code_original end) as merged_code_original
|
|
from rh_src.t_qualifications as src
|
|
left join rh.t_qualifications as dst on 1=1
|
|
and dst.code = src.code
|
|
and dst.texte = src.texte
|
|
group by 1),
|
|
merged_cem as (
|
|
select
|
|
src.code_original as code_original,
|
|
max(case when dst.oid is null then fp('idc')||src.code_original else dst.code_original end) as merged_code_original
|
|
from rh_src.t_codes_emploi as src
|
|
left join rh.t_codes_emploi as dst on 1=1
|
|
and dst.code = src.code
|
|
and dst.texte = src.texte
|
|
group by 1),
|
|
merged_ser as (
|
|
select
|
|
src.code_original as code_original,
|
|
max(case when dst.oid is null then fp('idc')||src.code_original else dst.code_original end) as merged_code_original
|
|
from rh_src.t_services as src
|
|
left join rh.t_services as dst on 1=1
|
|
and dst.code = src.code
|
|
and dst.texte = src.texte
|
|
group by 1)
|
|
SELECT
|
|
oid + fp('idx')::bigint,
|
|
fp('idc')||p_profils.cadre_emploi_code_original,
|
|
fp('idc')||p_profils.categorie_conge_code_original,
|
|
p_profils.categorie_socio_professionnelle_code_original, -- les CSP sont fusionnées.
|
|
fp('idc')||p_profils.categorie_statutaire_code_original,
|
|
coalesce(merged_cem.merged_code_original, fp('idc')||p_profils.code_emploi_code_original) as code_emploi_code_original,
|
|
fp('idc')||p_profils.commission_paritaire_code_original,
|
|
fp('idc')||p_profils.compte_salarie_code_original,
|
|
fp('idc')||p_profils.filiere_code_original,
|
|
fp('idc')||p_profils.grille_code_original,
|
|
fp('idc')||p_profils.grille_groupe_code_original,
|
|
fp('idc')||p_profils.groupe_cotisant_code_original,
|
|
fp('idc')||p_profils.lettre_budgetaire_code_original,
|
|
fp('idc')||p_profils.motif_debut_code_original,
|
|
fp('idc')||p_profils.motif_fin_code_original,
|
|
coalesce(merged_qua.merged_code_original, fp('idc')||p_profils.qualification_code_original) as qualification_code_original,
|
|
fp('idc')||p_profils.section_analytique_code_original,
|
|
fp('idc')||p_profils.section_analytique_paie_code_original,
|
|
coalesce(merged_ser.merged_code_original, fp('idc')||p_profils.service_code_original) as service_code_original,
|
|
fp('idc')||p_profils.societe_interim_code_original,
|
|
fp('idc')||p_profils.specialite_code_original,
|
|
fp('idc')||p_profils.statut_code_original,
|
|
fp('idc')||p_profils.type_contrat_code_original,
|
|
fp('idc')||p_profils.type_horaire_code_original,
|
|
fp('idc')||p_profils.type_temps_travail_code_original,
|
|
fp('idc')||p_profils.unite_fonctionnelle_code_original
|
|
FROM rh_src.p_profils
|
|
LEFT JOIN merged_qua ON merged_qua.code_original = p_profils.qualification_code_original
|
|
LEFT JOIN merged_ser ON merged_ser.code_original = p_profils.service_code_original
|
|
LEFT JOIN merged_cem ON merged_cem.code_original = p_profils.code_emploi_code_original
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Salariés">
|
|
<sqlcmd><![CDATA[
|
|
|
|
-- Stratégie (Divers FUSION_STRATEGIE) :
|
|
-- * 0 = les salariés ont leur matricules conservés d'un prestataire à l'autre.
|
|
-- * 1 = SHS -> Cegid : 2299Z -> 0000002299. On conserve 0000002299.
|
|
-- * 2 = Le n° de SS sert à effectuer le rapprochement. On conserver le matricule le plus récent (celui du prestataire en cours).
|
|
|
|
DROP TABLE IF EXISTS w_salaries
|
|
;
|
|
CREATE TEMP TABLE w_salaries AS
|
|
SELECT
|
|
oid + fp('idx')::bigint AS oid,
|
|
finess,
|
|
nom,
|
|
prenom,
|
|
date_naissance,
|
|
sexe,
|
|
CASE t_divers.valeur
|
|
WHEN 0 THEN matricule
|
|
WHEN 1 THEN (CASE WHEN length(matricule) = 10 THEN matricule ELSE lpad(substring(matricule from '(....).$'), 10, '0') END)
|
|
WHEN 2 THEN matricule
|
|
END AS matricule,
|
|
matricule_planning,
|
|
CASE t_divers.valeur
|
|
WHEN 0 THEN p_salaries.code
|
|
WHEN 1 THEN (CASE WHEN length(p_salaries.code) = 10 THEN p_salaries.code ELSE lpad(substring(p_salaries.code from '(....).$'), 10, '0') END)
|
|
WHEN 2 THEN p_salaries.code
|
|
END AS code,
|
|
CASE t_divers.valeur
|
|
WHEN 0 THEN code_original
|
|
WHEN 1 THEN (CASE WHEN length(code_original) = 10 THEN code_original ELSE lpad(substring(code_original from '(....).$'), 10, '0') END)
|
|
WHEN 2 THEN code_original
|
|
END AS code_original,
|
|
coalesce(nir, matricule) as nir, -- prise en du compte matricule pour les salaries sans nir e.g. étrangers
|
|
getOid(entreprise_id) as entreprise_id,
|
|
getOid(nationalite_id) as nationalite_id,
|
|
code_postal_id,
|
|
nom_naissance,
|
|
getOid(situation_famille_id) as situation_famille_id,
|
|
adresse1,
|
|
adresse2,
|
|
getOid(profil_id) as profil_id,
|
|
date_debut,
|
|
date_fin,
|
|
date_entree_ets,
|
|
date_sortie_ets,
|
|
date_anciennete,
|
|
date_entree_fp,
|
|
date_entree_fph,
|
|
no_adeli,
|
|
case when code_cotisation_id = 0 then 0 else code_cotisation_id + fp('idx')::bigint end as code_cotisation_id,
|
|
matricule_retraite as matricule_retraite
|
|
FROM rh_src.p_salaries
|
|
join rh.t_divers ON t_divers.code = 'FUSION_STRATEGIE'
|
|
;
|
|
|
|
DELETE FROM rh.p_salaries WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
-- Ajout des salariés pas déjà insérés précédemment.
|
|
INSERT INTO rh.p_salaries(
|
|
oid,
|
|
finess,
|
|
nom,
|
|
prenom,
|
|
date_naissance,
|
|
sexe,
|
|
matricule,
|
|
matricule_planning,
|
|
code,
|
|
code_original,
|
|
nir,
|
|
entreprise_id,
|
|
nationalite_id,
|
|
code_postal_id,
|
|
nom_naissance,
|
|
situation_famille_id,
|
|
adresse1,
|
|
adresse2,
|
|
profil_id,
|
|
date_debut,
|
|
date_fin,
|
|
date_entree_ets,
|
|
date_sortie_ets,
|
|
date_anciennete,
|
|
date_entree_fp,
|
|
date_entree_fph,
|
|
no_adeli,
|
|
code_cotisation_id,
|
|
matricule_retraite)
|
|
SELECT
|
|
oid,
|
|
finess,
|
|
nom,
|
|
prenom,
|
|
date_naissance,
|
|
sexe,
|
|
matricule,
|
|
matricule_planning,
|
|
code,
|
|
code_original,
|
|
nir,
|
|
entreprise_id,
|
|
nationalite_id,
|
|
code_postal_id,
|
|
nom_naissance,
|
|
situation_famille_id,
|
|
adresse1,
|
|
adresse2,
|
|
profil_id,
|
|
date_debut,
|
|
date_fin,
|
|
date_entree_ets,
|
|
date_sortie_ets,
|
|
date_anciennete,
|
|
date_entree_fp,
|
|
date_entree_fph,
|
|
no_adeli,
|
|
code_cotisation_id,
|
|
matricule_retraite
|
|
FROM w_salaries
|
|
WHERE matricule NOT IN (SELECT matricule FROM rh.p_salaries)
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Salariés (mapping)">
|
|
<sqlcmd><![CDATA[
|
|
|
|
-- Table de mapping rh_src.oid <-> rh.oid pour les salariés.
|
|
DROP TABLE IF EXISTS w_map_sal
|
|
;
|
|
CREATE TEMP TABLE w_map_sal AS
|
|
SELECT
|
|
p_salaries.oid as salarie_src_id,
|
|
min(p.oid) as salarie_id, -- Utile lorsque FUSION_STRATEGIE à 2 car plusieurs matricules pour le même n°SS.
|
|
-- CASE t_divers.valeur
|
|
-- WHEN 0 THEN p_salaries.matricule
|
|
-- WHEN 1 THEN (CASE WHEN length(p_salaries.matricule) = 10 THEN p_salaries.matricule ELSE lpad(substring(p_salaries.matricule from '(....).$'), 10, '0') END)
|
|
-- WHEN 2 THEN p_salaries.matricule
|
|
-- END AS matricule,
|
|
p_salaries.nir
|
|
FROM rh_src.p_salaries
|
|
join rh.t_divers ON t_divers.code = 'FUSION_STRATEGIE'
|
|
JOIN rh.p_salaries as p ON
|
|
(CASE t_divers.valeur
|
|
WHEN 0 THEN p.matricule = p_salaries.matricule
|
|
WHEN 1 THEN p.matricule = (CASE WHEN length(p_salaries.matricule) = 10 THEN p_salaries.matricule ELSE lpad(substring(p_salaries.matricule from '(....).$'), 10, '0') END)
|
|
WHEN 2 THEN substring(p.nir, 1, 13) = substring(p_salaries.nir, 1, 13)
|
|
END)
|
|
GROUP BY 1, 3
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Contrats">
|
|
<sqlcmd><![CDATA[
|
|
|
|
DELETE FROM rh.p_contrats WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
-- Création d'une table de mapping ancien oid <-> nouveaux oids.
|
|
-- Seuls les contrats avec cnt_to_insert à true seront à insérer.
|
|
DROP TABLE IF EXISTS w_map_cnt
|
|
;
|
|
CREATE TEMP TABLE w_map_cnt AS
|
|
with src_contrat_bul as (
|
|
select contrat_id
|
|
from rh_src.p_historique_paie
|
|
where mois_paie BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM')
|
|
group by 1)
|
|
SELECT
|
|
coalesce(cnt_ori.oid, MAX(cnt.oid) + fp('idx')::bigint) AS contrat_id, -- id (à insérer si cnt_to_insert = true) du contrat dans le schéma de rh.
|
|
MAX(cnt.oid) AS contrat_src_id, -- id du contrat dans le schéma du prestataire.
|
|
cnt_ori.oid IS NULL as cnt_to_insert, -- true : contrat à insérer; false : contrat déjà inséré.
|
|
map1.salarie_id -- on met le bon id de salarié issu du mapping.
|
|
--coalesce(cnt_ori.date_debut, cnt.date_debut) AS date_debut,
|
|
--coalesce(cnt_ori.date_fin, cnt.date_fin) AS date_fin
|
|
FROM rh_src.p_contrats as cnt
|
|
JOIN w_map_sal as map1 ON map1.salarie_src_id = cnt.salarie_id
|
|
left join src_contrat_bul on src_contrat_bul.contrat_id = cnt.oid
|
|
LEFT JOIN rh.p_contrats as cnt_ori ON 1=1
|
|
AND cnt_ori.salarie_id = map1.salarie_id
|
|
AND cnt_ori.date_debut = cnt.date_debut -- On fait uniquement le lien avec la date de début, car la date de fin pouvait ne pas être déterminé dans l'ancien prestataire.
|
|
-- AND cnt_ori.date_fin = cnt.date_fin -- <- A laisser commentée.
|
|
-- AND base.cti_overlaps(cnt.date_debut, cnt.date_fin, cnt_ori.date_debut, cnt_ori.date_fin) -- Permet de ne pas prendre des contrats en trop qui seraient chevauchant (cf. exemple ci-dessous)
|
|
WHERE true
|
|
and (false
|
|
or base.cti_overlaps(cnt.date_debut, cnt.date_fin, fp('str')::date, fp('end')::date) -- on prend uniquement les contrats relatif à la période prestataire...
|
|
or src_contrat_bul.contrat_id is not null) -- ... ou ceux dont le contrat aurait été positionné avant le changement de prestataire (IC-4475).
|
|
GROUP BY cnt_ori.oid, map1.salarie_id, cnt.date_debut
|
|
;
|
|
|
|
/**
|
|
|
|
UPDATE :
|
|
--------
|
|
Tant pis pour le cas où la reprise des contrat n'a pas été correcte (avec date de début identique).
|
|
En effet cela pose problème pour la gestion du multi-contrat.
|
|
|
|
|
|
EXPLICATION ORIGINELLE :
|
|
------------------------
|
|
|
|
Cas d'un salarié.
|
|
|
|
LEFT JOIN rh.p_contrats as cnt_ori basé sur cnt_ori.date_debut = cnt.date_debut
|
|
|
|
Cegid (nouveau prestataire) :
|
|
"2003-08-02";"2003-08-31";"00000020310001" -- NON (via le WHERE)
|
|
"2003-10-01";"2003-10-31";"00000020310002" -- NON (via le WHERE)
|
|
"2003-11-01";"2003-11-30";"00000020310003" -- NON (via le WHERE)
|
|
"2003-12-01";"2003-12-31";"00000020310004" -- NON (via le WHERE)
|
|
"2004-01-01";"2099-12-31";"00000020310005" -- Sélectionné
|
|
|
|
SHS (ancien prestataire ) :
|
|
"2003-08-02";"2003-08-31";"2031H-1" -- Sélectionné
|
|
"2003-10-01";"2003-10-31";"2031H-2" -- Sélectionné
|
|
"2003-11-01";"2003-11-30";"2031H-3" -- Sélectionné
|
|
"2003-12-01";"2003-12-31";"2031H-4" -- Sélectionné
|
|
"2004-01-01";"2004-06-30";"2031H-5" -- Non sélectionné car déjà remonté avec Cegid.
|
|
"2004-07-01";"2099-12-31";"2031H-6" -- Sélectionné
|
|
|
|
Fusion (erronée car 2 contrats se terminant en 2099-12-31) :
|
|
"2003-08-02";"2003-08-31";"SH_2031H-1"
|
|
"2003-10-01";"2003-10-31";"SH_2031H-2"
|
|
"2003-11-01";"2003-11-30";"SH_2031H-3"
|
|
"2003-12-01";"2003-12-31";"SH_2031H-4"
|
|
"2004-01-01";"2099-12-31";"00000020310005"
|
|
"2004-07-01";"2099-12-31";"SH_2031H-6" -- ce contrat n'aurait pas du être remonté et c'est le sens du cti_overlaps dans le LEFT JOIN.
|
|
|
|
*/
|
|
|
|
INSERT INTO rh.p_contrats (
|
|
oid,
|
|
salarie_id,
|
|
date_debut,
|
|
date_fin,
|
|
numero_contrat,
|
|
code_original,
|
|
etablissement_id,
|
|
profil_id,
|
|
anciennete_anterieure_mois,
|
|
anciennete_anterieure_calculee_mois,
|
|
salarie_remplace_id,
|
|
anciennete_anterieure_jours,
|
|
anciennete_anterieure_calculee_jours)
|
|
SELECT
|
|
cnt.contrat_id,
|
|
cnt.salarie_id, -- on met le bon id de salarié issu du mapping.
|
|
p_contrats.date_debut,
|
|
p_contrats.date_fin,
|
|
fp('idc')||p_contrats.numero_contrat,
|
|
fp('idc')||p_contrats.code_original,
|
|
getOid(p_contrats.etablissement_id),
|
|
getOid(p_contrats.profil_id),
|
|
p_contrats.anciennete_anterieure_mois,
|
|
p_contrats.anciennete_anterieure_calculee_mois,
|
|
coalesce(map.salarie_id, 0), -- on met le bon id de salarié remplacé issu du mapping.
|
|
p_contrats.anciennete_anterieure_jours,
|
|
p_contrats.anciennete_anterieure_calculee_jours
|
|
FROM w_map_cnt as cnt
|
|
JOIN rh_src.p_contrats on p_contrats.oid = cnt.contrat_src_id
|
|
LEFT JOIN w_map_sal as map ON map.salarie_src_id = p_contrats.salarie_remplace_id
|
|
WHERE cnt.cnt_to_insert -- on insére uniquement les contrats pas déjà insérés précédemment.
|
|
;
|
|
|
|
-- On conserve uniquement la ventilation sur les périodes propres à chaque prestataire.
|
|
-- On considère que la ventilation sur les périodes propres à chaque prestataire est la plus à même de décrire l'évolution du salarié,
|
|
-- notamment pour les CDI pour lesquels l'historique n'aura pas été intégralement repris avec le nouveau prestataire.
|
|
DELETE FROM rh.p_contrats_mois WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
-- Table qui fait le mapping entre les anciens oid et les éventuels nouveaux.
|
|
DROP TABLE IF EXISTS w_map_cnt_mois
|
|
;
|
|
CREATE TEMP TABLE w_map_cnt_mois AS
|
|
with src_contrat_bul as (
|
|
select contrat_mois_id
|
|
from rh_src.p_historique_paie
|
|
where mois_paie BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM')
|
|
group by 1)
|
|
SELECT
|
|
cnt_src.oid + fp('idx')::bigint as contrat_mois_id,
|
|
cnt_src.oid as contrat_mois_src_id,
|
|
w_map_cnt.contrat_id,
|
|
w_map_cnt.contrat_src_id,
|
|
cnt_src.mois_activite,
|
|
w_map_cnt.salarie_id
|
|
FROM rh_src.p_contrats_mois AS cnt_src
|
|
left join src_contrat_bul on src_contrat_bul.contrat_mois_id = cnt_src.oid
|
|
JOIN w_map_cnt ON 1=1
|
|
AND w_map_cnt.contrat_src_id = cnt_src.contrat_id
|
|
-- UPDATE : NON -- V Les contrats_mois doivent correspondrent à un seul contrat sur une période donnée.
|
|
-- AND base.cti_overlaps(w_map_cnt.date_debut, w_map_cnt.date_fin, cnt_src.date_debut, cnt_src.date_fin)
|
|
WHERE true
|
|
and (false
|
|
or cnt_src.mois_activite BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM') -- on prend uniquement les contrats relatif à la période prestataire...
|
|
or src_contrat_bul.contrat_mois_id is not null) -- ... ou ceux dont le contrat aurait été positionné avant le changement de prestataire (IC-4475).
|
|
;
|
|
|
|
|
|
INSERT INTO rh.p_contrats_mois(
|
|
oid,
|
|
contrat_id,
|
|
mois_activite,
|
|
nombre_debut_contrat,
|
|
nombre_fin_contrat,
|
|
equivalent_temps_plein,
|
|
date_debut,
|
|
date_fin,
|
|
age_id,
|
|
age_jours,
|
|
est_hors_periode,
|
|
present_fin_mois,
|
|
anciennete_mois,
|
|
anciennete_annee_id,
|
|
nombre_departs,
|
|
salarie_id,
|
|
anciennete_grade_mois,
|
|
anciennete_grade_annee_id,
|
|
anciennete_fp_mois,
|
|
anciennete_fp_annee_id,
|
|
anciennete_fph_mois,
|
|
anciennete_fph_annee_id,
|
|
fictif,
|
|
nombre_entrees,
|
|
present_debut_mois,
|
|
anciennete_jours,
|
|
profil_id,
|
|
etablissement_id,
|
|
code_original,
|
|
effectif_permanent,
|
|
nombre_transformation_cdi,
|
|
pole_id,
|
|
population_id,
|
|
ratio_temps_travail,
|
|
nombre_heures)
|
|
SELECT
|
|
w_map_cnt_mois.contrat_mois_id,
|
|
w_map_cnt_mois.contrat_id,
|
|
w_map_cnt_mois.mois_activite,
|
|
p_contrats_mois.nombre_debut_contrat,
|
|
p_contrats_mois.nombre_fin_contrat,
|
|
p_contrats_mois.equivalent_temps_plein,
|
|
p_contrats_mois.date_debut,
|
|
p_contrats_mois.date_fin,
|
|
p_contrats_mois.age_id,
|
|
p_contrats_mois.age_jours,
|
|
p_contrats_mois.est_hors_periode,
|
|
p_contrats_mois.present_fin_mois,
|
|
p_contrats_mois.anciennete_mois,
|
|
p_contrats_mois.anciennete_annee_id,
|
|
p_contrats_mois.nombre_departs,
|
|
w_map_cnt_mois.salarie_id, -- on met le bon id de salarié issu du mapping.
|
|
p_contrats_mois.anciennete_grade_mois,
|
|
p_contrats_mois.anciennete_grade_annee_id,
|
|
p_contrats_mois.anciennete_fp_mois,
|
|
p_contrats_mois.anciennete_fp_annee_id,
|
|
p_contrats_mois.anciennete_fph_mois,
|
|
p_contrats_mois.anciennete_fph_annee_id,
|
|
p_contrats_mois.fictif,
|
|
p_contrats_mois.nombre_entrees,
|
|
p_contrats_mois.present_debut_mois,
|
|
p_contrats_mois.anciennete_jours,
|
|
getOid(p_contrats_mois.profil_id),
|
|
getOid(p_contrats_mois.etablissement_id),
|
|
p_contrats_mois.code_original,
|
|
p_contrats_mois.effectif_permanent,
|
|
p_contrats_mois.nombre_transformation_cdi,
|
|
p_contrats_mois.pole_id,
|
|
p_contrats_mois.population_id,
|
|
p_contrats_mois.ratio_temps_travail,
|
|
p_contrats_mois.nombre_heures
|
|
FROM w_map_cnt_mois
|
|
JOIN rh_src.p_contrats_mois ON p_contrats_mois.oid = w_map_cnt_mois.contrat_mois_src_id
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Historique de la paie">
|
|
<sqlcmd><![CDATA[
|
|
|
|
DELETE FROM rh.p_historique_paie WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
INSERT INTO rh.p_historique_paie(
|
|
oid,
|
|
age_id,
|
|
base,
|
|
compte_id,
|
|
contrat_id,
|
|
contrat_mois_id,
|
|
date_debut,
|
|
date_fin,
|
|
date_paie,
|
|
etablissement_id,
|
|
heure_contrat,
|
|
heure_payee,
|
|
heure_travaillee,
|
|
mois_activite,
|
|
mois_paie,
|
|
montant_avantage_nature,
|
|
montant_brut,
|
|
montant_cotisation_patronale,
|
|
montant_cotisation_salarie,
|
|
montant_frais_imposables,
|
|
montant_masse_salariale,
|
|
montant_masse_salariale_provisionnee,
|
|
montant_net_a_payer_salarie,
|
|
montant_net_imposable_salarie,
|
|
montant_od_net_patronale,
|
|
montant_od_net_salarie,
|
|
montant_patronal,
|
|
montant_provisions,
|
|
montant_salarial,
|
|
nombre,
|
|
nombre_provisions,
|
|
organisme_cotisation_id,
|
|
rubrique_id,
|
|
salarie_id,
|
|
taux_cotisation_patronale,
|
|
taux_cotisation_salarie,
|
|
ventilation_1_id,
|
|
ventilation_2_id,
|
|
ventilation_3_id)
|
|
SELECT
|
|
oid + fp('idx')::bigint,
|
|
age_id,
|
|
base,
|
|
getOid(compte_id),
|
|
w_map_cnt_mois.contrat_id,
|
|
w_map_cnt_mois.contrat_mois_id,
|
|
date_debut,
|
|
date_fin,
|
|
date_paie,
|
|
getOid(etablissement_id),
|
|
heure_contrat,
|
|
heure_payee,
|
|
heure_travaillee,
|
|
hp.mois_activite,
|
|
hp.mois_paie,
|
|
montant_avantage_nature,
|
|
montant_brut,
|
|
montant_cotisation_patronale,
|
|
montant_cotisation_salarie,
|
|
montant_frais_imposables,
|
|
montant_masse_salariale,
|
|
montant_masse_salariale_provisionnee,
|
|
montant_net_a_payer_salarie,
|
|
montant_net_imposable_salarie,
|
|
montant_od_net_patronale,
|
|
montant_od_net_salarie,
|
|
montant_patronal,
|
|
montant_provisions,
|
|
montant_salarial,
|
|
nombre,
|
|
nombre_provisions,
|
|
getOid(organisme_cotisation_id),
|
|
getOid(rubrique_id),
|
|
w_map_sal.salarie_id,
|
|
taux_cotisation_patronale,
|
|
taux_cotisation_salarie,
|
|
getOid(ventilation_1_id),
|
|
getOid(ventilation_2_id),
|
|
getOid(ventilation_3_id)
|
|
FROM rh_src.p_historique_paie as hp
|
|
JOIN w_map_sal ON w_map_sal.salarie_src_id = hp.salarie_id
|
|
LEFT JOIN w_map_cnt_mois on w_map_cnt_mois.contrat_mois_src_id = hp.contrat_mois_id
|
|
WHERE 1=1
|
|
AND mois_paie BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM')
|
|
;
|
|
|
|
-- Associer les bulletins de paie hors période de contrat avec contrat sur la période précédente appartenant à un autre prestataire.
|
|
UPDATE rh.p_historique_paie
|
|
SET contrat_id = subq.contrat_id,
|
|
contrat_mois_id = subq.contrat_mois_id
|
|
FROM (
|
|
select
|
|
p_historique_paie.oid,
|
|
(max(ARRAY[extract(epoch from p_contrats_mois.date_fin), p_contrats_mois.oid]))[2] as contrat_mois_id,
|
|
(max(ARRAY[extract(epoch from p_contrats_mois.date_fin), p_contrats_mois.contrat_id]))[2] AS contrat_id
|
|
from rh.p_historique_paie
|
|
join rh.p_contrats_mois on 1=1
|
|
and p_contrats_mois.salarie_id = p_historique_paie.salarie_id
|
|
and p_contrats_mois.date_fin < p_historique_paie.date_debut
|
|
where p_historique_paie.contrat_id is null
|
|
group by 1) AS subq
|
|
WHERE p_historique_paie.oid = subq.oid
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Ventilation analytique NG">
|
|
<sqlcmd><![CDATA[
|
|
|
|
DELETE FROM rh.p_ventilation WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
INSERT INTO rh.p_ventilation (
|
|
oid,
|
|
code,
|
|
texte,
|
|
plan_analytique_id)
|
|
SELECT
|
|
oid + fp('idx')::bigint,
|
|
code,
|
|
texte,
|
|
plan_analytique_id
|
|
FROM rh_src.p_ventilation
|
|
;
|
|
|
|
DELETE FROM rh.p_ventilation_section WHERE ventilation_id BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
INSERT INTO rh.p_ventilation_section (
|
|
ventilation_id,
|
|
section_analytique_id,
|
|
section_analytique_code,
|
|
section_analytique_texte,
|
|
ratio)
|
|
SELECT
|
|
ventilation_id + fp('idx')::bigint,
|
|
section_analytique_id + fp('idx')::bigint,
|
|
section_analytique_code,
|
|
section_analytique_texte,
|
|
ratio
|
|
FROM rh_src.p_ventilation_section
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Ventilation des profils">
|
|
<sqlcmd><![CDATA[
|
|
|
|
DELETE FROM rh.p_profil_contrat_mois WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
-- Alimentation des profils simultanés.
|
|
INSERT INTO rh.p_profil_contrat_mois (
|
|
oid,
|
|
profil_id,
|
|
contrat_mois_id,
|
|
salarie_id,
|
|
ratio,
|
|
mois
|
|
)
|
|
SELECT
|
|
oid + fp('idx')::bigint,
|
|
getOid(pcm.profil_id),
|
|
w_map_cnt_mois.contrat_mois_id,
|
|
w_map_cnt_mois.salarie_id,
|
|
pcm.ratio,
|
|
pcm.mois
|
|
FROM rh_src.p_profil_contrat_mois as pcm
|
|
JOIN w_map_cnt_mois ON w_map_cnt_mois.contrat_mois_src_id = pcm.contrat_mois_id
|
|
WHERE 1=1
|
|
--AND w_map_cnt_mois.contrat_mois_ori_id = 0 -- on insère uniquement les contrats pas déjà insérés précédemment.
|
|
-- AND pcm.mois BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM') -- PAS BESOIN DEJA FILTRE.
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Arrêts de travail">
|
|
<condition><![CDATA[
|
|
SELECT valeur = '0' FROM rh.t_divers
|
|
WHERE code = 'FUSION_IGNORE_ARRETS';
|
|
]]></condition>
|
|
<sqlcmd><![CDATA[
|
|
|
|
DELETE FROM rh.p_arrets_travail WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
INSERT INTO rh.p_arrets_travail(
|
|
oid,
|
|
salarie_id,
|
|
contrat_id,
|
|
mois_activite,
|
|
date_debut,
|
|
date_fin,
|
|
date_reprise,
|
|
motif_arret_id,
|
|
precision_motif_arret_id,
|
|
nb_jours
|
|
)
|
|
SELECT
|
|
oid + fp('idx')::bigint,
|
|
w_map_cnt.salarie_id,
|
|
w_map_cnt.contrat_id,
|
|
p_arrets_travail.mois_activite,
|
|
p_arrets_travail.date_debut,
|
|
p_arrets_travail.date_fin,
|
|
p_arrets_travail.date_reprise,
|
|
getOid(p_arrets_travail.motif_arret_id),
|
|
0 AS precision_motif_arret_id,
|
|
p_arrets_travail.nb_jours
|
|
FROM rh_src.p_arrets_travail
|
|
JOIN w_map_cnt on w_map_cnt.contrat_src_id = p_arrets_travail.contrat_id
|
|
WHERE to_char(p_arrets_travail.date_fin, 'YYYYMM')::int BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM')
|
|
-- On prend to_char(p_arrets_travail.date_fin, 'YYYYMM') plutôt que p_arrets_travail.mois_activite car cette dernière est calculée
|
|
-- à partir de la date de début.
|
|
;
|
|
|
|
-- Contrairement à la ventilation des contrats, on peut se permettre ici de remonter la ventilation des arrêts même si elle est à cheval.
|
|
-- NON car pour les longues durées, ça n'aura pas été ventilé ?.
|
|
-- Manifestement, les arrêts longue durée sont recréés dans le nouveau prestataire avec une date de début plus récente (inclue dans la plage du prestataire).
|
|
-- Seule la date de reprise sera fausse, il y aura des chevauchements si dans le prestataire précédent ça chevauche...
|
|
|
|
DELETE FROM rh.p_arrets_travail_mois WHERE arret_travail_id BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
INSERT INTO rh.p_arrets_travail_mois(
|
|
arret_travail_id,
|
|
salarie_id,
|
|
contrat_id,
|
|
contrat_mois_id,
|
|
mois_activite,
|
|
nb_debut_arret,
|
|
nb_fin_arret,
|
|
nb_reprise_apres_arret,
|
|
date_debut,
|
|
date_fin,
|
|
nb_jours,
|
|
nb_arret,
|
|
nb_heures)
|
|
SELECT
|
|
p_arrets_travail.oid,
|
|
w_map_sal.salarie_id,
|
|
w_map_cnt_mois.contrat_id,
|
|
w_map_cnt_mois.contrat_mois_id,
|
|
p_arrets_travail_mois.mois_activite,
|
|
p_arrets_travail_mois.nb_debut_arret,
|
|
p_arrets_travail_mois.nb_fin_arret,
|
|
p_arrets_travail_mois.nb_reprise_apres_arret,
|
|
p_arrets_travail_mois.date_debut,
|
|
p_arrets_travail_mois.date_fin,
|
|
p_arrets_travail_mois.nb_jours,
|
|
p_arrets_travail_mois.nb_arret,
|
|
p_arrets_travail_mois.nb_heures
|
|
FROM rh_src.p_arrets_travail_mois
|
|
-- JOIN rh.p_arrets_travail : permet de restreindre la remontée des arrets_travail_mois à des arrets_travail précédemment remontés.
|
|
JOIN rh.p_arrets_travail ON p_arrets_travail.oid = p_arrets_travail_mois.arret_travail_id + fp('idx')::bigint
|
|
JOIN w_map_sal ON w_map_sal.salarie_src_id = p_arrets_travail_mois.salarie_id
|
|
JOIN w_map_cnt_mois on w_map_cnt_mois.contrat_mois_src_id = p_arrets_travail_mois.contrat_mois_id
|
|
WHERE p_arrets_travail_mois.mois_activite BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM')
|
|
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Visites Médicales">
|
|
<sqlcmd><![CDATA[
|
|
|
|
DELETE FROM rh.p_visites_medicales WHERE oid BETWEEN fp('idx')::bigint AND (fp('idx')::bigint + fp('pas')::bigint)
|
|
;
|
|
|
|
INSERT INTO rh.p_visites_medicales(
|
|
oid,
|
|
salarie_id,
|
|
contrat_id,
|
|
contrat_mois_id,
|
|
mois_activite,
|
|
date,
|
|
motif_visite_id)
|
|
SELECT
|
|
p_visites_medicales.oid + fp('idx')::bigint,
|
|
w_map_cnt_mois.salarie_id,
|
|
w_map_cnt_mois.contrat_id,
|
|
w_map_cnt_mois.contrat_mois_id,
|
|
p_visites_medicales.mois_activite,
|
|
p_visites_medicales.date,
|
|
getOid(p_visites_medicales.motif_visite_id)
|
|
FROM rh_src.p_visites_medicales
|
|
JOIN w_map_cnt_mois on w_map_cnt_mois.contrat_mois_src_id = p_visites_medicales.contrat_mois_id
|
|
WHERE p_visites_medicales.mois_activite BETWEEN to_char(fp('str')::date, 'YYYYMM') AND to_char(fp('end')::date, 'YYYYMM')
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE label="Handicap 2">
|
|
<condition><![CDATA[
|
|
select fp('idx')::bigint = 0
|
|
;
|
|
]]></condition>
|
|
<sqlcmd><![CDATA[
|
|
|
|
TRUNCATE rh.p_handicap2
|
|
;
|
|
|
|
INSERT INTO rh.p_handicap2(
|
|
salarie_id
|
|
,statut_boeth
|
|
,lib_boeth
|
|
,type_reco
|
|
,lib_reco
|
|
,taux_ipp
|
|
,deb_validite
|
|
,fin_validite
|
|
,cat_invalide_pension
|
|
,deb_pension
|
|
,lourd_handicap
|
|
,decision
|
|
)
|
|
SELECT
|
|
salarie_id
|
|
,statut_boeth
|
|
,lib_boeth
|
|
,type_reco
|
|
,lib_reco
|
|
,taux_ipp
|
|
,deb_validite
|
|
,fin_validite
|
|
,cat_invalide_pension
|
|
,deb_pension
|
|
,lourd_handicap
|
|
,decision
|
|
FROM rh_src.p_handicap2
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
<NODE name="DIVERS" type="common"/>
|
|
<NODE label="Mise à jour de la table Divers (mois en cours)">
|
|
<sqlcmd><![CDATA[
|
|
|
|
-- Màj du mois non clôturé.
|
|
-- Opération à ne faire qu'une seule fois avec le prestataire courant.
|
|
DELETE FROM rh.t_divers
|
|
WHERE 1=1
|
|
AND code = 'MOIS_EN_COURS'
|
|
AND fp('idx')::bigint = 0
|
|
;
|
|
|
|
INSERT INTO rh.t_divers(
|
|
code,
|
|
texte,
|
|
valeur,
|
|
valeur_date,
|
|
description)
|
|
SELECT
|
|
code,
|
|
texte,
|
|
valeur,
|
|
valeur_date,
|
|
description
|
|
FROM rh_src.t_divers
|
|
WHERE 1=1
|
|
AND code = 'MOIS_EN_COURS'
|
|
AND fp('idx')::bigint = 0
|
|
;
|
|
|
|
]]></sqlcmd>
|
|
</NODE>
|
|
</NODE>
|
|
<NODE name="POST" label="POST-TRAITEMENTS">
|
|
<NODE name="POST" type="common"/>
|
|
</NODE>
|
|
<NODE name="VACUUM" label="REORGANISATION BASE DE DONNEES">
|
|
<NODE name="VACUUM" type="common" />
|
|
</NODE>
|
|
<NODE name="RAZ" label="RAZ BASE">
|
|
<NODE name="RAZ" type="common" />
|
|
</NODE>
|
|
<NODE name="RAZ_ALL" label="RAZ ALL">
|
|
<NODE name="RAZ_ALL" type="common" />
|
|
</NODE>
|
|
</ROOT>
|