You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

94 lines
3.1 KiB

return: text
lang: plpgsql
src: |
DECLARE
result TEXT;
_module_pmsimco TEXT;
BEGIN
-- Fusion des fournisseurs
UPDATE eco.p_commandes SET
fournisseur_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE p_commandes.fournisseur_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL
;
UPDATE eco.p_commandes SET
fournisseur_distributeur_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE p_commandes.fournisseur_distributeur_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL
;
UPDATE eco.p_lignes_commandes SET
fournisseur_distributeur_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE p_lignes_commandes.fournisseur_distributeur_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL
;
UPDATE eco.p_mouvements_articles SET
fournisseur_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE p_mouvements_articles.fournisseur_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL
;
UPDATE eco.p_facture SET
fournisseur_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE p_facture.fournisseur_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL
;
UPDATE eco.t_profils SET
fournisseur_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE t_profils.fournisseur_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL
;
UPDATE eco.t_articles
SET fournisseur_principal_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE t_articles.fournisseur_principal_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL
;
UPDATE eco.t_article_fournisseur
SET fournisseur_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE t_article_fournisseur.fournisseur_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL AND
(t_article_fournisseur.article_id::text||'-'||fusionner_vers_fournisseur_id::text) NOT IN (SELECT (t_article_fournisseur2.article_id::text||'-'||t_article_fournisseur2.fournisseur_id::text) FROM eco.t_article_fournisseur t_article_fournisseur2)
;
UPDATE eco.t_article_fournisseur
SET fournisseur_distributeur_id = fusionner_vers_fournisseur_id
FROM eco.t_fournisseurs
WHERE t_article_fournisseur.fournisseur_distributeur_id = t_fournisseurs.oid AND
fusionner_vers_fournisseur_id <> 0 AND
fusionner_vers_fournisseur_id IS NOT NULL
;
DELETE
FROM eco.p_oids
WHERE code_table = 'fournisseurs' AND
oid IN (SELECT t_fournisseurs.oid FROM eco.t_fournisseurs WHERE fusionner_vers_fournisseur_id <> 0 AND fusionner_vers_fournisseur_id IS NOT NULL)
;
RETURN 'OK';
END;