Files
Customer/BONS/bons.sql
Suzan Wiegerinck bd6f847bee BONS#70680 Nieuwe rapportage i.v.m. nieuw salarissysteem
svn path=/Customer/trunk/; revision=54887
2022-02-08 16:26:00 +00:00

10221 lines
349 KiB
MySQL

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'BONS.SQL'
DEFINE dbuser = '^BONS'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile ('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE FORCE VIEW bons_v_rap_salaris_unit4
(
fclt_f_periode,
werkgever,
werknemer,
loonsoort,
dienstverband,
boekjaar,
periode,
datum,
volgnr,
dagensoort,
looncomponent,
aantaldagen,
aantaluren,
waarde
)
AS
SELECT fclt_f_periode,
2,
nr_verzorger,
3,
NULL,
TO_CHAR (boekdatum, 'yyyy'),
SUBSTR (fclt_f_periode, 6, 2),
TO_CHAR (boekdatum, 'dd-mm-yyyy'),
NULL,
DECODE (uur_soort,
'GEWERKT', 'GEW',
'ZIEK', 'ZK',
'VERLOF', 'VRL',
NULL),
DECODE (kosten_soort,
'FIETS', '799102',
'BROMF', '799101',
'KM_WW', '709111',
'KM_PLUS', '107002',
'REISTIJD', '4800',
NULL),
svdagen,
uren,
kosten
FROM care_v_rap_salaris_b
WHERE nr_verzorger NOT IN ('11',
'6',
'8',
'9',
'Fake1')
UNION ALL
SELECT fclt_f_periode,
2,
nr_verzorger,
3,
NULL,
TO_CHAR (boekdatum, 'yyyy'),
SUBSTR (fclt_f_periode, 6, 2),
TO_CHAR (boekdatum, 'dd-mm-yyyy'),
NULL,
NULL,
'107003',
svdagen,
uren,
kosten
FROM care_v_rap_salaris_b
WHERE kosten_soort = 'KM_PLUS'
AND nr_verzorger NOT IN ('11',
'6',
'8',
'9',
'Fake1');
CREATE OR REPLACE FORCE VIEW CARE_V_RAP2_FACTUUR_UREN_M_V2
(
FCLT_X_PERIODE,
FCLT_X_GEMEENTE,
TARIEF,
MELDING,
BESCHIKKING,
BESCHIKKING_OMSCHR,
CLIENTNUMMER,
BSN,
ACHTERNAAM,
VOORVOEGSELS,
VOORLETTERS,
GEBOORTEDATUM,
GESLACHT,
POSTCODE,
HUISNUMMER,
HUISNUMMERTOEVOEGING,
JAAR,
WEEK,
PRODUCT,
MINUTEN,
MINUTEN_X_TARIEF,
MEDEWERKER,
PERSONEELSNUMMER_MDW
)
AS
SELECT periode,
gemeente,
tarief,
melding,
MIN (beschikkingsnr),
beschikking_omschr,
MIN (client_nr),
bsn_client,
MIN (client_naam),
MIN (client_tussenvoegsel),
MIN (client_voorletters),
MIN (client_geboortedatum),
MIN (client_mv),
MIN (client_postcode),
SUBSTR (
MIN (client_huisnr),
1,
DECODE (
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'),
0, LENGTH (MIN (client_huisnr)),
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]') - 1)),
SUBSTR (
MIN (client_huisnr),
DECODE (REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'),
0, LENGTH (MIN (client_huisnr)) + 1,
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'))),
jaar,
weeknr,
DECODE (
product,
'HV1', TO_CHAR (COALESCE (MIN (gemeente_hv1_code), 1)),
'HV2', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2)),
'HV3', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2) + 1),
''),
ROUND (60 * SUM (week_uren_besteed)),
ROUND (60 * SUM (week_uren_besteed)) * tarief,
verzorger,
nr_verzorger
FROM care_v_gemeente_fact2_uren f
GROUP BY periode,
gemeente,
tarief,
melding,
beschikkingsnr,
beschikking_omschr,
f.bsn_client,
product,
jaar,
weeknr,
verzorger,
nr_verzorger;
CREATE OR REPLACE FORCE VIEW CARE_V_RAP2_FACTUUR_UREN_M_V3
(
FCLT_X_MAAND,
FCLT_X_MAAND_TXT,
FCLT_X_GEMEENTE,
TARIEF,
MELDING,
BESCHIKKING,
BESCHIKKING_OMSCHR,
BESCHIKKING_DATUM_VAN,
BESCHIKKING_DATUM_TOT,
CLIENTNUMMER,
BSN,
ACHTERNAAM,
VOORVOEGSELS,
VOORLETTERS,
GEBOORTEDATUM,
GESLACHT,
POSTCODE,
HUISNUMMER,
HUISNUMMERTOEVOEGING,
JAAR,
WEEK,
PRODUCT,
MINUTEN,
MINUTEN_X_TARIEF,
MEDEWERKER,
PERSONEELSNUMMER_MDW
)
AS
SELECT maand,
maand_txt,
gemeente,
tarief,
melding,
MIN (beschikkingsnr),
beschikking_omschr,
beschikking_datum_van,
beschikking_datum_tot,
MIN (client_nr),
bsn_client,
MIN (client_naam),
MIN (client_tussenvoegsel),
MIN (client_voorletters),
MIN (client_geboortedatum),
MIN (client_mv),
MIN (client_postcode),
SUBSTR (
MIN (client_huisnr),
1,
DECODE (
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'),
0, LENGTH (MIN (client_huisnr)),
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]') - 1)),
SUBSTR (
MIN (client_huisnr),
DECODE (REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'),
0, LENGTH (MIN (client_huisnr)) + 1,
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'))),
jaar,
weeknr,
DECODE (
product,
'HV1', TO_CHAR (COALESCE (MIN (gemeente_hv1_code), 1)),
'HV2', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2)),
'HV3', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2) + 1),
''),
ROUND (60 * SUM (week_uren_besteed)),
ROUND (60 * SUM (week_uren_besteed)) * tarief,
verzorger,
nr_verzorger
FROM care_v_gemeente_fact2_uren f
GROUP BY maand,
maand_txt,
gemeente,
tarief,
melding,
beschikkingsnr,
beschikking_datum_van,
beschikking_datum_tot,
beschikking_omschr,
f.bsn_client,
product,
jaar,
weeknr,
verzorger,
nr_verzorger;
CREATE OR REPLACE VIEW BONS_V_RAP_SALARIS_EASYLON
(
FCLT_F_PERIODE,
WERKGEVER,
WERKNEMER,
WERKNEMER_NR2,
LOONCOMPONENT,
WAARDE
)
AS
SELECT "FCLT_F_PERIODE",
"WERKGEVER",
"WERKNEMER",
"WERKNEMER_NR2",
"DIENSTVERBAND",
"LOONCOMPONENT",
"WAARDE"
FROM (SELECT sal.fclt_f_periode,
'2' werkgever,
sal.nr_verzorger werknemer,
sal.personeelsnr_2 werknemer_nr2,
sal.dienstverband,
DECODE (COALESCE (sal.kosten_soort, sal.uur_soort),
'GEWERKT', 'GEW',
'ZIEK', 'ZK',
'VERLOF', 'VRL',
'FIETS', '799102',
'BROMF', '799101',
'KM_WW', '709111',
'KM_PLUS', '107002',
'REISTIJD', '4800',
NULL) looncomponent,
DECODE (
COALESCE (sal.kosten_soort, sal.uur_soort),
'REISTIJD', ROUND (
( COALESCE (sal.kosten,
sal.svdagen)
/ 60),
2)
* 100, --- reistijd eerst van minuten naar uren
COALESCE (sal.kosten, sal.svdagen) * 100) waarde
FROM care_v_rap_salaris_b sal
WHERE nr_verzorger NOT IN ('11',
'6',
'8',
'9',
'Fake1')
UNION ALL
SELECT sal.fclt_f_periode,
'2' werkgever,
sal.nr_verzorger werknemer,
sal.personeelsnr_2 werknemer_nr2,
sal.dienstverband,
'107003' looncomponent,
sal.kosten * 100 waarde
FROM care_v_rap_salaris_b sal
WHERE nr_verzorger NOT IN ('11',
'6',
'8',
'9',
'Fake1')
AND sal.kosten_soort = 'KM_PLUS'
UNION ALL
SELECT sal.fclt_f_periode,
'2' werkgever,
sal.nr_verzorger werknemer,
sal.personeelsnr_2 werknemer_nr2,
sal.dienstverband,
DECODE (sal.uur_soort,
'GEWERKT', 'GEWU',
'ZIEK', 'ZKU',
'VERLOF', 'VRLU',
NULL) looncomponent,
sal.uren * 100 waarde
FROM care_v_rap_salaris_b sal
WHERE nr_verzorger NOT IN ('11',
'6',
'8',
'9',
'Fake1')
AND sal.uur_soort IS NOT NULL)
ORDER BY fclt_f_periode DESC, werknemer;
--controle op km per verzorgende per dag
CREATE OR REPLACE FORCE VIEW CARE_V_RAP_REISTIJD_DAG
(
HIDE_F_PRS_PERSLID_KEY,
UROLE,
HIDE_F_DATUM,
DATUM,
FCLT_F_JAAR,
FCLT_F_PERIODE,
FCLT_F_WEEK,
FCLT_F_VERZORGER,
ADRES,
HUISNR,
POSTCODE,
WOONPLAATS,
TELEFOONNR,
MOBIEL,
FCLT_F_AUTO,
KM
)
AS
SELECT v.prs_perslid_key,
'bo',
dk.mld_opdruren_dagkosten_datum,
TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'yyyy-mm-dd')
datum,
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IYYY'))
jaar,
LEAST (
FLOOR (
(TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW') - 1)
/ 4)
+ 1,
13)
periodenr,
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW'))
weeknr,
vn.prs_perslid_naam_full,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
COALESCE (v.auto_rijbewijs, '?'),
ROUND (SUM (dk.interkm)/1000)
FROM care_v_opdruren_dagkosten dk,
care_v_verzorger v,
prs_v_perslid_fullnames_all vn
WHERE v.prs_perslid_key = dk.prs_perslid_key
AND vn.prs_perslid_key = v.prs_perslid_key
GROUP BY v.prs_perslid_key,
'bo',
dk.mld_opdruren_dagkosten_datum,
TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'yyyy-mm-dd'),
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IYYY')),
LEAST (
FLOOR (
(TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW') - 1)
/ 4)
+ 1,
13),
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW')),
vn.prs_perslid_naam_full,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
COALESCE (v.auto_rijbewijs, '?');
--controle op km per verzorgende per week
CREATE OR REPLACE FORCE VIEW CARE_V_RAP_REISTIJD_WEEKNR
(
HIDE_F_PRS_PERSLID_KEY,
UROLE,
FCLT_F_JAAR,
FCLT_F_PERIODE,
FCLT_F_WEEK,
FCLT_F_VERZORGER,
ADRES,
HUISNR,
POSTCODE,
WOONPLAATS,
TELEFOONNR,
MOBIEL,
FCLT_F_AUTO,
KM
)
AS
SELECT v.prs_perslid_key,
'bo',
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IYYY'))
jaar,
LEAST (
FLOOR (
(TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW') - 1)
/ 4)
+ 1,
13)
periodenr,
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW'))
weeknr,
vn.prs_perslid_naam_full,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
COALESCE (v.auto_rijbewijs, '?'),
ROUND (SUM (dk.interkm)/1000)
FROM care_v_opdruren_dagkosten dk,
care_v_verzorger v,
prs_v_perslid_fullnames_all vn
WHERE v.prs_perslid_key = dk.prs_perslid_key
AND vn.prs_perslid_key = v.prs_perslid_key
GROUP BY v.prs_perslid_key,
'bo',
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IYYY')),
LEAST (
FLOOR (
(TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW') - 1)
/ 4)
+ 1,
13),
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW')),
vn.prs_perslid_naam_full,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
COALESCE (v.auto_rijbewijs, '?');
--controle op km per verzorgende per periode
CREATE OR REPLACE FORCE VIEW CARE_V_RAP_REISTIJD_PERIODE
(
HIDE_F_PRS_PERSLID_KEY,
UROLE,
FCLT_F_JAAR,
FCLT_F_PERIODE,
FCLT_F_VERZORGER,
ADRES,
HUISNR,
POSTCODE,
WOONPLAATS,
TELEFOONNR,
MOBIEL,
FCLT_F_AUTO,
KM
)
AS
SELECT v.prs_perslid_key,
'bo',
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IYYY'))
jaar,
LEAST (
FLOOR (
(TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW') - 1)
/ 4)
+ 1,
13)
periodenr,
vn.prs_perslid_naam_full,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
COALESCE (v.auto_rijbewijs, '?'),
ROUND (SUM (dk.interkm)/1000)
FROM care_v_opdruren_dagkosten dk,
care_v_verzorger v,
prs_v_perslid_fullnames_all vn
WHERE v.prs_perslid_key = dk.prs_perslid_key
AND vn.prs_perslid_key = v.prs_perslid_key
GROUP BY v.prs_perslid_key,
'bo',
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IYYY')),
LEAST (
FLOOR (
(TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW') - 1)
/ 4)
+ 1,
13),
vn.prs_perslid_naam_full,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
COALESCE (v.auto_rijbewijs, '?');
--------------------------------------------------------------------
----- Hieronder staan de views ed die uit care.vie afkomstig zijn
--------------------------------------------------------------------
CREATE OR REPLACE FORCE VIEW care_v_gemeente
AS
SELECT gemeente.alg_locatie_key,
gemeente.alg_locatie_code,
gemeente.alg_locatie_omschrijving,
gemeente.alg_locatie_adres,
gemeente.alg_locatie_postcode,
gemeente.alg_locatie_plaats,
gemeente.alg_locatie_post_adres,
gemeente.alg_locatie_post_postcode,
gemeente.alg_locatie_post_plaats,
gemeente.alg_locatie_verantw,
gemeente.alg_locatie_x,
gemeente.alg_locatie_y,
COALESCE (fac.safe_to_number (K.ALG_ONRGOEDKENMERK_WAARDE), 0)
AS alg_locatie_veiling,
COALESCE (fac.safe_to_number (K2.ALG_ONRGOEDKENMERK_WAARDE), 0)
AS gemeente_budget,
COALESCE (fac.safe_to_number (K3.ALG_ONRGOEDKENMERK_WAARDE), 0)
AS gemeente_ob
FROM alg_locatie gemeente,
alg_onrgoedkenmerk k,
alg_onrgoedkenmerk k2,
alg_onrgoedkenmerk k3
WHERE gemeente.alg_locatie_verwijder IS NULL
AND k.alg_onrgoed_niveau(+) = 'L'
AND k.alg_kenmerk_key(+) = 1006
AND k.alg_onrgoed_key(+) = alg_locatie_key
AND k2.alg_onrgoed_niveau(+) = 'L'
AND k2.alg_kenmerk_key(+) = 1007
AND k2.alg_onrgoed_key(+) = alg_locatie_key
AND k3.alg_onrgoed_niveau(+) = 'L'
AND k3.alg_kenmerk_key(+) = 1008
AND k3.alg_onrgoed_key(+) = alg_locatie_key;
-- 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)
-- duedatum is datum tot en met (!) het tarief geldig is, de dag erop volgende dus niet meer, dan is het volgende tarief geldig.
CREATE OR REPLACE FORCE VIEW care_v_gemeente_tarieven
(
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:
-- Let op de ud.fac_usrdata_key = 48 (= setting mbt expliciet clientnr of impliet (=prs_perslid_key)
CREATE OR REPLACE FORCE VIEW care_v_client
AS
SELECT client.prs_perslid_key prs_client_key,
client.prs_perslid_naam prs_client_naam,
client.prs_perslid_tussenvoegsel prs_client_tussenvoegsel,
client.prs_perslid_voorletters prs_client_voorletters,
client.prs_perslid_voornaam prs_client_voornaam,
client.fac_profiel_key prs_client_cak_actie,
DECODE (ud.fac_usrdata_omschr,
1, client.prs_perslid_nr,
client.prs_perslid_key) prs_client_nr,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1020) client_bsn,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1001) client_meisjesnaam,
(SELECT DECODE (kl.prs_kenmerklink_waarde,
21, 'M',
22, 'V',
NULL)
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1061) client_mv,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1002) client_geboortedatum,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1003) client_adres,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1040) client_huisnr,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1004) client_postcode,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1005) client_woonplaats,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1006) client_telefoon_thuis,
client.prs_perslid_telefoonnr client_telefoon_werk,
client.prs_perslid_mobiel prs_client_mobiel,
client.prs_perslid_email prs_client_email,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1041) client_bijzonderheden,
client.prs_perslid_verwijder
FROM prs_perslid client, fac_usrdata ud
WHERE client.prs_afdeling_key = 22 AND ud.fac_usrdata_key = 48;
-- view tbv van het controle rapport FSN#20131 op aanwezige clienten
CREATE OR REPLACE FORCE VIEW CARE_V_AANWEZIG_CLIENT
AS
SELECT prs_client_key,
prs_client_naam,
prs_client_tussenvoegsel,
prs_client_voorletters,
prs_client_voornaam,
prs_client_nr,
prs_client_cak_actie,
client_bsn,
client_meisjesnaam,
client_mv,
client_geboortedatum,
client_adres,
client_huisnr,
client_postcode,
client_woonplaats,
client_telefoon_thuis,
client_telefoon_werk,
prs_client_mobiel,
prs_client_email,
client_bijzonderheden
FROM care_v_client
WHERE prs_perslid_verwijder IS NULL;
-- rapport controle cak rapport FSN#20131
CREATE OR REPLACE FORCE VIEW care_v_cak_clientcontrole
(
fclt_f_client_naam,
client_voornaam,
client_voorletters,
bsn,
clientnummer,
postcode,
huisnummer,
fclt_f_foutmelding,
fout_code
)
AS
WITH XX AS (SELECT * FROM CARE_V_AANWEZIG_CLIENT)
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'Waarschuwing: Deze client staat gemarkeerd: vorige keer zorguren naar CAK vergeten'
foutmelding,
'W'
FROM XX
WHERE prs_client_cak_actie = 1
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'Waarschuwing: Deze client staat gemarkeerd m.b.t. correctie zorguren'
foutmelding,
'W'
FROM XX
WHERE prs_client_cak_actie = 2
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'Geen clientnummer ingevuld' foutmelding,
'E'
FROM XX
WHERE prs_client_nr IS NULL
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'Voorletters niet ingevuld' foutmelding,
'E'
FROM XX
WHERE prs_client_voorletters IS NULL
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'Client nummer bevat foutieve tekens' foutmelding,
'E'
FROM XX
WHERE LENGTH (TRIM (TRANSLATE (prs_client_nr, ' 0123456789', ' ')))
IS NOT NULL
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'BSN bevat foutieve tekens' foutmelding,
'E'
FROM XX
WHERE LENGTH (TRIM (TRANSLATE (client_bsn, ' 0123456789', ' ')))
IS NOT NULL
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'Client nummer is niet uniek' foutmelding,
'E'
FROM XX
WHERE prs_client_nr IN ( SELECT prs_client_nr
FROM XX
GROUP BY prs_client_nr
HAVING (COUNT (prs_client_nr) > 1))
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'BSN nummer is niet uniek' foutmelding,
'E'
FROM XX
WHERE client_bsn IN ( SELECT client_bsn
FROM XX
GROUP BY client_bsn
HAVING (COUNT (client_bsn) > 1))
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'BSN nummer is niet 8 of 9 cijfers' foutmelding,
'E'
FROM XX
WHERE LENGTH (client_bsn) NOT IN (8, 9)
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'BSN nummer voldoet niet aan de 11-proef' foutmelding,
'E'
FROM XX
WHERE MOD (
fac.safe_to_number (SUBSTR (client_bsn, 1, 1)) * 9
+ fac.safe_to_number (SUBSTR (client_bsn, 2, 1)) * 8
+ fac.safe_to_number (SUBSTR (client_bsn, 3, 1)) * 7
+ fac.safe_to_number (SUBSTR (client_bsn, 4, 1)) * 6
+ fac.safe_to_number (SUBSTR (client_bsn, 5, 1)) * 5
+ fac.safe_to_number (SUBSTR (client_bsn, 6, 1)) * 4
+ fac.safe_to_number (SUBSTR (client_bsn, 7, 1)) * 3
+ fac.safe_to_number (SUBSTR (client_bsn, 8, 1)) * 2
+ fac.safe_to_number (SUBSTR (client_bsn, 9, 1)) * -1,
11) <>
0
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'Huisnummer begint niet met een cijfer, bevat een spatie of is leeg'
foutmelding,
'E'
FROM XX
WHERE LENGTH (
TRIM (
TRANSLATE (SUBSTR (client_huisnr, 1, 1),
' 0123456789',
' ')))
IS NOT NULL
OR client_huisnr IS NULL
OR client_huisnr LIKE ('% %')
UNION ALL
SELECT prs_client_naam,
prs_client_voornaam,
prs_client_voorletters,
client_bsn,
prs_client_nr,
client_postcode,
client_huisnr,
'Onjuist formaat van postcode (1234 AA)' foutmelding,
'E'
FROM XX
WHERE NOT REGEXP_LIKE (
client_postcode,
'^[1234567890][1234567890][1234567890][1234567890] [ABCDEFGHIJKLMNOPQRSTUVWXYZ][ABCDEFGHIJKLMNOPQRSTUVWXYZ]$')
ORDER BY 1, 8;
-- 'De teamleiders obv WEB_ORDBOF'
CREATE OR REPLACE FORCE VIEW care_v_teamleider
AS
SELECT p.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_voorletters,
d.ins_discipline_key,
d.ins_discipline_omschrijving
FROM prs_perslid p,
mld_discipline d,
fac_groeprechten gr,
fac_gebruikersgroep gg,
fac_functie f
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND gr.fac_groep_key = gg.fac_groep_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_functie_key = f.fac_functie_key
AND f.fac_functie_code = 'WEB_ORDBOF'
AND ( gr.fac_gebruiker_prs_level_write < 9
OR gr.fac_gebruiker_alg_level_write < 9);
-- 'De teams incl. teamleden obv WEB_MLDORD'
CREATE OR REPLACE FORCE VIEW care_v_teamlid
AS
SELECT p.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_voorletters,
d.ins_discipline_key,
d.ins_discipline_omschrijving
FROM prs_perslid p,
mld_discipline d,
fac_groeprechten gr,
fac_gebruikersgroep gg,
fac_functie f
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND gr.fac_groep_key = gg.fac_groep_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_functie_key = f.fac_functie_key
AND f.fac_functie_code = 'WEB_MLDORD';
-- Teamlid welke nu (!), op dit moment (!) een (of meer) lopende opdracht(en) heeft.
CREATE OR REPLACE FORCE VIEW care_v_actief_teamlid
AS
SELECT p.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_voorletters,
o.mld_melding_key,
o.mld_opdr_key
FROM prs_perslid p, mld_opdr o
WHERE p.prs_perslid_key = o.mld_uitvoerende_keys
AND o.mld_opdr_datumbegin <= TRUNC (SYSDATE)
AND o.mld_opdr_einddatum >= TRUNC (SYSDATE);
-- View met alle geregistreerde verzorgers (ongeacht of ze een lopende opdracht hebben) op basis van afdelingskey
-- Elke perslid die rechten heeft om een zorg-opdracht in een team kan uitvoeren (WEB_MLDORD), is (potentieel) verzorger
CREATE OR REPLACE FORCE VIEW care_v_verzorger
AS
SELECT verzorger.prs_perslid_key
prs_perslid_key,
verzorger.prs_perslid_nr
prs_verzorger_personeelsnr,
verzorger.prs_perslid_naam
prs_verzorger_naam,
verzorger.prs_perslid_tussenvoegsel
prs_verzorger_tussenvoegsel,
verzorger.prs_perslid_voorletters
prs_verzorger_voorletters,
verzorger.prs_perslid_voornaam
prs_verzorger_voornaam,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2001) personeelsnr_2,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2002) dienstverband,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1020)
verzorger_bsn,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1001)
verzorger_meisjesnaam,
(SELECT DECODE (kl.prs_kenmerklink_waarde,
21, 'M',
22, 'V',
NULL)
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1061)
verzorger_mv,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1002)
verzorger_geboortedatum,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1003)
verzorger_adres,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1040)
verzorger_huisnr,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1004)
verzorger_postcode,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1005)
verzorger_woonplaats,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1006)
verzorger_telefoon_thuis,
verzorger.prs_perslid_telefoonnr
verzorger_telefoon_werk,
verzorger.prs_perslid_mobiel
prs_verzorger_mobiel,
verzorger.prs_perslid_email
prs_verzorger_email,
sp.prs_srtperslid_omschrijving
prs_verzorger_functie,
verzorger.prs_perslid_dienstverband
prs_verzorger_dienstverband,
verzorger.prs_perslid_ingangsdatum
prs_verzorger_ingangsdatum,
verzorger.prs_perslid_einddatum
prs_verzorger_einddatum,
verzorger.prs_perslid_verwijder
prs_verzorger_verwijder,
(SELECT DECODE (kl.prs_kenmerklink_waarde,
81, 'J',
82, 'N',
NULL)
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1065)
auto_rijbewijs,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1041)
verzorger_bijzonderheden
FROM prs_perslid verzorger, prs_srtperslid sp
WHERE verzorger.prs_srtperslid_key = sp.prs_srtperslid_key;
CREATE OR REPLACE FORCE VIEW care_v_verzorger_in_teams
AS
SELECT v.prs_perslid_key,
v.prs_verzorger_naam,
v.prs_verzorger_tussenvoegsel,
v.prs_verzorger_voorletters,
v.prs_verzorger_voornaam,
v.verzorger_bsn,
v.verzorger_meisjesnaam,
v.verzorger_mv,
v.verzorger_geboortedatum,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_thuis,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
v.prs_verzorger_email,
v.prs_verzorger_functie,
v.prs_verzorger_dienstverband,
v.prs_verzorger_ingangsdatum,
v.prs_verzorger_einddatum,
v.prs_verzorger_verwijder,
v.verzorger_bijzonderheden,
tlid.ins_discipline_key team_key,
tlid.ins_discipline_omschrijving team_naam
FROM care_v_teamlid tlid, care_v_verzorger v
WHERE v.prs_perslid_key = tlid.prs_perslid_key;
-- 'De administratie: Gerda/Anja/Susanne'
-- De personen voor de intake beschikkingen en de controle-functie hebben dat overeenkomstig de beschikkingen opdrachten
-- worden uitgegeven.
-- Deze view wordt gebruikt in de view care_v_noti_urenconflict voor het actief signaleren van conflicten in uren
-- tussen beschikkigen en uitgegeven opdrachten.
CREATE OR REPLACE FORCE VIEW care_v_controller
AS
SELECT p.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_voorletters
FROM prs_perslid p
WHERE EXISTS
(SELECT d.ins_discipline_key
FROM mld_discipline d,
fac_groeprechten gr,
fac_gebruikersgroep gg,
fac_functie f
WHERE gg.prs_perslid_key = p.prs_perslid_key
AND gr.fac_groep_key = gg.fac_groep_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_functie_key = f.fac_functie_key
AND f.fac_functie_code = 'WEB_MLDFOF');
-- Deze view is de totale view van alle beschikkingen met bijbehorende gegevens
-- Uitleg: d.ins_srtdiscipline_key = 1 (dit zijn de beschikking-meldingen, van vakgroeptype_key=1)
CREATE OR REPLACE FORCE VIEW care_v_beschikking_all
(
mld_melding_key,
mld_melding_status,
gemeente_key,
gemeente_code,
gemeente_omschrijving,
gemeente_adres,
gemeente_postcode,
gemeente_plaats,
gemeente_post_adres,
gemeente_post_postcode,
gemeente_post_plaats,
gemeente_contactpersoon,
gemeente_factnr_infix,
gemeente_factnr_suffix,
gemeente_hv1_code,
gemeente_hv2_code,
gemeente_veiling,
gemeente_budget,
gemeente_ob,
prs_client_key,
prs_client_naam,
prs_client_tussenvoegsel,
prs_client_voorletters,
prs_client_voornaam,
prs_client_nr,
prs_client_cak_actie,
client_bsn,
client_meisjesnaam,
client_mv,
client_geboortedatum,
client_adres,
client_huisnr,
client_postcode,
client_woonplaats,
client_telefoon_thuis,
client_telefoon_werk,
prs_client_mobiel,
prs_client_email,
client_bijzonderheden,
client_contactpersonen,
beschikking_datum_van,
beschikking_week_van,
beschikking_jaar_van,
beschikking_maandag_van_std,
beschikking_maandag_van,
beschikking_datum_tot,
beschikking_week_tot,
beschikking_jaar_tot,
beschikking_maandag_tot_std,
beschikking_maandag_tot,
beschikking_afmeld_datum,
pgb,
product_code,
product,
pgb_tarief,
uren_beschikking,
beschikking_nr,
beschikking_omschr,
ins_discipline_key,
ins_discipline_omschrijving,
alt_hv1,
alt_hv2,
alt_hv3,
alt_hv1_start,
alt_hv2_start,
alt_hv3_start
)
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,
gemeente.alg_locatie_postcode,
gemeente.alg_locatie_plaats,
gemeente.alg_locatie_post_adres,
gemeente.alg_locatie_post_postcode,
gemeente.alg_locatie_post_plaats,
gemeente.alg_locatie_verantw,
(SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = gemeente.alg_locatie_key
AND ok.alg_onrgoed_niveau = 'L'
AND ok.alg_kenmerk_key = 1004
AND ok.alg_onrgoedkenmerk_verwijder IS NULL),
(SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = gemeente.alg_locatie_key
AND ok.alg_onrgoed_niveau = 'L'
AND ok.alg_kenmerk_key = 1005
AND ok.alg_onrgoedkenmerk_verwijder IS NULL),
gemeente.alg_locatie_x,
gemeente.alg_locatie_y,
gemeente.alg_locatie_veiling,
gemeente.gemeente_budget,
gemeente.gemeente_ob,
client.prs_perslid_key
prs_client_key,
client.prs_perslid_naam
prs_client_naam,
client.prs_perslid_tussenvoegsel
prs_client_tussenvoegsel,
client.prs_perslid_voorletters
prs_client_voorletters,
client.prs_perslid_voornaam
prs_client_voornaam,
client.prs_perslid_nr
prs_client_nr,
client.fac_profiel_key
prs_client_cak_actie,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1020)
client_bsn,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1001)
client_meisjesnaam,
(SELECT DECODE (kl.prs_kenmerklink_waarde,
21, 'M',
22, 'V',
NULL)
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1061)
client_mv,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1002)
client_geboortedatum,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1003)
client_adres,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1040)
client_huisnr,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1004)
client_postcode,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1005)
client_woonplaats,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1006)
client_telefoon_thuis,
client.prs_perslid_telefoonnr
client_telefoon_werk,
client.prs_perslid_mobiel
prs_client_mobiel,
client.prs_perslid_email
prs_client_email,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1041)
client_bijzonderheden,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = client.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2000)
client_contactpersonen,
m.mld_melding_datum
beschikking_datum_van,
TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'IW'))
beschikking_week_van,
TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'IYYY'))
beschikking_jaar_van,
( TRUNC (mld_melding_datum)
- DECODE (TO_CHAR (mld_melding_datum, 'D'),
'1', 8,
TO_CHAR (mld_melding_datum, 'D'))
+ 2)
beschikking_maandag_van_std,
care.goodmonday_start (m.mld_melding_key)
beschikking_maandag_van,
m.mld_melding_einddatum
beschikking_datum_tot,
TO_NUMBER (TO_CHAR (m.mld_melding_einddatum, 'IW'))
beschikking_week_tot,
TO_NUMBER (TO_CHAR (m.mld_melding_einddatum, 'IYYY'))
beschikking_jaar_tot,
( TRUNC (mld_melding_einddatum)
+ 7
- DECODE (TO_CHAR (mld_melding_einddatum, 'D'),
'1', 8,
TO_CHAR (mld_melding_einddatum, 'D'))
+ 2)
beschikking_maandag_tot_std,
care.goodmonday_end (m.mld_melding_key)
beschikking_maandag_tot,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
m.prs_kostenplaats_key
pgb,
(SELECT fac.safe_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
AND km.mld_kenmerkmelding_verwijder IS NULL
AND mld_kenmerk_key = 2
AND ud.fac_usrdata_key =
fac.safe_to_number (km.mld_kenmerkmelding_waarde))
product,
COALESCE (
(SELECT fac.safe_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 = 4),
0)
tarief,
(SELECT fac.safe_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 = 3)
uren_beschikking,
(SELECT 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 = 1)
beschikking_nr,
mld_melding_omschrijving,
std.mld_ins_discipline_key,
ins_discipline_omschrijving,
(SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = gemeente.alg_locatie_key
AND ok.alg_onrgoed_niveau = 'L'
AND ok.alg_kenmerk_key = 2000
AND ok.alg_onrgoedkenmerk_verwijder IS NULL)
alt_hv1,
(SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = gemeente.alg_locatie_key
AND ok.alg_onrgoed_niveau = 'L'
AND ok.alg_kenmerk_key = 2001
AND ok.alg_onrgoedkenmerk_verwijder IS NULL)
alt_hv2,
(SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = gemeente.alg_locatie_key
AND ok.alg_onrgoed_niveau = 'L'
AND ok.alg_kenmerk_key = 2002
AND ok.alg_onrgoedkenmerk_verwijder IS NULL)
alt_hv3,
(SELECT TO_NUMBER (
TO_CHAR (
TO_DATE (ok.alg_onrgoedkenmerk_waarde,
'DD-MM-YYYY'),
'IYYY'))
|| LPAD (
LEAST (
FLOOR (
( TO_CHAR (
TO_DATE (
ok.alg_onrgoedkenmerk_waarde,
'DD-MM-YYYY'),
'IW')
- 1)
/ 4)
+ 1,
13),
2,
'0')
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = gemeente.alg_locatie_key
AND ok.alg_onrgoed_niveau = 'L'
AND ok.alg_kenmerk_key = 2003
AND ok.alg_onrgoedkenmerk_verwijder IS NULL)
alt_hv1_start,
(SELECT TO_NUMBER (
TO_CHAR (
TO_DATE (ok.alg_onrgoedkenmerk_waarde,
'DD-MM-YYYY'),
'IYYY'))
|| LPAD (
LEAST (
FLOOR (
( TO_CHAR (
TO_DATE (
ok.alg_onrgoedkenmerk_waarde,
'DD-MM-YYYY'),
'IW')
- 1)
/ 4)
+ 1,
13),
2,
'0')
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = gemeente.alg_locatie_key
AND ok.alg_onrgoed_niveau = 'L'
AND ok.alg_kenmerk_key = 2004
AND ok.alg_onrgoedkenmerk_verwijder IS NULL)
alt_hv2_start,
(SELECT TO_NUMBER (
TO_CHAR (
TO_DATE (ok.alg_onrgoedkenmerk_waarde,
'DD-MM-YYYY'),
'IYYY'))
|| LPAD (
LEAST (
FLOOR (
( TO_CHAR (
TO_DATE (
ok.alg_onrgoedkenmerk_waarde,
'DD-MM-YYYY'),
'IW')
- 1)
/ 4)
+ 1,
13),
2,
'0')
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoed_key = gemeente.alg_locatie_key
AND ok.alg_onrgoed_niveau = 'L'
AND ok.alg_kenmerk_key = 2005
AND ok.alg_onrgoedkenmerk_verwijder IS NULL)
alt_hv3_start
FROM care_v_gemeente gemeente,
prs_perslid client,
mld_melding m,
mld_stdmelding std,
ins_tab_discipline d
WHERE m.mld_alg_locatie_key = gemeente.alg_locatie_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND m.mld_melding_status <> 1
AND d.ins_discipline_key = std.mld_ins_discipline_key
AND d.ins_srtdiscipline_key = 1
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
CREATE OR REPLACE FORCE VIEW care_v_bestede_uren_all
AS
SELECT o.mld_melding_key,
o.mld_opdr_key,
o.mld_opdr_datumbegin,
TRUNC (o.mld_opdr_einddatum)
einddatum,
o.mld_opdr_uren
uren_opdracht,
verzorger.prs_perslid_key,
verzorger.prs_perslid_naam,
verzorger.prs_perslid_tussenvoegsel,
verzorger.prs_perslid_voorletters,
verzorger.prs_perslid_voornaam,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2001)
personeelsnr_2,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2002)
dienstverband,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1020)
bsn,
verzorger.prs_perslid_nr
nr_verzorger,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1001)
meisjesnaam,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1002)
geboortedatum,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1003)
adres,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1004)
postcode,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1006)
telefoon_thuis,
verzorger.prs_perslid_telefoonnr
telefoon_werk,
verzorger.prs_perslid_mobiel,
verzorger.prs_perslid_email,
verzorger.prs_perslid_dienstverband,
ou.mld_opdr_uren_key,
TO_NUMBER (TO_CHAR (ou.mld_opdr_uren_datum, 'IYYY'))
jaar,
TO_NUMBER (TO_CHAR (ou.mld_opdr_uren_datum, 'IYYY'))
|| '-'
|| (TO_CHAR (ou.mld_opdr_uren_datum, 'MM'))
|| ' ('
|| TRIM (TO_CHAR (ou.mld_opdr_uren_datum, 'Month'))
|| ')'
maand,
TRIM (TO_CHAR (ou.mld_opdr_uren_datum, 'Month'))
|| ' '
|| TO_NUMBER (TO_CHAR (ou.mld_opdr_uren_datum, 'IYYY'))
maand_txt,
TO_NUMBER (TO_CHAR (ou.mld_opdr_uren_datum, 'IW'))
weeknr,
LEAST (
FLOOR ((TO_CHAR (ou.mld_opdr_uren_datum, 'IW') - 1) / 4) + 1,
13)
periodenr,
( TRUNC (ou.mld_opdr_uren_datum)
- DECODE (TO_CHAR (ou.mld_opdr_uren_datum, 'D'),
'1', 8,
TO_CHAR (ou.mld_opdr_uren_datum, 'D'))
+ 2)
maandag_vandeweek,
ou.mld_opdr_uren_datum
datum_gewerkt,
ou.mld_opdr_uren_besteed
uren_besteed,
ou.mld_opdr_uren_status
uren_status
FROM mld_opdr o, mld_opdr_uren ou, prs_perslid verzorger
WHERE ou.mld_opdr_key = o.mld_opdr_key
AND ou.prs_perslid_key = verzorger.prs_perslid_key;
-- Deze view is de totale view van alle IMproductieve, bestede uren (verlof, ziekte, arts, werkoverleg) door wie op welk moment
CREATE OR REPLACE FORCE VIEW care_v_improductieve_uren_all
AS
SELECT o.mld_impropdr_key,
o.mld_impropdr_code,
o.mld_impropdr_omschrijving,
verzorger.prs_perslid_key,
verzorger.prs_perslid_naam,
verzorger.prs_perslid_tussenvoegsel,
verzorger.prs_perslid_voorletters,
verzorger.prs_perslid_voornaam,
verzorger.prs_perslid_nr,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2001) personeelsnr_2,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2002) dienstverband,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1020)
bsn,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1001)
meisjesnaam,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1002)
geboortedatum,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1003)
adres,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1004)
postcode,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1006)
telefoon_thuis,
verzorger.prs_perslid_telefoonnr
telefoon_werk,
verzorger.prs_perslid_mobiel,
verzorger.prs_perslid_email,
verzorger.prs_perslid_dienstverband,
ou.mld_opdr_uren_key,
TO_NUMBER (TO_CHAR (ou.mld_opdr_uren_datum, 'IYYY'))
jaar,
TO_NUMBER (TO_CHAR (ou.mld_opdr_uren_datum, 'IW'))
weeknr,
LEAST (
FLOOR ((TO_CHAR (ou.mld_opdr_uren_datum, 'IW') - 1) / 4) + 1,
13)
periodenr,
( TRUNC (ou.mld_opdr_uren_datum)
- DECODE (TO_CHAR (ou.mld_opdr_uren_datum, 'D'),
'1', 8,
TO_CHAR (ou.mld_opdr_uren_datum, 'D'))
+ 2)
maandag_vandeweek,
ou.mld_opdr_uren_datum
datum_gewerkt,
ou.mld_opdr_uren_besteed
uren_besteed,
ou.mld_opdr_uren_status
uren_status
FROM mld_impropdr o, mld_opdr_uren ou, prs_perslid verzorger
WHERE ou.mld_impropdr_key = o.mld_impropdr_key
AND ou.prs_perslid_key = verzorger.prs_perslid_key;
-- UNION van de tabellen care_v_bestede_uren_all en care_v_improductieve_uren_all
-- Dus zowel de productieve als improductieve uren
CREATE OR REPLACE FORCE VIEW care_v_totaal_uren_all
AS
SELECT prs_perslid_key,
mld_melding_key,
mld_opdr_key AS opdracht_key,
'P' AS opdracht_type,
mld_opdr_uren_key,
jaar,
periodenr,
weeknr,
maandag_vandeweek,
datum_gewerkt,
uren_besteed,
uren_status
FROM care_v_bestede_uren_all
UNION ALL
SELECT prs_perslid_key,
NULL AS mld_melding_key,
mld_impropdr_key AS opdracht_key,
'I' AS opdracht_type,
mld_opdr_uren_key,
jaar,
periodenr,
weeknr,
maandag_vandeweek,
datum_gewerkt,
uren_besteed,
uren_status
FROM care_v_improductieve_uren_all;
-- Van alle teamleden (of ze nu opdracht hebben of niet) diegene die de weekbrief van deze(!) week niet hebben ingeleverd
-- Want ieder teamlid moet een weekbrief inleveren, en bij geen gemaakt uren moet 0 worden ingevuld.
-- Teamleden zonder opdrachten kunnen (in principe) ook niets invullen.
CREATE OR REPLACE FORCE VIEW care_v_missing_weekbrief_0
AS
SELECT tlid.prs_perslid_key
FROM care_v_totaal_uren_all uren, care_v_verzorger tlid
WHERE ( TRUNC (SYSDATE)
- DECODE (TO_CHAR (SYSDATE, 'D'),
'1', 8,
TO_CHAR (SYSDATE, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.uren_status < 2
AND uren.prs_perslid_key = tlid.prs_perslid_key
UNION
SELECT tlid.prs_perslid_key
FROM care_v_verzorger tlid
WHERE NOT EXISTS
(SELECT uren.prs_perslid_key
FROM care_v_totaal_uren_all uren
WHERE ( TRUNC (SYSDATE)
- DECODE (TO_CHAR (SYSDATE, 'D'),
'1', 8,
TO_CHAR (SYSDATE, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.prs_perslid_key = tlid.prs_perslid_key)
-- AND NVL (tlid.prs_verzorger_dienstverband, -1) <> 0
GROUP BY tlid.prs_perslid_key;
-- Van alle teamleden (of ze nu opdracht hebben of niet) diegene die de weekbrief van vorige(!) week niet hebben ingeleverd
CREATE OR REPLACE FORCE VIEW care_v_missing_weekbrief_1
AS
SELECT tlid.prs_perslid_key
FROM care_v_totaal_uren_all uren, care_v_verzorger tlid
WHERE ( TRUNC (SYSDATE - 7)
- DECODE (TO_CHAR (SYSDATE - 7, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 7, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.uren_status < 2
AND uren.prs_perslid_key = tlid.prs_perslid_key
UNION
SELECT tlid.prs_perslid_key
FROM care_v_verzorger tlid
WHERE NOT EXISTS
(SELECT uren.prs_perslid_key
FROM care_v_totaal_uren_all uren
WHERE ( TRUNC (SYSDATE - 7)
- DECODE (TO_CHAR (SYSDATE - 7, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 7, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.prs_perslid_key = tlid.prs_perslid_key)
-- AND NVL (tlid.prs_verzorger_dienstverband, -1) <> 0
GROUP BY tlid.prs_perslid_key;
-- Van alle teamleden (of ze nu opdracht hebben of niet) diegene die de weekbrief van 2(!) week geleden niet hebben ingeleverd
CREATE OR REPLACE FORCE VIEW care_v_missing_weekbrief_2
AS
SELECT tlid.prs_perslid_key
FROM care_v_totaal_uren_all uren, care_v_verzorger tlid
WHERE ( TRUNC (SYSDATE - 14)
- DECODE (TO_CHAR (SYSDATE - 14, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 14, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.uren_status < 2
AND uren.prs_perslid_key = tlid.prs_perslid_key
UNION
SELECT tlid.prs_perslid_key
FROM care_v_verzorger tlid
WHERE NOT EXISTS
(SELECT uren.prs_perslid_key
FROM care_v_totaal_uren_all uren
WHERE ( TRUNC (SYSDATE - 14)
- DECODE (TO_CHAR (SYSDATE - 14, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 14, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.prs_perslid_key = tlid.prs_perslid_key)
-- AND NVL (tlid.prs_verzorger_dienstverband, -1) <> 0
GROUP BY tlid.prs_perslid_key;
-- Van alle teamleden (of ze nu opdracht hebben of niet) diegene die de weekbrief van 3(!) week geleden niet hebben ingeleverd
CREATE OR REPLACE FORCE VIEW care_v_missing_weekbrief_3
AS
SELECT tlid.prs_perslid_key
FROM care_v_totaal_uren_all uren, care_v_verzorger tlid
WHERE ( TRUNC (SYSDATE - 21)
- DECODE (TO_CHAR (SYSDATE - 21, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 21, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.uren_status < 2
AND uren.prs_perslid_key = tlid.prs_perslid_key
UNION
SELECT tlid.prs_perslid_key
FROM care_v_verzorger tlid
WHERE NOT EXISTS
(SELECT uren.prs_perslid_key
FROM care_v_totaal_uren_all uren
WHERE ( TRUNC (SYSDATE - 21)
- DECODE (TO_CHAR (SYSDATE - 21, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 21, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.prs_perslid_key = tlid.prs_perslid_key)
-- AND NVL (tlid.prs_verzorger_dienstverband, -1) <> 0
GROUP BY tlid.prs_perslid_key;
-- Van alle teamleden (of ze nu opdracht hebben of niet) diegene die de weekbrief van 4(!) week geleden niet hebben ingeleverd
CREATE OR REPLACE FORCE VIEW care_v_missing_weekbrief_4
AS
SELECT tlid.prs_perslid_key
FROM care_v_totaal_uren_all uren, care_v_verzorger tlid
WHERE ( TRUNC (SYSDATE - 28)
- DECODE (TO_CHAR (SYSDATE - 28, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 28, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.uren_status < 2
AND uren.prs_perslid_key = tlid.prs_perslid_key
UNION
SELECT tlid.prs_perslid_key
FROM care_v_verzorger tlid
WHERE NOT EXISTS
(SELECT uren.prs_perslid_key
FROM care_v_totaal_uren_all uren
WHERE ( TRUNC (SYSDATE - 28)
- DECODE (TO_CHAR (SYSDATE - 28, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 28, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.prs_perslid_key = tlid.prs_perslid_key)
-- AND NVL (tlid.prs_verzorger_dienstverband, -1) <> 0
GROUP BY tlid.prs_perslid_key;
-- Van alle teamleden (of ze nu opdracht hebben of niet) diegene die de weekbrief van 5(!) week geleden niet hebben ingeleverd
CREATE OR REPLACE FORCE VIEW care_v_missing_weekbrief_5
AS
SELECT tlid.prs_perslid_key
FROM care_v_totaal_uren_all uren, care_v_verzorger tlid
WHERE ( TRUNC (SYSDATE - 35)
- DECODE (TO_CHAR (SYSDATE - 35, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 35, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.uren_status < 2
AND uren.prs_perslid_key = tlid.prs_perslid_key
UNION
SELECT tlid.prs_perslid_key
FROM care_v_verzorger tlid
WHERE NOT EXISTS
(SELECT uren.prs_perslid_key
FROM care_v_totaal_uren_all uren
WHERE ( TRUNC (SYSDATE - 35)
- DECODE (TO_CHAR (SYSDATE - 35, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 35, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.prs_perslid_key = tlid.prs_perslid_key)
-- AND NVL (tlid.prs_verzorger_dienstverband, -1) <> 0
GROUP BY tlid.prs_perslid_key;
-- Van alle teamleden (of ze nu opdracht hebben of niet) diegene die de weekbrief van 6(!) week geleden niet hebben ingeleverd
CREATE OR REPLACE FORCE VIEW care_v_missing_weekbrief_6
AS
SELECT tlid.prs_perslid_key
FROM care_v_totaal_uren_all uren, care_v_verzorger tlid
WHERE ( TRUNC (SYSDATE - 42)
- DECODE (TO_CHAR (SYSDATE - 42, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 42, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.uren_status < 2
AND uren.prs_perslid_key = tlid.prs_perslid_key
UNION
SELECT tlid.prs_perslid_key
FROM care_v_verzorger tlid
WHERE NOT EXISTS
(SELECT uren.prs_perslid_key
FROM care_v_totaal_uren_all uren
WHERE ( TRUNC (SYSDATE - 42)
- DECODE (TO_CHAR (SYSDATE - 42, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 42, 'D'))
+ 2) =
uren.maandag_vandeweek
AND uren.prs_perslid_key = tlid.prs_perslid_key)
-- AND NVL (tlid.prs_verzorger_dienstverband, -1) <> 0
GROUP BY tlid.prs_perslid_key;
-- Van alle teamleden (of ze nu opdracht hebben of niet) diegene die de weekbrief van de vorige periode niet hebben ingeleverd
CREATE OR REPLACE FORCE VIEW care_v_missing_weekbrief_all
(
prs_perslid_key,
jaar,
weeknr
)
AS
SELECT prs_perslid_key,
TO_NUMBER (TO_CHAR (SYSDATE, 'IYYY')),
TO_NUMBER (TO_CHAR (SYSDATE, 'IW'))
FROM care_v_missing_weekbrief_0
UNION
SELECT prs_perslid_key,
TO_NUMBER (TO_CHAR (SYSDATE - 7, 'IYYY')),
TO_NUMBER (TO_CHAR (SYSDATE - 7, 'IW'))
FROM care_v_missing_weekbrief_1
UNION
SELECT prs_perslid_key,
TO_NUMBER (TO_CHAR (SYSDATE - 14, 'IYYY')),
TO_NUMBER (TO_CHAR (SYSDATE - 14, 'IW'))
FROM care_v_missing_weekbrief_2
UNION
SELECT prs_perslid_key,
TO_NUMBER (TO_CHAR (SYSDATE - 21, 'IYYY')),
TO_NUMBER (TO_CHAR (SYSDATE - 21, 'IW'))
FROM care_v_missing_weekbrief_3
UNION
SELECT prs_perslid_key,
TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IYYY')),
TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IW'))
FROM care_v_missing_weekbrief_4
UNION
SELECT prs_perslid_key,
TO_NUMBER (TO_CHAR (SYSDATE - 35, 'IYYY')),
TO_NUMBER (TO_CHAR (SYSDATE - 35, 'IW'))
FROM care_v_missing_weekbrief_5
UNION
SELECT prs_perslid_key,
TO_NUMBER (TO_CHAR (SYSDATE - 42, 'IYYY')),
TO_NUMBER (TO_CHAR (SYSDATE - 42, 'IW'))
FROM care_v_missing_weekbrief_6
GROUP BY prs_perslid_key;
CREATE OR REPLACE FORCE VIEW care_v_ingevoerde_uren
AS
SELECT *
FROM care_v_totaal_uren_all
WHERE uren_status = 1;
CREATE OR REPLACE FORCE VIEW care_v_te_fiatteren_uren
AS
SELECT *
FROM care_v_totaal_uren_all
WHERE uren_status = 2;
CREATE OR REPLACE FORCE VIEW care_v_te_factureren_uren
AS
SELECT *
FROM care_v_bestede_uren_all
WHERE uren_status = 3;
CREATE OR REPLACE FORCE VIEW care_v_first_factuur_uren_ooit
AS
SELECT b.client_bsn, MIN (uur.datum_gewerkt) AS datum_eerste_keer_ooit
FROM care_v_beschikking_all b, care_v_te_factureren_uren uur
WHERE uur.mld_melding_key = b.mld_melding_key AND b.pgb IS NULL
GROUP BY client_bsn;
-- View die hieronder wordt gebruikt ter afsluiting van een periode, en waarvan de laatste uren van de laatste week
-- moeten worden goedgekeurd danwel dat een gehele periode goedgekeurd dient te worden
-- Dit zijn alle gemaakte uren die ter fiat zijn aangeboden of reeds zijn goedgekeurd.
CREATE OR REPLACE FORCE VIEW care_v_te_fiatfact_uren
AS
SELECT *
FROM care_v_bestede_uren_all
WHERE uren_status = 2 OR uren_status = 3;
CREATE OR REPLACE FORCE VIEW care_v_gefactureerde_uren
AS
SELECT *
FROM care_v_bestede_uren_all
WHERE uren_status = 4;
-- View per beschikking met de gemaakte uren (uren die ter goedkeuring zijn aangeboden danwel zijn goedgekeurd)
-- in deze(!) week
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_0
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, COALESCE (SUM (uren2.uren_besteed), -1)
FROM care_v_te_fiatfact_uren uren2
WHERE ( TRUNC (SYSDATE)
- DECODE (TO_CHAR (SYSDATE, 'D'), '1', 8, TO_CHAR (SYSDATE, 'D'))
+ 2) =
uren2.maandag_vandeweek
--WHERE to_number(to_char (SYSDATE,'IYYY')) = uren2.jaar
--AND to_number(to_char (SYSDATE,'IW')) = uren2.weeknr
GROUP BY mld_melding_key;
-- View per beschikking met de gemaakte uren (uren die ter goedkeuring zijn aangeboden danwel zijn goedgekeurd)
-- in de vorige(!) week
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_1
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, COALESCE (SUM (uren2.uren_besteed), -1)
FROM care_v_te_fiatfact_uren uren2
WHERE ( TRUNC (SYSDATE - 7)
- DECODE (TO_CHAR (SYSDATE - 7, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 7, 'D'))
+ 2) =
uren2.maandag_vandeweek
--WHERE to_number(to_char (SYSDATE-7,'IYYY')) = uren2.jaar
--AND to_number(to_char (SYSDATE-7,'IW')) = uren2.weeknr
GROUP BY mld_melding_key;
-- View per beschikking met de gemaakte uren (uren die ter goedkeuring zijn aangeboden danwel zijn goedgekeurd)
-- van 2(!) weken geleden
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_2
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, COALESCE (SUM (uren2.uren_besteed), -1)
FROM care_v_te_fiatfact_uren uren2
WHERE ( TRUNC (SYSDATE - 14)
- DECODE (TO_CHAR (SYSDATE - 14, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 14, 'D'))
+ 2) =
uren2.maandag_vandeweek
--WHERE (to_number(to_char (SYSDATE-14,'IYYY')) = uren2.jaar)
--AND (to_number(to_char (SYSDATE-14,'IW')) = uren2.weeknr)
GROUP BY mld_melding_key;
-- View per beschikking met de gemaakte uren (uren die ter goedkeuring zijn aangeboden danwel zijn goedgekeurd)
-- in de vorige 2(!) weken
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_12
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, SUM (uren_besteed)
FROM (SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_1
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_2)
GROUP BY mld_melding_key;
-- View per beschikking met de gemaakte uren (uren die ter goedkeuring zijn aangeboden danwel zijn goedgekeurd)
-- van 3(!) weken geleden
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_3
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, COALESCE (SUM (uren2.uren_besteed), -1)
FROM care_v_te_fiatfact_uren uren2
WHERE ( TRUNC (SYSDATE - 21)
- DECODE (TO_CHAR (SYSDATE - 21, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 21, 'D'))
+ 2) =
uren2.maandag_vandeweek
--WHERE (to_number(to_char (SYSDATE-21,'IYYY')) = uren2.jaar)
--AND (to_number(to_char (SYSDATE-21,'IW')) = uren2.weeknr)
GROUP BY mld_melding_key;
-- View per beschikking met de gemaakte uren (uren die ter goedkeuring zijn aangeboden danwel zijn goedgekeurd)
-- in de vorige 3(!) weken
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_123
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, SUM (uren_besteed)
FROM (SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_1
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_2
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_3)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_4
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, COALESCE (SUM (uren2.uren_besteed), -1)
FROM care_v_te_fiatfact_uren uren2
WHERE ( TRUNC (SYSDATE - 28)
- DECODE (TO_CHAR (SYSDATE - 28, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 28, 'D'))
+ 2) =
uren2.maandag_vandeweek
--WHERE (to_number(to_char (SYSDATE-28,'IYYY')) = uren2.jaar)
--AND (to_number(to_char (SYSDATE-28,'IW')) = uren2.weeknr)
GROUP BY mld_melding_key;
-- View per beschikking met de gemaakte uren (uren die ter goedkeuring zijn aangeboden danwel zijn goedgekeurd)
-- in de vorige 3(!) weken
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_1234
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, SUM (uren_besteed)
FROM (SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_1
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_2
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_3
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_4)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_5
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, COALESCE (SUM (uren2.uren_besteed), -1)
FROM care_v_te_fiatfact_uren uren2
WHERE ( TRUNC (SYSDATE - 35)
- DECODE (TO_CHAR (SYSDATE - 35, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 35, 'D'))
+ 2) =
uren2.maandag_vandeweek
--WHERE (to_number(to_char (SYSDATE-35,'IYYY')) = uren2.jaar)
--AND (to_number(to_char (SYSDATE-35,'IW')) = uren2.weeknr)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_2345
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, SUM (uren_besteed)
FROM (SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_2
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_3
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_4
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_5)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_6
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, COALESCE (SUM (uren2.uren_besteed), -1)
FROM care_v_te_fiatfact_uren uren2
WHERE ( TRUNC (SYSDATE - 42)
- DECODE (TO_CHAR (SYSDATE - 42, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 42, 'D'))
+ 2) =
uren2.maandag_vandeweek
--WHERE (to_number(to_char (SYSDATE-42,'IYYY')) = uren2.jaar)
--AND (to_number(to_char (SYSDATE-42,'IW')) = uren2.weeknr)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_3456
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, SUM (uren_besteed)
FROM (SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_3
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_4
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_5
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_6)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_7
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, COALESCE (SUM (uren2.uren_besteed), -1)
FROM care_v_te_fiatfact_uren uren2
WHERE ( TRUNC (SYSDATE - 49)
- DECODE (TO_CHAR (SYSDATE - 49, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 49, 'D'))
+ 2) =
uren2.maandag_vandeweek
--WHERE (to_number(to_char (SYSDATE-42,'IYYY')) = uren2.jaar)
--AND (to_number(to_char (SYSDATE-42,'IW')) = uren2.weeknr)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_gemaakte_uren_4567
(
mld_melding_key,
uren_besteed
)
AS
SELECT mld_melding_key, SUM (uren_besteed)
FROM (SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_4
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_5
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_6
UNION ALL
SELECT mld_melding_key, uren_besteed FROM care_v_gemaakte_uren_7)
GROUP BY mld_melding_key;
-- View met lopende beschikkingen in de vorige 4(!) weken met gesommeerd hun indicatieuren
CREATE OR REPLACE FORCE VIEW care_v_indicatie_uren_1234
(
mld_melding_key,
uren_beschikking
)
AS
SELECT mld_melding_key, SUM (uren_beschikking)
FROM (WITH
XX
AS
(SELECT b.mld_melding_key,
b.uren_beschikking,
beschikking_maandag_van,
beschikking_maandag_tot
FROM care_v_beschikking_all b)
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 7 >= beschikking_maandag_van
AND SYSDATE - 7 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 14 >= beschikking_maandag_van
AND SYSDATE - 14 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 21 >= beschikking_maandag_van
AND SYSDATE - 21 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 28 >= beschikking_maandag_van
AND SYSDATE - 28 <= beschikking_maandag_tot)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_indicatie_uren_2345
(
mld_melding_key,
uren_beschikking
)
AS
SELECT mld_melding_key, SUM (uren_beschikking)
FROM (WITH
XX
AS
(SELECT b.mld_melding_key,
b.uren_beschikking,
beschikking_maandag_van,
beschikking_maandag_tot
FROM care_v_beschikking_all b)
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 14 >= beschikking_maandag_van
AND SYSDATE - 14 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 21 >= beschikking_maandag_van
AND SYSDATE - 21 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 28 >= beschikking_maandag_van
AND SYSDATE - 28 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 35 >= beschikking_maandag_van
AND SYSDATE - 35 <= beschikking_maandag_tot)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_indicatie_uren_3456
(
mld_melding_key,
uren_beschikking
)
AS
SELECT mld_melding_key, SUM (uren_beschikking)
FROM (WITH
XX
AS
(SELECT b.mld_melding_key,
b.uren_beschikking,
beschikking_maandag_van,
beschikking_maandag_tot
FROM care_v_beschikking_all b)
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 21 >= beschikking_maandag_van
AND SYSDATE - 21 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 28 >= beschikking_maandag_van
AND SYSDATE - 28 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 35 >= beschikking_maandag_van
AND SYSDATE - 35 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 42 >= beschikking_maandag_van
AND SYSDATE - 42 <= beschikking_maandag_tot)
GROUP BY mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_indicatie_uren_4567
(
mld_melding_key,
uren_beschikking
)
AS
SELECT mld_melding_key, SUM (uren_beschikking)
FROM (WITH
XX
AS
(SELECT b.mld_melding_key,
b.uren_beschikking,
beschikking_maandag_van,
beschikking_maandag_tot
FROM care_v_beschikking_all b)
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 28 >= beschikking_maandag_van
AND SYSDATE - 28 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 35 >= beschikking_maandag_van
AND SYSDATE - 35 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 42 >= beschikking_maandag_van
AND SYSDATE - 42 <= beschikking_maandag_tot
UNION ALL
SELECT mld_melding_key, uren_beschikking
FROM XX
WHERE SYSDATE - 49 >= beschikking_maandag_van
AND SYSDATE - 49 <= beschikking_maandag_tot)
GROUP BY mld_melding_key;
-- View met lopende beschikkingen met een verschil tussen indicatie-uren en gemaakte uren van de vorige 4(!) weken
CREATE OR REPLACE FORCE VIEW care_v_conflict_uren_1234
AS
SELECT iu.mld_melding_key, iu.uren_beschikking, gu.uren_besteed
FROM care_v_indicatie_uren_1234 iu, care_v_gemaakte_uren_1234 gu
WHERE iu.mld_melding_key = gu.mld_melding_key;
-- View met lopende beschikkingen met een verschil tussen indicatie-uren en gemaakte uren van de periode (= 4(!) weken)
-- vanaf niet vorige week en 3 ervoor, maar vanaf 2 week geleden en 3 week ervoor
CREATE OR REPLACE FORCE VIEW care_v_conflict_uren_2345
AS
SELECT iu.mld_melding_key, iu.uren_beschikking, gu.uren_besteed
FROM care_v_indicatie_uren_2345 iu, care_v_gemaakte_uren_2345 gu
WHERE iu.mld_melding_key = gu.mld_melding_key;
-- View met lopende beschikkingen met een verschil tussen indicatie-uren en gemaakte uren van de periode (= 4(!) weken)
-- vanaf niet 2 week geleden en 3 ervoor, maar vanaf 3 week geleden en 3 week ervoor
CREATE OR REPLACE FORCE VIEW care_v_conflict_uren_3456
AS
SELECT iu.mld_melding_key, iu.uren_beschikking, gu.uren_besteed
FROM care_v_indicatie_uren_3456 iu, care_v_gemaakte_uren_3456 gu
WHERE iu.mld_melding_key = gu.mld_melding_key;
-- View met lopende beschikkingen met een verschil tussen indicatie-uren en gemaakte uren van de periode (= 4(!) weken)
-- vanaf niet 2 week geleden en 3 ervoor, maar vanaf 4 week geleden en 3 week ervoor
CREATE OR REPLACE FORCE VIEW care_v_conflict_uren_4567
AS
SELECT iu.mld_melding_key, iu.uren_beschikking, gu.uren_besteed
FROM care_v_indicatie_uren_4567 iu, care_v_gemaakte_uren_4567 gu
WHERE iu.mld_melding_key = gu.mld_melding_key;
-- Om de conflicten van een periode in detail te kunnen analyseren: wie heeft in welke week de uren gemaakt.
-- Eerst een hulp-view voor de rapportage, vandaar de infix _tmp_
CREATE OR REPLACE FORCE VIEW care_v_tmp_conflict_uren_1234
(
periode,
melding,
gemeente,
beschikkingsnr,
client,
uren_totaal,
uren_besteed,
indicatie_uren,
verzorger,
jaar,
weeknr,
datum,
week_uren_gepland,
week_uren_besteed
)
AS
SELECT TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IW'))
|| ' t/m '
|| TO_NUMBER (TO_CHAR (SYSDATE - 7, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 7, 'IW')),
c.mld_melding_key,
b.gemeente_omschrijving,
b.beschikking_nr,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
c.uren_beschikking,
c.uren_besteed,
b.uren_beschikking,
uur.prs_perslid_naam
|| ','
|| uur.prs_perslid_voorletters
|| ' '
|| uur.prs_perslid_tussenvoegsel,
uur.jaar,
uur.weeknr,
uur.datum_gewerkt,
uur.uren_opdracht,
uur.uren_besteed
FROM care_v_conflict_uren_1234 c,
care_v_beschikking_all b,
care_v_bestede_uren_all uur
WHERE c.mld_melding_key = b.mld_melding_key
AND uur.mld_melding_key = b.mld_melding_key
AND ( TRUNC (SYSDATE - 28)
- DECODE (TO_CHAR (SYSDATE - 28, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 28, 'D'))
+ 2) <=
uur.maandag_vandeweek
AND ( TRUNC (SYSDATE - 7)
- DECODE (TO_CHAR (SYSDATE - 7, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 7, 'D'))
+ 2) >=
uur.maandag_vandeweek
AND (uur.uren_status = 2 OR uur.uren_status = 3)
UNION
SELECT TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IW'))
|| ' t/m '
|| TO_NUMBER (TO_CHAR (SYSDATE - 7, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 7, 'IW')),
b.mld_melding_key,
b.gemeente_omschrijving,
b.beschikking_nr,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
iu.uren_beschikking,
0,
b.uren_beschikking,
'-',
NULL,
NULL,
NULL,
NULL,
0
FROM care_v_indicatie_uren_1234 iu, care_v_beschikking_all b
WHERE iu.mld_melding_key = b.mld_melding_key
AND NOT EXISTS
(SELECT *
FROM care_v_gemaakte_uren_1234 gu
WHERE gu.mld_melding_key = iu.mld_melding_key);
-- Rapportage view A (postfix A): op periode-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_1234a
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed)
FROM care_v_tmp_conflict_uren_1234
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client;
-- Rapportage view B (postfix B): op periode + week-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_1234b
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal,
indicatie_uren,
fclt_f_jaar_weeknr,
uren_besteed_week
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed),
MIN (indicatie_uren),
jaar || '-' || TO_CHAR (weeknr, '09'),
SUM (week_uren_besteed)
FROM care_v_tmp_conflict_uren_1234
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client,
jaar,
weeknr;
-- Rapportage view C (postfix C): op periode + week + verzorger -nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_1234c
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal,
indicatie_uren,
fclt_f_jaar_weeknr,
fclt_f_verzorger,
uren_gepland_week,
uren_besteed_week
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed),
MIN (indicatie_uren),
jaar || '-' || TO_CHAR (weeknr, '09'),
verzorger,
MIN (week_uren_gepland),
SUM (week_uren_besteed)
FROM care_v_tmp_conflict_uren_1234
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client,
jaar,
weeknr,
verzorger;
-- Om de conflicten van een periode in detail te kunnen analyseren: wie heeft in welke week de uren gemaakt.
-- Eerst een hulp-view voor de rapportage, vandaar de infix _tmp_
CREATE OR REPLACE FORCE VIEW care_v_tmp_conflict_uren_2345
(
periode,
melding,
gemeente,
beschikkingsnr,
client,
uren_totaal,
uren_besteed,
indicatie_uren,
verzorger,
jaar,
weeknr,
datum,
week_uren_gepland,
week_uren_besteed
)
AS
SELECT TO_NUMBER (TO_CHAR (SYSDATE - 35, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 35, 'IW'))
|| ' t/m '
|| TO_NUMBER (TO_CHAR (SYSDATE - 14, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 14, 'IW')),
c.mld_melding_key,
b.gemeente_omschrijving,
b.beschikking_nr,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
c.uren_beschikking,
c.uren_besteed,
b.uren_beschikking,
uur.prs_perslid_naam
|| ','
|| uur.prs_perslid_voorletters
|| ' '
|| uur.prs_perslid_tussenvoegsel,
uur.jaar,
uur.weeknr,
uur.datum_gewerkt,
uur.uren_opdracht,
uur.uren_besteed
FROM care_v_conflict_uren_2345 c,
care_v_beschikking_all b,
care_v_bestede_uren_all uur
WHERE c.mld_melding_key = b.mld_melding_key
AND uur.mld_melding_key = b.mld_melding_key
AND ( TRUNC (SYSDATE - 35)
- DECODE (TO_CHAR (SYSDATE - 35, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 35, 'D'))
+ 2) <=
uur.maandag_vandeweek
AND ( TRUNC (SYSDATE - 14)
- DECODE (TO_CHAR (SYSDATE - 14, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 14, 'D'))
+ 2) >=
uur.maandag_vandeweek
AND (uur.uren_status = 2 OR uur.uren_status = 3)
UNION
SELECT TO_NUMBER (TO_CHAR (SYSDATE - 35, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 35, 'IW'))
|| ' t/m '
|| TO_NUMBER (TO_CHAR (SYSDATE - 14, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 14, 'IW')),
b.mld_melding_key,
b.gemeente_omschrijving,
b.beschikking_nr,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
iu.uren_beschikking,
0,
b.uren_beschikking,
'-',
NULL,
NULL,
NULL,
NULL,
0
FROM care_v_indicatie_uren_2345 iu, care_v_beschikking_all b
WHERE iu.mld_melding_key = b.mld_melding_key
AND NOT EXISTS
(SELECT *
FROM care_v_gemaakte_uren_2345 gu
WHERE gu.mld_melding_key = iu.mld_melding_key);
-- Rapportage view A (postfix A): op periode-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_2345a
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed)
FROM care_v_tmp_conflict_uren_2345
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client;
-- Rapportage view B (postfix B): op periode + week-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_2345b
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal,
indicatie_uren,
fclt_f_jaar_weeknr,
uren_besteed_week
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed),
MIN (indicatie_uren),
jaar || '-' || TO_CHAR (weeknr, '09'),
SUM (week_uren_besteed)
FROM care_v_tmp_conflict_uren_2345
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client,
jaar,
weeknr;
-- Rapportage view C (postfix C): op periode + week + verzorger -nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_2345c
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal,
indicatie_uren,
fclt_f_jaar_weeknr,
fclt_f_verzorger,
uren_gepland_week,
uren_besteed_week
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed),
MIN (indicatie_uren),
jaar || '-' || TO_CHAR (weeknr, '09'),
verzorger,
MIN (week_uren_gepland),
SUM (week_uren_besteed)
FROM care_v_tmp_conflict_uren_2345
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client,
jaar,
weeknr,
verzorger;
-- Om de conflicten van een periode in detail te kunnen analyseren: wie heeft in welke week de uren gemaakt.
-- Eerst een hulp-view voor de rapportage, vandaar de infix _tmp_
CREATE OR REPLACE FORCE VIEW care_v_tmp_conflict_uren_3456
(
periode,
melding,
gemeente,
beschikkingsnr,
client,
uren_totaal,
uren_besteed,
indicatie_uren,
verzorger,
jaar,
weeknr,
datum,
week_uren_gepland,
week_uren_besteed
)
AS
SELECT TO_NUMBER (TO_CHAR (SYSDATE - 42, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 42, 'IW'))
|| ' t/m '
|| TO_NUMBER (TO_CHAR (SYSDATE - 21, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 21, 'IW')),
c.mld_melding_key,
b.gemeente_omschrijving,
b.beschikking_nr,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
c.uren_beschikking,
c.uren_besteed,
b.uren_beschikking,
uur.prs_perslid_naam
|| ','
|| uur.prs_perslid_voorletters
|| ' '
|| uur.prs_perslid_tussenvoegsel,
uur.jaar,
uur.weeknr,
uur.datum_gewerkt,
uur.uren_opdracht,
uur.uren_besteed
FROM care_v_conflict_uren_3456 c,
care_v_beschikking_all b,
care_v_bestede_uren_all uur
WHERE c.mld_melding_key = b.mld_melding_key
AND uur.mld_melding_key = b.mld_melding_key
AND ( TRUNC (SYSDATE - 42)
- DECODE (TO_CHAR (SYSDATE - 42, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 42, 'D'))
+ 2) <=
uur.maandag_vandeweek
AND ( TRUNC (SYSDATE - 21)
- DECODE (TO_CHAR (SYSDATE - 21, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 21, 'D'))
+ 2) >=
uur.maandag_vandeweek
AND (uur.uren_status = 2 OR uur.uren_status = 3)
UNION
SELECT TO_NUMBER (TO_CHAR (SYSDATE - 42, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 42, 'IW'))
|| ' t/m '
|| TO_NUMBER (TO_CHAR (SYSDATE - 21, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 21, 'IW')),
b.mld_melding_key,
b.gemeente_omschrijving,
b.beschikking_nr,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
iu.uren_beschikking,
0,
b.uren_beschikking,
'-',
NULL,
NULL,
NULL,
NULL,
0
FROM care_v_indicatie_uren_3456 iu, care_v_beschikking_all b
WHERE iu.mld_melding_key = b.mld_melding_key
AND NOT EXISTS
(SELECT *
FROM care_v_gemaakte_uren_3456 gu
WHERE gu.mld_melding_key = iu.mld_melding_key);
-- Rapportage view A (postfix A): op periode-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_3456a
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed)
FROM care_v_tmp_conflict_uren_3456
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client;
-- Rapportage view B (postfix B): op periode + week-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_3456b
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal,
indicatie_uren,
fclt_f_jaar_weeknr,
uren_besteed_week
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed),
MIN (indicatie_uren),
jaar || '-' || TO_CHAR (weeknr, '09'),
SUM (week_uren_besteed)
FROM care_v_tmp_conflict_uren_3456
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client,
jaar,
weeknr;
-- Rapportage view C (postfix C): op periode + week + verzorger -nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_3456c
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal,
indicatie_uren,
fclt_f_jaar_weeknr,
fclt_f_verzorger,
uren_gepland_week,
uren_besteed_week
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed),
MIN (indicatie_uren),
jaar || '-' || TO_CHAR (weeknr, '09'),
verzorger,
MIN (week_uren_gepland),
SUM (week_uren_besteed)
FROM care_v_tmp_conflict_uren_3456
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client,
jaar,
weeknr,
verzorger;
-- Om de conflicten van een periode in detail te kunnen analyseren: wie heeft in welke week de uren gemaakt.
-- Eerst een hulp-view voor de rapportage, vandaar de infix _tmp_
CREATE OR REPLACE FORCE VIEW care_v_tmp_conflict_uren_4567
(
periode,
melding,
gemeente,
beschikkingsnr,
client,
uren_totaal,
uren_besteed,
indicatie_uren,
verzorger,
jaar,
weeknr,
datum,
week_uren_gepland,
week_uren_besteed
)
AS
SELECT TO_NUMBER (TO_CHAR (SYSDATE - 49, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 49, 'IW'))
|| ' t/m '
|| TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IW')),
c.mld_melding_key,
b.gemeente_omschrijving,
b.beschikking_nr,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
c.uren_beschikking,
c.uren_besteed,
b.uren_beschikking,
uur.prs_perslid_naam
|| ','
|| uur.prs_perslid_voorletters
|| ' '
|| uur.prs_perslid_tussenvoegsel,
uur.jaar,
uur.weeknr,
uur.datum_gewerkt,
uur.uren_opdracht,
uur.uren_besteed
FROM care_v_conflict_uren_4567 c,
care_v_beschikking_all b,
care_v_bestede_uren_all uur
WHERE c.mld_melding_key = b.mld_melding_key
AND uur.mld_melding_key = b.mld_melding_key
AND ( TRUNC (SYSDATE - 49)
- DECODE (TO_CHAR (SYSDATE - 49, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 49, 'D'))
+ 2) <=
uur.maandag_vandeweek
AND ( TRUNC (SYSDATE - 28)
- DECODE (TO_CHAR (SYSDATE - 28, 'D'),
'1', 8,
TO_CHAR (SYSDATE - 28, 'D'))
+ 2) >=
uur.maandag_vandeweek
AND (uur.uren_status = 2 OR uur.uren_status = 3)
UNION
SELECT TO_NUMBER (TO_CHAR (SYSDATE - 49, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 49, 'IW'))
|| ' t/m '
|| TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IYYY'))
|| '-'
|| TO_NUMBER (TO_CHAR (SYSDATE - 28, 'IW')),
b.mld_melding_key,
b.gemeente_omschrijving,
b.beschikking_nr,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
iu.uren_beschikking,
0,
b.uren_beschikking,
'-',
NULL,
NULL,
NULL,
NULL,
0
FROM care_v_indicatie_uren_4567 iu, care_v_beschikking_all b
WHERE iu.mld_melding_key = b.mld_melding_key
AND NOT EXISTS
(SELECT *
FROM care_v_gemaakte_uren_4567 gu
WHERE gu.mld_melding_key = iu.mld_melding_key);
-- Rapportage view A (postfix A): op periode-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_4567a
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed)
FROM care_v_tmp_conflict_uren_4567
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client;
-- Rapportage view B (postfix B): op periode + week-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_4567b
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal,
indicatie_uren,
fclt_f_jaar_weeknr,
uren_besteed_week
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed),
MIN (indicatie_uren),
jaar || '-' || TO_CHAR (weeknr, '09'),
SUM (week_uren_besteed)
FROM care_v_tmp_conflict_uren_4567
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client,
jaar,
weeknr;
-- Rapportage view C (postfix C): op periode + week + verzorger -nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_4567c
(
periode,
melding,
fclt_f_gemeente,
beschikking,
fclt_f_client,
uren_gepland_totaal,
uren_besteed_totaal,
indicatie_uren,
fclt_f_jaar_weeknr,
fclt_f_verzorger,
uren_gepland_week,
uren_besteed_week
)
AS
SELECT periode,
TO_CHAR (melding),
gemeente,
beschikkingsnr,
client,
MIN (uren_totaal),
MIN (uren_besteed),
MIN (indicatie_uren),
jaar || '-' || TO_CHAR (weeknr, '09'),
verzorger,
MIN (week_uren_gepland),
SUM (week_uren_besteed)
FROM care_v_tmp_conflict_uren_4567
GROUP BY periode,
melding,
gemeente,
beschikkingsnr,
client,
jaar,
weeknr,
verzorger;
-- Let op de notificatie-key 21 (=notificatie aan teamleiders/backoffice van team) in onderstaande view
CREATE OR REPLACE FORCE VIEW care_v_noti_teamleider
(
code,
sender,
receiver,
text,
key,
par1,
par2,
xkey
)
AS
SELECT sn.fac_srtnotificatie_code,
fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key),
tl.prs_perslid_key,
sn.fac_srtnotificatie_oms,
m.mld_melding_key,
m.mld_stdmelding_key,
m.mld_melding_omschrijving,
NULL
FROM mld_melding m,
mld_stdmelding std,
prs_perslid client,
care_v_teamleider tl,
fac_notificatie_job nj,
fac_srtnotificatie sn
WHERE sn.fac_srtnotificatie_code = 'CUST01'
AND m.mld_melding_status = 2
AND nj.fac_notificatie_job_key = 21
AND client.prs_perslid_key = m.prs_perslid_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND tl.ins_discipline_key = std.mld_ins_discipline_key
AND fac.gettrackingdate ('MLDNEW', m.mld_melding_key) >=
nj.fac_notificatie_job_nextrun
- (nj.fac_notificatie_job_interval / 24);
-- Let op de kenmerk-key 3 (= indicatie-uren van de beschikking) in onderstaande view
CREATE OR REPLACE FORCE VIEW care_v_mld_match_opd
AS
SELECT m.mld_melding_key,
COUNT (o.mld_opdr_key) aant_opdr,
km.mld_kenmerkmelding_waarde uren_beschikking,
COALESCE (SUM (o.mld_opdr_uren), 0) uren_opdracht
FROM mld_melding m, mld_opdr o, mld_kenmerkmelding km
WHERE m.mld_melding_key = o.mld_melding_key(+)
AND km.mld_melding_key = m.mld_melding_key
AND m.mld_melding_status IN (4, 7)
AND km.mld_kenmerkmelding_verwijder IS NULL
AND mld_kenmerk_key = 3
AND o.mld_statusopdr_key(+) <> 1
AND o.mld_statusopdr_key(+) <> 6
GROUP BY m.mld_melding_key, km.mld_kenmerkmelding_waarde;
CREATE OR REPLACE FORCE VIEW care_v_mld_urenconflict_opd
AS
SELECT *
FROM care_v_mld_match_opd mmo
WHERE mmo.uren_beschikking <> mmo.uren_opdracht;
CREATE OR REPLACE FORCE VIEW care_v_noti_urenconflict
(
code,
sender,
receiver,
text,
key,
par1,
par2,
xkey
)
AS
SELECT sn.fac_srtnotificatie_code,
c.prs_perslid_key,
c.prs_perslid_key,
sn.fac_srtnotificatie_oms,
mmo.mld_melding_key,
NULL,
NULL,
NULL
FROM care_v_mld_match_opd mmo,
fac_srtnotificatie sn,
care_v_controller c
WHERE sn.fac_srtnotificatie_code = 'CUST02'
AND mmo.mld_melding_key =
(SELECT MIN (mld_melding_key) FROM care_v_mld_urenconflict_opd);
-- Let op: mld_melding hieronder kan NULL zijn (dan zijn het kosten mbt improductieve uren),
-- en anders is mld_melding_key gevuld, en zijn de kosten gerelateerd aan beschikking.
CREATE OR REPLACE FORCE VIEW care_v_onkosten_all
(
prs_perslid_key,
bsn_verzorger,
verzorger_naam,
prs_verzorger_voorletters,
prs_verzorger_tussenvoegsel,
mld_kosten_key,
mld_kosten_code,
mld_kosten_omschrijving,
mld_opdruren_kosten_besteed,
mld_kosten_kosten,
mld_melding_key,
datum,
status
)
AS
SELECT v.prs_perslid_key,
v.verzorger_bsn,
v.prs_verzorger_naam,
v.prs_verzorger_voorletters,
v.prs_verzorger_tussenvoegsel,
k.mld_kosten_key,
k.mld_kosten_code,
k.mld_kosten_omschrijving,
ouk.mld_opdruren_kosten_besteed,
k.mld_kosten_kosten,
uur.mld_melding_key,
uur.datum_gewerkt,
uur.uren_status
FROM care_v_totaal_uren_all uur,
care_v_verzorger v,
mld_opdruren_kosten ouk,
mld_kosten k
WHERE uur.prs_perslid_key = v.prs_perslid_key
AND uur.mld_opdr_uren_key = ouk.mld_opdr_uren_key
AND ouk.mld_kosten_key = k.mld_kosten_key
AND k.mld_kosten_verwijder IS NULL;
--
--
--
-- Rapportages
--
--
--
-- Overzicht van je teamgenoten, die de VERZORGER kan bekijken.
CREATE OR REPLACE FORCE VIEW care_v_rap_mijnteamgenoten
(
fclt_3d_discipline_key,
medewerker,
mv,
meisjesnaam,
adres,
postcode,
woonplaats,
huistelefoon,
telefoonwerk,
mobiel,
email
)
AS
SELECT v.team_key,
v.prs_verzorger_naam
|| ','
|| v.prs_verzorger_voorletters
|| ' '
|| v.prs_verzorger_tussenvoegsel
|| '('
|| COALESCE (v.prs_verzorger_voornaam, '-')
|| ')',
v.verzorger_mv,
v.verzorger_meisjesnaam,
v.verzorger_adres || ' ' || v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_thuis,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
v.prs_verzorger_email
FROM care_v_verzorger_in_teams v;
CREATE OR REPLACE FORCE VIEW care_v_rap_personeel
(
fclt_f_team,
bsn,
fclt_f_medewerker,
fclt_f_mv,
meisjesnaam,
geboortedatum,
leeftijd,
adres,
postcode,
fclt_f_woonplaats,
huistelefoon,
telefoonwerk,
mobiel,
email,
contracturen,
fclt_f_jaar_indienst,
datum_indienst,
datum_uitdienst,
verwijderd
)
AS
SELECT v.team_naam,
v.verzorger_bsn,
v.prs_verzorger_naam
|| ','
|| v.prs_verzorger_voorletters
|| ' '
|| v.prs_verzorger_tussenvoegsel
|| '('
|| COALESCE (v.prs_verzorger_voornaam, '-')
|| ')',
v.verzorger_mv,
v.verzorger_meisjesnaam,
v.verzorger_geboortedatum,
DECODE (
verzorger_geboortedatum,
NULL, '',
TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy'))
- TO_NUMBER (SUBSTR (verzorger_geboortedatum, 7, 4))),
v.verzorger_adres || ' ' || v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_thuis,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
v.prs_verzorger_email,
v.prs_verzorger_dienstverband,
TO_CHAR (v.prs_verzorger_ingangsdatum, 'YYYY'),
TO_CHAR (v.prs_verzorger_ingangsdatum, 'DD-MM-YYYY'),
TO_CHAR (v.prs_verzorger_einddatum, 'DD-MM-YYYY'),
DECODE (v.prs_verzorger_verwijder, NULL, 'Nee', 'Ja')
FROM care_v_verzorger_in_teams v;
CREATE OR REPLACE FORCE VIEW care_v_rap_missing_weekbrief
(
fclt_f_weeknr,
fclt_f_team,
fclt_3d_discipline_key,
fclt_f_medewerker,
indienst,
uitdienst,
contracturen,
meisjesnaam,
adres,
postcode,
woonplaats,
huistelefoon,
telefoonwerk,
mobiel,
email
)
AS
SELECT TO_CHAR (mw.jaar) || '-' || TO_CHAR (mw.weeknr, '00'),
v.team_naam,
v.team_key,
v.prs_verzorger_naam
|| ','
|| v.prs_verzorger_voorletters
|| ' '
|| v.prs_verzorger_tussenvoegsel
|| '('
|| COALESCE (v.prs_verzorger_voornaam, '-')
|| ')',
TO_CHAR (v.prs_verzorger_ingangsdatum, 'dd-mm-yyyy'),
TO_CHAR (v.prs_verzorger_einddatum, 'dd-mm-yyyy'),
TO_CHAR (prs_verzorger_dienstverband),
v.verzorger_meisjesnaam,
v.verzorger_adres || ' ' || v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_thuis,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
v.prs_verzorger_email
FROM care_v_verzorger_in_teams v, care_v_missing_weekbrief_all mw
WHERE v.prs_perslid_key = mw.prs_perslid_key;
CREATE OR REPLACE FORCE VIEW care_v_rap_clienten
(
fclt_f_clientnr,
fclt_f_bsn,
fclt_f_naam,
tussenvoegsel,
voorletters,
geboortejaar,
adres,
huisnr,
postcode,
fclt_f_woonplaats,
telefoon,
mobiel,
bijzonderheden
)
AS
SELECT prs_client_nr,
client_bsn,
prs_client_naam,
prs_client_tussenvoegsel,
prs_client_voorletters,
client_geboortedatum,
client_adres,
client_huisnr,
client_postcode,
client_woonplaats,
client_telefoon_thuis,
prs_client_mobiel,
client_bijzonderheden
FROM care_v_client;
-- Alle beschikkingen in de toekomst (beschikking_datum_tot >= SYSDATE)
CREATE OR REPLACE FORCE VIEW care_v_rap_beschik_aflopend
(
einddatum,
aantal_dagen_te_gaan,
looptijd_dagen,
fclt_f_gemeente,
melding_nr,
client,
bsn,
product,
uren_beschikking,
fclt_3d_discipline_key,
fclt_f_team
)
AS
SELECT beschikking_datum_tot,
FLOOR (beschikking_datum_tot - SYSDATE + 1),
beschikking_datum_tot - beschikking_datum_van + 1,
gemeente_omschrijving,
TO_CHAR (mld_melding_key),
prs_client_naam
|| ','
|| prs_client_voorletters
|| ' '
|| prs_client_tussenvoegsel,
client_bsn,
product,
uren_beschikking,
ins_discipline_key,
ins_discipline_omschrijving
FROM care_v_beschikking_all b1
WHERE beschikking_datum_tot >= SYSDATE
AND mld_melding_status NOT IN (1, 5, 6)
AND NOT EXISTS
(SELECT 'x'
FROM care_v_beschikking_all b2
WHERE b2.prs_client_key = b1.prs_client_key
AND b2.beschikking_datum_van =
b1.beschikking_datum_tot + 1);
-- Totaliseren van conflict-uren variant A: op periode-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_a
(
fclt_f_periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_periode,
uren_besteed,
fclt_f_status
)
AS
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_1234a
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_2345a
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_3456a
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_4567a;
-- Totaliseren van conflict-uren variant B: op periode + week-nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_b
(
fclt_f_periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_periode,
uren_besteed,
fclt_f_weeknr,
indicatie,
bestede_uren_week,
fclt_f_status,
fclt_f_weekstatus
)
AS
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
fclt_f_jaar_weeknr,
indicatie_uren,
ROUND (uren_besteed_week, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END,
CASE
WHEN indicatie_uren < ROUND (uren_besteed_week, 2)
THEN
'Te veel uren besteed'
WHEN indicatie_uren > ROUND (uren_besteed_week, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_1234b
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
fclt_f_jaar_weeknr,
indicatie_uren,
ROUND (uren_besteed_week, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END,
CASE
WHEN indicatie_uren < ROUND (uren_besteed_week, 2)
THEN
'Te veel uren besteed'
WHEN indicatie_uren > ROUND (uren_besteed_week, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_2345b
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
fclt_f_jaar_weeknr,
indicatie_uren,
ROUND (uren_besteed_week, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END,
CASE
WHEN indicatie_uren < ROUND (uren_besteed_week, 2)
THEN
'Te veel uren besteed'
WHEN indicatie_uren > ROUND (uren_besteed_week, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_3456b
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
fclt_f_jaar_weeknr,
indicatie_uren,
ROUND (uren_besteed_week, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END,
CASE
WHEN indicatie_uren < ROUND (uren_besteed_week, 2)
THEN
'Te veel uren besteed'
WHEN indicatie_uren > ROUND (uren_besteed_week, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_4567b;
-- Totaliseren van conflict-uren variant C: op periode + week + verzorger -nivo de conflicten analyseren...
CREATE OR REPLACE FORCE VIEW care_v_rap_conflict_uren_c
(
fclt_f_periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_periode,
uren_besteed,
fclt_f_weeknr,
fclt_f_verzorger,
indicatie,
bestede_uren_week,
fclt_f_status,
fclt_f_weekstatus
)
AS
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
fclt_f_jaar_weeknr,
fclt_f_verzorger,
indicatie_uren,
ROUND (uren_besteed_week, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END,
CASE
WHEN indicatie_uren < ROUND (uren_besteed_week, 2)
THEN
'Te veel uren besteed'
WHEN indicatie_uren > ROUND (uren_besteed_week, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_1234c
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
fclt_f_jaar_weeknr,
fclt_f_verzorger,
indicatie_uren,
ROUND (uren_besteed_week, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END,
CASE
WHEN indicatie_uren < ROUND (uren_besteed_week, 2)
THEN
'Te veel uren besteed'
WHEN indicatie_uren > ROUND (uren_besteed_week, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_2345c
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
fclt_f_jaar_weeknr,
fclt_f_verzorger,
indicatie_uren,
ROUND (uren_besteed_week, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END,
CASE
WHEN indicatie_uren < ROUND (uren_besteed_week, 2)
THEN
'Te veel uren besteed'
WHEN indicatie_uren > ROUND (uren_besteed_week, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_3456c
UNION
SELECT periode,
fclt_f_gemeente,
fclt_f_client,
beschikking,
melding,
uren_gepland_totaal,
ROUND (uren_besteed_totaal, 2),
fclt_f_jaar_weeknr,
fclt_f_verzorger,
indicatie_uren,
ROUND (uren_besteed_week, 2),
CASE
WHEN uren_gepland_totaal < ROUND (uren_besteed_totaal, 2)
THEN
'Te veel uren besteed'
WHEN uren_gepland_totaal > ROUND (uren_besteed_totaal, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END,
CASE
WHEN indicatie_uren < ROUND (uren_besteed_week, 2)
THEN
'Te veel uren besteed'
WHEN indicatie_uren > ROUND (uren_besteed_week, 2)
THEN
'Te weinig uren besteed'
ELSE
'OKEE'
END
FROM care_v_rap_conflict_uren_4567c;
----------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- factuur ---factuur----factuur-----factuur----factuur----factuur----factuur----factuur----factuur----factuur---factuur---factuur--factuur--factuur------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Periodetabel van 2 jaar in het verleden t/m heden
CREATE OR REPLACE FORCE VIEW care_v_periodeweektabel_2jaar
(
jaar,
periode,
week,
maandag
)
AS
SELECT TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IYYY') jaar,
LEAST (
FLOOR ((TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') - 1) / 4)
+ 1,
13) periode,
TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') week,
TRUNC (SYSDATE - 7 * (LEVEL - 1), 'IW') startdatum
FROM DUAL
CONNECT BY LEVEL <= 2 * 52 + 1;
CREATE OR REPLACE FORCE VIEW care_v_periodetabel_2jaar
(
jaar,
periode,
jaar_periode,
week_van,
week_tm,
maandag_van,
zondag_tm
)
AS
SELECT DISTINCT jaar,
periode,
jaar || '-' || LPAD (periode, 2, '0'),
MIN (week),
MAX (week),
MIN (maandag),
MAX (maandag) + 6
FROM care_v_periodeweektabel_2jaar
GROUP BY jaar, periode;
-- Periodetabel van 10 weken in het verleden t/m heden
CREATE OR REPLACE FORCE VIEW care_v_periodeweektabel
(
jaar,
periode,
week,
maandag
)
AS
SELECT TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IYYY') jaar,
LEAST (
FLOOR ((TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') - 1) / 4)
+ 1,
13) periode,
TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') week,
TRUNC (SYSDATE - 7 * (LEVEL - 1), 'IW') startdatum
FROM DUAL
CONNECT BY LEVEL <= 1 * 10 + 1;
CREATE OR REPLACE FORCE VIEW care_v_periodetabel
(
jaar,
periode,
jaar_periode,
week_van,
week_tm,
maandag_van,
zondag_tm
)
AS
SELECT DISTINCT jaar,
periode,
jaar || '-' || LPAD (periode, 2, '0'),
MIN (week),
MAX (week),
MIN (maandag),
MAX (maandag) + 6
FROM care_v_periodeweektabel
GROUP BY jaar, periode;
--- View die van doen hebben met facturatie en salariering
--- pb.prs_bedrijf_key=2 is het interne bedrijf 'ATC' (WZA-code is hier geregistreerd in lev. nr)
-- ud.fac_usrdata_key = 48 is het record/instelling voor clientnr: prs_perslid_key of prs_perslid_nr.
CREATE OR REPLACE FORCE VIEW care_v_tmp2_factuur_uren
(
periode,
periode_nr,
wzacode,
prs_bedrijf_naam,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_kvk,
prs_bedrijf_bankrekeningnr,
prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax,
prs_bedrijf_email,
prs_bedrijf_factnr_infix,
melding,
gemeente,
gemeente_code,
gemeente_post_adres,
gemeente_post_postcode,
gemeente_post_plaats,
gemeente_contactpersoon,
gemeente_factnr_infix,
gemeente_factnr_suffix,
gemeente_hv1_code,
gemeente_hv2_code,
gemeente_veiling,
gemeente_budget,
gemeente_ob,
beschikkingsnr,
beschikking_datum_van,
beschikking_datum_tot,
bsn_client,
client_nr,
client,
client2,
client_voorletters,
client_tussenvoegsel,
client_naam,
client_meisjesnaam,
client_mv,
prs_client_email,
client_contactpersonen,
prs_client_cak_actie,
client_geboortedatum,
client_adres,
client_huisnr,
client_postcode,
client_woonplaats,
client_telefoon_thuis,
prs_client_mobiel,
client_bijzonderheden,
indicatie_uren,
pgb,
product,
tarief,
beschikking_omschr,
alt_hv1,
alt_hv2,
alt_hv3,
verzorger_key,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
jaar,
maand,
maand_txt,
weeknr,
datum,
week_uren_gepland,
week_uren_besteed
)
AS
SELECT uur.jaar || '-' || LPAD (uur.periodenr, 2, '0'),
uur.periodenr,
pb.prs_leverancier_nr,
pb.prs_bedrijf_naam,
pb.prs_bedrijf_post_adres,
pb.prs_bedrijf_post_postcode,
pb.prs_bedrijf_post_plaats,
pb.prs_overeenkomst_nr,
pb.prs_bedrijf_opmerking,
pb.prs_bedrijf_contact_persoon,
pb.prs_bedrijf_contact_telefoon,
pb.prs_bedrijf_contact_fax,
pb.prs_bedrijf_email,
pb.prs_bedrijf_telefoon2,
b.mld_melding_key,
b.gemeente_omschrijving,
b.gemeente_code,
b.gemeente_post_adres,
b.gemeente_post_postcode,
b.gemeente_post_plaats,
b.gemeente_contactpersoon,
b.gemeente_factnr_infix,
b.gemeente_factnr_suffix,
b.gemeente_hv1_code,
b.gemeente_hv2_code,
b.gemeente_veiling,
b.gemeente_budget,
b.gemeente_ob,
b.beschikking_nr,
b.beschikking_datum_van,
b.beschikking_datum_tot,
b.client_bsn,
DECODE (ud.fac_usrdata_omschr,
1, b.prs_client_nr,
b.prs_client_key),
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel
|| ' '
|| b.prs_client_naam,
b.prs_client_voorletters,
b.prs_client_tussenvoegsel,
b.prs_client_naam,
b.client_meisjesnaam,
b.client_mv,
b.prs_client_email,
b.client_contactpersonen,
b.prs_client_cak_actie,
b.client_geboortedatum,
b.client_adres,
b.client_huisnr,
b.client_postcode,
b.client_woonplaats,
b.client_telefoon_thuis,
b.prs_client_mobiel,
b.client_bijzonderheden,
b.uren_beschikking,
b.pgb,
b.product,
CASE
WHEN b.pgb = 1 THEN b.pgb_tarief
WHEN b.gemeente_veiling = 1 THEN b.pgb_tarief
ELSE gt.tarief
END,
b.beschikking_omschr,
CASE
WHEN b.alt_hv1_start <=
(uur.jaar || LPAD (uur.periodenr, 2, '0'))
THEN
b.alt_hv1
ELSE
NULL
END
alt_hv1,
CASE
WHEN b.alt_hv2_start <=
(uur.jaar || LPAD (uur.periodenr, 2, '0'))
THEN
b.alt_hv2
ELSE
NULL
END
alt_hv2,
CASE
WHEN b.alt_hv3_start <=
(uur.jaar || LPAD (uur.periodenr, 2, '0'))
THEN
b.alt_hv3
ELSE
NULL
END
alt_hv3,
uur.prs_perslid_key,
uur.bsn,
uur.nr_verzorger,
uur.personeelsnr_2,
uur.dienstverband,
uur.prs_perslid_naam
|| ','
|| uur.prs_perslid_voorletters
|| ' '
|| uur.prs_perslid_tussenvoegsel,
uur.prs_perslid_dienstverband,
uur.jaar,
uur.maand,
uur.maand_txt,
uur.weeknr,
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,
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 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 OR REPLACE FORCE VIEW care_v_gemeente_fact2_uren
AS
SELECT *
FROM care_v_tmp2_factuur_uren
WHERE pgb IS NULL;
CREATE OR REPLACE FORCE VIEW care_v_pgb_fact2_uren
AS
SELECT *
FROM care_v_tmp2_factuur_uren
WHERE pgb = 1;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_voorblad_a
(
fclt_f_periode,
periode_nr,
factuurnr,
factuurdatum,
wzacode,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_kvk,
prs_bedrijf_bankrekeningnr,
prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax,
prs_bedrijf_email,
prs_bedrijf_factnr_infix,
fclt_f_gemeente,
gemeente_code,
gemeente_post_adres,
gemeente_post_postcode,
gemeente_post_plaats,
gemeente_contactpersoon,
gemeente_factnr_infix,
gemeente_factnr_suffix,
product,
tarief,
jaar,
week_uren_besteed,
subtotaal
)
AS
SELECT periode,
MIN (periode_nr),
MIN (jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| MIN (periode_nr)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
TO_CHAR (SYSDATE, 'DD-MM-YYYY'),
MIN (wzacode),
MIN (prs_bedrijf_post_adres),
MIN (prs_bedrijf_post_postcode),
MIN (prs_bedrijf_post_plaats),
MIN (prs_bedrijf_kvk),
MIN (prs_bedrijf_bankrekeningnr),
MIN (prs_bedrijf_contact_persoon),
MIN (prs_bedrijf_contact_telefoon),
MIN (prs_bedrijf_contact_fax),
MIN (prs_bedrijf_email),
MIN (prs_bedrijf_factnr_infix),
gemeente,
MIN (gemeente_code),
MIN (gemeente_post_adres),
MIN (gemeente_post_postcode),
MIN (gemeente_post_plaats),
MIN (gemeente_contactpersoon),
MIN (gemeente_factnr_infix),
MIN (gemeente_factnr_suffix),
product,
MIN (tarief),
MIN (jaar),
ROUND (SUM (week_uren_besteed), 2),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2)
FROM care_v_gemeente_fact2_uren
GROUP BY periode, gemeente, product;
-- Factuur voor PGB clienten, zonder 6 weken berperking
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_pgb_a
(
fclt_f_periode,
periode_nr,
factuurdatum,
wzacode,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_kvk,
prs_bedrijf_bankrekeningnr,
prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax,
prs_bedrijf_email,
prs_bedrijf_factnr_infix,
gemeente_factnr_infix,
gemeente_factnr_suffix,
melding,
beschikkingsnr,
bsn_client,
client_nr,
client,
client_adres,
client_huisnr,
client_postcode,
client_woonplaats,
product,
tarief,
beschikking_omschr,
jaar,
week_uren_besteed,
subtotaal
)
AS
SELECT periode,
MIN (periode_nr),
TO_CHAR (SYSDATE, 'DD-MM-YYYY'),
MIN (wzacode),
MIN (prs_bedrijf_post_adres),
MIN (prs_bedrijf_post_postcode),
MIN (prs_bedrijf_post_plaats),
MIN (prs_bedrijf_kvk),
MIN (prs_bedrijf_bankrekeningnr),
MIN (prs_bedrijf_contact_persoon),
MIN (prs_bedrijf_contact_telefoon),
MIN (prs_bedrijf_contact_fax),
MIN (prs_bedrijf_email),
MIN (prs_bedrijf_factnr_infix),
MIN (gemeente_factnr_infix),
MIN (gemeente_factnr_suffix),
melding,
MIN (beschikkingsnr),
bsn_client,
MIN (client_nr),
MIN (client2),
MIN (client_adres),
MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
MIN (product),
MIN (tarief),
MIN (beschikking_omschr),
MIN (jaar),
ROUND (SUM (week_uren_besteed), 2),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2)
FROM care_v_pgb_fact2_uren
GROUP BY periode, bsn_client, melding;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_pgb_a_mnd
(
fclt_f_maand,
maand_omschr_nr,
factuurdatum,
wzacode,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_kvk,
prs_bedrijf_bankrekeningnr,
prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax,
prs_bedrijf_email,
prs_bedrijf_factnr_infix,
gemeente_factnr_infix,
gemeente_factnr_suffix,
melding,
beschikkingsnr,
bsn_client,
client_nr,
client,
client_adres,
client_huisnr,
client_postcode,
client_woonplaats,
product,
tarief,
beschikking_omschr,
jaar,
week_uren_besteed,
subtotaal
)
AS
SELECT maand,
MIN (maand_txt),
TO_CHAR (SYSDATE, 'DD-MM-YYYY'),
MIN (wzacode),
MIN (prs_bedrijf_post_adres),
MIN (prs_bedrijf_post_postcode),
MIN (prs_bedrijf_post_plaats),
MIN (prs_bedrijf_kvk),
MIN (prs_bedrijf_bankrekeningnr),
MIN (prs_bedrijf_contact_persoon),
MIN (prs_bedrijf_contact_telefoon),
MIN (prs_bedrijf_contact_fax),
MIN (prs_bedrijf_email),
MIN (prs_bedrijf_factnr_infix),
MIN (gemeente_factnr_infix),
MIN (gemeente_factnr_suffix),
melding,
MIN (beschikkingsnr),
bsn_client,
MIN (client_nr),
MIN (client2),
MIN (client_adres),
MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
MIN (product),
MIN (tarief),
MIN (beschikking_omschr),
MIN (jaar),
ROUND (SUM (week_uren_besteed), 2),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2)
FROM care_v_pgb_fact2_uren
GROUP BY maand, bsn_client, melding;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_a
(
fclt_f_periode,
factuurdatum,
wzacode,
fclt_f_gemeente,
beschikkingsnr,
bsn_client,
client,
geboortedatum,
uren_periode,
indicatie_uren,
product,
tarief,
uren,
minuten,
bedrag_euro,
bedrag_centen
)
AS
SELECT fu.periode,
TO_CHAR (SYSDATE, 'DD-MM-YYYY'),
MIN (wzacode),
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
MIN (fu.client),
MIN (fu.client_geboortedatum),
MIN (bp.uren_beschikking),
DECODE (MIN (indicatie_uren) - MAX (indicatie_uren),
0, TO_CHAR (MIN (indicatie_uren)),
MIN (indicatie_uren) || ' tot ' || MAX (indicatie_uren)),
fu.product,
MIN (fu.tarief),
ROUND (SUM (fu.week_uren_besteed), 2),
ROUND (60 * SUM (fu.week_uren_besteed)),
ROUND (MIN (fu.tarief) * SUM (fu.week_uren_besteed), 2),
ROUND (100 * MIN (fu.tarief) * SUM (fu.week_uren_besteed))
FROM care_t_beschikk_x_periodetabel bp, care_v_gemeente_fact2_uren fu
WHERE bp.jaar = fu.jaar
AND bp.periode = fu.periode_nr
AND bp.product = fu.product
AND bp.bsn = fu.bsn_client
GROUP BY fu.periode,
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
fu.product;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_a2
(
fclt_f_periode,
factuurdatum,
wzacode,
fclt_f_gemeente,
beschikkingsnr,
bsn_client,
client,
geboortedatum,
indicatie_uren,
product,
tarief,
uren,
minuten,
bedrag_euro,
bedrag_centen
)
AS
SELECT fu.periode,
TO_CHAR (SYSDATE, 'DD-MM-YYYY'),
MIN (wzacode),
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
MIN (fu.client),
MIN (fu.client_geboortedatum),
DECODE (MIN (indicatie_uren) - MAX (indicatie_uren),
0, TO_CHAR (MIN (indicatie_uren)),
MIN (indicatie_uren) || ' tot ' || MAX (indicatie_uren)),
fu.product,
MIN (fu.tarief),
ROUND (SUM (fu.week_uren_besteed), 2),
ROUND (60 * SUM (fu.week_uren_besteed)),
ROUND (MIN (fu.tarief) * SUM (fu.week_uren_besteed), 2),
ROUND (100 * MIN (fu.tarief) * SUM (fu.week_uren_besteed))
FROM care_v_gemeente_fact2_uren fu
GROUP BY fu.periode,
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
fu.product;
-- FactuurRapportage view B (postfix B): op per gemeente, op periode/week-nivo de gemaakte uren per beschikking totaliseren...
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_b
(
fclt_f_periode,
factuurdatum,
wzacode,
fclt_f_gemeente,
beschikkingsnr,
bsn_client,
client,
geboortedatum,
indicatie_uren,
product,
tarief,
jaar,
weeknr,
uren,
minuten,
bedrag_euro,
bedrag_centen
)
AS
SELECT periode,
TO_CHAR (SYSDATE, 'DD-MM-YYYY'),
MIN (wzacode),
gemeente,
beschikkingsnr,
f.bsn_client,
MIN (client),
MIN (client_geboortedatum),
MIN (indicatie_uren),
product,
MIN (tarief),
jaar,
weeknr,
ROUND (SUM (week_uren_besteed), 2),
ROUND (60 * SUM (week_uren_besteed)),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2),
ROUND (100 * MIN (tarief) * SUM (week_uren_besteed))
FROM care_v_gemeente_fact2_uren f
GROUP BY periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product,
jaar,
weeknr;
-- FactuurRapportage view C (postfix C): op per gemeente, op periode/week-nivo/datum de gemaakte uren per beschikking totaliseren...
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_c
(
fclt_f_periode,
factuurdatum,
wzacode,
fclt_f_gemeente,
beschikkingsnr,
bsn_client,
client,
geboortedatum,
indicatie_uren,
product,
tarief,
jaar,
weeknr,
datum,
uren,
minuten,
bedrag_euro,
bedrag_centen
)
AS
SELECT periode,
TO_CHAR (SYSDATE, 'DD-MM-YYYY'),
MIN (wzacode),
gemeente,
beschikkingsnr,
f.bsn_client,
MIN (client),
MIN (client_geboortedatum),
MIN (indicatie_uren),
product,
MIN (tarief),
jaar,
weeknr,
datum,
ROUND (SUM (week_uren_besteed), 2),
ROUND (60 * SUM (week_uren_besteed)),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2),
ROUND (100 * MIN (tarief) * SUM (week_uren_besteed))
FROM care_v_gemeente_fact2_uren f
GROUP BY periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product,
jaar,
weeknr,
datum;
-- FactuurRapportage view D: op per gemeente per dag, op periode/week/datum-nivo de gemaakte uren per beschikking totaliseren.
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_d
(
fclt_x_periode,
factuurnummer,
factuurjaar,
factuurperiode,
wzacode,
fclt_f_gemeente,
naam_en_voorletters,
geboortedatum,
bsn,
indicatie_startdatum,
indicatie_einddatum,
indicatie_uren,
productcode,
op_datum,
weeknr,
aantal,
bedrag
)
AS
SELECT f.periode,
MIN (f.jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (f.periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
SUBSTR (f.periode, 1, 4),
SUBSTR (f.periode, 1, 4)
|| '-'
|| MIN (pt.week_van)
|| ' t/m '
|| MAX (pt.week_tm),
MIN (wzacode),
gemeente,
MIN (client),
MIN (client_geboortedatum),
f.bsn_client,
MIN (beschikking_datum_van),
MAX (beschikking_datum_tot),
MIN (indicatie_uren),
product,
datum,
weeknr,
ROUND (SUM (week_uren_besteed), 2),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2)
FROM care_v_gemeente_fact2_uren f, care_v_periodetabel_2jaar pt
WHERE f.periode = pt.jaar_periode
GROUP BY f.periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product,
f.jaar,
weeknr,
datum;
-- FactuurRapportage view E: per gemeente, op periode-nivo de gemaakte uren per beschikking totaliseren.
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_e
(
fclt_x_periode,
periode,
weeknrs,
factuurnummer,
wzacode,
fclt_f_gemeente,
bsn_client,
client,
geboortedatum,
uren_periode,
indicatie_uren,
product,
tarief,
uren,
bedrag_euro
)
AS
SELECT fu.periode,
SUBSTR (fu.periode, 6, 2) || '.' || SUBSTR (fu.periode, 1, 4),
SUBSTR (fu.periode, 1, 4)
|| '-'
|| MIN (bp.week_van)
|| ' t/m '
|| MAX (bp.week_tm),
MIN (fu.jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (fu.periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
MIN (wzacode),
fu.gemeente,
fu.bsn_client,
MIN (fu.client),
MIN (fu.client_geboortedatum),
MIN (bp.uren_beschikking),
DECODE (MIN (indicatie_uren) - MAX (indicatie_uren),
0, TO_CHAR (MIN (indicatie_uren)),
MIN (indicatie_uren) || ' tot ' || MAX (indicatie_uren)),
fu.product,
MIN (fu.tarief),
ROUND (SUM (fu.week_uren_besteed), 2),
ROUND (MIN (fu.tarief) * SUM (fu.week_uren_besteed), 2)
FROM CARE_T_BESCHIKK_X_PERIODETABEL bp, care_v_gemeente_fact2_uren fu
WHERE bp.jaar = fu.jaar
AND bp.periode = fu.periode_nr
AND bp.product = fu.product
AND bp.bsn = fu.bsn_client
GROUP BY fu.periode,
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
fu.product;
-- FactuurRapportage view F: op per gemeente per dag, op periode/week/datum-nivo de gemaakte uren per beschikking totaliseren.
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_f
(
fclt_x_periode,
fclt_x_gemeente,
periode,
weeknr,
product,
client,
adres,
woonplaats,
geboortedatum,
bsn,
datum,
tijdsduur,
tijdseenheid,
totaal_bedrag
)
AS
SELECT f.periode,
f.gemeente,
SUBSTR (f.periode, 1, 4) || '.' || SUBSTR (f.periode, 6, 2),
weeknr,
product,
MIN (client),
MIN (client_adres) || ' ' || MIN (client_huisnr),
MIN (client_woonplaats),
MIN (client_geboortedatum),
f.bsn_client,
datum,
ROUND (SUM (week_uren_besteed), 2),
'uur',
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2)
FROM care_v_gemeente_fact2_uren f
GROUP BY f.periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product,
weeknr,
datum;
-- FactuurRapportage view G: op per gemeente per dag, op periode-nivo de gemaakte uren per beschikking totaliseren.
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_g
(
fclt_x_periode,
fclt_x_gemeente,
hide_f_nr,
record_start,
wzacode,
factuurnummer,
code,
bsn,
geboortedatum,
van,
tot,
product,
productcode,
minuten,
centen,
btw,
subtotaal,
record_einde
)
AS
SELECT f.periode,
f.gemeente,
1,
'V',
MIN (wzacode),
COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix)),
'F',
SUBSTR (f.periode, 1, 4) || SUBSTR (f.periode, 6, 2),
MIN (f.jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (f.periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
'',
'',
'',
'',
'',
'',
'',
'',
''
FROM care_v_gemeente_fact2_uren f
GROUP BY f.periode, f.gemeente
UNION ALL
SELECT f.periode,
f.gemeente,
2,
'D',
MIN (wzacode),
MIN (f.jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (f.periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
CASE
WHEN MIN (pt.maandag_van) <= MIN (beschikking_datum_van)
THEN
'S'
WHEN MIN (pt.zondag_tm) >= MIN (beschikking_datum_tot)
THEN
'E'
ELSE
'P'
END,
f.bsn_client,
MIN (client_geboortedatum),
TO_CHAR (
GREATEST (MIN (pt.maandag_van), MIN (beschikking_datum_van)),
'DD-MM-YYYY'),
TO_CHAR (LEAST (MIN (pt.zondag_tm), MIN (beschikking_datum_tot)),
'DD-MM-YYYY'),
'HV',
DECODE (
product,
'HV1', TO_CHAR (COALESCE (MIN (gemeente_hv1_code), 1)),
'HV2', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2)),
'HV3', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2) + 1),
''),
TO_CHAR (ROUND (60 * SUM (week_uren_besteed))),
TO_CHAR (ROUND (100 * MIN (tarief) * SUM (week_uren_besteed))),
'0',
TO_CHAR (ROUND (100 * MIN (tarief) * SUM (week_uren_besteed))),
'D'
FROM care_v_gemeente_fact2_uren f, care_v_periodetabel_2jaar pt
WHERE f.periode = pt.jaar_periode
GROUP BY f.periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product
UNION ALL
SELECT f.periode,
f.gemeente,
3,
'S',
MIN (wzacode),
COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix)),
'F',
SUBSTR (f.periode, 1, 4) || SUBSTR (f.periode, 6, 2),
MIN (f.jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (f.periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
'',
'',
'',
'',
'',
'',
'',
'',
'D'
FROM care_v_gemeente_fact2_uren f
GROUP BY f.periode, f.gemeente;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_i
(
fclt_x_periode,
fclt_x_gemeente,
num_bsn,
num_pers,
naa_rel_ac,
naa_rel_vl,
dat_geb,
num_klant,
cod_agb,
num_contr,
num_fact,
srt_voorz,
num_voorz,
cod_voorz,
dat_begin,
dat_eind,
bed_huur,
num_art,
oms_merk,
dat_van,
dat_tot,
cod_per,
dat_reg,
aant_u,
bed_face,
srt_btw,
bed_btw,
bed_faci,
srt_bed,
cod_stakl,
cod_stabt,
bed_bet,
cod_bet
)
AS
SELECT f.periode,
f.gemeente,
f.bsn_client,
'',
MIN (f.client_naam) || ',' || MIN (f.client_tussenvoegsel),
MIN (f.client_voorletters),
MIN (client_geboortedatum),
'',
MIN (wzacode),
'',
MIN (f.jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (f.periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
'',
'',
product,
TO_CHAR (MIN (beschikking_datum_van), 'DD-MM-YYYY'),
TO_CHAR (MIN (beschikking_datum_tot), 'DD-MM-YYYY'),
'',
'',
'',
TO_CHAR (MIN (pt.maandag_van), 'DD-MM-YYYY'),
TO_CHAR (MIN (pt.zondag_tm), 'DD-MM-YYYY'),
'',
'',
ROUND (SUM (f.week_uren_besteed), 2),
'',
'0',
'',
ROUND (MIN (f.tarief) * SUM (f.week_uren_besteed), 2),
'',
'',
'',
'',
''
FROM care_v_gemeente_fact2_uren f, care_v_periodetabel_2jaar pt
WHERE f.periode = pt.jaar_periode
GROUP BY f.periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_j
(
fclt_x_periode,
fclt_x_gemeente,
factuurnr,
periode_nr,
periode_jaar,
achternaam,
initialen,
geboortedatum,
clientnummer,
bsn,
straat,
huisnummer,
postcode,
plaats,
soort_hh,
ind_startdatum,
ind_einddatum,
uren,
tarief,
totaal
)
AS
SELECT periode,
gemeente,
MIN (jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
SUBSTR (periode, 6, 2),
SUBSTR (periode, 1, 4),
MIN (client_naam) || ',' || MIN (client_tussenvoegsel),
MIN (client_voorletters),
MIN (client_geboortedatum),
'',
bsn_client,
MIN (client_adres),
MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
product,
TO_CHAR (MIN (beschikking_datum_van), 'DD-MM-YYYY'),
TO_CHAR (MIN (beschikking_datum_tot), 'DD-MM-YYYY'),
ROUND (SUM (week_uren_besteed), 2),
MIN (tarief),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2)
FROM care_v_gemeente_fact2_uren fu
GROUP BY fu.periode,
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
fu.product;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_k
(
fclt_x_periode,
fclt_x_gemeente,
dossiernr,
voorz,
begindatum_1,
einddatum_1,
bedrag,
soort_hulp,
gelev_uren,
begindatum,
einddatum,
indicatie_pw_in_min,
begindatum_2,
einddatum_2,
bsn,
clientnr,
naam,
geb_datum,
aanbieder,
begin_voorz,
eind_voorz
)
AS
SELECT periode,
gemeente,
beschikkingsnr,
DECODE (
product,
'HV1', TO_CHAR (COALESCE (MIN (gemeente_hv1_code), 1)),
'HV2', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2)),
'HV3', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2) + 1),
''),
'',
'',
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2),
product,
ROUND (SUM (week_uren_besteed), 2),
TO_CHAR (MIN (beschikking_datum_van), 'DD-MM-YYYY'),
TO_CHAR (MIN (beschikking_datum_tot), 'DD-MM-YYYY'),
DECODE (
MIN (indicatie_uren) - MAX (indicatie_uren),
0, TO_CHAR (60 * MIN (indicatie_uren)),
60 * MIN (indicatie_uren)
|| ' tot '
|| 60 * MAX (indicatie_uren)),
TO_CHAR (MIN (beschikking_datum_van), 'DD-MM-YYYY'),
TO_CHAR (MIN (beschikking_datum_tot), 'DD-MM-YYYY'),
bsn_client,
'',
MIN (client),
MIN (client_geboortedatum),
'',
'',
''
FROM care_v_gemeente_fact2_uren fu
GROUP BY fu.periode,
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
fu.product;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_l
(
fclt_x_periode,
fclt_x_gemeente,
naam,
bsn,
clientnummer,
geboortedatum,
adres,
pc,
woonplaats,
product,
uren_per_periode,
totaal_bedrag,
periode,
factuurnummer
)
AS
SELECT periode,
gemeente,
MIN (client),
bsn_client,
'',
MIN (client_geboortedatum),
MIN (client_adres) || ' ' || MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
DECODE (product, 'HV1', 'HH1', 'HV2', 'HH2', 'HV3', 'HH3', ''),
ROUND (SUM (week_uren_besteed), 2),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2),
periode,
MIN (jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code))
FROM care_v_gemeente_fact2_uren fu
GROUP BY fu.periode,
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
fu.product;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_m
(
fclt_x_periode,
fclt_x_gemeente,
clientnummer,
bsn,
achternaam,
voorvoegsels,
voorletters,
geboortedatum,
geslacht,
postcode,
huisnummer,
huisnummertoevoeging,
jaar,
week,
product,
minuten,
medewerker,
personeelsnummer_mdw
)
AS
SELECT periode,
gemeente,
MIN (client_nr),
bsn_client,
MIN (client_naam),
MIN (client_tussenvoegsel),
MIN (client_voorletters),
MIN (client_geboortedatum),
MIN (client_mv),
MIN (client_postcode),
SUBSTR (
MIN (client_huisnr),
1,
DECODE (
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'),
0, LENGTH (MIN (client_huisnr)),
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]') - 1)),
SUBSTR (
MIN (client_huisnr),
DECODE (REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'),
0, LENGTH (MIN (client_huisnr)) + 1,
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'))),
jaar,
weeknr,
DECODE (
product,
'HV1', TO_CHAR (COALESCE (MIN (gemeente_hv1_code), 1)),
'HV2', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2)),
'HV3', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2) + 1),
''),
ROUND (60 * SUM (week_uren_besteed)),
verzorger,
nr_verzorger
FROM care_v_gemeente_fact2_uren f
GROUP BY periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product,
jaar,
weeknr,
verzorger,
nr_verzorger;
-- BONS#22915: FactuurRapportage view N (Woudenberg): op per gemeente per dag, op periode-nivo de gemaakte uren per beschikking totaliseren.
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_n
(
fclt_x_periode,
fclt_x_gemeente,
hide_f_nr,
record_start,
wzacode,
factuurnummer,
code,
bsn,
geboortedatum,
van,
tot,
product,
productcode,
minuten,
centen,
btw,
subtotaal,
record_einde,
uurtarief,
achternaam,
voorvoegsels,
voorletters,
datum_eerstkeerzorg,
gemeente_code
)
AS
SELECT f.periode,
f.gemeente,
2,
'D',
MIN (wzacode),
MIN (f.jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (f.periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
CASE
WHEN MIN (pt.maandag_van) <= MIN (beschikking_datum_van)
THEN
'S'
WHEN MIN (pt.zondag_tm) >= MIN (beschikking_datum_tot)
THEN
'E'
ELSE
'P'
END,
f.bsn_client,
MIN (client_geboortedatum),
TO_CHAR (
GREATEST (MIN (pt.maandag_van), MIN (beschikking_datum_van)),
'DD-MM-YYYY'),
TO_CHAR (LEAST (MIN (pt.zondag_tm), MIN (beschikking_datum_tot)),
'DD-MM-YYYY'),
'HH',
'HH'
|| DECODE (
product,
'HV1', TO_CHAR (COALESCE (MIN (gemeente_hv1_code), 1)),
'HV2', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2)),
'HV3', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2) + 1),
''),
TO_CHAR (ROUND (60 * SUM (week_uren_besteed))),
TO_CHAR (ROUND (100 * MIN (tarief) * SUM (week_uren_besteed))),
'0',
TO_CHAR (ROUND (100 * MIN (tarief) * SUM (week_uren_besteed))),
'D',
MIN (f.tarief),
MIN (client_naam),
MIN (client_tussenvoegsel),
MIN (client_voorletters),
MIN (ffu.datum_eerste_keer_ooit),
MIN (gemeente_code)
FROM care_v_gemeente_fact2_uren f,
care_v_periodetabel_2jaar pt,
care_v_first_factuur_uren_ooit ffu
WHERE f.periode = pt.jaar_periode AND f.bsn_client = ffu.client_bsn
GROUP BY f.periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_o
(
fclt_x_periode,
fclt_x_gemeente,
bsn,
naam,
straat,
postcode,
woonplaats,
geboortedatum,
product,
uren,
periodenr,
uurtarief,
bedrag
)
AS
SELECT periode,
gemeente,
bsn_client,
MIN (client),
MIN (client_adres) || ' ' || MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
MIN (client_geboortedatum),
DECODE (product, 'HV1', 'HH1', 'HV2', 'HH2', 'HV3', 'HH3', ''),
ROUND (SUM (week_uren_besteed), 2),
SUBSTR (periode, 6, 2),
MIN (fu.tarief),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2)
FROM care_v_gemeente_fact2_uren fu
GROUP BY fu.periode,
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
fu.product;
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_p
(
fclt_x_periode,
fclt_x_gemeente,
factuurnummer,
bsn,
naam,
straat,
huisnummer,
postcode,
woonplaats,
geboortedatum,
geleverde_uren,
vorm,
weeknummer,
factuurbedrag
)
AS
SELECT periode,
gemeente,
MIN (jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)),
bsn_client,
MIN (client),
MIN (client_adres),
MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
MIN (client_geboortedatum),
ROUND (SUM (week_uren_besteed), 2),
DECODE (product,
'HV1', 'CHT basis',
'HV2', 'CHT plus',
'HV3', '',
''),
weeknr,
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2)
FROM care_v_gemeente_fact2_uren fu
GROUP BY fu.periode,
fu.gemeente,
fu.beschikkingsnr,
fu.bsn_client,
fu.product,
fu.jaar,
fu.weeknr;
-- BONS#33906 variant R
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_r
(
fclt_x_periode,
fclt_x_gemeente,
factuurnummer,
bsn,
voorletters,
tussenvoegsel,
naam,
meisjes_naam,
naam2,
geboortedatum,
geslacht,
straat,
huisnummer,
postcode,
woonplaats,
telefoonnummer,
mobielnummer,
contactpersoon,
email,
opmerking,
bijzonderheden,
beschikkingsnummer,
start_indicatie,
eind_indicatie,
soort_hv,
indicatie_uren,
uren_besteed
)
AS
SELECT periode,
gemeente,
MIN (jaar)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_infix)),
MIN (prs_bedrijf_factnr_infix))
|| SUBSTR (periode, 6, 2)
|| COALESCE (MIN (TO_CHAR (gemeente_factnr_suffix)),
MIN (gemeente_code)) factuurnr,
bsn_client,
MIN (client_voorletters),
MIN (client_tussenvoegsel),
MIN (client_naam),
MIN (client_meisjesnaam),
MIN (client2),
MIN (client_geboortedatum),
MIN (client_mv),
MIN (client_adres),
MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
MIN (client_telefoon_thuis),
MIN (prs_client_mobiel),
MIN (client_contactpersonen),
MIN (prs_client_email),
MIN (beschikking_omschr),
MIN (client_bijzonderheden),
beschikkingsnr,
TRUNC (beschikking_datum_van),
TRUNC (beschikking_datum_tot),
product,
indicatie_uren,
SUM (week_uren_besteed)
FROM care_v_tmp2_factuur_uren
WHERE pgb IS NULL
GROUP BY periode,
gemeente,
bsn_client,
beschikkingsnr,
beschikking_datum_van,
beschikking_datum_tot,
product,
indicatie_uren;
CREATE OR REPLACE FORCE VIEW care_v_rap_tot_clientzorg
(
fclt_f_periode,
fclt_f_gemeente,
fclt_f_status,
bsn,
voorletters,
tussenvoegsel,
naam,
meisjes_naam,
naam2,
geboortedatum,
geslacht,
straat,
huisnummer,
postcode,
woonplaats,
telefoonnummer,
mobielnummer,
contactpersoon,
email,
opmerking,
bijzonderheden,
beschikkingsnummer,
fclt_f_start_indicatie,
eind_indicatie,
soort_hv,
indicatie_uren,
uren_besteed
)
AS
SELECT COALESCE (periode, 'nvt'),
gemeente_omschrijving,
DECODE (mld_melding_status,
5, 'Afgemeld',
6, 'Afgemeld',
'Open')
status,
MIN (client_bsn),
prs_client_voorletters,
prs_client_tussenvoegsel,
prs_client_naam,
MIN (client_meisjesnaam),
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
MIN (client_geboortedatum),
MIN (client_mv),
MIN (client_adres),
MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
MIN (client_telefoon_thuis),
MIN (prs_client_mobiel),
MIN (client_contactpersonen),
MIN (prs_client_email),
MIN (beschikking_omschr),
MIN (client_bijzonderheden),
beschikking_nr,
beschikking_datum_van,
beschikking_datum_tot,
product,
uren_beschikking,
SUM (uur.uren_besteed)
besteed
FROM care_v_beschikking_all b,
(SELECT mld_melding_key,
jaar || '-' || LPAD (periodenr, 2, '0') periode,
uren_besteed
FROM care_v_bestede_uren_all
WHERE uren_status = 3) uur
WHERE mld_melding_status != 1
AND pgb IS NULL
AND uur.mld_melding_key(+) = b.mld_melding_key
GROUP BY periode,
gemeente_omschrijving,
mld_melding_status,
prs_client_naam,
prs_client_voorletters,
prs_client_tussenvoegsel,
beschikking_nr,
beschikking_datum_van,
beschikking_datum_tot,
beschikking_nr,
beschikking_datum_van,
beschikking_datum_tot,
product,
uren_beschikking;
-- view die ook de gekoppelde medewerker per opdracht laat zien
CREATE OR REPLACE FORCE VIEW care_v_rap_tot_clientzorg_mdw
(
fclt_f_periode,
fclt_f_gemeente,
fclt_f_status,
bsn,
voorletters,
tussenvoegsel,
naam,
meisjes_naam,
naam2,
geboortedatum,
geslacht,
straat,
huisnummer,
postcode,
woonplaats,
telefoonnummer,
mobielnummer,
contactpersoon,
email,
opmerking,
bijzonderheden,
beschikkingsnummer,
fclt_f_start_indicatie,
eind_indicatie,
soort_hv,
indicatie_uren,
uren_besteed,
fclt_f_medewerker,
personeelsnummer
)
AS
SELECT COALESCE (periode, 'nvt'),
gemeente_omschrijving,
DECODE (mld_melding_status,
5, 'Afgemeld',
6, 'Afgemeld',
'Open')
status,
MIN (client_bsn),
prs_client_voorletters,
prs_client_tussenvoegsel,
prs_client_naam,
MIN (client_meisjesnaam),
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
MIN (client_geboortedatum),
MIN (client_mv),
MIN (client_adres),
MIN (client_huisnr),
MIN (client_postcode),
MIN (client_woonplaats),
MIN (client_telefoon_thuis),
MIN (prs_client_mobiel),
MIN (client_contactpersonen),
MIN (prs_client_email),
MIN (beschikking_omschr),
MIN (client_bijzonderheden),
beschikking_nr,
beschikking_datum_van,
beschikking_datum_tot,
product,
uren_beschikking,
SUM (uur.uren_besteed)
besteed,
p.prs_perslid_naam_full,
p.prs_perslid_nr
FROM care_v_beschikking_all b,
(SELECT mld_melding_key,
mld_opdr_key,
jaar || '-' || LPAD (periodenr, 2, '0') periode,
uren_besteed
FROM care_v_bestede_uren_all
WHERE uren_status = 3) uur,
mld_opdr o,
(SELECT p.prs_perslid_key,
p.prs_perslid_nr,
pf.prs_perslid_naam_full
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key) p
WHERE mld_melding_status != 1
AND pgb IS NULL
AND uur.mld_melding_key(+) = b.mld_melding_key
AND o.mld_opdr_key(+) = uur.mld_opdr_key
AND o.mld_uitvoerende_keys = p.prs_perslid_key(+)
GROUP BY periode,
gemeente_omschrijving,
mld_melding_status,
prs_client_naam,
prs_client_voorletters,
prs_client_tussenvoegsel,
beschikking_nr,
beschikking_datum_van,
beschikking_datum_tot,
product,
uren_beschikking,
p.prs_perslid_naam_full,
p.prs_perslid_nr;
CREATE OR REPLACE FORCE VIEW care_v_rap_tot_clientzorg_all
(
mld_melding_key,
fclt_f_gemeente,
fclt_f_status,
bsn,
voorletters,
tussenvoegsel,
naam,
meisjes_naam,
naam2,
geboortedatum,
geslacht,
straat,
huisnummer,
postcode,
woonplaats,
telefoonnummer,
mobielnummer,
contactpersoon,
email,
opmerking,
bijzonderheden,
beschikkingsnummer,
fclt_f_start_indicatie,
fclt_f_eind_indicatie,
soort_hv,
indicatie_uren,
fclt_f_medewerker,
personeelsnummer
)
AS
SELECT b.mld_melding_key,
gemeente_omschrijving,
DECODE (mld_melding_status,
5, 'Afgemeld',
6, 'Afgemeld',
'Open')
status,
client_bsn,
prs_client_voorletters,
prs_client_tussenvoegsel,
prs_client_naam,
client_meisjesnaam,
b.prs_client_naam
|| ','
|| b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel,
client_geboortedatum,
client_mv,
client_adres,
client_huisnr,
client_postcode,
client_woonplaats,
client_telefoon_thuis,
prs_client_mobiel,
client_contactpersonen,
prs_client_email,
beschikking_omschr,
client_bijzonderheden,
beschikking_nr,
beschikking_datum_van,
beschikking_datum_tot,
product,
uren_beschikking,
p.prs_perslid_naam_full,
p.prs_perslid_nr
FROM care_v_beschikking_all b,
mld_opdr o,
(SELECT p.prs_perslid_key,
p.prs_perslid_nr,
pf.prs_perslid_naam_full
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key) p
WHERE b.mld_melding_key = o.mld_melding_key
AND o.mld_uitvoerende_keys = p.prs_perslid_key(+);
-- mbmb
-- Rapport Q) FACTUURrapport voor de gemaakte uren per datum - variant Q (Bernisse):
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_q
(
fclt_x_periode,
fclt_x_gemeente,
aanbieder,
dossiernr,
tussenv_partner,
partner,
tussenv,
achternaam_klant,
geboortedatum,
veilingnr,
ingangsdatum_contract,
werkelijke_startdatum,
einddatum_contract,
gemeente,
clientnr_ZA,
annuleringsdatum,
cancel_reden,
korting,
status,
minuten,
bsn,
omzet,
soort_indicatie,
indicatie_minuten,
prijs_inc_korting,
datum,
geleverde_minuten,
factuur,
medewerker,
personeelsnummer_mdw
)
AS
SELECT periode,
gemeente,
MIN (prs_bedrijf_naam),
'',
'',
'',
MIN (client_tussenvoegsel),
MIN (client_naam),
MIN (client_geboortedatum),
beschikkingsnr,
MIN (beschikking_datum_van),
MIN (ffu.datum_eerste_keer_ooit),
MIN (beschikking_datum_tot),
gemeente,
MIN (client_nr),
'',
'',
'',
'',
'',
f.bsn_client,
'',
DECODE (product, 'HV1', 'HH', 'HV2', 'HH', 'HV3', 'HH', 'HH'),
60 * MIN (indicatie_uren),
MIN (tarief),
datum,
ROUND (60 * SUM (week_uren_besteed)),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2),
verzorger,
nr_verzorger
FROM care_v_gemeente_fact2_uren f, care_v_first_factuur_uren_ooit ffu
WHERE f.bsn_client = ffu.client_bsn
GROUP BY periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product,
jaar,
weeknr,
datum,
verzorger,
nr_verzorger;
-- 2e variant op rapport Q waarbij op maand ipv periode gegroepeerd wordt
CREATE OR REPLACE VIEW CARE_V_RAP2_FACTUUR_UREN_Q_v2
(
FCLT_X_MAAND,
FCLT_X_MAAND_TXT,
FCLT_X_GEMEENTE,
AANBIEDER,
DOSSIERNR,
TUSSENV_PARTNER,
PARTNER,
TUSSENV,
ACHTERNAAM_KLANT,
GEBOORTEDATUM,
VEILINGNR,
INGANGSDATUM_CONTRACT,
WERKELIJKE_STARTDATUM,
EINDDATUM_CONTRACT,
GEMEENTE,
CLIENTNR_ZA,
ANNULERINGSDATUM,
CANCEL_REDEN,
KORTING,
STATUS,
MINUTEN,
BSN,
OMZET,
SOORT_INDICATIE,
INDICATIE_MINUTEN,
PRIJS_INC_KORTING,
DATUM,
GELEVERDE_MINUTEN,
FACTUUR,
MEDEWERKER,
PERSONEELSNUMMER_MDW
)
AS
SELECT maand,
maand_txt,
gemeente,
MIN (prs_bedrijf_naam),
'',
'',
'',
MIN (client_tussenvoegsel),
MIN (client_naam),
MIN (client_geboortedatum),
beschikkingsnr,
MIN (beschikking_datum_van),
MIN (ffu.datum_eerste_keer_ooit),
MIN (beschikking_datum_tot),
gemeente,
MIN (client_nr),
'',
'',
'',
'',
'',
f.bsn_client,
'',
DECODE (product, 'HV1', 'HH', 'HV2', 'HH', 'HV3', 'HH', 'HH'),
60 * MIN (indicatie_uren),
MIN (tarief),
datum,
ROUND (60 * SUM (week_uren_besteed)),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2),
verzorger,
nr_verzorger
FROM care_v_gemeente_fact2_uren f, care_v_first_factuur_uren_ooit ffu
WHERE f.bsn_client = ffu.client_bsn
GROUP BY f.maand,
f.maand_txt,
gemeente,
beschikkingsnr,
f.bsn_client,
product,
jaar,
weeknr,
datum,
verzorger,
nr_verzorger;
-- FactuurRapportage view Iwmo
CREATE OR REPLACE FORCE VIEW care_v_rap2_factuur_uren_iwmo
(
fclt_x_periode,
fclt_x_gemeente,
bsn,
geboortedatum,
geslacht,
geboortenaam,
voorvoegsel,
naamcode1,
achternaampartner,
voorvoegselpartner,
voorletters,
naamcode2,
postcode,
huisnummer,
huisnummertoevoeging,
indicatieoverleden,
beschikkingsnummer,
productcategorie,
begindatumproduct,
einddatumproduct,
productcode,
aantaluitgevoerdeproduct,
tijdseenheidzorgperiode,
declaratiebedrag,
debetcredit,
referentienummercredit
)
AS
SELECT f.periode,
f.gemeente,
f.bsn_client, -- kolom A
SUBSTR (MIN (client_geboortedatum), 7, 4)
|| SUBSTR (MIN (client_geboortedatum), 4, 2)
|| SUBSTR (MIN (client_geboortedatum), 1, 2), --kolom B
DECODE (MIN (client_mv), 'M', 1, 'V', 2, ''), -- kolom C
COALESCE (MIN (client_meisjesnaam), MIN (client_naam)), -- kolom D
'', -- kolom E
'1', -- kolom F
'', -- kolom G
'', -- kolom H
REPLACE (REPLACE (MIN (client_voorletters), ' ', ''), '.', ''), --kolom I
'0', -- kolom J
REPLACE (MIN (client_postcode), ' ', ''), --kolom K
SUBSTR (
MIN (client_huisnr),
1,
DECODE (
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'),
0, LENGTH (MIN (client_huisnr)),
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]') - 1)), --Kolom L
SUBSTR (
MIN (client_huisnr),
DECODE (REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'),
0, LENGTH (MIN (client_huisnr)) + 1,
REGEXP_INSTR (MIN (client_huisnr), '[[:alpha:]]|[-]'))), --Kolom M
'2', -- kolom N
beschikkingsnr, -- Kolom O
'01', -- Kolom P
TO_CHAR (
GREATEST (MIN (pt.maandag_van), MIN (beschikking_datum_van)),
'YYYYMMDD'), -- Kolom Q
TO_CHAR (LEAST (MIN (pt.zondag_tm), MIN (beschikking_datum_tot)),
'YYYYMMDD'), -- Kolom R
LPAD (
DECODE (
product,
'HV1', TO_CHAR (COALESCE (MIN (gemeente_hv1_code), 1)),
'HV2', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2)),
'HV3', TO_CHAR (COALESCE (MIN (gemeente_hv2_code), 2) + 1),
''),
5,
'0'), -- Kolom S
CASE
WHEN MIN (gemeente_budget) = 0
THEN
TO_CHAR (ROUND (60 * SUM (week_uren_besteed)))
ELSE
'0001'
END, -- Kolom T
CASE WHEN MIN (gemeente_budget) = 0 THEN '01' ELSE '81' END, -- Kolom U
CASE
WHEN MIN (gemeente_budget) = 0
THEN
LPAD (
TO_CHAR (
ROUND (
100 * MIN (tarief) * SUM (week_uren_besteed))),
8,
'0')
ELSE
LPAD (TO_CHAR (ROUND (100 * MIN (tarief))), 8, '0')
END, -- Kolom V
'D', -- Kolom W
'' --Kolom X
FROM care_v_gemeente_fact2_uren f, care_v_periodetabel_2jaar pt
WHERE f.periode = pt.jaar_periode
GROUP BY f.periode,
gemeente,
beschikkingsnr,
f.bsn_client,
product;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- salaris ---salaris----salaris-----salaris----salaris----salaris----salaris----salaris----salaris----salaris---salaris---salaris--salaris--salaris------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE FORCE VIEW care_v_onkosten2_all
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_kosten_key,
mld_kosten_code,
mld_kosten_omschrijving,
mld_opdruren_kosten_besteed,
mld_kosten_kosten,
datum
)
AS
SELECT uur.jaar || '-' || LPAD (uur.periodenr, 2, '0'),
v.verzorger_bsn,
v.prs_verzorger_personeelsnr,
v.personeelsnr_2,
v.dienstverband,
v.prs_verzorger_naam
|| ','
|| v.prs_verzorger_voorletters
|| ' '
|| v.prs_verzorger_tussenvoegsel,
v.prs_verzorger_dienstverband,
k.mld_kosten_key,
k.mld_kosten_code,
k.mld_kosten_omschrijving,
ouk.mld_opdruren_kosten_besteed,
k.mld_kosten_kosten,
uur.datum_gewerkt
FROM care_v_totaal_uren_all uur,
care_v_verzorger v,
mld_opdruren_kosten ouk,
mld_kosten k
WHERE uur.prs_perslid_key = v.prs_perslid_key
AND uur.mld_opdr_uren_key = ouk.mld_opdr_uren_key
AND ouk.mld_kosten_key = k.mld_kosten_key
AND k.mld_kosten_verwijder IS NULL
AND uur.uren_status = 3
UNION ALL
SELECT periode,
bsn,
nr_verzorger,
personeelsnr_2,
dienstverband,
prs_perslid_naam
|| ','
|| prs_perslid_voorletters
|| ' '
|| prs_perslid_tussenvoegsel verzorger,
prs_perslid_dienstverband,
NULL mld_kosten_key,
kosten_code,
kosten_omschrijving,
rt.interkm,
NULL,
datum_gewerkt
FROM care_v_reistijden_all rt;
CREATE OR REPLACE FORCE VIEW care_v_tmp2_auto
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
woonwerk_km,
rest_km,
datum
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
MIN (prs_perslid_dienstverband),
LEAST (SUM (mld_opdruren_kosten_besteed), 10),
SUM (mld_opdruren_kosten_besteed)
- LEAST (SUM (mld_opdruren_kosten_besteed), 10),
datum
FROM care_v_onkosten2_all
WHERE mld_kosten_code = 'A'
GROUP BY periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
datum;
CREATE OR REPLACE FORCE VIEW care_v_rap2_auto
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
woonwerk_km,
rest_km
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
MIN (prs_perslid_dienstverband),
SUM (woonwerk_km),
SUM (rest_km)
FROM care_v_tmp2_auto
GROUP BY periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger;
CREATE OR REPLACE FORCE VIEW care_v_rap2_reistijd
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
reistijd
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
MIN (prs_perslid_dienstverband),
SUM (mld_opdruren_kosten_besteed)
FROM care_v_onkosten2_all
WHERE mld_kosten_code = 'T'
GROUP BY periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger;
-- mld_kosten_code = 'F', Dit zijn de onkosten voor FIETS gebruik: elke dag dat er gefietst is, telt als 1 (meerdere keren op 1 dag telt ook als 1)
CREATE OR REPLACE FORCE VIEW care_v_rap2_fiets
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_opdruren_kosten_besteed
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
MIN (prs_perslid_dienstverband),
COUNT (DISTINCT datum)
FROM care_v_onkosten2_all
WHERE mld_kosten_code = 'F'
GROUP BY periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger;
-- mld_kosten_code = 'B', Dit zijn de onkosten voor BROMFIETS gebruik: elke dag dat er gebromt is, telt als 1 (meerdere keren op 1 dag telt ook als 1)
CREATE OR REPLACE FORCE VIEW care_v_rap2_bromfiets
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_opdruren_kosten_besteed
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
MIN (prs_perslid_dienstverband),
COUNT (DISTINCT datum)
FROM care_v_onkosten2_all
WHERE mld_kosten_code = 'B'
GROUP BY periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger;
CREATE OR REPLACE FORCE VIEW care_v_tmp2_impr_uren
(
mld_impropdr_key,
mld_impropdr_code,
jaar,
periode,
periode_nr,
weeknr,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
week_uren_besteed,
datum
)
AS
SELECT uur.mld_impropdr_key,
uur.mld_impropdr_code,
uur.jaar,
uur.jaar || '-' || LPAD (uur.periodenr, 2, '0'),
uur.periodenr,
uur.weeknr,
uur.bsn,
uur.prs_perslid_nr,
uur.personeelsnr_2,
uur.dienstverband,
uur.prs_perslid_naam
|| ','
|| uur.prs_perslid_voorletters
|| ' '
|| uur.prs_perslid_tussenvoegsel,
prs_perslid_dienstverband,
uur.uren_besteed,
uur.datum_gewerkt
FROM care_v_improductieve_uren_all uur
WHERE uur.uren_status = 3;
--- Hieronder het totaal aan goedgekeurde niet-productieve uren (werkoverleg) over de periode 1234,
--- waarbij de verlof-uren (mld_impropdr_key = 1) en ziekte-uren (mld_impropdr_key = 2) worden uitgesloten.
CREATE OR REPLACE FORCE VIEW care_v_gewerkte_impr2_uren
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_impropdr_key,
week_uren_besteed,
datum
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_impropdr_key,
week_uren_besteed,
datum
FROM care_v_tmp2_impr_uren
WHERE mld_impropdr_key <> 1 AND mld_impropdr_key <> 2;
--- Hieronder het totaal aan goedgekeurde niet-productieve ziekte uren over de periode 1234,
--- Voor ziekte-uren geldt: mld_impropdr_key = 2
CREATE OR REPLACE FORCE VIEW care_v_gekeurde_ziek2_uren
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
ziekte_uren,
dagen
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
MIN (prs_perslid_dienstverband),
ROUND (SUM (week_uren_besteed), 2),
COUNT (DISTINCT datum)
FROM care_v_tmp2_impr_uren
WHERE mld_impropdr_key = 2
GROUP BY periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger;
--- Hieronder het totaal aan goedgekeurde niet-productieve verlof uren over de periode 1234,
--- Voor verlof-uren geldt: mld_impropdr_key = 1
CREATE OR REPLACE FORCE VIEW care_v_gekeurde_vrij2_uren
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
verlof_uren,
dagen
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
MIN (prs_perslid_dienstverband),
ROUND (SUM (week_uren_besteed), 2),
COUNT (DISTINCT datum)
FROM care_v_tmp2_impr_uren
WHERE mld_impropdr_key = 1
GROUP BY periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger;
CREATE OR REPLACE FORCE VIEW care_v_rap2_salaris
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
week_uren_besteed,
datum
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
week_uren_besteed,
datum
FROM care_v_tmp2_factuur_uren
UNION ALL
SELECT periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
week_uren_besteed,
datum
FROM care_v_gewerkte_impr2_uren;
CREATE OR REPLACE FORCE VIEW care_v_periode_x_salaris
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
periode_uren_besteed,
dagen,
bsn_periode
)
AS
SELECT jaar_periode,
bsn_verzorger,
MIN (nr_verzorger),
MIN(personeelsnr_2),
MIN(dienstverband),
MIN (verzorger),
MIN (prs_perslid_dienstverband),
ROUND (SUM (week_uren_besteed), 2),
COUNT (DISTINCT datum),
bsn_verzorger || '_' || jaar_periode
FROM care_v_periodetabel_2jaar pt, care_v_rap2_salaris x
WHERE pt.jaar_periode = x.periode
GROUP BY jaar_periode, bsn_verzorger;
CREATE OR REPLACE FORCE VIEW care_v_periode_x_ziek
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
ziekte_uren,
dagen,
bsn_periode
)
AS
SELECT jaar_periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
ziekte_uren,
dagen,
bsn_verzorger || '_' || jaar_periode
FROM care_v_periodetabel_2jaar pt, care_v_gekeurde_ziek2_uren x
WHERE pt.jaar_periode = x.periode;
CREATE OR REPLACE FORCE VIEW care_v_periode_x_vrij
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
verlof_uren,
dagen,
bsn_periode
)
AS
SELECT jaar_periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
verlof_uren,
dagen,
bsn_verzorger || '_' || jaar_periode
FROM care_v_periodetabel_2jaar pt, care_v_gekeurde_vrij2_uren x
WHERE pt.jaar_periode = x.periode;
CREATE OR REPLACE FORCE VIEW care_v_periode_x_auto
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
woonwerk_km,
rest_km,
bsn_periode
)
AS
SELECT jaar_periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
woonwerk_km,
rest_km,
bsn_verzorger || '_' || jaar_periode
FROM care_v_periodetabel_2jaar pt, care_v_rap2_auto x
WHERE pt.jaar_periode = x.periode;
CREATE OR REPLACE FORCE VIEW care_v_periode_x_fiets
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_opdruren_kosten_besteed,
bsn_periode
)
AS
SELECT jaar_periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_opdruren_kosten_besteed,
bsn_verzorger || '_' || jaar_periode
FROM care_v_periodetabel_2jaar pt, care_v_rap2_fiets x
WHERE pt.jaar_periode = x.periode;
CREATE OR REPLACE FORCE VIEW care_v_periode_x_bromfiets
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_opdruren_kosten_besteed,
bsn_periode
)
AS
SELECT jaar_periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_opdruren_kosten_besteed,
bsn_verzorger || '_' || jaar_periode
FROM care_v_periodetabel_2jaar pt, care_v_rap2_bromfiets x
WHERE pt.jaar_periode = x.periode;
CREATE OR REPLACE FORCE VIEW care_v_periode_x_reistijd
(
periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
mld_opdruren_kosten_besteed,
bsn_periode
)
AS
SELECT jaar_periode,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
prs_perslid_dienstverband,
reistijd,
bsn_verzorger || '_' || jaar_periode
FROM care_v_periodetabel_2jaar pt, care_v_rap2_reistijd x
WHERE pt.jaar_periode = x.periode;
CREATE OR REPLACE FORCE VIEW care_v_salaris_all
(
periode,
bsn_verzorger,
nr_verzorger,
verzorger,
prs_perslid_dienstverband,
periode_uren_besteed,
werkdagen,
ziekte_uren,
ziekdagen,
verlof_uren,
verlofdagen,
woonwerk_km,
rest_km,
fietsdagen,
bromfietsdagen
)
AS
SELECT periode,
bsn_verzorger,
nr_verzorger,
verzorger,
prs_perslid_dienstverband,
periode_uren_besteed,
dagen,
0,
0,
0,
0,
0,
0,
0,
0
FROM care_v_periode_x_salaris s
UNION ALL
SELECT periode,
bsn_verzorger,
nr_verzorger,
verzorger,
prs_perslid_dienstverband,
0,
0,
ziekte_uren,
dagen,
0,
0,
0,
0,
0,
0
FROM care_v_periode_x_ziek z
UNION ALL
SELECT periode,
bsn_verzorger,
nr_verzorger,
verzorger,
prs_perslid_dienstverband,
0,
0,
0,
0,
verlof_uren,
dagen,
0,
0,
0,
0
FROM care_v_periode_x_vrij v
UNION ALL
SELECT periode,
bsn_verzorger,
nr_verzorger,
verzorger,
prs_perslid_dienstverband,
0,
0,
0,
0,
0,
0,
woonwerk_km,
rest_km,
0,
0
FROM care_v_periode_x_auto a
UNION ALL
SELECT periode,
bsn_verzorger,
nr_verzorger,
verzorger,
prs_perslid_dienstverband,
0,
0,
0,
0,
0,
0,
0,
0,
mld_opdruren_kosten_besteed,
0
FROM care_v_periode_x_fiets f
UNION ALL
SELECT periode,
bsn_verzorger,
nr_verzorger,
verzorger,
prs_perslid_dienstverband,
0,
0,
0,
0,
0,
0,
0,
0,
0,
mld_opdruren_kosten_besteed
FROM care_v_periode_x_bromfiets b;
CREATE OR REPLACE FORCE VIEW care_v_rap2_salaris_a
(
fclt_f_periode,
bsn,
verzorger,
contract_uren,
uren_gewerkt,
uren_ziek,
uren_verlof,
svdagen,
fietsvergoeding,
bromfietsvergoeding,
km_woonwerk,
km_plus
)
AS
SELECT periode,
bsn_verzorger,
verzorger,
MIN (prs_perslid_dienstverband),
SUM (periode_uren_besteed),
SUM (ziekte_uren),
SUM (verlof_uren),
SUM (werkdagen),
SUM (fietsdagen),
SUM (bromfietsdagen),
SUM (woonwerk_km),
SUM (rest_km)
FROM care_v_salaris_all s
GROUP BY periode, bsn_verzorger, verzorger;
---
-- Salarisrapport type B: per medewerker elke uren/declaratiepost op aparte regel, dus meer regels voor 1 medewerker
-- Identificatie van medewerker: personeelsnummer (clientnummer)
-- NB: Dit rapport is voor Unit 4 Salaris administratie geschikt
--
-- Periode berekening iets als: LPAD (FLOOR (SUBSTR (ud1.fac_usrdata_omschr, 6, 2) / 4) + 1, 3, '0')
--- looncode = GEWERKT / ZIEK / VERLOF / FIETS / BROMF / KM_WW / KM_PLUS
---
CREATE OR REPLACE FORCE VIEW care_v_rap2_salaris_b
(
FCLT_F_PERIODE,
BOEKDATUM,
BSN,
NR_VERZORGER,
PERSONEELSNR_2,
DIENSTVERBAND,
VERZORGER,
UUR_SOORT,
UREN,
SVDAGEN,
KOSTEN_SOORT,
KOSTEN
)
AS
SELECT periode,
SYSDATE,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
'GEWERKT',
periode_uren_besteed,
dagen,
NULL,
NULL
FROM care_v_periode_x_salaris
UNION
SELECT periode,
SYSDATE,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
'ZIEK',
ziekte_uren,
dagen,
NULL,
NULL
FROM care_v_periode_x_ziek
UNION
SELECT periode,
SYSDATE,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
'VERLOF',
verlof_uren,
dagen,
NULL,
NULL
FROM care_v_periode_x_vrij
UNION
SELECT periode,
SYSDATE,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
NULL,
NULL,
NULL,
'KM_WW',
woonwerk_km
FROM care_v_periode_x_auto
WHERE woonwerk_km != 0
UNION
SELECT periode,
SYSDATE,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
NULL,
NULL,
NULL,
'KM_PLUS',
rest_km
FROM care_v_periode_x_auto
WHERE rest_km != 0
UNION
SELECT periode,
SYSDATE,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
NULL,
NULL,
NULL,
'FIETS',
mld_opdruren_kosten_besteed
FROM care_v_periode_x_fiets
WHERE mld_opdruren_kosten_besteed != 0
UNION
SELECT periode,
SYSDATE,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
NULL,
NULL,
NULL,
'BROMF',
mld_opdruren_kosten_besteed
FROM care_v_periode_x_bromfiets
WHERE mld_opdruren_kosten_besteed != 0
UNION
SELECT periode,
SYSDATE,
bsn_verzorger,
nr_verzorger,
personeelsnr_2,
dienstverband,
verzorger,
NULL,
NULL,
NULL,
'REISTIJD',
ROUND (mld_opdruren_kosten_besteed)
FROM care_v_periode_x_reistijd
WHERE mld_opdruren_kosten_besteed != 0;
-- Herdefinietie van oorspronkelijk 'care_v_rap_salaris_b' die nog op 6 weken is gebaseerd,
-- !!Let op: care_v_rap_salaris_b komt in de cust/atch.sql en bons.sql terug!!!
CREATE OR REPLACE FORCE VIEW care_v_rap_salaris_b
AS
SELECT * FROM care_v_rap2_salaris_b;
----------------------------------------------------------------------------------------------------
-- CAK rapportage --
-- CAK rapportage --
-- CAK rapportage --
-- CAK rapportage --
----------------------------------------------------------------------------------------------------
CREATE OR REPLACE FORCE VIEW care_v_cak2_factuur_uren_b
(
fclt_f_periode,
eerste_datum_periode_gewerkt,
factuurdatum,
wzacode,
fclt_f_gemeente,
gemeente_ob,
alt_hv1,
alt_hv2,
alt_hv3,
beschikkingsnr,
bsn_client,
client_nr,
client,
prs_client_cak_actie,
geboortedatum,
indicatie_uren,
product,
tarief,
jaar,
weeknr,
verzorger_key,
uren,
minuten,
bedrag_euro,
bedrag_centen
)
AS
SELECT periode,
MIN (datum),
TO_CHAR (SYSDATE, 'DD-MM-YYYY'),
MIN (wzacode),
gemeente,
MIN (gemeente_ob),
MIN (alt_hv1),
MIN (alt_hv2),
MIN (alt_hv3),
beschikkingsnr,
bsn_client,
MIN (client_nr),
MIN (client),
MIN (prs_client_cak_actie),
MIN (client_geboortedatum),
MIN (indicatie_uren),
product,
MIN (tarief),
jaar,
weeknr,
verzorger_key,
ROUND (SUM (week_uren_besteed), 2),
ROUND (60 * SUM (week_uren_besteed)),
ROUND (MIN (tarief) * SUM (week_uren_besteed), 2),
ROUND (100 * MIN (tarief) * SUM (week_uren_besteed))
FROM care_v_gemeente_fact2_uren
WHERE gemeente_veiling = 0 AND gemeente_budget = 0
GROUP BY periode,
gemeente,
beschikkingsnr,
bsn_client,
product,
jaar,
weeknr,
verzorger_key;
CREATE OR REPLACE FORCE VIEW care_v_cak_choose_periode
(
fclt_f_periode
)
AS
SELECT DISTINCT periode
FROM care_v_gemeente_fact2_uren;
-- Key 41 = SLEUTEL van waarde-code 'BESTANDSNUMMER' van eigen tabel '$SYSTEM-CAK' :: DEZE WORDT NIET MEER GEBRUIKT!!
-- Key 47 = SLEUTEL van waarde-code 'PERIODE' van eigen tabel '$SYSTEM-CAK' (geeft de gekozen periode waarover CAK rapport wordt gemaakt aan)
--> Deze constructie met FLOOR(SUBSTR(ud1.fac_usrdata_omschr,6,2)/4) .... wordt ook in cak_tzi_2_zip.js gebruikt,
--> Deze 2 moeten overeenkomen, vandaar!!!
-- Key 42 = SLEUTEL van waarde-code 'OMGEVING' van eigen tabel '$SYSTEM-CAK' (P of T)
-- Key 43 = SLEUTEL van waarde-code 'VERSIENUMMER' van eigen tabel '$SYSTEM-CAK' (=20)
CREATE OR REPLACE FORCE VIEW care_v_cak_hoofd_record
(
fclt_f_periode,
txt
)
AS
SELECT cp.fclt_f_periode,
'01'
|| pb.prs_leverancier_nr
|| SUBSTR (cp.fclt_f_periode, 1, 4)
|| LPAD (SUBSTR (cp.fclt_f_periode, 6, 2), 3, '0')
|| TO_CHAR (SYSDATE, 'YYYYMMDD')
|| UPPER (ud2.fac_usrdata_omschr)
|| ud3.fac_usrdata_omschr
|| RPAD (' ', 54, ' ')
FROM prs_bedrijf pb,
fac_usrdata ud2,
fac_usrdata ud3,
care_v_cak_choose_periode cp
WHERE ud2.fac_usrdata_key = 42 AND ud3.fac_usrdata_key = 43;
CREATE OR REPLACE FORCE VIEW care_v_cak_zorg_pre_record
(
fclt_f_periode,
eerste_datum_periode_gewerkt,
bsn_client,
client_nr,
prs_client_cak_actie,
hele_uren,
minuten,
txt
)
AS
SELECT fclt_f_periode,
eerste_datum_periode_gewerkt,
f.bsn_client,
f.client_nr,
f.prs_client_cak_actie,
FLOOR (f.uren),
ROUND (60 * (f.uren - FLOOR (f.uren))),
jaar
|| LPAD (weeknr, 2, '0')
|| LPAD (COALESCE (client_nr, ' '), 10, '0')
|| DECODE (
product,
'HV1', DECODE (gemeente_ob,
1, '428',
COALESCE (alt_hv1, ud1.fac_usrdata_omschr)),
'HV2', DECODE (gemeente_ob,
1, '429',
COALESCE (alt_hv2, ud2.fac_usrdata_omschr)),
'HV3', DECODE (gemeente_ob,
1, '430',
COALESCE (alt_hv3, ud4.fac_usrdata_omschr)),
'000')
|| ud3.fac_usrdata_omschr
|| LPAD (FLOOR (f.uren), 3, '0')
|| LPAD (ROUND (60 * (f.uren - FLOOR (f.uren))), 2, '0')
|| LPAD (verzorger_key, 10, '0')
|| RPAD (' ', 2, ' ')
|| RPAD (' ', 39, ' ')
FROM care_v_cak2_factuur_uren_b f,
fac_usrdata ud1,
fac_usrdata ud2,
fac_usrdata ud3,
fac_usrdata ud4
WHERE ud1.fac_usrdata_key = 44
AND ud2.fac_usrdata_key = 45
AND ud3.fac_usrdata_key = 46
AND ud4.fac_usrdata_key = 49;
-- Key 44 bij ud1 = SLEUTEL van waarde-code 'HV1' van eigen tabel '$SYSTEM-CAK' (007)
-- Key 45 bij ud2 = SLEUTEL van waarde-code 'HV2' van eigen tabel '$SYSTEM-CAK' (006)
-- Key 46 bij ud3 = SLEUTEL van waarde-code 'FINANCIERINGSSTROOM' van eigen tabel '$SYSTEM-CAK' (=08)
-- Key 49 bij ud4 = SLEUTEL van waarde-code 'HV3' van eigen tabel '$SYSTEM-CAK' (100)
CREATE OR REPLACE FORCE VIEW care_v_cak_client_zorg_record
(
fclt_f_periode,
eerste_datum_periode_gewerkt,
bsn_client,
client_nr,
prs_client_cak_actie,
hele_uren,
minuten,
txt
)
AS
SELECT fclt_f_periode,
eerste_datum_periode_gewerkt,
bsn_client,
client_nr,
prs_client_cak_actie,
hele_uren,
minuten,
'51' || '1' || txt
FROM care_v_cak_zorg_pre_record;
--- Gewijzigde cq. correctie zorguren die naar CAK moeten.
--- KEY(prs_client_cak_actie) = 2 betekent "Correctie zorguren voor CAK"
CREATE OR REPLACE FORCE VIEW care_v_cak_changed_zorg_record
(
fclt_f_periode,
eerste_datum_periode_gewerkt,
bsn_client,
client_nr,
prs_client_cak_actie,
hele_uren,
minuten,
txt
)
AS
SELECT fclt_f_periode,
eerste_datum_periode_gewerkt,
bsn_client,
client_nr,
prs_client_cak_actie,
hele_uren,
minuten,
'51' || prs_client_cak_actie || txt
FROM care_v_cak_zorg_pre_record
WHERE prs_client_cak_actie = 1 OR prs_client_cak_actie = 2;
-- MB: let wel: een beetje tricky, maar wel ok!
-- Er mogen alleen clienten in bestand die nog niet eerder zijn aangeleverd (dus alleen de nieuwe clienten van dezer periode)
-- Opgelost via view care_v_first_factuur_uren_ooit en veld datum_eerste_keer_ooit, de allereerste keer dat client zorguren
-- heeft gekregen. Als die gelijk is aan de eerste keer dat zorg in deze periode is gekregen, dan conclusie: nieuwe client.
-- (NB: Niet via persoon-aanmaak datum vergeleken met periode, want dat zegt niet over ontvangen zorguren!!!)
-- Verder accepteert CAK niet dat 1,2 en 3 jan 2010 wordt weergegeven met 2010-week 53, dus in die gevallen wordt dat weeknr 01
-- Dit wordt ook enigszins tricky gedaan, maar wel ok, met verschil tussen beschikking_datum_van 'WW' en 'IW'...
-- Tenslotte de voorletters van client, die moeten zonder puntjes (de replace zorgt ervoor dat puntjes eruit worden gehaald).
-- Usrdata-Key 48 = SLEUTEL van waarde-code 'CLIENTNR' van eigen tabel '$SYSTEM-CAK'
-- (=1 indien gebruikt van expliciet clientnr, anders perslid_key als impliciet nr)
-- Prs_client_cak_actie = 1 betekent: client opnieuw aanmelden bij het CAK.
CREATE OR REPLACE FORCE VIEW care_v_cak_clientstam_record
(
fclt_f_periode,
client_bsn,
txt
)
AS
SELECT cz.fclt_f_periode,
b.client_bsn,
'10'
|| TO_NUMBER (TO_CHAR (MIN (b.beschikking_datum_van), 'IYYY'))
|| LPAD (
TO_NUMBER (TO_CHAR (MIN (b.beschikking_datum_van), 'IW')),
2,
'0')
|| LPAD (COALESCE (MIN (client_nr), ' '), 10, '0')
|| '1'
|| LPAD (COALESCE (MIN (b.prs_client_naam), ' '), 25, ' ')
|| LPAD (COALESCE (MIN (b.prs_client_tussenvoegsel), ' '), 8, ' ')
|| LPAD (
REPLACE (COALESCE (MIN (b.prs_client_voorletters), ' '),
'.',
''),
5,
' ')
|| LPAD (
COALESCE (SUBSTR (MIN (b.client_geboortedatum), 7, 4), ' '),
4)
|| LPAD (
COALESCE (SUBSTR (MIN (b.client_geboortedatum), 4, 2), ' '),
2)
|| LPAD (
COALESCE (SUBSTR (MIN (b.client_geboortedatum), 1, 2), ' '),
2)
|| LPAD (COALESCE (b.client_bsn, ' '), 9, ' ')
|| RPAD (' ', 6, ' ')
FROM care_v_beschikking_all b, care_v_cak_client_zorg_record cz
WHERE cz.bsn_client = b.client_bsn AND b.pgb IS NULL
GROUP BY cz.fclt_f_periode, b.client_bsn;
-- Usrdata-Key 48 = SLEUTEL van waarde-code 'CLIENTNR' van eigen tabel '$SYSTEM-CAK'
-- (=1 indien gebruikt van expliciet clientnr, anders perslid_key als impliciet nr)
-- Prs_client_cak_actie = 1 betekent: client opnieuw aanmelden bij het CAK.
-- Bijzonderheid: gebruik van REGEXP_INSTR om dat vervelende huisnr toevoeging gedoe uit elkaar te trekken.
-- CAK rapport eist dat huisnr ALLEEN numerieke waarden heeft (dus 12A en 20-3 zijn ongeldig en moeten in huisnr toevoeging zitten)
-- Het veld Huisnr (1 in facilitor) verworden in CAK rapport 2 velden 'huisnr' en 'huisnrtoevoeging'
-- Voorbeelden:
-- Facilitor-> CAK
-- huisnr -> huisnr | huisnr toevoeging
-- 12A -> 12 | A
-- 20-3 -> 20 | 3
-- 123 -> 123 |
CREATE OR REPLACE FORCE VIEW care_v_cak_clientaanv_record
(
fclt_f_periode,
client_bsn,
txt
)
AS
SELECT cz.fclt_f_periode,
b.client_bsn,
'12'
|| TO_NUMBER (TO_CHAR (MIN (b.beschikking_datum_van), 'IYYY'))
|| LPAD (
TO_NUMBER (TO_CHAR (MIN (b.beschikking_datum_van), 'IW')),
2,
'0')
|| LPAD (COALESCE (MIN (client_nr), ' '), 10, '0')
|| '1'
|| LPAD (COALESCE (MIN (client_mv), ' '), 1, ' ')
|| UPPER (
LPAD (
COALESCE (REPLACE (MIN (client_postcode), ' ', ''),
' '),
6,
' '))
|| LPAD (
COALESCE (
MIN (
SUBSTR (
client_huisnr,
1,
DECODE (
REGEXP_INSTR (client_huisnr,
'[[:alpha:]]|[-]'),
0, LENGTH (client_huisnr),
REGEXP_INSTR (client_huisnr,
'[[:alpha:]]|[-]')
- 1))),
' '),
5,
' ')
|| LPAD (
COALESCE (
MIN (
SUBSTR (
client_huisnr,
DECODE (
REGEXP_INSTR (client_huisnr,
'[[:alpha:]]|[-]'),
0, LENGTH (client_huisnr) + 1,
REGEXP_INSTR (client_huisnr,
'[[:alpha:]]|[-]')))),
' '),
4,
' ')
|| RPAD (' ', 45, ' ')
FROM care_v_beschikking_all b, care_v_cak_client_zorg_record cz
WHERE cz.bsn_client = b.client_bsn AND b.pgb IS NULL
GROUP BY cz.fclt_f_periode, b.client_bsn;
CREATE OR REPLACE FORCE VIEW care_v_cak_c_clientstam_record
(
fclt_f_periode,
client_bsn,
txt
)
AS
SELECT cz.fclt_f_periode,
b.client_bsn,
'10'
|| TO_NUMBER (TO_CHAR (MIN (b.beschikking_datum_van), 'IYYY'))
|| LPAD (
TO_NUMBER (TO_CHAR (MIN (b.beschikking_datum_van), 'IW')),
2,
'0')
|| LPAD (COALESCE (MIN (client_nr), ' '), 10, '0')
|| '1'
|| LPAD (COALESCE (MIN (b.prs_client_naam), ' '), 25, ' ')
|| LPAD (COALESCE (MIN (b.prs_client_tussenvoegsel), ' '), 8, ' ')
|| LPAD (
REPLACE (COALESCE (MIN (b.prs_client_voorletters), ' '),
'.',
''),
5,
' ')
|| LPAD (
COALESCE (SUBSTR (MIN (b.client_geboortedatum), 7, 4), ' '),
4)
|| LPAD (
COALESCE (SUBSTR (MIN (b.client_geboortedatum), 4, 2), ' '),
2)
|| LPAD (
COALESCE (SUBSTR (MIN (b.client_geboortedatum), 1, 2), ' '),
2)
|| LPAD (COALESCE (b.client_bsn, ' '), 9, ' ')
|| RPAD (' ', 6, ' ')
FROM care_v_beschikking_all b, care_v_cak_changed_zorg_record cz
WHERE cz.bsn_client = b.client_bsn AND b.pgb IS NULL
GROUP BY cz.fclt_f_periode, b.client_bsn;
-- Usrdata-Key 48 = SLEUTEL van waarde-code 'CLIENTNR' van eigen tabel '$SYSTEM-CAK'
-- (=1 indien gebruikt van expliciet clientnr, anders perslid_key als impliciet nr)
-- Prs_client_cak_actie = 1 betekent: client opnieuw aanmelden bij het CAK.
-- Bijzonderheid: gebruik van REGEXP_INSTR om dat vervelende huisnr toevoeging gedoe uit elkaar te trekken.
-- CAK rapport eist dat huisnr ALLEEN numerieke waarden heeft (dus 12A en 20-3 zijn ongeldig en moeten in huisnr toevoeging zitten)
-- Het veld Huisnr (1 in facilitor) verworden in CAK rapport 2 velden 'huisnr' en 'huisnrtoevoeging'
-- Voorbeelden:
-- Facilitor-> CAK
-- huisnr -> huisnr | huisnr toevoeging
-- 12A -> 12 | A
-- 20-3 -> 20 | 3
-- 123 -> 123 |
CREATE OR REPLACE FORCE VIEW care_v_cak_c_clientaanv_record
(
fclt_f_periode,
client_bsn,
txt
)
AS
SELECT cz.fclt_f_periode,
b.client_bsn,
'12'
|| TO_NUMBER (TO_CHAR (MIN (b.beschikking_datum_van), 'IYYY'))
|| LPAD (
TO_NUMBER (TO_CHAR (MIN (b.beschikking_datum_van), 'IW')),
2,
'0')
|| LPAD (COALESCE (MIN (client_nr), ' '), 10, '0')
|| '1'
|| LPAD (COALESCE (MIN (client_mv), ' '), 1, ' ')
|| UPPER (
LPAD (
COALESCE (REPLACE (MIN (client_postcode), ' ', ''),
' '),
6,
' '))
|| LPAD (
COALESCE (
MIN (
SUBSTR (
client_huisnr,
1,
DECODE (
REGEXP_INSTR (client_huisnr,
'[[:alpha:]]|[-]'),
0, LENGTH (client_huisnr),
REGEXP_INSTR (client_huisnr,
'[[:alpha:]]|[-]')
- 1))),
' '),
5,
' ')
|| LPAD (
COALESCE (
MIN (
SUBSTR (
client_huisnr,
DECODE (
REGEXP_INSTR (client_huisnr,
'[[:alpha:]]|[-]'),
0, LENGTH (client_huisnr) + 1,
REGEXP_INSTR (client_huisnr,
'[[:alpha:]]|[-]')))),
' '),
4,
' ')
|| RPAD (' ', 45, ' ')
FROM care_v_beschikking_all b, care_v_cak_changed_zorg_record cz
WHERE cz.bsn_client = b.client_bsn AND b.pgb IS NULL
GROUP BY cz.fclt_f_periode, b.client_bsn;
CREATE OR REPLACE FORCE VIEW care_v_cak_body
(
fclt_f_periode,
hele_uren,
minuten,
txt
)
AS
SELECT fclt_f_periode,
0,
0,
txt
FROM care_v_cak_clientstam_record cs
UNION ALL
SELECT fclt_f_periode,
0,
0,
txt
FROM care_v_cak_clientaanv_record ca
UNION ALL
SELECT fclt_f_periode,
hele_uren,
minuten,
txt
FROM care_v_cak_client_zorg_record cz;
CREATE OR REPLACE FORCE VIEW care_v_cak_changed_body
(
fclt_f_periode,
hele_uren,
minuten,
txt
)
AS
SELECT fclt_f_periode,
0,
0,
txt
FROM care_v_cak_c_clientstam_record cs
UNION ALL
SELECT fclt_f_periode,
0,
0,
txt
FROM care_v_cak_c_clientaanv_record ca
UNION ALL
SELECT fclt_f_periode,
hele_uren,
minuten,
txt
FROM care_v_cak_changed_zorg_record cz;
CREATE OR REPLACE FORCE VIEW care_v_cak_sluit_record
(
fclt_f_periode,
txt
)
AS
SELECT fclt_f_periode,
'90'
|| LPAD (COUNT (*), 7, '0')
|| LPAD (SUM (hele_uren) + FLOOR (SUM (minuten) / 60), 10, '0')
|| LPAD (SUM (minuten) - (60 * FLOOR (SUM (minuten) / 60)),
2,
'0')
|| RPAD (' ', 59, ' ')
FROM care_v_cak_body b
GROUP BY fclt_f_periode;
CREATE OR REPLACE FORCE VIEW care_v_cak_sluit2_record
(
fclt_f_periode,
txt
)
AS
SELECT fclt_f_periode,
'90'
|| LPAD (COUNT (*), 7, '0')
|| LPAD (SUM (hele_uren) + FLOOR (SUM (minuten) / 60), 10, '0')
|| LPAD (SUM (minuten) - (60 * FLOOR (SUM (minuten) / 60)),
2,
'0')
|| RPAD (' ', 59, ' ')
FROM care_v_cak_changed_body b
GROUP BY fclt_f_periode;
CREATE OR REPLACE FORCE VIEW care_v_cak_rapport
(
fclt_f_periode,
fclt_f_record,
txt
)
AS
SELECT h.fclt_f_periode, SUBSTR (h.txt, 1, 2), h.txt
FROM care_v_cak_hoofd_record h
UNION ALL
SELECT b.fclt_f_periode, SUBSTR (b.txt, 1, 2), b.txt
FROM care_v_cak_body b
UNION ALL
SELECT s.fclt_f_periode, SUBSTR (s.txt, 1, 2), s.txt
FROM care_v_cak_sluit_record s;
CREATE OR REPLACE FORCE VIEW care_v_cak_changed_rapport
(
fclt_f_periode,
fclt_f_record,
txt
)
AS
SELECT h.fclt_f_periode, SUBSTR (h.txt, 1, 2), h.txt
FROM care_v_cak_hoofd_record h
UNION ALL
SELECT b.fclt_f_periode, SUBSTR (b.txt, 1, 2), b.txt
FROM care_v_cak_changed_body b
UNION ALL
SELECT s.fclt_f_periode, SUBSTR (s.txt, 1, 2), s.txt
FROM care_v_cak_sluit2_record s;
-- Key 47 = SLEUTEL van waarde-code 'PERIODE' van eigen tabel '$SYSTEM-CAK' (formaat = yyyy-ww t/m yyyy-ww)
-- Gekozen: 0 = optie
-- 1 = gekozen
-- 2 = laatste export datum
-- 3 = export datum gezet
CREATE OR REPLACE FORCE VIEW care_v_rap_cak
(
periode,
gekozen
)
AS
SELECT fclt_f_periode, 0
FROM care_v_cak_choose_periode
GROUP BY fclt_f_periode
UNION
SELECT ud1.fac_usrdata_omschr, 1
FROM fac_usrdata ud1
WHERE ud1.fac_usrdata_key = 47
UNION
SELECT TO_CHAR (MAX (imp_schedule_done), 'DD-MM-YYYY HH24:MI'), 2
FROM imp_schedule
WHERE imp_schedule_name = 'CAK'
AND imp_schedule_done IS NOT NULL
AND imp_schedule_aanmaak IS NOT NULL
UNION
SELECT TO_CHAR (imp_schedule_aanmaak, 'DD-MM-YYYY HH24:MI'), 3
FROM imp_schedule
WHERE imp_schedule_name = 'CAK'
AND imp_schedule_done IS NULL
AND imp_schedule_aanmaak IS NOT NULL
UNION
SELECT TO_CHAR (COUNT (*)), 4
FROM care_v_cak_clientcontrole
WHERE fout_code = 'E';
CREATE OR REPLACE FORCE VIEW care_v_rap_cak_chg
(
periode,
gekozen
)
AS
SELECT fclt_f_periode, 0
FROM care_v_cak_choose_periode
GROUP BY fclt_f_periode
UNION
SELECT ud1.fac_usrdata_omschr, 1
FROM fac_usrdata ud1
WHERE ud1.fac_usrdata_key = 47
UNION
SELECT TO_CHAR (MAX (imp_schedule_done), 'DD-MM-YYYY HH24:MI'), 2
FROM imp_schedule
WHERE imp_schedule_name = 'CAK_CHG'
AND imp_schedule_done IS NOT NULL
AND imp_schedule_aanmaak IS NOT NULL
UNION
SELECT TO_CHAR (imp_schedule_aanmaak, 'DD-MM-YYYY HH24:MI'), 3
FROM imp_schedule
WHERE imp_schedule_name = 'CAK_CHG'
AND imp_schedule_done IS NULL
AND imp_schedule_aanmaak IS NOT NULL
UNION
SELECT TO_CHAR (COUNT (*)), 4
FROM care_v_cak_clientcontrole
WHERE fout_code = 'E';
-- Menutaak Export CAK bestand: appl/fac/fac_usrrap.asp?rap_name=care_v_rap_cak
-- Key 47 = SLEUTEL van waarde-code 'PERIODE' van eigen tabel '$SYSTEM-CAK' (formaat = yyyy-ww t/m yyyy-ww)
-- Gekozen: 0 = optie
-- 1 = gekozen
-- 2 = laatste export datum
-- 3 = export datum gezet
CREATE OR REPLACE FORCE VIEW care_v_export_cak
(
result,
result_order
)
AS
SELECT txt, ROWNUM
FROM care_v_cak_rapport
WHERE fclt_f_periode = (SELECT ud1.fac_usrdata_omschr
FROM fac_usrdata ud1
WHERE ud1.fac_usrdata_key = 47)
ORDER BY TO_NUMBER (SUBSTR (txt, 1, 2));
CREATE OR REPLACE FORCE VIEW care_v_export_cak_chg
(
result,
result_order
)
AS
SELECT txt, ROWNUM
FROM care_v_cak_changed_rapport
WHERE fclt_f_periode = (SELECT ud1.fac_usrdata_omschr
FROM fac_usrdata ud1
WHERE ud1.fac_usrdata_key = 47)
ORDER BY TO_NUMBER (SUBSTR (txt, 1, 2));
-- QlikView/Analyze views
--
-- Periodetabel van 10 jaar in het verleden t/m 10 jaar in toekomst
CREATE OR REPLACE FORCE VIEW care_v_qvw_periodeweektabel
(
jaar,
periode,
week,
maandag
)
AS
SELECT TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IYYY') jaar,
LEAST (
FLOOR ((TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') - 1) / 4)
+ 1,
13) 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,
LEAST (
FLOOR ((TO_CHAR (SYSDATE + 7 * (LEVEL), 'IW') - 1) / 4) + 1,
13) 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-view: per melding-key de eerste datum waarop er zorg is verleend (en is goedgekeurd).
CREATE OR REPLACE FORCE VIEW care_v_qvw_first_gewerkte_uren
AS
SELECT b.mld_melding_key,
MIN (uur.datum_gewerkt) AS datum_eerste_keer_ooit
FROM care_v_beschikking_all b, care_v_te_factureren_uren uur
WHERE b.mld_melding_key = uur.mld_melding_key(+)
GROUP BY b.mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_qvw_beschikk
AS
SELECT b.mld_melding_key,
b.gemeente_key,
b.gemeente_code,
b.gemeente_omschrijving,
b.gemeente_veiling,
b.prs_client_naam
|| ','
|| prs_client_tussenvoegsel
|| ','
|| prs_client_voorletters
AS prs_client_naam,
b.client_bsn,
b.client_mv,
TO_DATE (b.client_geboortedatum, 'DD-MM-YYYY')
client_geboortedatum,
b.client_woonplaats,
b.beschikking_datum_van,
DECODE (
ABS (
TO_NUMBER (TO_CHAR (b.beschikking_datum_van, 'IW'))
- TO_NUMBER (TO_CHAR (b.beschikking_datum_van, 'WW'))),
0, TO_NUMBER (TO_CHAR (b.beschikking_datum_van, 'IW')),
1, TO_NUMBER (TO_CHAR (b.beschikking_datum_van, 'IW')),
TO_NUMBER (TO_CHAR (b.beschikking_datum_van, 'WW')))
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,
COALESCE (b.pgb, 0)
pgb,
b.pgb_tarief,
b.uren_beschikking,
b.beschikking_nr,
b.ins_discipline_omschrijving
FROM care_v_beschikking_all b, care_v_qvw_first_gewerkte_uren u
WHERE b.mld_melding_key = u.mld_melding_key;
CREATE OR REPLACE FORCE VIEW care_v_qvw_gemeente_tarieven
(
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;
-- FSN#25608: CARE_V_QVW_BESCHIKK_PER_WEEK te complex voor Ora11, dus bovenstaande care_v_qvw_tarieven_per_week nu op statische tabel gebaseerd.
CREATE OR REPLACE FORCE VIEW care_v_qvw_tarieven_per_week
(
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_t_qvw_periodeweektabel pw
WHERE pw.maandag >= vandatum AND pw.maandag <= tmdatum;
CREATE OR REPLACE FORCE VIEW care_v_qvw_beschikk_per_week
(
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,
CASE
WHEN b.pgb = 1 THEN b.pgb_tarief
WHEN b.gemeente_veiling = 1 THEN b.pgb_tarief
ELSE t.tarief
END,
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 OR REPLACE FORCE VIEW care_v_qvw_zorguren
AS
SELECT u.mld_melding_key,
u.jaar,
DECODE (
ABS (
TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'IW'))
- TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'WW'))),
0, TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'IW')),
1, TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'IW')),
TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'WW')))
weeknr,
u.datum_gewerkt,
u.uren_besteed,
z.prs_verzorger_naam
|| ','
|| z.prs_verzorger_tussenvoegsel
|| ','
|| z.prs_verzorger_voorletters
AS prs_verzorger_naam,
z.verzorger_bsn,
z.verzorger_mv,
TO_DATE (z.verzorger_geboortedatum, 'DD-MM-YYYY')
verzorger_geboortedatum,
z.verzorger_woonplaats,
z.prs_verzorger_dienstverband
FROM care_v_bestede_uren_all u, care_v_verzorger z
WHERE z.prs_perslid_key = u.prs_perslid_key(+) AND uren_status >= 3;
CREATE OR REPLACE FORCE VIEW care_v_qvw_impr_uren
AS
SELECT u.mld_impropdr_key,
u.mld_impropdr_code,
u.mld_impropdr_omschrijving,
u.jaar,
DECODE (
ABS (
TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'IW'))
- TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'WW'))),
0, TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'IW')),
1, TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'IW')),
TO_NUMBER (TO_CHAR (u.datum_gewerkt, 'WW')))
weeknr,
u.datum_gewerkt,
u.uren_besteed
AS impr_uren,
z.prs_verzorger_naam
|| ','
|| z.prs_verzorger_tussenvoegsel
|| ','
|| z.prs_verzorger_voorletters
AS prs_verzorger_naam,
z.verzorger_bsn
FROM care_v_improductieve_uren_all u, care_v_verzorger z
WHERE z.prs_perslid_key = u.prs_perslid_key(+) AND uren_status >= 3;
CREATE OR REPLACE FORCE VIEW care_v_qvw_kosten
AS
SELECT mld_kosten_code,
mld_kosten_omschrijving,
mld_opdruren_kosten_besteed,
mld_kosten_kosten,
k.mld_melding_key,
TO_CHAR (k.datum, 'IYYY') jaar,
TO_NUMBER (TO_CHAR (k.datum, 'IW')) weeknr,
k.datum AS datum_gewerkt,
z.prs_verzorger_naam
|| ','
|| z.prs_verzorger_tussenvoegsel
|| ','
|| z.prs_verzorger_voorletters AS prs_verzorger_naam,
z.verzorger_bsn
FROM care_v_onkosten_all k, care_v_verzorger z
WHERE z.prs_perslid_key = k.prs_perslid_key(+) AND status >= 3;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Google kilometer berekening --
-- Google kilometer berekening --
-- Google kilometer berekening --
-- Google kilometer berekening --
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- ATCH#21595: Google km berekening
-- Kilometers van de medewerkers op datum, alleen van auto (vandaar k.mld_kosten_code = 'A') en de Productieve uren (vandaar opdracht_type = 'P').
-- De improductieve kilometers worden buiten beschouwing gelaten, aangezien we daarvan geen adresgegevens hebben, en met de Google-vergelijking niet mee moeten nemen.
CREATE OR REPLACE FORCE VIEW care_v_km_weekbrief
(
prs_perslid_key,
periode,
bsn,
nr,
verzorger,
adres,
huisnr,
postcode,
woonplaats,
telefoon,
mobiel,
email,
auto_rijbewijs,
kilometers,
datum,
jaar,
week,
status,
mld_opdr_uren_key,
prs_client_naam,
prs_client_tussenvoegsel,
prs_client_voorletters,
client_bsn,
client_meisjesnaam,
client_adres,
client_huisnr,
client_postcode,
client_woonplaats,
client_telefoon_thuis,
client_telefoon_werk,
client_mobiel
)
AS
SELECT v.prs_perslid_key,
uur.jaar || '-' || LPAD (uur.periodenr, 2, '0'),
v.verzorger_bsn,
v.prs_verzorger_personeelsnr,
v.prs_verzorger_naam
|| ','
|| v.prs_verzorger_voorletters
|| ' '
|| v.prs_verzorger_tussenvoegsel,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
v.prs_verzorger_email,
v.auto_rijbewijs,
ouk.mld_opdruren_kosten_besteed,
uur.datum_gewerkt,
uur.jaar,
uur.weeknr,
uur.uren_status,
uur.mld_opdr_uren_key,
c.prs_client_naam,
c.prs_client_tussenvoegsel,
c.prs_client_voorletters,
c.client_bsn,
c.client_meisjesnaam,
c.client_adres,
c.client_huisnr,
c.client_postcode,
c.client_woonplaats,
c.client_telefoon_thuis,
c.client_telefoon_werk,
c.prs_client_mobiel
FROM care_v_totaal_uren_all uur,
care_v_verzorger v,
mld_opdruren_kosten ouk,
mld_kosten k,
mld_opdr o,
mld_melding m,
care_v_client c
WHERE uur.prs_perslid_key = v.prs_perslid_key
AND uur.mld_opdr_uren_key = ouk.mld_opdr_uren_key
AND ouk.mld_kosten_key = k.mld_kosten_key
AND k.mld_kosten_verwijder IS NULL
AND k.mld_kosten_code = 'A'
AND opdracht_type = 'P'
AND uur.opdracht_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key = c.prs_client_key;
CREATE OR REPLACE FORCE VIEW care_v_verzorger_km_per_dag
(
prs_perslid_key,
datum,
jaar,
periode,
week,
bsn,
verzorger,
adres,
huisnr,
postcode,
woonplaats,
telefoon,
mobiel,
email,
auto_rijbewijs,
kilometers,
mld_opdr_uren_key
)
AS
SELECT prs_perslid_key,
datum,
MIN (jaar),
MIN (periode),
MIN (week),
MIN (bsn),
MIN (verzorger),
MIN (adres),
MIN (huisnr),
MIN (postcode),
MIN (woonplaats),
MIN (telefoon),
MIN (mobiel),
MIN (email),
MIN (auto_rijbewijs),
SUM (kilometers),
MIN (mld_opdr_uren_key)
FROM care_v_km_weekbrief
GROUP BY prs_perslid_key, datum;
CREATE OR REPLACE FORCE VIEW care_v_opdruren_dagkosten
AS
SELECT mld_opdruren_dagkosten_key,
prs_perslid_key,
mld_opdruren_dagkosten_datum,
mld_opdruren_dagkosten_aantal,
mld_opdruren_dagkosten_totaal,
CASE
WHEN INSTR (mld_opdruren_dagkosten_opm, '#') > 0
THEN
SUBSTR (mld_opdruren_dagkosten_opm,
1,
INSTR (mld_opdruren_dagkosten_opm, '#') - 1)
ELSE
mld_opdruren_dagkosten_opm
END mld_opdruren_dagkosten_opm,
mld_opdruren_dagkosten_aanmaak,
CASE
WHEN INSTR (mld_opdruren_dagkosten_opm, '#') > 0
THEN
fac.safe_to_number (
SUBSTR (mld_opdruren_dagkosten_opm,
INSTR (mld_opdruren_dagkosten_opm, '#') + 1))
ELSE
0
END interkm
FROM mld_opdruren_dagkosten;
CREATE OR REPLACE FORCE VIEW care_v_rap_km_per_periode
(
hide_f_prs_perslid_key,
fclt_f_jaar,
fclt_f_periode,
fclt_f_verzorger,
woonplaats,
fclt_f_auto,
km,
norm_km,
verschil,
perc
)
AS
SELECT km.prs_perslid_key,
TO_CHAR (km.jaar),
km.periode,
MIN (km.verzorger),
MIN (km.woonplaats),
COALESCE (MIN (km.auto_rijbewijs), '?'),
SUM (km.kilometers),
ROUND ((SUM (cd.mld_opdruren_dagkosten_totaal + 500)) / 1000),
SUM (km.kilometers)
- ROUND ((SUM (cd.mld_opdruren_dagkosten_totaal + 500)) / 1000),
CASE
WHEN SUM (cd.mld_opdruren_dagkosten_totaal) > 0
THEN
ROUND (
( SUM (km.kilometers)
- ROUND (
(SUM (
cd.mld_opdruren_dagkosten_totaal
+ 500))
/ 1000))
/ ROUND (
(SUM (
cd.mld_opdruren_dagkosten_totaal + 500))
/ 1000)
* 100)
|| ' %'
ELSE
'Onbekend'
END
FROM care_v_verzorger_km_per_dag km, care_v_opdruren_dagkosten cd
WHERE km.prs_perslid_key = cd.prs_perslid_key(+)
AND km.datum = cd.mld_opdruren_dagkosten_datum(+)
GROUP BY km.prs_perslid_key, km.jaar, km.periode;
CREATE OR REPLACE FORCE VIEW care_v_rap_km_per_week
(
hide_f_prs_perslid_key,
fclt_f_jaar,
fclt_f_periode,
fclt_f_week,
fclt_f_verzorger,
woonplaats,
fclt_f_auto,
km,
norm_km,
verschil,
perc
)
AS
SELECT km.prs_perslid_key,
TO_CHAR (km.jaar),
km.periode,
TO_CHAR (km.week),
MIN (km.verzorger),
MIN (km.woonplaats),
COALESCE (MIN (km.auto_rijbewijs), '?'),
SUM (km.kilometers),
ROUND ((SUM (cd.mld_opdruren_dagkosten_totaal + 500)) / 1000),
SUM (km.kilometers)
- ROUND ((SUM (cd.mld_opdruren_dagkosten_totaal + 500)) / 1000),
CASE
WHEN SUM (cd.mld_opdruren_dagkosten_totaal) > 0
THEN
ROUND (
( SUM (km.kilometers)
- ROUND (
(SUM (
cd.mld_opdruren_dagkosten_totaal
+ 500))
/ 1000))
/ ROUND (
(SUM (
cd.mld_opdruren_dagkosten_totaal + 500))
/ 1000)
* 100)
|| ' %'
ELSE
'Onbekend'
END
FROM care_v_verzorger_km_per_dag km, care_v_opdruren_dagkosten cd
WHERE km.prs_perslid_key = cd.prs_perslid_key(+)
AND km.datum = cd.mld_opdruren_dagkosten_datum(+)
GROUP BY km.prs_perslid_key,
km.jaar,
km.periode,
km.week;
CREATE OR REPLACE FORCE VIEW care_v_rap_km_per_dag
(
hide_f_prs_perslid_key,
urole,
hide_f_datum,
datum,
hide_maandag,
fclt_f_jaar,
fclt_f_periode,
fclt_f_week,
fclt_f_verzorger,
adres,
huisnr,
postcode,
woonplaats,
telefoonnr,
mobiel,
fclt_f_auto,
clienten,
km,
norm_m,
norm_km,
verschil,
fclt_f_staffel,
perc,
fclt_f_percentage,
url,
html_berekening,
mld_opdr_uren_key
)
AS
SELECT km.prs_perslid_key,
'bo',
km.datum,
TO_CHAR (km.datum, 'yyyy-mm-dd'),
TO_CHAR (TRUNC (km.datum, 'IW'), 'yyyy-mm-dd'),
TO_CHAR (km.jaar),
km.periode,
TO_CHAR (km.week),
km.verzorger,
km.adres,
km.huisnr,
km.postcode,
km.woonplaats,
km.telefoon,
km.mobiel,
COALESCE (km.auto_rijbewijs, '?'),
TO_CHAR (cd.mld_opdruren_dagkosten_aantal),
km.kilometers,
COALESCE (cd.mld_opdruren_dagkosten_totaal, 0),
ROUND ((cd.mld_opdruren_dagkosten_totaal + 500) / 1000),
CASE
WHEN cd.mld_opdruren_dagkosten_totaal > 0
THEN
km.kilometers
- ROUND ((cd.mld_opdruren_dagkosten_totaal + 500) / 1000)
ELSE
0
END,
CASE
WHEN cd.mld_opdruren_dagkosten_totaal > 0
THEN
CASE
WHEN km.kilometers
- ROUND (
(cd.mld_opdruren_dagkosten_totaal + 500)
/ 1000) <=
-2
THEN
'A. < (Minder dan NORM geschreven)'
WHEN km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) >=
-1
AND km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) <=
1
THEN
'B. = (Volgens NORM geschreven)'
WHEN km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) >=
2
AND km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) <=
5
THEN
'C. 2 - 5 km (Boven NORM geschreven)'
WHEN km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) >=
6
AND km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) <=
10
THEN
'D. 6 - 10 km (Boven NORM geschreven)'
WHEN km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) >=
11
AND km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) <=
20
THEN
'E. 11 - 20 km (Boven NORM geschreven)'
WHEN km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) >=
21
AND km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) <=
50
THEN
'F. 21 - 50 km (Boven NORM geschreven)'
WHEN km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) >=
51
AND km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000) <=
100
THEN
'G. 51 - 100 km (Boven NORM geschreven)'
ELSE
'H. > 100 km (Boven NORM geschreven)'
END
ELSE
'Onbekend'
END,
CASE
WHEN cd.mld_opdruren_dagkosten_totaal > 0
THEN
ROUND (
( km.kilometers
- ROUND (
(cd.mld_opdruren_dagkosten_totaal + 500)
/ 1000))
/ ROUND (
(cd.mld_opdruren_dagkosten_totaal + 500)
/ 1000)
* 100)
|| ' %'
ELSE
'Onbekend'
END,
CASE
WHEN cd.mld_opdruren_dagkosten_totaal > 0
THEN
CASE
WHEN ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) <
0
THEN
'A. < % (Minder dan NORM geschreven)'
WHEN ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) =
0
THEN
'B. = (Volgens NORM geschreven)'
WHEN ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) >
0
AND ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) <=
10
THEN
'C. 0 - 10% (Boven NORM geschreven)'
WHEN ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) >
10
AND ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) <=
20
THEN
'D. 11 - 20% (Boven NORM geschreven)'
WHEN ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) >
20
AND ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) <=
50
THEN
'E. 21 - 50% (Boven NORM geschreven)'
WHEN ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) >
51
AND ROUND (
( km.kilometers
- ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000))
/ ROUND (
( cd.mld_opdruren_dagkosten_totaal
+ 500)
/ 1000)
* 100) <=
100
THEN
'F. 51 - 100% (Boven NORM geschreven)'
ELSE
'G. > 100 % (Boven NORM geschreven)'
END
ELSE
'Onbekend'
END,
mld_opdruren_dagkosten_opm,
CASE
WHEN cd.mld_opdruren_dagkosten_totaal IS NULL
THEN
'<a href="..\..\appl\care\care_calc_dist.asp?mld_opdr_uren_key='
|| km.mld_opdr_uren_key
|| '"><img src="..\..\appl\care\images\vraagje.png"></a>'
WHEN cd.mld_opdruren_dagkosten_totaal < 0
THEN
'<a href="..\..\appl\care\care_calc_dist.asp?mld_opdr_uren_key='
|| km.mld_opdr_uren_key
|| '"><img src="..\..\appl\care\images\foutje.png"></a>'
ELSE
'<a href="'
|| cd.mld_opdruren_dagkosten_opm
|| '" target="_blank"><img src="..\..\appl\care\images\googlemaps.png"></a>'
END,
km.mld_opdr_uren_key
FROM care_v_verzorger_km_per_dag km, care_v_opdruren_dagkosten cd
WHERE km.prs_perslid_key = cd.prs_perslid_key(+)
AND km.datum = cd.mld_opdruren_dagkosten_datum(+);
-- Rapport "Ondersteuning/check t.b.v. ingevulde kilometers op de weekbrief" voor de verzorger
-- Dit rapport gaat max. 2 periodes, feitelijk 2x4=8 weken terug in de historie (tov nu)
CREATE OR REPLACE FORCE VIEW care_v_rap_my_km_per_dag
(
fclt_3d_user_key,
urole,
datum,
hide_maandag,
fclt_f_jaar,
fclt_f_periode,
fclt_f_week,
clienten,
km,
norm_m,
norm_km,
verschil,
hide_f_staffel,
perc,
hide_f_percentage,
url,
html_berekening,
mld_opdr_uren_key
)
AS
SELECT hide_f_prs_perslid_key,
'fe',
datum,
hide_maandag,
fclt_f_jaar,
fclt_f_periode,
fclt_f_week,
clienten,
km,
norm_m,
norm_km,
verschil,
fclt_f_staffel,
perc,
fclt_f_percentage,
url,
html_berekening,
mld_opdr_uren_key
FROM care_v_rap_km_per_dag
WHERE hide_f_datum >= SYSDATE - 2 * 4 * 7;
------------------------------------------------------
-- Kilometers met de auto gereden bij improductieve uren, zoals coordinatie en werkoverleg
CREATE OR REPLACE FORCE VIEW care_v_km_improd_dag
(
prs_perslid_key,
periode,
bsn,
nr,
verzorger,
adres,
huisnr,
postcode,
woonplaats,
telefoon,
mobiel,
email,
auto_rijbewijs,
kilometers,
datum,
jaar,
week,
status,
mld_opdr_uren_key,
improductief
)
AS
SELECT v.prs_perslid_key,
uur.jaar || '-' || LPAD (uur.periodenr, 2, '0'),
v.verzorger_bsn,
v.prs_verzorger_personeelsnr,
v.prs_verzorger_naam
|| ','
|| v.prs_verzorger_voorletters
|| ' '
|| v.prs_verzorger_tussenvoegsel,
v.verzorger_adres,
v.verzorger_huisnr,
v.verzorger_postcode,
v.verzorger_woonplaats,
v.verzorger_telefoon_werk,
v.prs_verzorger_mobiel,
v.prs_verzorger_email,
v.auto_rijbewijs,
ouk.mld_opdruren_kosten_besteed,
uur.datum_gewerkt,
uur.jaar,
uur.weeknr,
uur.uren_status,
uur.mld_opdr_uren_key,
io.mld_impropdr_omschrijving
FROM care_v_totaal_uren_all uur,
care_v_verzorger v,
mld_opdruren_kosten ouk,
mld_kosten k,
mld_impropdr io
WHERE uur.prs_perslid_key = v.prs_perslid_key
AND uur.mld_opdr_uren_key = ouk.mld_opdr_uren_key
AND ouk.mld_kosten_key = k.mld_kosten_key
AND k.mld_kosten_verwijder IS NULL
AND k.mld_kosten_code = 'A'
AND opdracht_type = 'I'
AND io.mld_impropdr_key = uur.opdracht_key;
CREATE OR REPLACE FORCE VIEW care_v_rap_km_impr_periode
(
hide_f_prs_perslid_key,
fclt_f_jaar,
fclt_f_periode,
fclt_f_verzorger,
woonplaats,
fclt_f_auto,
km
)
AS
SELECT km.prs_perslid_key,
TO_CHAR (km.jaar),
km.periode,
MIN (km.verzorger),
MIN (km.woonplaats),
COALESCE (MIN (km.auto_rijbewijs), '?'),
SUM (km.kilometers)
FROM care_v_km_improd_dag km
GROUP BY km.prs_perslid_key, km.jaar, km.periode;
-- matchtype = A (mAtch tussen medewerker werktijden en opdrachttijd),
-- = B (medewerker is Beschikbaar, en heeft hier geen opdracht,
-- = C (de opdrachttijd Conflicteert met de medewerker's werktijden).
-- Deel A: uitvoeringsplan valt geheel of gedeeltelijk binnen de inzetbaarheid van een persoon, opgesplits in A1 en A2:
-- A1:goede => mvan en mtot vallen binnen werktijd
-- A2:foute => mvan en/of mtot vallen/valt buiten werktijd
-- Deel B: Persoon is beschikbaar, maar er is geen uitvoeringsplan binnen zijn tijd ingepland
-- Deel C: Persoon is niet beschikbaar, maar er is wel een uitvoeringsplan op die tijd voor hem ingepland
-- Deel D: Persoon is niet ingepland en persoon heeft geen uitvoeringsplan op deze dag.
CREATE OR REPLACE FORCE VIEW care_v_capaciteitsplan
(
prs_perslid_inzetbaar_key,
mld_opdr_uitvoeren_key,
prs_perslid_key,
opdr_van,
opdr_tot,
pvan,
ptot,
opdr_vantijd,
opdr_tottijd,
pvantijd,
ptottijd,
firstvan,
dag,
verzorger_naam,
client_naam,
mld_opdr_key,
mld_melding_key,
mld_opdr_startdatum,
mld_opdr_einddatum,
mld_opdr_uitvoeren_infrequent,
matchtype
)
AS
SELECT DISTINCT
pi.prs_perslid_inzetbaar_key inzetbaar_key,
mu.mld_opdr_uitvoeren_key uitvoeren_key,
p.prs_perslid_key prs_key,
mu.mld_opdr_uitvoeren_van mvan,
mu.mld_opdr_uitvoeren_tot mtot,
pi.prs_perslid_inzetbaar_van pvan,
pi.prs_perslid_inzetbaar_tot ptot,
(CASE
WHEN FLOOR (mu.mld_opdr_uitvoeren_van / 60) < 10
THEN
'0'
ELSE
''
END)
|| FLOOR (mu.mld_opdr_uitvoeren_van / 60)
|| ':'
|| (CASE
WHEN MOD (mu.mld_opdr_uitvoeren_van, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (mu.mld_opdr_uitvoeren_van, 60) mvantijd,
(CASE
WHEN FLOOR (mu.mld_opdr_uitvoeren_tot / 60) < 10
THEN
'0'
ELSE
''
END)
|| FLOOR (mu.mld_opdr_uitvoeren_tot / 60)
|| ':'
|| (CASE
WHEN MOD (mu.mld_opdr_uitvoeren_tot, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (mu.mld_opdr_uitvoeren_tot, 60) mtottijd,
(CASE
WHEN FLOOR (pi.prs_perslid_inzetbaar_van / 60) <
10
THEN
'0'
ELSE
''
END)
|| FLOOR (pi.prs_perslid_inzetbaar_van / 60)
|| ':'
|| (CASE
WHEN MOD (pi.prs_perslid_inzetbaar_van, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (pi.prs_perslid_inzetbaar_van, 60) pvantijd,
(CASE
WHEN FLOOR (pi.prs_perslid_inzetbaar_tot / 60) <
10
THEN
'0'
ELSE
''
END)
|| FLOOR (pi.prs_perslid_inzetbaar_tot / 60)
|| ':'
|| (CASE
WHEN MOD (pi.prs_perslid_inzetbaar_tot, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (pi.prs_perslid_inzetbaar_tot, 60) ptottijd,
CASE
WHEN pi.prs_perslid_inzetbaar_van <
mu.mld_opdr_uitvoeren_van
THEN
pi.prs_perslid_inzetbaar_van
ELSE
mu.mld_opdr_uitvoeren_van
END firstvan,
CASE
WHEN mu.mld_opdr_uitvoeren_dag = 0 THEN 7
ELSE mu.mld_opdr_uitvoeren_dag
END dag,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p.prs_perslid_key) prs_naam,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p1.prs_perslid_key) prs_client,
o.mld_opdr_key opdr_key,
m.mld_melding_key mld_key,
o.mld_opdr_datumbegin startdatum,
o.mld_opdr_einddatum einddatum,
mu.mld_opdr_uitvoeren_infrequent infrequent,
'A1' part
FROM prs_perslid_inzetbaar pi,
prs_perslid p,
mld_opdr o,
mld_melding m,
prs_perslid p1,
mld_opdr_uitvoeren mu
WHERE pi.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_key = o.mld_uitvoerende_keys
AND p.prs_afdeling_key = 21 -- LET OP: Dit is de klantspecifieke afdeling "HV-medewrk"
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key_voor = p1.prs_perslid_key
AND o.mld_opdr_key = mu.mld_opdr_key
AND pi.prs_perslid_inzetbaar_dag = mu.mld_opdr_uitvoeren_dag
AND o.mld_opdr_einddatum >= TRUNC (SYSDATE)
AND ( pi.prs_perslid_inzetbaar_van <= mu.mld_opdr_uitvoeren_van
AND pi.prs_perslid_inzetbaar_tot >= mu.mld_opdr_uitvoeren_tot)
UNION ALL
SELECT DISTINCT
pi.prs_perslid_inzetbaar_key inzetbaar_key,
mu.mld_opdr_uitvoeren_key uitvoeren_key,
p.prs_perslid_key prs_key,
mu.mld_opdr_uitvoeren_van mvan,
mu.mld_opdr_uitvoeren_tot mtot,
pi.prs_perslid_inzetbaar_van pvan,
pi.prs_perslid_inzetbaar_tot ptot,
(CASE
WHEN FLOOR (mu.mld_opdr_uitvoeren_van / 60) < 10
THEN
'0'
ELSE
''
END)
|| FLOOR (mu.mld_opdr_uitvoeren_van / 60)
|| ':'
|| (CASE
WHEN MOD (mu.mld_opdr_uitvoeren_van, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (mu.mld_opdr_uitvoeren_van, 60) mvantijd,
(CASE
WHEN FLOOR (mu.mld_opdr_uitvoeren_tot / 60) < 10
THEN
'0'
ELSE
''
END)
|| FLOOR (mu.mld_opdr_uitvoeren_tot / 60)
|| ':'
|| (CASE
WHEN MOD (mu.mld_opdr_uitvoeren_tot, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (mu.mld_opdr_uitvoeren_tot, 60) mtottijd,
(CASE
WHEN FLOOR (pi.prs_perslid_inzetbaar_van / 60) <
10
THEN
'0'
ELSE
''
END)
|| FLOOR (pi.prs_perslid_inzetbaar_van / 60)
|| ':'
|| (CASE
WHEN MOD (pi.prs_perslid_inzetbaar_van, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (pi.prs_perslid_inzetbaar_van, 60) pvantijd,
(CASE
WHEN FLOOR (pi.prs_perslid_inzetbaar_tot / 60) <
10
THEN
'0'
ELSE
''
END)
|| FLOOR (pi.prs_perslid_inzetbaar_tot / 60)
|| ':'
|| (CASE
WHEN MOD (pi.prs_perslid_inzetbaar_tot, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (pi.prs_perslid_inzetbaar_tot, 60) ptottijd,
CASE
WHEN pi.prs_perslid_inzetbaar_van <
mu.mld_opdr_uitvoeren_van
THEN
pi.prs_perslid_inzetbaar_van
ELSE
mu.mld_opdr_uitvoeren_van
END firstvan,
CASE
WHEN mu.mld_opdr_uitvoeren_dag = 0 THEN 7
ELSE mu.mld_opdr_uitvoeren_dag
END dag,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p.prs_perslid_key) prs_naam,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p1.prs_perslid_key) prs_client,
o.mld_opdr_key opdr_key,
m.mld_melding_key mld_key,
o.mld_opdr_datumbegin startdatum,
o.mld_opdr_einddatum einddatum,
mu.mld_opdr_uitvoeren_infrequent infrequent,
'A2' part
FROM prs_perslid_inzetbaar pi,
prs_perslid p,
mld_opdr o,
mld_melding m,
prs_perslid p1,
mld_opdr_uitvoeren mu
WHERE pi.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_key = o.mld_uitvoerende_keys
AND p.prs_afdeling_key = 21 -- LET OP: Dit is de klantspecifieke afdeling "HV-medewrk"
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key_voor = p1.prs_perslid_key
AND o.mld_opdr_key = mu.mld_opdr_key
AND pi.prs_perslid_inzetbaar_dag = mu.mld_opdr_uitvoeren_dag
AND o.mld_opdr_einddatum >= TRUNC (SYSDATE)
AND ( ( pi.prs_perslid_inzetbaar_van >
mu.mld_opdr_uitvoeren_van
AND pi.prs_perslid_inzetbaar_van <
mu.mld_opdr_uitvoeren_tot)
OR ( pi.prs_perslid_inzetbaar_tot >
mu.mld_opdr_uitvoeren_van
AND pi.prs_perslid_inzetbaar_tot <
mu.mld_opdr_uitvoeren_tot))
UNION ALL
SELECT pi.prs_perslid_inzetbaar_key inzetbaar_key,
NULL uitvoeren_key,
p.prs_perslid_key prs_key,
NULL mvan,
NULL mtot,
pi.prs_perslid_inzetbaar_van pvan,
pi.prs_perslid_inzetbaar_tot ptot,
NULL mvantijd,
NULL mtottijd,
(CASE
WHEN FLOOR (pi.prs_perslid_inzetbaar_van / 60) < 10
THEN
'0'
ELSE
''
END)
|| FLOOR (pi.prs_perslid_inzetbaar_van / 60)
|| ':'
|| (CASE
WHEN MOD (pi.prs_perslid_inzetbaar_van, 60) < 10 THEN '0'
ELSE ''
END)
|| MOD (pi.prs_perslid_inzetbaar_van, 60) pvantijd,
(CASE
WHEN FLOOR (pi.prs_perslid_inzetbaar_tot / 60) < 10
THEN
'0'
ELSE
''
END)
|| FLOOR (pi.prs_perslid_inzetbaar_tot / 60)
|| ':'
|| (CASE
WHEN MOD (pi.prs_perslid_inzetbaar_tot, 60) < 10 THEN '0'
ELSE ''
END)
|| MOD (pi.prs_perslid_inzetbaar_tot, 60) ptottijd,
pi.prs_perslid_inzetbaar_van firstvan,
CASE
WHEN pi.prs_perslid_inzetbaar_dag = 0 THEN 7
ELSE pi.prs_perslid_inzetbaar_dag
END dag,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p.prs_perslid_key) prs_naam,
NULL prs_client,
NULL opdr_key,
NULL mld_key,
NULL startdatum,
NULL einddatum,
NULL infrequent,
'B' part
FROM prs_perslid_inzetbaar pi, prs_perslid p
WHERE pi.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = 21 -- LET OP: Dit is de klantspecifieke afdeling "HV-medewrk"
AND pi.prs_perslid_inzetbaar_key NOT IN
(SELECT pi1.prs_perslid_inzetbaar_key
FROM prs_perslid_inzetbaar pi1,
mld_opdr o,
mld_opdr_uitvoeren mu
WHERE pi1.prs_perslid_key = o.mld_uitvoerende_keys
AND o.mld_opdr_key = mu.mld_opdr_key
AND pi1.prs_perslid_inzetbaar_dag =
mu.mld_opdr_uitvoeren_dag
AND o.mld_opdr_einddatum >= TRUNC (SYSDATE)
AND ( pi.prs_perslid_inzetbaar_van <
mu.mld_opdr_uitvoeren_tot
AND pi.prs_perslid_inzetbaar_tot >
mu.mld_opdr_uitvoeren_van) -- Alle overlap van A1 + A2
)
UNION ALL
SELECT DISTINCT
NULL inzetbaar_key,
mu.mld_opdr_uitvoeren_key uitvoeren_key,
p.prs_perslid_key prs_key,
mu.mld_opdr_uitvoeren_van mvan,
mu.mld_opdr_uitvoeren_tot mtot,
NULL pvan,
NULL ptot,
(CASE
WHEN FLOOR (mu.mld_opdr_uitvoeren_van / 60) < 10
THEN
'0'
ELSE
''
END)
|| FLOOR (mu.mld_opdr_uitvoeren_van / 60)
|| ':'
|| (CASE
WHEN MOD (mu.mld_opdr_uitvoeren_van, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (mu.mld_opdr_uitvoeren_van, 60) mvantijd,
(CASE
WHEN FLOOR (mu.mld_opdr_uitvoeren_tot / 60) < 10
THEN
'0'
ELSE
''
END)
|| FLOOR (mu.mld_opdr_uitvoeren_tot / 60)
|| ':'
|| (CASE
WHEN MOD (mu.mld_opdr_uitvoeren_tot, 60) < 10
THEN
'0'
ELSE
''
END)
|| MOD (mu.mld_opdr_uitvoeren_tot, 60) mtottijd,
NULL pvantijd,
NULL ptottijd,
mu.mld_opdr_uitvoeren_van firstvan,
CASE
WHEN mu.mld_opdr_uitvoeren_dag = 0 THEN 7
ELSE mu.mld_opdr_uitvoeren_dag
END dag,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p.prs_perslid_key) prs_naam,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p1.prs_perslid_key) prs_client,
o.mld_opdr_key opdr_key,
m.mld_melding_key mld_key,
o.mld_opdr_datumbegin startdatum,
o.mld_opdr_einddatum einddatum,
mu.mld_opdr_uitvoeren_infrequent infrequent,
'C' part
FROM prs_perslid_inzetbaar pi,
prs_perslid p,
mld_opdr o,
mld_melding m,
prs_perslid p1,
mld_opdr_uitvoeren mu
WHERE pi.prs_perslid_key(+) = p.prs_perslid_key
AND p.prs_perslid_key = o.mld_uitvoerende_keys
AND p.prs_afdeling_key = 21 -- LET OP: Dit is de klantspecifieke afdeling "HV-medewrk"
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key_voor = p1.prs_perslid_key
AND o.mld_opdr_key = mu.mld_opdr_key
AND o.mld_opdr_einddatum >= TRUNC (SYSDATE)
AND mu.mld_opdr_uitvoeren_key NOT IN
(SELECT DISTINCT mu1.mld_opdr_uitvoeren_key
FROM prs_perslid_inzetbaar pi,
mld_opdr o,
mld_opdr_uitvoeren mu1
WHERE pi.prs_perslid_key = o.mld_uitvoerende_keys
AND o.mld_opdr_key = mu1.mld_opdr_key
AND pi.prs_perslid_inzetbaar_dag =
mu1.mld_opdr_uitvoeren_dag
AND o.mld_opdr_einddatum >= TRUNC (SYSDATE)
AND ( pi.prs_perslid_inzetbaar_van <
mu.mld_opdr_uitvoeren_tot
AND pi.prs_perslid_inzetbaar_tot >
mu.mld_opdr_uitvoeren_van) -- Alle overlap van A1 + A2
)
UNION ALL
SELECT NULL
inzetbaar_key,
NULL
uitvoeren_key,
p.prs_perslid_key
prs_key,
NULL
mvan,
NULL
mtot,
NULL
pvan,
NULL
ptot,
NULL
mvantijd,
NULL
mtottijd,
NULL
pvantijd,
NULL
ptottijd,
NULL
firstvan,
CASE WHEN weekdagen.dag = 0 THEN 7 ELSE weekdagen.dag END
dag,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
prs_naam,
NULL
prs_client,
NULL
opdr_key,
NULL
mld_key,
NULL
startdatum,
NULL
einddatum,
NULL
infrequent,
'D'
part
FROM prs_perslid p,
(SELECT 0 dag FROM DUAL
UNION ALL
SELECT 1 dag FROM DUAL
UNION ALL
SELECT 2 dag FROM DUAL
UNION ALL
SELECT 3 dag FROM DUAL
UNION ALL
SELECT 4 dag FROM DUAL
UNION ALL
SELECT 5 dag FROM DUAL
UNION ALL
SELECT 6 dag FROM DUAL) weekdagen
WHERE p.prs_perslid_key NOT IN
(SELECT pi.prs_perslid_key
FROM prs_perslid_inzetbaar pi
WHERE pi.prs_perslid_inzetbaar_dag = weekdagen.dag
UNION
SELECT o.mld_uitvoerende_keys
FROM mld_opdr o, mld_opdr_uitvoeren mu
WHERE o.mld_opdr_key = mu.mld_opdr_key
AND o.mld_opdr_einddatum >= TRUNC (SYSDATE)
AND mu.mld_opdr_uitvoeren_dag = weekdagen.dag)
AND p.prs_afdeling_key = 21;
CREATE OR REPLACE FORCE VIEW care_v_prs_opdrachturen
(
prs_perslid_key,
prs_verzorger_tot_opdr_uren
)
AS
SELECT v.prs_perslid_key, SUM (mld_opdr_uren)
FROM care_v_verzorger v, mld_opdr o
WHERE v.prs_perslid_key = o.mld_uitvoerende_keys
AND o.mld_opdr_einddatum >= TRUNC (SYSDATE)
GROUP BY v.prs_perslid_key;
CREATE OR REPLACE FORCE VIEW care_v_rap_prs_planbord
(
prs_perslid_inzetbaar_key,
mld_opdr_uitvoeren_key,
prs_perslid_key,
opdr_van,
opdr_tot,
pvan,
ptot,
opdr_vantijd,
opdr_tottijd,
pvantijd,
ptottijd,
firstvan,
dag,
--fclt_f_maandag,
--fclt_f_dinsdag,
--fclt_f_woensdag,
--fclt_f_donderdag,
--fclt_f_vrijdag,
--fclt_f_zaterdag,
--fclt_f_zondag,
verzorger_naam,
fclt_f_functie,
verzorger_dienstverband,
verzorger_opdr_uren,
fclt_f_besteedbaar,
dienstverband_tot,
fclt_f_woonplaats,
client_naam,
mld_opdr_key,
mld_melding_key,
mld_opdr_startdatum,
mld_opdr_einddatum,
mld_opdr_uitvoeren_infrequent,
matchtype
)
AS
SELECT prs_perslid_inzetbaar_key,
mld_opdr_uitvoeren_key,
c.prs_perslid_key,
opdr_van,
opdr_tot,
pvan,
ptot,
opdr_vantijd,
opdr_tottijd,
pvantijd,
ptottijd,
firstvan,
dag,
--decode(dag,1,'Ja','Nee'),
--decode(dag,2,'Ja','Nee'),
--decode(dag,3,'Ja','Nee'),
--decode(dag,4,'Ja','Nee'),
--decode(dag,5,'Ja','Nee'),
--decode(dag,6,'Ja','Nee'),
--decode(dag,7,'Ja','Nee'),
verzorger_naam,
prs_verzorger_functie,
prs_verzorger_dienstverband,
prs_verzorger_tot_opdr_uren,
CASE
WHEN prs_verzorger_dienstverband - prs_verzorger_tot_opdr_uren <
0
THEN
'A. Overpland'
WHEN prs_verzorger_dienstverband - prs_verzorger_tot_opdr_uren =
0
THEN
'B. Geen uren'
WHEN prs_verzorger_dienstverband - prs_verzorger_tot_opdr_uren <=
1
THEN
'C. Max 1 uur'
WHEN prs_verzorger_dienstverband - prs_verzorger_tot_opdr_uren <=
2
THEN
'D. Max 2 uur'
WHEN prs_verzorger_dienstverband - prs_verzorger_tot_opdr_uren <=
3
THEN
'E. Max 3 uur'
WHEN prs_verzorger_dienstverband - prs_verzorger_tot_opdr_uren <=
5
THEN
'F. Max 5 uur'
WHEN prs_verzorger_dienstverband - prs_verzorger_tot_opdr_uren <=
10
THEN
'G. Max 10 uur'
WHEN prs_verzorger_dienstverband - prs_verzorger_tot_opdr_uren <=
20
THEN
'H. Max 20 uur'
ELSE
'I. Meer dan 20 uur'
END,
prs_verzorger_einddatum,
UPPER (verzorger_woonplaats),
client_naam,
mld_opdr_key,
mld_melding_key,
mld_opdr_startdatum,
mld_opdr_einddatum,
mld_opdr_uitvoeren_infrequent,
matchtype
FROM care_v_capaciteitsplan c,
care_v_verzorger v,
care_v_prs_opdrachturen u
WHERE c.prs_perslid_key = v.prs_perslid_key
AND c.prs_perslid_key = u.prs_perslid_key(+);
CREATE OR REPLACE FORCE VIEW care_v_rap_prs_team_planbord
AS
SELECT prs_perslid_inzetbaar_key,
mld_opdr_uitvoeren_key,
pb.prs_perslid_key,
opdr_van,
opdr_tot,
pvan,
ptot,
opdr_vantijd,
opdr_tottijd,
pvantijd,
ptottijd,
firstvan,
dag,
--fclt_f_maandag,
--fclt_f_dinsdag,
--fclt_f_woensdag,
--fclt_f_donderdag,
--fclt_f_vrijdag,
--fclt_f_zaterdag,
--fclt_f_zondag,
tl.ins_discipline_omschrijving AS fclt_f_team,
verzorger_naam,
fclt_f_functie,
verzorger_dienstverband,
verzorger_opdr_uren,
fclt_f_besteedbaar,
dienstverband_tot,
fclt_f_woonplaats,
client_naam,
mld_opdr_key,
mld_melding_key,
mld_opdr_startdatum,
mld_opdr_einddatum,
mld_opdr_uitvoeren_infrequent,
matchtype
FROM care_v_rap_prs_planbord pb, care_v_teamlid tl
WHERE pb.prs_perslid_key = tl.prs_perslid_key;
CREATE OR REPLACE FORCE VIEW care_v_maxprs_afgemeld
AS
SELECT m.prs_perslid_key, MAX (fac_tracking_datum) datum_uitstroom
FROM mld_melding m,
mld_stdmelding std,
mld_discipline d,
fac_tracking ft
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = 1 --- zorg
AND mld_melding_status IN (5, 6)
AND fac_activiteit_key IS NULL
AND ft.fac_tracking_refkey = m.mld_melding_key
AND fac_srtnotificatie_key =
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'MLDAFM')
AND m.prs_perslid_key NOT IN
(SELECT prs_perslid_key
FROM mld_melding
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key =
d.ins_discipline_key
AND d.ins_srtdiscipline_key = 1 --- zorg
AND mld_melding_status IN (2,
3,
4,
7))
GROUP BY m.prs_perslid_key;
CREATE OR REPLACE FORCE VIEW care_v_uitstroom
AS
SELECT m.prs_perslid_key, fac_tracking_datum, reden_beeindiging
FROM mld_melding m,
mld_stdmelding std,
mld_discipline d,
fac_tracking ft,
(SELECT fac_usrdata_omschr reden_beeindiging, mld_melding_key
FROM mld_kenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 21
AND ud.fac_usrtab_key = 61
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde)
krb
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = 1 --- zorg
AND mld_melding_status IN (5, 6)
AND fac_activiteit_key IS NULL
AND ft.fac_tracking_refkey = m.mld_melding_key
AND fac_srtnotificatie_key =
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'MLDAFM')
AND krb.mld_melding_key(+) = m.mld_melding_key
AND m.prs_perslid_key NOT IN
(SELECT prs_perslid_key
FROM mld_melding
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key =
d.ins_discipline_key
AND d.ins_srtdiscipline_key = 1 --- zorg
AND mld_melding_status IN (2,
3,
4,
7))
GROUP BY m.prs_perslid_key, fac_tracking_datum, reden_beeindiging;
CREATE OR REPLACE FORCE VIEW care_v_rap_in_uitstroom
(
TYPE,
Naam,
Datum,
Reden_beeindiging
)
AS
SELECT 'Uitstroom',
prs_perslid_naam_full cu,
fac_tracking_datum,
cu.reden_beeindiging
FROM care_v_uitstroom cu,
care_v_maxprs_afgemeld mpmax,
prs_v_perslid_fullnames_all pf
WHERE mpmax.prs_perslid_key = cu.prs_perslid_key
AND mpmax.datum_uitstroom = cu.fac_tracking_datum
AND cu.prs_perslid_key = pf.prs_perslid_key
UNION ALL
SELECT 'Instroom',
pf.prs_perslid_naam_full,
prs_perslid_aanmaak,
NULL reden_uitstroom
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND prs_srtperslid_key = (SELECT prs_srtperslid_key
FROM prs_srtperslid
WHERE prs_srtperslid_upper = 'CLIENT');
CREATE OR REPLACE FORCE VIEW CARE_V_FACTUUR_UREN_MND
(
FCLT_X_PERIODE,
PERIODE,
VAN,
TOT,
FACTUURNUMMER,
WZACODE,
FCLT_F_GEMEENTE,
BSN_CLIENT,
CLIENT_VOORLETTERS,
CLIENT_TUSSENVOEGSEL,
CLIENT_NAAM,
CLIENT_MEISJESNAAM,
NAAM2,
GEBOORTEDATUM,
CLIENT_GESLACHT,
CLIENT_ADRES,
CLIENT_HUISNR,
CLIENT_POSTCODE,
CLIENT_WOONPLAATS,
CLIENT_TELEFOON,
CLIENT_MOBIEL,
CLIENT_CONTACTPERS,
CLIENT_EMAIL,
BIJZONDERHEDEN,
BESCHIKKING_OMSCHR,
BESCHIKKINGNR,
BESCHIKKING_VAN,
BESCHIKKING_TOT,
INDICATIE_WEEK,
PRODUCT,
TARIEF,
UREN,
MINUTEN,
BEDRAG_EURO
)
AS
SELECT u.periode,
SUBSTR (u.periode, 6, 2) || '.' || SUBSTR (u.periode, 1, 4),
TRUNC (u.start_periode),
TRUNC (u.einde_periode),
SUBSTR (u.periode, 1, 4)
|| COALESCE (TO_CHAR (u.gemeente_factnr_infix),
u.prs_bedrijf_factnr_infix)
|| SUBSTR (u.periode, 6, 2)
|| COALESCE (TO_CHAR (u.gemeente_factnr_suffix), u.gemeente_code)
factuurnr,
u.wzacode,
u.gemeente,
u.client_bsn,
u.prs_client_voorletters
client_voorletters,
u.prs_client_tussenvoegsel
client_tussenvoegsel,
u.prs_client_naam
client_naam,
u.client_meisjesnaam,
u.naam2,
u.client_geboortedatum,
u.client_geslacht,
u.client_adres,
u.client_huisnr,
u.client_postcode,
u.client_woonplaats,
u.client_telefoon_thuis,
u.prs_client_mobiel,
u.client_contactpersonen,
u.prs_client_email,
u.client_bijzonderheden,
u.beschikking_omschr,
u.beschikking_nr,
u.beschikking_van,
u.beschikking_tot,
u.uren_beschikking
ind_uren_week,
u.product,
u.tarief,
SUM (u.uren_besteed)
totaal_periode,
(SUM (u.uren_besteed)) * 60,
SUM (u.uren_besteed) * u.tarief
bedrag_euro
FROM (SELECT EXTRACT (YEAR FROM uur.start_periode)
|| '-'
|| LPAD (EXTRACT (MONTH FROM uur.start_periode), 2, '0')
periode,
uur.start_periode,
uur.einde_periode,
pb.prs_leverancier_nr
wzacode,
pb.prs_bedrijf_telefoon2
prs_bedrijf_factnr_infix,
b.gemeente_omschrijving
gemeente,
b.gemeente_code,
b.gemeente_factnr_infix,
b.gemeente_factnr_suffix,
b.client_bsn,
DECODE (ud.fac_usrdata_omschr,
1, b.prs_client_nr,
b.prs_client_key),
b.prs_client_voorletters,
b.prs_client_tussenvoegsel,
b.prs_client_naam,
b.client_meisjesnaam,
b.prs_client_voorletters
|| ' '
|| b.prs_client_tussenvoegsel
|| ' '
|| b.prs_client_naam
naam2,
b.client_mv
client_geslacht,
b.client_geboortedatum,
b.client_adres,
b.client_huisnr,
b.client_postcode,
b.client_woonplaats,
b.client_telefoon_thuis,
b.prs_client_mobiel,
b.client_contactpersonen,
b.prs_client_email,
b.client_bijzonderheden,
b.beschikking_omschr,
b.beschikking_nr,
TRUNC (b.beschikking_datum_van)
beschikking_van,
TRUNC (b.beschikking_datum_tot)
beschikking_tot,
b.uren_beschikking,
b.product,
CASE
WHEN b.pgb = 1 THEN b.pgb_tarief
WHEN b.gemeente_veiling = 1 THEN b.pgb_tarief
ELSE gt.tarief
END
tarief,
uur.datum_gewerkt,
uur.uren_besteed
FROM care_v_beschikking_all b,
(SELECT o.mld_melding_key,
o.mld_opdr_key,
o.mld_opdr_datumbegin,
TRUNC (o.mld_opdr_einddatum)
einddatum,
o.mld_opdr_uren
uren_opdracht,
ou.mld_opdr_uren_datum
datum_gewerkt,
ou.mld_opdr_uren_besteed
uren_besteed,
TRUNC (ou.mld_opdr_uren_datum, 'Month')
start_periode,
LAST_DAY (TRUNC (ou.mld_opdr_uren_datum, 'Month'))
einde_periode
FROM mld_opdr o, mld_opdr_uren ou
WHERE ou.mld_opdr_key = o.mld_opdr_key
AND ou.mld_opdr_uren_status = 3) uur,
prs_bedrijf pb,
fac_usrdata ud,
care_v_gemeente_tarieven gt
WHERE uur.mld_melding_key = b.mld_melding_key
AND pb.prs_bedrijf_key = 2
AND ud.fac_usrdata_key = 48
AND gt.alg_locatie_key = b.gemeente_key
AND gt.product_code = b.product_code
AND b.pgb IS NULL
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)) u,
( SELECT (TO_CHAR (
TO_DATE (
TRUNC (
TRUNC (ADD_MONTHS (SYSDATE, LEVEL * -1)),
'Month')),
'YYYY'))
|| '-'
|| (TO_CHAR (
TO_DATE (
TRUNC (
TRUNC (ADD_MONTHS (SYSDATE, LEVEL * -1)),
'MM')),
'MM')) periode
FROM DUAL
CONNECT BY LEVEL <= 1 * 12) p
WHERE u.PERIODE = p.periode
GROUP BY u.periode,
u.start_periode,
u.einde_periode,
u.gemeente_factnr_infix,
u.prs_bedrijf_factnr_infix,
u.gemeente_factnr_suffix,
u.gemeente_code,
u.wzacode,
u.gemeente,
u.client_bsn,
u.prs_client_voorletters,
u.prs_client_tussenvoegsel,
u.prs_client_naam,
u.client_meisjesnaam,
u.naam2,
u.client_geboortedatum,
u.client_geslacht,
u.client_adres,
u.client_huisnr,
u.client_postcode,
u.client_woonplaats,
u.client_telefoon_thuis,
u.prs_client_mobiel,
u.client_contactpersonen,
u.prs_client_email,
u.client_bijzonderheden,
u.beschikking_omschr,
u.beschikking_nr,
u.beschikking_van,
u.beschikking_tot,
u.uren_beschikking,
u.product,
u.tarief
ORDER BY u.gemeente, u.periode DESC;
CREATE OR REPLACE FORCE VIEW CARE_V_REISTIJDEN_ALL
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM,
PRS_PERSLID_TUSSENVOEGSEL,
PRS_PERSLID_VOORLETTERS,
PRS_PERSLID_VOORNAAM,
BSN,
NR_VERZORGER,
PERSONEELSNR_2,
DIENSTVERBAND,
MEISJESNAAM,
GEBOORTEDATUM,
ADRES,
POSTCODE,
TELEFOON_THUIS,
TELEFOON_WERK,
PRS_PERSLID_MOBIEL,
PRS_PERSLID_EMAIL,
PRS_PERSLID_DIENSTVERBAND,
JAAR,
WEEKNR,
PERIODENR,
PERIODE,
MAANDAG_VANDEWEEK,
DATUM_GEWERKT,
INTERKM,
INTERM,
KOSTEN_CODE,
KOSTEN_OMSCHRIJVING,
UREN_STATUS
)
AS
SELECT DISTINCT
verzorger.prs_perslid_key,
verzorger.prs_perslid_naam,
verzorger.prs_perslid_tussenvoegsel,
verzorger.prs_perslid_voorletters,
verzorger.prs_perslid_voornaam,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1020)
bsn,
verzorger.prs_perslid_nr
nr_verzorger,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2001)
personeelsnr_2,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 2002) dienstverband,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1001)
meisjesnaam,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1002)
geboortedatum,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1003)
adres,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1004)
postcode,
(SELECT kl.prs_kenmerklink_waarde
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = verzorger.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = 1006)
telefoon_thuis,
verzorger.prs_perslid_telefoonnr
telefoon_werk,
verzorger.prs_perslid_mobiel,
verzorger.prs_perslid_email,
verzorger.prs_perslid_dienstverband,
TO_NUMBER (
TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IYYY'))
jaar,
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW'))
weeknr,
LEAST (
FLOOR (
(TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IW') - 1)
/ 4)
+ 1,
13)
periodenr,
TO_NUMBER (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'IYYY'))
|| '-'
|| LPAD (
LEAST (
FLOOR (
( TO_CHAR (dk.mld_opdruren_dagkosten_datum,
'IW')
- 1)
/ 4)
+ 1,
13),
2,
'0')
periode,
( TRUNC (dk.mld_opdruren_dagkosten_datum)
- DECODE (TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'D'),
'1', 8,
TO_CHAR (dk.mld_opdruren_dagkosten_datum, 'D'))
+ 2)
maandag_vandeweek,
dk.mld_opdruren_dagkosten_datum
datum_gewerkt,
dk.interkm / 1000,
dk.interkm,
'T'
kosten_code,
'Reistijd'
kosten_omschrijving,
ou.mld_opdr_uren_status
uren_status
FROM prs_perslid verzorger,
care_v_opdruren_dagkosten dk,
mld_opdr_uren ou,
mld_opdruren_kosten ok
WHERE dk.prs_perslid_key = verzorger.prs_perslid_key
AND ou.prs_perslid_key = dk.prs_perslid_key
AND ou.mld_opdr_uren_datum = dk.mld_opdruren_dagkosten_datum
AND ok.mld_opdr_uren_key = ou.mld_opdr_uren_key
AND dk.interkm > 0;
BEGIN
adm.systrackscriptId (
'$Id$',
0);
END;
/
CREATE OR REPLACE PACKAGE care
AS
TYPE t_cursor IS REF CURSOR;
FUNCTION goodmonday_start (p_mld_key IN NUMBER)
RETURN DATE;
FUNCTION goodmonday_end (p_mld_key IN NUMBER)
RETURN DATE;
PROCEDURE care_v_rap2_factuur_uren_a (
user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor,
p_where IN VARCHAR2 DEFAULT NULL);
PROCEDURE care_v_rap2_factuur_uren_e (
user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor,
p_where IN VARCHAR2 DEFAULT NULL);
END care;
/
CREATE OR REPLACE PACKAGE BODY care
AS
FUNCTION goodmonday_start (p_mld_key IN NUMBER)
RETURN DATE
IS
-- Herindicaties/vorige indicaties van dezelfde client die in dezelfde week start/eindigt.
l_mld_key NUMBER (10);
l_good_monday DATE;
BEGIN
--- Vorige beschikking: bij herindicatie midden in de week is 1 van beide beschikkingen geldig
--- Herindicatie midden in de week wordt gekenmerkt door:
--- dezelfde client, dezelfde gemeente, eindweek van de vorige is gelijk aan beginweek van herindicatie,
--- en het maakt niet uit wat de product is/wordt.
--- Baas' van dubbele beschikking is diegene met de meeste aantal uren, ongeacht HV1->HV2 overgang.
--- Bij gelijke aantal uren is de nieuwe beschikking de baas.
-- Selecteer de vorige beschikking b1 van de beschikking b2 die meer uren heeft.
SELECT MAX (b1.mld_melding_key)
INTO l_mld_key
FROM care_v_beschikking_all b1, care_v_beschikking_all b2
WHERE b2.mld_melding_key = p_mld_key
AND b1.mld_melding_key <> b2.mld_melding_key
AND b1.mld_melding_status <> 1
AND b1.beschikking_week_tot = b2.beschikking_week_van
AND b1.beschikking_jaar_tot = b2.beschikking_jaar_van
AND b1.prs_client_key = b2.prs_client_key
AND b1.gemeente_code = b2.gemeente_code
AND b1.uren_beschikking > b2.uren_beschikking;
IF l_mld_key IS NOT NULL
THEN
-- Er is een vorige indicatie met meer uren, die is de 'baas'.
-- Dat betekent dat de goede maandag van de beschikking b2 verder, naar de volgende week wordt gezet
-- (ipv standaard op maandag deze week)
SELECT ( TRUNC (mld_melding_datum)
+ 7
- DECODE (TO_CHAR (mld_melding_datum, 'D'),
'1', 8,
TO_CHAR (mld_melding_datum, 'D'))
+ 2)
INTO l_good_monday
FROM mld_melding
WHERE mld_melding_key = p_mld_key;
ELSE
-- Er is GEEN vorige indicatie bestaat of GEEN vorige indicatie met MEER uren, dus deze is de 'baas'.
-- Dat betekent dat de goede maandag van de beschikking b2 standaard op maandag deze week komt te staan.
SELECT ( TRUNC (mld_melding_datum)
- DECODE (TO_CHAR (mld_melding_datum, 'D'),
'1', 8,
TO_CHAR (mld_melding_datum, 'D'))
+ 2)
INTO l_good_monday
FROM mld_melding
WHERE mld_melding_key = p_mld_key;
END IF;
RETURN l_good_monday;
END;
FUNCTION goodmonday_end (p_mld_key IN NUMBER)
RETURN DATE
IS
-- Herindicaties/vorige indicaties van dezelfde client die in dezelfde week start/eindigt.
l_mld_key NUMBER (10);
l_good_monday DATE;
BEGIN
--- Volgende beschikking: bij herindicatie midden in de week is 1 van beide beschikkingen geldig
--- Herindicatie midden in de week wordt gekenmerkt door:
--- dezelfde client, dezelfde gemeente, eindjaar/week van de vorige is gelijk aan beginjaar/week van herindicatie,
--- en het maakt niet uit wat de product is/wordt.
--- Baas' van dubbele beschikking is diegene met de meeste aantal uren, ongeacht HV1->HV2 overgang.
--- Bij gelijke aantal uren is de nieuwe beschikking de baas.
-- Controleer of die er is, en zo ja, selecteer de volgende beschikking b2 van de beschikking b1 die MEER
-- of GELIJK AANTAL uren heeft.
SELECT MAX (b2.mld_melding_key)
INTO l_mld_key
FROM care_v_beschikking_all b1, care_v_beschikking_all b2
WHERE b1.mld_melding_key = p_mld_key
AND b1.mld_melding_key <> b2.mld_melding_key
AND b2.mld_melding_status <> 1
AND b1.beschikking_week_tot = b2.beschikking_week_van
AND b1.beschikking_jaar_tot = b2.beschikking_jaar_van
AND b1.prs_client_key = b2.prs_client_key
AND b1.gemeente_code = b2.gemeente_code
AND b2.uren_beschikking >= b1.uren_beschikking;
IF l_mld_key IS NOT NULL
THEN
-- Er is een volgende indicatie b2 met MEER of GELIJK AANTAL uren, die is de 'baas' is.
-- Dat betekent dat de goede maandag van de beschikking b2 op de maandag van deze week wordt gezet
-- (ipv standaard op maandag de volgende week)
SELECT ( TRUNC (mld_melding_einddatum)
- DECODE (TO_CHAR (mld_melding_einddatum, 'D'),
'1', 8,
TO_CHAR (mld_melding_einddatum, 'D'))
+ 2)
INTO l_good_monday
FROM mld_melding
WHERE mld_melding_key = p_mld_key;
ELSE
-- Er is GEEN volgende indicatie is of GEEN volgende indicatie met MEER of GELIJK AANTAL uren, dus deze is de 'baas'.
-- Dat betekent dat de goede maandag van de beschikking b2 standaard op maandag van de volgende week komt te staan.
SELECT ( TRUNC (mld_melding_einddatum)
+ 7
- DECODE (TO_CHAR (mld_melding_einddatum, 'D'),
'1', 8,
TO_CHAR (mld_melding_einddatum, 'D'))
+ 2)
INTO l_good_monday
FROM mld_melding
WHERE mld_melding_key = p_mld_key;
END IF;
RETURN l_good_monday;
END;
PROCEDURE care_v_rap2_factuur_uren_a (
user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor,
p_where IN VARCHAR2 DEFAULT NULL)
AS
v_datum_van DATE;
v_datum_tot DATE;
BEGIN
DELETE FROM care_periode;
INSERT INTO care_periode (jaar,
periode,
week,
maandag)
SELECT TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IYYY') jaar,
LEAST (
FLOOR (
(TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') - 1)
/ 4)
+ 1,
13) periode,
TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') week,
TRUNC (SYSDATE - 7 * (LEVEL - 1), 'IW') startdatum
FROM DUAL
CONNECT BY LEVEL <= 1 * 52 + 1;
DELETE FROM CARE_T_BESCHIKK_X_PERIODETABEL;
INSERT INTO CARE_T_BESCHIKK_X_PERIODETABEL (JAAR,
PERIODE,
WEEK_VAN,
WEEK_TM,
BSN,
PRODUCT,
UREN_BESCHIKKING)
SELECT pw.jaar,
pw.periode,
MIN (week),
MAX (week),
b.client_bsn,
b.product,
SUM (b.uren_beschikking)
FROM care_periode pw, care_v_beschikking_all b
WHERE pw.maandag >= B.BESCHIKKING_MAANDAG_VAN
AND pw.maandag < B.BESCHIKKING_MAANDAG_TOT
AND b.beschikking_datum_tot >= SYSDATE - 53 * 7
GROUP BY pw.jaar,
pw.periode,
b.client_bsn,
b.product;
OPEN p_cursor FOR 'SELECT
fclt_f_periode,
factuurdatum,
wzacode,
fclt_f_gemeente,
beschikkingsnr,
bsn_client,
client,
geboortedatum,
uren_periode,
indicatie_uren,
product,
tarief,
uren,
minuten,
bedrag_euro,
bedrag_centen
FROM care_v_rap2_factuur_uren_a' || p_where;
END care_v_rap2_factuur_uren_a;
PROCEDURE care_v_rap2_factuur_uren_e (
user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor,
p_where IN VARCHAR2 DEFAULT NULL)
AS
v_datum_van DATE;
v_datum_tot DATE;
BEGIN
DELETE FROM care_periode;
INSERT INTO care_periode (jaar,
periode,
week,
maandag)
SELECT TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IYYY') jaar,
LEAST (
FLOOR (
(TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') - 1)
/ 4)
+ 1,
13) periode,
TO_CHAR (SYSDATE - 7 * (LEVEL - 1), 'IW') week,
TRUNC (SYSDATE - 7 * (LEVEL - 1), 'IW') startdatum
FROM DUAL
CONNECT BY LEVEL <= 1 * 52 + 1;
DELETE FROM CARE_T_BESCHIKK_X_PERIODETABEL;
INSERT INTO CARE_T_BESCHIKK_X_PERIODETABEL (JAAR,
PERIODE,
WEEK_VAN,
WEEK_TM,
BSN,
PRODUCT,
UREN_BESCHIKKING)
SELECT pw.jaar,
pw.periode,
MIN (week),
MAX (week),
b.client_bsn,
b.product,
SUM (b.uren_beschikking)
FROM care_periode pw, care_v_beschikking_all b
WHERE pw.maandag >= B.BESCHIKKING_MAANDAG_VAN
AND pw.maandag < B.BESCHIKKING_MAANDAG_TOT
AND b.beschikking_datum_tot >= SYSDATE - 53 * 7
GROUP BY pw.jaar,
pw.periode,
b.client_bsn,
b.product;
OPEN p_cursor FOR 'SELECT
fclt_x_periode,
periode,
weeknrs,
factuurnummer,
wzacode,
fclt_f_gemeente,
bsn_client,
client,
geboortedatum,
uren_periode,
indicatie_uren,
product,
tarief,
uren,
bedrag_euro
FROM care_v_rap2_factuur_uren_e' || p_where;
END care_v_rap2_factuur_uren_e;
END care;
/
-- BONS#70680 Nieuwe rapportage i.v.m. nieuw salarissysteem
CREATE OR REPLACE VIEW BONS_V_RAP_SALARISYST_2022
(
FCLT_F_PERIODE,
NR_VERZORGER,
PERSONEELSNR_2,
DIENSTVERBAND,
LOONCOMPONENT,
WAARDE,
WAARDE_NEW
)
AS
SELECT "FCLT_F_PERIODE",
"NR_VERZORGER",
"PERSONEELSNR_2",
"DIENSTVERBAND",
"LOONCOMPONENT",
"WAARDE",
"WAARDE_NEW"
FROM (SELECT sal.fclt_f_periode,
nr_verzorger,
personeelsnr_2,
dienstverband,
DECODE (COALESCE (sal.kosten_soort, sal.uur_soort),
'GEWERKT', 'GEW',
'ZIEK', 'ZK',
'VERLOF', 'DV',
'FIETS', 'K807',
'BROMF', 'K806',
'KM_WW', 'K802',
'KM_PLUS', 'K803',
'REISTIJD', '3012',
NULL) looncomponent,
DECODE (
COALESCE (sal.kosten_soort, sal.uur_soort),
'REISTIJD', ROUND (
( COALESCE (sal.kosten,
sal.svdagen)
/ 60),
2)
* 100, --- reistijd eerst van minuten naar uren
COALESCE (sal.kosten, sal.svdagen) * 100) waarde,
DECODE (
COALESCE (sal.kosten_soort, sal.uur_soort),
'REISTIJD', ROUND (
( COALESCE (sal.kosten, sal.svdagen)
/ 60),
2), --- reistijd eerst van minuten naar uren
COALESCE (sal.kosten, sal.svdagen)) waarde_new
FROM care_v_rap_salaris_b sal
WHERE nr_verzorger NOT IN ('11',
'6',
'8',
'9',
'Fake1')
UNION ALL
SELECT sal.fclt_f_periode,
nr_verzorger,
personeelsnr_2,
dienstverband,
DECODE (sal.uur_soort,
'GEWERKT', 'GEWU',
'ZIEK', 'ZKU',
'VERLOF', 'VRLU',
NULL) looncomponent,
sal.uren * 100 waarde,
sal.uren waarde_new
FROM care_v_rap_salaris_b sal
WHERE nr_verzorger NOT IN ('11',
'6',
'8',
'9',
'Fake1')
AND sal.uur_soort IS NOT NULL)
ORDER BY fclt_f_periode DESC,
nr_verzorger,
personeelsnr_2,
dienstverband;
------ payload end ------
SET DEFINE OFF
BEGIN
adm.systrackscriptId (
'$Id$',
0);
END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile