-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;

CREATE TEMP TABLE w_dbsetup AS
    SELECT t_indicateurs.oid,
    	t_indicateurs.texte,
    	t_indicateurs.table_name,
    	t_indicateurs.column_name,
    	t_indicateurs.is_cti,
    	t_indicateurs.entete,
    	t_indicateurs.code,
    	t_indicateurs.total_function,
    	t_indicateurs.output_format,
    	t_indicateurs.width,
    	t_indicateurs.entete_etendue,
    	t_indicateurs.dimension_date_1,
    	t_indicateurs.dimension_date_2,
    	t_indicateurs.dimension_date_3,
    	t_indicateurs.dimension_date_4,
    	t_indicateurs.dimension_date_5,
    	t_indicateurs.dimension_date,
    	t_indicateurs_1.code as indicateur_associe_1_code, 
    	t_indicateurs_2.code as indicateur_associe_2_code, 
    	t_indicateurs_3.code as indicateur_associe_3_code, 
    	t_indicateurs_4.code as indicateur_associe_4_code, 
    	t_indicateurs_5.code as indicateur_associe_5_code, 
    	t_indicateurs_6.code as indicateur_associe_6_code, 
    	t_indicateurs_7.code as indicateur_associe_7_code, 
    	t_indicateurs_8.code as indicateur_associe_8_code, 
    	t_indicateurs_9.code as indicateur_associe_9_code, 
    	t_indicateurs_10.code as indicateur_associe_10_code, 
    	t_indicateurs_11.code as indicateur_associe_11_code, 
    	t_indicateurs_12.code as indicateur_associe_12_code, 
    	t_indicateurs_13.code as indicateur_associe_13_code, 
    	t_indicateurs_14.code as indicateur_associe_14_code, 
    	t_indicateurs_15.code as indicateur_associe_15_code, 
    	t_indicateurs_16.code as indicateur_associe_16_code, 
    	t_indicateurs_17.code as indicateur_associe_17_code, 
    	t_indicateurs_18.code as indicateur_associe_18_code, 
    	t_indicateurs_19.code as indicateur_associe_19_code, 
    	t_indicateurs_20.code as indicateur_associe_20_code,
    	t_indicateurs_reference.code as indicateur_reference_code,
    	t_indicateurs.is_template,
    	t_indicateurs_template.code as indicateur_template_code,
    	COALESCE(t_indicateurs.variable_definition[1],'') AS variable_definition_1,
    	COALESCE(t_indicateurs.variable_definition[2],'') AS variable_definition_2,
    	COALESCE(t_indicateurs.variable_definition[3],'') AS variable_definition_3,
    	COALESCE(t_indicateurs.variable_value[1],'') AS variable_value_1,
    	COALESCE(t_indicateurs.variable_value[2],'') AS variable_value_2,
    	COALESCE(t_indicateurs.variable_value[3],'') AS variable_value_3,
    	COALESCE(t_indicateurs.variable_value_text[1],'') AS variable_value_text_1,
    	COALESCE(t_indicateurs.variable_value_text[2],'') AS variable_value_text_2,
    	COALESCE(t_indicateurs.variable_value_text[3],'') AS variable_value_text_3,
    	t_indicateurs.description,
    	COALESCE(t_indicateur_theme_1.code,'') AS theme_1_code,
    	COALESCE(t_indicateur_theme_2.code,'') AS theme_2_code,
    	COALESCE(t_indicateur_theme_3.code,'') AS theme_3_code,
    	COALESCE(t_indicateur_theme_4.code,'') AS theme_4_code,
    	COALESCE(t_indicateur_theme_5.code,'') AS theme_5_code,
    	COALESCE(t_indicateur_theme_6.code,'') AS theme_6_code,
    	COALESCE(t_indicateur_theme_7.code,'') AS theme_7_code,
    	COALESCE(t_indicateur_theme_8.code,'') AS theme_8_code,
    	COALESCE(t_indicateur_theme_9.code,'') AS theme_9_code,
    	t_indicateurs.is_hide
    FROM eco.t_indicateurs 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_1 ON (t_indicateurs.indicateur_associe_1_id = t_indicateurs_1.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_2 ON (t_indicateurs.indicateur_associe_2_id = t_indicateurs_2.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_3 ON (t_indicateurs.indicateur_associe_3_id = t_indicateurs_3.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_4 ON (t_indicateurs.indicateur_associe_4_id = t_indicateurs_4.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_5 ON (t_indicateurs.indicateur_associe_5_id = t_indicateurs_5.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_6 ON (t_indicateurs.indicateur_associe_6_id = t_indicateurs_6.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_7 ON (t_indicateurs.indicateur_associe_7_id = t_indicateurs_7.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_8 ON (t_indicateurs.indicateur_associe_8_id = t_indicateurs_8.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_9 ON (t_indicateurs.indicateur_associe_9_id = t_indicateurs_9.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_10 ON (t_indicateurs.indicateur_associe_10_id = t_indicateurs_10.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_11 ON (t_indicateurs.indicateur_associe_11_id = t_indicateurs_11.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_12 ON (t_indicateurs.indicateur_associe_12_id = t_indicateurs_12.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_13 ON (t_indicateurs.indicateur_associe_13_id = t_indicateurs_13.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_14 ON (t_indicateurs.indicateur_associe_14_id = t_indicateurs_14.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_15 ON (t_indicateurs.indicateur_associe_15_id = t_indicateurs_15.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_16 ON (t_indicateurs.indicateur_associe_16_id = t_indicateurs_16.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_17 ON (t_indicateurs.indicateur_associe_17_id = t_indicateurs_17.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_18 ON (t_indicateurs.indicateur_associe_18_id = t_indicateurs_18.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_19 ON (t_indicateurs.indicateur_associe_19_id = t_indicateurs_19.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_20 ON (t_indicateurs.indicateur_associe_20_id = t_indicateurs_20.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_reference ON (t_indicateurs.indicateur_reference_id = t_indicateurs_reference.oid) 
    	LEFT JOIN eco.t_indicateurs t_indicateurs_template ON (t_indicateurs.indicateur_template_id = t_indicateurs_template.oid)
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_1 ON t_indicateur_theme_1.oid = t_indicateurs.theme_id[1]
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_2 ON t_indicateur_theme_2.oid = t_indicateurs.theme_id[2]
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_3 ON t_indicateur_theme_3.oid = t_indicateurs.theme_id[3]
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_4 ON t_indicateur_theme_4.oid = t_indicateurs.theme_id[4]
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_5 ON t_indicateur_theme_5.oid = t_indicateurs.theme_id[5]
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_6 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[6]
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_7 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[7]
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_8 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[8]
    	LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_9 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[9]
    WHERE 1=1
    	AND t_indicateurs.is_cti = '1' 
    	AND t_indicateurs.indicateur_reference_id = 0
    ORDER BY t_indicateurs.code
     LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    oid,
    texte,
    table_name,
    column_name,
    is_cti,
    entete,
    code,
    total_function,
    output_format,
    width,
    entete_etendue,
    dimension_date_1,
    dimension_date_2,
    dimension_date_3,
    dimension_date_4,
    dimension_date_5,
    dimension_date,
    indicateur_associe_1_code,
    indicateur_associe_2_code,
    indicateur_associe_3_code,
    indicateur_associe_4_code,
    indicateur_associe_5_code,
    indicateur_associe_6_code,
    indicateur_associe_7_code,
    indicateur_associe_8_code,
    indicateur_associe_9_code,
    indicateur_associe_10_code,
    indicateur_associe_11_code,
    indicateur_associe_12_code,
    indicateur_associe_13_code,
    indicateur_associe_14_code,
    indicateur_associe_15_code,
    indicateur_associe_16_code,
    indicateur_associe_17_code,
    indicateur_associe_18_code,
    indicateur_associe_19_code,
    indicateur_associe_20_code,
    indicateur_reference_code,
    is_template,
    indicateur_template_code,
    variable_definition_1,
    variable_definition_2,
    variable_definition_3,
    variable_value_1,
    variable_value_2,
    variable_value_3,
    variable_value_text_1,
    variable_value_text_2,
    variable_value_text_3,
    description,
    theme_1_code,
    theme_2_code,
    theme_3_code,
    theme_4_code,
    theme_5_code,
    theme_6_code,
    theme_7_code,
    theme_8_code,
    theme_9_code,
    is_hide
)
VALUES
(1, 'Nombre d''articles couvrant 80% des stocks', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:[TEMPLATE_VALUE_1]]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Code de ventilation', '', '', '', '', '', '', '', '', 'Nombre d''articles couvrant 80% des stocks en quantité', '1QTE', '', '', '', '', '', '', '', '', '1'),
(1, 'Nombre d''articles couvrant 80% des stocks - Atelier', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:ATE]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT#ATE', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_ART80MNT', '', '', '', 'ATE', '', '', 'Atelier', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles couvrant 80% des stocks - Cuisine', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:CUI]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT#CUI', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_ART80MNT', '', '', '', 'CUI', '', '', 'Cuisine', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles couvrant 80% des stocks - DispositifsMédicaux', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:DM]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT#DM', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_ART80MNT', '', '', '', 'DM', '', '', 'Dispositifs Médicaux', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles couvrant 80% des stocks - DispositifsMédicauxImplantables', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:DMI]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT#DMI', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_ART80MNT', '', '', '', 'DMI', '', '', 'Dispositifs Médicaux Implantables', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles couvrant 80% des stocks - Economat', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:ECO]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT#ECO', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_ART80MNT', '', '', '', 'ECO', '', '', 'Economat', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles couvrant 80% des stocks - Lingerie', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:LIN]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT#LIN', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_ART80MNT', '', '', '', 'LIN', '', '', 'Lingerie', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles couvrant 80% des stocks - Médicaments', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:MED]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT#MED', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_ART80MNT', '', '', '', 'MED', '', '', 'Médicaments', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles couvrant 80% des stocks - Parapharmacie', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([CLASSE:CTI_ESS_ART80:PAR]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80MNT#PAR', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_ART80MNT', '', '', '', 'PAR', '', '', 'Parapharmacie', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles couvrant 80% des stocks', 'V_STOCK_MENSUEL_X', 'DISTINCT CASE WHEN article_id IN ([LISTE:CTI_ESS_ART80]) THEN article_id ELSE null END', '1', 'Nb Art. 80% stock Qté.', 'CTI_ART80QTE', 'COUNT', '', 50, 'Nombre des articles couvrant 80% des stocks', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''articles couvrant 80% des stocks en quantité', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Code article', 'TABART', 'article_code', '1', 'Article', 'CTI_ARTCODE', '*LIST', '', 50, 'Code article', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Code de l''article', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre moyen d''articles par fournisseur', '*CALC', 'base.cti_division([1],[2])', '1', 'Moy Art. / four.', 'CTI_ARTFOUMOY', '*CALC', '', 50, 'Nombre moyen d''articles par fournisseur', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBART', 'CTI_NBFOU#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre moyen d''articles par fournisseur', '1QTE', '', '', '', '', '', '', '', '', '1'),
(1, 'Oid article', 'TABART', 'CASE WHEN COUNT(DISTINCT article_id) = 1 THEN MAX(article_id) ELSE 0 END', '1', '', 'CTI_ARTOID', '*LIST', '', 0, '', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Désignation de l''article', 'TABART', 'CASE WHEN COUNT(DISTINCT article_texte) = 1 THEN MAX(article_texte) ELSE '''' END', '1', 'Article', 'CTI_ARTTXT', '*LIST', '', 200, 'Désignation de l''article', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Désignation de l''article', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Date de commande', 'V_LIGNES_COMMANDES_X', 'CASE WHEN COUNT(DISTINCT(date_commande)) = 1 THEN MAX(date_commande)::text ELSE '''' END', '1', 'Date de commande', 'CTI_COMDATE', '*LIST', 'DD/MM/YYYY', 65, 'Date de commande', ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Date de commande', '3DUR', '', '', '', '', '', '', '', '', '0'),
(1, 'Délai livraison moyen', '*CALC', 'base.cti_division([1],[2])', '1', 'Moy Délai livraison', 'CTI_DELLIVMOY', '*CALC', '', 80, 'Délai livraison moyen', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBJLIV', 'CTI_NB_LIGCOM#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '3DUR', '2MNT', '1QTE', '', '', '', '', '', '', '0'),
(1, 'Délai paiement moyen founisseur', '*CALC', 'base.cti_division([1],[2])', '1', 'Moy Délai payment', 'CTI_DELPAYMOY', '*CALC', '', 50, 'Délai paiement moyen founisseur', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBJPAYFOU#2', 'CTI_NB_LIGCOM#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Délai paiement moyen founisseur', '3DUR', '2MNT', '1QTE', '', '', '', '', '', '', '1'),
(1, 'Date d''engagement', 'V_LIGNES_COMMANDES_X', 'CASE WHEN COUNT(DISTINCT(date_engagement)) = 1 THEN MAX(date_engagement)::text ELSE '''' END', '1', 'Date d''engagement', 'CTI_ENGDATE', '*LIST', 'DD/MM/YYYY', 65, 'Date d''engagement', ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Date d''engagement', '3DUR', '', '', '', '', '', '', '', '', '0'),
(1, 'Erreur', 'V_SEP__X', '', '1', '', 'CTI_ERROR', 'SEP', '#', 50, '', '0', ' ', ' ', ' ', ' ', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre moyen de factures par fournisseur', '*CALC', 'base.cti_division([1],[2])', '1', 'Moy Fac. / Four.', 'CTI_FACFOUMOY', '*CALC', '', 50, 'Nombre moyen de factures par fournisseur', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBFAC#2', 'CTI_NBFOU#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre moyen de factures par fournisseur', '1QTE', '', '', '', '', '', '', '', '', '1'),
(1, 'Fréquence de rupture de stocks', '*CALC', 'base.cti_division([2],[1])', '1', 'Fr. ruptures', 'CTI_FRRUPSTO', '*CALC', '#j', 50, 'Fréquence de rupture de stocks', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBRUPSTO', 'CTI_NBJPER', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Duréee en jours / Nombre de rupture de stocks', '3DUR', '', '', '', '', '', '', '', '', '0'),
(1, 'Code du Gestionnaire', 'TABGEST', 'CASE WHEN COUNT( DISTINCT gestionnaire_code) = 1 THEN MAX(gestionnaire_code) ELSE '''' END', '1', 'Gest', 'CTI_GESTCODE', '*LIST', '40', 30, 'Code Gestionnaire', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Code du Gestionnaire', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Code du lieu', 'TABLIEU', 'CASE WHEN COUNT(DISTINCT lieu_code) = 1 THEN MAX(lieu_code) ELSE '''' END', '1', 'Lieu', 'CTI_LIEUCODE', '*LIST', '', 30, 'Code du lieu', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Code du lieu', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Marge brute', '*CALC', '[3]*(base.cti_division([1],[3])-base.cti_division([2],[4]))', '1', 'Marge brute', 'CTI_MBRUT', '*CALC', '#,00E', 100, 'Marge brute', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MTSORTTCSTO-2#01', 'CTI_MTSORTTCSTO-2#01', 'CTI_NBSORSTO#01', 'CTI_MTENTTTCSTO-2#00', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'nombre de sorties * (montant des sorties/nombre sorties - montant des entrées/nombre d''entrées)', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant HT Pertes et Périmés', '*CALC', '[1] + [2]', '1', '', 'CTI_MNTHTPEPE', '*CALC', '#,00E', 100, '', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTHTUFPER', 'CTI_MTSORHT-2#02', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant HT pertes et périmés', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant HT dans UF de Périmés', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN unite_fonctionnelle_id IN [LISTE:CTI_UFPER] THEN sortie_montant_ht ELSE 0 END', '1', 'Mt HT UF Pér.', 'CTI_MNTHTUFPER', 'SUM', '#,00E', 100, 'Montant HT UF Périmés', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant HT des pertes par rapport à la liste CTI des UF de pertes', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant payé HT', 'V_LIGNES_COMMANDES_X', 'montant_liquidation_ht', '1', 'Mt payé. HT', 'CTI_MNTPAYHT', 'SUM', '#,00E', 100, 'Montant payé HT', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant Liquidation HT', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant payé TTC', 'V_LIGNES_COMMANDES_X', 'montant_liquidation_ttc', '1', 'Mt payé. TTC', 'CTI_MNTPAYTTC', 'SUM', '#,00E', 100, 'Montant payé TTC', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant Liquidation TTC', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Valeur stock début période', 'V_STOCK_MENSUEL_X', 'CASE WHEN date_debut = periode THEN stock_valeur_debut ELSE 0 END', '1', 'Valeur Stock début', 'CTI_MNTSTODEB', 'SUMFIRSTMONTH', '#,00E', 100, 'Valeur stock début période', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant stock calculé début période', 'V_MOUVEMENTS_STOCKS_X', 'round(CASE WHEN gere_en_stock != ''0'' AND date < periode AND est_dernier_jour = ''1'' THEN stock_quantite_fin*prix_unitaire_calcule WHEN gere_en_stock != ''0'' AND date = periode AND est_premier_jour = ''1''  THEN stock_quantite_debut*prix_unitaire_calcule ELSE 0 END,10)', '1', 'Mt Stock début', 'CTI_MNTSTODEBACHAT', 'SUMFIRSTMONTH', '#,00E', 100, 'Montant HT stock calculé début période', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant des stocks en début de période basé sur le pump CTI', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant stock calculé début', 'V_MOUVEMENTS_ARTICLES_X', 'round(stock_quantite_debut*prix_unitaire_calcule,10)', '1', 'Mt Stock fin', 'CTI_MNTSTODEBMVT', 'SUM', '#,00E', 100, 'Montant TTC stock calculé en début de mouvement', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant stock en début de mouvement basé sur le pump CTI', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Valeur stock fin période', 'V_STOCK_MENSUEL_X', 'CASE WHEN date_fin = toperiode THEN stock_valeur_fin ELSE 0 END', '1', 'Valeur Stock fin', 'CTI_MNTSTOFIN', 'SUMLASTMONTH', '#,00E', 100, 'Valeur stock fin période', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant stock calculé fin période', 'V_MOUVEMENTS_STOCKS_X', 'round(CASE WHEN gere_en_stock != ''0'' AND toperiode <= date_fin  AND est_dernier_jour = 1 THEN stock_quantite_fin*prix_unitaire_calcule ELSE 0 END,10)', '1', 'Mt Stock fin', 'CTI_MNTSTOFINACHAT', 'SUMLASTMONTH', '#,00E', 100, 'Montant HT stock calculé fin période', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant stock fin de période basé sur le pump CTI', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant stock calculé fin', 'V_MOUVEMENTS_ARTICLES_X', '(MAX(ARRAY[CASE WHEN est_dernier_jour = ''1'' THEN date::text ELSE ''1900-01-01''::text END,round(stock_quantite_fin*prix_unitaire_calcule,10)::text]))[2]::numeric', '1', 'Mt Stock fin', 'CTI_MNTSTOFINMVT', '', '#,00E', 100, 'Montant HT stock calculé en fin de mouvement', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant stock en fin de mouvement basé sur le pump CTI', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Valeur stock moyen (mouvements)', '*CALC', 'base.cti_division([1]+[2],2)', '1', 'Mnt. Stock moy.', 'CTI_MNTSTOMOYMVT', '*CALC', '#,00E', 100, 'Valeur stock moyen (mouvements)', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTODEBACHAT', 'CTI_MNTSTOFINACHAT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Valeur de stock moyen (valeur stock début (achat) + valeur stock fin (achat)  /2)', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Valeur stock moyen', '*CALC', 'base.cti_division([1]+[2],2)', '1', 'Mnt. Stock moy.', 'CTI_MNTSTOMY', '*CALC', '#,00E', 100, 'Valeur stock moyen', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTODEB', 'CTI_MNTSTOFIN', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Valeur de stock moyen (valeur stock début (achat) + valeur stock fin (achat)  /2)', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Valeur TTC stock début période', 'V_STOCK_MENSUEL_X', 'CASE WHEN date_debut = periode THEN stock_valeur_debut_ttc ELSE 0 END', '1', 'Valeur TTC Stock début', 'CTI_MNTTTCSTODEB', 'SUMFIRSTMONTH', '#,00E', 100, 'Valeur TTC stock début période', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Valeur TTC stock fin période', 'V_STOCK_MENSUEL_X', 'CASE WHEN date_fin = toperiode THEN stock_valeur_fin_ttc ELSE 0 END', '1', 'Valeur TTC Stock fin', 'CTI_MNTTTCSTOFIN', 'SUMLASTMONTH', '#,00E', 100, 'Valeur TTC stock fin période', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant des achats', 'V_LIGNES_COMMANDES_X', 'montant_liquidation_ttc', '1', 'Mt achats', 'CTI_MTACHA', 'SUM', '#,00E', 100, 'Montant des achats', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant des achats', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Panier Moyen (HT)', '*CALC', 'base.cti_division([1],[2])', '1', 'Panier Moy. HT', 'CTI_MTCMOYHT', '*CALC', '#E', 100, 'Panier Moyen (HT)', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MTCOMHT#2', 'CTI_NBCOM#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Panier moyen HT (montant commandé ht / nombre de commandes)', '2MNT', '1QTE', '', '', '', '', '', '', '', '0'),
(1, 'Montant commandé HT', 'V_LIGNES_COMMANDES_X', 'montant_commande_ht', '1', 'Mt Com. HT', 'CTI_MTCOMHT', 'SUM', '#,00E', 100, 'Montant Commandé HT', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant Commandé HT', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant commandé TTC', 'V_LIGNES_COMMANDES_X', 'montant_commande_ttc', '1', 'Mt Com. TTC', 'CTI_MTCOMTTC', 'SUM', '#,00E', 100, 'Montant commande TTC', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant commande TTC', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant TTC des entrées', 'V_MOUVEMENTS_ARTICLES_X', 'entree_montant', '1', 'Mt Ent. TTC', 'CTI_MTENT', 'SUM', '#,00E', 100, 'Montant TTC des entrées', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant TTC des entrées', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant HT des entrées', 'V_MOUVEMENTS_ARTICLES_X', 'entree_montant_ht', '1', 'Mt Ent. HT', 'CTI_MTENTHT', 'SUM', '#,00E', 100, 'Montant HT des entrées', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant HT des entrées', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant HT', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) THEN entree_montant_ht ELSE 0 END', '1', 'Mt [TEMPLATE_TEXT_1] HT', 'CTI_MTENTHT-2', 'SUM', '#,00E', 100, 'Montant HT [TEMPLATE_TEXT_1]', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements d''entrée', '', '', '', '', '', '', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant des entrées', 'V_STOCK_MENSUEL_X', 'entree_montant', '1', 'Mt Ent. HT', 'CTI_MTENTSTO', 'SUM', '#,00E', 100, 'Montant HT des entrées', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant TTC des sorties', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant TTC des entrées par type', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]])  THEN entree_montant ELSE 0 END', '1', 'Mt [TEMPLATE_TEXT_1] TTC', 'CTI_MTENTTTC-2', 'SUM', '#,00E', 100, 'Montant [TEMPLATE_TEXT_1] TTC', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements d''entrée', '', '', '', '', '', '', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant TTC des entrées par type - autres', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:99])  THEN entree_montant ELSE 0 END', '1', 'Mt autres TTC', 'CTI_MTENTTTC-2#99', 'SUM', '#,00E', 100, 'Montant autres TTC', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_MTENTTTC-2', '', '', '', '99', '', '', 'autres', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant TTC des entrées (stock)', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN gere_en_stock != ''0'' AND date BETWEEN periode AND toperiode AND  type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) THEN entree_montant ELSE 0 END', '1', 'Mt [TEMPLATE_TEXT_1] TTC (stock)', 'CTI_MTENTTTCSTO-2', 'SUM', '#,00E', 100, 'Montant [TEMPLATE_TEXT_1] TTC (stock)', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements d''entrée', '', '', '', '', '', '', '', '', 'Montant TTC des entrées par type (produit gérés stock)', '', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant TTC des entrées (stock) - livraison', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN gere_en_stock != ''0'' AND date BETWEEN periode AND toperiode AND  type_mouvement_id IN ([CLASSE:CTI_TYPMVT:00]) THEN entree_montant ELSE 0 END', '1', 'Mt livraison TTC (stock)', 'CTI_MTENTTTCSTO-2#00', 'SUM', '#,00E', 100, 'Montant livraison TTC (stock)', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_MTENTTTCSTO-2', '', '', '', '00', '', '', 'livraison', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant d''achats auprès des fournisseurs références', 'V_LIGNES_COMMANDES_X', 'CASE WHEN fournisseur_id IN [LISTE:CTI_FOUREF] OR fournisseur_id = fournisseur_principal_id THEN montant_liquidation_ttc ELSE 0 END', '1', 'Mt achat four. ref.', 'CTI_MTFOUGR', 'SUM', '#,00E', 100, 'Montant d''achats auprès des fournisseurs références', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant d''achats auprès des fournisseurs références', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant HT des entrées (stock)', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN gere_en_stock != ''0'' AND date BETWEEN periode AND toperiode AND type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) THEN entree_montant_ht ELSE 0 END', '1', 'Mt [TEMPLATE_TEXT_1] HT (stock)', 'CTI_MTHTSORSTO-2', 'SUM', '#,00E', 100, 'Montant [TEMPLATE_TEXT_1] HT (stock)', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements d''entrée', '', '', '', '', '', '', '', '', 'Montant HT des entrées par type (produits gérés en stock)', '', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant Ecart HT', 'V_MOUVEMENTS_ARTICLES_X', 'entree_montant_ht-sortie_montant_ht', '1', 'Mt Ecart HT', 'CTI_MTMVTECENTSORHT', 'SUM', '#,00E', 100, 'Montant Ecart HT', '1', ' ', ' ', ' ', ' ', '1', 'CTI_MTENTHT', 'CTI_MTSORHT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Différence entre les montants d''entrée et de sortie en HT', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant Ecart TTC', 'V_MOUVEMENTS_ARTICLES_X', 'entree_montant-sortie_montant', '1', 'Mt Ecart TTC', 'CTI_MTMVTECENTSORTTC', 'SUM', '#,00E', 100, 'Montant Ecart TTC', '1', ' ', ' ', ' ', ' ', '1', 'CTI_MTENT', 'CTI_MTSORT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Différence entre les montants d''entrée et de sortie en TTC', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant non livré HT', 'V_LIGNES_COMMANDES_X', 'montant_non_livraison_ht', '1', 'Mt Non Liv. HT', 'CTI_MTNLIVHT', 'SUM', '#,00E', 80, 'Montant non livré HT', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant non livraison HT', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant non livré TTC', 'V_LIGNES_COMMANDES_X', 'montant_non_livraison_ttc', '1', 'Mt Non Liv. TTC', 'CTI_MTNLIVTTC', 'SUM', '#,00E', 80, 'Montant non livré TTC', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant non livré TTC', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant port', 'V_LIGNES_COMMANDES_X', 'montant_commande_port', '1', 'Mt Port', 'CTI_MTPORT', 'SUM', '#,00E', 100, 'Montant port', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant port', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant remise', 'V_LIGNES_COMMANDES_X', 'montant_commande_remise', '1', 'Mt Remise', 'CTI_MTREM', 'SUM', '#,00E', 80, 'Montant remise', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant remise', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant HT des sorties', 'V_MOUVEMENTS_ARTICLES_X', 'sortie_montant_ht', '1', 'Mt Sor. HT', 'CTI_MTSORHT', 'SUM', '#,00E', 100, 'Montant HT des sorties', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant HT des sorties', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant HT des sorties', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant_ht ELSE 0 END', '1', 'Mt [TEMPLATE_TEXT_1] HT', 'CTI_MTSORHT-2', 'SUM', '#,00E', 100, 'Montant [TEMPLATE_TEXT_1] HT', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements de sortie', '', '', '', '', '', '', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant HT des sorties - consommation', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:01]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant_ht ELSE 0 END', '1', 'Mt consommation HT', 'CTI_MTSORHT-2#01', 'SUM', '#,00E', 100, 'Montant consommation HT', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_MTSORHT-2', '', '', '', '01', '', '', 'consommation', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant HT des sorties - pertes', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:02]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant_ht ELSE 0 END', '1', 'Mt pertes HT', 'CTI_MTSORHT-2#02', 'SUM', '#,00E', 100, 'Montant pertes HT', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_MTSORHT-2', '', '', '', '02', '', '', 'pertes', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant HT des sorties - autres', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:99]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant_ht ELSE 0 END', '1', 'Mt autres HT', 'CTI_MTSORHT-2#99', 'SUM', '#,00E', 100, 'Montant autres HT', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_MTSORHT-2', '', '', '', '99', '', '', 'autres', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant HT des sorties (stock)', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN gere_en_stock != ''0'' AND date BETWEEN periode AND toperiode AND type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant_ht ELSE 0 END', '1', 'Mt [TEMPLATE_TEXT_1] HT (stock)', 'CTI_MTSORHTSTO-2', 'SUM', '#,00E', 100, 'Montant [TEMPLATE_TEXT_1] HT (stock)', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements de sortie', '', '', '', '', '', '', '', '', 'Montant HT des sorties par type (produits gérés en stock)', '', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant TTC des sorties', 'V_MOUVEMENTS_ARTICLES_X', 'sortie_montant', '1', 'Mt Sor. TTC', 'CTI_MTSORT', 'SUM', '#,00E', 100, 'Montant TTC des sorties', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant TTC des sorties', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant des sorties', 'V_STOCK_MENSUEL_X', 'sortie_montant', '1', 'Mt Sor. HT', 'CTI_MTSORTSTO', 'SUM', '#,00E', 100, 'Montant HT des sorties', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant TTC des sorties', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant TTC des sorties par type', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant ELSE 0 END', '1', 'Mt [TEMPLATE_TEXT_1] TTC', 'CTI_MTSORTTC-2', 'SUM', '#,00E', 100, 'Montant [TEMPLATE_TEXT_1] TTC', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements de sortie', '', '', '', '', '', '', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant TTC des sorties par type - pertes', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN type_mouvement_id IN ([CLASSE:CTI_TYPMVT:02]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant ELSE 0 END', '1', 'Mt pertes TTC', 'CTI_MTSORTTC-2#02', 'SUM', '#,00E', 100, 'Montant pertes TTC', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_MTSORTTC-2', '', '', '', '02', '', '', 'pertes', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant TTC des sorties (stock)', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN gere_en_stock != ''0'' AND date BETWEEN periode AND toperiode AND type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant ELSE 0 END', '1', 'Mt [TEMPLATE_TEXT_1] TTC (stock)', 'CTI_MTSORTTCSTO-2', 'SUM', '#,00E', 100, 'Montant [TEMPLATE_TEXT_1] TTC (stock)', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements de sortie', '', '', '', '', '', '', '', '', 'Montant TTC des sorties par type (produit gérés en stock)', '2MNT', '', '', '', '', '', '', '', '', '1'),
(1, 'Montant TTC des sorties (stock) - consommation', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN gere_en_stock != ''0'' AND date BETWEEN periode AND toperiode AND type_mouvement_id IN ([CLASSE:CTI_TYPMVT:01]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_montant ELSE 0 END', '1', 'Mt consommation TTC (stock)', 'CTI_MTSORTTCSTO-2#01', 'SUM', '#,00E', 100, 'Montant consommation TTC (stock)', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_MTSORTTCSTO-2', '', '', '', '01', '', '', 'consommation', '', '', '', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant Ecart HT', 'V_STOCK_MENSUEL_X', 'entree_montant-sortie_montant', '1', 'Mt Ecart HT', 'CTI_MTSTOECENTSORHT', 'SUM', '#,00E', 100, 'Montant Ecart HT', '4', ' ', ' ', ' ', ' ', '4', 'CTI_MTENTHT', 'CTI_MTSORHT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Différence entre les montants d''entrée et de sortie en HT', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Montant TVA', 'V_LIGNES_COMMANDES_X', 'montant_commande_tva', '1', 'Mt TVA', 'CTI_MTTVA', 'SUM', '#,00E', 80, 'Montant TVA', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Montant TVA', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Numéro de commande', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN COUNT(DISTINCT commande_code) = 1 THEN MAX(commande_code) ELSE '''' END', '1', 'Commande', 'CTI_MVTCMD', '*LIST', '', 50, 'Numéro de commande', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Numéro de commande associé', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Date', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN COUNT(DISTINCT date) = 1 THEN MAX(date::text) ELSE '''' END', '1', 'Date', 'CTI_MVTDATE', '*LIST', 'DD/MM/YYYY', 65, 'Date de mouvement', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Date du mouvement', '3DUR', '', '', '', '', '', '', '', '', '0'),
(1, 'Date de commande', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN COUNT(DISTINCT date_commande) = 1 THEN MAX(date_commande)::text ELSE '''' END', '1', 'Date de commande', 'CTI_MVTDCMD', '*LIST', 'DD/MM/YYYY', 65, 'Date de commande', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Date de Commande', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Texte du mouvement', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN COUNT(DISTINCT mouvement_texte) = 1 THEN MAX(mouvement_texte) ELSE '''' END', '1', 'Texte', 'CTI_MVTTXT', '*LIST', '', 200, 'Texte du mouvement', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Texte du mouvement', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Type de mouvement', 'V_MOUVEMENTS_ARTICLES_X', 'CASE WHEN COUNT(DISTINCT type_mouvement_code) = 1 THEN MAX(type_mouvement_code) ELSE '''' END', '1', 'Mvt', 'CTI_MVTTYPE', '*LIST', '', 30, 'Type de mouvement', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Code du type de mouvement', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles différents', 'V_MOUVEMENTS_ARTICLES_X', 'DISTINCT article_id', '1', 'Nb Art.', 'CTI_NBART', 'COUNT', '', 50, 'Nombre d''articles', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''articles', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre d''articles différents commandés', 'V_LIGNES_COMMANDES_X', 'DISTINCT article_id', '1', 'Nb Art. Com.', 'CTI_NBARTCOM', 'COUNT', '', 50, 'Nombre d''articles commandés', ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''articles commandés', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre moyen d''articles par commande', '*CALC', 'base.cti_division([1],[2])', '1', 'Moy Art. / com.', 'CTI_NBARTMOYCOM', '*CALC', '', 50, 'Nombre moyen d''articles par commande', ' ', ' ', ' ', ' ', ' ', ' ', '', 'CTI_NBCOM#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre moyen d''articles par commande', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre de commandes', 'V_LIGNES_COMMANDES_X', 'DISTINCT commande_id', '1', 'Nb Com.', 'CTI_NBCOM', 'COUNT', '', 50, 'Nombre de commandes', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de commandes', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité entrée', 'V_MOUVEMENTS_ARTICLES_X', 'entree_quantite', '1', 'Qté entrée', 'CTI_NBENT', 'SUM', '', 70, 'Quantité entrée', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Quantité entrée', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité entrée (stock)', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN gere_en_stock != ''0'' AND  date BETWEEN periode AND toperiode AND  type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) THEN entree_quantite ELSE 0 END', '1', 'Qté [TEMPLATE_TEXT_1] (stock)', 'CTI_NBENTSTO', 'SUM', '#,00E', 90, 'Quantité entrée [TEMPLATE_TEXT_1] (stock)', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements d''entrée', '', '', '', '', '', '', '', '', 'Quantité des entrées par type (produit gérés stock)', '', '', '', '', '', '', '', '', '', '1'),
(1, 'Quantité entrée (stock) - livraison', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN gere_en_stock != ''0'' AND  date BETWEEN periode AND toperiode AND  type_mouvement_id IN ([CLASSE:CTI_TYPMVT:00]) THEN entree_quantite ELSE 0 END', '1', 'Qté livraison (stock)', 'CTI_NBENTSTO#00', 'SUM', '#,00E', 90, 'Quantité entrée livraison (stock)', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_NBENTSTO', '', '', '', '00', '', '', 'livraison', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité entrée', 'V_STOCK_MENSUEL_X', 'entree_quantite', '1', 'Qté entrée', 'CTI_NBENTSTOM', 'SUM', '', 70, 'Quantité entrée', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Quantité entrée', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre total de factures', 'V_LIGNES_COMMANDES_X', 'DISTINCT CASE WHEN montant_liquidation_ht != 0 THEN commande_id ELSE null END', '1', 'Nb Fac.', 'CTI_NBFAC', 'COUNT', '', 50, 'Nombre total de factures', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre total de factures', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre total de fournisseurs', 'V_LIGNES_COMMANDES_X', 'DISTINCT fournisseur_id', '1', 'Nb Four.', 'CTI_NBFOU', 'COUNT', '', 50, 'Nombre total de fournisseurs', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre total de fournisseurs', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre de fournisseurs régionaux', 'V_LIGNES_COMMANDES_X', 'DISTINCT CASE WHEN fournisseur_id in [LISTE:CTI_FOUREG] THEN fournisseur_id ELSE null END', '1', 'Nb Four. regio.', 'CTI_NBFOUREG', 'COUNT', '', 50, 'Nombre de fournisseurs régionaux', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de fournisseurs régionaux', '1QTE', '', '', '', '', '', '', '', '', '1'),
(1, 'Delais livraison', 'V_LIGNES_COMMANDES_X', 'CASE WHEN ligne_commande_etat_livraison = ''T'' THEN date_reception - date_commande ELSE 0 END', '1', 'Delais livraison', 'CTI_NBJLIV', 'SUM', '', 80, 'Delais livraison', ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '3DUR', '', '', '', '', '', '', '', '', '0'),
(1, 'Delais paiement fournisseurs', 'V_LIGNES_COMMANDES_X', 'CASE WHEN date_reglement IS NOT NULL THEN delai_paiement ELSE 0 END', '1', 'Delais paiement fournisseurs', 'CTI_NBJPAYFOU', 'SUM', '', 50, 'Delais paiement fournisseurs', '2', '3', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Delais paiement fournisseurs', '3DUR', '', '', '', '', '', '', '', '', '1'),
(1, 'Durée période', 'V_MOUVEMENTS_STOCKS_X', 'date( toperiode) - date( periode)', '1', 'Durée période', 'CTI_NBJPER', 'MIN', '', 50, 'Durée période', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Durée période', '3DUR', '', '', '', '', '', '', '', '', '1'),
(1, 'Nombre de litiges, de retard...', 'V_LIGNES_COMMANDES_X', 'DISTINCT CASE WHEN date_reception > date_livraison_prevue + 10 OR quantite_non_livraison_approvisionnement > 0 THEN commande_id ELSE null END', '1', 'Nb litiges...', 'CTI_NBLIRET', 'COUNT', '', 50, 'Nombre de litiges, de retard...', ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lignes de commandes où les produits n''ont pas été livrées en intégralité et nombre de livraison supérieure à 10 jours', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre de livraisons > 10 jours', 'V_LIGNES_COMMANDES_X', 'DISTINCT CASE WHEN date_reception > date_livraison_prevue + 10 THEN commande_id ELSE null END', '1', 'Nb com. non liv. 10 j.', 'CTI_NBLIV10', 'COUNT', '', 80, 'Nombre de livraison supérieures à 10 jours', ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lignes de commandes où les produits n''ont pas été livrées en intégralité dans les 10 jours', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre de mouvements', 'V_MOUVEMENTS_ARTICLES_X', '1', '1', 'Nb mouvements', 'CTI_NBMVT', 'SUM', '', 50, 'Nombre de mouvements', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de mouvements', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre de commandes non livrées en totalité', 'V_LIGNES_COMMANDES_X', 'DISTINCT CASE WHEN quantite_non_livraison_approvisionnement > 0 THEN commande_id ELSE null END', '1', 'Nb com. non liv. tot.', 'CTI_NBNLI', 'COUNT', '', 80, 'Nombre de commandes incomplètes', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lignes de commandes où les produits n''ont pas été livrées en intégralité', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre de rupture de stocks', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN est_dernier_jour = 1 AND stock_quantite_fin < 0  and gere_en_stock != ''0'' THEN 1 ELSE 0 END', '1', 'Nb ruptures', 'CTI_NBRUPSTO', 'SUM', '', 50, 'Nombre de rupture de stocks', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''occurence d''une quantité de stock négative pour un produit géré en stock', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité sortie (stock)', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN gere_en_stock != ''0'' AND date BETWEEN periode AND toperiode AND type_mouvement_id IN ([CLASSE:CTI_TYPMVT:[TEMPLATE_VALUE_1]]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_quantite ELSE 0 END', '1', 'Qté [TEMPLATE_TEXT_1] (stock)', 'CTI_NBSORSTO', 'SUM', '#,00E', 90, 'Quantité sortie [TEMPLATE_TEXT_1] (stock)', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', 'Type de mouvements de sortie', '', '', '', '', '', '', '', '', 'Quantité sortie (produits gérés en stock)', '', '', '', '', '', '', '', '', '', '1'),
(1, 'Quantité sortie (stock) - consommations', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN gere_en_stock != ''0'' AND date BETWEEN periode AND toperiode AND type_mouvement_id IN ([CLASSE:CTI_TYPMVT:01]) AND unite_fonctionnelle_id NOT IN [LISTE:CTI_UFPER] THEN sortie_quantite ELSE 0 END', '1', 'Qté consommations (stock)', 'CTI_NBSORSTO#01', 'SUM', '#,00E', 90, 'Quantité sortie consommations (stock)', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', 'CTI_NBSORSTO', '', '', '', '01', '', '', 'consommations', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité sortie', 'V_MOUVEMENTS_ARTICLES_X', 'sortie_quantite', '1', 'Qté sortie', 'CTI_NBSORT', 'SUM', '', 70, 'Quantité sortie', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Quantité sortie', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité sortie', 'V_STOCK_MENSUEL_X', 'sortie_quantite', '1', 'Qté sortie', 'CTI_NBSORTSTO', 'SUM', '', 70, 'Quantité sortie', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Quantité sortie', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombres de lignes de commandes', 'V_LIGNES_COMMANDES_X', 'DISTINCT ligne_commande_id', '1', 'Nb Lignes Com.', 'CTI_NB_LIGCOM', 'COUNT', '', 50, 'Nombres de lignes de commandes', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombres de lignes de commandes', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Prix Unitaire HT Calculé', 'V_MOUVEMENTS_ARTICLES_X', '(MAX(ARRAY[CASE WHEN est_dernier_jour = ''1'' THEN date::text ELSE ''1900-01-01''::text END,round(prix_unitaire_calcule,2)::text]))[2]::numeric', '1', 'PU HT', 'CTI_PUCALC', '', '#,00E', 60, 'PU HT', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Prix Unitaire Calculé  HT (Calul d''après les stocks mensuels et les livraisons)', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Prix Unitaire HT (dernier)', 'V_LIGNES_COMMANDES_X', '((MAX(ARRAY[date_commande::text,base.cti_division(CASE WHEN montant_commande_ht > 0 THEN montant_commande_ht ELSE 0 END,CASE WHEN montant_commande_ht > 0 THEN quantite_approvisionnement ELSE 0 END)::text]))[2]::numeric)', '1', 'PU HT (dernier)', 'CTI_PULHT', 'CUSTOM', '#,0000E', 60, 'Dernier Prix Unitaire HT', '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Dernier Prix Unitaire HT (commande)', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Prix Unitaire TTC (dernier)', 'V_MOUVEMENTS_ARTICLES_X', '((MAX(ARRAY[date::text,CASE WHEN prix_unitaire > 0 THEN prix_unitaire ELSE 0 END::text]))[2]::numeric)', '1', 'PU TTC (dernier)', 'CTI_PULMVT', '', '#,0000E', 60, 'PU TTC (dernier)', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Dernier Prix Unitaire TTC', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Prix Unitaire TTC (dernier)', 'V_LIGNES_COMMANDES_X', '(MAX(ARRAY[date_commande::text,base.cti_division(CASE WHEN montant_commande_ttc > 0 THEN montant_commande_ttc ELSE 0 END,CASE WHEN montant_commande_ttc > 0 THEN quantite_approvisionnement ELSE 0 END)::text]))[2]::numeric', '1', 'PU TTC (dernier)', 'CTI_PULTTC', '', '#,0000E', 60, 'Dernier Prix Unitaire TTC', '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Dernier Prix Unitaire TTC', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Prix Unitaire Moyen', '*CALC', 'base.cti_division([1],[2])', '1', 'PU Moy.', 'CTI_PUMOY', '*CALC', '#,0000E', 60, 'Prix Unitaire Moyen', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFIN', 'CTI_QTESTOFIN', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Prix Unitaire Moyen', '2MNT', '1QTE', '', '', '', '', '', '', '', '0'),
(1, 'Prix Unitaire Moyen liquidation TTC', '*CALC', 'base.cti_division([1],[2])', '1', 'PU Moy. TTC', 'CTI_PUMOYCOM', '*CALC', '#,0000E', 60, 'Prix Unitaire Moyen TTC', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTPAYTTC#2', 'CTI_QTELIV#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Prix Unitaire Moyen (Montant liquidation TTC / quantié livrée)', '2MNT', '1QTE', '', '', '', '', '', '', '', '0'),
(1, 'PUMP (moyen)', '*CALC', 'base.cti_division([1]+[2],[3]+[4])', '1', 'PUMP Moy.', 'CTI_PUMOYMVT', '*CALC', '#,0000E', 60, 'PUMP moyen', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MTENTHT', 'CTI_MTSORHT', 'CTI_NBENT', 'CTI_NBSORT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Prix Unitaire Moyen Pondéré (global)', '2MNT', '1QTE', '', '', '', '', '', '', '', '0'),
(1, 'Quantité commandée', 'V_LIGNES_COMMANDES_X', 'quantite_approvisionnement', '1', 'Qté Com.', 'CTI_QTECOM', 'SUM', '', 70, 'Quantité commandé', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Quantité commandé', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Stock calculé début période', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN gere_en_stock != ''0'' AND est_dernier_jour = 1 and date < periode THEN stock_quantite_fin WHEN gere_en_stock != ''0'' AND date = periode and est_premier_jour = 1  THEN stock_quantite_debut ELSE 0 END', '1', 'Qté Stock début', 'CTI_QTEDEBMVT', 'SUMFIRSTMONTH', '', 70, 'Quantité Stock calculé début période', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Ecart', 'V_MOUVEMENTS_ARTICLES_X', 'entree_quantite-sortie_quantite', '1', 'Qté Ecart', 'CTI_QTEECAENTSOR', 'SUM', '', 70, 'Quantité écart', '1', ' ', ' ', ' ', ' ', '1', 'CTI_NBENT', 'CTI_NBSORT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Différence entre les quantités entrées et sorties', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Ecart', '*CALC', '', '1', 'Qté Ecart', 'CTI_QTEECAMVS', '*CALC', '', 70, 'Quantité écart', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBENTSTO#00', 'CTI_NBENTSTO#00', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Différence entre les quantités livrées et consommées', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Ecart', 'V_STOCK_MENSUEL_X', 'entree_quantite-sortie_quantite', '1', 'Qté Ecart', 'CTI_QTEECASTO', 'SUM', '', 70, 'Quantité écart', '4', ' ', ' ', ' ', ' ', '4', 'CTI_NBENT', 'CTI_NBSORT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Différence entre les quantités entrées et sorties', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité livrée', 'V_LIGNES_COMMANDES_X', 'quantite_livraison_approvisionnement', '1', 'Qté livrée.', 'CTI_QTELIV', 'SUM', '', 80, 'Quantité livrée', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Quantité commandé', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Stock calculé fin période', 'V_MOUVEMENTS_STOCKS_X', 'CASE WHEN gere_en_stock != ''0'' AND date_fin > toperiode AND est_dernier_jour = 1 THEN stock_quantite_fin ELSE 0 END', '1', 'Qté Stock fin', 'CTI_QTEMVTFIN', 'SUMLASTMONTH', '', 70, 'Quantité Stock calculé fin période', '5', ' ', ' ', ' ', ' ', '5', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité non livrée', 'V_LIGNES_COMMANDES_X', 'quantite_non_livraison_approvisionnement', '1', 'Qté non liv.', 'CTI_QTENLIV', 'SUM', '', 80, 'Quantité non livrée', '2', '3', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Quantité non livrée', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Stock début période', 'V_STOCK_MENSUEL_X', 'CASE WHEN date_debut = periode THEN stock_quantite_debut ELSE 0 END', '1', 'Qté Stock debut', 'CTI_QTESTODEB', 'SUMFIRSTMONTH', '', 70, 'Quantité Stock début période', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Stock calculé début', 'V_MOUVEMENTS_ARTICLES_X', '(MIN(ARRAY[CASE WHEN est_premier_jour = ''1'' THEN date::text ELSE ''2099-12-31''::text END,stock_quantite_debut::text]))[2]::numeric', '1', 'Qté Stock début', 'CTI_QTESTODEBMVT', '', '', 70, 'Quantité Stock calculé en début de mouvement', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Stock fin période', 'V_STOCK_MENSUEL_X', 'CASE WHEN date_fin = toperiode THEN stock_quantite_fin ELSE 0 END', '1', 'Qté Stock fin', 'CTI_QTESTOFIN', 'SUMLASTMONTH', '', 70, 'Quantité Stock fin période', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '1QTE', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité Stock calculé fin', 'V_MOUVEMENTS_ARTICLES_X', '(MAX(ARRAY[CASE WHEN est_dernier_jour = ''1'' THEN date::text ELSE ''1900-01-01''::text END,,stock_quantite_fin::text]))[2]::numeric', '1', 'Qté Stock fin', 'CTI_QTESTOFINMVT', '', '', 70, 'Quantité Stock calculé fin de mouvement', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Quantité stock moyen (mouvements)', '*CALC', 'base.cti_division([1]+[2],2)', '1', 'Qté. Stock moy.', 'CTI_QTESTOMOYMVT', '*CALC', '#,00E', 90, 'Quantité stock moyen (mouvements)', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_QTEDEBMVT', 'CTI_QTEMVTFIN', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Quantité de stock moyen (quantité stock début (achat) + quantité stock fin (achat)  /2)', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Calcul d''indicateurs dans le rapport', '*RAPPORTCALC', '', '1', '', 'CTI_RAPPORTCALC', 'sum', '#', 50, '', '0', ' ', ' ', ' ', ' ', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Pour calculer directement dans la définition du rapport', '', '', '', '', '', '', '', '', '', '1'),
(1, 'Date de réception', 'V_LIGNES_COMMANDES_X', 'CASE WHEN COUNT(DISTINCT(date_reception)) = 1 THEN MAX(date_reception)::text ELSE '''' END', '1', 'Date de réception', 'CTI_RECDATE', '*LIST', 'DD/MM/YYYY', 65, 'Date de réception', ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Date de réception', '3DUR', '', '', '', '', '', '', '', '', '0'),
(1, 'Référence commande', 'V_LIGNES_COMMANDES_X', 'CASE WHEN COUNT(DISTINCT commande_reference) = 1 THEN MAX(commande_reference) ELSE '''' END', '1', 'Réference commande', 'CTI_REFCOM', '*LIST', '', 50, 'Réference commande', ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Référence commande', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Rotation du stock par rapport aux entrées', '*CALC', 'round(base.cti_division([3],base.cti_division([1]+[2],2)),0)', '1', 'Rotation du stock / entrées', 'CTI_ROTSTOACH', '*CALC', '', 50, 'Rotation du stock / entrées', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFIN', 'CTI_QTESTOFIN', 'CTI_MTENTSTO', 'CTI_NBJPER', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Rapport entre les achats sur la période et le stock moyen (valeur stock début + valeur stock fin / 2)', '2MNT', '1QTE', '3DUR', '', '', '', '', '', '', '1'),
(1, 'Rotation du stock calculé par rapport aux achat', '*CALC', 'round(base.cti_division([3],base.cti_division([1]+[2],2)),0)', '1', 'Rotation du stock / achat', 'CTI_ROTSTOMVTACH', '*CALC', '', 50, 'Rotation du stock calculé / achat', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFINACHAT', 'CTI_QTEDEBMVT', 'CTI_MTENTTTCSTO-2#00', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Rapport entre les achats sur la période et le stock moyen (valeur stock début + valeur stock fin / 2)', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Rotation du stock calculé par rapport aux ventes', '*CALC', 'round(base.cti_division(365*[3]/[4],([1]+[2])/2),0)', '1', 'Rotation du stock / vente', 'CTI_ROTSTOMVTVEN', '*CALC', '', 50, 'Rotation du stock calculé / vente', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFINACHAT', 'CTI_MNTSTODEBACHAT', 'CTI_MTSORTTCSTO-2#01', 'CTI_NBJPER', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Rapport entre le CA TTC et le stock moyen (valeur stock début + valeur stock fin / 2) sur période', '2MNT', '3DUR', '', '', '', '', '', '', '', '0'),
(1, 'Rotation du stock par rapport aux sorties', '*CALC', 'roud(base.cti_division(365*[3]/[4],([1]+[2])/2))', '1', 'Rotation du stock / sorties', 'CTI_ROTSTOVEN', '*CALC', '', 50, 'Rotation du stock / sorties', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFIN', 'CTI_MNTSTODEB', 'CTI_MTSORTSTO', 'CTI_NBJPER', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Rapport entre le CA TTC et le stock moyen (valeur stock début + valeur stock fin / 2) sur période', '2MNT', '3DUR', '', '', '', '', '', '', '', '0'),
(1, 'Séparateur', 'SEP', '', '1', '', 'CTI_SEP', 'SEP', '#', 0, '', '0', ' ', ' ', ' ', ' ', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Code du site', 'TABSITE', 'CASE WHEN COUNT(DISTINCT site_code) = 1 THEN MAX(site_code) ELSE '''' END', '1', 'Site', 'CTI_SITECODE', '*LIST', '', 30, 'Code du site', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Code du site', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Durée stock moyen (jours)', '*CALC', 'round(365*base.cti_division(([1]+[2])/2,365*[3]/[4]),0)', '1', 'Stock moyen (j)', 'CTI_STOMOYJ', '*CALC', '#j', 50, 'Durée stock moyen (jours)', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFINACHAT', 'CTI_MNTSTODEBACHAT', 'CTI_MTSORHT', 'CTI_NBJPER', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Rapport entre les ventes et le stock moyen (valeur stock début + valeur stock fin /2) ramené à l''année', '2MNT', '3DUR', '', '', '', '', '', '', '', '0'),
(1, 'PUMP début période', 'V_STOCK_MENSUEL_X', 'CASE WHEN date_debut = periode THEN pump ELSE 0 END', '1', 'PUMP déb. période', 'CTI_STOPUMPDEB', 'SUMFIRSTMONTH', '#,0000E', 60, 'PUMP début période', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Prix Unitaire Moyen Pondéré', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'PUMP fin période', 'V_STOCK_MENSUEL_X', 'CASE WHEN date_fin = toperiode THEN pump ELSE 0 END', '1', 'PUMP fin période', 'CTI_STOPUMPFIN', 'SUMLASTMONTH', '#,0000E', 60, 'PUMP fin période', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Prix Unitaire Moyen Pondéré', '2MNT', '', '', '', '', '', '', '', '', '0'),
(1, 'Nombre moyen de références actives par fournisseur', '*CALC', 'base.cti_division([1],[2])', '1', 'Nb moyen réf actives / four.', 'CTI_TXARTFOU', '*CALC', '', 50, 'Nombre moyen de références actives par fournisseur', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBART', 'CTI_NBFOU#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre moyen de références actives par fournisseur', '1QTE', '', '', '', '', '', '', '', '', '1'),
(1, 'Taux d''achats auprès des fournisseurs références', '*CALC', '100*base.cti_division([1],[2])', '1', 'Tx Fou. Ref.', 'CTI_TXFOUGR', '*CALC', '#,00%', 50, 'Taux d''achats auprès des fournisseurs références', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MTFOUGR#2', 'CTI_MTACHA#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux d''achats auprès des fournisseurs références', '4TAUX', '2MNT', '', '', '', '', '', '', '', '1'),
(1, 'Taux de fournisseurs régionaux', '*CALC', '100*base.cti_division([1],[2])', '1', 'Tx Four. Reg.', 'CTI_TXFOUREG', '*CALC', '#,00%', 50, 'Taux fournisseurs de régionaux', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBFOUREG#2', 'CTI_NBFOU#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux de fournisseurs régionaux', '4TAUX', '1QTE', '', '', '', '', '', '', '', '1'),
(1, 'Taux de litiges, taux de retard...', '*CALC', '100*base.cti_division([1],[2])', '1', 'Tx litiges...', 'CTI_TXLIRET', '*CALC', '#,00%', 50, 'Taux de litiges, taux de retard...', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBLIRET', 'CTI_NBCOM#2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux de litiges (livraison incomplète) et de retard (livraison > 10 jours)', '4TAUX', '1QTE', '', '', '', '', '', '', '', '0'),
(1, 'Taux de Marge', '*CALC', '100*(base.cti_division([5],[2]) - (base.cti_division([3],[4])))', '1', 'Tx Marge', 'CTI_TXMARGSTO', '*CALC', '#,00%', 50, 'Taux de Marge', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFIN', 'CTI_MTENTSTO', 'CTI_NBSORTSTO', 'CTI_NBENTSTO', 'CTI_MTSORTSTO', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '(nombre de sorties * (montant des sorties/nombre sorties - montant des entrées/nombre d''entrées)) / montant_entree', '4TAUX', '1QTE', '2MNT', '', '', '', '', '', '', '1'),
(1, 'Taux de Marque', '*CALC', '100*(CASE WHEN [1]  > 0 AND [2] > 0 THEN 1 - base.cti_division([2]*[3],[4]*[1]) ELSE 0 END)', '1', 'Tx Marque', 'CTI_TXMARQSTO', '*CALC', '#,00%', 50, 'Taux de Marque', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MTSORTTCSTO-2#01', 'CTI_MTENTTTCSTO-2#00', 'CTI_NBSORSTO#01', 'CTI_NBENTSTO#00', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Pour les articles ayant des mouvements d''entrées et de sortie, (nombre de sorties * (montant des sorties/nombre sorties - montant des entrées/nombre d''entrées)) / montant sortie, 0 sinon', '4TAUX', '1QTE', '2MNT', '', '', '', '', '', '', '1'),
(1, 'Taux de Marge', '*CALC', '100*(base.cti_division([5],[2]) - (base.cti_division([3],[4])))', '1', 'Tx Marge', 'CTI_TXMRG', '*CALC', '#,00%', 50, 'Taux de Marge', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFINACHAT', 'CTI_MTENTTTCSTO-2#00', 'CTI_NBSORSTO#01', 'CTI_NBENTSTO#00', 'CTI_MTSORTTCSTO-2#01', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '(nombre de sorties * (montant des sorties/nombre sorties - montant des entrées/nombre d''entrées)) / montant_entree', '1QTE', '2MNT', '', '', '', '', '', '', '', '1'),
(1, 'Taux de Marque', '*CALC', '100*(CASE WHEN [5]  > 0 THEN 1 - base.cti_division([2]*[3],[4]*[5]) ELSE 0 END)', '1', 'Tx Marque', 'CTI_TXMRQ', '*CALC', '#,00%', 50, 'Taux de Marque', ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MNTSTOFINACHAT', 'CTI_MTENT', 'CTI_NBSORT', 'CTI_NBENT', 'CTI_MTSORT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '(nombre de sorties * (montant des sorties/nombre sorties - montant des entrées/nombre d''entrées)) / montant sortie', '4TAUX', '1QTE', '2MNT', '', '', '', '', '', '', '1'),
(1, 'Code de l''Unité d''approvisionnement', 'TABUNIT', 'CASE WHEN COUNT(DISTINCT unite_approvisionnement_article_id) = 1 AND MAX(unite_approvisionnement_article_id) <> 0 AND MAX(unite_approvisionnement_article_code) <> ''UN'' THEN MAX(unite_approvisionnement_article_code) ELSE '''' END', '1', 'Unité', 'CTI_UAPCODE', '*LIST', '', 30, 'Code de l''Unité d''approvisionnement', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Unité d''approvisionnement', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Code de l''Unité Fonctionnelle', 'TABUF', 'CASE WHEN COUNT(DISTINCT unite_fonctionnelle_code) = 1 THEN MAX(unite_fonctionnelle_code) ELSE '''' END', '1', 'UF', 'CTI_UFCODE', '*LIST', '', 30, 'Code de l''UF', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Code de l''Unite Fonctionnelle', '', '', '', '', '', '', '', '', '', '0'),
(1, 'Code de l''Unité de stockage', 'TABUNIT', 'CASE WHEN COUNT(DISTINCT unite_stockage_article_id) = 1 AND MAX(unite_stockage_article_id) <> 0 AND MAX(unite_stockage_article_code) <> ''UN'' THEN MAX(unite_stockage_article_code) ELSE '''' END', '1', 'Unité', 'CTI_USTOCODE', '*LIST', '', 30, 'Code de l''Unité de stockage', '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Unité de stockage', '', '', '', '', '', '', '', '', '', '0')
;

-- 3/3 : Màj de la table iCTI
DELETE FROM eco.t_indicateurs 
USING
(
SELECT code, MIN(oid) AS minoid FROM eco.t_indicateurs WHERE code <> '' GROUP BY 1 HAVING count(*) > 1
) subview 
WHERE t_indicateurs.code = subview.code AND t_indicateurs.oid <> subview.minoid;

UPDATE eco.t_indicateurs SET 
	texte = w_dbsetup.texte, 
	table_name = w_dbsetup.table_name,
	column_name = w_dbsetup.column_name,
	is_cti = w_dbsetup.is_cti, 
	entete = w_dbsetup.entete,
	entete_etendue = w_dbsetup.entete_etendue,
	total_function = w_dbsetup.total_function,
	output_format = w_dbsetup.output_format,
	width = w_dbsetup.width,
	dimension_date_1 = w_dbsetup.dimension_date_1,
	dimension_date_2 = w_dbsetup.dimension_date_2,
	dimension_date_3 = w_dbsetup.dimension_date_3,
	dimension_date_4 = w_dbsetup.dimension_date_4,
	dimension_date_5 = w_dbsetup.dimension_date_5,
	dimension_date = w_dbsetup.dimension_date,
	is_template = w_dbsetup.is_template, 
	variable_definition = ARRAY[variable_definition_1,variable_definition_2,variable_definition_3] ,
	variable_value = ARRAY[variable_value_1,variable_value_2,variable_value_3],  
	variable_value_text = ARRAY[variable_value_text_1,variable_value_text_2,variable_value_text_3],  
	description = w_dbsetup.description,
	is_hide = CASE WHEN t_indicateurs.is_hide = '1' THEN '1' ELSE w_dbsetup.is_hide END
FROM w_dbsetup
WHERE t_indicateurs.code = w_dbsetup.code;

-- Ajout des indicateurs
INSERT INTO eco.t_indicateurs(texte,
	 table_name,
	 column_name,
	 is_cti,
	 entete,
	 entete_etendue,
	 code,
	 total_function,
	 output_format,
	 width,
	 dimension_date_1,
	 dimension_date_2,
	 dimension_date_3,
	 dimension_date_4,
	 dimension_date_5,
	 dimension_date,
	 is_template,
	 variable_definition,
	 variable_value,
	 variable_value_text,
	 description,
	 is_hide
)
SELECT texte,
	 table_name,
	 column_name,
	 is_cti,
	 entete,
	 entete_etendue,
	 code,
	 total_function,
	 output_format,
	 width,
	 dimension_date_1,
	 dimension_date_2,
	 dimension_date_3,
	 dimension_date_4,
	 dimension_date_5,
	 dimension_date,
	 is_template,
	 ARRAY[variable_definition_1,variable_definition_2,variable_definition_3] ,
	 ARRAY[variable_value_1,variable_value_2,variable_value_3],  
	 ARRAY[variable_value_text_1,variable_value_text_2,variable_value_text_3], 
	 description,
	 is_hide
FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM eco.t_indicateurs WHERE code IS NOT NULL);

-- Thèmes
UPDATE eco.t_indicateurs SET
	theme_id = ARRAY[
		t_indicateur_theme_1.oid,
		t_indicateur_theme_2.oid,
		t_indicateur_theme_3.oid,
		t_indicateur_theme_4.oid,
		t_indicateur_theme_5.oid,
		t_indicateur_theme_6.oid,
		t_indicateur_theme_7.oid,
		t_indicateur_theme_8.oid,
		t_indicateur_theme_9.oid
		]
FROM w_dbsetup
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_1 ON w_dbsetup.theme_1_code = t_indicateur_theme_1.code
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_2 ON w_dbsetup.theme_2_code = t_indicateur_theme_2.code
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_3 ON w_dbsetup.theme_3_code = t_indicateur_theme_3.code
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_4 ON w_dbsetup.theme_4_code = t_indicateur_theme_4.code
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_5 ON w_dbsetup.theme_5_code = t_indicateur_theme_5.code
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_6 ON w_dbsetup.theme_6_code = t_indicateur_theme_6.code
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_7 ON w_dbsetup.theme_7_code = t_indicateur_theme_7.code
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_8 ON w_dbsetup.theme_8_code = t_indicateur_theme_8.code
LEFT JOIN eco.t_indicateur_theme t_indicateur_theme_9 ON w_dbsetup.theme_9_code = t_indicateur_theme_9.code
WHERE t_indicateurs.code = w_dbsetup.code AND
	theme_id IS DISTINCT FROM ARRAY[
		t_indicateur_theme_1.oid,
		t_indicateur_theme_2.oid,
		t_indicateur_theme_3.oid,
		t_indicateur_theme_4.oid,
		t_indicateur_theme_5.oid,
		t_indicateur_theme_6.oid,
		t_indicateur_theme_7.oid,
		t_indicateur_theme_8.oid,
		t_indicateur_theme_9.oid
		]
 ;

 -- Mise à jour des références
UPDATE eco.t_indicateurs SET 
	indicateur_associe_1_id = COALESCE(t_indicateurs_1.oid,0),
	indicateur_associe_2_id = COALESCE(t_indicateurs_2.oid,0),
	indicateur_associe_3_id = COALESCE(t_indicateurs_3.oid,0),
	indicateur_associe_4_id = COALESCE(t_indicateurs_4.oid,0),
	indicateur_associe_5_id = COALESCE(t_indicateurs_5.oid,0),
	indicateur_associe_6_id = COALESCE(t_indicateurs_6.oid,0),
	indicateur_associe_7_id = COALESCE(t_indicateurs_7.oid,0),
	indicateur_associe_8_id = COALESCE(t_indicateurs_8.oid,0),
	indicateur_associe_9_id = COALESCE(t_indicateurs_9.oid,0),
	indicateur_associe_10_id = COALESCE(t_indicateurs_10.oid,0),
	indicateur_associe_11_id = COALESCE(t_indicateurs_11.oid,0),
	indicateur_associe_12_id = COALESCE(t_indicateurs_12.oid,0),
	indicateur_associe_13_id = COALESCE(t_indicateurs_13.oid,0),
	indicateur_associe_14_id = COALESCE(t_indicateurs_14.oid,0),
	indicateur_associe_15_id = COALESCE(t_indicateurs_15.oid,0),
	indicateur_associe_16_id = COALESCE(t_indicateurs_16.oid,0),
	indicateur_associe_17_id = COALESCE(t_indicateurs_17.oid,0),
	indicateur_associe_18_id = COALESCE(t_indicateurs_18.oid,0),
	indicateur_associe_19_id = COALESCE(t_indicateurs_19.oid,0),
	indicateur_associe_20_id = COALESCE(t_indicateurs_20.oid,0),
	indicateur_reference_id = COALESCE(t_indicateurs_reference.oid,0),
	indicateur_template_id = COALESCE(t_indicateurs_template.oid,0)
FROM w_dbsetup
	LEFT JOIN eco.t_indicateurs t_indicateurs_1 ON (w_dbsetup.indicateur_associe_1_code = t_indicateurs_1.code AND w_dbsetup.indicateur_associe_1_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_2 ON (w_dbsetup.indicateur_associe_2_code = t_indicateurs_2.code AND w_dbsetup.indicateur_associe_2_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_3 ON (w_dbsetup.indicateur_associe_3_code = t_indicateurs_3.code AND w_dbsetup.indicateur_associe_3_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_4 ON (w_dbsetup.indicateur_associe_4_code = t_indicateurs_4.code AND w_dbsetup.indicateur_associe_4_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_5 ON (w_dbsetup.indicateur_associe_5_code = t_indicateurs_5.code AND w_dbsetup.indicateur_associe_5_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_6 ON (w_dbsetup.indicateur_associe_6_code = t_indicateurs_6.code AND w_dbsetup.indicateur_associe_6_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_7 ON (w_dbsetup.indicateur_associe_7_code = t_indicateurs_7.code AND w_dbsetup.indicateur_associe_7_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_8 ON (w_dbsetup.indicateur_associe_8_code = t_indicateurs_8.code AND w_dbsetup.indicateur_associe_8_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_9 ON (w_dbsetup.indicateur_associe_9_code = t_indicateurs_9.code AND w_dbsetup.indicateur_associe_9_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_10 ON (w_dbsetup.indicateur_associe_10_code = t_indicateurs_10.code AND w_dbsetup.indicateur_associe_10_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_11 ON (w_dbsetup.indicateur_associe_11_code = t_indicateurs_11.code AND w_dbsetup.indicateur_associe_11_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_12 ON (w_dbsetup.indicateur_associe_12_code = t_indicateurs_12.code AND w_dbsetup.indicateur_associe_12_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_13 ON (w_dbsetup.indicateur_associe_13_code = t_indicateurs_13.code AND w_dbsetup.indicateur_associe_13_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_14 ON (w_dbsetup.indicateur_associe_14_code = t_indicateurs_14.code AND w_dbsetup.indicateur_associe_14_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_15 ON (w_dbsetup.indicateur_associe_15_code = t_indicateurs_15.code AND w_dbsetup.indicateur_associe_15_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_16 ON (w_dbsetup.indicateur_associe_16_code = t_indicateurs_16.code AND w_dbsetup.indicateur_associe_16_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_17 ON (w_dbsetup.indicateur_associe_17_code = t_indicateurs_17.code AND w_dbsetup.indicateur_associe_17_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_18 ON (w_dbsetup.indicateur_associe_18_code = t_indicateurs_18.code AND w_dbsetup.indicateur_associe_18_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_19 ON (w_dbsetup.indicateur_associe_19_code = t_indicateurs_19.code AND w_dbsetup.indicateur_associe_19_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_20 ON (w_dbsetup.indicateur_associe_20_code = t_indicateurs_20.code AND w_dbsetup.indicateur_associe_20_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_reference ON (w_dbsetup.indicateur_reference_code = t_indicateurs_reference.code AND w_dbsetup.indicateur_reference_code <> '') 
	LEFT JOIN eco.t_indicateurs t_indicateurs_template ON (w_dbsetup.indicateur_template_code = t_indicateurs_template.code AND w_dbsetup.indicateur_template_code <> '') 
WHERE t_indicateurs.code = w_dbsetup.code 
	AND (indicateur_associe_1_code <> '' OR 
		indicateur_associe_2_code <> '' OR 
		indicateur_associe_3_code <> '' OR 
		indicateur_reference_code <> '' OR
		indicateur_template_code <> '');
		
		
SELECT base.cti_reorganize_indicateurs('eco')
;