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.
 
 
 

62 lines
2.7 KiB

-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;
CREATE TEMP TABLE w_dbsetup AS
SELECT
t_chart.type,
t_chart.category,
t_chart.name,
t_chart.default_time_calc,
t_chart.label_view_code,
t_chart.code,
array_agg(DISTINCT t_indicateur_serie.code) as serie_code
FROM rh.t_chart
LEFT JOIN rh.t_indicateur_serie ON ARRAY[t_indicateur_serie.oid] <@ t_chart.serie_id
GROUP BY 1,2,3,4,5,6
ORDER BY 1 LIMIT 0
;
-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
type,
category,
name,
default_time_calc,
label_view_code,
code,
serie_code
)
VALUES
('card', 'date', 'Carte effectifs', 'val', 0, 'CTI_STATCAR', '{"CTI_FEMMES", "CTI_HOMMES"}'),
('donut', 'CTI_TYPECONTRAT#LS#CTI_TCNT', 'Types de contrats', 'val', 0, 'CTI_TYPECNT', '{"CTI_FEMMES", "CTI_HOMMES"}'),
('spread', 'CTI_AGE#LS#CTI_AGE', 'Effectifs par tranches age', 'val', 0, 'CTI_EFFAGE', '{"CTI_FEMMES", "CTI_HOMMES"}'),
('spread', 'CTI_AGE#LS#CTI_AGE', 'Masse salariale par tranche d''age', 'val', 0, 'CTI_MSAGE', '{"CTI_MSF", "CTI_MSH"}'),
('spread', 'CTI_ANCIENNETE#LS#CTI_ANC', 'Effectifs par tranches anciente', 'val', 0, 'CTI_EFFANC', '{"CTI_FEMMES", "CTI_HOMMES"}'),
('spread', 'CTI_STATUT#LS#CTI_STATUT', 'Effectifs par statut', 'val', 0, 'CTI_EFFSTAT', '{"CTI_FEMMES", "CTI_HOMMES"}'),
('stacked', 'CTI_CSP#DT#', 'Masse salariale par CSP', 'val', 1, 'CTI_MSCSP', '{"CTI_MSF", "CTI_MSH"}'),
('stacked', 'date', 'Effectifs par genre', 'val', 0, 'CTI_EFFGEN', '{"CTI_FEMMES", "CTI_HOMMES"}'),
('stacked', 'date', 'Heures supplementaires', 'val', 0, 'CTI_HSUPP', '{"CTI_HSUPF", "CTI_HSUPH"}'),
('stackedPercent', 'date', 'Repartition par genre', 'val', 0, 'CTI_REPGEN', '{"CTI_FEMMES", "CTI_HOMMES"}'),
('table', 'date', 'Entrees sorties carte', 'val', 0, 'CTI_ENTSORCAR', '{"CTI_DEPSALF", "CTI_DEPSALH", "CTI_EFFDF", "CTI_EFFDH", "CTI_ENTSORF", "CTI_ENTSORH", "CTI_NVSALF", "CTI_NVSALH", "CTI_TOF", "CTI_TOH"}'),
('table2d', 'CTI_STATUT#LS#CTI_STATUT', 'Tableau statuts', 'val', 0, 'CTI_STAT', '{"CTI_FEMMES", "CTI_HOMMES", "CTI_TOTSAL"}'),
('table2dTime', 'CTI_STATUT#LS#CTI_STATUT', 'Statuts temps', 'cum', 0, 'CTI_STATTIME', '{"CTI_TAUXSTAT", "CTI_TOTSAL", "CTI_TOTSALF"}'),
('treemap', 'CTI_CSP#DT#', 'Masse salariale par CSP (MAP)', 'val', 1, 'CTI_MSCSPMAP', '{"CTI_MS"}')
;
-- 3/3 : Màj de la table iCTI
TRUNCATE rh.t_chart;
INSERT INTO rh.t_chart(type, serie_id, category, name, default_time_calc, label_view_code, code)
SELECT
type,
array_agg(DISTINCT t_indicateur_serie.oid),
w_dbsetup.category,
w_dbsetup.name,
w_dbsetup.default_time_calc,
w_dbsetup.label_view_code,
w_dbsetup.code
FROM w_dbsetup
LEFT JOIN rh.t_indicateur_serie ON ARRAY[t_indicateur_serie.code] <@ w_dbsetup.serie_code
GROUP BY 1,3,4,5,6,7
;