0 THEN service_id + [IPX] ELSE 0 END AS service_id,
CASE WHEN service_id <> 0 THEN (service_id + [IPX])::text ELSE '' END AS service_code_original,
CASE WHEN service_id <> 0 THEN '[CPX]' || service_code ELSE '' END AS service_code,
service_texte,
COALESCE(c_specialites.to_oid,0) AS specialite_id,
COALESCE(c_specialites.to_oid::text,'') AS specialite_code_original,
COALESCE(c_specialites.to_code,'') AS specialite_code,
COALESCE(c_specialites.to_texte,'') AS specialite_texte,
COALESCE(c_types_temps_travail.to_oid, 0) AS type_temps_travail_id,
COALESCE(c_types_temps_travail.to_oid::text, '') AS type_temps_travail_code_original,
COALESCE(c_types_temps_travail.to_code, '') AS type_temps_travail_code,
COALESCE(c_types_temps_travail.to_texte, '') AS type_temps_travail_texte,
COALESCE(c_categories_socio_professionnelle.to_oid,0) AS categorie_socio_professionnelle_id,
COALESCE(c_categories_socio_professionnelle.to_oid::text,'') AS categorie_socio_professionnelle_code_original,
COALESCE(c_categories_socio_professionnelle.to_code,'') AS categorie_socio_professionnelle_code,
COALESCE(c_categories_socio_professionnelle.to_texte,'') AS categorie_socio_professionnelle_texte,
COALESCE(c_statuts.to_oid, 0) AS statut_id,
COALESCE(c_statuts.to_oid::text, '') AS statut_code_original,
COALESCE(c_statuts.to_code, '') AS statut_code,
COALESCE(c_statuts.to_texte, '') AS statut_texte,
COALESCE(c_codes_emploi.to_oid,0) AS code_emploi_id,
COALESCE(c_codes_emploi.to_oid::text,'') AS code_emploi_code_original,
COALESCE(c_codes_emploi.to_code,'') AS code_emploi_code,
COALESCE(c_codes_emploi.to_texte,'') AS code_emploi_texte,
0 AS societe_interim_id,
'' AS societe_interim_code_original,
'' AS societe_interim_code,
'' AS societe_interim_texte,
COALESCE(c_sections_analytiques_paie.to_oid,0) AS section_analytique_paie_id,
COALESCE(c_sections_analytiques_paie.to_oid::text,'') AS section_analytique_paie_code_original,
COALESCE(c_sections_analytiques_paie.to_code,'') AS section_analytique_paie_code,
COALESCE(c_sections_analytiques_paie.to_texte,'') AS section_analytique_paie_texte,
COALESCE(c_sections_analytiques.to_oid,0) AS section_analytique_id,
COALESCE(c_sections_analytiques.to_oid::text,'') AS section_analytique_code_original,
COALESCE(c_sections_analytiques.to_code,'') AS section_analytique_code,
COALESCE(c_sections_analytiques.to_texte,'') AS section_analytique_texte,
COALESCE(c_grilles.to_oid,0) AS grille_id,
COALESCE(c_grilles.to_oid::text,'') AS grille_code_original,
COALESCE(c_grilles.to_code,'') AS grille_code,
COALESCE(c_grilles.to_texte,'') AS grille_texte,
COALESCE(c_grilles_groupes.to_oid,0) AS grille_groupe_id,
COALESCE(c_grilles_groupes.to_oid::text,'') AS grille_groupe_code_original,
COALESCE(c_grilles_groupes.to_code,'') AS grille_groupe_code,
COALESCE(c_grilles_groupes.to_texte,'') AS grille_groupe_texte,
COALESCE(c_types_horaire.to_oid,0) AS type_horaire_id,
COALESCE(c_types_horaire.to_oid::text,'') AS type_horaire_code_original,
COALESCE(c_types_horaire.to_code,'') AS type_horaire_code,
COALESCE(c_types_horaire.to_texte,'') AS type_horaire_texte,
0 AS groupe_cotisant_id,
'' AS groupe_cotisant_code_original,
'' AS groupe_cotisant_code,
'' AS groupe_cotisant_texte,
COALESCE(c_cadre_emploi.to_oid,0) AS cadre_emploi_id,
COALESCE(c_cadre_emploi.to_oid::text,'') AS cadre_emploi_code_original,
COALESCE(c_cadre_emploi.to_code,'') AS cadre_emploi_code,
COALESCE(c_cadre_emploi.to_texte,'') AS cadre_emploi_texte
FROM p_profils
LEFT JOIN c_types_contrat ON p_profils.type_contrat_id = c_types_contrat.oid
LEFT JOIN c_motifs_debut_contrat ON p_profils.motif_debut_id = c_motifs_debut_contrat.oid
LEFT JOIN c_motifs_fin_contrat ON p_profils.motif_fin_id = c_motifs_fin_contrat.oid
LEFT JOIN c_qualifications ON p_profils.qualification_id = c_qualifications.oid
LEFT JOIN c_specialites ON p_profils.specialite_id = c_specialites.oid
LEFT JOIN c_codes_emploi ON p_profils.code_emploi_id = c_codes_emploi.oid
LEFT JOIN c_categories_socio_professionnelle ON p_profils.categorie_socio_professionnelle_id = c_categories_socio_professionnelle.oid
LEFT JOIN c_types_horaire ON p_profils.type_horaire_id = c_types_horaire.oid
LEFT JOIN c_types_temps_travail ON p_profils.type_temps_travail_id = c_types_temps_travail.oid
LEFT JOIN c_statuts ON p_profils.statut_id = c_statuts.oid
LEFT JOIN c_sections_analytiques ON p_profils.section_analytique_id = c_sections_analytiques.oid
LEFT JOIN c_sections_analytiques_paie ON p_profils.section_analytique_paie_id = c_sections_analytiques_paie.oid
LEFT JOIN c_cadre_emploi ON p_profils.cadre_emploi_id = c_cadre_emploi.oid
LEFT JOIN c_grilles ON p_profils.grille_id = c_grilles.oid
LEFT JOIN c_grilles_groupes ON p_profils.grille_groupe_id = c_grilles_groupes.oid
;
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.p_salaries
', 'temp p_salaries'
);
INSERT INTO rh.p_salaries(
oid,
code,
nom,
prenom,
date_naissance,
sexe,
matricule,
code_original,
nir,
entreprise_id,
nationalite_id,
code_postal_id,
nom_naissance,
situation_famille_id,
adresse1,
adresse2,
profil_id,
date_debut,
date_fin,
finess,
date_entree_ets,
date_sortie_ets,
date_entree_fp,
date_entree_fph,
no_adeli,
code_cotisation_id,
matricule_retraite,
salarie_fusionne_id,
-- personne_id,
date_anciennete)
SELECT
p_salaries.oid + [IPX] AS oid,
p_salaries.code,
p_salaries.nom,
p_salaries.prenom,
p_salaries.date_naissance,
p_salaries.sexe,
p_salaries.matricule || CASE WHEN [IPX] <> 0 THEN ' ([PX])' ELSE '' END AS matricule,
p_salaries.oid + [IPX] AS code_original,
p_salaries.nir,
CASE WHEN p_salaries.entreprise_id <> 0 THEN p_salaries.entreprise_id + [IPX] ELSE 0 END AS entreprise_id,
COALESCE(c_nationalites.to_oid, 0) AS nationalite_id,
COALESCE(t_codes_postaux.oid, 0) AS code_postal_id,
p_salaries.nom_naissance,
COALESCE(c_situations_famille.to_oid, 0) AS situation_famille_id,
p_salaries.adresse1,
p_salaries.adresse2,
CASE WHEN p_salaries.profil_id <> 0 THEN p_salaries.profil_id + [IPX] ELSE 0 END AS profil_id,
p_salaries.date_debut,
p_salaries.date_fin,
p_salaries.finess,
p_salaries.date_entree_ets,
p_salaries.date_sortie_ets,
p_salaries.date_entree_fp,
p_salaries.date_entree_fph,
p_salaries.no_adeli,
--p_salaries.code_cotisation_id + [IPX] AS code_cotisation_id,
0 as code_cotisation_id,
p_salaries.matricule_retraite,
p_salaries.salarie_fusionne_id + [IPX] AS salarie_fusionne_id,
-- p_salaries.personne_id + [IPX],
p_salaries.date_anciennete
FROM p_salaries
LEFT JOIN c_nationalites ON p_salaries.nationalite_id = c_nationalites.oid
LEFT JOIN c_situations_famille ON p_salaries.situation_famille_id = c_situations_famille.oid
LEFT JOIN base.t_codes_postaux ON p_salaries.code_postal_id = t_codes_postaux.oid
LEFT JOIN rh.p_salaries AS rh_sal ON rh_sal.oid = p_salaries.oid + [IPX]
WHERE rh_sal.oid IS NULL
;
]]>
0 THEN ' ([PX])' ELSE '' END AS numero_contrat,
CASE WHEN etablissement_id <> 0 THEN etablissement_id + [IPX] ELSE 0 END AS etablissement_id,
p_contrats.oid + [IPX] AS code_original,
CASE WHEN profil_id <> 0 THEN profil_id + [IPX] ELSE 0 END AS profil_id,
anciennete_anterieure_mois,
anciennete_anterieure_calculee_mois,
CASE WHEN salarie_remplace_id <> 0 THEN salarie_remplace_id + [IPX] ELSE 0 END AS salarie_remplace_id,
anciennete_anterieure_jours,
anciennete_anterieure_calculee_jours
FROM p_contrats
;
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.p_contrats_mois
', 'temp p_contrats_mois'
);
INSERT INTO rh.p_contrats_mois (
oid,
salarie_id,
contrat_id,
mois_activite,
profil_id,
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,
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,
etablissement_id,
nombre_heures)
SELECT
p_contrats_mois.oid + [IPX] AS oid,
CASE WHEN p_contrats_mois.salarie_id <> 0 THEN p_contrats_mois.salarie_id + [IPX] ELSE 0 END AS salarie_id,
contrat_id + [IPX] AS contrat_id,
mois_activite,
CASE WHEN profil_id <> 0 THEN profil_id + [IPX] ELSE 0 END AS profil_id,
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,
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,
CASE WHEN etablissement_id <> 0 THEN etablissement_id + [IPX] ELSE 0 END AS etablissement_id,
nombre_heures
FROM p_contrats_mois
;
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.p_profil_contrat_mois
', 'temp p_profil_contrat_mois')
;
INSERT INTO rh.p_profil_contrat_mois (
-- profil_avant_transformation_id,
oid,
profil_id,
contrat_mois_id,
ratio,
mois,
salarie_id)
SELECT
-- profil_avant_transformation_id,
oid + [IPX],
CASE WHEN profil_id <> 0 THEN profil_id + [IPX] ELSE 0 END AS profil_id,
CASE WHEN contrat_mois_id <> 0 THEN contrat_mois_id + [IPX] ELSE 0 END AS contrat_mois_id,
ratio,
mois,
CASE WHEN salarie_id <> 0 THEN salarie_id + [IPX] ELSE 0 END AS salarie_id
FROM p_profil_contrat_mois
;
]]>
0 THEN etablissement_id + [IPX] ELSE 0 END AS etablissement_id,
contrat_id + [IPX] AS contrat_id,
age_id,
mois_activite,
date_debut,
date_fin,
mois_paie,
date_paie,
COALESCE(c_rubriques.to_oid,0) AS rubrique_id,
COALESCE(c_compte.to_oid,0) AS compte_id,
0 AS organisme_cotisation_id,
base,
montant_brut,
taux_cotisation_salarie,
montant_cotisation_salarie,
taux_cotisation_patronale,
montant_cotisation_patronale,
montant_net_imposable_salarie,
montant_net_a_payer_salarie,
salarie_id + [IPX] AS salarie_id,
contrat_mois_id + [IPX] AS contrat_mois_id,
CASE WHEN profil_id <> 0 THEN profil_id + [IPX] ELSE 0 END AS profil_id,
montant_avantage_nature,
montant_frais_imposables,
montant_od_net_salarie,
montant_od_net_patronale,
-- ventilation_1_id,
-- ventilation_2_id,
-- ventilation_3_id,
nombre,
montant_masse_salariale,
montant_salarial,
montant_patronal,
heure_contrat,
heure_payee,
heure_travaillee
FROM p_historique_paie
LEFT JOIN c_rubriques ON p_historique_paie.rubrique_id = c_rubriques.oid
LEFT JOIN c_compte ON p_historique_paie.compte_id = c_compte.oid
;
]]>
0 AND oid + [IPX] NOT IN (SELECT oid FROM rh.t_entreprises);
UPDATE rh.t_entreprises SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_entreprises SET code_original = oid WHERE code_original <> oid::text;
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_etablissements
WHERE oid IN (SELECT etablissement_id FROM rh.p_contrats)
', 'temp t_etablissements'
);
INSERT INTO rh.t_etablissements(
oid,
code_original,
code,
texte,
texte_court,
entreprise_id,
base_calcul_etp)
SELECT
oid + [IPX],
oid + [IPX] AS code_original,
'[CPX]' || code,
texte,
texte_court,
CASE WHEN entreprise_id <> 0 THEN entreprise_id + [IPX] ELSE 0 END,
base_calcul_etp
FROM t_etablissements
WHERE oid <> 0 AND oid + [IPX] NOT IN (SELECT oid FROM rh.t_etablissements);
UPDATE rh.t_etablissements SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_etablissements SET code_original = oid WHERE code_original <> oid::text;
-- rubriques
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_rubriques
WHERE oid <> 0
', 'temp t_rubriques'
);
DROP TABLE IF EXISTS c_rubriques;
CREATE TEMP TABLE c_rubriques AS
SELECT
*,
lower(texte) AS texte_adapte,
''::text AS texte_soundex,
''::text AS to_code,
0::bigint AS to_oid
FROM t_rubriques;
UPDATE c_rubriques SET texte_adapte = replace(texte_adapte, 'apprenti', 'app');
UPDATE c_rubriques SET texte_adapte = replace(texte_adapte, 'absence', 'abs');
UPDATE c_rubriques SET texte_adapte = replace(texte_adapte, 'vieillesse', 'vieil');
UPDATE c_rubriques SET texte_adapte = replace(texte_adapte, 'provisions', 'prov');
UPDATE c_rubriques SET texte_adapte = replace(texte_adapte, 'intéressement', 'int');
UPDATE c_rubriques SET texte_adapte = replace(texte_adapte, 'défiscalisées', 'défisc');
UPDATE c_rubriques SET texte_adapte = replace(texte_adapte, 'salaire', 'sal');
UPDATE c_rubriques SET texte_soundex = base.cti_soundex_nom(texte_adapte);
DROP TABLE IF EXISTS w_rubriques_to;
CREATE TEMP TABLE w_rubriques_to AS
SELECT
*,
lower(texte) AS texte_adapte,
''::text AS texte_soundex
FROM rh.t_rubriques
WHERE
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0' OR
t_rubriques.code IN ('C000') AND oid <= 999999999
;
UPDATE w_rubriques_to SET texte_adapte = replace(texte_adapte, 'apprenti', 'app');
UPDATE w_rubriques_to SET texte_adapte = replace(texte_adapte, 'absence', 'abs');
UPDATE w_rubriques_to SET texte_adapte = replace(texte_adapte, 'vieillesse', 'vieil');
UPDATE w_rubriques_to SET texte_adapte = replace(texte_adapte, 'provisions', 'prov');
UPDATE w_rubriques_to SET texte_adapte = replace(texte_adapte, 'intéressement', 'int');
UPDATE w_rubriques_to SET texte_adapte = replace(texte_adapte, 'défiscalisées', 'défisc');
UPDATE w_rubriques_to SET texte_adapte = replace(texte_adapte, 'salaire', 'sal');
UPDATE w_rubriques_to SET texte_soundex = base.cti_soundex_nom(texte_adapte);
UPDATE c_rubriques
SET to_oid = oid + [IPX],
to_code = CASE WHEN (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0' THEN code ELSE '[CPX]' || code END
WHERE code NOT IN (SELECT code FROM w_rubriques_to)
;
UPDATE c_rubriques
SET to_oid = w_rubriques_to.oid,
to_code = c_rubriques.code
FROM w_rubriques_to
WHERE to_oid = 0 AND
c_rubriques.code = w_rubriques_to.code AND
(c_rubriques.texte_soundex = w_rubriques_to.texte_soundex OR c_rubriques.code = 'C000');
UPDATE c_rubriques
SET to_oid = oid + [IPX],
to_code = code || '_[PX]'
WHERE to_oid = 0;
ALTER TABLE c_rubriques ADD CONSTRAINT c_rubriques_pkey PRIMARY KEY(oid);
UPDATE rh.t_rubriques SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_rubriques SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_rubriques(
oid,
code_original,
code,
texte,
texte_court,
rang_edition,
chapitre_bulletin,
heures_payees,
code_calcul,
unite,
coefficient)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court,
rang_edition,
chapitre_bulletin,
heures_payees,
code_calcul,
unite,
coefficient
FROM c_rubriques
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_rubriques);
UPDATE rh.t_rubriques SET
code = c_rubriques.to_code,
code_original = c_rubriques.to_oid,
texte = c_rubriques.texte,
texte_court = c_rubriques.texte_court
FROM c_rubriques
WHERE t_rubriques.oid = c_rubriques.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_rubriques.code IS DISTINCT FROM c_rubriques.to_code OR
t_rubriques.code_original IS DISTINCT FROM c_rubriques.to_oid OR
t_rubriques.texte IS DISTINCT FROM c_rubriques.texte OR
t_rubriques.texte_court IS DISTINCT FROM c_rubriques.texte_court
)
;
-- comptes
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_compte
WHERE oid <> 0
', 'temp t_compte'
);
INSERT INTO rh.t_compte(
code_original,
code,
texte,
texte_court)
SELECT
code_original,
code,
texte,
texte_court
FROM t_compte
WHERE oid <> 0 AND
code NOT IN (SELECT code FROM rh.t_compte WHERE code IS NOT NULL) AND
code_original NOT IN (SELECT code_original FROM rh.t_compte WHERE code IS NOT NULL);
INSERT INTO rh.t_compte(oid, code_original, code, texte, texte_court)
SELECT 0, '', chr(1) || '*', 'Non renseigné', 'N/R'
WHERE 0 NOT IN (SELECT oid FROM rh.t_compte);
DROP TABLE IF EXISTS c_compte;
CREATE TEMP TABLE c_compte AS
SELECT
t_compte.oid,
MIN(t_compte_conso.oid) AS to_oid
FROM t_compte
JOIN rh.t_compte t_compte_conso ON t_compte_conso.code = t_compte.code
GROUP BY 1;
ALTER TABLE c_compte ADD CONSTRAINT c_compte_pkey PRIMARY KEY(oid);
-- Catégories socio professionnelles
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_categories_socio_professionnelle
WHERE oid <> 0
', 'temp t_categories_socio_professionnelle'
);
DROP TABLE IF EXISTS c_categories_socio_professionnelle;
CREATE TEMP TABLE c_categories_socio_professionnelle AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_categories_socio_professionnelle;
DROP TABLE IF EXISTS w_categories_socio_professionnelle_to;
CREATE TEMP TABLE w_categories_socio_professionnelle_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_categories_socio_professionnelle
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_categories_socio_professionnelle
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_categories_socio_professionnelle_to);
UPDATE c_categories_socio_professionnelle
SET to_oid = w_categories_socio_professionnelle_to.oid,
to_code = c_categories_socio_professionnelle.code,
to_texte = c_categories_socio_professionnelle.texte
FROM w_categories_socio_professionnelle_to
WHERE to_oid = 0 AND
c_categories_socio_professionnelle.code = w_categories_socio_professionnelle_to.code AND
c_categories_socio_professionnelle.texte_soundex = w_categories_socio_professionnelle_to.texte_soundex;
UPDATE c_categories_socio_professionnelle
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' ;
UPDATE rh.t_categories_socio_professionnelle SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_categories_socio_professionnelle SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_categories_socio_professionnelle(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_categories_socio_professionnelle
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_categories_socio_professionnelle);
UPDATE rh.t_categories_socio_professionnelle SET
code = c_categories_socio_professionnelle.to_code,
code_original = c_categories_socio_professionnelle.to_oid,
texte = c_categories_socio_professionnelle.texte,
texte_court = c_categories_socio_professionnelle.texte_court
FROM c_categories_socio_professionnelle
WHERE t_categories_socio_professionnelle.oid = c_categories_socio_professionnelle.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_categories_socio_professionnelle.code = c_categories_socio_professionnelle.to_code OR
t_categories_socio_professionnelle.code_original = c_categories_socio_professionnelle.to_oid OR
t_categories_socio_professionnelle.texte = c_categories_socio_professionnelle.texte OR
t_categories_socio_professionnelle.texte_court = c_categories_socio_professionnelle.texte_court
)
;
-- codes_emploi
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_codes_emploi
WHERE oid <> 0
', 'temp t_codes_emploi'
);
DROP TABLE IF EXISTS c_codes_emploi;
CREATE TEMP TABLE c_codes_emploi AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_codes_emploi;
DROP TABLE IF EXISTS w_codes_emploi_to;
CREATE TEMP TABLE w_codes_emploi_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_codes_emploi
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_codes_emploi
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_codes_emploi_to);
UPDATE c_codes_emploi
SET to_oid = w_codes_emploi_to.oid,
to_code = w_codes_emploi_to.code,
to_texte = w_codes_emploi_to.texte
FROM w_codes_emploi_to
WHERE to_oid = 0 AND
c_codes_emploi.code = w_codes_emploi_to.code AND
c_codes_emploi.texte_soundex = w_codes_emploi_to.texte_soundex;
UPDATE c_codes_emploi
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_codes_emploi ADD CONSTRAINT c_codes_emploi_pkey PRIMARY KEY(oid);
UPDATE rh.t_codes_emploi SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_codes_emploi SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_codes_emploi(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_codes_emploi
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_codes_emploi);
UPDATE rh.t_codes_emploi SET
code = c_codes_emploi.to_code,
code_original = c_codes_emploi.to_oid,
texte = c_codes_emploi.texte,
texte_court = c_codes_emploi.texte_court
FROM c_codes_emploi
WHERE t_codes_emploi.oid = c_codes_emploi.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_codes_emploi.code = c_codes_emploi.to_code OR
t_codes_emploi.code_original = c_codes_emploi.to_oid OR
t_codes_emploi.texte = c_codes_emploi.texte OR
t_codes_emploi.texte_court = c_codes_emploi.texte_court
)
;
-- cadre_emploi
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_cadre_emploi
WHERE oid <> 0
', 'temp t_cadre_emploi'
);
DROP TABLE IF EXISTS c_cadre_emploi;
CREATE TEMP TABLE c_cadre_emploi AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_cadre_emploi;
DROP TABLE IF EXISTS w_cadre_emploi_to;
CREATE TEMP TABLE w_cadre_emploi_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_cadre_emploi
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_cadre_emploi
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_cadre_emploi_to);
UPDATE c_cadre_emploi
SET to_oid = w_cadre_emploi_to.oid,
to_code = w_cadre_emploi_to.code,
to_texte = w_cadre_emploi_to.texte
FROM w_cadre_emploi_to
WHERE to_oid = 0 AND
c_cadre_emploi.code = w_cadre_emploi_to.code AND
c_cadre_emploi.texte_soundex = w_cadre_emploi_to.texte_soundex;
UPDATE c_cadre_emploi
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_cadre_emploi ADD CONSTRAINT c_cadre_emploi_pkey PRIMARY KEY(oid);
UPDATE rh.t_cadre_emploi SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_cadre_emploi SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_cadre_emploi(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_cadre_emploi
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_cadre_emploi);
UPDATE rh.t_cadre_emploi SET
code = c_cadre_emploi.to_code,
code_original = c_cadre_emploi.to_oid,
texte = c_cadre_emploi.texte,
texte_court = c_cadre_emploi.texte_court
FROM c_cadre_emploi
WHERE t_cadre_emploi.oid = c_cadre_emploi.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_cadre_emploi.code = c_cadre_emploi.to_code OR
t_cadre_emploi.code_original = c_cadre_emploi.to_oid OR
t_cadre_emploi.texte = c_cadre_emploi.texte OR
t_cadre_emploi.texte_court = c_cadre_emploi.texte_court
)
;
-- motifs_arret
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_motifs_arret
WHERE oid <> 0
', 'temp t_motifs_arret'
);
DROP TABLE IF EXISTS c_motifs_arret;
CREATE TEMP TABLE c_motifs_arret AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
0::bigint AS to_oid
FROM t_motifs_arret;
DROP TABLE IF EXISTS w_motifs_arret_to;
CREATE TEMP TABLE w_motifs_arret_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_motifs_arret
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_motifs_arret
SET to_oid = oid + [IPX],
to_code = code
WHERE code NOT IN (SELECT code FROM w_motifs_arret_to);
UPDATE c_motifs_arret
SET to_oid = w_motifs_arret_to.oid,
to_code = c_motifs_arret.code
FROM w_motifs_arret_to
WHERE to_oid = 0 AND
c_motifs_arret.code = w_motifs_arret_to.code AND
c_motifs_arret.texte_soundex = w_motifs_arret_to.texte_soundex;
UPDATE c_motifs_arret
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
UPDATE rh.t_motifs_arret SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_motifs_arret SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_motifs_arret(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_motifs_arret
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_motifs_arret);
UPDATE rh.t_motifs_arret SET
code = c_motifs_arret.to_code,
code_original = c_motifs_arret.to_oid,
texte = c_motifs_arret.texte,
texte_court = c_motifs_arret.texte_court
FROM c_motifs_arret
WHERE t_motifs_arret.oid = c_motifs_arret.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_motifs_arret.code = c_motifs_arret.to_code OR
t_motifs_arret.code_original = c_motifs_arret.to_oid OR
t_motifs_arret.texte = c_motifs_arret.texte OR
t_motifs_arret.texte_court = c_motifs_arret.texte_court
)
;
-- motifs_debut_contrat
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_motifs_debut_contrat
WHERE oid <> 0
', 'temp t_motifs_debut_contrat'
);
DROP TABLE IF EXISTS c_motifs_debut_contrat;
CREATE TEMP TABLE c_motifs_debut_contrat AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_motifs_debut_contrat;
DROP TABLE IF EXISTS w_motifs_debut_contrat_to;
CREATE TEMP TABLE w_motifs_debut_contrat_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_motifs_debut_contrat
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_motifs_debut_contrat
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_motifs_debut_contrat_to);
UPDATE c_motifs_debut_contrat
SET to_oid = w_motifs_debut_contrat_to.oid,
to_code = c_motifs_debut_contrat.code,
to_texte = c_motifs_debut_contrat.texte
FROM w_motifs_debut_contrat_to
WHERE to_oid = 0 AND
c_motifs_debut_contrat.code = w_motifs_debut_contrat_to.code AND
c_motifs_debut_contrat.texte_soundex = w_motifs_debut_contrat_to.texte_soundex;
UPDATE c_motifs_debut_contrat
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
UPDATE rh.t_motifs_debut_contrat SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_motifs_debut_contrat SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_motifs_debut_contrat(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_motifs_debut_contrat
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_motifs_debut_contrat);
UPDATE rh.t_motifs_debut_contrat SET
code = c_motifs_debut_contrat.to_code,
code_original = c_motifs_debut_contrat.to_oid,
texte = c_motifs_debut_contrat.texte,
texte_court = c_motifs_debut_contrat.texte_court
FROM c_motifs_debut_contrat
WHERE t_motifs_debut_contrat.oid = c_motifs_debut_contrat.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_motifs_debut_contrat.code = c_motifs_debut_contrat.to_code OR
t_motifs_debut_contrat.code_original = c_motifs_debut_contrat.to_oid OR
t_motifs_debut_contrat.texte = c_motifs_debut_contrat.texte OR
t_motifs_debut_contrat.texte_court = c_motifs_debut_contrat.texte_court
)
;
-- motifs_fin_contrat
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_motifs_fin_contrat
WHERE oid <> 0
', 'temp t_motifs_fin_contrat'
);
DROP TABLE IF EXISTS c_motifs_fin_contrat;
CREATE TEMP TABLE c_motifs_fin_contrat AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_motifs_fin_contrat;
DROP TABLE IF EXISTS w_motifs_fin_contrat_to;
CREATE TEMP TABLE w_motifs_fin_contrat_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_motifs_fin_contrat
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_motifs_fin_contrat
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_motifs_fin_contrat_to);
UPDATE c_motifs_fin_contrat
SET to_oid = w_motifs_fin_contrat_to.oid,
to_code = c_motifs_fin_contrat.code,
to_texte = c_motifs_fin_contrat.texte
FROM w_motifs_fin_contrat_to
WHERE to_oid = 0 AND
c_motifs_fin_contrat.code = w_motifs_fin_contrat_to.code AND
c_motifs_fin_contrat.texte_soundex = w_motifs_fin_contrat_to.texte_soundex;
UPDATE c_motifs_fin_contrat
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
UPDATE rh.t_motifs_fin_contrat SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_motifs_fin_contrat SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_motifs_fin_contrat(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_motifs_fin_contrat
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_motifs_fin_contrat);
UPDATE rh.t_motifs_fin_contrat SET
code = c_motifs_fin_contrat.to_code,
code_original = c_motifs_fin_contrat.to_oid,
texte = c_motifs_fin_contrat.texte,
texte_court = c_motifs_fin_contrat.texte_court
FROM c_motifs_fin_contrat
WHERE t_motifs_fin_contrat.oid = c_motifs_fin_contrat.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_motifs_fin_contrat.code = c_motifs_fin_contrat.to_code OR
t_motifs_fin_contrat.code_original = c_motifs_fin_contrat.to_oid OR
t_motifs_fin_contrat.texte = c_motifs_fin_contrat.texte OR
t_motifs_fin_contrat.texte_court = c_motifs_fin_contrat.texte_court
)
;
-- nationalites
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_nationalites
WHERE oid <> 0
', 'temp t_nationalites'
);
DROP TABLE IF EXISTS c_nationalites;
CREATE TEMP TABLE c_nationalites AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
0::bigint AS to_oid
FROM t_nationalites;
DROP TABLE IF EXISTS w_nationalites_to;
CREATE TEMP TABLE w_nationalites_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_nationalites
;
UPDATE c_nationalites
SET to_oid = oid + [IPX],
to_code = code
WHERE code NOT IN (SELECT code FROM w_nationalites_to);
UPDATE c_nationalites
SET to_oid = w_nationalites_to.oid,
to_code = c_nationalites.code
FROM w_nationalites_to
WHERE to_oid = 0 AND
c_nationalites.code = w_nationalites_to.code AND
c_nationalites.texte_soundex = w_nationalites_to.texte_soundex;
UPDATE c_nationalites
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code
WHERE to_oid = 0;
ALTER TABLE c_nationalites ADD CONSTRAINT c_nationalites_pkey PRIMARY KEY(oid);
UPDATE rh.t_nationalites SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_nationalites SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_nationalites(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_nationalites
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_nationalites);
-- qualifications
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_qualifications
WHERE oid <> 0
', 'temp t_qualifications'
);
DROP TABLE IF EXISTS c_qualifications;
CREATE TEMP TABLE c_qualifications AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_qualifications;
DROP TABLE IF EXISTS w_qualifications_to;
CREATE TEMP TABLE w_qualifications_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_qualifications
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_qualifications
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte_court
WHERE code NOT IN (SELECT code FROM w_qualifications_to);
UPDATE c_qualifications
SET to_oid = w_qualifications_to.oid,
to_code = w_qualifications_to.code,
to_texte = w_qualifications_to.texte_court
FROM w_qualifications_to
WHERE to_oid = 0 AND
c_qualifications.code = w_qualifications_to.code AND
c_qualifications.texte_soundex = w_qualifications_to.texte_soundex;
UPDATE c_qualifications
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_qualifications ADD CONSTRAINT c_qualifications_pkey PRIMARY KEY(oid);
UPDATE rh.t_qualifications SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_qualifications SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_qualifications(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_qualifications
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_qualifications);
UPDATE rh.t_qualifications SET
code = c_qualifications.to_code,
code_original = c_qualifications.to_oid,
texte = c_qualifications.texte,
texte_court = c_qualifications.texte_court
FROM c_qualifications
WHERE t_qualifications.oid = c_qualifications.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_qualifications.code = c_qualifications.to_code OR
t_qualifications.code_original = c_qualifications.to_oid OR
t_qualifications.texte = c_qualifications.texte OR
t_qualifications.texte_court = c_qualifications.texte_court
)
;
-- sections_analytiques
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_sections_analytiques
WHERE oid <> 0
', 'temp t_sections_analytiques'
);
DROP TABLE IF EXISTS c_sections_analytiques;
CREATE TEMP TABLE c_sections_analytiques AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_sections_analytiques;
DROP TABLE IF EXISTS w_sections_analytiques_to;
CREATE TEMP TABLE w_sections_analytiques_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_sections_analytiques
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_sections_analytiques
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte_court
WHERE code NOT IN (SELECT code FROM w_sections_analytiques_to);
UPDATE c_sections_analytiques
SET to_oid = w_sections_analytiques_to.oid,
to_code = w_sections_analytiques_to.code,
to_texte = w_sections_analytiques_to.texte_court
FROM w_sections_analytiques_to
WHERE to_oid = 0 AND
c_sections_analytiques.code = w_sections_analytiques_to.code AND
c_sections_analytiques.texte_soundex = w_sections_analytiques_to.texte_soundex;
UPDATE c_sections_analytiques
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_sections_analytiques ADD CONSTRAINT c_sections_analytiques_pkey PRIMARY KEY(oid);
UPDATE rh.t_sections_analytiques SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_sections_analytiques SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_sections_analytiques(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_sections_analytiques
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_sections_analytiques);
UPDATE rh.t_sections_analytiques SET
code = c_sections_analytiques.to_code,
code_original = c_sections_analytiques.to_oid,
texte = c_sections_analytiques.texte,
texte_court = c_sections_analytiques.texte_court
FROM c_sections_analytiques
WHERE t_sections_analytiques.oid = c_sections_analytiques.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_sections_analytiques.code = c_sections_analytiques.to_code OR
t_sections_analytiques.code_original = c_sections_analytiques.to_oid OR
t_sections_analytiques.texte = c_sections_analytiques.texte OR
t_sections_analytiques.texte_court = c_sections_analytiques.texte_court
)
;
-- sections_analytiques paie
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_sections_analytiques_paie
WHERE oid <> 0
', 'temp t_sections_analytiques_paie'
);
DROP TABLE IF EXISTS c_sections_analytiques_paie;
CREATE TEMP TABLE c_sections_analytiques_paie AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_sections_analytiques_paie;
DROP TABLE IF EXISTS w_sections_analytiques_paie_to;
CREATE TEMP TABLE w_sections_analytiques_paie_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_sections_analytiques_paie
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_sections_analytiques_paie
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte_court
WHERE code NOT IN (SELECT code FROM w_sections_analytiques_paie_to);
UPDATE c_sections_analytiques_paie
SET to_oid = w_sections_analytiques_paie_to.oid,
to_code = w_sections_analytiques_paie_to.code,
to_texte = w_sections_analytiques_paie_to.texte_court
FROM w_sections_analytiques_paie_to
WHERE to_oid = 0 AND
c_sections_analytiques_paie.code = w_sections_analytiques_paie_to.code AND
c_sections_analytiques_paie.texte_soundex = w_sections_analytiques_paie_to.texte_soundex;
UPDATE c_sections_analytiques_paie
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_sections_analytiques_paie ADD CONSTRAINT c_sections_analytiques_paie_pkey PRIMARY KEY(oid);
UPDATE rh.t_sections_analytiques_paie SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_sections_analytiques_paie SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_sections_analytiques_paie(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_sections_analytiques_paie
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_sections_analytiques_paie);
UPDATE rh.t_sections_analytiques_paie SET
code = c_sections_analytiques_paie.to_code,
code_original = c_sections_analytiques_paie.to_oid,
texte = c_sections_analytiques_paie.texte,
texte_court = c_sections_analytiques_paie.texte_court
FROM c_sections_analytiques_paie
WHERE t_sections_analytiques_paie.oid = c_sections_analytiques_paie.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_sections_analytiques_paie.code = c_sections_analytiques_paie.to_code OR
t_sections_analytiques_paie.code_original = c_sections_analytiques_paie.to_oid OR
t_sections_analytiques_paie.texte = c_sections_analytiques_paie.texte OR
t_sections_analytiques_paie.texte_court = c_sections_analytiques_paie.texte_court
)
;
-- services
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_services
WHERE oid <> 0
', 'temp t_services'
);
DROP TABLE IF EXISTS c_services;
CREATE TEMP TABLE c_services AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_services;
DROP TABLE IF EXISTS w_services_to;
CREATE TEMP TABLE w_services_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_services
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_services
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte_court
WHERE code NOT IN (SELECT code FROM w_services_to);
UPDATE c_services
SET to_oid = w_services_to.oid,
to_code = w_services_to.code,
to_texte = w_services_to.texte_court
FROM w_services_to
WHERE to_oid = 0 AND
c_services.code = w_services_to.code AND
c_services.texte_soundex = w_services_to.texte_soundex;
UPDATE c_services
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_services ADD CONSTRAINT c_services_pkey PRIMARY KEY(oid);
UPDATE rh.t_services SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_services SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_services(
oid,
code_original,
code,
texte,
texte_court)
SELECT
oid + [IPX] AS to_oid,
oid + [IPX] AS code_original,
'[CPX]' || code AS code,
texte,
texte_court
FROM t_services
WHERE oid <> 0 AND oid + [IPX] NOT IN (SELECT oid FROM rh.t_services);
UPDATE rh.t_services SET
code = c_services.to_code,
code_original = c_services.to_oid,
texte = c_services.texte,
texte_court = c_services.texte_court
FROM c_services
WHERE t_services.oid = c_services.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_services.code = c_services.to_code OR
t_services.code_original = c_services.to_oid OR
t_services.texte = c_services.texte OR
t_services.texte_court = c_services.texte_court
)
;
-- situations_famille
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_situations_famille
WHERE oid <> 0
', 'temp t_situations_famille'
);
DROP TABLE IF EXISTS c_situations_famille;
CREATE TEMP TABLE c_situations_famille AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
0::bigint AS to_oid
FROM t_situations_famille;
DROP TABLE IF EXISTS w_situations_famille_to;
CREATE TEMP TABLE w_situations_famille_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_situations_famille;
UPDATE c_situations_famille
SET to_oid = oid + [IPX],
to_code = code
WHERE code NOT IN (SELECT code FROM w_situations_famille_to);
UPDATE c_situations_famille
SET to_oid = w_situations_famille_to.oid,
to_code = c_situations_famille.code
FROM w_situations_famille_to
WHERE to_oid = 0 AND
c_situations_famille.code = w_situations_famille_to.code AND
c_situations_famille.texte_soundex = w_situations_famille_to.texte_soundex;
UPDATE c_situations_famille
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code
WHERE to_oid = 0;
ALTER TABLE c_situations_famille ADD CONSTRAINT c_situations_famille_pkey PRIMARY KEY(oid);
UPDATE rh.t_situations_famille SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_situations_famille SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_situations_famille(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_situations_famille
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_situations_famille);
-- specialites
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_specialites
WHERE oid <> 0
', 'temp t_specialites'
);
DROP TABLE IF EXISTS c_specialites;
CREATE TEMP TABLE c_specialites AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_specialites;
DROP TABLE IF EXISTS w_specialites_to;
CREATE TEMP TABLE w_specialites_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_specialites
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_specialites
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte_court
WHERE code NOT IN (SELECT code FROM w_specialites_to);
UPDATE c_specialites
SET to_oid = w_specialites_to.oid,
to_code = w_specialites_to.code,
to_texte = w_specialites_to.texte
FROM w_specialites_to
WHERE to_oid = 0 AND
c_specialites.code = w_specialites_to.code AND
c_specialites.texte_soundex = w_specialites_to.texte_soundex;
UPDATE c_specialites
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_specialites ADD CONSTRAINT c_specialites_pkey PRIMARY KEY(oid);
UPDATE rh.t_specialites SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_specialites SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_specialites(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_specialites
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_specialites);
UPDATE rh.t_specialites SET
code = c_specialites.to_code,
code_original = c_specialites.to_oid,
texte = c_specialites.texte,
texte_court = c_specialites.texte_court
FROM c_specialites
WHERE t_specialites.oid = c_specialites.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_specialites.code = c_specialites.to_code OR
t_specialites.code_original = c_specialites.to_oid OR
t_specialites.texte = c_specialites.texte OR
t_specialites.texte_court = c_specialites.texte_court
)
;
-- types_contrat
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_types_contrat
WHERE oid <> 0
', 'temp t_types_contrat'
);
DROP TABLE IF EXISTS c_types_contrat;
CREATE TEMP TABLE c_types_contrat AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_types_contrat;
DROP TABLE IF EXISTS w_types_contrat_to;
CREATE TEMP TABLE w_types_contrat_to AS
SELECT
*,
base.cti_soundex_nom(texte) AS texte_soundex
FROM rh.t_types_contrat
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_types_contrat
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte_court
WHERE code NOT IN (SELECT code FROM w_types_contrat_to);
UPDATE c_types_contrat
SET to_oid = w_types_contrat_to.oid,
to_code = w_types_contrat_to.code,
to_texte = w_types_contrat_to.texte_court
FROM w_types_contrat_to
WHERE to_oid = 0 AND
c_types_contrat.code = w_types_contrat_to.code AND
c_types_contrat.texte_soundex = w_types_contrat_to.texte_soundex;
UPDATE c_types_contrat
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_types_contrat ADD CONSTRAINT c_types_contrat_pkey PRIMARY KEY(oid);
UPDATE rh.t_types_contrat SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_types_contrat SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_types_contrat(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_types_contrat
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_types_contrat);
UPDATE rh.t_types_contrat SET
code = c_types_contrat.to_code,
code_original = c_types_contrat.to_oid,
texte = c_types_contrat.texte,
texte_court = c_types_contrat.texte_court
FROM c_types_contrat
WHERE t_types_contrat.oid = c_types_contrat.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_types_contrat.code = c_types_contrat.to_code OR
t_types_contrat.code_original = c_types_contrat.to_oid OR
t_types_contrat.texte = c_types_contrat.texte OR
t_types_contrat.texte_court = c_types_contrat.texte_court
)
;
-- Types de temps de travail.
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_types_temps_travail
WHERE oid != 0
', 'temp t_types_temps_travail')
;
DROP TABLE IF EXISTS c_types_temps_travail
;
CREATE TEMP TABLE c_types_temps_travail AS
SELECT
*,
code AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_types_temps_travail
;
DROP TABLE IF EXISTS w_types_temps_travail_to
;
CREATE TEMP TABLE w_types_temps_travail_to AS
SELECT
*,
code AS texte_soundex
FROM rh.t_types_temps_travail
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0'
;
UPDATE c_types_temps_travail SET
to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_types_temps_travail_to)
;
UPDATE c_types_temps_travail SET
to_oid = w_types_temps_travail_to.oid,
to_code = w_types_temps_travail_to.code,
to_texte = w_types_temps_travail_to.texte
FROM w_types_temps_travail_to
WHERE 1=1
AND to_oid = 0
AND c_types_temps_travail.code = w_types_temps_travail_to.code
AND c_types_temps_travail.texte_soundex = w_types_temps_travail_to.texte_soundex
;
UPDATE c_types_temps_travail SET
to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0'
;
ALTER TABLE c_types_temps_travail ADD CONSTRAINT c_types_temps_travail_pkey PRIMARY KEY(oid)
;
UPDATE rh.t_types_temps_travail SET
code_original = '#'||oid
WHERE code_original != oid::text
;
UPDATE rh.t_types_temps_travail SET
code_original = oid
WHERE code_original != oid::text
;
INSERT INTO rh.t_types_temps_travail(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_types_temps_travail
WHERE 1=1
AND oid != 0
AND to_oid NOT IN (SELECT oid FROM rh.t_types_temps_travail)
;
UPDATE rh.t_types_temps_travail SET
code = c_types_temps_travail.to_code,
code_original = c_types_temps_travail.to_oid,
texte = c_types_temps_travail.texte,
texte_court = c_types_temps_travail.texte_court
FROM c_types_temps_travail
WHERE t_types_temps_travail.oid = c_types_temps_travail.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_types_temps_travail.code = c_types_temps_travail.to_code OR
t_types_temps_travail.code_original = c_types_temps_travail.to_oid OR
t_types_temps_travail.texte = c_types_temps_travail.texte OR
t_types_temps_travail.texte_court = c_types_temps_travail.texte_court
)
;
-- types_horaire
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_types_horaire
WHERE oid <> 0
', 'temp t_types_horaire'
);
DROP TABLE IF EXISTS c_types_horaire;
CREATE TEMP TABLE c_types_horaire AS
SELECT
*,
code AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_types_horaire;
DROP TABLE IF EXISTS w_types_horaire_to;
CREATE TEMP TABLE w_types_horaire_to AS
SELECT
*,
code AS texte_soundex
FROM rh.t_types_horaire
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_types_horaire
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_types_horaire_to);
UPDATE c_types_horaire
SET to_oid = w_types_horaire_to.oid,
to_code = w_types_horaire_to.code,
to_texte = w_types_horaire_to.texte
FROM w_types_horaire_to
WHERE to_oid = 0 AND
c_types_horaire.code = w_types_horaire_to.code AND
c_types_horaire.texte_soundex = w_types_horaire_to.texte_soundex;
UPDATE c_types_horaire
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_types_horaire ADD CONSTRAINT c_types_horaire_pkey PRIMARY KEY(oid);
UPDATE rh.t_types_horaire SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_types_horaire SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_types_horaire(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_types_horaire
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_types_horaire);
UPDATE rh.t_types_horaire SET
code = c_types_horaire.to_code,
code_original = c_types_horaire.to_oid,
texte = c_types_horaire.texte,
texte_court = c_types_horaire.texte_court
FROM c_types_horaire
WHERE t_types_horaire.oid = c_types_horaire.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_types_horaire.code = c_types_horaire.to_code OR
t_types_horaire.code_original = c_types_horaire.to_oid OR
t_types_horaire.texte = c_types_horaire.texte OR
t_types_horaire.texte_court = c_types_horaire.texte_court
)
;
-- Grilles
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_grilles
WHERE oid <> 0
', 'temp t_grilles'
);
DROP TABLE IF EXISTS c_grilles;
CREATE TEMP TABLE c_grilles AS
SELECT
*,
code AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_grilles;
DROP TABLE IF EXISTS w_grilles_to;
CREATE TEMP TABLE w_grilles_to AS
SELECT
*,
code AS texte_soundex
FROM rh.t_grilles
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_grilles
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_grilles_to);
UPDATE c_grilles
SET to_oid = w_grilles_to.oid,
to_code = w_grilles_to.code,
to_texte = w_grilles_to.texte
FROM w_grilles_to
WHERE to_oid = 0 AND
c_grilles.code = w_grilles_to.code AND
c_grilles.texte_soundex = w_grilles_to.texte_soundex;
UPDATE c_grilles
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_grilles ADD CONSTRAINT c_grilles_pkey PRIMARY KEY(oid);
UPDATE rh.t_grilles SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_grilles SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_grilles(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_grilles
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_grilles);
UPDATE rh.t_grilles SET
code = c_grilles.to_code,
code_original = c_grilles.to_oid,
texte = c_grilles.texte,
texte_court = c_grilles.texte_court
FROM c_grilles
WHERE t_grilles.oid = c_grilles.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_grilles.code = c_grilles.to_code OR
t_grilles.code_original = c_grilles.to_oid OR
t_grilles.texte = c_grilles.texte OR
t_grilles.texte_court = c_grilles.texte_court
)
;
-- Groupes de grille.
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_grilles_groupes
WHERE oid <> 0
', 'temp t_grilles_groupes'
);
DROP TABLE IF EXISTS c_grilles_groupes;
CREATE TEMP TABLE c_grilles_groupes AS
SELECT
*,
code AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_grilles_groupes;
DROP TABLE IF EXISTS w_grilles_groupes_to;
CREATE TEMP TABLE w_grilles_groupes_to AS
SELECT
*,
code AS texte_soundex
FROM rh.t_grilles_groupes
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0';
UPDATE c_grilles_groupes
SET to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_grilles_groupes_to);
UPDATE c_grilles_groupes
SET to_oid = w_grilles_groupes_to.oid,
to_code = w_grilles_groupes_to.code,
to_texte = w_grilles_groupes_to.texte
FROM w_grilles_groupes_to
WHERE to_oid = 0 AND
c_grilles_groupes.code = w_grilles_groupes_to.code AND
c_grilles_groupes.texte_soundex = w_grilles_groupes_to.texte_soundex;
UPDATE c_grilles_groupes
SET to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0';
ALTER TABLE c_grilles_groupes ADD CONSTRAINT c_grilles_groupes_pkey PRIMARY KEY(oid);
UPDATE rh.t_grilles_groupes SET code_original = '#'||oid WHERE code_original <> oid::text;
UPDATE rh.t_grilles_groupes SET code_original = oid WHERE code_original <> oid::text;
INSERT INTO rh.t_grilles_groupes(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_grilles_groupes
WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM rh.t_grilles_groupes);
UPDATE rh.t_grilles_groupes SET
code = c_grilles_groupes.to_code,
code_original = c_grilles_groupes.to_oid,
texte = c_grilles_groupes.texte,
texte_court = c_grilles_groupes.texte_court
FROM c_grilles_groupes
WHERE t_grilles_groupes.oid = c_grilles_groupes.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_grilles_groupes.code = c_grilles_groupes.to_code OR
t_grilles_groupes.code_original = c_grilles_groupes.to_oid OR
t_grilles_groupes.texte = c_grilles_groupes.texte OR
t_grilles_groupes.texte_court = c_grilles_groupes.texte_court
)
;
-- Statuts
SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
SELECT *
FROM rh.t_statuts
WHERE oid != 0
', 'temp t_statuts')
;
DROP TABLE IF EXISTS c_statuts
;
CREATE TEMP TABLE c_statuts AS
SELECT
*,
code AS texte_soundex,
''::text AS to_code,
''::text AS to_texte,
0::bigint AS to_oid
FROM t_statuts
;
DROP TABLE IF EXISTS w_statuts_to
;
CREATE TEMP TABLE w_statuts_to AS
SELECT
*,
code AS texte_soundex
FROM rh.t_statuts
WHERE (SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') IS DISTINCT FROM '0'
;
UPDATE c_statuts SET
to_oid = oid + [IPX],
to_code = code,
to_texte = texte
WHERE code NOT IN (SELECT code FROM w_statuts_to)
;
UPDATE c_statuts SET
to_oid = w_statuts_to.oid,
to_code = w_statuts_to.code,
to_texte = w_statuts_to.texte
FROM w_statuts_to
WHERE 1=1
AND to_oid = 0
AND c_statuts.code = w_statuts_to.code
AND c_statuts.texte_soundex = w_statuts_to.texte_soundex
;
UPDATE c_statuts SET
to_oid = oid + [IPX],
to_code = '[CPX]' || code,
to_texte = texte_court
WHERE to_oid = 0 OR
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0'
;
ALTER TABLE c_statuts ADD CONSTRAINT c_statuts_pkey PRIMARY KEY(oid)
;
UPDATE rh.t_statuts SET
code_original = '#'||oid
WHERE code_original != oid::text
;
UPDATE rh.t_statuts SET
code_original = oid
WHERE code_original != oid::text
;
INSERT INTO rh.t_statuts(
oid,
code_original,
code,
texte,
texte_court)
SELECT
to_oid,
to_oid AS code_original,
to_code,
texte,
texte_court
FROM c_statuts
WHERE 1=1
AND oid != 0
AND to_oid NOT IN (SELECT oid FROM rh.t_statuts)
;
UPDATE rh.t_statuts SET
code = c_statuts.to_code,
code_original = c_statuts.to_oid,
texte = c_statuts.texte,
texte_court = c_statuts.texte_court
FROM c_statuts
WHERE t_statuts.oid = c_statuts.to_oid AND
(SELECT valeur FROM rh.t_divers WHERE t_divers.code = 'CONSO_FUSIONPARAM') = '0' AND
(
t_statuts.code = c_statuts.to_code OR
t_statuts.code_original = c_statuts.to_oid OR
t_statuts.texte = c_statuts.texte OR
t_statuts.texte_court = c_statuts.texte_court
)
;
]]>
1
);
-- Les contrats 'unique' sur tous les sites sont remis avec le numero initial
UPDATE rh.p_contrats
SET numero_contrat = trim(split_part(numero_contrat,'(',1))
WHERE trim(split_part(numero_contrat,'(',1))
NOT IN (
SELECT
trim(split_part(numero_contrat,'(',1))
FROM rh.p_contrats
GROUP BY 1
HAVING count(*) > 1
);
]]>