pour déploiement auto v2 via gitlab
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.
 
 

106 lines
5.4 KiB

return: text
lang: plpgsql
src: |
DECLARE
result TEXT;
BEGIN
DROP TABLE IF EXISTS w_raac_impact;
CREATE TEMP TABLE w_raac_impact AS
SELECT finess,
no_rss ,
date_sortie,
p_rss.ghm_id as p_ghm_id,
t_ghm.oid as t_ghm_id,
t_ghm.code as t_ghm_code,
p_rss.ghs_id as p_ghs_id,
t_ghs.oid as t_ghs_id ,
sum(ca_ghs) as ca_ghs_avec_raac,
0 as ca_ghs_sans_raac_sans_coeff,
0::numeric as coefficient_mco,
0 as ca_ghs_sans_raac
FROM pmsi.p_rss
join pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid
join pmsi.t_ghs on p_rss.ghs_id = t_ghs.oid
where 1=1
AND raac_id > 0
AND t_ghs.ghm_id <> p_rss.ghm_id
group by 1,2,3,4,5,6,7,8
order by 3;
DROP TABLE IF EXISTS w_raac_sans_impact;
CREATE TEMP TABLE w_raac_sans_impact AS
SELECT finess,
no_rss ,
date_sortie,
p_rss.ghm_id as p_ghm_id,
t_ghm.oid as t_ghm_id,
t_ghm.code as t_ghm_code,
p_rss.ghs_id as p_ghs_id,
t_ghs.oid as t_ghs_id ,
sum(ca_ghs) as ca_ghs_avec_raac,
0 as ca_ghs_sans_raac_sans_coeff,
0::numeric as coefficient_mco,
0 as ca_ghs_sans_raac
FROM pmsi.p_rss
join pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid
join pmsi.t_ghs on p_rss.ghs_id = t_ghs.oid
where 1=1
AND raac_id > 0
AND t_ghs.ghm_id = p_rss.ghm_id
group by 1,2,3,4,5,6,7,8
order by 3;
UPDATE w_raac_impact
SET ca_ghs_sans_raac =
CASE WHEN t_finess.type_etablissement = ANY (ARRAY['2'::text, '3'::text]) THEN
CASE
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_1 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_1 THEN t_ghs.tarif_ghs_public_1
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_2 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_2 THEN t_ghs.tarif_ghs_public_2
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_3 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_3 THEN t_ghs.tarif_ghs_public_3
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_4 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_4 THEN t_ghs.tarif_ghs_public_4
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_5 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_5 THEN t_ghs.tarif_ghs_public_5
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_6 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_6 THEN t_ghs.tarif_ghs_public_6
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_7 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_7 THEN t_ghs.tarif_ghs_public_7
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_8 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_8 THEN t_ghs.tarif_ghs_public_8
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_public_9 AND w_raac_impact.date_sortie <= t_ghs.date_fin_public_9 THEN t_ghs.tarif_ghs_public_9
ELSE 0::numeric
END
ELSE CASE
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_1 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_1 THEN t_ghs.tarif_ghs_prive_1
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_2 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_2 THEN t_ghs.tarif_ghs_prive_2
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_3 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_3 THEN t_ghs.tarif_ghs_prive_3
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_4 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_4 THEN t_ghs.tarif_ghs_prive_4
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_5 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_5 THEN t_ghs.tarif_ghs_prive_5
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_6 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_6 THEN t_ghs.tarif_ghs_prive_6
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_7 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_7 THEN t_ghs.tarif_ghs_prive_7
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_8 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_8 THEN t_ghs.tarif_ghs_prive_8
WHEN w_raac_impact.date_sortie >= t_ghs.date_debut_prive_9 AND w_raac_impact.date_sortie <= t_ghs.date_fin_prive_9 THEN t_ghs.tarif_ghs_prive_9
ELSE 0::numeric
END
END
FROM pmsi.t_ghs,base.t_finess
WHERE 1=1
AND t_ghs.ghm_id = w_raac_impact.p_ghm_id
AND w_raac_impact.finess = t_finess.code
;
UPDATE w_raac_impact
SET coefficient_mco = v_rsf_detail_1.coefficient_mco
FROM pmsi.v_rsf_detail_1
where w_raac_impact.no_rss = v_rsf_detail_1.no_rss AND prestation_code = 'GHS';
UPDATE pmsi.p_rss
SET CA_GHS_RAAC = ca_ghs_sans_raac * w_raac_impact.coefficient_mco
FROM w_raac_impact
WHERE w_raac_impact.no_rss = p_rss.no_rss;
UPDATE pmsi.p_rss
SET CA_GHS_RAAC = ca_ghs_avec_raac
FROM w_raac_sans_impact
WHERE w_raac_sans_impact.no_rss = p_rss.no_rss;
RETURN 'OK';
END;