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