-- 1/3 : Création de la table temporaire
|
|
DROP TABLE IF EXISTS w_dbsetup
|
|
;
|
|
|
|
CREATE TEMP TABLE w_dbsetup AS
|
|
SELECT
|
|
t_classes.oid,
|
|
t_classes.code,
|
|
t_classes.texte,
|
|
t_classes.is_cti,
|
|
t_classes.sequence,
|
|
CASE WHEN NOT (t_classes.sequence = 30 AND t_listes_tables.code = (SELECT valeur FROM eco.t_divers WHERE code = 'CLE_REPARTITION')) THEN t_listes_tables.code ELSE 'TYA' END as table_code
|
|
FROM
|
|
eco.t_classes,
|
|
eco.t_listes_tables
|
|
WHERE 1=1
|
|
AND (is_cti = '1' OR (t_classes.code ilike 'CTI_%' AND t_classes.code NOT IN ('CTI_CPTLETBUD','CTI_CPTVOTE','CTI_CPTRCV','CTI_UFCR','CTI_UFUM','CTI_UFSERS','CTI_UFSITE')))
|
|
AND table_id = t_listes_tables.oid
|
|
ORDER BY t_classes.code LIMIT 0
|
|
;
|
|
|
|
-- 2/3 : Peuplement de la table temporaire
|
|
INSERT INTO w_dbsetup(
|
|
oid,
|
|
code,
|
|
texte,
|
|
is_cti,
|
|
sequence,
|
|
table_code
|
|
)
|
|
VALUES
|
|
(1, 'CTI_CLE_REP', 'Clef de répartition CTI', '0', 30, 'TYA'),
|
|
(1, 'CTI_ESS_ART80', 'Lstes des articles répartis représentant 80% des stocks en montant', '1', 1, 'ART'),
|
|
(1, 'CTI_TYPMVT', 'Types de mouvements CTI', '0', 1, 'TYM')
|
|
;
|
|
|
|
-- 3/3 : Màj de la table iCTI
|
|
UPDATE eco.t_classes SET
|
|
code = w_dbsetup.code,
|
|
texte = w_dbsetup.texte,
|
|
table_id = t_listes_tables.oid,
|
|
is_cti = w_dbsetup.is_cti
|
|
FROM
|
|
w_dbsetup,
|
|
eco.t_listes_tables
|
|
WHERE
|
|
w_dbsetup.table_code = t_listes_tables.code
|
|
AND t_classes.sequence = w_dbsetup.sequence
|
|
AND t_classes.table_id = t_listes_tables.oid ;
|
|
|
|
|
|
INSERT INTO eco.t_classes(code, texte, table_id, is_cti, sequence)
|
|
SELECT
|
|
w_dbsetup.code,
|
|
w_dbsetup.texte,
|
|
t_listes_tables.oid,
|
|
w_dbsetup.is_cti,
|
|
w_dbsetup.sequence
|
|
FROM
|
|
w_dbsetup,
|
|
eco.t_listes_tables
|
|
WHERE
|
|
w_dbsetup.table_code = t_listes_tables.code
|
|
AND t_listes_tables.oid::text || '-' || w_dbsetup.sequence::text NOT IN (SELECT table_id::text || '-' || sequence::text FROM eco.t_classes) AND w_dbsetup.texte NOT LIKE '*SUPPRIME%'
|
|
AND NOT (
|
|
-- pour la classe de cle de répartition
|
|
w_dbsetup.code = 'CTI_CLE_REP'
|
|
-- la valeur de la cle est initialisée
|
|
AND (SELECT code FROM eco.t_classes WHERE code = 'CTI_CLE_REP') IS NOT NULL
|
|
)
|