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