BONS#21991: Tariefwijzigingen gemeenten
svn path=/Database/trunk/; revision=11124
This commit is contained in:
@@ -1,15 +1,11 @@
|
||||
#ifdef CARE
|
||||
/* CARE_VIE.SRC
|
||||
* $Revision: 38 $
|
||||
* $Modtime: 1-02-12 14:23 $
|
||||
* $Revision: 39 $
|
||||
* $Modtime: 20-02-12 11:28 $
|
||||
*/
|
||||
|
||||
|
||||
|
||||
-- Let op de decode: dit is een mapping van locatie-kenmerk op melding-kenmerk, die elders aan elkaar worden gelinked.
|
||||
-- Decode-Mapping: van alg-kenmerk_key 1000 -> fac_usrdata_key 1 (HV1)
|
||||
-- Decode-Mapping: van alg-kenmerk_key 1001 -> fac_usrdata_key 2 (HV2)
|
||||
-- Decode-Mapping: van alg-kenmerk_key 1002 -> fac_usrdata_key 3 (HV3)
|
||||
|
||||
/* Formatted on 6-9-2010 18:29:56 (QP5 v5.136.908.31019) */
|
||||
CREATE_VIEW( care_v_gemeente, 0)
|
||||
@@ -25,15 +21,26 @@ AS
|
||||
gemeente.alg_locatie_post_plaats,
|
||||
gemeente.alg_locatie_verantw,
|
||||
gemeente.alg_locatie_x,
|
||||
gemeente.alg_locatie_y,
|
||||
COALESCE (fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde), 0) tarief,
|
||||
DECODE (ok.alg_kenmerk_key, 1000, 1, 1001, 2, 1002, 3, NULL) hv_code
|
||||
FROM alg_locatie gemeente, alg_onrgoedkenmerk ok
|
||||
WHERE gemeente.alg_locatie_key = ok.alg_onrgoed_key(+)
|
||||
AND ok.alg_onrgoed_niveau(+) = 'L'
|
||||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||||
AND gemeente.alg_locatie_verwijder IS NULL;
|
||||
gemeente.alg_locatie_y
|
||||
FROM alg_locatie gemeente
|
||||
WHERE gemeente.alg_locatie_verwijder IS NULL;
|
||||
|
||||
-- Let op de decode: dit is een mapping van locatie-kenmerk op melding-kenmerk, die elders aan elkaar worden gelinked.
|
||||
-- Decode-Mapping: van alg-kenmerk_key 1000 -> fac_usrdata_key 1 (HV1)
|
||||
-- Decode-Mapping: van alg-kenmerk_key 1001 -> fac_usrdata_key 2 (HV2)
|
||||
-- Decode-Mapping: van alg-kenmerk_key 1002 -> fac_usrdata_key 3 (HV3)
|
||||
CREATE_VIEW( care_v_gemeente_tarieven, 0)
|
||||
(alg_locatie_key, product_code, tarief, duedatum)
|
||||
AS
|
||||
SELECT alg_onrgoed_key,
|
||||
DECODE (alg_kenmerk_key, 1000, 1, 1001, 2, 1002, 3, NULL),
|
||||
COALESCE (fac.safe_to_number (alg_onrgoedkenmerk_waarde), 0),
|
||||
alg_onrgoedkenmerk_verwijder
|
||||
FROM alg_onrgoedkenmerk, alg_locatie l
|
||||
WHERE alg_onrgoed_niveau = 'L'
|
||||
AND alg_kenmerk_key IN (1000,1001,1002)
|
||||
AND alg_onrgoed_key = alg_locatie_key
|
||||
AND alg_locatie_verwijder IS NULL;
|
||||
|
||||
-- View met alle geregistreerde clienten (ongeacht of ze een lopende beschikking hebben).
|
||||
-- Let op de afdelings-key 22 (= afdeling waar alle clienten in zitten) in onderstaande view:
|
||||
@@ -510,6 +517,7 @@ CREATE_VIEW( care_v_beschikking_all, 0)
|
||||
(
|
||||
mld_melding_key,
|
||||
mld_melding_status,
|
||||
gemeente_key,
|
||||
gemeente_code,
|
||||
gemeente_omschrijving,
|
||||
gemeente_adres,
|
||||
@@ -555,8 +563,9 @@ CREATE_VIEW( care_v_beschikking_all, 0)
|
||||
beschikking_maandag_tot,
|
||||
beschikking_afmeld_datum,
|
||||
pgb,
|
||||
product_code,
|
||||
product,
|
||||
tarief,
|
||||
pgb_tarief,
|
||||
uren_beschikking,
|
||||
beschikking_nr,
|
||||
beschikking_omschr,
|
||||
@@ -566,6 +575,7 @@ CREATE_VIEW( care_v_beschikking_all, 0)
|
||||
AS
|
||||
SELECT m.mld_melding_key,
|
||||
m.mld_melding_status,
|
||||
gemeente.alg_locatie_key,
|
||||
gemeente.alg_locatie_code,
|
||||
gemeente.alg_locatie_omschrijving,
|
||||
gemeente.alg_locatie_adres,
|
||||
@@ -688,6 +698,12 @@ AS
|
||||
care.goodmonday_end(m.mld_melding_key) beschikking_maandag_tot,
|
||||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||||
m.prs_kostenplaats_key pgb,
|
||||
(SELECT TO_NUMBER (km.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding km
|
||||
WHERE km.mld_melding_key = m.mld_melding_key
|
||||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||||
AND mld_kenmerk_key = 2)
|
||||
product_code,
|
||||
(SELECT ud.fac_usrdata_code
|
||||
FROM mld_kenmerkmelding km, fac_usrdata ud
|
||||
WHERE km.mld_melding_key = m.mld_melding_key
|
||||
@@ -701,7 +717,7 @@ AS
|
||||
WHERE km.mld_melding_key = m.mld_melding_key
|
||||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||||
AND mld_kenmerk_key = 4),
|
||||
gemeente.tarief),0) tarief,
|
||||
0),0) tarief,
|
||||
(SELECT TO_NUMBER (km.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding km
|
||||
WHERE km.mld_melding_key = m.mld_melding_key
|
||||
@@ -723,13 +739,7 @@ AS
|
||||
AND m.mld_melding_status <> 1
|
||||
AND d.ins_discipline_key = std.mld_ins_discipline_key
|
||||
AND d.ins_srtdiscipline_key = 1
|
||||
AND gemeente.hv_code =
|
||||
(SELECT TO_NUMBER (km.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding km
|
||||
WHERE km.mld_melding_key = m.mld_melding_key
|
||||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||||
AND mld_kenmerk_key = 2)
|
||||
AND m.prs_perslid_key = client.prs_perslid_key;
|
||||
AND m.prs_perslid_key = client.prs_perslid_key;
|
||||
|
||||
|
||||
-- Deze view is de totale view van alle productieve, bestede uren op beschikkingen, op welke opdracht, door wie op welk moment
|
||||
@@ -5818,7 +5828,7 @@ AS
|
||||
b.uren_beschikking,
|
||||
b.pgb,
|
||||
b.product,
|
||||
b.tarief,
|
||||
decode(b.pgb, 1, b.pgb_tarief, gt.tarief),
|
||||
b.beschikking_omschr,
|
||||
uur.prs_perslid_key,
|
||||
uur.bsn,
|
||||
@@ -5830,11 +5840,20 @@ AS
|
||||
uur.datum_gewerkt,
|
||||
uur.uren_opdracht,
|
||||
uur.uren_besteed
|
||||
FROM care_v_beschikking_all b, care_v_bestede_uren_all uur, prs_bedrijf pb, fac_usrdata ud
|
||||
FROM care_v_beschikking_all b, care_v_bestede_uren_all uur, prs_bedrijf pb, fac_usrdata ud, care_v_gemeente_tarieven gt
|
||||
WHERE uur.mld_melding_key = b.mld_melding_key
|
||||
AND uur.uren_status = 3
|
||||
AND pb.prs_bedrijf_key = 2
|
||||
AND ud.fac_usrdata_key = 48;
|
||||
AND ud.fac_usrdata_key = 48
|
||||
AND gt.alg_locatie_key = b.gemeente_key
|
||||
AND gt.product_code = b.product_code
|
||||
AND COALESCE(gt.duedatum,SYSDATE) =
|
||||
(SELECT COALESCE(MIN (gt2.duedatum),SYSDATE)
|
||||
FROM care_v_gemeente_tarieven gt2
|
||||
WHERE COALESCE(gt2.duedatum,SYSDATE+999) >= uur.datum_gewerkt
|
||||
AND gt2.alg_locatie_key = b.gemeente_key
|
||||
AND gt2.product_code = b.product_code
|
||||
);
|
||||
|
||||
CREATE_VIEW(care_v_gemeente_fact2_uren, 0)
|
||||
AS
|
||||
@@ -7589,8 +7608,29 @@ AS
|
||||
-- QlikView/Analyze views
|
||||
--
|
||||
|
||||
-- Periodetabel van 10 jaar in het verleden t/m 10 jaar in toekomst
|
||||
CREATE_VIEW(care_v_qvw_periodeweektabel, 0)
|
||||
(jaar, periode, week, maandag)
|
||||
AS
|
||||
SELECT
|
||||
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IYYY') jaar,
|
||||
DECODE(FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1, 14, 13,FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1) periode,
|
||||
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IW') week,
|
||||
TRUNC (SYSDATE - 7*(LEVEL-1), 'IW') startdatum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <= 5*52+1
|
||||
UNION
|
||||
SELECT
|
||||
TO_CHAR (SYSDATE + 7*(LEVEL), 'IYYY') jaar,
|
||||
DECODE(FLOOR((TO_CHAR (SYSDATE + 7*(LEVEL),'IW') - 1) /4) + 1, 14, 13,FLOOR((TO_CHAR (SYSDATE + 7*(LEVEL),'IW') - 1) /4) + 1) periode,
|
||||
TO_CHAR (SYSDATE + 7*(LEVEL), 'IW') week,
|
||||
TRUNC (SYSDATE + 7*(LEVEL), 'IW') startdatum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <= 5*52+1;
|
||||
|
||||
|
||||
-- Eerst maar eens een hulp-view voor de view care_v_qvw_beschikk
|
||||
-- In deze hulp-viewL: per melding-key de eerste datum waarop er zorg is verleend (en is goedgekeurd).
|
||||
-- In deze hulp-view: per melding-key de eerste datum waarop er zorg is verleend (en is goedgekeurd).
|
||||
|
||||
CREATE_VIEW( care_v_qvw_first_gewerkte_uren, 0)
|
||||
AS
|
||||
@@ -7599,10 +7639,10 @@ AS
|
||||
WHERE b.mld_melding_key = uur.mld_melding_key(+)
|
||||
GROUP BY b.mld_melding_key;
|
||||
|
||||
|
||||
CREATE_VIEW( care_v_qvw_beschikk, 0)
|
||||
AS
|
||||
SELECT b.mld_melding_key,
|
||||
b.gemeente_key,
|
||||
b.gemeente_code,
|
||||
b.gemeente_omschrijving,
|
||||
b.prs_client_naam || ',' || prs_client_tussenvoegsel || ',' || prs_client_voorletters AS prs_client_naam,
|
||||
@@ -7622,12 +7662,17 @@ AS
|
||||
)
|
||||
AS beschikking_week_van,
|
||||
b.beschikking_jaar_van,
|
||||
b.beschikking_maandag_van_std,
|
||||
b.beschikking_maandag_van,
|
||||
b.beschikking_maandag_tot_std,
|
||||
b.beschikking_datum_tot,
|
||||
coalesce(least(b.beschikking_maandag_tot,b.beschikking_afmeld_datum),b.beschikking_maandag_tot) beschikking_maandag_tot,
|
||||
b.beschikking_afmeld_datum,
|
||||
u.datum_eerste_keer_ooit,
|
||||
b.product_code,
|
||||
b.product,
|
||||
b.tarief,
|
||||
COALESCE(b.pgb,0) pgb,
|
||||
-- b.tarief,
|
||||
b.uren_beschikking,
|
||||
b.beschikking_nr,
|
||||
b.ins_discipline_omschrijving
|
||||
@@ -7635,6 +7680,79 @@ AS
|
||||
WHERE b.mld_melding_key = u.mld_melding_key;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Hieronder staat versie 1 van care_v_qvw_gemeente_tarieven, a.g.v. performance is versie 2 gemaakt die compacter is (en Oracle beter mee om zou kunnen gaan)
|
||||
CREATE_VIEW( care_v_qvw_gemeente_tarieven, 0)
|
||||
(alg_locatie_key, alg_locatie_code, product_code, product, tarief, vandatum, tmdatum)
|
||||
AS
|
||||
SELECT l.alg_locatie_key,
|
||||
l.alg_locatie_code,
|
||||
gt.product_code,
|
||||
ud.fac_usrdata_code,
|
||||
gt.tarief,
|
||||
gt2.duedatum + 1,
|
||||
COALESCE(gt.duedatum, TO_DATE('31-12-2099','DD-MM-YYYY'))
|
||||
FROM care_v_gemeente_tarieven gt, alg_locatie l, fac_usrdata ud, care_v_gemeente_tarieven gt2
|
||||
WHERE l.alg_locatie_key = gt.alg_locatie_key (+)
|
||||
AND l.alg_locatie_verwijder IS NULL
|
||||
AND ud.fac_usrdata_key = gt.product_code
|
||||
AND gt2.alg_locatie_key = gt.alg_locatie_key
|
||||
AND gt2.product_code = gt.product_code
|
||||
AND gt2.duedatum = (SELECT MAX (gt3.duedatum)
|
||||
FROM care_v_gemeente_tarieven gt3
|
||||
WHERE COALESCE(gt3.duedatum,SYSDATE+9999) < COALESCE(gt.duedatum,SYSDATE+9999)
|
||||
AND gt3.alg_locatie_key = gt.alg_locatie_key
|
||||
AND gt3.product_code = gt.product_code
|
||||
)
|
||||
UNION ALL
|
||||
SELECT l.alg_locatie_key,
|
||||
l.alg_locatie_code,
|
||||
gt.product_code,
|
||||
ud.fac_usrdata_code,
|
||||
gt.tarief,
|
||||
TO_DATE('01-01-2010','DD-MM-YYYY'),
|
||||
COALESCE(gt.duedatum, TO_DATE('31-12-2099','DD-MM-YYYY'))
|
||||
FROM care_v_gemeente_tarieven gt, alg_locatie l, fac_usrdata ud
|
||||
WHERE l.alg_locatie_key = gt.alg_locatie_key (+)
|
||||
AND l.alg_locatie_verwijder IS NULL
|
||||
AND ud.fac_usrdata_key = gt.product_code
|
||||
AND COALESCE(gt.duedatum,SYSDATE)= (SELECT COALESCE(MIN (gt2.duedatum),SYSDATE)
|
||||
FROM care_v_gemeente_tarieven gt2
|
||||
WHERE gt2.alg_locatie_key = gt.alg_locatie_key
|
||||
AND gt2.product_code = gt.product_code
|
||||
);
|
||||
*/
|
||||
|
||||
|
||||
CREATE_VIEW( care_v_qvw_gemeente_tarieven, 0)
|
||||
(alg_locatie_key, product_code, tarief, vandatum, tmdatum)
|
||||
AS
|
||||
SELECT alg_locatie_key, product_code, tarief,
|
||||
COALESCE(LAG(duedatum+1, 1, TO_DATE('01-01-2010','DD-MM-YYYY')) OVER (ORDER BY alg_locatie_key, product_code, duedatum), TO_DATE('01-01-2010','DD-MM-YYYY')) AS vandatum,
|
||||
COALESCE(duedatum,TO_DATE('31-12-2099','DD-MM-YYYY')) AS tmdatum
|
||||
FROM care_v_gemeente_tarieven;
|
||||
|
||||
|
||||
CREATE_VIEW( care_v_qvw_tarieven_per_week, 0)
|
||||
(alg_locatie_key, product_code, tarief, jaar, periode, week, maandag)
|
||||
AS
|
||||
SELECT alg_locatie_key, product_code, tarief, jaar, periode, week, maandag
|
||||
FROM care_v_qvw_gemeente_tarieven gt, care_v_qvw_periodeweektabel pw
|
||||
WHERE pw.maandag >= vandatum AND pw.maandag <= tmdatum;
|
||||
|
||||
//Hier de 1e filtering op maandag_std (anders krijgen we veel te veel records), maar wel -7 en + 7 om extra ruim te zitten...
|
||||
//in qlikview (qvs) gaan we nauwkeuriger op de "good_monday" filereren (anders hier een performance-probleem ivm functie goodmay en vooral fac_tracking: >> 10 min)
|
||||
CREATE_VIEW( care_v_qvw_beschikk_per_week, 0)
|
||||
(mld_melding_key, beschikking_maandag_van, beschikking_maandag_tot, uren_beschikking, tarief, jaar, periode, week, maandag_vande_week)
|
||||
AS
|
||||
SELECT mld_melding_key, beschikking_maandag_van, beschikking_maandag_tot, uren_beschikking, tarief, jaar, periode, week, t.maandag
|
||||
FROM care_v_qvw_beschikk b, care_v_qvw_tarieven_per_week t
|
||||
WHERE t.maandag >= b.beschikking_maandag_van_std - 7 AND t.maandag < b.beschikking_maandag_tot_std + 7
|
||||
AND b.gemeente_key = alg_locatie_key
|
||||
AND b.product_code = t.product_code;
|
||||
|
||||
|
||||
CREATE_VIEW( care_v_qvw_zorguren, 0)
|
||||
AS
|
||||
SELECT u.mld_melding_key,
|
||||
@@ -8590,6 +8708,6 @@ AS
|
||||
|
||||
|
||||
|
||||
REGISTERRUN('$Workfile: CARE_VIE.SRC $','$Revision: 38 $')
|
||||
REGISTERRUN('$Workfile: CARE_VIE.SRC $','$Revision: 39 $')
|
||||
|
||||
#endif // CARE
|
||||
|
||||
Reference in New Issue
Block a user