0 THEN src.type_id + [IPX] ELSE 0 END, fournisseur_distributeur_id = CASE WHEN src.fournisseur_distributeur_id <> 0 THEN src.fournisseur_distributeur_id + [IPX] ELSE 0 END, code_cahpp = src.code_cahpp, adresse = src.adresse, code_postal_id = src.code_postal_id, ville = src.ville, telephone = src.telephone, fax = src.fax, email = src.email, code_edi = src.code_edi, siret = src.siret, iban = src.iban, cedex = src.cedex, code_comptable = src.code_comptable, bic = src.bic FROM eco_src.t_fournisseurs src WHERE src.oid + [IPX] = t_fournisseurs.oid AND ( t_fournisseurs.code IS DISTINCT FROM ('[TPX]' || src.code) OR t_fournisseurs.texte IS DISTINCT FROM src.texte OR t_fournisseurs.texte_court IS DISTINCT FROM src.texte_court OR t_fournisseurs.type_id IS DISTINCT FROM CASE WHEN src.type_id <> 0 THEN src.type_id + [IPX] ELSE 0 END OR t_fournisseurs.fournisseur_distributeur_id IS DISTINCT FROM CASE WHEN src.fournisseur_distributeur_id <> 0 THEN src.fournisseur_distributeur_id + [IPX] ELSE 0 END OR t_fournisseurs.code_cahpp IS DISTINCT FROM src.code_cahpp OR t_fournisseurs.adresse IS DISTINCT FROM src.adresse OR t_fournisseurs.code_postal_id IS DISTINCT FROM src.code_postal_id OR t_fournisseurs.ville IS DISTINCT FROM src.ville OR t_fournisseurs.telephone IS DISTINCT FROM src.telephone OR t_fournisseurs.fax IS DISTINCT FROM src.fax OR t_fournisseurs.email IS DISTINCT FROM src.email OR t_fournisseurs.code_edi IS DISTINCT FROM src.code_edi OR t_fournisseurs.siret IS DISTINCT FROM src.siret OR t_fournisseurs.iban IS DISTINCT FROM src.iban OR t_fournisseurs.cedex IS DISTINCT FROM src.cedex OR t_fournisseurs.code_comptable IS DISTINCT FROM src.code_comptable OR t_fournisseurs.bic IS DISTINCT FROM src.bic ) ; UPDATE eco.t_fournisseurs SET type_code = t_types_fournisseurs.code, type_texte = t_types_fournisseurs.texte_court, type_section_id = t_types_fournisseurs.section_id, type_section_code = t_types_fournisseurs.section_code, type_section_texte = t_types_fournisseurs.section_texte FROM eco.t_types_fournisseurs WHERE type_id = t_types_fournisseurs.oid AND ( type_code IS DISTINCT FROM t_types_fournisseurs.code OR type_texte IS DISTINCT FROM t_types_fournisseurs.texte_court OR type_section_id IS DISTINCT FROM t_types_fournisseurs.section_id OR type_section_code IS DISTINCT FROM t_types_fournisseurs.section_code OR type_section_texte IS DISTINCT FROM t_types_fournisseurs.section_texte ); -- Maj des gestionnaires SELECT synctable('t_gestionnaires') ; -- Maj des uf SELECT synctable('t_unites_fonctionnelles') ; -- Maj des types mouvements SELECT synctable('t_types_mouvements') ; -- Maj des articles --SELECT synctable('t_articles') impossible car références lieés ; INSERT INTO eco.t_articles ( oid, code, code_original, texte, texte_court) SELECT src.oid + [IPX], left('[TPX]' || src.code,30), '[TPX]' || src.code_original, src.texte, src.texte_court FROM eco_src.t_articles src LEFT JOIN eco.t_articles cible ON src.oid + [IPX] = cible.oid WHERE cible.code_original IS NULL AND src.oid != 0 ORDER by 1; UPDATE eco.t_articles SET code = left('[TPX]'::text || src.code,30), code_original = '[TPX]'::text || src.code_original, texte = src.texte, texte_court = src.texte_court, ucd_id = src.ucd_id, lpp_id = src.lpp_id, code_ucd13 = src.code_ucd13, taux_tva_en_cours = src.taux_tva_en_cours, gere_en_stock = src.gere_en_stock, stock_en_depot = src.stock_en_depot, type_id = CASE WHEN src.type_id <> 0 THEN src.type_id + [IPX] ELSE 0 END, famille_id = CASE WHEN src.famille_id <> 0 THEN src.famille_id + [IPX] ELSE 0 END, sous_famille_id = CASE WHEN src.sous_famille_id <> 0 THEN src.sous_famille_id + [IPX] ELSE 0 END, categorie_id = CASE WHEN src.categorie_id <> 0 THEN src.categorie_id + [IPX] ELSE 0 END, sous_categorie_id = CASE WHEN src.sous_categorie_id <> 0 THEN src.sous_categorie_id + [IPX] ELSE 0 END, unite_stockage_id = CASE WHEN src.unite_stockage_id <> 0 THEN src.unite_stockage_id + [IPX] ELSE 0 END, unite_distribution_id = CASE WHEN src.unite_distribution_id <> 0 THEN src.unite_distribution_id + [IPX] ELSE 0 END FROM eco_src.t_articles src WHERE src.oid + [IPX] = t_articles.oid AND ( t_articles.code IS DISTINCT FROM left('[TPX]'::text || src.code,30) OR t_articles.code_original IS DISTINCT FROM '[TPX]' || src.code_original OR t_articles.texte IS DISTINCT FROM src.texte OR t_articles.texte_court IS DISTINCT FROM src.texte_court OR t_articles.ucd_id IS DISTINCT FROM src.ucd_id OR t_articles.lpp_id IS DISTINCT FROM src.lpp_id OR t_articles.code_ucd13 IS DISTINCT FROM src.code_ucd13 OR t_articles.taux_tva_en_cours IS DISTINCT FROM src.taux_tva_en_cours OR t_articles.stock_en_depot IS DISTINCT FROM src.stock_en_depot OR t_articles.gere_en_stock IS DISTINCT FROM src.gere_en_stock OR t_articles.type_id IS DISTINCT FROM CASE WHEN src.type_id <> 0 THEN src.type_id + [IPX] ELSE 0 END OR t_articles.famille_id IS DISTINCT FROM CASE WHEN src.famille_id <> 0 THEN src.famille_id + [IPX] ELSE 0 END OR t_articles.sous_famille_id IS DISTINCT FROM CASE WHEN src.sous_famille_id <> 0 THEN src.sous_famille_id + [IPX] ELSE 0 END OR t_articles.categorie_id IS DISTINCT FROM CASE WHEN src.categorie_id <> 0 THEN src.categorie_id + [IPX] ELSE 0 END OR t_articles.sous_categorie_id IS DISTINCT FROM CASE WHEN src.sous_categorie_id <> 0 THEN src.sous_categorie_id + [IPX] ELSE 0 END OR t_articles.unite_stockage_id IS DISTINCT FROM CASE WHEN src.unite_stockage_id <> 0 THEN src.unite_stockage_id + [IPX] ELSE 0 END OR t_articles.unite_distribution_id IS DISTINCT FROM CASE WHEN src.unite_distribution_id <> 0 THEN src.unite_distribution_id + [IPX] ELSE 0 END ) ; UPDATE eco.t_articles SET compte_id = CASE WHEN src.compte_id <> 0 THEN src.compte_id + [IPX] ELSE 0 END FROM eco_src.t_articles src WHERE src.oid + [IPX] = t_articles.oid AND (SELECT valeur FROM eco.t_divers WHERE code = 'MERGE_CPT') <> '1' AND ( t_articles.compte_id IS DISTINCT FROM CASE WHEN src.compte_id <> 0 THEN src.compte_id + [IPX] ELSE 0 END ) ; UPDATE eco.t_articles SET compte_id = COALESCE(subview.compte_id,0) FROM eco_src.t_articles src JOIN eco_src.t_compte src_compte ON src.compte_id = src_compte.oid LEFT JOIN (SELECT code, MIN(oid) AS compte_id FROM eco.t_compte GROUP BY 1) subview ON src_compte.code = subview.code WHERE src.oid + [IPX] = t_articles.oid AND (SELECT valeur FROM eco.t_divers WHERE code = 'MERGE_CPT') = '1' AND ( t_articles.compte_id IS DISTINCT FROM COALESCE(subview.compte_id,0) ) ; UPDATE eco.t_articles SET classification_atc_id = COALESCE(subview.classification_atc_id,0) FROM eco_src.t_articles src JOIN eco_src.t_classification_atc src_classification_atc ON src.classification_atc_id = src_classification_atc.oid LEFT JOIN (SELECT code, MIN(oid) AS classification_atc_id FROM eco.t_classification_atc GROUP BY 1) subview ON src_classification_atc.code = subview.code WHERE src.oid + [IPX] = t_articles.oid AND ( t_articles.classification_atc_id IS DISTINCT FROM COALESCE(subview.classification_atc_id,0) ) ; UPDATE eco.t_articles SET type_code = t_types_articles.code, type_texte = t_types_articles.texte_court, type_section_id = t_types_articles.section_id, type_section_code = t_types_articles.section_code, type_section_texte = t_types_articles.section_texte, famille_code = t_familles_articles.code, famille_texte = t_familles_articles.texte_court, famille_section_id = t_familles_articles.section_id, famille_section_code = t_familles_articles.section_code, famille_section_texte = t_familles_articles.section_texte, sous_famille_code = t_sous_familles_articles.code, sous_famille_texte = t_sous_familles_articles.texte_court, sous_famille_section_id = t_sous_familles_articles.section_id, sous_famille_section_code = t_sous_familles_articles.section_code, sous_famille_section_texte = t_sous_familles_articles.section_texte, categorie_code = t_categories_articles.code, categorie_texte = t_categories_articles.texte_court, categorie_section_id = t_categories_articles.section_id, categorie_section_code = t_categories_articles.section_code, categorie_section_texte = t_categories_articles.section_texte, sous_categorie_code = t_sous_categories_articles.code, sous_categorie_texte = t_sous_categories_articles.texte_court, sous_categorie_section_id = t_sous_categories_articles.section_id, sous_categorie_section_code = t_sous_categories_articles.section_code, sous_categorie_section_texte = t_sous_categories_articles.section_texte, classification_atc_code = t_classification_atc.code, classification_atc_texte = t_classification_atc.texte_court, classification_atc_section_id = t_classification_atc.section_id, classification_atc_section_code = t_classification_atc.section_code, classification_atc_section_texte = t_classification_atc.section_texte, classification_atc_1_id = t_classification_atc.classification_atc_1_id, classification_atc_1_code = t_classification_atc.classification_atc_1_code, classification_atc_1_texte = t_classification_atc.classification_atc_1_texte, classification_atc_2_id = t_classification_atc.classification_atc_2_id, classification_atc_2_code = t_classification_atc.classification_atc_2_code, classification_atc_2_texte = t_classification_atc.classification_atc_2_texte, classification_atc_3_id = t_classification_atc.classification_atc_3_id, classification_atc_3_code = t_classification_atc.classification_atc_3_code, classification_atc_3_texte = t_classification_atc.classification_atc_3_texte, classification_atc_4_id = t_classification_atc.classification_atc_4_id, classification_atc_4_code = t_classification_atc.classification_atc_4_code, classification_atc_4_texte = t_classification_atc.classification_atc_4_texte, unite_stockage_code = t_unites_stockage.code, unite_stockage_texte = t_unites_stockage.texte_court, unite_stockage_section_id = t_unites_stockage.section_id, unite_stockage_section_code = t_unites_stockage.section_code, unite_stockage_section_texte = t_unites_stockage.section_texte, unite_distribution_code = t_unites_distribution.code, unite_distribution_texte = t_unites_distribution.texte_court, unite_distribution_section_id = t_unites_distribution.section_id, unite_distribution_section_code = t_unites_distribution.section_code, unite_distribution_section_texte = t_unites_distribution.section_texte, compte_code = t_compte.code, compte_texte = t_compte.texte_court, compte_section_id = t_compte.section_id, compte_section_code = t_compte.section_code, compte_section_texte = t_compte.section_texte FROM eco.t_types_articles , eco.t_familles_articles, eco.t_sous_familles_articles, eco.t_categories_articles, eco.t_sous_categories_articles, eco.t_classification_atc, eco.t_unites t_unites_stockage, eco.t_unites t_unites_distribution, eco.t_compte WHERE type_id = t_types_articles.oid AND famille_id = t_familles_articles.oid AND sous_famille_id = t_sous_familles_articles.oid AND categorie_id = t_categories_articles.oid AND sous_categorie_id = t_sous_categories_articles.oid AND classification_atc_id = t_classification_atc.oid AND unite_stockage_id = t_unites_stockage.oid AND unite_distribution_id = t_unites_distribution.oid AND compte_id = t_compte.oid AND ( type_code IS DISTINCT FROM t_types_articles.code OR type_texte IS DISTINCT FROM t_types_articles.texte_court OR type_section_id IS DISTINCT FROM t_types_articles.section_id OR type_section_code IS DISTINCT FROM t_types_articles.section_code OR type_section_texte IS DISTINCT FROM t_types_articles.section_texte OR famille_code IS DISTINCT FROM t_familles_articles.code OR famille_texte IS DISTINCT FROM t_familles_articles.texte_court OR famille_section_id IS DISTINCT FROM t_familles_articles.section_id OR famille_section_code IS DISTINCT FROM t_familles_articles.section_code OR famille_section_texte IS DISTINCT FROM t_familles_articles.section_texte OR sous_famille_code IS DISTINCT FROM t_sous_familles_articles.code OR sous_famille_texte IS DISTINCT FROM t_sous_familles_articles.texte_court OR sous_famille_section_id IS DISTINCT FROM t_sous_familles_articles.section_id OR sous_famille_section_code IS DISTINCT FROM t_sous_familles_articles.section_code OR sous_famille_section_texte IS DISTINCT FROM t_sous_familles_articles.section_texte OR categorie_code IS DISTINCT FROM t_categories_articles.code OR categorie_texte IS DISTINCT FROM t_categories_articles.texte_court OR categorie_section_id IS DISTINCT FROM t_categories_articles.section_id OR categorie_section_code IS DISTINCT FROM t_categories_articles.section_code OR categorie_section_texte IS DISTINCT FROM t_categories_articles.section_texte OR sous_categorie_code IS DISTINCT FROM t_sous_categories_articles.code OR sous_categorie_texte IS DISTINCT FROM t_sous_categories_articles.texte_court OR sous_categorie_section_id IS DISTINCT FROM t_sous_categories_articles.section_id OR sous_categorie_section_code IS DISTINCT FROM t_sous_categories_articles.section_code OR sous_categorie_section_texte IS DISTINCT FROM t_sous_categories_articles.section_texte OR t_articles.classification_atc_code IS DISTINCT FROM t_classification_atc.code OR t_articles.classification_atc_texte IS DISTINCT FROM t_classification_atc.texte_court OR t_articles.classification_atc_section_id IS DISTINCT FROM t_classification_atc.section_id OR t_articles.classification_atc_section_code IS DISTINCT FROM t_classification_atc.section_code OR t_articles.classification_atc_section_texte IS DISTINCT FROM t_classification_atc.section_texte OR t_articles.classification_atc_1_id IS DISTINCT FROM t_classification_atc.classification_atc_1_id OR t_articles.classification_atc_1_code IS DISTINCT FROM t_classification_atc.classification_atc_1_code OR t_articles.classification_atc_1_texte IS DISTINCT FROM t_classification_atc.classification_atc_1_texte OR t_articles.classification_atc_2_id IS DISTINCT FROM t_classification_atc.classification_atc_2_id OR t_articles.classification_atc_2_code IS DISTINCT FROM t_classification_atc.classification_atc_2_code OR t_articles.classification_atc_2_texte IS DISTINCT FROM t_classification_atc.classification_atc_2_texte OR t_articles.classification_atc_3_id IS DISTINCT FROM t_classification_atc.classification_atc_3_id OR t_articles.classification_atc_3_code IS DISTINCT FROM t_classification_atc.classification_atc_3_code OR t_articles.classification_atc_3_texte IS DISTINCT FROM t_classification_atc.classification_atc_3_texte OR t_articles.classification_atc_4_id IS DISTINCT FROM t_classification_atc.classification_atc_4_id OR t_articles.classification_atc_4_code IS DISTINCT FROM t_classification_atc.classification_atc_4_code OR t_articles.classification_atc_4_texte IS DISTINCT FROM t_classification_atc.classification_atc_4_texte OR t_articles.unite_stockage_code IS DISTINCT FROM t_unites_stockage.code OR t_articles.unite_stockage_texte IS DISTINCT FROM t_unites_stockage.texte_court OR t_articles.unite_stockage_section_id IS DISTINCT FROM t_unites_stockage.section_id OR t_articles.unite_stockage_section_code IS DISTINCT FROM t_unites_stockage.section_code OR t_articles.unite_stockage_section_texte IS DISTINCT FROM t_unites_stockage.section_texte OR t_articles.unite_distribution_code IS DISTINCT FROM t_unites_distribution.code OR t_articles.unite_distribution_texte IS DISTINCT FROM t_unites_distribution.texte_court OR t_articles.unite_distribution_section_id IS DISTINCT FROM t_unites_distribution.section_id OR t_articles.unite_distribution_section_code IS DISTINCT FROM t_unites_distribution.section_code OR t_articles.unite_distribution_section_texte IS DISTINCT FROM t_unites_distribution.section_texte OR t_articles.compte_code IS DISTINCT FROM t_compte.code OR t_articles.compte_texte IS DISTINCT FROM t_compte.texte_court OR t_articles.compte_section_id IS DISTINCT FROM t_compte.section_id OR t_articles.compte_section_code IS DISTINCT FROM t_compte.section_code OR t_articles.compte_section_texte IS DISTINCT FROM t_compte.section_texte ); UPDATE eco.t_articles SET ref_fournisseur_id = src.ref_fournisseur_id, ref_fournisseur_texte = src.ref_fournisseur_texte FROM ( SELECT oid, array_agg(fou_id + [IPX]) AS ref_fournisseur_id, array_agg(fou_txt) AS ref_fournisseur_texte FROM ( SELECT oid, unnest(ref_fournisseur_id) as fou_id, unnest(ref_fournisseur_texte) AS fou_txt FROM eco_src.t_articles src ) sub GROUP BY 1 ) src WHERE src.oid + [IPX] = t_articles.oid AND ( t_articles.ref_fournisseur_id != src.ref_fournisseur_id OR t_articles.ref_fournisseur_texte != src.ref_fournisseur_texte ) ; DELETE FROM eco.t_article_fournisseur WHERE oid NOT IN (SELECT oid FROM eco_src.t_article_fournisseur) AND oid BETWEEN [IPX] AND ([IPX]+10000000) ; INSERT INTO eco.t_article_fournisseur ( oid, code_original, article_id, fournisseur_id, code_reference_fournisseur, texte_reference_fournisseur, code_cip, code_cahpp, unite_approvisionnement_id, nombre_conditionnement_approvisionnement, prix_unitaire_en_cours, est_fournisseur_principal, fournisseur_distributeur_id, ucd_id, lpp_id, code_ucd13 ) SELECT src.oid + [IPX], '[TPX]' || src.code_original, CASE WHEN src.article_id > 0 THEN src.article_id + [IPX] ELSE 0 END, CASE WHEN src.fournisseur_id > 0 THEN src.fournisseur_id + [IPX] ELSE 0 END, src.code_reference_fournisseur, src.texte_reference_fournisseur, src.code_cip, src.code_cahpp, CASE WHEN src.unite_approvisionnement_id > 0 THEN src.unite_approvisionnement_id + [IPX] ELSE 0 END, src.nombre_conditionnement_approvisionnement, src.prix_unitaire_en_cours, src.est_fournisseur_principal, CASE WHEN src.fournisseur_distributeur_id > 0 THEN src.fournisseur_distributeur_id + [IPX] ELSE 0 END, src.ucd_id, src.lpp_id, src.code_ucd13 FROM eco_src.t_article_fournisseur src LEFT JOIN eco.t_article_fournisseur cible ON src.oid + [IPX] = cible.oid WHERE cible.oid IS NULL AND src.oid != 0 ORDER BY 1 ; UPDATE eco.t_article_fournisseur cible SET code_original = '[TPX]'::text || src.code_original, article_id = CASE WHEN src.article_id > 0 THEN src.article_id + [IPX] ELSE 0 END, fournisseur_id = CASE WHEN src.fournisseur_id > 0 THEN src.fournisseur_id + [IPX] ELSE 0 END, code_reference_fournisseur = src.code_reference_fournisseur, texte_reference_fournisseur = src.texte_reference_fournisseur, code_cip = src.code_cip, code_cahpp = src.code_cahpp, unite_approvisionnement_id = CASE WHEN src.unite_approvisionnement_id > 0 THEN src.unite_approvisionnement_id + [IPX] ELSE 0 END, nombre_conditionnement_approvisionnement = src.nombre_conditionnement_approvisionnement, prix_unitaire_en_cours = src.prix_unitaire_en_cours, est_fournisseur_principal = src.est_fournisseur_principal, fournisseur_distributeur_id = CASE WHEN src.fournisseur_distributeur_id > 0 THEN src.fournisseur_distributeur_id + [IPX] ELSE 0 END, ucd_id = src.ucd_id, lpp_id = src.lpp_id, code_ucd13 = src.code_ucd13 FROM eco_src.t_article_fournisseur src WHERE src.oid + [IPX] = cible.oid AND ( cible.code_original = '[TPX]'::text || src.code_original AND cible.article_id IS DISTINCT FROM CASE WHEN src.article_id > 0 THEN src.article_id + [IPX] ELSE 0 END OR cible.fournisseur_id IS DISTINCT FROM CASE WHEN src.fournisseur_id > 0 THEN src.fournisseur_id + [IPX] ELSE 0 END OR cible.code_reference_fournisseur IS DISTINCT FROM src.code_reference_fournisseur OR cible.texte_reference_fournisseur IS DISTINCT FROM src.texte_reference_fournisseur OR cible.code_cip IS DISTINCT FROM src.code_cip OR cible.code_cahpp IS DISTINCT FROM src.code_cahpp OR cible.unite_approvisionnement_id IS DISTINCT FROM CASE WHEN src.unite_approvisionnement_id > 0 THEN src.unite_approvisionnement_id + [IPX] ELSE 0 END OR cible.nombre_conditionnement_approvisionnement IS DISTINCT FROM src.nombre_conditionnement_approvisionnement OR cible.prix_unitaire_en_cours IS DISTINCT FROM src.prix_unitaire_en_cours OR cible.est_fournisseur_principal IS DISTINCT FROM src.est_fournisseur_principal OR cible.fournisseur_distributeur_id IS DISTINCT FROM CASE WHEN src.fournisseur_distributeur_id > 0 THEN src.fournisseur_distributeur_id + [IPX] ELSE 0 END OR cible.ucd_id IS DISTINCT FROM src.ucd_id OR cible.lpp_id IS DISTINCT FROM src.lpp_id OR cible.code_ucd13 IS DISTINCT FROM src.code_ucd13 ) ; ]]> fp('end')::date - interval '1 day'; DELETE FROM eco.p_chiffrier_production WHERE provider_id = fp('provider') AND substr(mois,1,4)||'-'||substr(mois,5,2)||'-01' NOT BETWEEN fp('str')::date and fp('end')::date - interval '1 day'; ]]> 0 FROM base.t_finess WHERE 1=1 AND code = '440002020' ; ]]>