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.
 
 
 

1206 lines
44 KiB

<?xml version="1.0" encoding="ISO-8859-1"?>
<ROOT>
<NODE name="INIT" label="INITIALISATIONS COMMUNES">
<NODE label="Initialisation tables">
<sqlcmd><![CDATA[
SELECT eco.cti_initialize_tables();
-- Suppression des codes NOW et NOWCLOTURE.
-- De cette façon, si l'import du prestataire ne les ajoute pas, le SHARE le fera.
DELETE FROM eco.t_divers
WHERE code IN ('NOW', 'NOWCLOTURE')
;
]]></sqlcmd>
</NODE>
<NODE label="RAZ">
<sqlcmd><![CDATA[
TRUNCATE eco.p_commandes;
TRUNCATE eco.p_lignes_commandes;
TRUNCATE eco.p_mouvements_articles;
TRUNCATE eco.p_stock;
TRUNCATE eco.p_chiffrier_production;
TRUNCATE eco.p_facture;
TRUNCATE eco.p_lignes_facture;
]]></sqlcmd>
</NODE>
</NODE>
<NODE name="POST" label="POST-TRAITEMENTS COMMUNS">
<NODE label="Sens forcé">
<sqlcmd><![CDATA[
UPDATE eco.p_mouvements_articles SET
sens_mouvement = 'S',
sortie_montant = 0 - entree_montant,
sortie_montant_ht = 0 - entree_montant_ht,
sortie_quantite = 0 - entree_quantite,
entree_montant = 0,
entree_montant_ht = 0,
entree_quantite = 0
FROM eco.t_types_mouvements
WHERE type_mouvement_id = t_types_mouvements.oid AND
t_types_mouvements.sens_force = 'S' AND
p_mouvements_articles.sens_mouvement <> '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'
;
]]></sqlcmd>
</NODE>
<NODE label="Mouvements avec montants farfelus">
<sqlcmd><![CDATA[
INSERT INTO eco.t_types_mouvements(code_original, code, texte, texte_court)
SELECT '*CTIERR','ERREUR','Erreur','Erreur'
WHERE '*CTIERR' NOT IN (SELECT code_original FROM eco.t_types_mouvements WHERE code_original IS NOT NULL);
UPDATE eco.p_mouvements_articles
SET type_mouvement_id = t_types_mouvements.oid
FROM eco.t_types_mouvements,
(SELECT *
FROM
(SELECT base.cti_division(abs(entree_montant)+abs(sortie_montant), SUM(abs(entree_montant)+abs(sortie_montant)) OVER (PARTITION BY date_trunc('month',date))) AS pourcentage_ligne,
oid
FROM eco.p_mouvements_articles
) subview
WHERE pourcentage_ligne > 0.15
) subview
WHERE p_mouvements_articles.oid = subview.oid AND
t_types_mouvements.code_original = '*CTIERR'
;
]]></sqlcmd>
</NODE>
<NODE label="Lignes commandes sans code">
<sqlcmd><![CDATA[
-- remise à jour de la sequence des oids de t_articles et t_article_fournisseur
SELECT setval('eco.s_articles'::regClass,(SELECT max(oid) + 1 FROM eco.t_articles));
SELECT setval('eco.s_article_fournisseur'::regClass,(SELECT max(oid) + 1 FROM eco.t_article_fournisseur));
INSERT INTO eco.t_articles(code_original, code, texte, texte_court)
SELECT '*F'||t_fournisseurs.code,'F'||t_fournisseurs.code, 'Articles sans code de ' || t_fournisseurs.texte, substr('Art. sans code de ' || t_fournisseurs.texte_court,1,50)
FROM eco.p_lignes_commandes
JOIN eco.p_commandes ON commande_id = p_commandes.oid
JOIN eco.t_fournisseurs On fournisseur_id = t_fournisseurs.oid
LEFT JOIN eco.t_articles ON t_articles.code_original = ('*F'||t_fournisseurs.code)
WHERE article_id = 0 AND t_articles.code_original IS NULL
GROUP BY 1,2,3,4
ORDER BY 1
;
INSERT INTO eco.t_article_fournisseur(
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
'*F'||t_fournisseurs.code AS code_original,
t_articles.oid AS article_id,
p_commandes.fournisseur_id,
''::text AS code_reference_fournisseur,
'Articles sans code de ' || t_fournisseurs.texte AS texte_reference_fournisseur,
''::text AS code_cip,
''::text AS code_cahpp,
0::bigint AS unite_approvisionnement_id,
0::numeric AS nombre_conditionnement_approvisionnement,
0::numeric AS prix_unitaire_en_cours,
'1'::text AS est_fournisseur_principal,
p_commandes.fournisseur_id AS fournisseur_distributeur_id,
0::bigint AS ucd_id,
0::bigint AS lpp_id,
''::text AS code_ucd13
FROM eco.p_lignes_commandes
JOIN eco.p_commandes ON commande_id = p_commandes.oid
JOIN eco.t_fournisseurs On fournisseur_id = t_fournisseurs.oid
JOIN eco.t_articles ON t_articles.code_original = ('*F'||t_fournisseurs.code)
LEFT JOIN eco.t_article_fournisseur ON t_article_fournisseur.code_original = ('*F'||t_fournisseurs.code)
WHERE p_lignes_commandes.article_id = 0 AND t_article_fournisseur.code_original IS NULL
GROUP BY 1,2,3,5,12
ORDER BY 1
;
UPDATE eco.p_lignes_commandes
SET article_id = t_articles.oid
FROM eco.p_commandes
JOIN eco.t_fournisseurs On fournisseur_id = t_fournisseurs.oid
JOIN eco.t_articles ON t_articles.code_original = ('*F'||t_fournisseurs.code)
WHERE p_lignes_commandes.article_id = 0 AND
commande_id = p_commandes.oid
;
UPDATE eco.p_lignes_commandes
SET compte_id = 0
WHERE compte_id IS NULL
;
]]></sqlcmd>
</NODE>
<NODE label="Lignes commandes sans date de réception">
<sqlcmd><![CDATA[
UPDATE eco.p_lignes_commandes
SET date_reception = CASE WHEN etat_reception = 'N' THEN '2099-12-31' ELSE p_commandes.date_reception END
FROM eco.p_commandes
WHERE commande_id = p_commandes.oid AND p_lignes_commandes.date_reception IS NULL
;
]]></sqlcmd>
</NODE>
<NODE label="Forcage des commandes soldées à livrés en totalité">
<condition><![CDATA[
SELECT count(*) > 0
FROM eco.t_divers
WHERE 1=1
AND code = 'FORCE_LIV_LIQ'
AND valeur = '1'
;
]]></condition>
<sqlcmd><![CDATA[
UPDATE eco.p_commandes
SET
etat_reception = 'T'
WHERE
etat_liquidation ='T'
;
UPDATE eco.p_lignes_commandes
SET
etat_livraison = 'T'
FROM eco.p_commandes
WHERE
p_commandes.etat_liquidation ='T' AND
commande_id = p_commandes.oid
;
]]></sqlcmd>
</NODE>
<NODE label="Corrections lignes de commandes sans montant">
<sqlcmd><![CDATA[
-- montant dans les mouvements
UPDATE eco.p_lignes_commandes
SET
prix_unitaire_approvisionnement = entree_montant_ht/entree_quantite,
montant_commande_ht = quantite_approvisionnement * entree_montant_ht/entree_quantite,
montant_commande_ttc = quantite_approvisionnement * entree_montant/entree_quantite,
montant_commande_tva = quantite_approvisionnement * (entree_montant - entree_montant_ht)/entree_quantite
FROM eco.p_mouvements_articles
WHERE
p_mouvements_articles.commande_id = p_lignes_commandes.commande_id
AND (p_mouvements_articles.ligne_commande = p_lignes_commandes.ligne_commande OR p_mouvements_articles.ligne_commande = 0)
AND p_mouvements_articles.article_id = p_lignes_commandes.article_id
AND montant_commande_ht = 0
AND quantite_livraison_approvisionnement != 0
AND entree_montant != 0
AND entree_quantite != 0
AND etat_liquidation <> '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')
;
]]></sqlcmd>
</NODE>
<NODE label="Corrections mouvements sans fournisseur">
<sqlcmd><![CDATA[
-- Fournisseur principal
UPDATE eco.t_article_fournisseur
SET est_fournisseur_principal = CASE WHEN fournisseur_id = fournisseur_principal_id THEN '1' ELSE '0' END
FROM
(
SELECT article_id,
(MAX(ARRAY[date_derniere_commande::text,fournisseur_id::text]))[2]::bigint AS fournisseur_principal_id
FROM
(
SELECT t_articles.oid AS article_id,
COALESCE(fournisseur_id,0) AS fournisseur_id,
count(*) AS nb,
MIN(date_commande) AS date_premiere_commande,
MAX(date_commande) AS date_derniere_commande
FROM eco.t_articles
JOIN eco.p_lignes_commandes ON p_lignes_commandes.article_id = t_articles.oid
JOIN eco.p_commandes ON p_commandes.oid = p_lignes_commandes.commande_id
GROUP BY 1,2
ORDER BY 1
) subview
GROUP BY 1
) subview
WHERE t_article_fournisseur.article_id = subview.article_id AND
est_fournisseur_principal IS DISTINCT FROM CASE WHEN fournisseur_id = fournisseur_principal_id THEN '1' ELSE '0' END
;
UPDATE eco.t_articles
SET fournisseur_principal_id = t_article_fournisseur.fournisseur_id
FROM eco.t_article_fournisseur
WHERE t_articles.oid = t_article_fournisseur.article_id AND
t_article_fournisseur.est_fournisseur_principal = '1' AND
t_articles.fournisseur_principal_id IS DISTINCT FROM t_article_fournisseur.fournisseur_id
;
UPDATE eco.p_mouvements_articles
SET fournisseur_id = subview.fournisseur_id
FROM
(
SELECT article_id,
MAX(fournisseur_id) AS fournisseur_id
FROM eco.p_mouvements_articles
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 = 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
;
]]></sqlcmd>
</NODE>
<NODE label="Corrections articles LPP et UCD">
<sqlcmd><![CDATA[
UPDATE eco.t_articles SET ucd_id = p_lignes_commandes.ucd_id
FROM eco.p_lignes_commandes
WHERE article_id = t_articles.oid AND t_articles.ucd_id = 0 AND p_lignes_commandes.ucd_id != 0;
UPDATE eco.t_articles SET ucd_id = p_mouvements_articles.ucd_id
FROM eco.p_mouvements_articles
WHERE article_id = t_articles.oid AND t_articles.ucd_id = 0 AND p_mouvements_articles.ucd_id != 0;;
UPDATE eco.t_articles SET lpp_id = p_lignes_commandes.lpp_id
FROM eco.p_lignes_commandes
WHERE article_id = t_articles.oid AND t_articles.lpp_id = 0 AND p_lignes_commandes.lpp_id != 0;
UPDATE eco.t_articles SET lpp_id = p_mouvements_articles.lpp_id
FROM eco.p_mouvements_articles
WHERE article_id = t_articles.oid AND t_articles.lpp_id = 0 AND p_mouvements_articles.lpp_id != 0;;
]]></sqlcmd>
</NODE>
<NODE label="Mise a jour des codes articles fournisseurs non alimentes">
<sqlcmd><![CDATA[
UPDATE eco.t_articles
SET
ref_fournisseur_code = ref_codes,
ref_fournisseur_texte = ref_textes
FROM
(
SELECT
oid,
array_agg(ref_id) as ref_ids,
array_agg(ref_code) as ref_codes,
array_agg(ref_texte) as ref_textes
FROM (
SELECT
oid,
ref_id,
regexp_replace(ref_texte,'.*\(([^\)]*)\)$',E'\\1') as ref_code,
regexp_replace(ref_texte,'(.*)\([^\)]*\)$',E'\\1') as ref_texte
FROM (
SELECT
oid,
unnest(ref_fournisseur_id) as ref_id,
unnest(ref_fournisseur_texte) as ref_texte
FROM eco.t_articles
WHERE ref_fournisseur_code[1] = '' OR ref_fournisseur_code[1] IS NULL
) sub
) sub2
GROUP BY 1
) sub3
WHERE
sub3.oid = t_articles.oid
;
]]></sqlcmd>
</NODE>
<NODE label="Corrections code TVA">
<sqlcmd><![CDATA[
UPDATE eco.p_lignes_commandes
SET taux_tva = 20
FROM eco.p_commandes
where commande_id = p_commandes.oid AND
taux_tva = 19.6 AND
date_commande >= '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
;
]]></sqlcmd>
</NODE>
<NODE label="ATC selon association UCD et LPP">
<condition><![CDATA[
SELECT count(*) > 0
FROM eco.t_divers
WHERE 1=1
AND code = 'FORCE_ATC'
AND valeur = '1'
;
]]></condition>
<sqlcmd><![CDATA[
UPDATE eco.t_articles
SET classification_atc_id = t_classification_atc.oid
FROM base.t_ucd b_ucd JOIN pmsi.t_ucd p_ucd ON b_ucd.code = p_ucd.code
JOIN eco.t_classification_atc ON p_ucd.atc_code = t_classification_atc.code
WHERE t_articles.ucd_id = b_ucd.oid AND
ucd_id <> 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
);
]]></sqlcmd>
</NODE>
<NODE label="Compléments articles">
<sqlcmd><![CDATA[
-- Type selon compte
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_compte ON t_compte.oid = compte_id AND compte_id > 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
;
]]></sqlcmd>
</NODE>
<NODE label="Affectation unités selon activité">
<condition><![CDATA[
SELECT count(*) > 0
FROM pg_tables
WHERE schemaname = 'activite' AND
tablename = 'p_mouvements_sejour'
;
]]></condition>
<sqlcmd><![CDATA[
INSERT INTO eco.t_divers (code, texte, valeur, description)
SELECT
'UFSELONETAGEACTIVITE',
'Si UF non renseignee ou dans la liste, chercher etage dans activite',
'',
'Liste des UF separees par une virgule (#0 pour UF non renseignee'
WHERE 'UFSELONETAGEACTIVITE' NOT IN (SELECT code FROM eco.t_divers)
;
DROP TABLE IF EXISTS w_mouvement_etage;
CREATE TEMP TABLE w_mouvement_etage AS
SELECT p_mouvements_articles.oid,
'*CTIACT-'||(MAX(ARRAY[to_char(p_mouvements_sejour.heure_debut,'FM000000'), t_etages.code]))[2] AS etage_code_original,
(MAX(ARRAY[to_char(p_mouvements_sejour.heure_debut,'FM000000'), t_etages.code]))[2] AS etage_code,
(MAX(ARRAY[to_char(p_mouvements_sejour.heure_debut,'FM000000'), t_etages.texte]))[2] AS etage_texte
FROM eco.p_mouvements_articles
JOIN eco.t_unites_fonctionnelles ON p_mouvements_articles.unite_fonctionnelle_id = t_unites_fonctionnelles.oid
JOIN activite.p_mouvements_sejour ON
p_mouvements_articles.no_sejour = p_mouvements_sejour.no_sejour AND
p_mouvements_sejour.date = p_mouvements_articles.date
JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid
JOIN activite.t_lits ON t_lieux.lit_id= t_lits.oid
JOIN activite.t_etages ON t_lits.etage_id = t_etages.oid
JOIN eco.t_divers ON t_divers.code = 'UFSELONETAGEACTIVITE'
WHERE sens_mouvement = 'S' AND
(
p_mouvements_articles.unite_fonctionnelle_id = 0 AND '#0' = ANY(string_to_array(t_divers.valeur,',')) OR
p_mouvements_articles.unite_fonctionnelle_id > 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
;
]]></sqlcmd>
</NODE>
<NODE label="Poles">
<sqlcmd><![CDATA[
SELECT eco.cti_reorganize_pole()
;
]]></sqlcmd>
</NODE>
<NODE label="Référencements">
<sqlcmd><![CDATA[
TRUNCATE eco.p_oids;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'articles', article_id
FROM eco.p_mouvements_articles
WHERE article_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'articles', article_id
FROM eco.p_lignes_commandes
WHERE article_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'categories_articles', categorie_id
FROM eco.p_mouvements_articles JOIN eco.t_articles ON article_id = t_articles.oid
WHERE categorie_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'categories_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'categories_articles', categorie_id
FROM eco.p_lignes_commandes JOIN eco.t_articles ON article_id = t_articles.oid
WHERE categorie_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'categories_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'sous_categories_articles', sous_categorie_id
FROM eco.p_mouvements_articles JOIN eco.t_articles ON article_id = t_articles.oid
WHERE sous_categorie_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'sous_categories_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'sous_categories_articles', sous_categorie_id
FROM eco.p_lignes_commandes JOIN eco.t_articles ON article_id = t_articles.oid
WHERE sous_categorie_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'sous_categories_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'classification_atc', classification_atc_id
FROM eco.p_mouvements_articles JOIN eco.t_articles ON article_id = t_articles.oid
WHERE classification_atc_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'classification_atc')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'classification_atc', classification_atc_id
FROM eco.p_lignes_commandes JOIN eco.t_articles ON article_id = t_articles.oid
WHERE classification_atc_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'classification_atc')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'familles_articles', famille_id
FROM eco.p_mouvements_articles JOIN eco.t_articles ON article_id = t_articles.oid
WHERE famille_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'familles_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'familles_articles', famille_id
FROM eco.p_lignes_commandes JOIN eco.t_articles ON article_id = t_articles.oid
WHERE famille_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'familles_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'sous_familles_articles', sous_famille_id
FROM eco.p_mouvements_articles JOIN eco.t_articles ON article_id = t_articles.oid
WHERE sous_famille_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'sous_familles_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'sous_familles_articles', sous_famille_id
FROM eco.p_lignes_commandes JOIN eco.t_articles ON article_id = t_articles.oid
WHERE sous_famille_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'sous_familles_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'compte', compte_id
FROM eco.p_mouvements_articles
WHERE compte_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'compte')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'compte', compte_id
FROM eco.p_lignes_commandes
WHERE compte_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'compte')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'pole', pole_id
FROM eco.p_mouvements_articles
WHERE pole_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'pole')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'types_articles', t_articles.type_id
FROM eco.p_mouvements_articles JOIN eco.t_articles ON article_id = t_articles.oid
WHERE t_articles.type_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'types_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'types_articles', t_articles.type_id
FROM eco.p_lignes_commandes JOIN eco.t_articles ON article_id = t_articles.oid
WHERE t_articles.type_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'types_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'unites_stockage_articles', t_articles.unite_stockage_id
FROM eco.p_mouvements_articles JOIN eco.t_articles ON article_id = t_articles.oid
WHERE t_articles.unite_stockage_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'unites_stockage_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'unites_stockage_articles', t_articles.unite_stockage_id
FROM eco.p_lignes_commandes JOIN eco.t_articles ON article_id = t_articles.oid
WHERE t_articles.unite_stockage_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'unites_stockage_articles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'gestionnaires', gestionnaire_id
FROM eco.p_mouvements_articles
WHERE gestionnaire_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'gestionnaires')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'gestionnaires', gestionnaire_id
FROM eco.p_commandes
WHERE gestionnaire_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'gestionnaires')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'sites', site_id
FROM eco.p_mouvements_articles
WHERE site_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'sites')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'sites', site_id
FROM eco.p_commandes
WHERE site_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'sites')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'unites_fonctionnelles', unite_fonctionnelle_id
FROM eco.p_mouvements_articles
WHERE unite_fonctionnelle_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'unites_fonctionnelles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'unites_fonctionnelles', unite_fonctionnelle_id
FROM eco.p_commandes
WHERE unite_fonctionnelle_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'unites_fonctionnelles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'unites_fonctionnelles', unite_fonctionnelle_id
FROM eco.p_mouvements_articles
WHERE unite_fonctionnelle_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'unites_fonctionnelles')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'fournisseurs', fournisseur_id
FROM eco.p_mouvements_articles
WHERE fournisseur_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'fournisseurs')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'fournisseurs', fournisseur_id
FROM eco.p_commandes
WHERE fournisseur_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'fournisseurs')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'types_fournisseurs', t_fournisseurs.type_id
FROM eco.p_mouvements_articles JOIN eco.t_fournisseurs ON fournisseur_id = t_fournisseurs.oid
WHERE t_fournisseurs.type_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'types_fournisseurs')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'types_fournisseurs', t_fournisseurs.type_id
FROM eco.p_commandes JOIN eco.t_fournisseurs ON fournisseur_id = t_fournisseurs.oid
WHERE t_fournisseurs.type_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'types_fournisseurs')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'lieux_mouvements', lieu_id
FROM eco.p_mouvements_articles
WHERE lieu_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'lieux_mouvements')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'lieux_commandes', lieu_livraison_id
FROM eco.p_commandes
WHERE lieu_livraison_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'lieux_commandes')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'types_mouvements', type_mouvement_id
FROM eco.p_mouvements_articles
WHERE type_mouvement_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'types_mouvements')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'ucd', ucd_id
FROM eco.p_mouvements_articles
WHERE ucd_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'ucd')
GROUP BY 1,2;
INSERT INTO eco.p_oids (code_table, oid)
SELECT 'lpp', lpp_id
FROM eco.p_mouvements_articles
WHERE lpp_id NOT IN (SELECT oid FROM eco.p_oids WHERE code_table = 'lpp')
GROUP BY 1,2;
]]></sqlcmd>
</NODE>
<NODE label="Réplication données">
<sqlcmd><![CDATA[
TRUNCATE eco.t_profils;
INSERT INTO eco.t_profils (categorie_article_id, article_id, classification_atc_id, compte_id, famille_article_id, sous_famille_article_id, sous_categorie_article_id, type_article_id, fournisseur_id, lieu_id, gestionnaire_id, unite_fonctionnelle_id)
SELECT categorie_id, article_id, classification_atc_id, t_articles.compte_id, famille_id, sous_famille_id, sous_categorie_id, type_id, fournisseur_id, lieu_id, gestionnaire_id, unite_fonctionnelle_id
FROM eco.p_mouvements_articles
JOIN eco.t_articles ON article_id = t_articles.oid
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12
UNION
SELECT categorie_id, article_id, classification_atc_id, t_articles.compte_id, famille_id, sous_famille_id, sous_categorie_id, type_id, fournisseur_id, lieu_livraison_id, gestionnaire_id, p_lignes_commandes.unite_fonctionnelle_id
FROM eco.p_lignes_commandes
JOIN eco.p_commandes ON commande_id = p_commandes.oid
JOIN eco.t_articles ON article_id = t_articles.oid
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12;
SELECT eco.cti_reorganize_ucd_lpp_c();
SELECT eco.cti_reorganize_fournisseur();
SELECT eco.cti_reorganize_type_article_cti();
SELECT * FROM eco.cti_update_schema_classes('*ALL');
]]></sqlcmd>
</NODE>
<NODE label="Mise à jour des dates">
<sqlcmd><![CDATA[
-- Initialisation mois en cours/mois clôturé (NOW/NOWCLOTURE) lorsque pas déjà renseigné lors de l'import.
SELECT eco.cti_now('NOW','');
SELECT eco.cti_now('NOWCLOTURE','');
]]></sqlcmd>
</NODE>
<NODE label="Calcul chiffrier">
<sqlcmd><![CDATA[
TRUNCATE eco.p_chiffrier_production;
INSERT INTO eco.p_chiffrier_production (provider_id,mois)
SELECT provider_id, extract('year' FROM date) * 100 + extract('month' FROM date)
FROM eco.p_mouvements_articles
GROUP BY 1,2;
UPDATE eco.p_chiffrier_production
SET montant_commande = montant_commande_ht
FROM
(
SELECT provider_id,extract('year' FROM date_commande) * 100 + extract('month' FROM date_commande) AS mois ,
sum(montant_commande_ht) AS montant_commande_ht
FROM eco.p_commandes
GROUP BY 1,2
) as sub
WHERE sub.mois = p_chiffrier_production.mois
AND sub.provider_id = p_chiffrier_production.provider_id
;
UPDATE eco.p_chiffrier_production
SET montant_livraison = montant_entrees
FROM
(
SELECT provider_id, extract('year' FROM date) * 100 + extract('month' FROM date) AS mois ,
sum(entree_montant_ht) AS montant_entrees
FROM eco.p_mouvements_articles
WHERE type_mouvement_id IN (
SELECT
to_id
FROM
eco.t_classes_sections_elements
WHERE
section_id IN (SELECT oid FROM eco.t_classes_sections WHERE code = '00' AND classe_id = (SELECT oid from eco.t_classes WHERE code = 'CTI_TYPMVT')))
GROUP BY 1,2
) as sub
WHERE sub.mois = p_chiffrier_production.mois
AND sub.provider_id = p_chiffrier_production.provider_id
;
UPDATE eco.p_chiffrier_production
SET montant_consommation = montant_sorties
FROM
(
SELECT provider_id, extract('year' FROM date) * 100 + extract('month' FROM date) AS mois ,
sum(sortie_montant_ht) AS montant_sorties
FROM eco.p_mouvements_articles
WHERE type_mouvement_id IN (
SELECT
to_id
FROM
eco.t_classes_sections_elements
WHERE
section_id IN (SELECT oid FROM eco.t_classes_sections WHERE code = '01' AND classe_id = (SELECT oid from eco.t_classes WHERE code = 'CTI_TYPMVT')))
GROUP BY 1,2
) as sub
WHERE sub.mois = p_chiffrier_production.mois
AND sub.provider_id = p_chiffrier_production.provider_id
;
]]></sqlcmd>
</NODE>
</NODE>
<NODE name="VACUUM" label="REORGANISATION BASE DE DONNEES">
<NODE label="Réorganisation tables">
<sqlcmd><![CDATA[
VACUUM ANALYSE eco.p_commandes;
REINDEX TABLE eco.p_commandes;
VACUUM ANALYSE eco.p_lignes_commandes;
VACUUM ANALYSE eco.p_facture;
VACUUM ANALYSE eco.p_lignes_facture;
VACUUM ANALYSE eco.p_mouvements_articles;
REINDEX TABLE eco.p_mouvements_articles;
VACUUM ANALYSE eco.p_stock;
VACUUM ANALYSE eco.p_chiffrier_production;
VACUUM ANALYSE eco.p_sejours;
VACUUM FULL eco.t_articles;
REINDEX TABLE eco.t_articles;
VACUUM ANALYSE eco.t_article_fournisseur;
VACUUM ANALYSE eco.t_classes_sections_elements;
VACUUM ANALYSE eco.t_listes_contenu;
VACUUM ANALYSE eco.t_rapport_group;
VACUUM ANALYSE eco.t_rapports;
VACUUM ANALYSE eco.t_unites_fonctionnelles;
]]></sqlcmd>
</NODE>
</NODE>
<NODE name="RAZ" label="RAZ BASE">
<NODE label="Nettoyage des tables">
<sqlcmd><![CDATA[
]]></sqlcmd>
</NODE>
</NODE>
<NODE name="RAZ_ALL" label="RAZ ALL">
<NODE label="Nettoyage COMPLET des tables">
<sqlcmd><![CDATA[
]]></sqlcmd>
</NODE>
</NODE>
</ROOT>