|
|
src: |
|
|
|
SELECT p_sejours.finess,
|
|
|
p_sejours.provider_id,
|
|
|
p_factures_encours.no_sejour,
|
|
|
p_factures_encours.sejour_id,
|
|
|
p_sejours.no_patient,
|
|
|
p_sejours.code_sexe,
|
|
|
CASE
|
|
|
WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar
|
|
|
WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar
|
|
|
ELSE p_sejours.code_sexe
|
|
|
END AS sexe_texte_court,
|
|
|
p_sejours.age,
|
|
|
p_sejours.code_postal_id,
|
|
|
p_sejours.code_prevu,
|
|
|
p_factures_encours.type_sejour,
|
|
|
p_sejours.forme_activite_id,
|
|
|
p_sejours.est_budget_global,
|
|
|
to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree,
|
|
|
p_sejours.date_entree,
|
|
|
p_sejours.heure_entree,
|
|
|
p_sejours.mode_entree,
|
|
|
p_sejours.provenance,
|
|
|
to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie,
|
|
|
p_sejours.code_sorti,
|
|
|
p_sejours.date_sortie,
|
|
|
p_sejours.heure_sortie,
|
|
|
p_sejours.mode_sortie,
|
|
|
p_sejours.destination,
|
|
|
p_sejours.code_cp_demandee,
|
|
|
p_factures_encours.ghs_id,
|
|
|
p_factures_encours.ghm_id,
|
|
|
p_sejours.tiers_payant_0_id,
|
|
|
p_sejours.tiers_payant_1_id,
|
|
|
p_sejours.tiers_payant_2_id,
|
|
|
p_sejours.tiers_payant_22_id,
|
|
|
p_sejours.medecin_sejour_id AS medecin_adm_sejour_id,
|
|
|
p_factures_encours.lieu_sortie_id,
|
|
|
p_sejours.gme_id,
|
|
|
p_sejours.risque_id,
|
|
|
p_factures_encours.oid AS facture_id,
|
|
|
p_factures_encours.code_origine,
|
|
|
p_factures_encours.date_debut AS date_debut_facture,
|
|
|
p_factures_encours.date_fin AS date_fin_facture,
|
|
|
to_char(p_factures_encours.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture,
|
|
|
CASE
|
|
|
WHEN p_factures_encours.ghs_id > 0 THEN p_factures_encours.date_groupage
|
|
|
ELSE '2099-12-31'::date
|
|
|
END AS encours_date_groupage,
|
|
|
p_factures_encours.ghs_id AS encours_ghs_id,
|
|
|
p_factures_encours_lignes_c.no_facture,
|
|
|
to_char(p_factures_encours.date_encours::timestamp with time zone, 'YYYYMM'::text) AS mois_comptable,
|
|
|
p_factures_encours.date_encours AS date_comptable,
|
|
|
to_char(p_factures_encours_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut,
|
|
|
to_char(p_factures_encours_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin,
|
|
|
p_factures_encours_lignes_c.date_debut,
|
|
|
p_factures_encours_lignes_c.date_fin,
|
|
|
p_factures_encours_lignes_c.coefficient,
|
|
|
p_factures_encours_lignes_c.coefficient_mco,
|
|
|
p_factures_encours_lignes_c.prix_unitaire,
|
|
|
p_factures_encours_lignes_c.taux_0,
|
|
|
p_factures_encours_lignes_c.taux_1,
|
|
|
p_factures_encours_lignes_c.taux_2,
|
|
|
p_factures_encours_lignes_c.taux_22,
|
|
|
p_factures_encours_lignes_c.lieu_id,
|
|
|
p_factures_encours_lignes_c.rubrique_facturation_id,
|
|
|
p_factures_encours_lignes_c.rubrique_comptabilisation_id,
|
|
|
p_factures_encours_lignes_c.prestation_id,
|
|
|
p_factures_encours_lignes_c.compte_produit_id,
|
|
|
p_factures_encours_lignes_c.compte_produit_analytique_id,
|
|
|
p_factures_encours_lignes_c.nb_rubrique,
|
|
|
p_factures_encours_lignes_c.nb_prestation,
|
|
|
0::numeric AS montant_comptabilise,
|
|
|
0::numeric AS montant_comptabilise_0,
|
|
|
0::numeric AS montant_comptabilise_1,
|
|
|
0::numeric AS montant_comptabilise_2,
|
|
|
0::numeric AS montant_comptabilise_22,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_0
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_0,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_1
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_1,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_2
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_2,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_22
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_22,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_sorti,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_0
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_sorti_0,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_1
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_sorti_1,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_2
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_sorti_2,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_22
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_sorti_22,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_present,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_0
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_present_0,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_1
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_present_1,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_2
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_present_2,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_22
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_present_22,
|
|
|
CASE
|
|
|
WHEN p_factures_encours.code_sorti <> '1'::bpchar THEN 0::numeric
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND (p_factures_encours.type_sejour <> ALL (ARRAY['1'::bpchar, '2'::bpchar, '5'::bpchar]::text[])) THEN p_factures_encours_lignes_c.montant_encours
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) <= p_factures_encours.date_encours THEN p_factures_encours_lignes_c.montant_encours
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_groupe,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar, '2'::bpchar, '5'::bpchar]::text[])) AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_non_groupe,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar, '2'::bpchar, '5'::bpchar]::text[])) AND p_factures_encours.code_sorti = '1'::bpchar AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_non_groupe_sorti,
|
|
|
CASE
|
|
|
WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar, '2'::bpchar, '5'::bpchar]::text[])) AND p_factures_encours.code_sorti <> '1'::bpchar AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours
|
|
|
ELSE 0::numeric
|
|
|
END AS montant_encours_non_groupe_present,
|
|
|
0 AS no_oid,
|
|
|
0 AS no_nb_lits,
|
|
|
p_factures_encours_lignes_c.pole_id,
|
|
|
p_factures_encours.filiere_soin_principale_id,
|
|
|
p_factures_encours_lignes_c.lpp_id,
|
|
|
p_factures_encours_lignes_c.ucd_id
|
|
|
FROM activite.p_factures_encours_lignes_c
|
|
|
JOIN activite.p_factures_encours ON p_factures_encours_lignes_c.facture_id = p_factures_encours.oid
|
|
|
JOIN activite.p_sejours ON p_sejours.no_sejour = p_factures_encours.no_sejour
|
|
|
LEFT JOIN activite.t_lieux_c t_lieux_c_sortie ON p_factures_encours.lieu_sortie_id = t_lieux_c_sortie.oid;
|