4333 lines
177 KiB
SQL
4333 lines
177 KiB
SQL
/* Formatted on 30/3/2023 11:42:10 (QP5 v5.336) */
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the FACILITOR database
|
||
|
||
DEFINE thisfile = 'WZUV.SQL'
|
||
DEFINE dbuser = '^WZUV'
|
||
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
|
||
SELECT adm.getscriptspoolfile ('&thisfile') AS fcltlogfile FROM DUAL;
|
||
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
|
||
SELECT adm.checkscriptcust ('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin -----
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_RAP_BEZITTINGEN
|
||
(
|
||
EXTRA_KEY,
|
||
FCLT_F_BEZITTER,
|
||
VOORNAAM,
|
||
DATUM_UITDIENST,
|
||
OBJECTSOORT,
|
||
OBJECT
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
p.prs_perslid_naam_friendly,
|
||
pl.prs_perslid_voornaam,
|
||
TO_CHAR (uit_dienst.datum_uitdienst, 'dd-mm-yyyy'),
|
||
obj.objectsoort,
|
||
obj.object
|
||
FROM prs_v_perslid_fullnames p,
|
||
prs_perslid pl,
|
||
(SELECT kl.prs_link_key prs_perslid_key,
|
||
fac.safe_to_date (kl.prs_kenmerklink_waarde, 'dd-mm-yyyy') datum_uitdienst
|
||
FROM prs_kenmerklink kl, prs_kenmerk k
|
||
WHERE k.prs_kenmerk_key = kl.prs_kenmerk_key
|
||
AND k.prs_kenmerk_upper = 'DATUM UIT DIENST'
|
||
AND kl.prs_kenmerklink_verwijder IS NULL) uit_dienst,
|
||
(SELECT d.ins_alg_ruimte_key prs_perslid_key,
|
||
sd.ins_srtdeel_omschrijving objectsoort,
|
||
d.ins_deel_omschrijving || ' - ' || d.ins_deel_opmerking object
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline dp
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = dp.ins_discipline_key
|
||
AND UPPER (dp.INS_DISCIPLINE_OMSCHRIJVING) =
|
||
'ICT MIDDELEN'
|
||
AND d.ins_alg_ruimte_type = 'P'
|
||
AND d.INS_DEEL_VERWIJDER IS NULL
|
||
AND ( d.ins_deel_vervaldatum IS NULL
|
||
OR d.ins_deel_vervaldatum > TRUNC (SYSDATE))) obj,
|
||
(SELECT kl.prs_link_key prs_perslid_key,
|
||
kl.prs_kenmerklink_waarde email_manager
|
||
FROM prs_kenmerklink kl, prs_kenmerk k
|
||
WHERE k.prs_kenmerk_key = kl.prs_kenmerk_key
|
||
AND k.prs_kenmerk_upper = 'MAIL MANAGER'
|
||
AND kl.prs_kenmerklink_verwijder IS NULL) manager
|
||
WHERE p.prs_perslid_key = manager.prs_perslid_key
|
||
AND p.prs_perslid_key = obj.prs_perslid_key
|
||
AND p.prs_perslid_key = pl.prs_perslid_key
|
||
AND p.prs_perslid_key = uit_dienst.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE PACKAGE WZUV
|
||
AS
|
||
PROCEDURE noti_vertrek_mdw;
|
||
|
||
PROCEDURE bes_artikelgroep_hb (p_bestelling_key IN NUMBER);
|
||
|
||
PROCEDURE bes_uuid_topgeschenken (p_bestelling_key IN NUMBER);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY WZUV
|
||
AS
|
||
PROCEDURE noti_vertrek_mdw
|
||
AS
|
||
p_applname VARCHAR2 (50) := 'NOTIFICATIE_UIT_DIENST';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (100);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_srtnotificatie_key NUMBER (10);
|
||
v_notificatie_refkey NUMBER (10);
|
||
v_onderwerp VARCHAR2 (100);
|
||
|
||
--- Personen die uit dienst gaan met objecten in bezit
|
||
--- En nog niet eerder genotificeerd
|
||
CURSOR C IS
|
||
SELECT p.prs_perslid_email,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_voornaam,
|
||
manager.email_manager,
|
||
TO_DATE (TRUNC (uit_dienst.datum_uitdienst), 'dd-mm-yy') datum_uitdienst
|
||
FROM prs_perslid p,
|
||
( SELECT d.ins_alg_ruimte_key prs_perslid_key,
|
||
LISTAGG (
|
||
d.ins_deel_omschrijving
|
||
|| ' - '
|
||
|| d.ins_deel_opmerking,
|
||
CHR (10))
|
||
WITHIN GROUP (ORDER BY d.ins_deel_omschrijving) objecten
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline dp
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = dp.ins_discipline_key
|
||
AND UPPER (dp.ins_discipline_omschrijving) =
|
||
'ICT MIDDELEN'
|
||
AND d.ins_alg_ruimte_type = 'P'
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND ( d.ins_deel_vervaldatum IS NULL
|
||
OR d.ins_deel_vervaldatum > TRUNC (SYSDATE))
|
||
GROUP BY d.ins_alg_ruimte_key) objecten,
|
||
(SELECT kl.prs_link_key prs_perslid_key,
|
||
kl.prs_kenmerklink_waarde email_manager
|
||
FROM prs_kenmerklink kl, prs_kenmerk k
|
||
WHERE k.prs_kenmerk_key = kl.prs_kenmerk_key
|
||
AND k.prs_kenmerk_key = 1041
|
||
AND kl.prs_kenmerklink_verwijder IS NULL) manager,
|
||
(SELECT kl.prs_link_key prs_perslid_key,
|
||
fac.safe_to_date (kl.prs_kenmerklink_waarde,
|
||
'dd-mm-yyyy') datum_uitdienst
|
||
FROM prs_kenmerklink kl, prs_kenmerk k
|
||
WHERE k.prs_kenmerk_key = kl.prs_kenmerk_key
|
||
AND k.prs_kenmerk_key = 1040
|
||
AND kl.prs_kenmerklink_verwijder IS NULL)
|
||
uit_dienst,
|
||
(SELECT kl.prs_link_key prs_perslid_key,
|
||
kl.prs_kenmerklink_waarde notificatie_verstuurd
|
||
FROM prs_kenmerklink kl, prs_kenmerk k
|
||
WHERE k.prs_kenmerk_key = kl.prs_kenmerk_key
|
||
AND k.prs_kenmerk_key = 1120
|
||
AND kl.prs_kenmerklink_verwijder IS NULL)
|
||
notificatie
|
||
WHERE p.prs_perslid_key = manager.prs_perslid_key
|
||
AND p.prs_perslid_key = objecten.prs_perslid_key
|
||
AND p.prs_perslid_key = uit_dienst.prs_perslid_key
|
||
AND p.prs_perslid_key = notificatie.prs_perslid_key(+)
|
||
AND notificatie.notificatie_verstuurd IS NULL
|
||
AND uit_dienst.datum_uitdienst <= SYSDATE + 21;
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
v_onderwerp := 'Uw uitdiensttreding op ' || rec.datum_uitdienst;
|
||
v_errorhint := 'Notificatie uitdiensttreden niet aangemaakt';
|
||
|
||
SELECT fac_srtnotificatie_key
|
||
INTO v_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST04';
|
||
|
||
SELECT fac_usrrap_key
|
||
INTO v_notificatie_refkey
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_view_name) = 'WZUV_V_RAP_BEZITTINGEN';
|
||
|
||
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
||
fac_notificatie_status,
|
||
prs_perslid_key_receiver,
|
||
fac_notificatie_receiver_email,
|
||
fac_notificatie_oms,
|
||
fac_notificatie_refkey,
|
||
fac_notificatie_extrakey,
|
||
fac_notificatie_prioriteit,
|
||
fac_notificatie_lang)
|
||
VALUES (v_srtnotificatie_key,
|
||
2,
|
||
8616, --- rec.prs_perslid_key,
|
||
'r.dejonge@wzuveluwe.nl', ---'hip@wzuveluwe.nl;' || rec.email_manager ||';'|| p.prs_perslid_email,
|
||
v_onderwerp,
|
||
v_notificatie_refkey,
|
||
rec.prs_perslid_key,
|
||
2,
|
||
'NL');
|
||
|
||
-- bij perslid markering zetten dat de mail verstuurd is
|
||
flx.setflex ('PRS',
|
||
1120,
|
||
rec.prs_perslid_key,
|
||
'P',
|
||
TO_CHAR (TRUNC (SYSDATE)));
|
||
|
||
COMMIT;
|
||
|
||
fac.writelog (p_applname,
|
||
'I',
|
||
'Mail naar ' || rec.prs_perslid_email,
|
||
'Uit dienst ' || rec.datum_uitdienst);
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := 'Notificatie uit dienst';
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
fac.writelog (
|
||
p_applname,
|
||
'E',
|
||
'Error ' || oracle_err_num || '/' || oracle_err_mes,
|
||
v_errorhint);
|
||
END;
|
||
|
||
--- deze procedure was eigenlijk voor artikelgroepen Hartingbank
|
||
--- maar we kunnen deze ook gebruiken voor Topgeschenken
|
||
PROCEDURE bes_artikelgroep_hb (p_bestelling_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_kenmerk_key NUMBER (10);
|
||
v_kenmerk_key_uuid NUMBER (10);
|
||
|
||
|
||
CURSOR bestelitem IS
|
||
SELECT sd.bes_srtdeel_opmerking artikelgroep,
|
||
bi.bes_bestelling_item_key
|
||
FROM bes_srtdeel sd, bes_bestelling_item bi, bes_bestelling b
|
||
WHERE b.bes_bestelling_key = p_bestelling_key
|
||
AND sd.bes_srtdeel_opmerking IS NOT NULL
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND sd.prs_bedrijf_key = 9839 --- alleen voor Hartinbank
|
||
AND TRUNC (sd.bes_srtdeel_aanmaak) =
|
||
TRUNC (b.bes_bestelling_datum);
|
||
|
||
CURSOR bestelitem_tg IS
|
||
SELECT sd.bes_srtdeel_opmerking uuid,
|
||
bi.bes_bestelling_item_key
|
||
FROM bes_srtdeel sd, bes_bestelling_item bi, bes_bestelling b
|
||
WHERE b.bes_bestelling_key = p_bestelling_key
|
||
AND sd.bes_srtdeel_opmerking IS NOT NULL
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND sd.prs_bedrijf_key = 41681 --- alleen voor Topgeschenken
|
||
AND TRUNC (sd.bes_srtdeel_aanmaak) =
|
||
TRUNC (b.bes_bestelling_datum);
|
||
BEGIN
|
||
SELECT k.bes_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM bes_srtkenmerk sk, bes_kenmerk k
|
||
WHERE sk.bes_srtkenmerk_upper = 'ARTIKELGROEP'
|
||
AND sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key;
|
||
|
||
SELECT k.bes_kenmerk_key
|
||
INTO v_kenmerk_key_uuid
|
||
FROM bes_kenmerk k
|
||
WHERE k.BES_KENMERK_OMSCHRIJVING = 'UUID';
|
||
|
||
FOR rec IN bestelitem
|
||
LOOP
|
||
-- we kunnen rustig een insert doen, het is nooit een update
|
||
INSERT INTO bes_kenmerkbesteli (bes_bestelling_item_key,
|
||
bes_kenmerk_key,
|
||
bes_kenmerkbesteli_waarde)
|
||
VALUES (rec.bes_bestelling_item_key,
|
||
v_kenmerk_key,
|
||
rec.artikelgroep);
|
||
|
||
COMMIT;
|
||
END LOOP;
|
||
|
||
FOR rec IN bestelitem_tg
|
||
LOOP
|
||
-- we kunnen rustig een insert doen, het is nooit een update
|
||
INSERT INTO bes_kenmerkbesteli (bes_bestelling_item_key,
|
||
bes_kenmerk_key,
|
||
bes_kenmerkbesteli_waarde)
|
||
VALUES (rec.bes_bestelling_item_key,
|
||
v_kenmerk_key_uuid,
|
||
rec.uuid);
|
||
|
||
COMMIT;
|
||
END LOOP;
|
||
|
||
END;
|
||
|
||
PROCEDURE bes_uuid_topgeschenken (p_bestelling_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_kenmerk_key NUMBER (10);
|
||
|
||
CURSOR bestelitem IS
|
||
SELECT sd.bes_srtdeel_opmerking uuid,
|
||
bi.bes_bestelling_item_key
|
||
FROM bes_srtdeel sd, bes_bestelling_item bi, bes_bestelling b
|
||
WHERE b.bes_bestelling_key = p_bestelling_key
|
||
AND sd.bes_srtdeel_opmerking IS NOT NULL
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND sd.prs_bedrijf_key = 41681 --- alleen voor Topgeschenken
|
||
AND TRUNC (sd.bes_srtdeel_aanmaak) =
|
||
TRUNC (b.bes_bestelling_datum);
|
||
|
||
BEGIN
|
||
SELECT k.bes_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM bes_kenmerk k
|
||
WHERE k.BES_KENMERK_OMSCHRIJVING = 'UUID';
|
||
|
||
FOR rec IN bestelitem
|
||
LOOP
|
||
-- we kunnen rustig een insert doen, het is nooit een update
|
||
INSERT INTO bes_kenmerkbesteli (bes_bestelling_item_key,
|
||
bes_kenmerk_key,
|
||
bes_kenmerkbesteli_waarde)
|
||
VALUES (rec.bes_bestelling_item_key,
|
||
v_kenmerk_key,
|
||
rec.uuid);
|
||
|
||
COMMIT;
|
||
END LOOP;
|
||
END;
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_daily
|
||
AS
|
||
BEGIN
|
||
-- notificatiejob voor medewerkers uit dienst
|
||
wzuv.noti_vertrek_mdw ();
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
v_aantal_in_FCLT NUMBER;
|
||
BEGIN
|
||
v_errorhint := 'Generieke update';
|
||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
|
||
prs.import_perslid (
|
||
p_import_key,
|
||
'0;0;0;0;0;0;5;14;13;10;'
|
||
|| '0;12;11;15;18;19;20;3;0;1;'
|
||
|| '9;0;0;0;0;0;17;23;22;0;'
|
||
|| '4;5;0;0;0;0;0;0;0;0;'
|
||
|| '0;0;0;0;0;0',
|
||
'"Mdw.";"Volledige_naam";"E-mail_werk";"Werklocatie";"OE";"Organisatorische_eenheid";"Kostenplaats";"Code_Functie";"Omschrijving_functie";"Roepnaam";"Voorvoegsel_partner";"Geb.naam_partner";"Voorv._geb.naam";"Geboortenaam";"Naamgebruik_code";"Datum_in_dienst";"Datum_uit_dienst";"Geslacht";"Telefoonnr._werk";"Mobiel_werk";"Naam";"E-mail_werk_2";"Naam_2"%');
|
||
COMMIT;
|
||
|
||
-- De os_login kan worden afgeleid vanuit het email adres
|
||
UPDATE FAC_IMP_PERSLID
|
||
SET prs_perslid_oslogin =
|
||
(TRIM (
|
||
SUBSTR (prs_perslid_email,
|
||
1,
|
||
INSTR (prs_perslid_email, '@', 1) - 1)));
|
||
|
||
--- overbodige tekens uit het perslidnummer vewijderen
|
||
UPDATE FAC_IMP_PERSLID
|
||
SET prs_perslid_nr = TRIM (prs_perslid_nr);
|
||
|
||
--- de tab uit het perslidnummer verwijderen
|
||
UPDATE FAC_IMP_PERSLID
|
||
SET prs_perslid_nr = REPLACE (prs_perslid_nr, CHR (9));
|
||
|
||
--- INACTIEF
|
||
--- De afdelingnaam kan worden herleid worden obv de afdelingomschrijving
|
||
--UPDATE fac_imp_perslid i
|
||
-- SET prs_afdeling_naam =
|
||
-- (SELECT a.prs_afdeling_naam
|
||
-- FROM prs_afdeling a
|
||
-- WHERE a.prs_afdeling_naam = i.prs_kenmerk6
|
||
-- AND a.prs_afdeling_verwijder IS NULL
|
||
-- AND a.prs_kostenplaats_key IS NOT NULL);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END wzuv_import_perslid;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_update_perslid (p_import_key IN NUMBER)
|
||
IS
|
||
v_count_prs_import NUMBER (10);
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_error NUMBER (10);
|
||
|
||
-- Alle medewerkers (bedrijf is WZU, key 41) verwijderen die niet meer in import bestand voorkomen.
|
||
-- Match bij WZUV is personeelnummer, hieronder de query om alle personen te verwijderen die:
|
||
-- a) niet meer in het importbestand staan, wel in Facilitor, en
|
||
-- b) waarvan de persoon in Facilitor een gevulde personeelsnummer heeft (leeg personeelsnummer van af blijven, dit handmatig ingevoerde persleden)
|
||
-- c) waarvan de persoon in Facilitor niet begint met een _ in de loginnaam (ook van af blijven)
|
||
|
||
CURSOR c_del IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
||
FROM fac_imp_perslid i,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_v_afdeling a
|
||
WHERE UPPER (p.prs_perslid_nr) = UPPER (i.prs_perslid_nr(+))
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) <> '_'
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||
AND i.prs_perslid_nr IS NULL
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_bedrijf_key = 41
|
||
ORDER BY 2;
|
||
|
||
CURSOR c_uit IS
|
||
SELECT p.prs_perslid_key,
|
||
p.prs_perslid_nr,
|
||
TO_CHAR (
|
||
fac.safe_to_date (TO_CHAR (ip.prs_kenmerk1), 'yyyy-mm-dd'),
|
||
'dd-mm-yyyy') datum_uit
|
||
FROM fac_imp_perslid ip, prs_perslid p
|
||
WHERE ip.prs_perslid_nr = p.prs_perslid_nr
|
||
AND ip.prs_kenmerk1 IS NOT NULL;
|
||
|
||
CURSOR c_mgr IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr, ip.prs_kenmerk3 mail_mgr
|
||
FROM fac_imp_perslid ip, prs_perslid p
|
||
WHERE ip.prs_perslid_nr = p.prs_perslid_nr
|
||
AND ip.prs_kenmerk3 IS NOT NULL;
|
||
|
||
v_count NUMBER;
|
||
BEGIN
|
||
-- generic update
|
||
-- 'LOGIN' betekent dat op basis van Login wordt gematched.
|
||
-- 'NR' betekent dat op basis van Personeelsnummer wordt gematched.
|
||
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
|
||
SELECT COUNT (*)
|
||
INTO v_count_prs_import
|
||
FROM prs_v_aanwezigperslid p, fac_imp_perslid ip
|
||
WHERE p.prs_perslid_nr IS NOT NULL
|
||
AND UPPER (p.prs_perslid_nr) = UPPER (ip.prs_perslid_nr);
|
||
|
||
|
||
IF (v_count_prs_import >= 500)
|
||
THEN
|
||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||
|
||
-- Verwijder personen die niet meer in de import voorkomen.
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_uit
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.prs_perslid_nr;
|
||
|
||
--- Datum uit dienst opnemen bij perslid
|
||
flx.setflex ('PRS',
|
||
1040,
|
||
rec.prs_perslid_key,
|
||
'P',
|
||
rec.datum_uit);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_mgr
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.prs_perslid_nr;
|
||
|
||
--- Mailadres manager opnemen bij perslid
|
||
flx.setflex ('PRS',
|
||
1041,
|
||
rec.prs_perslid_key,
|
||
'P',
|
||
rec.mail_mgr);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
' (ORACLE error number = <'
|
||
|| oracle_err_num
|
||
|| '> ORACLE error message = <'
|
||
|| oracle_err_mes
|
||
|| '>)';
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
ELSE
|
||
IF (v_count_prs_import = 0)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Geen juist bestand met te importeren personen aangetroffen!',
|
||
'');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Verschil tussen het actuele aantal en het te importeren aantal personen te groot',
|
||
'#personen importbestand = ' || TO_CHAR (v_count_prs_import));
|
||
END IF;
|
||
END IF;
|
||
END wzuv_update_perslid;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_import_client (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
v_aantal_in_FCLT NUMBER;
|
||
BEGIN
|
||
v_errorhint := 'Generieke update';
|
||
|
||
UPDATE FAC_IMP_FILE
|
||
SET fac_imp_file_line = REPLACE (fac_imp_file_line, ',', ';')
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
UPDATE FAC_IMP_FILE
|
||
SET fac_imp_file_line = REPLACE (fac_imp_file_line, '"', '')
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
|
||
prs.import_perslid (
|
||
p_import_key,
|
||
'0;0;0;0;0;0;1;4;3;0;'
|
||
|| '2;6;5;8;7;0;0;0;0;1;'
|
||
|| '1;0;0;0;0;0;9;10;0;0;'
|
||
|| '0;0;0;0;0;0;0;0;0;0;'
|
||
|| '0;0;0;0;0;0',
|
||
-- 'identificatie;voornaam;initialen;tussenvoegsel;achternaam eigen;tussenvoegsel partner;achternaam partner;geslacht;naamsamenstelling;geboortedatum;straat;huisnummer;huisnummertoevoeging;postcode;plaats;BSN;locatie naam;locatie id%');
|
||
'identificatie;initialen;tussenvoegsel;achternaam eigen;tussenvoegsel partner;achternaam partner;geslacht;naamsamenstelling;locatie naam;locatie id%');
|
||
|
||
--- De afdeling is altijd 'CLIENT'
|
||
UPDATE FAC_IMP_PERSLID I
|
||
SET PRS_AFDELING_NAAM = 'CLIENT';
|
||
|
||
--- De functie is altijd 'Cli<6C>nt'
|
||
UPDATE FAC_IMP_PERSLID I
|
||
SET PRS_SRTPERSLID_OMSCHRIJVING = 'Cli<EFBFBD>nt';
|
||
|
||
--- Om te voorkomen dat cli<6C>ntnummers identiek zijn aan personeelsnummers vullen we deze aan
|
||
UPDATE FAC_IMP_PERSLID I
|
||
SET PRS_PERSLID_NR = 'Nedap-' || prs_perslid_nr;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END wzuv_import_client;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_update_client (p_import_key IN NUMBER)
|
||
IS
|
||
-- Alle cli<6C>nten (bedrijf is Cli<6C>nt, key 8393) verwijderen die niet meer in import bestand voorkomen.
|
||
-- Match bij WZUV is personeelnummer, hieronder de query om alle personen te verwijderen die:
|
||
-- a) niet meer in het importbestand staan, wel in Facilitor, en
|
||
-- b) waarvan de persoon in Facilitor niet begint met een _ in de loginnaam (ook van af blijven)
|
||
|
||
CURSOR c_del IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
||
FROM fac_imp_perslid i,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_v_afdeling a
|
||
WHERE UPPER (p.prs_perslid_nr) = UPPER (i.prs_perslid_nr(+))
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) <> '_'
|
||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||
AND i.prs_perslid_nr IS NULL
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_bedrijf_key = 8393
|
||
ORDER BY 2;
|
||
|
||
v_count NUMBER;
|
||
BEGIN
|
||
-- generic update
|
||
-- 'LOGIN' betekent dat op basis van Login wordt gematched.
|
||
-- 'NR' betekent dat op basis van Personeelsnummer wordt gematched.
|
||
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
|
||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||
|
||
-- Verwijder personen die niet meer in de import voorkomen.
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
END wzuv_update_client;
|
||
/
|
||
|
||
CREATE OR REPLACE FORCE VIEW WZUV_V_INS_QRC_RUIMTE
|
||
(
|
||
FCLT_3D_LOCATIE_KEY,
|
||
FCLT_F_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
PLAATS,
|
||
SOORTRUIMTE,
|
||
INS_ALG_RUIMTE_TYPE,
|
||
ALG_RUIMTE_OMSCHRIJVING,
|
||
ALG_DISTRICT_KEY,
|
||
ALG_RUIMTE_NR,
|
||
ALG_RUIMTE_KEY,
|
||
HIDE_F_BOOKMARK_ID
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_key,
|
||
l.alg_locatie_omschrijving,
|
||
x.alg_gebouw_naam,
|
||
SUBSTR (x.alg_plaatsaanduiding, 7) plaats,
|
||
x.alg_ruimte_omschrijving soortruimte,
|
||
sr.alg_srtruimte_omschrijving,
|
||
r.alg_ruimte_omschrijving,
|
||
l.alg_district_key,
|
||
x.alg_plaatsaanduiding,
|
||
r.alg_ruimte_key,
|
||
b.fac_bookmark_id
|
||
FROM ALG_V_ALLONRGOED_GEGEVENS x,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
fac_bookmark b,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr
|
||
WHERE b.fac_bookmark_naam = 'QRC naar ruimte'
|
||
AND X.ALG_RUIMTE_KEY = R.ALG_RUIMTE_KEY
|
||
AND R.ALG_SRTRUIMTE_KEY = SR.ALG_SRTRUIMTE_KEY
|
||
AND x.alg_locatie_key = L.ALG_LOCATIE_KEY
|
||
AND l.alg_district_key = di.alg_district_key;
|
||
|
||
--8441 Huismeester
|
||
--1842 Huismeester/Technische dienst
|
||
--1786 Medewerker Facilitaire dienst
|
||
--1845 Assistent Technische dienst
|
||
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_HUISMEESTERS
|
||
(
|
||
prs_perslid_key,
|
||
naam,
|
||
verwijder
|
||
)
|
||
AS
|
||
SELECT prs_perslid_key,
|
||
prs_perslid_naam
|
||
|| ', '
|
||
|| prs_perslid_tussenvoegsel
|
||
|| ' ('
|
||
|| prs_perslid_voornaam
|
||
|| ')' AS naam,
|
||
prs_perslid_verwijder
|
||
FROM prs_perslid
|
||
WHERE prs_srtperslid_key IN (8441,
|
||
1842,
|
||
1786,
|
||
1845,
|
||
33241);
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_GEBOUW_KPL
|
||
(
|
||
kpl_key,
|
||
omschrijving
|
||
)
|
||
AS
|
||
SELECT prs_kostenplaats_key,
|
||
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
|
||
FROM PRS_V_AANWEZIGKOSTENPLAATS
|
||
WHERE prs_kostenplaats_module = 'ALG';
|
||
|
||
COMMIT;
|
||
|
||
-- alle ruimtereserveringen en catering met status 5 kan gefactureerd worden
|
||
-- en cateraar heeft aangegeven dat het geleverd is
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_RAP_RES
|
||
(
|
||
PERSNR,
|
||
RESERVERING,
|
||
ARTIKELCODE,
|
||
AANTAL,
|
||
BEDRAG,
|
||
FACTUURPERIODE,
|
||
SOORT,
|
||
OMSCHRIJVING,
|
||
INT_EXT,
|
||
KOSTENPLAATS,
|
||
RES_RSV_RUIMTE_KEY,
|
||
MAAND
|
||
)
|
||
AS
|
||
SELECT CASE
|
||
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
|
||
THEN
|
||
SUBSTR (p.prs_perslid_nr, 7)
|
||
ELSE
|
||
p.prs_perslid_nr
|
||
END AS persnr,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (ar.alg_ruimte_key),
|
||
COALESCE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
|
||
0) duur_ruimte,
|
||
rrr.res_rsv_ruimte_prijs,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
|
||
'Ruimte',
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|
||
|| ' - Reserveringsnummer: '
|
||
|| rrr.res_reservering_key
|
||
|| '/'
|
||
|| rrr.res_rsv_ruimte_volgnr
|
||
|| ' - '
|
||
|| rr.res_ruimte_nr aanduiding,
|
||
DECODE (prs_afdeling_key, 422, 'Cli<EFBFBD>nt', 'Intern') soort,
|
||
kpl_ruimte.prs_kostenplaats_nr,
|
||
rrr.res_rsv_ruimte_key,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
|
||
FROM res_rsv_ruimte rrr,
|
||
prs_perslid p,
|
||
prs_kostenplaats kp,
|
||
res_v_rsv_ruimte_2_alg_ruimte ar,
|
||
alg_v_allonroerendgoed aog,
|
||
res_ruimte rr,
|
||
(SELECT kpr.*, kpl.prs_kostenplaats_nr
|
||
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
|
||
WHERE kpr.alg_kenmerk_key = 1061
|
||
AND kpr.alg_onrgoedkenmerk_waarde =
|
||
kpl.prs_kostenplaats_key) kpl_ruimte
|
||
WHERE rrr.res_status_bo_key = 5
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND ar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND ar.res_ruimte_key = rr.res_ruimte_key
|
||
AND ar.alg_ruimte_key = aog.alg_ruimte_key
|
||
AND kpl_ruimte.alg_onrgoed_key(+) = aog.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT CASE
|
||
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
|
||
THEN
|
||
SUBSTR (p.prs_perslid_nr, 7)
|
||
ELSE
|
||
p.prs_perslid_nr
|
||
END AS persnr,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
a.res_artikel_nr,
|
||
ra.res_rsv_artikel_aantal,
|
||
ra.res_rsv_artikel_prijs,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
|
||
'Catering',
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|
||
|| ' - '
|
||
|| TO_CHAR (rrr.res_reservering_key)
|
||
|| '/'
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|
||
|| ' - '
|
||
|| TO_CHAR (a.res_artikel_omschrijving) aanduiding,
|
||
DECODE (p.prs_afdeling_key, 422, 'Cli<EFBFBD>nt', 'Intern') soort,
|
||
kpl_cat.prs_kostenplaats_nr,
|
||
rrr.res_rsv_ruimte_key,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
|
||
FROM res_rsv_artikel ra,
|
||
res_rsv_ruimte rrr,
|
||
res_artikel a,
|
||
prs_perslid p,
|
||
prs_kostenplaats kp,
|
||
res_v_rsv_ruimte_2_alg_ruimte ar,
|
||
alg_v_allonroerendgoed aog,
|
||
(SELECT kpr.*, kpl.prs_kostenplaats_nr
|
||
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
|
||
WHERE kpr.alg_kenmerk_key = 1060
|
||
AND kpr.alg_onrgoedkenmerk_waarde =
|
||
kpl.prs_kostenplaats_key) kpl_cat
|
||
WHERE ra.res_status_bo_key = 5
|
||
AND rrr.res_rsv_ruimte_flag = 2
|
||
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND ra.res_artikel_key = a.res_artikel_key
|
||
AND ra.res_rsv_artikel_dirtlevel = 0
|
||
AND ra.res_rsv_artikel_verwijder IS NULL
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND ar.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND ( aog.alg_ruimte_key = rrr.alg_ruimte_key
|
||
OR aog.alg_ruimte_key = ar.alg_ruimte_key)
|
||
AND kpl_cat.alg_onrgoed_key(+) = aog.alg_gebouw_key;
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_RUIMTES
|
||
AS
|
||
SELECT alg_onroerendgoed_keys,
|
||
alg_gebouw_code
|
||
|| ' - '
|
||
|| alg_verdieping_omschrijving
|
||
|| ' - '
|
||
|| alg_ruimte_nr
|
||
|| ' - '
|
||
|| alg_ruimte_omschrijving AS RUIMTE
|
||
FROM alg_v_allonrgoed_gegevens
|
||
WHERE alg_ruimte_key IS NOT NULL;
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_APPARTEMENTEN
|
||
AS
|
||
SELECT r.alg_ruimte_key,
|
||
og.alg_gebouw_code
|
||
|| '-'
|
||
|| og.alg_verdieping_code
|
||
|| '-'
|
||
|| og.alg_ruimte_omschrijving AS APPARTEMENT
|
||
FROM alg_v_allonrgoed_gegevens og, alg_ruimte r
|
||
WHERE og.alg_type = 'R'
|
||
AND r.alg_ruimte_key = og.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = 17;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_select_reservering (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- status is geregistreerd (2)
|
||
-- de reservering ligt in het verleden
|
||
-- dan kan de ruimte prijs berekend worden
|
||
CURSOR cres IS
|
||
SELECT res_rsv_ruimte_key,
|
||
res_reservering_key || '/' || res_rsv_ruimte_volgnr aanduiding
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE rrr.res_status_bo_key = 2
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND fac.count_work_days (res_rsv_ruimte_tot, SYSDATE) > 0;
|
||
|
||
-- catering is geleverd (flag = 2)
|
||
-- dan mag de catering berekend worden
|
||
-- voor de zekerheid controleren we ook of de reservering in het verleden ligt
|
||
CURSOR cart IS
|
||
SELECT TO_CHAR (rrr.res_reservering_key)
|
||
|| '/'
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|
||
|| ' - '
|
||
|| TO_CHAR (a.res_artikel_omschrijving) aanduiding,
|
||
ra.res_rsv_ruimte_key,
|
||
ra.res_rsv_artikel_key,
|
||
ra.res_artikel_key,
|
||
a.res_artikel_omschrijving
|
||
FROM res_rsv_artikel ra, res_rsv_ruimte rrr, res_artikel a
|
||
WHERE ra.res_status_bo_key = 2
|
||
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND ra.res_artikel_key = a.res_artikel_key
|
||
AND ra.res_rsv_artikel_dirtlevel = 0
|
||
AND ra.res_rsv_artikel_verwijder IS NULL
|
||
AND fac.count_work_days (res_rsv_artikel_levering, SYSDATE) >
|
||
0
|
||
AND rrr.res_rsv_ruimte_flag = 2;
|
||
|
||
v_prijs NUMBER (9, 2);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
FOR rc IN cres
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Fout bij bepalen res_rsv_ruimte_prijs.';
|
||
|
||
SELECT res.getruimteprijs (rc.res_rsv_ruimte_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errorhint := 'Fout bij bijwerken res_rsv_ruimte_prijs.';
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 5, res_rsv_ruimte_prijs = v_prijs
|
||
WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key;
|
||
|
||
fac.trackaction ('RESAFM',
|
||
rc.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname,
|
||
'W',
|
||
rc.aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rc IN cart
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Fout bij bepalen res_rsv_artikel_prijs.';
|
||
|
||
SELECT res.getartikelprijs (rc.res_rsv_artikel_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errorhint := 'Fout bij bijwerken res_rsv_artikel_prijs.';
|
||
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 5,
|
||
res_rsv_artikel_prijs = v_prijs,
|
||
res_rsv_artikel_inkoopprijs =
|
||
(SELECT res_artikel_inkoopprijs
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rc.res_artikel_key),
|
||
res_rsv_artikel_btw =
|
||
(SELECT res_artikel_btw
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rc.res_artikel_key)
|
||
WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key;
|
||
|
||
fac.trackaction (
|
||
'RESAFM',
|
||
rc.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'Catering ' || rc.res_artikel_omschrijving || ' afgemeld');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname,
|
||
'W',
|
||
rc.aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_export_reservering (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
-- status is afgemeld
|
||
-- de reservering ligt in het verleden
|
||
-- dan kan de ruimte prijs berekend worden
|
||
CURSOR cres IS
|
||
SELECT res_rsv_ruimte_key,
|
||
res_reservering_key || '/' || res_rsv_ruimte_volgnr aanduiding
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE rrr.res_status_bo_key = 5
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND fac.count_work_days (res_rsv_ruimte_tot, SYSDATE) > 0;
|
||
|
||
-- catering is geleverd (flag = 2)
|
||
-- dan mag de catering berekend worden
|
||
-- voor de zekerheid controleren we ook of de reservering in het verleden ligt
|
||
-- status is afgemeld
|
||
CURSOR cart IS
|
||
SELECT TO_CHAR (rrr.res_reservering_key)
|
||
|| '/'
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|
||
|| ' - '
|
||
|| TO_CHAR (a.res_artikel_omschrijving) aanduiding,
|
||
ra.res_rsv_ruimte_key,
|
||
ra.res_rsv_artikel_key,
|
||
ra.res_artikel_key,
|
||
a.res_artikel_omschrijving
|
||
FROM res_rsv_artikel ra, res_rsv_ruimte rrr, res_artikel a
|
||
WHERE ra.res_status_bo_key = 5
|
||
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND ra.res_artikel_key = a.res_artikel_key
|
||
AND ra.res_rsv_artikel_dirtlevel = 0
|
||
AND ra.res_rsv_artikel_verwijder IS NULL
|
||
AND fac.count_work_days (res_rsv_artikel_levering, SYSDATE) >
|
||
0
|
||
AND rrr.res_rsv_ruimte_flag = 2;
|
||
|
||
--- wzuv_rap_res bevat alle reserveringen met status 5 - afgemeld
|
||
--- al deze regels moeten uiteindelijk ook bij de reservering zichtbaar zijn vanuit de verkoopfactuurtabellen en krijgen dan status 6 - verwerkt
|
||
--- tbv van de export worden deze ook in de fac_rapport tabel gezet
|
||
CURSOR c IS
|
||
SELECT *
|
||
FROM WZUV_V_RAP_RES
|
||
ORDER BY res_rsv_ruimte_key;
|
||
|
||
v_ruimte_key_prev NUMBER;
|
||
v_verkoopfactuurkop_key NUMBER;
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
v_ruimte_key_prev := 1;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
IF rec.res_rsv_ruimte_key <> v_ruimte_key_prev
|
||
THEN
|
||
v_ruimte_key_prev := rec.res_rsv_ruimte_key;
|
||
|
||
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
|
||
VALUES (rec.reservering)
|
||
RETURNING fin_verkoopfactuurkop_key
|
||
INTO v_verkoopfactuurkop_key;
|
||
END IF;
|
||
|
||
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
|
||
fin_verkoopfactuur_id,
|
||
fin_verkoopfactuur_datum,
|
||
fin_verkoopfactuur_omschr,
|
||
fin_verkoopfactuur_xmlnode,
|
||
fin_verkoopfactuur_refkey,
|
||
prs_kostenplaats_nr,
|
||
prs_debiteur_naam,
|
||
fin_verkoopfactuur_bedrag,
|
||
fin_verkoopfactuur_maand,
|
||
fin_verkoopfactuur_c1)
|
||
VALUES (v_verkoopfactuurkop_key, --key
|
||
TO_CHAR (rec.factuurperiode), ---id
|
||
SYSDATE, -- datum
|
||
rec.omschrijving, --omsch
|
||
'reservering', ---xml
|
||
rec.res_rsv_ruimte_key, --refkey
|
||
rec.kostenplaats, ---kostenplnr
|
||
rec.persnr, -- debnaam
|
||
rec.bedrag, --- bedrag
|
||
rec.maand, ---- maand
|
||
rec.soort --- c1
|
||
);
|
||
|
||
COMMIT;
|
||
END LOOP;
|
||
|
||
FOR rc IN cres
|
||
LOOP
|
||
BEGIN
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 6
|
||
WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key;
|
||
|
||
fac.trackaction ('RESVER',
|
||
rc.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
NULL);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname,
|
||
'W',
|
||
rc.aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rc IN cart
|
||
LOOP
|
||
BEGIN
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 6
|
||
WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key;
|
||
|
||
fac.trackaction (
|
||
'RESVER',
|
||
rc.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'Catering ' || rc.res_artikel_omschrijving || ' verwerkt');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname,
|
||
'W',
|
||
rc.aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_EXPORT_RESERVERING
|
||
(
|
||
RESULT,
|
||
RESULT_ORDER
|
||
)
|
||
AS
|
||
SELECT persnr
|
||
|| ';'
|
||
|| artikelcode
|
||
|| ';'
|
||
|| aantal
|
||
|| ';'
|
||
|| bedrag
|
||
|| ';'
|
||
|| omschrijving
|
||
|| ';'
|
||
|| kostenplaats,
|
||
reservering
|
||
FROM WZUV_V_RAP_RES r;
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_RAP_RES_DEF
|
||
(
|
||
PERSNR,
|
||
RESERVERING,
|
||
ARTIKELCODE,
|
||
AANTAL,
|
||
BEDRAG,
|
||
FACTUURPERIODE,
|
||
SOORT,
|
||
OMSCHRIJVING,
|
||
INT_EXT,
|
||
KOSTENPLAATS,
|
||
RES_RSV_RUIMTE_KEY,
|
||
MAAND
|
||
)
|
||
AS
|
||
SELECT CASE
|
||
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
|
||
THEN
|
||
SUBSTR (p.prs_perslid_nr, 7)
|
||
ELSE
|
||
p.prs_perslid_nr
|
||
END AS persnr,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (ar.alg_ruimte_key),
|
||
COALESCE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
|
||
0) duur_ruimte,
|
||
rrr.res_rsv_ruimte_prijs,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
|
||
'Ruimte',
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|
||
|| ' - Reserveringsnummer: '
|
||
|| rrr.res_reservering_key
|
||
|| '/'
|
||
|| rrr.res_rsv_ruimte_volgnr
|
||
|| ' - '
|
||
|| rr.res_ruimte_nr aanduiding,
|
||
DECODE (prs_afdeling_key, 422, 'Cli<EFBFBD>nt', 'Intern') soort,
|
||
kpl_ruimte.prs_kostenplaats_nr,
|
||
rrr.res_rsv_ruimte_key,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
|
||
FROM res_rsv_ruimte rrr,
|
||
prs_perslid p,
|
||
prs_kostenplaats kp,
|
||
res_v_rsv_ruimte_2_alg_ruimte ar,
|
||
alg_v_allonroerendgoed aog,
|
||
res_ruimte rr,
|
||
(SELECT kpr.*, kpl.prs_kostenplaats_nr
|
||
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
|
||
WHERE kpr.alg_kenmerk_key = 1061
|
||
AND kpr.alg_onrgoedkenmerk_waarde =
|
||
kpl.prs_kostenplaats_key) kpl_ruimte
|
||
WHERE rrr.res_status_bo_key = 6
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND ar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND ar.res_ruimte_key = rr.res_ruimte_key
|
||
AND ar.alg_ruimte_key = aog.alg_ruimte_key
|
||
AND kpl_ruimte.alg_onrgoed_key(+) = aog.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT CASE
|
||
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
|
||
THEN
|
||
SUBSTR (p.prs_perslid_nr, 7)
|
||
ELSE
|
||
p.prs_perslid_nr
|
||
END AS persnr,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
a.res_artikel_nr,
|
||
ra.res_rsv_artikel_aantal,
|
||
ra.res_rsv_artikel_prijs,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
|
||
'Catering',
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|
||
|| ' - '
|
||
|| TO_CHAR (rrr.res_reservering_key)
|
||
|| '/'
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|
||
|| ' - '
|
||
|| TO_CHAR (a.res_artikel_omschrijving) aanduiding,
|
||
DECODE (p.prs_afdeling_key, 422, 'Cli<EFBFBD>nt', 'Intern') soort,
|
||
kpl_cat.prs_kostenplaats_nr,
|
||
rrr.res_rsv_ruimte_key,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
|
||
FROM res_rsv_artikel ra,
|
||
res_rsv_ruimte rrr,
|
||
res_artikel a,
|
||
prs_perslid p,
|
||
prs_kostenplaats kp,
|
||
res_v_rsv_ruimte_2_alg_ruimte ar,
|
||
alg_v_allonroerendgoed aog,
|
||
(SELECT kpr.*, kpl.prs_kostenplaats_nr
|
||
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
|
||
WHERE kpr.alg_kenmerk_key = 1060
|
||
AND kpr.alg_onrgoedkenmerk_waarde =
|
||
kpl.prs_kostenplaats_key) kpl_cat
|
||
WHERE ra.res_status_bo_key = 6
|
||
AND rrr.res_rsv_ruimte_flag = 2
|
||
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND ra.res_artikel_key = a.res_artikel_key
|
||
AND ra.res_rsv_artikel_dirtlevel = 0
|
||
AND ra.res_rsv_artikel_verwijder IS NULL
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND ar.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND ( aog.alg_ruimte_key = rrr.alg_ruimte_key
|
||
OR aog.alg_ruimte_key = ar.alg_ruimte_key)
|
||
AND kpl_cat.alg_onrgoed_key(+) = aog.alg_gebouw_key;
|
||
|
||
|
||
|
||
-- ==========================================
|
||
-- VANAF HIER ALLE VIEWS EN PROCS VOOR DE EXACT KOPPELING
|
||
-- ==========================================
|
||
-- Kenmerk 21 is bijlage
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BESTAND
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
FIN_FACTUUR_BESTAND
|
||
)
|
||
AS
|
||
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 21;
|
||
|
||
-- Kenmerk 2 is betaalreferentie
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BETAALREF
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
FIN_FACTUUR_BETAALREF
|
||
)
|
||
AS
|
||
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 2;
|
||
|
||
-- Kenmerk 3 is omschrijving kopregel
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_OMSCHR_KOPREGEL
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
FIN_FACTUUR_OMSCHR_KOPREGEL
|
||
)
|
||
AS
|
||
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 3;
|
||
|
||
-- Kenmerk 4 is omschrijving datum factuurregel
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_FACTUURREGEL_DATUM
|
||
(
|
||
FIN_FACTUURREGEL_KEY,
|
||
FIN_FACTUURREGEL_DATUM
|
||
)
|
||
AS
|
||
SELECT kfr.fin_factuurregel_key, kfr.fin_kenmerkfactregel_waarde
|
||
FROM fin_kenmerkfactregel kfr
|
||
WHERE kfr.fin_kenmerkfactregel_verwijder IS NULL AND fin_kenmerk_key = 4;
|
||
|
||
-- Kenmerk 22 is de afwijkende kostenplaats
|
||
|
||
CREATE OR REPLACE FORCE VIEW WZUV_V_FACTUUR_AFW_KPL
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
FIN_FACTUUR_AFW_KPL
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key, prs_kostenplaats_nr
|
||
FROM fin_kenmerkfactuur kf, prs_kostenplaats kp
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerkfactuur_waarde = kp.prs_kostenplaats_key
|
||
AND fin_kenmerk_key = 22;
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BES_GEGEVENS
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
OPDRACHT_ID,
|
||
FIN_FACTUUR_DATUM,
|
||
FIN_FACTUUR_BOEKMAAND,
|
||
FIN_FACTUUR_NR,
|
||
FIN_FACTUUR_BESTAND,
|
||
PRS_BEDRIJF_KEY,
|
||
FIN_FACTUURREGEL_TOTAAL,
|
||
FIN_FACTUURREGEL_BTW,
|
||
FIN_FACTUURREGEL_BTW_PERC,
|
||
FIN_BTWTABELWAARDE_BTWCODE,
|
||
FIN_FACTUURREGEL_NR,
|
||
FIN_FACTUURREGEL_OMSCHRIJVING,
|
||
FIN_FACTUURREGEL_DATUM,
|
||
FIN_FACTUUR_DEBITEUR_NR,
|
||
FIN_FACTUUR_BETAALREF,
|
||
FIN_FACTUUR_OMSCHR_KOPREGEL,
|
||
PROJECT_NUMMER,
|
||
PRS_KOSTENSOORT_OMS,
|
||
PRS_KOSTENSOORT_DOORBELASTEN,
|
||
PRS_KOSTENPLAATS_NR,
|
||
BES_OPDR_KEY,
|
||
MLD_OPDR_KEY,
|
||
CNT_CONTRACT_KEY,
|
||
FIN_FACTUUR_STATUSES_KEY
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
f.fin_factuur_key,
|
||
TO_CHAR (bo.bes_bestelopdr_id)
|
||
opdracht_id,
|
||
f.fin_factuur_datum,
|
||
f.fin_factuur_boekmaand,
|
||
f.fin_factuur_nr,
|
||
fb.fin_factuur_bestand,
|
||
b.prs_bedrijf_key,
|
||
fr.fin_factuurregel_totaal,
|
||
fr.fin_factuurregel_btw,
|
||
btw.fin_btwtabelwaarde_perc,
|
||
btw.fin_btwtabelwaarde_code,
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_omschrijving,
|
||
frd.fin_factuurregel_datum,
|
||
f.fin_factuur_debiteur_nr,
|
||
fbr.fin_factuur_betaalref,
|
||
fok.fin_factuur_omschr_kopregel,
|
||
NULL
|
||
projectnummer,
|
||
COALESCE (ks_regel.prs_kostensoort_oms, ks.prs_kostensoort_oms),
|
||
DECODE (ks_regel.prs_kostensoort_oms,
|
||
NULL, ks.prs_kostensoort_doorbelasten,
|
||
ks_regel.prs_kostensoort_doorbelasten),
|
||
kp.prs_kostenplaats_nr,
|
||
bo.bes_bestelopdr_key
|
||
bes_opdr_key,
|
||
NULL
|
||
mld_opdr_key,
|
||
NULL
|
||
cnt_contract_key,
|
||
f.fin_factuur_statuses_key
|
||
FROM bes_bestelopdr bo,
|
||
prs_bedrijf b,
|
||
bes_bestelling bes,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
fin_factuur f,
|
||
wzuv_v_factuur_bestand fb,
|
||
wzuv_v_factuur_betaalref fbr,
|
||
wzuv_v_factuur_omschr_kopregel fok,
|
||
fin_factuurregel fr,
|
||
wzuv_v_factuurregel_datum frd,
|
||
fin_btwtabelwaarde btw,
|
||
prs_kostensoort ks,
|
||
prs_kostensoort ks_regel,
|
||
prs_kostenplaats kp
|
||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND kp.prs_kostenplaats_key = bes.prs_kostenplaats_key
|
||
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
|
||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.fin_factuur_key = fb.fin_factuur_key(+)
|
||
AND f.fin_factuur_key = fbr.fin_factuur_key(+)
|
||
AND f.fin_factuur_key = fok.fin_factuur_key(+);
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_MLDCNT_GEGEVENS
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
OPDRACHT_ID,
|
||
FIN_FACTUUR_DATUM,
|
||
FIN_FACTUUR_BOEKMAAND,
|
||
FIN_FACTUUR_NR,
|
||
FIN_FACTUUR_BESTAND,
|
||
PRS_BEDRIJF_KEY,
|
||
FIN_FACTUURREGEL_TOTAAL,
|
||
FIN_FACTUURREGEL_BTW,
|
||
FIN_FACTUURREGEL_BTW_PERC,
|
||
FIN_BTWTABELWAARDE_BTWCODE,
|
||
FIN_FACTUURREGEL_NR,
|
||
FIN_FACTUURREGEL_OMSCHRIJVING,
|
||
FIN_FACTUURREGEL_DATUM,
|
||
FIN_FACTUUR_DEBITEUR_NR,
|
||
FIN_FACTUUR_BETAALREF,
|
||
FIN_FACTUUR_OMSCHR_KOPREGEL,
|
||
PROJECT_NUMMER,
|
||
PRS_KOSTENSOORT_OMS,
|
||
PRS_KOSTENSOORT_DOORBELASTEN,
|
||
PRS_KOSTENPLAATS_NR,
|
||
BES_OPDR_KEY,
|
||
MLD_OPDR_KEY,
|
||
CNT_CONTRACT_KEY,
|
||
FIN_FACTUUR_STATUSES_KEY
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
f.fin_factuur_key,
|
||
COALESCE (
|
||
TO_CHAR (cnt_contract_nummer),
|
||
(SELECT sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key =
|
||
std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key =
|
||
d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key =
|
||
sd.ins_srtdiscipline_key))
|
||
opdracht_id,
|
||
f.fin_factuur_datum,
|
||
f.fin_factuur_boekmaand,
|
||
f.fin_factuur_nr,
|
||
fb.fin_factuur_bestand,
|
||
COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key)
|
||
prs_bedrijf_key,
|
||
fr.fin_factuurregel_totaal,
|
||
fr.fin_factuurregel_btw,
|
||
btw.fin_btwtabelwaarde_perc,
|
||
btw.fin_btwtabelwaarde_code,
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_omschrijving,
|
||
frd.fin_factuurregel_datum,
|
||
COALESCE (f.fin_factuur_debiteur_nr,
|
||
b_c.prs_leverancier_nr,
|
||
b_o.prs_leverancier_nr),
|
||
fbr.fin_factuur_betaalref,
|
||
fok.fin_factuur_omschr_kopregel,
|
||
NULL
|
||
projectnummer,
|
||
COALESCE (ks_regel.prs_kostensoort_oms,
|
||
ks_contract.prs_kostensoort_oms,
|
||
ks.prs_kostensoort_oms),
|
||
DECODE (ks_regel.prs_kostensoort_oms,
|
||
NULL, ks.prs_kostensoort_doorbelasten,
|
||
ks_regel.prs_kostensoort_doorbelasten),
|
||
COALESCE (faklp.fin_factuur_afw_kpl,
|
||
kp_c.prs_kostenplaats_nr,
|
||
kp_o.prs_kostenplaats_nr)
|
||
prs_kostenplaats_nr,
|
||
NULL
|
||
bes_opdr_key,
|
||
o.mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
f.fin_factuur_statuses_key
|
||
FROM fin_factuur f,
|
||
wzuv_v_factuur_bestand fb,
|
||
wzuv_v_factuur_betaalref fbr,
|
||
wzuv_v_factuur_omschr_kopregel fok,
|
||
wzuv_v_factuur_afw_kpl faklp,
|
||
fin_factuurregel fr,
|
||
wzuv_v_factuurregel_datum frd,
|
||
fin_btwtabelwaarde btw,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
cnt_contract c,
|
||
prs_bedrijf b_o,
|
||
prs_bedrijf b_c,
|
||
prs_kostensoort ks,
|
||
prs_kostensoort ks_regel,
|
||
prs_kostensoort ks_contract,
|
||
prs_kostenplaats kp_c,
|
||
prs_kostenplaats kp_o
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.fin_factuur_key = fb.fin_factuur_key(+)
|
||
AND f.fin_factuur_key = fbr.fin_factuur_key(+)
|
||
AND f.fin_factuur_key = fok.fin_factuur_key(+)
|
||
AND f.fin_factuur_key = faklp.fin_factuur_key(+)
|
||
AND f.bes_bestelopdr_key IS NULL
|
||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND o.prs_kostenplaats_key = kp_o.prs_kostenplaats_key(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
|
||
AND c.prs_kostenplaats_key = kp_c.prs_kostenplaats_key(+)
|
||
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
|
||
AND c.prs_kostensoort_key = ks_contract.prs_kostensoort_key(+);
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_GEG_AKKOORD
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
OPDRACHT_ID,
|
||
FIN_FACTUUR_DATUM,
|
||
FIN_FACTUUR_BOEKMAAND,
|
||
FIN_FACTUUR_NR,
|
||
FIN_FACTUUR_BESTAND,
|
||
PRS_BEDRIJF_KEY,
|
||
FIN_FACTUURREGEL_TOTAAL,
|
||
FIN_FACTUURREGEL_BTW,
|
||
FIN_FACTUURREGEL_BTW_PERC,
|
||
FIN_BTWTABELWAARDE_BTWCODE,
|
||
FIN_FACTUURREGEL_NR,
|
||
FIN_FACTUURREGEL_OMSCHRIJVING,
|
||
FIN_FACTUURREGEL_DATUM,
|
||
FIN_FACTUUR_DEBITEUR_NR,
|
||
FIN_FACTUUR_BETAALREF,
|
||
FIN_FACTUUR_OMSCHR_KOPREGEL,
|
||
PROJECT_NUMMER,
|
||
PRS_KOSTENSOORT_OMS,
|
||
PRS_KOSTENSOORT_DOORBELASTEN,
|
||
PRS_KOSTENPLAATS_NR,
|
||
BES_OPDR_KEY,
|
||
MLD_OPDR_KEY,
|
||
CNT_CONTRACT_KEY,
|
||
FIN_FACTUUR_STATUSES_KEY
|
||
)
|
||
AS
|
||
SELECT "FIN_FACTUUR_KEY",
|
||
"OPDRACHT_ID",
|
||
"FIN_FACTUUR_DATUM",
|
||
"FIN_FACTUUR_BOEKMAAND",
|
||
"FIN_FACTUUR_NR",
|
||
"FIN_FACTUUR_BESTAND",
|
||
"PRS_BEDRIJF_KEY",
|
||
"FIN_FACTUURREGEL_TOTAAL",
|
||
"FIN_FACTUURREGEL_BTW",
|
||
"FIN_FACTUURREGEL_BTW_PERC",
|
||
"FIN_BTWTABELWAARDE_BTWCODE",
|
||
"FIN_FACTUURREGEL_NR",
|
||
"FIN_FACTUURREGEL_OMSCHRIJVING",
|
||
"FIN_FACTUURREGEL_DATUM",
|
||
"FIN_FACTUUR_DEBITEUR_NR",
|
||
"FIN_FACTUUR_BETAALREF",
|
||
"FIN_FACTUUR_OMSCHR_KOPREGEL",
|
||
"PROJECT_NUMMER",
|
||
"PRS_KOSTENSOORT_OMS",
|
||
"PRS_KOSTENSOORT_DOORBELASTEN",
|
||
"PRS_KOSTENPLAATS_NR",
|
||
"BES_OPDR_KEY",
|
||
"MLD_OPDR_KEY",
|
||
"CNT_CONTRACT_KEY",
|
||
"FIN_FACTUUR_STATUSES_KEY"
|
||
FROM wzuv_v_factuur_mldcnt_gegevens
|
||
WHERE fin_factuur_statuses_key = 6
|
||
UNION
|
||
SELECT "FIN_FACTUUR_KEY",
|
||
"OPDRACHT_ID",
|
||
"FIN_FACTUUR_DATUM",
|
||
"FIN_FACTUUR_BOEKMAAND",
|
||
"FIN_FACTUUR_NR",
|
||
"FIN_FACTUUR_BESTAND",
|
||
"PRS_BEDRIJF_KEY",
|
||
"FIN_FACTUURREGEL_TOTAAL",
|
||
"FIN_FACTUURREGEL_BTW",
|
||
"FIN_FACTUURREGEL_BTW_PERC",
|
||
"FIN_BTWTABELWAARDE_BTWCODE",
|
||
"FIN_FACTUURREGEL_NR",
|
||
"FIN_FACTUURREGEL_OMSCHRIJVING",
|
||
"FIN_FACTUURREGEL_DATUM",
|
||
"FIN_FACTUUR_DEBITEUR_NR",
|
||
"FIN_FACTUUR_BETAALREF",
|
||
"FIN_FACTUUR_OMSCHR_KOPREGEL",
|
||
"PROJECT_NUMMER",
|
||
"PRS_KOSTENSOORT_OMS",
|
||
"PRS_KOSTENSOORT_DOORBELASTEN",
|
||
"PRS_KOSTENPLAATS_NR",
|
||
"BES_OPDR_KEY",
|
||
"MLD_OPDR_KEY",
|
||
"CNT_CONTRACT_KEY",
|
||
"FIN_FACTUUR_STATUSES_KEY"
|
||
FROM wzuv_v_factuur_bes_gegevens
|
||
WHERE fin_factuur_statuses_key = 6;
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_GEG
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
OPDRACHT_ID,
|
||
FIN_FACTUUR_DATUM,
|
||
FIN_FACTUUR_BOEKMAAND,
|
||
FIN_FACTUUR_NR,
|
||
FIN_FACTUUR_BESTAND,
|
||
PRS_BEDRIJF_KEY,
|
||
FIN_FACTUURREGEL_TOTAAL,
|
||
FIN_FACTUURREGEL_BTW,
|
||
FIN_FACTUURREGEL_BTW_PERC,
|
||
FIN_BTWTABELWAARDE_BTWCODE,
|
||
FIN_FACTUURREGEL_NR,
|
||
FIN_FACTUURREGEL_OMSCHRIJVING,
|
||
FIN_FACTUURREGEL_DATUM,
|
||
FIN_FACTUUR_DEBITEUR_NR,
|
||
FIN_FACTUUR_BETAALREF,
|
||
FIN_FACTUUR_OMSCHR_KOPREGEL,
|
||
PROJECT_NUMMER,
|
||
PRS_KOSTENSOORT_OMS,
|
||
PRS_KOSTENSOORT_DOORBELASTEN,
|
||
PRS_KOSTENPLAATS_NR,
|
||
BES_OPDR_KEY,
|
||
MLD_OPDR_KEY,
|
||
CNT_CONTRACT_KEY,
|
||
FIN_FACTUUR_STATUSES_KEY
|
||
)
|
||
AS
|
||
SELECT "FIN_FACTUUR_KEY",
|
||
"OPDRACHT_ID",
|
||
"FIN_FACTUUR_DATUM",
|
||
"FIN_FACTUUR_BOEKMAAND",
|
||
"FIN_FACTUUR_NR",
|
||
"FIN_FACTUUR_BESTAND",
|
||
"PRS_BEDRIJF_KEY",
|
||
"FIN_FACTUURREGEL_TOTAAL",
|
||
"FIN_FACTUURREGEL_BTW",
|
||
"FIN_FACTUURREGEL_BTW_PERC",
|
||
"FIN_BTWTABELWAARDE_BTWCODE",
|
||
"FIN_FACTUURREGEL_NR",
|
||
"FIN_FACTUURREGEL_OMSCHRIJVING",
|
||
"FIN_FACTUURREGEL_DATUM",
|
||
"FIN_FACTUUR_DEBITEUR_NR",
|
||
"FIN_FACTUUR_BETAALREF",
|
||
"FIN_FACTUUR_OMSCHR_KOPREGEL",
|
||
"PROJECT_NUMMER",
|
||
"PRS_KOSTENSOORT_OMS",
|
||
"PRS_KOSTENSOORT_DOORBELASTEN",
|
||
"PRS_KOSTENPLAATS_NR",
|
||
"BES_OPDR_KEY",
|
||
"MLD_OPDR_KEY",
|
||
"CNT_CONTRACT_KEY",
|
||
"FIN_FACTUUR_STATUSES_KEY"
|
||
FROM wzuv_v_factuur_mldcnt_gegevens
|
||
UNION
|
||
SELECT "FIN_FACTUUR_KEY",
|
||
"OPDRACHT_ID",
|
||
"FIN_FACTUUR_DATUM",
|
||
"FIN_FACTUUR_BOEKMAAND",
|
||
"FIN_FACTUUR_NR",
|
||
"FIN_FACTUUR_BESTAND",
|
||
"PRS_BEDRIJF_KEY",
|
||
"FIN_FACTUURREGEL_TOTAAL",
|
||
"FIN_FACTUURREGEL_BTW",
|
||
"FIN_FACTUURREGEL_BTW_PERC",
|
||
"FIN_BTWTABELWAARDE_BTWCODE",
|
||
"FIN_FACTUURREGEL_NR",
|
||
"FIN_FACTUURREGEL_OMSCHRIJVING",
|
||
"FIN_FACTUURREGEL_DATUM",
|
||
"FIN_FACTUUR_DEBITEUR_NR",
|
||
"FIN_FACTUUR_BETAALREF",
|
||
"FIN_FACTUUR_OMSCHR_KOPREGEL",
|
||
"PROJECT_NUMMER",
|
||
"PRS_KOSTENSOORT_OMS",
|
||
"PRS_KOSTENSOORT_DOORBELASTEN",
|
||
"PRS_KOSTENPLAATS_NR",
|
||
"BES_OPDR_KEY",
|
||
"MLD_OPDR_KEY",
|
||
"CNT_CONTRACT_KEY",
|
||
"FIN_FACTUUR_STATUSES_KEY"
|
||
FROM wzuv_v_factuur_bes_gegevens;
|
||
|
||
-- Alle waarden (zijn evt meer records) uit eigen tabel 'Exact' waarvan de waarde_code met een
|
||
-- zekere prefix begint (volgens de systeem-setting PREFIX_FCLT_FACTUUR_XML_HEADER), komen in de header vd xml terecht
|
||
-- 121 is de eigen tabel met dagboeknrs. (op dit moment alleen '40' moet nog gevuld worden)
|
||
|
||
CREATE OR REPLACE VIEW wzuv_v_fclt_factuur_header
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '<'
|
||
|| fac_usrdata_code
|
||
|| '>'
|
||
|| fac_usrdata_omschr
|
||
|| '</'
|
||
|| fac_usrdata_code
|
||
|| '>',
|
||
1
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 121 AND fac_usrdata_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW wzuv_v_fclt_factuur_body
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT DECODE (regelnummer, 0, '<fin_factuur>', '<fin_factuurregel>')
|
||
|| '<fin_factuur_key>'
|
||
|| fin_factuur_key
|
||
|| '</fin_factuur_key>'
|
||
|| '<fin_factuur_nr>'
|
||
|| xml.char_to_html (fin_factuur_nr)
|
||
|| '</fin_factuur_nr>'
|
||
|| '<fin_factuur_bestand>'
|
||
|| xml.char_to_html (fin_factuur_bestand)
|
||
|| '</fin_factuur_bestand>'
|
||
|| '<fin_factuur_debiteur_nr>'
|
||
|| xml.char_to_html (fin_factuur_debiteur_nr)
|
||
|| '</fin_factuur_debiteur_nr>'
|
||
|| '<fin_factuur_omschr_kopregel>'
|
||
|| xml.char_to_html (fin_factuur_omschr_kopregel)
|
||
|| '</fin_factuur_omschr_kopregel>'
|
||
|| '<bes_mld_cnt_opdracht_id>'
|
||
|| xml.char_to_html (bes_mld_cnt_opdracht_id)
|
||
|| '</bes_mld_cnt_opdracht_id>'
|
||
|| '<fin_factuur_datum>'
|
||
|| datum
|
||
|| '</fin_factuur_datum>'
|
||
|| '<fin_factuur_boekmaand>'
|
||
|| fin_factuur_boekmaand
|
||
|| '</fin_factuur_boekmaand>'
|
||
|| '<prs_kostensoort_oms>'
|
||
|| xml.char_to_html (grootboekrekening)
|
||
|| '</prs_kostensoort_oms>'
|
||
|| '<prs_kostensoort_doorbelasten>'
|
||
|| xml.char_to_html (kostensoort_doorbelasten)
|
||
|| '</prs_kostensoort_doorbelasten>'
|
||
|| '<prs_betaal_referentie>'
|
||
|| xml.char_to_html (betaalreferentie)
|
||
|| '</prs_betaal_referentie>'
|
||
|| '<prs_leverancier_nr>'
|
||
|| xml.char_to_html (crediteur_nr)
|
||
|| '</prs_leverancier_nr>'
|
||
|| '<prs_bedrijf_naam>'
|
||
|| xml.char_to_html (crediteur_naam)
|
||
|| '</prs_bedrijf_naam>'
|
||
|| '<fin_factuur_totaal_exbtw>'
|
||
|| fin_factuur_totaal_exbtw
|
||
|| '</fin_factuur_totaal_exbtw>'
|
||
|| '<fin_factuur_totaal_incbtw>'
|
||
|| fin_factuur_totaal_incbtw
|
||
|| '</fin_factuur_totaal_incbtw>'
|
||
|| '<fin_factuurregel_omschrijving>'
|
||
|| xml.char_to_html (fin_factuurregel_omschrijving)
|
||
|| '</fin_factuurregel_omschrijving>'
|
||
|| '<fin_factuurregel_datum>'
|
||
|| xml.char_to_html (fin_factuurregel_datum)
|
||
|| '</fin_factuurregel_datum>'
|
||
|| '<fin_factuurregel_totaal>'
|
||
|| fin_factuurregel_totaal
|
||
|| '</fin_factuurregel_totaal>'
|
||
|| '<fin_factuurregel_btw_perc>'
|
||
|| btw_percentage
|
||
|| '</fin_factuurregel_btw_perc>'
|
||
|| '<fin_factuurregel_btw_perc_code>'
|
||
|| xml.char_to_html (btw_code)
|
||
|| '</fin_factuurregel_btw_perc_code>'
|
||
|| '<fin_factuurregel_btw_bedrag>'
|
||
|| btw_bedrag
|
||
|| '</fin_factuurregel_btw_bedrag>'
|
||
|| '<prs_kostenplaats_nr>'
|
||
|| xml.char_to_html (prs_kostenplaats_nr)
|
||
|| '</prs_kostenplaats_nr>'
|
||
|| DECODE (
|
||
regelnummer,
|
||
0, '',
|
||
DECODE (max_factuur_regelnr - regelnummer,
|
||
0, '</fin_factuurregel></fin_factuur>',
|
||
'</fin_factuurregel>')),
|
||
(1000000 + fin_factuur_key) * 10000 + regelnummer
|
||
FROM (SELECT 0
|
||
regelnummer,
|
||
aant_factuur_regels,
|
||
max_factuur_regelnr,
|
||
fin_factuur_key,
|
||
fin_factuur_nr,
|
||
fin_factuur_bestand,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_omschr_kopregel,
|
||
opdracht_id
|
||
bes_mld_cnt_opdracht_id,
|
||
TO_CHAR (fin_factuur_datum, 'ddmmyyyy')
|
||
datum,
|
||
fin_factuur_boekmaand,
|
||
''
|
||
grootboekrekening,
|
||
''
|
||
kostensoort_doorbelasten,
|
||
betaalreferentie,
|
||
(SELECT prs_leverancier_nr
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
|
||
crediteur_nr,
|
||
(SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
|
||
crediteur_naam,
|
||
REPLACE (TO_CHAR (ROUND (bedrag_exbtw, 2)), ',', '.')
|
||
fin_factuur_totaal_exbtw,
|
||
REPLACE (TO_CHAR (ROUND (bedrag_incbtw, 2)), ',', '.')
|
||
fin_factuur_totaal_incbtw,
|
||
''
|
||
fin_factuurregel_omschrijving,
|
||
''
|
||
fin_factuurregel_datum,
|
||
''
|
||
fin_factuurregel_totaal,
|
||
''
|
||
btw_percentage,
|
||
''
|
||
btw_code,
|
||
''
|
||
btw_bedrag,
|
||
''
|
||
prs_kostenplaats_nr
|
||
FROM ( SELECT fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_nr,
|
||
fin_factuur_bestand,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr,
|
||
COALESCE (
|
||
fin_factuur_betaalref,
|
||
fin_factuur_nr
|
||
|| '/'
|
||
|| fin_factuur_debiteur_nr)
|
||
betaalreferentie,
|
||
fin_factuur_omschr_kopregel,
|
||
COUNT (fin_factuur_key)
|
||
AS aant_factuur_regels,
|
||
MAX (fin_factuurregel_nr)
|
||
AS max_factuur_regelnr,
|
||
SUM (fin_factuurregel_totaal)
|
||
bedrag_exbtw,
|
||
SUM (
|
||
fin_factuurregel_totaal + fin_factuurregel_btw)
|
||
bedrag_incbtw
|
||
FROM wzuv_v_factuur_geg_akkoord ---DEZE DUS
|
||
GROUP BY fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_nr,
|
||
fin_factuur_bestand,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_betaalref,
|
||
fin_factuur_omschr_kopregel) fg
|
||
UNION ALL
|
||
SELECT fin_factuurregel_nr
|
||
regelnummer,
|
||
( SELECT COUNT (fin_factuur_key)
|
||
FROM wzuv_v_factuur_geg_akkoord fc
|
||
WHERE fc.fin_factuur_key = fg.fin_factuur_key
|
||
GROUP BY fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr)
|
||
AS aant_factuur_regels,
|
||
( SELECT MAX (fin_factuurregel_nr)
|
||
FROM wzuv_v_factuur_geg_akkoord fc
|
||
WHERE fc.fin_factuur_key = fg.fin_factuur_key
|
||
GROUP BY fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key,
|
||
fin_factuur_debiteur_nr)
|
||
AS max_factuur_regelnr,
|
||
fin_factuur_key,
|
||
fin_factuur_nr,
|
||
''
|
||
fin_factuur_bestand,
|
||
fin_factuur_debiteur_nr,
|
||
''
|
||
fin_factuur_omschr_kopregel,
|
||
''
|
||
bes_mld_cnt_opdracht_id,
|
||
TO_CHAR (fin_factuur_datum, 'ddmmyyyy')
|
||
datum,
|
||
fin_factuur_boekmaand,
|
||
prs_kostensoort_oms
|
||
grootboekrekening,
|
||
TO_CHAR (prs_kostensoort_doorbelasten)
|
||
kostensoort_doorbelasten,
|
||
COALESCE (
|
||
fin_factuur_betaalref,
|
||
fin_factuur_nr || '/' || fin_factuur_debiteur_nr)
|
||
betaalreferentie,
|
||
(SELECT prs_leverancier_nr
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
|
||
crediteur_nr,
|
||
(SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
|
||
crediteur_naam,
|
||
''
|
||
fin_factuur_totaal_exbtw,
|
||
''
|
||
fin_factuur_totaal_incbtw,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_datum,
|
||
REPLACE (TO_CHAR (ROUND (fin_factuurregel_totaal, 2)),
|
||
',',
|
||
'.')
|
||
fin_factuurregel_totaal,
|
||
TO_CHAR (fin_factuurregel_btw_perc)
|
||
btw_percentage,
|
||
fin_btwtabelwaarde_btwcode
|
||
btw_code,
|
||
REPLACE (TO_CHAR (ROUND (fin_factuurregel_btw, 2)),
|
||
',',
|
||
'.')
|
||
btw_bedrag,
|
||
prs_kostenplaats_nr
|
||
FROM wzuv_v_factuur_geg_akkoord fg
|
||
ORDER BY fin_factuur_key, regelnummer);
|
||
|
||
CREATE OR REPLACE VIEW wzuv_v_export_fclt_factuur
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '<xml>', 0 FROM DUAL
|
||
UNION
|
||
SELECT result, result_order FROM wzuv_v_fclt_factuur_header
|
||
UNION
|
||
SELECT result, result_order FROM wzuv_v_fclt_factuur_body
|
||
UNION
|
||
SELECT '</xml>', 99999999999999999999 FROM DUAL;
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_export_fclt_factuur (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
-- In cursor cfactuur alle facturen die worden geexporteerd...
|
||
CURSOR cfactuur IS
|
||
SELECT fin_factuur_key
|
||
FROM wzuv_v_factuur_geg_akkoord
|
||
GROUP BY fin_factuur_key;
|
||
BEGIN
|
||
-- DE EXPORT IS OP BASIS VAN EEN VIEW GEREALISEERD, WAARNA NU ALS LAATSTE STAP NOG WAT ADMINISTRATIE VOLGT...
|
||
FOR cfact IN cfactuur
|
||
LOOP
|
||
-- Zowel de factuur in tracking zetten als de status op verwerkt (=7) zetten
|
||
fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW wzuv_v_export_undo_exact
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT REPLACE (
|
||
REPLACE (
|
||
f.fin_factuur_key
|
||
|| ';'
|
||
|| opdracht_id
|
||
|| ';'
|
||
|| fin_factuur_datum
|
||
|| ';'
|
||
|| fin_factuur_nr
|
||
|| ';'
|
||
|| prs_bedrijf_key
|
||
|| ';'
|
||
|| fin_factuurregel_totaal
|
||
|| ';'
|
||
|| fin_factuurregel_btw
|
||
|| ';'
|
||
|| fin_factuurregel_nr
|
||
|| ';'
|
||
|| fin_factuur_debiteur_nr
|
||
|| ';'
|
||
|| project_nummer
|
||
|| ';'
|
||
|| prs_kostensoort_oms
|
||
|| ';'
|
||
|| bes_opdr_key
|
||
|| ';'
|
||
|| mld_opdr_key
|
||
|| ';'
|
||
|| cnt_contract_key,
|
||
CHR (13),
|
||
''),
|
||
CHR (10),
|
||
'<ret>'),
|
||
f.fin_factuur_key
|
||
FROM wzuv_v_factuur_geg f, fac_tracking t, fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_code = 'FINVER'
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND t.fac_tracking_datum >=
|
||
(SELECT MAX (t1.fac_tracking_datum) - (1 / (24 * 60))
|
||
FROM fac_tracking t1
|
||
WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND f.fin_factuur_statuses_key = 7;
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_select_undo_exact (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
v_errormsg VARCHAR (200);
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
END;
|
||
/
|
||
|
||
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_export_undo_exact (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
CURSOR cfactuur IS
|
||
SELECT DISTINCT f.fin_factuur_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn, fin_factuur f
|
||
WHERE sn.fac_srtnotificatie_code = 'FINVER'
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND t.fac_tracking_datum >=
|
||
(SELECT MAX (t1.fac_tracking_datum) - (1 / (24 * 60))
|
||
FROM fac_tracking t1
|
||
WHERE t1.fac_srtnotificatie_key =
|
||
t.fac_srtnotificatie_key)
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND fin_factuur_statuses_key = 7;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
|
||
FOR cfact IN cfactuur
|
||
LOOP
|
||
-- Eerst de factuur in tracking zetten...
|
||
-- Omdat van 7 naar 6 niet mag/geoorloofd is, lukt het niet via
|
||
-- de reguliere functie fin.setfactuurstatus (cfact.fin_factuur_key, 6, NULL);
|
||
|
||
-- Dan maar zelf en custom-made:
|
||
fac.trackaction ('FINFOK',
|
||
cfact.fin_factuur_key,
|
||
NULL,
|
||
NULL,
|
||
'Factuur uit archief teruggezet');
|
||
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 6
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
-- ===================================
|
||
-- EINDE VIEWS EN PROCS VOOR DE EXACT KOPPELING
|
||
-- ===================================
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_processemail (pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER)
|
||
AS
|
||
v_count NUMBER;
|
||
sender prs_perslid.prs_perslid_key%TYPE;
|
||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||
locatie prs_perslid.alg_onroerendgoed_keys%TYPE;
|
||
newkey mld_melding.mld_melding_key%TYPE;
|
||
defaultstdmelding fac_setting.fac_setting_default%TYPE;
|
||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||
v_mldnum VARCHAR2 (4000);
|
||
v_mldkey mld_melding.mld_melding_key%TYPE;
|
||
v_email fac_notificatie.fac_notificatie_receiver_email%TYPE;
|
||
v_check NUMBER;
|
||
v_pbody VARCHAR2 (4000);
|
||
v_folder_kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
-- kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
errormsg fac_result.fac_result_waarde%TYPE;
|
||
BEGIN
|
||
-- Valideer de sender in pfrom: kennen we deze?
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND UPPER (prs_perslid_email) = UPPER (pfrom);
|
||
|
||
-- Bekende afzender --> dat is de melder
|
||
IF (v_count = 1)
|
||
THEN
|
||
SELECT p.prs_perslid_key, d.prs_kostenplaats_key
|
||
INTO sender, kostenplaats
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND UPPER (prs_perslid_email) = UPPER (pfrom);
|
||
|
||
v_pbody := pbody;
|
||
-- Geen bekende afzender --> _FACILITOR wordt de afzender
|
||
ELSE
|
||
SELECT prs_perslid_key, d.prs_kostenplaats_key
|
||
INTO sender, kostenplaats
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND prs_perslid_key = 3;
|
||
|
||
--- we nemen het mailadres van de afzender wel op in de tekst
|
||
v_pbody := 'Verstuurd door: ' || pfrom || CHR (10) || pbody;
|
||
END IF;
|
||
|
||
-- Check of de afzender pfrom een reply op een bestaande melding doet, in dat geval wordt dat in notities genoteerd.
|
||
-- 1) Eerst uit het onderwerp het meldingnummer proberen te onderscheppen, uitgangspunt dat in het onderwerp het meldingnummer '1234' kan worden opgevist, met ervoor en erna een spatie
|
||
-- 2) Het 1e nummer dat in het onderwerp staat wordt gezien als meldingnummer, eventuele andere nummers later in het onderwerp worden genegeerd.
|
||
subject_regexp := '[[:digit:]]{1,}';
|
||
v_mldnum :=
|
||
REGEXP_SUBSTR (psubject,
|
||
subject_regexp,
|
||
1,
|
||
1,
|
||
'i');
|
||
|
||
v_mldkey := fac.safe_to_number (v_mldnum);
|
||
|
||
--- kijken of er inderdaad een melding bestaat met het gevonden nummer
|
||
SELECT COUNT (m.mld_melding_key)
|
||
INTO v_check
|
||
FROM mld_melding m
|
||
WHERE m.mld_melding_key = v_mldkey;
|
||
|
||
IF v_check = 1
|
||
THEN
|
||
-- Bestaande melding gevonden dus we zetten de mail als notitie bij deze melding
|
||
BEGIN
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
mld_melding_note_omschrijving,
|
||
prs_perslid_key)
|
||
VALUES (
|
||
v_mldkey,
|
||
SUBSTR (
|
||
psubject
|
||
|| CHR (13)
|
||
|| CHR (10)
|
||
|| REPLACE (
|
||
SUBSTR (v_pbody,
|
||
1,
|
||
4000 - (LENGTH (psubject) + 2)),
|
||
CHR (13)
|
||
|| CHR (10)
|
||
|| CHR (13)
|
||
|| CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
sender);
|
||
|
||
---belletje bij de melding zetten
|
||
UPDATE mld_melding
|
||
SET mld_melding_actiecode = 129
|
||
WHERE mld_melding_key = v_mldkey;
|
||
|
||
--- notificatie naar behandelaar
|
||
SELECT COALESCE (b2.prs_perslid_email,
|
||
b.prs_perslid_email,
|
||
'hip@wzuveluwe.nl') email
|
||
INTO v_email
|
||
FROM mld_melding m, prs_perslid b, prs_perslid b2
|
||
WHERE m.mld_melding_behandelaar_key = b.prs_perslid_key(+)
|
||
AND m.mld_melding_behandelaar2_key = b2.prs_perslid_key(+)
|
||
AND m.mld_melding_key = v_mldkey;
|
||
|
||
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
||
fac_notificatie_status,
|
||
prs_perslid_key_receiver,
|
||
fac_notificatie_receiver_email,
|
||
fac_notificatie_oms,
|
||
fac_notificatie_refkey,
|
||
fac_notificatie_prioriteit)
|
||
VALUES (
|
||
57, --- mldnob
|
||
2,
|
||
NULL,
|
||
v_email,
|
||
'Er is een opmerking geplaatst bij melding '
|
||
|| TO_CHAR (v_mldkey),
|
||
v_mldkey,
|
||
2);
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
SELECT MIN (k1.mld_kenmerk_key)
|
||
INTO v_folder_kkey
|
||
FROM mld_stdmelding sm1,
|
||
ins_tab_discipline td1,
|
||
mld_kenmerk k1,
|
||
mld_srtkenmerk sk1,
|
||
mld_melding m
|
||
WHERE m.mld_stdmelding_key = sm1.mld_stdmelding_key
|
||
AND m.mld_melding_key = v_mldkey
|
||
AND sm1.mld_ins_discipline_key = td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
||
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND ( ( k1.mld_stdmelding_key =
|
||
sm1.mld_stdmelding_key
|
||
AND k1.mld_kenmerk_niveau = 'S')
|
||
OR ( k1.mld_stdmelding_key =
|
||
td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_niveau = 'D')
|
||
OR ( k1.mld_stdmelding_key =
|
||
td1.ins_srtdiscipline_key
|
||
AND k1.mld_kenmerk_niveau = 'T')
|
||
OR (k1.mld_kenmerk_niveau = 'A'));
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (
|
||
psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M'
|
||
|| TO_CHAR (TRUNC (v_mldkey / 1000), 'FM0000')
|
||
|| '___\M'
|
||
|| v_mldkey
|
||
|| '\'
|
||
|| v_folder_kkey
|
||
|| '\');
|
||
END IF;
|
||
|
||
fac.trackaction ('MLDTRK',
|
||
v_mldkey,
|
||
NULL,
|
||
NULL,
|
||
'Nieuwe notitie via Mail2melding');
|
||
END;
|
||
ELSE
|
||
IF UPPER (pto) LIKE 'HIP@%'
|
||
THEN
|
||
defaultstdmelding := '922';
|
||
|
||
BEGIN
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES (
|
||
'MLD',
|
||
4, -- email
|
||
SYSDATE,
|
||
SUBSTR (psubject, 1, 60),
|
||
SUBSTR (
|
||
REPLACE (
|
||
SUBSTR (v_pbody, 1, 4000),
|
||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
2,
|
||
defaultstdmelding,
|
||
sender,
|
||
sender,
|
||
kostenplaats,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO newkey;
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
SELECT MIN (k1.mld_kenmerk_key)
|
||
INTO v_folder_kkey
|
||
FROM mld_stdmelding sm1,
|
||
ins_tab_discipline td1,
|
||
mld_kenmerk k1,
|
||
mld_srtkenmerk sk1
|
||
WHERE sm1.mld_stdmelding_key = defaultstdmelding
|
||
AND sm1.mld_ins_discipline_key =
|
||
td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
||
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND ( ( k1.mld_stdmelding_key =
|
||
sm1.mld_stdmelding_key
|
||
AND k1.mld_kenmerk_niveau = 'S')
|
||
OR ( k1.mld_stdmelding_key =
|
||
td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_niveau = 'D')
|
||
OR ( k1.mld_stdmelding_key =
|
||
td1.ins_srtdiscipline_key
|
||
AND k1.mld_kenmerk_niveau = 'T')
|
||
OR (k1.mld_kenmerk_niveau = 'A'))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_stdmelding sm2,
|
||
ins_tab_discipline td2,
|
||
mld_kenmerk k2,
|
||
mld_srtkenmerk sk2
|
||
WHERE sm2.mld_stdmelding_key =
|
||
defaultstdmelding
|
||
AND sm2.mld_ins_discipline_key =
|
||
td2.ins_discipline_key
|
||
AND k2.mld_kenmerk_verwijder IS NULL
|
||
AND k2.mld_srtkenmerk_key =
|
||
sk2.mld_srtkenmerk_key
|
||
AND sk2.mld_srtkenmerk_kenmerktype =
|
||
'M'
|
||
AND ( ( k2.mld_stdmelding_key =
|
||
sm2.mld_stdmelding_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'S')
|
||
OR ( k2.mld_stdmelding_key =
|
||
td2.ins_discipline_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'D')
|
||
OR ( k2.mld_stdmelding_key =
|
||
td2.ins_srtdiscipline_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'T')
|
||
OR (k1.mld_kenmerk_niveau = 'A'))
|
||
AND k2.mld_kenmerk_volgnummer <
|
||
k1.mld_kenmerk_volgnummer);
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (
|
||
psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M'
|
||
|| TO_CHAR (TRUNC (newkey / 1000), 'FM0000')
|
||
|| '___\M'
|
||
|| newkey
|
||
|| '\'
|
||
|| v_folder_kkey
|
||
|| '\');
|
||
END IF;
|
||
|
||
fac.trackaction ('MLDTRK',
|
||
newkey,
|
||
NULL,
|
||
NULL,
|
||
'Melding geregistreerd via Mail2Melding');
|
||
END;
|
||
ELSE
|
||
IF UPPER (pto) LIKE 'AFAS@%'
|
||
THEN
|
||
defaultstdmelding := '1822';
|
||
|
||
BEGIN
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES (
|
||
'MLD',
|
||
4, -- email
|
||
SYSDATE,
|
||
SUBSTR (psubject, 1, 60),
|
||
SUBSTR (
|
||
REPLACE (
|
||
SUBSTR (v_pbody, 1, 4000),
|
||
CHR (13)
|
||
|| CHR (10)
|
||
|| CHR (13)
|
||
|| CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
2,
|
||
defaultstdmelding,
|
||
sender,
|
||
sender,
|
||
kostenplaats,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO newkey;
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
SELECT MIN (k1.mld_kenmerk_key)
|
||
INTO v_folder_kkey
|
||
FROM mld_stdmelding sm1,
|
||
ins_tab_discipline td1,
|
||
mld_kenmerk k1,
|
||
mld_srtkenmerk sk1
|
||
WHERE sm1.mld_stdmelding_key = defaultstdmelding
|
||
AND sm1.mld_ins_discipline_key =
|
||
td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
||
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND ( ( k1.mld_stdmelding_key =
|
||
sm1.mld_stdmelding_key
|
||
AND k1.mld_kenmerk_niveau = 'S')
|
||
OR ( k1.mld_stdmelding_key =
|
||
td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_niveau = 'D')
|
||
OR ( k1.mld_stdmelding_key =
|
||
td1.ins_srtdiscipline_key
|
||
AND k1.mld_kenmerk_niveau = 'T')
|
||
OR (k1.mld_kenmerk_niveau = 'A'))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_stdmelding sm2,
|
||
ins_tab_discipline td2,
|
||
mld_kenmerk k2,
|
||
mld_srtkenmerk sk2
|
||
WHERE sm2.mld_stdmelding_key =
|
||
defaultstdmelding
|
||
AND sm2.mld_ins_discipline_key =
|
||
td2.ins_discipline_key
|
||
AND k2.mld_kenmerk_verwijder
|
||
IS NULL
|
||
AND k2.mld_srtkenmerk_key =
|
||
sk2.mld_srtkenmerk_key
|
||
AND sk2.mld_srtkenmerk_kenmerktype =
|
||
'M'
|
||
AND ( ( k2.mld_stdmelding_key =
|
||
sm2.mld_stdmelding_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'S')
|
||
OR ( k2.mld_stdmelding_key =
|
||
td2.ins_discipline_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'D')
|
||
OR ( k2.mld_stdmelding_key =
|
||
td2.ins_srtdiscipline_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'T')
|
||
OR (k1.mld_kenmerk_niveau =
|
||
'A'))
|
||
AND k2.mld_kenmerk_volgnummer <
|
||
k1.mld_kenmerk_volgnummer);
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (
|
||
psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M'
|
||
|| TO_CHAR (TRUNC (newkey / 1000),
|
||
'FM0000')
|
||
|| '___\M'
|
||
|| newkey
|
||
|| '\'
|
||
|| v_folder_kkey
|
||
|| '\');
|
||
END IF;
|
||
|
||
fac.trackaction (
|
||
'MLDTRK',
|
||
newkey,
|
||
NULL,
|
||
NULL,
|
||
'Melding geregistreerd via Mail2Melding');
|
||
END;
|
||
ELSE
|
||
IF UPPER (pto) LIKE 'NEDAP@%'
|
||
THEN
|
||
defaultstdmelding := '3002';
|
||
|
||
BEGIN
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES (
|
||
'MLD',
|
||
4, -- email
|
||
SYSDATE,
|
||
SUBSTR (psubject, 1, 60),
|
||
SUBSTR (
|
||
REPLACE (
|
||
SUBSTR (v_pbody, 1, 4000),
|
||
CHR (13)
|
||
|| CHR (10)
|
||
|| CHR (13)
|
||
|| CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
2,
|
||
defaultstdmelding,
|
||
sender,
|
||
sender,
|
||
kostenplaats,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO newkey;
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
SELECT MIN (k1.mld_kenmerk_key)
|
||
INTO v_folder_kkey
|
||
FROM mld_stdmelding sm1,
|
||
ins_tab_discipline td1,
|
||
mld_kenmerk k1,
|
||
mld_srtkenmerk sk1
|
||
WHERE sm1.mld_stdmelding_key = defaultstdmelding
|
||
AND sm1.mld_ins_discipline_key =
|
||
td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_srtkenmerk_key =
|
||
sk1.mld_srtkenmerk_key
|
||
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND ( ( k1.mld_stdmelding_key =
|
||
sm1.mld_stdmelding_key
|
||
AND k1.mld_kenmerk_niveau = 'S')
|
||
OR ( k1.mld_stdmelding_key =
|
||
td1.ins_discipline_key
|
||
AND k1.mld_kenmerk_niveau = 'D')
|
||
OR ( k1.mld_stdmelding_key =
|
||
td1.ins_srtdiscipline_key
|
||
AND k1.mld_kenmerk_niveau = 'T')
|
||
OR (k1.mld_kenmerk_niveau = 'A'))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_stdmelding sm2,
|
||
ins_tab_discipline td2,
|
||
mld_kenmerk k2,
|
||
mld_srtkenmerk sk2
|
||
WHERE sm2.mld_stdmelding_key =
|
||
defaultstdmelding
|
||
AND sm2.mld_ins_discipline_key =
|
||
td2.ins_discipline_key
|
||
AND k2.mld_kenmerk_verwijder
|
||
IS NULL
|
||
AND k2.mld_srtkenmerk_key =
|
||
sk2.mld_srtkenmerk_key
|
||
AND sk2.mld_srtkenmerk_kenmerktype =
|
||
'M'
|
||
AND ( ( k2.mld_stdmelding_key =
|
||
sm2.mld_stdmelding_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'S')
|
||
OR ( k2.mld_stdmelding_key =
|
||
td2.ins_discipline_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'D')
|
||
OR ( k2.mld_stdmelding_key =
|
||
td2.ins_srtdiscipline_key
|
||
AND k2.mld_kenmerk_niveau =
|
||
'T')
|
||
OR (k1.mld_kenmerk_niveau =
|
||
'A'))
|
||
AND k2.mld_kenmerk_volgnummer <
|
||
k1.mld_kenmerk_volgnummer);
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (
|
||
psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M'
|
||
|| TO_CHAR (TRUNC (newkey / 1000),
|
||
'FM0000')
|
||
|| '___\M'
|
||
|| newkey
|
||
|| '\'
|
||
|| v_folder_kkey
|
||
|| '\');
|
||
END IF;
|
||
|
||
fac.trackaction (
|
||
'MLDTRK',
|
||
newkey,
|
||
NULL,
|
||
NULL,
|
||
'Melding geregistreerd via Mail2Melding');
|
||
END;
|
||
ELSE
|
||
IF UPPER (pto) LIKE 'OVERLIJDEN@%'
|
||
THEN
|
||
defaultstdmelding := '461';
|
||
|
||
BEGIN
|
||
INSERT INTO mld_melding (
|
||
mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
mld_alg_locatie_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES (
|
||
'MLD',
|
||
4, -- email
|
||
SYSDATE,
|
||
SUBSTR (psubject, 1, 60),
|
||
SUBSTR (
|
||
REPLACE (
|
||
SUBSTR (v_pbody, 1, 4000),
|
||
CHR (13)
|
||
|| CHR (10)
|
||
|| CHR (13)
|
||
|| CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
2,
|
||
defaultstdmelding,
|
||
1, -- Hoe bepalen we de locatie? Nu maar even op 1 = Epe gezet
|
||
sender,
|
||
sender,
|
||
kostenplaats,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO newkey;
|
||
|
||
-- In geval van overlijden moet een workflow gestart worden
|
||
-- de startmelding krijgt status 5 en de volgende stap kan opgestart worden
|
||
mld.setmeldingstatus (newkey, 5, sender);
|
||
mld.mld_nextworkflowstep (newkey, 1); -- 1=Completed
|
||
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (
|
||
psessionid,
|
||
'maillog',
|
||
'Geregistreerd onder melding '
|
||
|| newkey);
|
||
END;
|
||
ELSE
|
||
NULL;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (
|
||
'PROCESSEMAIL',
|
||
'W',
|
||
'Mail kon niet verwerkt worden afzender: '
|
||
|| pfrom
|
||
|| '['
|
||
|| errormsg
|
||
|| ']',
|
||
'OTHERS (error '
|
||
|| SQLCODE
|
||
|| '/'
|
||
|| SUBSTR (SQLERRM, 1, 100)
|
||
|| ')');
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (
|
||
psessionid,
|
||
'errormsg',
|
||
'Database fout - Neem contact op met uw systeembeheerder');
|
||
END wzuv_processemail;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_GEGEVENS_GEBOUW
|
||
(
|
||
ALG_GEBOUW_KEY,
|
||
GEBOUW,
|
||
PLANNING_SCHOONMAAK,
|
||
KLUSTEAM,
|
||
CSP,
|
||
HUISMEESTER1,
|
||
HUISMEESTER2,
|
||
RECEPTIE,
|
||
LINNENDIENST,
|
||
EVV
|
||
)
|
||
AS
|
||
SELECT g.alg_gebouw_key,
|
||
g.alg_gebouw_omschrijving,
|
||
schoonm.alg_onrgoedkenmerk_waarde planning_schoonmaak,
|
||
'klusteam@wzuveluwe.nl' klusteam,
|
||
'clientservicepunt@wzuveluwe.nl' CSP,
|
||
hm1.huismeester1,
|
||
hm2.huismeester2,
|
||
receptie.alg_onrgoedkenmerk_waarde receptie,
|
||
linnend.alg_onrgoedkenmerk_waarde linnendienst,
|
||
evv.alg_onrgoedkenmerk_waarde evv
|
||
FROM alg_gebouw g,
|
||
(SELECT ogk.alg_onrgoed_key gebouw_key,
|
||
ogk.alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k
|
||
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_key = 1140
|
||
AND ogk.alg_onrgoed_niveau = 'G') linnend,
|
||
(SELECT ogk.alg_onrgoed_key gebouw_key,
|
||
ogk.alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k
|
||
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_key = 1100
|
||
AND ogk.alg_onrgoed_niveau = 'G') schoonm,
|
||
(SELECT ogk.alg_onrgoed_key gebouw_key,
|
||
p.prs_perslid_email huismeester1
|
||
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k, prs_perslid p
|
||
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_key = 1080
|
||
AND fac.safe_to_number (ogk.alg_onrgoedkenmerk_waarde) =
|
||
p.prs_perslid_key
|
||
AND ogk.alg_onrgoed_niveau = 'G') hm1,
|
||
(SELECT ogk.alg_onrgoed_key gebouw_key,
|
||
p.prs_perslid_email huismeester2
|
||
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k, prs_perslid p
|
||
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_key = 1081
|
||
AND fac.safe_to_number (ogk.alg_onrgoedkenmerk_waarde) =
|
||
p.prs_perslid_key
|
||
AND ogk.alg_onrgoed_niveau = 'G') hm2,
|
||
(SELECT ogk.alg_onrgoed_key gebouw_key,
|
||
ogk.alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k
|
||
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_key = 1120
|
||
AND ogk.alg_onrgoed_niveau = 'G') receptie,
|
||
(SELECT ogk.alg_onrgoed_key gebouw_key,
|
||
ogk.alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k
|
||
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND k.alg_kenmerk_key = 1160
|
||
AND ogk.alg_onrgoed_niveau = 'G') evv
|
||
WHERE g.alg_gebouw_key = linnend.gebouw_key(+)
|
||
AND g.alg_gebouw_key = schoonm.gebouw_key(+)
|
||
AND g.alg_gebouw_key = hm1.gebouw_key(+)
|
||
AND g.alg_gebouw_key = hm2.gebouw_key(+)
|
||
AND g.alg_gebouw_key = receptie.gebouw_key(+)
|
||
AND g.alg_gebouw_key = evv.gebouw_key(+);
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_REMINDER_FIAT
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Reminder fiattering bestelling ' || b.bes_bestelling_key
|
||
tekst,
|
||
'BESTRK', --- srtnotificatie_code
|
||
344, --- fac_srtnotificatie_key,
|
||
b.bes_bestelling_key,
|
||
NULL
|
||
xkey,
|
||
fv.fiatteur_mail
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM bes_bestelling b, --- Wie heeft een mail ontvangen voor het fiatteren>
|
||
(SELECT fac_usrdata_code reminder_na
|
||
FROM fac_usrtab ut, fac_usrdata ud
|
||
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND UPPER (ut.fac_usrtab_naam) = 'SYSTEEM'
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND (ud.fac_usrdata_vervaldatum IS NULL OR ud.fac_usrdata_vervaldatum > SYSDATE)
|
||
AND UPPER (ud.fac_usrdata_omschr) LIKE '%BESAP1%') s,
|
||
(SELECT TRIM (
|
||
SUBSTR (t.fac_tracking_oms,
|
||
INSTR (t.fac_tracking_oms, ' ', -1)))
|
||
fiatteur_mail,
|
||
p.prs_perslid_key
|
||
fiatteur_key,
|
||
t.fac_tracking_refkey
|
||
bes_bestelling_key,
|
||
t.fac_tracking_datum
|
||
FROM fac_tracking t, prs_perslid p
|
||
WHERE t.fac_tracking_oms LIKE '%BESAP1%'
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND p.prs_perslid_email =
|
||
TRIM (
|
||
SUBSTR (t.fac_tracking_oms,
|
||
INSTR (t.fac_tracking_oms, ' ', -1)))) fv
|
||
WHERE b.bes_bestelling_status = 2 -- nieuw, nog niet besteld
|
||
AND fv.bes_bestelling_key = b.bes_bestelling_key
|
||
AND b.bes_bestelling_datum > TO_DATE ('31-12-2022', 'dd-mm-yyyy')
|
||
AND TRUNC (fv.fac_tracking_datum + s.reminder_na) =
|
||
TRUNC (SYSDATE)
|
||
AND NOT EXISTS -- de fiatteur heeft een verzoek gehad en nog niet gefiatteerd
|
||
(SELECT bf.bes_bestelling_key,
|
||
tf.fac_tracking_datum datum_fiattering,
|
||
tf.prs_perslid_key fiatteur,
|
||
pf.prs_perslid_email
|
||
FROM bes_bestelling bf,
|
||
fac_tracking tf,
|
||
fac_srtnotificatie snf,
|
||
prs_perslid pf
|
||
WHERE tf.fac_tracking_refkey = bf.bes_bestelling_key
|
||
AND snf.fac_srtnotificatie_key =
|
||
tf.fac_srtnotificatie_key
|
||
AND pf.prs_perslid_key = tf.prs_perslid_key
|
||
AND snf.fac_srtnotificatie_xmlnode = 'bestelling'
|
||
AND bf.bes_bestelling_status = 2
|
||
AND snf.fac_srtnotificatie_code = 'BESFIT'
|
||
AND fv.fiatteur_key = tf.prs_perslid_key);
|
||
|
||
--- notificaties bij vrijkomen appartement WZUV#66313 op diverse momenten moeten verschilllende medewerkers bericht ontvangen
|
||
--- Stap 1:
|
||
--- als de melding wordt aangemaakt moet het klusteam, het CSP, de afdelingsassistente, de receptie en de husmeester een mail ontvangen
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP1
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Melding vrijkomen '
|
||
|| (LOWER (r.alg_ruimte_omschrijving))
|
||
|| ' '
|
||
|| g.alg_gebouw_naam,
|
||
n.fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
m.mld_melding_key,
|
||
NULL
|
||
xkey,
|
||
gg.csp
|
||
|| ';'
|
||
|| gg.huismeester1
|
||
|| ';'
|
||
|| gg.huismeester2
|
||
|| ';'
|
||
|| gg.klusteam
|
||
|| ';'
|
||
|| gg.planning_schoonmaak
|
||
|| ';'
|
||
|| gg.receptie
|
||
|| ';'
|
||
|| gg.linnendienst
|
||
|| ';'
|
||
|| gg.evv
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
fac_srtnotificatie n,
|
||
wzuv_v_gegevens_gebouw gg
|
||
WHERE m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = gg.alg_gebouw_key
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND n.fac_srtnotificatie_code = 'CUST01'
|
||
AND t.fac_srtnotificatie_key = 44 -- mldnew
|
||
AND m.mld_stdmelding_key = 2822 -- melding oplevering appartement 2822 op prod
|
||
AND t.fac_tracking_datum >
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP1')
|
||
AND t.fac_tracking_datum <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP1');
|
||
|
||
--- Stap 2:
|
||
--- melding gaat na het aanmaken naar de huismeester deze vult de datum oplevering met de familie in
|
||
--- hiervan krijgt het CSP bericht
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP2
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Datum oplevering met familie '
|
||
|| (LOWER (r.alg_ruimte_omschrijving))
|
||
|| ' '
|
||
|| g.alg_gebouw_naam,
|
||
fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
m.mld_melding_key,
|
||
NULL
|
||
xkey,
|
||
gg.csp
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
fac_srtnotificatie n,
|
||
wzuv_v_gegevens_gebouw gg,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_aanmaak
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_kenmerk_key = 3388) datum --- Datum van oplevering met familie
|
||
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
||
AND n.fac_srtnotificatie_code = 'CUST02'
|
||
AND m.mld_stdmelding_key = 2822 -- melding opleveren appartement
|
||
AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = gg.alg_gebouw_key
|
||
AND m.mld_melding_key = datum.mld_melding_key
|
||
AND datum.mld_kenmerkmelding_aanmaak >
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP2')
|
||
AND datum.mld_kenmerkmelding_aanmaak <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP2');
|
||
|
||
|
||
--- Stap 3:
|
||
--- het klusteam vult de planning van de werkzaamheden in
|
||
--- hiervan krijgt het CSP bericht
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP3
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Kluswerkzaamheden '
|
||
|| (LOWER (r.alg_ruimte_omschrijving))
|
||
|| ' '
|
||
|| g.alg_gebouw_naam
|
||
|| ' ingepland',
|
||
fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
m.mld_melding_key,
|
||
NULL
|
||
xkey,
|
||
gg.csp
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
fac_srtnotificatie n,
|
||
wzuv_v_gegevens_gebouw gg,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_aanmaak
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_kenmerk_key = 3390) klussen_afg --- kluswerkzaamheden gepland
|
||
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
||
AND n.fac_srtnotificatie_code = 'CUST03'
|
||
AND m.mld_stdmelding_key = 2822 -- melding opleveren appartement
|
||
AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = gg.alg_gebouw_key
|
||
AND m.mld_melding_key = klussen_afg.mld_melding_key
|
||
AND klussen_afg.mld_kenmerkmelding_aanmaak >
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP3')
|
||
AND klussen_afg.mld_kenmerkmelding_aanmaak <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP3');
|
||
|
||
--- Stap 4:
|
||
--- de afdelingsassistent plant de schoonmaak in
|
||
--- hiervan krijgen huismeester en CSP bericht
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP4
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Schoonmaakwerkzaamheden '
|
||
|| (LOWER (r.alg_ruimte_omschrijving))
|
||
|| ' '
|
||
|| g.alg_gebouw_naam
|
||
|| ' ingepland',
|
||
fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
m.mld_melding_key,
|
||
NULL
|
||
xkey,
|
||
gg.csp || ';' || gg.huismeester1 || ';' || gg.huismeester2
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
fac_srtnotificatie n,
|
||
wzuv_v_gegevens_gebouw gg,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_aanmaak
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_kenmerk_key = 3394) schoonm_afg --- datum opleveringsschoonmaak gepland
|
||
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
||
AND n.fac_srtnotificatie_code = 'CUST06'
|
||
AND m.mld_stdmelding_key = 2822 -- melding opleveren appartement
|
||
AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = gg.alg_gebouw_key
|
||
AND m.mld_melding_key = schoonm_afg.mld_melding_key
|
||
AND schoonm_afg.mld_kenmerkmelding_aanmaak >
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP4')
|
||
AND schoonm_afg.mld_kenmerkmelding_aanmaak <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP4');
|
||
|
||
--- Stap 5:
|
||
--- huismeester voegt opleverlijst en sleutellijst toe aan de melding
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP5
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Sleutellijst en opleverlijst aangeleverd t.b.v. '
|
||
|| (LOWER (r.alg_ruimte_omschrijving))
|
||
|| ' '
|
||
|| g.alg_gebouw_naam,
|
||
fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
m.mld_melding_key,
|
||
NULL
|
||
xkey,
|
||
gg.csp
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
fac_srtnotificatie n,
|
||
wzuv_v_gegevens_gebouw gg,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
(SELECT sl.mld_melding_key, GREATEST (datum_sl, datum_ol) datum
|
||
FROM (SELECT km.mld_melding_key,
|
||
km.mld_kenmerkmelding_aanmaak datum_sl
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_kenmerk_key = 3501) sl,
|
||
(SELECT km.mld_melding_key,
|
||
km.mld_kenmerkmelding_aanmaak datum_ol
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_kenmerk_key = 3502) ol
|
||
WHERE sl.mld_melding_key = ol.mld_melding_key) lijst
|
||
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
||
AND n.fac_srtnotificatie_code = 'CUST07'
|
||
AND m.mld_stdmelding_key = 2822 -- melding opleveren appartement
|
||
AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = gg.alg_gebouw_key
|
||
AND m.mld_melding_key = lijst.mld_melding_key
|
||
AND lijst.datum >
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP5')
|
||
AND lijst.datum <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP5');
|
||
|
||
--- Stap 6:
|
||
--- het klusteam meld de werkaamheden gereed, het CSP ontvangt hier een mailtje van
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP6
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Kluswerkzaamheden '
|
||
|| (LOWER (r.alg_ruimte_omschrijving))
|
||
|| ' '
|
||
|| g.alg_gebouw_naam
|
||
|| ' afgerond',
|
||
fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
m.mld_melding_key,
|
||
NULL
|
||
xkey,
|
||
gg.csp
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
fac_srtnotificatie n,
|
||
wzuv_v_gegevens_gebouw gg,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_aanmaak
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_kenmerk_key = 3489) klussen_afg
|
||
WHERE t.fac_tracking_refkey = m.mld_melding_key
|
||
AND n.fac_srtnotificatie_code = 'CUST08'
|
||
AND m.mld_stdmelding_key = 2822 -- melding opleveren appartement
|
||
AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = gg.alg_gebouw_key
|
||
AND m.mld_melding_key = klussen_afg.mld_melding_key
|
||
AND klussen_afg.mld_kenmerkmelding_aanmaak >
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP6')
|
||
AND klussen_afg.mld_kenmerkmelding_aanmaak <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP6');
|
||
|
||
--- Stap 7:
|
||
--- de melding wordt gereed gemeld, het CSP moet hier ook bericht van krijgen
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP7
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Melding vrijkomen '
|
||
|| (LOWER (r.alg_ruimte_omschrijving))
|
||
|| ' '
|
||
|| g.alg_gebouw_naam
|
||
|| ' is afgemeld',
|
||
n.fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
m.mld_melding_key,
|
||
NULL
|
||
xkey,
|
||
gg.csp
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
fac_srtnotificatie n,
|
||
wzuv_v_gegevens_gebouw gg
|
||
WHERE m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = gg.alg_gebouw_key
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND n.fac_srtnotificatie_code = 'CUST09'
|
||
AND t.fac_srtnotificatie_key = 39 -- mldafm
|
||
AND m.mld_stdmelding_key = 2822 -- melding oplevering appartement 2822 op prod
|
||
AND t.fac_tracking_datum >
|
||
(SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP7')
|
||
AND t.fac_tracking_datum <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_VRIJKOMEN_APP7');
|
||
|
||
--View voor Notificatie bij Rapeldatum contract bereikt
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_CNTREMINDER
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
PAR1,
|
||
PAR2,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'CNTINF',
|
||
'',
|
||
c.prs_perslid_key_beh,
|
||
'Rappel: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie,
|
||
NULL, '',
|
||
'.' || cnt_contract_versie)
|
||
|| ' ('
|
||
|| c.cnt_contract_omschrijving
|
||
|| ' '
|
||
|| b.prs_bedrijf_naam
|
||
|| ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.',
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_verwijder IS NULL
|
||
AND cnt_contract_status = 0
|
||
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
|
||
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
|
||
UNION ALL
|
||
SELECT 'CNTINF',
|
||
'',
|
||
c.prs_perslid_key_eig,
|
||
'Rappel: Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie,
|
||
NULL, '',
|
||
'.' || cnt_contract_versie)
|
||
|| ' ('
|
||
|| c.cnt_contract_omschrijving
|
||
|| ' '
|
||
|| b.prs_bedrijf_naam
|
||
|| ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.',
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_verwijder IS NULL
|
||
AND cnt_contract_status = 0
|
||
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
|
||
AND cnt.cnt_getopzegdatum (c.cnt_contract_key));
|
||
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_RAP_CONTROLE_RES
|
||
(
|
||
SOORT,
|
||
DATUM,
|
||
NEDAPNR,
|
||
KOSTENPLAATS,
|
||
KOSTENSOORT,
|
||
RES_NR,
|
||
NO_SHOW,
|
||
STATUS,
|
||
OMSCHRIJVING,
|
||
RUIMTE,
|
||
RUIMTE_PRIJS,
|
||
CATERING_PRIJS,
|
||
NAAM_GEFACTUREERDE,
|
||
FACTUURADRES,
|
||
PC_PLAATS
|
||
)
|
||
AS
|
||
SELECT DECODE (res.fclt_3d_afdeling_key,
|
||
422, 'Extern - Cli<6C>nt',
|
||
441, 'Extern - Overig',
|
||
'Intern')
|
||
activiteitensoort,
|
||
van,
|
||
CASE
|
||
WHEN UPPER (personeelsnr) LIKE 'NEDAP%'
|
||
THEN
|
||
SUBSTR (personeelsnr, 7)
|
||
ELSE
|
||
''
|
||
END
|
||
AS NEDAPnr,
|
||
kpl.prs_kostenplaats_nr
|
||
|| '- '
|
||
|| kpl.prs_kostenplaats_omschrijving,
|
||
res.kostensoort,
|
||
nummer,
|
||
no_show,
|
||
bostatus,
|
||
res_omschrijving,
|
||
ruimte,
|
||
res.getruimteprijs (rrr.res_rsv_ruimte_key)
|
||
ruimte_prijs,
|
||
SUM (voorziening_totaalprijs)
|
||
catering_prijs,
|
||
naam_gefactureerde,
|
||
factuuradres,
|
||
pc_plaats
|
||
FROM res_v_udr_reserveringincl res,
|
||
prs_afdeling afd,
|
||
res_rsv_ruimte rrr,
|
||
prs_kostenplaats kpl,
|
||
(SELECT res_rsv_ruimte_key,
|
||
res_kenmerkreservering_waarde naam_gefactureerde
|
||
FROM res_kenmerkwaarde kw, res_kenmerk km, res_srtkenmerk skm
|
||
WHERE kw.res_kenmerk_key = km.res_kenmerk_key
|
||
AND km.res_srtkenmerk_key = skm.res_srtkenmerk_key
|
||
AND res_srtkenmerk_upper LIKE '%NAAM GEFACTUREERDE%')
|
||
gefactureerde,
|
||
(SELECT res_rsv_ruimte_key,
|
||
res_kenmerkreservering_waarde factuuradres
|
||
FROM res_kenmerkwaarde kw, res_kenmerk km, res_srtkenmerk skm
|
||
WHERE kw.res_kenmerk_key = km.res_kenmerk_key
|
||
AND km.res_srtkenmerk_key = skm.res_srtkenmerk_key
|
||
AND res_srtkenmerk_upper LIKE 'ADRES%') adres,
|
||
(SELECT res_rsv_ruimte_key,
|
||
res_kenmerkreservering_waarde pc_plaats
|
||
FROM res_kenmerkwaarde kw, res_kenmerk km, res_srtkenmerk skm
|
||
WHERE kw.res_kenmerk_key = km.res_kenmerk_key
|
||
AND km.res_srtkenmerk_key = skm.res_srtkenmerk_key
|
||
AND res_srtkenmerk_upper LIKE 'POSTCODE%') postcode
|
||
WHERE res.fclt_3d_afdeling_key = afd.prs_afdeling_key
|
||
AND rrr.res_rsv_ruimte_key = res.key
|
||
AND afd.prs_kostenplaats_key = kpl.prs_kostenplaats_key
|
||
AND res.key = gefactureerde.res_rsv_ruimte_key(+)
|
||
AND res.key = adres.res_rsv_ruimte_key(+)
|
||
AND res.key = postcode.res_rsv_ruimte_key(+)
|
||
GROUP BY res.fclt_3d_afdeling_key,
|
||
van,
|
||
personeelsnr,
|
||
kpl.prs_kostenplaats_nr,
|
||
kpl.prs_kostenplaats_omschrijving,
|
||
kostensoort,
|
||
nummer,
|
||
no_show,
|
||
bostatus,
|
||
res_omschrijving,
|
||
ruimte,
|
||
rrr.res_rsv_ruimte_key,
|
||
naam_gefactureerde,
|
||
factuuradres,
|
||
pc_plaats
|
||
ORDER BY van, nummer;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_fin_upsertkenmerk (
|
||
f_kenmerk_key IN NUMBER,
|
||
f_fact_key IN NUMBER,
|
||
f_kenmerk_waarde IN VARCHAR2)
|
||
AS
|
||
v_count NUMBER;
|
||
v_niveau VARCHAR2 (1);
|
||
BEGIN
|
||
-- Is er al een actuele waarde?
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = f_fact_key
|
||
AND fin_kenmerk_key = f_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
IF f_kenmerk_waarde IS NULL
|
||
THEN
|
||
-- Er was al een waarde maar nu is de waarde leeg: Wissen bestaande waarde
|
||
DELETE fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = f_fact_key
|
||
AND fin_kenmerk_key = f_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
ELSE
|
||
-- Er was al een waarde maar er wordt ook een waarde meegegeven: Bijwerken bestaande waarde
|
||
UPDATE fin_kenmerkfactuur
|
||
SET fin_kenmerkfactuur_waarde = f_kenmerk_waarde
|
||
WHERE fin_factuur_key = f_fact_key
|
||
AND fin_kenmerk_key = f_kenmerk_key
|
||
AND fin_kenmerkfactuur_verwijder IS NULL;
|
||
END IF;
|
||
ELSE
|
||
IF f_kenmerk_key IS NOT NULL AND f_kenmerk_waarde IS NOT NULL
|
||
THEN
|
||
-- Er was nog geen waarde en er wordt een waarde meegegeven: Registreren waarde
|
||
INSERT INTO FIN_KENMERKFACTUUR (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (f_fact_key, f_kenmerk_key, f_kenmerk_waarde);
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE wzuv_export_ks_topbloemen (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
-- In cursor c_factuur alle facturen die gerelateerd zijn aan een bestelling bij Topbloemen en die nog geen kostensoort hebben
|
||
CURSOR c_factuur IS
|
||
SELECT fac.fin_factuur_key
|
||
FROM fin_factuur fac, prs_bedrijf b, bes_bestelopdr bo
|
||
WHERE b.prs_bedrijf_naam_upper LIKE '%TOPBLOEMEN%'
|
||
AND b.prs_bedrijf_key = bo.prs_bedrijf_key
|
||
AND fac.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND fac.prs_kostensoort_key IS NULL;
|
||
BEGIN
|
||
FOR rec IN c_factuur
|
||
LOOP
|
||
-- voor alle facturen van Topbloemen waarbij nog geen kostensoort bekend is, moet de kostensoort herleid worden uit het kenmerk
|
||
UPDATE fin_factuur fac
|
||
SET fac.prs_kostensoort_key =
|
||
(SELECT ks.prs_kostensoort_key
|
||
FROM prs_bedrijf b,
|
||
bes_bestelopdr bo,
|
||
bes_bestelling bes,
|
||
bes_kenmerkbestell kb,
|
||
bes_kenmerk km,
|
||
bes_srtkenmerk sk,
|
||
fac_usrdata kw,
|
||
prs_kostensoort ks
|
||
WHERE b.prs_bedrijf_naam_upper LIKE '%TOPBLOEMEN%'
|
||
AND b.prs_bedrijf_key = bo.prs_bedrijf_key
|
||
AND SUBSTR (bes_bestelopdr_id,
|
||
1,
|
||
INSTR (bes_bestelopdr_id, '/') - 1) =
|
||
bes.bes_bestelling_key(+)
|
||
AND kb.bes_bestelling_key = bes.bes_bestelling_key
|
||
AND kb.bes_kenmerkbestell_waarde =
|
||
TO_CHAR (kw.fac_usrdata_key)
|
||
AND TO_CHAR (kw.fac_usrdata_prijs) =
|
||
ks.prs_kostensoort_upper
|
||
AND kb.bes_kenmerk_key = km.bes_kenmerk_key
|
||
AND sk.bes_srtkenmerk_key = km.bes_srtkenmerk_key
|
||
AND fac.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND sk.bes_srtkenmerk_upper = 'ATTENTIEPROTOCOL')
|
||
WHERE fac.fin_factuur_key = rec.fin_factuur_key;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_INS_QRC_OBJECT
|
||
(
|
||
HIDE_F_SORT,
|
||
FCLT_F_DISCIPLINE,
|
||
FCLT_F_OBJECTGROEP,
|
||
FCLT_F_OBJECTSOORT,
|
||
FCLT_F_IDENTIFICATIE,
|
||
FCLT_F_BOOKMARK,
|
||
INS_DEEL_KEY,
|
||
INS_SRTDEEL_KEY,
|
||
FCLT_3D_DISCIPLINE_KEY,
|
||
BOOKMARK_ID
|
||
)
|
||
AS
|
||
SELECT i.ins_deel_omschrijving hide_f_sort,
|
||
d.ins_discipline_omschrijving fclt_f_discipline,
|
||
g.ins_srtgroep_omschrijving fclt_f_objectgroep,
|
||
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||
i.ins_deel_omschrijving fclt_f_identificatie,
|
||
b.fac_bookmark_naam fclt_f_bookmark,
|
||
i.ins_deel_key,
|
||
s.ins_srtdeel_key,
|
||
i.ins_discipline_key fclt_3d_discipline_key,
|
||
b.fac_bookmark_id hide_f_bookmark_id
|
||
FROM ins_deel i,
|
||
ins_srtdeel s,
|
||
ins_srtgroep g,
|
||
ins_discipline d,
|
||
fac_bookmark b
|
||
WHERE UPPER (b.fac_bookmark_naam) = 'QRC NAAR OBJECT'
|
||
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
|
||
AND ins_deel_verwijder IS NULL
|
||
AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
||
AND g.ins_srtgroep_key = s.ins_srtgroep_key
|
||
AND d.ins_discipline_key = g.ins_discipline_key;
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_BESGOE
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL
|
||
sender,
|
||
NULL
|
||
receiver,
|
||
'Bestelaanvraag '
|
||
|| b.bes_bestelling_key
|
||
|| ' moet goedgekeurd worden',
|
||
n.fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
b.bes_bestelling_key,
|
||
NULL
|
||
xkey,
|
||
'kwaliteitenveiligheid@wzuveluwe.nl'
|
||
xemail,
|
||
NULL
|
||
xmobile
|
||
FROM bes_bestelling b,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline d,
|
||
bes_disc_params dp,
|
||
fac_tracking f,
|
||
fac_srtnotificatie n,
|
||
( SELECT bi.bes_bestelling_key,
|
||
sd.bes_srtgroep_key,
|
||
SUM (
|
||
bi.bes_bestelling_item_aantal
|
||
* bi.bes_bestelling_item_prijs) AS totaal
|
||
FROM bes_bestelling_item bi, bes_srtdeel sd
|
||
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
GROUP BY bi.bes_bestelling_key, sd.bes_srtgroep_key) bedrag
|
||
WHERE b.bes_bestelling_key = bedrag.bes_bestelling_key
|
||
AND bedrag.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = d.ins_discipline_key
|
||
AND dp.bes_ins_discipline_key = d.ins_discipline_key
|
||
AND bedrag.totaal > dp.bes_disc_params_bestellimiet --- alleen goedkeuring nodig als order bedrag boven bestellimiet
|
||
AND n.fac_srtnotificatie_key = f.fac_srtnotificatie_key
|
||
AND b.bes_bestelling_key = f.fac_tracking_refkey
|
||
AND b.bes_bestelling_status NOT IN (1, 5, 8)
|
||
AND n.fac_srtnotificatie_xmlnode = 'bestelling'
|
||
AND dp.bes_ins_discipline_key_inkoop IS NOT NULL
|
||
AND ( ( dp.bes_disc_params_fiatflow = 1
|
||
AND n.fac_srtnotificatie_key = 7)
|
||
OR ( dp.bes_disc_params_fiatflow = 0
|
||
AND n.fac_srtnotificatie_key = 5))
|
||
AND f.fac_tracking_datum >
|
||
(SELECT fac_notificatie_job_nextrun
|
||
- fac_notificatie_job_interval / 24
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_BESGOE')
|
||
AND f.fac_tracking_datum <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_BESGOE');
|
||
|
||
|
||
CREATE OR REPLACE VIEW WZUV_V_NOTI_HUURAANVRAAG
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL sender,
|
||
NULL receiver,
|
||
REPLACE (n.fac_srtnotificatie_oms,
|
||
'##nr##',
|
||
t.fac_tracking_refkey) omschr,
|
||
n.fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
t.fac_tracking_refkey,
|
||
NULL xkey,
|
||
(SELECT LISTAGG (p.prs_perslid_email, ';')
|
||
WITHIN GROUP (ORDER BY p.prs_perslid_naam)
|
||
FROM fac_groeprechten gr,
|
||
fac_functie f,
|
||
fac_groep g,
|
||
fac_gebruikersgroep gg,
|
||
prs_perslid p
|
||
WHERE f.fac_functie_key = gr.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_USER12'
|
||
AND g.fac_groep_key = gr.fac_groep_key
|
||
AND gg.fac_groep_key = g.fac_groep_key
|
||
AND p.prs_perslid_key = gg.prs_perslid_key) xemail,
|
||
NULL xmobile
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie sn,
|
||
bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline d,
|
||
fac_srtnotificatie n
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'BESFIT'
|
||
AND t.fac_tracking_refkey = b.bes_bestelling_key
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = 2241 -- huur hulpmiddelen prod
|
||
AND b.bes_bestelling_status = 3 -- aanvraag is gefiatteerd
|
||
AND n.fac_srtnotificatie_code = 'CUST05'
|
||
AND t.fac_tracking_datum >
|
||
(SELECT fac_notificatie_job_nextrun
|
||
- fac_notificatie_job_interval / 24
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_HUURAANVRAAG')
|
||
AND t.fac_tracking_datum <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'WZUV_V_NOTI_HUURAANVRAAG');
|
||
|
||
-------------------------------------------------------------------------------
|
||
---------- WZUV#79858 Rapportages RTM -----------------------------------------
|
||
-------------------------------------------------------------------------------
|
||
|
||
-- 2.1 Aantal openstaande tickets naar type per status (statussen WZU)
|
||
CREATE OR REPLACE VIEW WZUV_V_RTM_STATUS_TYPE
|
||
(
|
||
TYPE_MLD,
|
||
STATUS_HIP,
|
||
AANTAL
|
||
)
|
||
AS
|
||
SELECT vg.ins_discipline_omschrijving,
|
||
COALESCE (sh.status_hip, 'Onbekend') status_hip,
|
||
COUNT (m.mld_melding_key) aantal
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT m.mld_melding_key, ud.fac_usrdata_omschr status_hip
|
||
FROM mld_srtkenmerk sk,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km,
|
||
fac_usrdata ud,
|
||
mld_melding m
|
||
WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND sk.mld_srtkenmerk_key = 1902
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
|
||
ud.fac_usrdata_key
|
||
AND m.mld_melding_key = km.mld_melding_key) sh
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND m.mld_melding_key = sh.mld_melding_key(+)
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND vgt.ins_srtdiscipline_key = 81
|
||
AND s.mld_statuses_key IN (2, 4, 7)
|
||
GROUP BY vg.ins_discipline_omschrijving,
|
||
COALESCE (sh.status_hip, 'Onbekend');
|
||
|
||
-- 2.2 Percentage openstaande meldingen per type
|
||
CREATE OR REPLACE VIEW WZUV_V_RTM_PERC_TYPE
|
||
(
|
||
TYPE_MLD,
|
||
PERCENTAGE
|
||
)
|
||
AS
|
||
SELECT vg.ins_discipline_omschrijving,
|
||
ROUND ((COUNT (m.mld_melding_key) / tot.tot_aantal) * 100, 1) perc_mld
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT COUNT (m.mld_melding_key) tot_aantal
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND vgt.ins_srtdiscipline_key = 81
|
||
AND s.mld_statuses_key IN (2, 4, 7)) tot
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND vgt.ins_srtdiscipline_key = 81
|
||
AND s.mld_statuses_key IN (2, 4, 7)
|
||
GROUP BY vg.ins_discipline_omschrijving, tot.tot_aantal;
|
||
|
||
-- 2.3.1 Absolute aantallen openstaande meldingen per applicatie
|
||
CREATE OR REPLACE VIEW WZUV_V_RTM_AANT_APPL
|
||
(
|
||
APPLICATIE,
|
||
AANTAL
|
||
)
|
||
AS
|
||
SELECT app.applicatie applicatie,
|
||
COUNT (m.mld_melding_key) aantal
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT m.mld_melding_key, ud.fac_usrdata_omschr applicatie
|
||
FROM mld_srtkenmerk sk,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km,
|
||
fac_usrdata ud,
|
||
mld_melding m
|
||
WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND sk.mld_srtkenmerk_key = 942
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
|
||
ud.fac_usrdata_key
|
||
AND m.mld_melding_key = km.mld_melding_key) app
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND m.mld_melding_key = app.mld_melding_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND vgt.ins_srtdiscipline_key = 81
|
||
AND s.mld_statuses_key IN (2, 4, 7)
|
||
GROUP BY app.applicatie;
|
||
|
||
-- 2.3.2 Percentage openstaande meldingen per applicatie
|
||
CREATE OR REPLACE VIEW WZUV_V_RTM_PERC_APPL
|
||
(
|
||
APPLICATIE,
|
||
PERCENTAGE
|
||
)
|
||
AS
|
||
SELECT app.applicatie applicatie,
|
||
ROUND ((COUNT (m.mld_melding_key) / tot_aant.aantal) * 100, 1) perc
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT COUNT (m.mld_melding_key) aantal
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT m.mld_melding_key,
|
||
ud.fac_usrdata_omschr applicatie
|
||
FROM mld_srtkenmerk sk,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km,
|
||
fac_usrdata ud,
|
||
mld_melding m
|
||
WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND sk.mld_srtkenmerk_key = 942
|
||
AND fac.safe_to_number (
|
||
km.mld_kenmerkmelding_waarde) =
|
||
ud.fac_usrdata_key
|
||
AND m.mld_melding_key = km.mld_melding_key) app
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND m.mld_melding_key = app.mld_melding_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND vgt.ins_srtdiscipline_key = 81
|
||
AND s.mld_statuses_key IN (2, 4, 7)) tot_aant,
|
||
(SELECT m.mld_melding_key, ud.fac_usrdata_omschr applicatie
|
||
FROM mld_srtkenmerk sk,
|
||
mld_kenmerk k,
|
||
mld_kenmerkmelding km,
|
||
fac_usrdata ud,
|
||
mld_melding m
|
||
WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND sk.mld_srtkenmerk_key = 942
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
|
||
ud.fac_usrdata_key
|
||
AND m.mld_melding_key = km.mld_melding_key) app
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND m.mld_melding_key = app.mld_melding_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND vgt.ins_srtdiscipline_key = 81
|
||
AND s.mld_statuses_key IN (2, 4, 7)
|
||
GROUP BY app.applicatie, tot_aant.aantal;
|
||
|
||
-- 2.3.3 Open meldingen naar ouderdom
|
||
CREATE OR REPLACE VIEW WZUV_V_RTM_OUDERDOM
|
||
(
|
||
STAFFEL,
|
||
AANTAL
|
||
)
|
||
AS
|
||
WITH
|
||
dgn
|
||
AS
|
||
(SELECT m.mld_melding_key,
|
||
TRUNC (m.mld_melding_datum) melding_datum,
|
||
ROUND (
|
||
DECODE (uitv.doorlooptijd.eenheid,
|
||
'D', uitv.doorlooptijd.tijdsduur,
|
||
NULL)) doorlooptijd_werkdgn
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT m.mld_melding_key,
|
||
mld.getactualuitvoer (m.mld_melding_key) doorlooptijd
|
||
FROM mld_melding m) uitv
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND uitv.mld_melding_key = m.mld_melding_key
|
||
AND vgt.ins_srtdiscipline_key = 81
|
||
AND s.mld_statuses_key IN (2, 4, 7))
|
||
SELECT CASE
|
||
WHEN doorlooptijd_werkdgn < 6
|
||
THEN
|
||
'A: max. 5 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 5 AND doorlooptijd_werkdgn < 11
|
||
THEN
|
||
'B: 5 - 10 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 10 AND doorlooptijd_werkdgn < 16
|
||
THEN
|
||
'C: 10 - 15 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 15 AND doorlooptijd_werkdgn < 21
|
||
THEN
|
||
'D: 15 - 20 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 15 AND doorlooptijd_werkdgn < 21
|
||
THEN
|
||
'E: 15 - 20 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 20 AND doorlooptijd_werkdgn < 79
|
||
THEN
|
||
'F: 20 - 78 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 78
|
||
THEN
|
||
'G: langer dan 78 werkdagen open'
|
||
END AS staffel,
|
||
COUNT (mld_melding_key) aantal_mld
|
||
FROM dgn
|
||
GROUP BY CASE
|
||
WHEN doorlooptijd_werkdgn < 6
|
||
THEN
|
||
'A: max. 5 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 5 AND doorlooptijd_werkdgn < 11
|
||
THEN
|
||
'B: 5 - 10 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 10 AND doorlooptijd_werkdgn < 16
|
||
THEN
|
||
'C: 10 - 15 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 15 AND doorlooptijd_werkdgn < 21
|
||
THEN
|
||
'D: 15 - 20 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 15 AND doorlooptijd_werkdgn < 21
|
||
THEN
|
||
'E: 15 - 20 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 20 AND doorlooptijd_werkdgn < 79
|
||
THEN
|
||
'F: 20 - 78 werkdagen open'
|
||
WHEN doorlooptijd_werkdgn > 78
|
||
THEN
|
||
'G: langer dan 78 werkdagen open'
|
||
END;
|
||
|
||
-- 2.3.4 Aantal lopende incidenten per objectgroep
|
||
CREATE OR REPLACE VIEW WZUV_V_RTM_OBJECTGROEP
|
||
(
|
||
OBJECTGROEP,
|
||
AANTAL
|
||
)
|
||
AS
|
||
SELECT sg.ins_srtgroep_omschrijving, COUNT (m.mld_melding_key) aantal
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
mld_melding_object o,
|
||
ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_melding_object_verwijder IS NULL
|
||
AND d.ins_deel_key = o.ins_deel_key
|
||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||
AND vgt.ins_srtdiscipline_key = 81
|
||
AND vg.ins_discipline_key = 1241
|
||
AND s.mld_statuses_key IN (2, 4, 7)
|
||
GROUP BY sg.ins_srtgroep_omschrijving;
|
||
|
||
-- 2.3.5 Slapende meldingen
|
||
CREATE OR REPLACE VIEW WZUV_V_RTM_SLAPEND
|
||
(
|
||
MLD_MELDING_KEY,
|
||
MELDINGNUMMER,
|
||
STDMELDING_OMSCHRIJVING,
|
||
DATUM_LAATSTE_ACTIE,
|
||
AANTAL_DAGEN
|
||
)
|
||
AS
|
||
WITH
|
||
actie
|
||
AS
|
||
(SELECT m.mld_melding_key,
|
||
vgt.ins_srtdiscipline_prefix || m.mld_melding_key
|
||
meldingnummer,
|
||
sm.mld_stdmelding_omschrijving,
|
||
TRUNC (uitv.laatste_actie)
|
||
datum_laatste_actie,
|
||
ROUND (
|
||
DECODE (uitv.doorlooptijd.eenheid,
|
||
'D', uitv.doorlooptijd.tijdsduur,
|
||
NULL))
|
||
aant_dgn
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT m.mld_melding_key,
|
||
a.laatste_actie,
|
||
mld.getactualuitvoer (
|
||
a.laatste_actie,
|
||
SYSDATE,
|
||
m.mld_stdmelding_key,
|
||
m.mld_melding_spoed,
|
||
m.mld_alg_onroerendgoed_keys,
|
||
NULL,
|
||
m.mld_melding_t_uitvoertijd.eenheid) doorlooptijd
|
||
FROM mld_melding m,
|
||
( SELECT t.fac_tracking_refkey mld_melding_key,
|
||
MAX (t.fac_tracking_datum) laatste_actie
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode =
|
||
'melding'
|
||
GROUP BY t.fac_tracking_refkey) a
|
||
WHERE a.mld_melding_key = m.mld_melding_key) uitv
|
||
WHERE m.mld_melding_status = s.mld_statuses_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND vgt.ins_srtdiscipline_key = vg.ins_srtdiscipline_key
|
||
AND uitv.mld_melding_key = m.mld_melding_key
|
||
AND vgt.ins_srtdiscipline_key IN (81, 101)
|
||
AND s.mld_statuses_key IN (2, 4, 7))
|
||
SELECT a.mld_melding_key,
|
||
a.meldingnummer,
|
||
a.mld_stdmelding_omschrijving,
|
||
a.datum_laatste_actie,
|
||
a.aant_dgn
|
||
FROM actie a
|
||
WHERE a.aant_dgn > 10
|
||
ORDER BY aant_dgn DESC;
|
||
|
||
-- 2.3.6 Diverse tellertjes
|
||
CREATE OR REPLACE VIEW WZUV_V_RTM_TELLERS
|
||
(
|
||
OMSCHRIJVING,
|
||
AANTAL
|
||
)
|
||
AS
|
||
SELECT 'Aantal openstaande system-down meldingen' omschr,
|
||
COUNT (m.mld_melding_key) aantal
|
||
FROM mld_melding m, mld_stdmelding sm, mld_statuses s
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key = 2982 -- system down
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND s.mld_statuses_key IN (2, 4, 7)
|
||
GROUP BY sm.mld_stdmelding_omschrijving
|
||
UNION ALL
|
||
SELECT 'Aantal incidenten met een verlopen SLA' omsch,
|
||
COUNT (uitvoering_sla_optijd) aantal
|
||
FROM (SELECT vg.ins_discipline_omschrijving,
|
||
CASE
|
||
WHEN DECODE (
|
||
sla.t_doorlooptijd.eenheid,
|
||
'D', mld.geteinddatum (m.mld_melding_key)
|
||
- SYSDATE
|
||
+ COALESCE (sla_respijtdgn, 0),
|
||
0)
|
||
+ DECODE (
|
||
sla.t_doorlooptijd.eenheid,
|
||
'U', ( ( mld.geteinddatum (
|
||
m.mld_melding_key)
|
||
- SYSDATE)
|
||
* 24)
|
||
+ COALESCE (sla_respijturen, 0),
|
||
0) >=
|
||
0
|
||
THEN
|
||
'Ja'
|
||
ELSE
|
||
'Nee'
|
||
END uitvoering_sla_optijd
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT m.mld_melding_key,
|
||
mld.getactualuitvoer (m.mld_melding_key)
|
||
t_doorlooptijd,
|
||
DECODE (
|
||
m.mld_melding_t_uitvoertijd.eenheid,
|
||
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
NULL)
|
||
sla_werkdgn,
|
||
DECODE (
|
||
m.mld_melding_t_uitvoertijd.eenheid,
|
||
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
NULL)
|
||
sla_werkuren,
|
||
DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL)
|
||
sla_respijtdgn,
|
||
DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL)
|
||
sla_respijturen
|
||
FROM mld_melding m) sla
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
|
||
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND sla.mld_melding_key = m.mld_melding_key
|
||
AND vg.ins_discipline_key = 1241 -- incidenten
|
||
AND s.mld_statuses_key IN (2, 4, 7)) tl
|
||
WHERE uitvoering_sla_optijd = 'Nee'
|
||
GROUP BY ins_discipline_omschrijving
|
||
UNION ALL
|
||
SELECT 'Aantal uitvoeringsverzoeken met een verlopen SLA' omsch,
|
||
COUNT (uitvoering_sla_optijd) aantal
|
||
FROM (SELECT vg.ins_discipline_omschrijving,
|
||
CASE
|
||
WHEN DECODE (
|
||
sla.t_doorlooptijd.eenheid,
|
||
'D', mld.geteinddatum (m.mld_melding_key)
|
||
- SYSDATE
|
||
+ COALESCE (sla_respijtdgn, 0),
|
||
0)
|
||
+ DECODE (
|
||
sla.t_doorlooptijd.eenheid,
|
||
'U', ( ( mld.geteinddatum (
|
||
m.mld_melding_key)
|
||
- SYSDATE)
|
||
* 24)
|
||
+ COALESCE (sla_respijturen, 0),
|
||
0) >=
|
||
0
|
||
THEN
|
||
'Ja'
|
||
ELSE
|
||
'Nee'
|
||
END uitvoering_sla_optijd
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline vg,
|
||
ins_srtdiscipline vgt,
|
||
mld_statuses s,
|
||
(SELECT m.mld_melding_key,
|
||
mld.getactualuitvoer (m.mld_melding_key)
|
||
t_doorlooptijd,
|
||
DECODE (
|
||
m.mld_melding_t_uitvoertijd.eenheid,
|
||
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
NULL)
|
||
sla_werkdgn,
|
||
DECODE (
|
||
m.mld_melding_t_uitvoertijd.eenheid,
|
||
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
NULL)
|
||
sla_werkuren,
|
||
DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL)
|
||
sla_respijtdgn,
|
||
DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL)
|
||
sla_respijturen
|
||
FROM mld_melding m) sla
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = vg.ins_discipline_key
|
||
AND vg.ins_srtdiscipline_key = vgt.ins_srtdiscipline_key
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND sla.mld_melding_key = m.mld_melding_key
|
||
AND vg.ins_discipline_key = 2801 -- uitvoeringsverzoek
|
||
AND s.mld_statuses_key IN (2, 4, 7)) tl
|
||
WHERE uitvoering_sla_optijd = 'Nee'
|
||
GROUP BY ins_discipline_omschrijving;
|
||
-------------------------------------------------------------------------------
|
||
---------- Einde WZUV#79858 Rapportages RTM -----------------------------------
|
||
-------------------------------------------------------------------------------
|
||
BEGIN
|
||
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
|
||
END;
|
||
/
|
||
|
||
------ 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 |