'S' ; UPDATE eco.p_mouvements_articles SET sens_mouvement = 'E', entree_montant = 0 - sortie_montant, entree_montant_ht = 0 - sortie_montant_ht, entree_quantite = 0 -sortie_quantite, sortie_montant = 0, sortie_montant_ht = 0, sortie_quantite = 0 FROM eco.t_types_mouvements WHERE type_mouvement_id = t_types_mouvements.oid AND t_types_mouvements.sens_force = 'E' AND p_mouvements_articles.sens_mouvement <> 'E' ; ]]> 0.15 ) subview WHERE p_mouvements_articles.oid = subview.oid AND t_types_mouvements.code_original = '*CTIERR' ; ]]> 0 FROM eco.t_divers WHERE 1=1 AND code = 'FORCE_LIV_LIQ' AND valeur = '1' ; ]]> 'T' ; -- commandes soldées non livrées UPDATE eco.p_lignes_commandes SET quantite_approvisionnement = 0, quantite_stockage = 0 WHERE 1=1 AND montant_commande_ht = 0 AND etat_liquidation = 'T' AND quantite_livraison_approvisionnement = 0 AND etat_livraison = 'N' AND (SELECT valeur = '1' FROM eco.t_divers WHERE code = 'FORCE_QTE_APR_STK') ; ]]> 0 GROUP BY 1 HAVING count(DISTINCT fournisseur_id) = 1 ) subview WHERE p_mouvements_articles.article_id = subview.article_id AND p_mouvements_articles.fournisseur_id = 0 ; UPDATE eco.p_mouvements_articles SET fournisseur_id = subview.fournisseur_id FROM ( SELECT article_id, MAX(fournisseur_id) AS fournisseur_id FROM eco.t_article_fournisseur WHERE fournisseur_id <> 0 GROUP BY 1 HAVING count(DISTINCT fournisseur_id) = 1 ) subview WHERE p_mouvements_articles.article_id = subview.article_id AND p_mouvements_articles.fournisseur_id = 0 ; UPDATE eco.p_mouvements_articles SET fournisseur_id = sub.fournisseur_id FROM (SELECT article_id, fournisseur_id, date, date(COALESCE(lead(date) OVER (PARTITION BY article_id ORDER BY date),'2099-12-31')- interval '1 day') AS next_date FROM eco.p_mouvements_articles WHERE fournisseur_id != 0 AND entree_quantite > 0 ) sub WHERE p_mouvements_articles.fournisseur_id = 0 AND p_mouvements_articles.article_id = sub.article_id AND p_mouvements_articles.date between sub.date AND next_date ; UPDATE eco.p_mouvements_articles SET fournisseur_id = subview.fournisseur_id FROM ( SELECT article_id, MIN(date) AS date_min, (MIN(Array[date::text,fournisseur_id::text]))[2]::bigint AS fournisseur_id FROM eco.p_mouvements_articles WHERE fournisseur_id <> 0 GROUP BY 1 ) subview WHERE p_mouvements_articles.article_id =subview.article_id AND p_mouvements_articles.fournisseur_id = 0 AND p_mouvements_articles.date < date_min ; UPDATE eco.p_mouvements_articles SET fournisseur_id = subview.fournisseur_id FROM ( SELECT article_id, MAX(fournisseur_id) AS fournisseur_id FROM eco.t_article_fournisseur WHERE fournisseur_id <> 0 AND est_fournisseur_principal = '1' GROUP BY 1 HAVING count(DISTINCT fournisseur_id) = 1 ) subview WHERE p_mouvements_articles.article_id = subview.article_id AND p_mouvements_articles.fournisseur_id = 0 ; UPDATE eco.t_articles SET ref_fournisseur_id[1] = sub.fournisseur_id FROM ( SELECT article_id, MAX(fournisseur_id) AS fournisseur_id FROM eco.p_commandes LEFT JOIN eco.p_lignes_commandes on commande_id = p_commandes.oid WHERE fournisseur_id != 0 GROUP BY 1 HAVING max(fournisseur_id) > 0 ) sub WHERE oid = sub.article_id AND ref_fournisseur_id[1] = 0 ; UPDATE eco.p_mouvements_articles SET fournisseur_id = t_articles.ref_fournisseur_id[1] FROM eco.t_articles WHERE p_mouvements_articles.article_id = t_articles.oid AND fournisseur_id = 0 AND ref_fournisseur_id[1] != 0 AND ref_fournisseur_id[1] IS NOT NULL ; ]]> = '20140101' ; UPDATE eco.t_articles SET taux_tva_en_cours = subview.taux_tva FROM ( SELECT article_id, (MAX(Array[date_commande::text,taux_tva::text]))[2]::numeric AS taux_tva FROM eco.p_lignes_commandes JOIN eco.p_commandes ON commande_id = p_commandes.oid WHERE taux_tva <> 0 GROUP BY 1 ) subview WHERE t_articles.oid = subview.article_id AND t_articles.taux_tva_en_cours <> subview.taux_tva ; UPDATE eco.t_articles SET taux_tva_en_cours = 20 WHERE taux_tva_en_cours = 19.6 ; ]]> 0 FROM eco.t_divers WHERE 1=1 AND code = 'FORCE_ATC' AND valeur = '1' ; ]]> 0 AND t_articles.classification_atc_id <> t_classification_atc.oid; UPDATE eco.t_articles SET classification_atc_id = t_classification_atc.oid FROM base.t_lpp b_lpp JOIN pmsi.t_lpp p_lpp ON b_lpp.code = p_lpp.code JOIN ( SELECT t_classes_sections.code as atc_code, to_id FROM pmsi.t_classes JOIN pmsi.t_classes_sections ON classe_id = t_classes.oid JOIN pmsi.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.sequence = 14 ) atc ON to_id = b_lpp.oid JOIN eco.t_classification_atc ON atc_code = t_classification_atc.code WHERE t_articles.lpp_id = b_lpp.oid AND lpp_id <> 0 AND t_articles.classification_atc_id <> t_classification_atc.oid ; UPDATE eco.t_articles SET 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 FROM eco.t_classification_atc WHERE classification_atc_id = t_classification_atc.oid AND ( 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 ); ]]> 0 JOIN eco.t_types_articles ON t_types_articles.defaut_selon = 'CPT' AND t_compte.code LIKE ANY(string_to_array(t_types_articles.defaut_selon_codes,',')) GROUP BY 1 ) subview WHERE t_articles.oid = subview.oid AND type_id = 0 AND ( type_id IS DISTINCT FROM subview.type_force_id OR type_code IS DISTINCT FROM subview.type_force_code OR type_texte IS DISTINCT FROM subview.type_force_texte OR type_section_id IS DISTINCT FROM subview.type_force_section_id OR type_section_code IS DISTINCT FROM subview.type_force_section_code OR type_section_texte IS DISTINCT FROM subview.type_force_section_texte ) ; -- Type selon catégorie UPDATE eco.t_articles SET type_id = subview.type_force_id, type_code = subview.type_force_code, type_texte = subview.type_force_texte, type_section_id = subview.type_force_section_id, type_section_code = subview.type_force_section_code, type_section_texte = subview.type_force_section_texte FROM ( SELECT t_articles.oid, MAX(t_types_articles.oid) AS type_force_id, MAX(t_types_articles.code) AS type_force_code, MAX(t_types_articles.texte_court) AS type_force_texte, MAX(t_types_articles.section_id) AS type_force_section_id, MAX(t_types_articles.section_code) AS type_force_section_code, MAX(t_types_articles.section_texte) AS type_force_section_texte FROM eco.t_articles JOIN eco.t_categories_articles ON t_categories_articles.oid = categorie_id AND categorie_id > 0 JOIN eco.t_types_articles ON t_types_articles.defaut_selon = 'CAT' AND t_categories_articles.code LIKE ANY(string_to_array(t_types_articles.defaut_selon_codes,',')) GROUP BY 1 ) subview WHERE t_articles.oid = subview.oid AND type_id = 0 AND ( type_id IS DISTINCT FROM subview.type_force_id OR type_code IS DISTINCT FROM subview.type_force_code OR type_texte IS DISTINCT FROM subview.type_force_texte OR type_section_id IS DISTINCT FROM subview.type_force_section_id OR type_section_code IS DISTINCT FROM subview.type_force_section_code OR type_section_texte IS DISTINCT FROM subview.type_force_section_texte ) ; UPDATE eco.p_lignes_commandes SET fournisseur_distributeur_id = t_article_fournisseur.fournisseur_distributeur_id FROM eco.p_commandes, eco.t_article_fournisseur WHERE p_lignes_commandes.commande_id = p_commandes.oid AND t_article_fournisseur.article_id = p_lignes_commandes.article_id AND t_article_fournisseur.fournisseur_id = p_commandes.fournisseur_id AND p_lignes_commandes.fournisseur_distributeur_id IS DISTINCT from t_article_fournisseur.fournisseur_distributeur_id AND t_article_fournisseur.fournisseur_distributeur_id <> 0 ; UPDATE eco.p_commandes SET fournisseur_distributeur_id = fournisseur_id WHERE fournisseur_distributeur_id = 0 ; UPDATE eco.p_commandes SET fournisseur_distributeur_id = subview.fournisseur_distributeur_id FROM ( SELECT commande_id, (MAX(ARRAY[to_char(subview.montant_commande_ht,'FM000000000000000000.00'),subview.fournisseur_distributeur_id::text]))[2]::bigint AS fournisseur_distributeur_id FROM ( SELECT commande_id, p_lignes_commandes.fournisseur_distributeur_id, SUM(p_lignes_commandes.montant_commande_ht) AS montant_commande_ht FROM eco.p_lignes_commandes JOIN eco.p_commandes ON p_lignes_commandes.commande_id = p_commandes.oid group by 1,2 ) subview GROUP BY 1 ) subview WHERE p_commandes.oid = subview.commande_id AND p_commandes.fournisseur_distributeur_id IS DISTINCT FROM subview.fournisseur_distributeur_id ; INSERT INTO base.t_ucd (code, texte, texte_court) SELECT code_reference_fournisseur, MAX(texte_reference_fournisseur), MAX(texte_reference_fournisseur) FROM eco.t_article_fournisseur WHERE length(code_reference_fournisseur) = 7 AND code_reference_fournisseur BETWEEN '9000000' AND '9899999' AND base.cti_to_number(code_reference_fournisseur)::text = code_reference_fournisseur AND code_reference_fournisseur NOT IN (SELECT code FROM base.t_ucd) GROUP BY 1; UPDATE eco.t_article_fournisseur SET ucd_id = t_ucd.oid FROM base.t_ucd WHERE code_reference_fournisseur = t_ucd.code AND length(code_reference_fournisseur) = 7 AND code_reference_fournisseur BETWEEN '9000000' AND '9899999' AND t_article_fournisseur.ucd_id IS DISTINCT FROM t_ucd.oid ; INSERT INTO base.t_ucd (code, texte, texte_court) SELECT substr(code_reference_fournisseur,6,7), MAX(texte_reference_fournisseur), MAX(texte_reference_fournisseur) FROM eco.t_article_fournisseur WHERE length(code_reference_fournisseur) = 13 AND substr(code_reference_fournisseur,6,7) BETWEEN '9000000' AND '9899999' AND code_reference_fournisseur LIKE '34008%' AND base.cti_to_number(code_reference_fournisseur)::text = code_reference_fournisseur AND substr(code_reference_fournisseur,6,7) NOT IN (SELECT code FROM base.t_ucd) GROUP BY 1; UPDATE eco.t_article_fournisseur SET ucd_id = t_ucd.oid FROM base.t_ucd WHERE substr(code_reference_fournisseur,6,7) = t_ucd.code AND length(code_reference_fournisseur) = 13 AND code_reference_fournisseur LIKE '34008%' AND substr(code_reference_fournisseur,6,7) BETWEEN '9000000' AND '9899999' AND t_article_fournisseur.ucd_id IS DISTINCT FROM t_ucd.oid ; ]]> 0 FROM pg_tables WHERE schemaname = 'activite' AND tablename = 'p_mouvements_sejour' ; ]]> 0 AND t_unites_fonctionnelles.code ILIKE ANY(string_to_array(t_divers.valeur,',')) ) AND p_mouvements_articles.no_sejour <> '' AND t_etages.oid <> 0 GROUP BY 1 ; ANALYSE w_mouvement_etage ; DROP TABLE IF EXISTS w_etage; CREATE TEMP TABLE w_etage AS SELECT etage_code_original, etage_code, etage_texte, 0::bigint AS unite_fonctionnelle_id FROM w_mouvement_etage GROUP BY 1,2,3 ; ANALYSE w_etage ; INSERT INTO eco.t_unites_fonctionnelles(code_original, code, texte, texte_court ) SELECT etage_code_original, MAX(etage_code), MAX(etage_texte) || ' (GAP)', MAX(etage_texte) || ' (GAP)' FROM w_etage LEFT JOIN eco.t_unites_fonctionnelles ON etage_code_original = t_unites_fonctionnelles.code_original OR etage_code = t_unites_fonctionnelles.code WHERE code_original IS NULL GROUP BY 1 ORDER BY 2 ; UPDATE w_etage SET unite_fonctionnelle_id = t_unites_fonctionnelles.oid FROM eco.t_unites_fonctionnelles WHERE w_etage.etage_code ILIKE t_unites_fonctionnelles.code ; UPDATE eco.p_mouvements_articles SET unite_fonctionnelle_id = w_etage.unite_fonctionnelle_id FROM w_mouvement_etage JOIN w_etage on w_mouvement_etage.etage_code_original = w_etage.etage_code_original WHERE w_mouvement_etage.oid = p_mouvements_articles.oid ; ]]>