-- -- $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 VIEW BONS_V_RAP_SALARIS_EASYLON ( FCLT_F_PERIODE, WERKGEVER, WERKNEMER, LOONCOMPONENT, WAARDE ) AS SELECT "FCLT_F_PERIODE", "WERKGEVER", "WERKNEMER", "LOONCOMPONENT", "WAARDE" FROM (SELECT sal.fclt_f_periode, '2' werkgever, sal.nr_verzorger werknemer, 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, '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, 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 = 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 = 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, '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 = 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, verzorger, prs_perslid_dienstverband, jaar, 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.prs_perslid_naam || ',' || uur.prs_perslid_voorletters || ' ' || uur.prs_perslid_tussenvoegsel, uur.prs_perslid_dienstverband, uur.jaar, 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_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; -- 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, 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.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, 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, verzorger, prs_perslid_dienstverband, woonwerk_km, rest_km, datum ) AS SELECT periode, bsn_verzorger, nr_verzorger, 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, verzorger, datum; CREATE OR REPLACE FORCE VIEW care_v_rap2_auto ( periode, bsn_verzorger, nr_verzorger, verzorger, prs_perslid_dienstverband, woonwerk_km, rest_km ) AS SELECT periode, bsn_verzorger, nr_verzorger, verzorger, MIN (prs_perslid_dienstverband), SUM (woonwerk_km), SUM (rest_km) FROM care_v_tmp2_auto GROUP BY periode, bsn_verzorger, nr_verzorger, verzorger; CREATE OR REPLACE FORCE VIEW care_v_rap2_reistijd ( periode, bsn_verzorger, nr_verzorger, verzorger, prs_perslid_dienstverband, reistijd ) AS SELECT periode, bsn_verzorger, nr_verzorger, 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, 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, verzorger, prs_perslid_dienstverband, mld_opdruren_kosten_besteed ) AS SELECT periode, bsn_verzorger, nr_verzorger, 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, 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, verzorger, prs_perslid_dienstverband, mld_opdruren_kosten_besteed ) AS SELECT periode, bsn_verzorger, nr_verzorger, 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, 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, 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.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, verzorger, prs_perslid_dienstverband, mld_impropdr_key, week_uren_besteed, datum ) AS SELECT periode, bsn_verzorger, nr_verzorger, 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, verzorger, prs_perslid_dienstverband, ziekte_uren, dagen ) AS SELECT periode, bsn_verzorger, nr_verzorger, 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, 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, verzorger, prs_perslid_dienstverband, verlof_uren, dagen ) AS SELECT periode, bsn_verzorger, nr_verzorger, 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, verzorger; CREATE OR REPLACE FORCE VIEW care_v_rap2_salaris ( periode, bsn_verzorger, nr_verzorger, verzorger, prs_perslid_dienstverband, week_uren_besteed, datum ) AS SELECT periode, bsn_verzorger, nr_verzorger, verzorger, prs_perslid_dienstverband, week_uren_besteed, datum FROM care_v_tmp2_factuur_uren UNION ALL SELECT periode, bsn_verzorger, nr_verzorger, 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, verzorger, prs_perslid_dienstverband, periode_uren_besteed, dagen, bsn_periode ) AS SELECT jaar_periode, bsn_verzorger, MIN (nr_verzorger), 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, verzorger, prs_perslid_dienstverband, ziekte_uren, dagen, bsn_periode ) AS SELECT jaar_periode, bsn_verzorger, nr_verzorger, 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, verzorger, prs_perslid_dienstverband, verlof_uren, dagen, bsn_periode ) AS SELECT jaar_periode, bsn_verzorger, nr_verzorger, 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, verzorger, prs_perslid_dienstverband, woonwerk_km, rest_km, bsn_periode ) AS SELECT jaar_periode, bsn_verzorger, nr_verzorger, 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, verzorger, prs_perslid_dienstverband, mld_opdruren_kosten_besteed, bsn_periode ) AS SELECT jaar_periode, bsn_verzorger, nr_verzorger, 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, verzorger, prs_perslid_dienstverband, mld_opdruren_kosten_besteed, bsn_periode ) AS SELECT jaar_periode, bsn_verzorger, nr_verzorger, 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, verzorger, prs_perslid_dienstverband, mld_opdruren_kosten_besteed, bsn_periode ) AS SELECT jaar_periode, bsn_verzorger, nr_verzorger, 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, VERZORGER, UUR_SOORT, UREN, SVDAGEN, KOSTEN_SOORT, KOSTEN ) AS SELECT periode, SYSDATE, bsn_verzorger, nr_verzorger, verzorger, 'GEWERKT', periode_uren_besteed, dagen, NULL, NULL FROM care_v_periode_x_salaris UNION SELECT periode, SYSDATE, bsn_verzorger, nr_verzorger, verzorger, 'ZIEK', ziekte_uren, dagen, NULL, NULL FROM care_v_periode_x_ziek UNION SELECT periode, SYSDATE, bsn_verzorger, nr_verzorger, verzorger, 'VERLOF', verlof_uren, dagen, NULL, NULL FROM care_v_periode_x_vrij UNION SELECT periode, SYSDATE, bsn_verzorger, nr_verzorger, 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, 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, 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, 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, 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 '' WHEN cd.mld_opdruren_dagkosten_totaal < 0 THEN '' ELSE '' 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, 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 = 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; / ------ 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