|
|
src: |
|
|
|
SELECT p_rsf_detail.rss_id,
|
|
|
p_rsf_detail.finess,
|
|
|
p_rsf_detail.no_rss,
|
|
|
p_rsf_detail.nature,
|
|
|
p_rsf_detail.mt,
|
|
|
p_rsf_detail.dmt,
|
|
|
p_rsf_detail.date_debut,
|
|
|
p_rsf_detail.date_fin,
|
|
|
p_rsf_detail.coefficient,
|
|
|
p_rsf_detail.prix_unitaire,
|
|
|
p_rsf_detail.base_remboursement,
|
|
|
p_rsf_detail.taux_remboursement,
|
|
|
p_rsf_detail.coefficient_mco,
|
|
|
p_rsf_detail.ghs_id,
|
|
|
t_ghs.code_text AS ghs_code,
|
|
|
t_ghs.texte AS ghs_texte,
|
|
|
p_rsf_detail.prestation_id,
|
|
|
t_prestations.code AS prestation_code,
|
|
|
t_prestations.texte_court AS prestation_texte,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN t_ghs.borne_basse_prive_1
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN t_ghs.borne_basse_prive_2
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN t_ghs.borne_basse_prive_3
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN t_ghs.borne_basse_prive_4
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN t_ghs.borne_basse_prive_5
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN t_ghs.borne_basse_prive_6
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN t_ghs.borne_basse_prive_7
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN t_ghs.borne_basse_prive_8
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN t_ghs.borne_basse_prive_9
|
|
|
ELSE 0::numeric
|
|
|
END AS borne_basse_prive,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN t_ghs.borne_haute_prive_1
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN t_ghs.borne_haute_prive_2
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN t_ghs.borne_haute_prive_3
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN t_ghs.borne_haute_prive_4
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN t_ghs.borne_haute_prive_5
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN t_ghs.borne_haute_prive_6
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN t_ghs.borne_haute_prive_7
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN t_ghs.borne_haute_prive_8
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN t_ghs.borne_haute_prive_9
|
|
|
ELSE 0::numeric
|
|
|
END AS borne_haute_prive,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN t_ghs.tarif_ghs_prive_1
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN t_ghs.tarif_ghs_prive_2
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN t_ghs.tarif_ghs_prive_3
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN t_ghs.tarif_ghs_prive_4
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN t_ghs.tarif_ghs_prive_5
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN t_ghs.tarif_ghs_prive_6
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN t_ghs.tarif_ghs_prive_7
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN t_ghs.tarif_ghs_prive_8
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN t_ghs.tarif_ghs_prive_9
|
|
|
ELSE 0::numeric
|
|
|
END AS tarif_ghs_prive,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN t_ghs.tarif_exh_prive_1
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN t_ghs.tarif_exh_prive_2
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN t_ghs.tarif_exh_prive_3
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN t_ghs.tarif_exh_prive_4
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN t_ghs.tarif_exh_prive_5
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN t_ghs.tarif_exh_prive_6
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN t_ghs.tarif_exh_prive_7
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN t_ghs.tarif_exh_prive_8
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN t_ghs.tarif_exh_prive_9
|
|
|
ELSE 0::numeric
|
|
|
END AS tarif_exh_prive,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_1 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_2 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_3 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_4 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_5 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_6 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_7 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_8 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_9 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
ELSE 1::numeric
|
|
|
END AS coefficient_ghs_prive,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_1 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_1
|
|
|
ELSE t_ghs.tarif_ghs_prive_1 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_2 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_2
|
|
|
ELSE t_ghs.tarif_ghs_prive_2 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_3 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_3
|
|
|
ELSE t_ghs.tarif_ghs_prive_3 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_4 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_4
|
|
|
ELSE t_ghs.tarif_ghs_prive_4 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_5 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_5
|
|
|
ELSE t_ghs.tarif_ghs_prive_5 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_6 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_6
|
|
|
ELSE t_ghs.tarif_ghs_prive_6 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_7 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_7
|
|
|
ELSE t_ghs.tarif_ghs_prive_7 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_8 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_8
|
|
|
ELSE t_ghs.tarif_ghs_prive_8 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_prive_9 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_prive_9
|
|
|
ELSE t_ghs.tarif_ghs_prive_9 * 0.5
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_ghs_prive,
|
|
|
CASE
|
|
|
WHEN p_rss.mode_sortie::text <> 9::text THEN
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_1 AND t_ghs.borne_haute_prive_1 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_1
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_2 AND t_ghs.borne_haute_prive_2 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_2
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_3 AND t_ghs.borne_haute_prive_3 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_3
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_4 AND t_ghs.borne_haute_prive_4 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_4
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_5 AND t_ghs.borne_haute_prive_5 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_5
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_6 AND t_ghs.borne_haute_prive_6 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_6
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_7 AND t_ghs.borne_haute_prive_7 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_7
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_8 AND t_ghs.borne_haute_prive_8 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_8
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_9 AND t_ghs.borne_haute_prive_9 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_9
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_1 AND t_ghs.borne_haute_prive_1 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_1 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_2 AND t_ghs.borne_haute_prive_2 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_2 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_3 AND t_ghs.borne_haute_prive_3 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_3 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_4 AND t_ghs.borne_haute_prive_4 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_4 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_5 AND t_ghs.borne_haute_prive_5 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_5 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_6 AND t_ghs.borne_haute_prive_6 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_6 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_7 AND t_ghs.borne_haute_prive_7 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_7 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_8 AND t_ghs.borne_haute_prive_8 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_8 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_9 AND t_ghs.borne_haute_prive_9 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_9 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
END AS nombre_exh_prive,
|
|
|
CASE
|
|
|
WHEN p_rss.mode_sortie::text <> 9::text THEN
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_1 AND t_ghs.borne_haute_prive_1 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_1) * t_ghs.tarif_exh_prive_1
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_2 AND t_ghs.borne_haute_prive_2 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_2) * t_ghs.tarif_exh_prive_2
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_3 AND t_ghs.borne_haute_prive_3 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_3) * t_ghs.tarif_exh_prive_3
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_4 AND t_ghs.borne_haute_prive_4 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_4) * t_ghs.tarif_exh_prive_4
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_5 AND t_ghs.borne_haute_prive_5 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_5) * t_ghs.tarif_exh_prive_5
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_6 AND t_ghs.borne_haute_prive_6 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_6) * t_ghs.tarif_exh_prive_6
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_7 AND t_ghs.borne_haute_prive_7 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_7) * t_ghs.tarif_exh_prive_7
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_8 AND t_ghs.borne_haute_prive_8 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_8) * t_ghs.tarif_exh_prive_8
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_prive_9 AND t_ghs.borne_haute_prive_9 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_9) * t_ghs.tarif_exh_prive_9
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_1 AND p_rss.date_sortie <= t_ghs.date_fin_prive_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_1 AND t_ghs.borne_haute_prive_1 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_1 + 1::numeric) * t_ghs.tarif_exh_prive_1
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_2 AND p_rss.date_sortie <= t_ghs.date_fin_prive_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_2 AND t_ghs.borne_haute_prive_2 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_2 + 1::numeric) * t_ghs.tarif_exh_prive_2
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_3 AND p_rss.date_sortie <= t_ghs.date_fin_prive_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_3 AND t_ghs.borne_haute_prive_3 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_3 + 1::numeric) * t_ghs.tarif_exh_prive_3
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_4 AND p_rss.date_sortie <= t_ghs.date_fin_prive_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_4 AND t_ghs.borne_haute_prive_4 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_4 + 1::numeric) * t_ghs.tarif_exh_prive_4
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_5 AND p_rss.date_sortie <= t_ghs.date_fin_prive_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_5 AND t_ghs.borne_haute_prive_5 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_5 + 1::numeric) * t_ghs.tarif_exh_prive_5
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_6 AND p_rss.date_sortie <= t_ghs.date_fin_prive_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_6 AND t_ghs.borne_haute_prive_6 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_6 + 1::numeric) * t_ghs.tarif_exh_prive_6
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_7 AND p_rss.date_sortie <= t_ghs.date_fin_prive_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_7 AND t_ghs.borne_haute_prive_7 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_7 + 1::numeric) * t_ghs.tarif_exh_prive_7
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_8 AND p_rss.date_sortie <= t_ghs.date_fin_prive_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_8 AND t_ghs.borne_haute_prive_8 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_8 + 1::numeric) * t_ghs.tarif_exh_prive_8
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_prive_9 AND p_rss.date_sortie <= t_ghs.date_fin_prive_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_prive_9 AND t_ghs.borne_haute_prive_9 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_prive_9 + 1::numeric) * t_ghs.tarif_exh_prive_9
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
END AS montant_exh_prive,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN t_ghs.borne_basse_public_1
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN t_ghs.borne_basse_public_2
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN t_ghs.borne_basse_public_3
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN t_ghs.borne_basse_public_4
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN t_ghs.borne_basse_public_5
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN t_ghs.borne_basse_public_6
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN t_ghs.borne_basse_public_7
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN t_ghs.borne_basse_public_8
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN t_ghs.borne_basse_public_9
|
|
|
ELSE 0::numeric
|
|
|
END AS borne_basse_public,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN t_ghs.borne_haute_public_1
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN t_ghs.borne_haute_public_2
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN t_ghs.borne_haute_public_3
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN t_ghs.borne_haute_public_4
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN t_ghs.borne_haute_public_5
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN t_ghs.borne_haute_public_6
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN t_ghs.borne_haute_public_7
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN t_ghs.borne_haute_public_8
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN t_ghs.borne_haute_public_9
|
|
|
ELSE 0::numeric
|
|
|
END AS borne_haute_public,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN t_ghs.tarif_ghs_public_1
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN t_ghs.tarif_ghs_public_2
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN t_ghs.tarif_ghs_public_3
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN t_ghs.tarif_ghs_public_4
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN t_ghs.tarif_ghs_public_5
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN t_ghs.tarif_ghs_public_6
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN t_ghs.tarif_ghs_public_7
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN t_ghs.tarif_ghs_public_8
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN t_ghs.tarif_ghs_public_9
|
|
|
ELSE 0::numeric
|
|
|
END AS tarif_ghs_public,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN t_ghs.tarif_exh_public_1
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN t_ghs.tarif_exh_public_2
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN t_ghs.tarif_exh_public_3
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN t_ghs.tarif_exh_public_4
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN t_ghs.tarif_exh_public_5
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN t_ghs.tarif_exh_public_6
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN t_ghs.tarif_exh_public_7
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN t_ghs.tarif_exh_public_8
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN t_ghs.tarif_exh_public_9
|
|
|
ELSE 0::numeric
|
|
|
END AS tarif_exh_public,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_1 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_2 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_3 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_4 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_5 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_6 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_7 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_8 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_9 OR p_rss.mode_sortie = '9'::bpchar THEN 1::numeric
|
|
|
ELSE 0.5
|
|
|
END
|
|
|
ELSE 1::numeric
|
|
|
END AS coefficient_ghs_public,
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_1 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_1
|
|
|
ELSE t_ghs.tarif_ghs_public_1 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_2 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_2
|
|
|
ELSE t_ghs.tarif_ghs_public_2 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_3 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_3
|
|
|
ELSE t_ghs.tarif_ghs_public_3 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_4 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_4
|
|
|
ELSE t_ghs.tarif_ghs_public_4 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_5 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_5
|
|
|
ELSE t_ghs.tarif_ghs_public_5 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_6 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_6
|
|
|
ELSE t_ghs.tarif_ghs_public_6 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_7 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_7
|
|
|
ELSE t_ghs.tarif_ghs_public_7 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_8 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_8
|
|
|
ELSE t_ghs.tarif_ghs_public_8 * 0.5
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric >= t_ghs.borne_basse_public_9 OR p_rss.mode_sortie = '9'::bpchar THEN t_ghs.tarif_ghs_public_9
|
|
|
ELSE t_ghs.tarif_ghs_public_9 * 0.5
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_ghs_public,
|
|
|
CASE
|
|
|
WHEN p_rss.mode_sortie <> '9'::bpchar THEN
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_1 AND t_ghs.borne_haute_public_1 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_1
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_2 AND t_ghs.borne_haute_public_2 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_2
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_3 AND t_ghs.borne_haute_public_3 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_3
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_4 AND t_ghs.borne_haute_public_4 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_4
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_5 AND t_ghs.borne_haute_public_5 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_5
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_6 AND t_ghs.borne_haute_public_6 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_6
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_7 AND t_ghs.borne_haute_public_7 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_7
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_8 AND t_ghs.borne_haute_public_8 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_8
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_9 AND t_ghs.borne_haute_public_9 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_9
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_1 AND t_ghs.borne_haute_public_1 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_1 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_2 AND t_ghs.borne_haute_public_2 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_2 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_3 AND t_ghs.borne_haute_public_3 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_3 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_4 AND t_ghs.borne_haute_public_4 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_4 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_5 AND t_ghs.borne_haute_public_5 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_5 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_6 AND t_ghs.borne_haute_public_6 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_6 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_7 AND t_ghs.borne_haute_public_7 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_7 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_8 AND t_ghs.borne_haute_public_8 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_8 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_9 AND t_ghs.borne_haute_public_9 > 0::numeric THEN (p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_9 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
END AS nombre_exh_public,
|
|
|
CASE
|
|
|
WHEN p_rss.mode_sortie <> '9'::bpchar THEN
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_1 AND t_ghs.borne_haute_public_1 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_1) * t_ghs.tarif_exh_public_1
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_2 AND t_ghs.borne_haute_public_2 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_2) * t_ghs.tarif_exh_public_2
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_3 AND t_ghs.borne_haute_public_3 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_3) * t_ghs.tarif_exh_public_3
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_4 AND t_ghs.borne_haute_public_4 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_4) * t_ghs.tarif_exh_public_4
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_5 AND t_ghs.borne_haute_public_5 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_5) * t_ghs.tarif_exh_public_5
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_6 AND t_ghs.borne_haute_public_6 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_6) * t_ghs.tarif_exh_public_6
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_7 AND t_ghs.borne_haute_public_7 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_7) * t_ghs.tarif_exh_public_7
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_8 AND t_ghs.borne_haute_public_8 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_8) * t_ghs.tarif_exh_public_8
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree)::numeric > t_ghs.borne_haute_public_9 AND t_ghs.borne_haute_public_9 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_9) * t_ghs.tarif_exh_public_9
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE
|
|
|
CASE
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_1 AND p_rss.date_sortie <= t_ghs.date_fin_public_1 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_1 AND t_ghs.borne_haute_public_1 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_1) * t_ghs.tarif_exh_public_1 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_2 AND p_rss.date_sortie <= t_ghs.date_fin_public_2 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_2 AND t_ghs.borne_haute_public_2 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_2) * t_ghs.tarif_exh_public_2 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_3 AND p_rss.date_sortie <= t_ghs.date_fin_public_3 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_3 AND t_ghs.borne_haute_public_3 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_3) * t_ghs.tarif_exh_public_3 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_4 AND p_rss.date_sortie <= t_ghs.date_fin_public_4 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_4 AND t_ghs.borne_haute_public_4 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_4) * t_ghs.tarif_exh_public_4 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_5 AND p_rss.date_sortie <= t_ghs.date_fin_public_5 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_5 AND t_ghs.borne_haute_public_5 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_5) * t_ghs.tarif_exh_public_5 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_6 AND p_rss.date_sortie <= t_ghs.date_fin_public_6 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_6 AND t_ghs.borne_haute_public_6 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_6) * t_ghs.tarif_exh_public_6 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_7 AND p_rss.date_sortie <= t_ghs.date_fin_public_7 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_7 AND t_ghs.borne_haute_public_7 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_7) * t_ghs.tarif_exh_public_7 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_8 AND p_rss.date_sortie <= t_ghs.date_fin_public_8 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_8 AND t_ghs.borne_haute_public_8 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_8) * t_ghs.tarif_exh_public_8 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
WHEN p_rss.date_sortie >= t_ghs.date_debut_public_9 AND p_rss.date_sortie <= t_ghs.date_fin_public_9 THEN
|
|
|
CASE
|
|
|
WHEN (p_rss.date_sortie - p_rss.date_entree + 1)::numeric > t_ghs.borne_haute_public_9 AND t_ghs.borne_haute_public_9 > 0::numeric THEN ((p_rss.date_sortie - p_rss.date_entree)::numeric - t_ghs.borne_haute_public_9) * t_ghs.tarif_exh_public_9 + 1::numeric
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
ELSE 0::numeric
|
|
|
END
|
|
|
END AS montant_exh_public
|
|
|
FROM pmsi.p_rsf_detail,
|
|
|
pmsi.p_rss,
|
|
|
pmsi.t_prestations,
|
|
|
pmsi.t_ghs
|
|
|
WHERE p_rsf_detail.rss_id = p_rss.oid AND p_rsf_detail.prestation_id = t_prestations.oid AND p_rsf_detail.type = 'B'::bpchar AND p_rsf_detail.est_ligne_rss = '1'::bpchar AND t_prestations.code::text = 'GHS'::text AND p_rsf_detail.ghs_id = t_ghs.oid;
|