5090 lines
229 KiB
MySQL
5090 lines
229 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for KFSG.
|
||
DEFINE thisfile = 'KFSG.SQL'
|
||
DEFINE dbuser = '^KFSG'
|
||
|
||
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 PACKAGE KFSG
|
||
AS
|
||
PROCEDURE set_werkplek;
|
||
|
||
PROCEDURE annuleer_werkplek;
|
||
|
||
PROCEDURE schonen_bezoekers;
|
||
|
||
PROCEDURE schonen_bestelkenmerken;
|
||
|
||
FUNCTION get_kenmerk (p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
|
||
p_kenmerkdomein_key NUMBER,
|
||
p_kenmerk_waarde VARCHAR2)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION res_presave (p_user_key IN NUMBER,
|
||
p_rsv_ruimte_key IN NUMBER,
|
||
p_activiteit_key IN NUMBER,
|
||
p_res_deel_key IN NUMBER,
|
||
p_datum_van IN DATE,
|
||
p_datum_tot IN DATE,
|
||
p_volgnr IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY KFSG
|
||
AS
|
||
-- Geef alle mensen een werkplek in het Schiphol gebouw (key
|
||
PROCEDURE set_werkplek
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM prs_perslid p
|
||
WHERE NOT EXISTS
|
||
(SELECT prs_perslidwerkplek_key
|
||
FROM prs_perslidwerkplek pwp
|
||
WHERE pwp.prs_perslid_key = p.prs_perslid_key)
|
||
AND SUBSTR (prs_perslid_oslogin, 1, 1) <> '_';
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
PRS.movetoruimte (rec.prs_perslid_key,
|
||
4963,
|
||
'R',
|
||
0);
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END;
|
||
|
||
PROCEDURE annuleer_werkplek
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT 'CUST03' code,
|
||
NULL sender,
|
||
rrr.res_rsv_ruimte_host_key receiver,
|
||
'Werkplekreservering '
|
||
|| MAX (rd.res_deel_omschrijving)
|
||
|| ' op '
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_van, 'DD-MM')
|
||
|| ' van '
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI')
|
||
|| ' tot '
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI')
|
||
|| ' is geannuleerd.' text,
|
||
rrr.res_reservering_key refkey,
|
||
rrr.res_rsv_ruimte_key refxkey,
|
||
rrd.res_rsv_deel_key dkey
|
||
FROM res_rsv_ruimte rrr,
|
||
fac_usrdata ud,
|
||
res_rsv_deel rrd,
|
||
res_deel rd
|
||
WHERE rrr.res_activiteit_key = ud.fac_usrdata_code
|
||
AND ud.fac_usrtab_key = 261
|
||
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rrd.res_rsv_deel_verwijder IS NULL
|
||
AND res_rsv_ruimte_van >
|
||
TRUNC (SYSDATE) + ud.fac_usrdata_volgnr + 1
|
||
GROUP BY rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_key,
|
||
res_rsv_ruimte_host_key,
|
||
rrd.res_rsv_deel_key;
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
FAC.putnotificationsrtprio (rec.sender,
|
||
rec.receiver,
|
||
rec.code,
|
||
rec.refkey,
|
||
rec.text,
|
||
2,
|
||
NULL,
|
||
NULL,
|
||
rec.refxkey,
|
||
2,
|
||
NULL,
|
||
NULL);
|
||
|
||
UPDATE res_rsv_deel SET res_rsv_deel_verwijder = SYSDATE
|
||
WHERE res_rsv_deel_key = rec.dkey;
|
||
|
||
UPDATE res_rsv_ruimte SET res_rsv_ruimte_verwijder = SYSDATE
|
||
WHERE res_rsv_ruimte_key = rec.refxkey;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END;
|
||
|
||
-- KFSG#69746: Schonen bezoekersgegevens ouder dan 90 dagen (tenminste als
|
||
-- anonymize_period op 90 staat)!
|
||
PROCEDURE schonen_bezoekers
|
||
AS
|
||
BEGIN
|
||
ANO.anonymizebez (SYSDATE - (10 * 365), SYSDATE - fac.getsetting ('anonymize_period'));
|
||
END;
|
||
|
||
-- KFSG#72218: Schonen bestelkenmerken bij 361=Bloemen en 362=Fruitmanden!
|
||
PROCEDURE schonen_bestelkenmerken
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT b.bes_bestelling_key
|
||
FROM bes_bestelling b
|
||
WHERE COALESCE (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
|
||
fac.gettrackingdate ('BESREJ', b.bes_bestelling_key)) < TRUNC (SYSDATE - 7, 'iw')
|
||
--AND EXISTS -- Zou zo moeten zijn!
|
||
-- (SELECT 1
|
||
-- FROM bes_bestelling_item bbi, bes_srtdeel sd, bes_srtgroep sg
|
||
-- WHERE bbi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
-- AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
-- AND sg.ins_discipline_key IN (361, 362) -- Bloemen/Fruitmanden
|
||
-- AND bbi.bes_bestelling_key = b.bes_bestelling_key)
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM bes_kenmerkbestell
|
||
WHERE (bes_kenmerk_key IN (8, 9, 10, 11, 13, 281, 282, 283) -- Bloemen
|
||
OR bes_kenmerk_key IN (3, 4, 5, 6, 17)) -- Fruitmanden
|
||
AND bes_bestelling_key = b.bes_bestelling_key)
|
||
ORDER BY 1;
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
DELETE FROM bes_kenmerkbestell -- Inclusief eventueel verwijderde waarden!
|
||
WHERE (bes_kenmerk_key IN (8, 9, 10, 11, 13, 281, 282, 283) -- Bloemen
|
||
OR bes_kenmerk_key IN (3, 4, 5, 6, 17)) -- Fruitmanden
|
||
AND bes_bestelling_key = rec.bes_bestelling_key;
|
||
fac.trackaction ('#BESUPD', rec.bes_bestelling_key, NULL, SYSDATE, 'Geanonimiseerd');
|
||
END LOOP;
|
||
COMMIT;
|
||
END;
|
||
|
||
FUNCTION get_kenmerk (p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
||
v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
|
||
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
||
v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE;
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'MLD'
|
||
THEN
|
||
SELECT mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
km.mld_kenmerkmelding_waarde
|
||
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
||
FROM mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = p_link_key
|
||
AND km.mld_kenmerk_key = p_kenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||
WHEN 'CNT'
|
||
THEN
|
||
SELECT cnt_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kc.cnt_kenmerkcontract_waarde
|
||
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
||
FROM cnt_kenmerkcontract kc,
|
||
cnt_kenmerk k,
|
||
cnt_srtkenmerk sk
|
||
WHERE kc.cnt_contract_key = p_link_key
|
||
AND kc.cnt_kenmerk_key = p_kenmerk_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key;
|
||
WHEN 'ALG'
|
||
THEN
|
||
SELECT alg_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
aogk.alg_onrgoedkenmerk_waarde
|
||
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||
WHERE aogk.alg_onrgoed_key = p_link_key
|
||
AND aogk.alg_kenmerk_key = p_kenmerk_key
|
||
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key;
|
||
WHEN 'INS'
|
||
THEN
|
||
SELECT k.ins_kenmerk_niveau
|
||
INTO v_kenmerk_niveau
|
||
FROM ins_kenmerk k
|
||
WHERE ins_kenmerk_key = p_kenmerk_key;
|
||
|
||
IF v_kenmerk_niveau = 'C'
|
||
THEN
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikds.ins_kmdeelsrtcontr_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM ins_kmdeelsrtcontr ikds,
|
||
ins_kenmerk k,
|
||
ins_srtkenmerk sk
|
||
WHERE ikds.ins_kmdeelsrtcontr_key = p_link_key
|
||
AND ikds.ins_kmdeelsrtcontr_verwijder IS NULL
|
||
AND ikds.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikds.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
ELSE
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikd.ins_kenmerkdeel_waarde
|
||
INTO v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde
|
||
FROM ins_kenmerkdeel ikd,
|
||
ins_kenmerk k,
|
||
ins_srtkenmerk sk
|
||
WHERE ikd.ins_deel_key = p_link_key
|
||
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
||
AND ikd.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
END IF;
|
||
END CASE;
|
||
|
||
RETURN kfsg.get_kenmerkwaarde (v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde);
|
||
END;
|
||
|
||
|
||
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
|
||
p_kenmerkdomein_key NUMBER,
|
||
p_kenmerk_waarde VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2 (4000);
|
||
BEGIN
|
||
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S'
|
||
THEN
|
||
v_result :=
|
||
fac.getdomeinwaarde (p_kenmerkdomein_key, p_kenmerk_waarde);
|
||
ELSIF p_kenmerk_type = 'D'
|
||
THEN
|
||
v_result :=
|
||
TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'),
|
||
'yyyy-mm-dd');
|
||
ELSE
|
||
v_result := p_kenmerk_waarde;
|
||
END IF;
|
||
|
||
RETURN v_result;
|
||
END;
|
||
|
||
FUNCTION res_presave (p_user_key IN NUMBER,
|
||
p_rsv_ruimte_key IN NUMBER,
|
||
p_activiteit_key IN NUMBER,
|
||
p_res_deel_key IN NUMBER,
|
||
p_datum_van IN DATE,
|
||
p_datum_tot IN DATE,
|
||
p_volgnr IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2 (300);
|
||
v_date DATE;
|
||
v_count NUMBER;
|
||
v_discipline_key NUMBER;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (200);
|
||
BEGIN
|
||
v_result := 'OK';
|
||
|
||
v_errorhint := 'Controleer activiteit: ' || p_activiteit_key;
|
||
|
||
IF p_activiteit_key = 210 -- Lunchperiodes
|
||
THEN
|
||
|
||
v_errorhint := 'Kijk of ik al een reservering heb';
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rrr.res_activiteit_key = 210 -- Lunchperiodes
|
||
AND rrr.res_rsv_ruimte_host_key = p_user_key
|
||
AND rrr.res_rsv_ruimte_key <> p_rsv_ruimte_key
|
||
AND TRUNC(res_rsv_ruimte_van) = TRUNC(p_datum_tot);
|
||
|
||
IF v_count > 2
|
||
THEN
|
||
v_result := 'Beste collega,' || CHR(10) ||
|
||
'Er mogen maar 3 lunches per dag geboekt worden';
|
||
END IF;
|
||
END IF;
|
||
|
||
RETURN v_result;
|
||
EXCEPTION WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
RETURN v_result;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE kfsg_export_daily_task (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
KFSG.set_werkplek();
|
||
KFSG.annuleer_werkplek();
|
||
|
||
-- KFSG#69746: Schonen bezoekersgegevens ouder dan 90 dagen!
|
||
KFSG.schonen_bezoekers();
|
||
|
||
-- KFSG#72218: Schonen bestelkenmerken !
|
||
KFSG.schonen_bestelkenmerken();
|
||
END;
|
||
/
|
||
|
||
-- Notificatie om catering wijzigingen te notificeren.
|
||
CREATE OR REPLACE VIEW KFSG_V_NOTI_CATERING
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
fac_srtnotificatie_key,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL sender,
|
||
NULL receiver, -- Catering1@schiphol.nl
|
||
'Catering bij reservering '
|
||
|| rrr.res_reservering_key
|
||
|| '/'
|
||
|| rrr.res_rsv_ruimte_volgnr
|
||
|| ' is aangemaakt/gewijzigd '
|
||
text,
|
||
'RESINF' code,
|
||
NULL fac_srtnotificatie_key,
|
||
rrr.res_reservering_key key,
|
||
rrr.res_rsv_ruimte_key xkey,
|
||
'Catering1@schiphol.nl' xemail,
|
||
NULL xmobile
|
||
FROM res_rsv_artikel rra,
|
||
res_rsv_ruimte rrr,
|
||
res_artikel ra,
|
||
(SELECT *
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 341) ud -- KFSG#75351:Cateringnotificatie
|
||
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
--AND ra.res_discipline_key IN (821, 822, 823, 862, 1242, 1281, 1241, 1981) -- KFSG#56898/58379/60004/75351
|
||
AND ra.res_discipline_key = fac.safe_to_number (ud.fac_usrdata_code)
|
||
AND rra.res_rsv_artikel_levering > SYSDATE
|
||
AND GREATEST (COALESCE (res_rsv_artikel_mutatie, SYSDATE - 100),
|
||
COALESCE (res_rsv_artikel_verwijder, SYSDATE - 100),
|
||
COALESCE (res_rsv_artikel_aanmaak, SYSDATE - 100)) >
|
||
(SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'KFSG_V_NOTI_CATERING')
|
||
AND GREATEST (COALESCE (res_rsv_artikel_mutatie, SYSDATE - 100),
|
||
COALESCE (res_rsv_artikel_verwijder, SYSDATE - 100),
|
||
COALESCE (res_rsv_artikel_aanmaak, SYSDATE - 100)) <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'KFSG_V_NOTI_CATERING')
|
||
GROUP BY rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr;
|
||
|
||
-- rapport met mensen die via de interface inactief gemaakt zijn en nog lopende verplichtingen hebben te tonen.
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_prs_inactief
|
||
AS
|
||
SELECT prs_perslid_inactief - SYSDATE hide_f_volgorde,
|
||
pf.prs_perslid_naam_full,
|
||
p.prs_perslid_key,
|
||
COUNT (item) aantal,
|
||
prs_perslid_inactief + 90 einddatum
|
||
FROM prs_perslid p, prs_v_perslid_fullnames pf, prs_v_verplichting v
|
||
WHERE prs_perslid_inactief IS NOT NULL
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND p.prs_perslid_key = v.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key(+)
|
||
GROUP BY p.prs_perslid_key, prs_perslid_inactief, prs_perslid_naam_full;
|
||
|
||
CREATE OR REPLACE VIEW kfsg_v_noti_resreminder
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'RESINF',
|
||
NULL,
|
||
rsvr.res_rsv_ruimte_host_key,
|
||
'Reservering '
|
||
|| res.res_reservering_key
|
||
|| ': U heeft op '
|
||
|| TO_CHAR (rsvr.res_rsv_ruimte_van, 'DD-MM')
|
||
|| ' van '
|
||
|| TO_CHAR (rsvr.res_rsv_ruimte_van, 'HH24:MI')
|
||
|| ' tot '
|
||
|| TO_CHAR (rsvr.res_rsv_ruimte_tot, 'HH24:MI')
|
||
|| ' ruimte '
|
||
|| r.res_ruimte_nr
|
||
|| ' gereserveerd.',
|
||
res.res_reservering_key,
|
||
rsvr.res_rsv_ruimte_key
|
||
FROM res_v_aanwezigreservering res,
|
||
res_v_aanwezigrsv_ruimte rsvr,
|
||
res_ruimte_opstelling opst,
|
||
res_disc_params rdp,
|
||
res_ruimte r
|
||
WHERE r.res_discipline_key = rdp.res_ins_discipline_key
|
||
AND rdp.res_disc_params_noti_dagen IS NOT NULL
|
||
AND res.res_reservering_key = rsvr.res_reservering_key
|
||
AND opst.res_ruimte_opstel_key = rsvr.res_ruimte_opstel_key
|
||
AND opst.res_ruimte_key = r.res_ruimte_key
|
||
AND rsvr.res_status_fo_key <= 5
|
||
AND rsvr.res_rsv_ruimte_van BETWEEN fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen,
|
||
'DAGEN')
|
||
AND fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen
|
||
+ 1,
|
||
'DAGEN')
|
||
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
|
||
AND rsvr.res_rsv_ruimte_van >= SYSDATE
|
||
UNION ALL
|
||
SELECT 'RESINF',
|
||
NULL,
|
||
res_rsv_ruimte_host_key,
|
||
'Reservering '
|
||
|| res_reservering_key
|
||
|| ': U heeft op '
|
||
|| TO_CHAR (MIN (van), 'dd-mm')
|
||
|| DECODE (
|
||
MIN (van),
|
||
MAX (tot),
|
||
' om ' || TO_CHAR (MIN (van), 'hh24:mi'),
|
||
' van '
|
||
|| TO_CHAR (MIN (van), 'hh24:mi')
|
||
|| ' tot '
|
||
|| TO_CHAR (MAX (tot), 'hh24:mi'))
|
||
|| ' in ruimte ('
|
||
|| (SELECT alg_gebouw_code
|
||
|| '-'
|
||
|| alg_verdieping_code
|
||
|| '-'
|
||
|| alg_ruimte_nr
|
||
FROM alg_v_onroerendgoed_gegevens arg
|
||
WHERE arg.alg_ruimte_key = ruimte_key)
|
||
|| ') '
|
||
|| COUNT (res_reservering_key)
|
||
|| ' voorziening(en) gereserveerd.',
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key
|
||
FROM (SELECT rsvr.res_rsv_ruimte_host_key,
|
||
res.res_reservering_key,
|
||
rsvd.res_rsv_deel_van van,
|
||
rsvd.res_rsv_deel_tot tot,
|
||
rsvr.res_rsv_ruimte_key,
|
||
rsvr.alg_ruimte_key ruimte_key
|
||
FROM res_v_aanwezigreservering res,
|
||
res_v_aanwezigrsv_ruimte rsvr,
|
||
res_disc_params rdp,
|
||
res_rsv_deel rsvd,
|
||
res_deel rd
|
||
WHERE rsvd.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
|
||
AND rd.res_deel_key = rsvd.res_deel_key
|
||
AND rd.res_discipline_key = rdp.res_ins_discipline_key
|
||
AND rdp.res_disc_params_noti_dagen IS NOT NULL
|
||
AND res.res_reservering_key = rsvr.res_reservering_key
|
||
AND rsvr.res_ruimte_opstel_key IS NULL
|
||
AND rsvr.res_status_fo_key <= 5
|
||
AND rsvd.res_rsv_deel_verwijder IS NULL
|
||
AND rsvd.res_rsv_deel_van BETWEEN fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen,
|
||
'DAGEN')
|
||
AND fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen
|
||
+ 1,
|
||
'DAGEN')
|
||
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
|
||
AND rsvd.res_rsv_deel_van >= SYSDATE
|
||
UNION ALL
|
||
SELECT rsvr.res_rsv_ruimte_host_key,
|
||
res.res_reservering_key,
|
||
rsva.res_rsv_artikel_levering van,
|
||
rsva.res_rsv_artikel_levering tot,
|
||
rsvr.res_rsv_ruimte_key,
|
||
rsvr.alg_ruimte_key ruimte_key
|
||
FROM res_v_aanwezigreservering res,
|
||
res_v_aanwezigrsv_ruimte rsvr,
|
||
res_disc_params rdp,
|
||
res_rsv_artikel rsva,
|
||
res_artikel ra
|
||
WHERE rsva.res_rsv_ruimte_key = rsvr.res_rsv_ruimte_key
|
||
AND ra.res_discipline_key = rdp.res_ins_discipline_key
|
||
AND rsva.res_artikel_key = ra.res_artikel_key
|
||
AND rdp.res_disc_params_noti_dagen IS NOT NULL
|
||
AND res.res_reservering_key = rsvr.res_reservering_key
|
||
AND rsvr.res_ruimte_opstel_key IS NULL
|
||
AND rsvr.res_status_fo_key <= 5
|
||
AND rsva.res_rsv_artikel_verwijder IS NULL
|
||
AND rsva.res_rsv_artikel_levering BETWEEN fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen,
|
||
'DAGEN')
|
||
AND fac.datumtijdplusuitvoertijd (
|
||
SYSDATE,
|
||
res_disc_params_noti_dagen
|
||
+ 1,
|
||
'DAGEN')
|
||
AND fac.getweekdaynum (SYSDATE) NOT IN (1, 7)
|
||
AND rsva.res_rsv_artikel_levering >= SYSDATE)
|
||
GROUP BY res_rsv_ruimte_host_key,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key,
|
||
ruimte_key;
|
||
|
||
CREATE OR REPLACE VIEW kfsg_v_resruimte_qrc
|
||
(
|
||
district,
|
||
locatie,
|
||
gebouw,
|
||
catalogus,
|
||
ruimte_nr,
|
||
ruimte_omschrijving,
|
||
res_ruimte_key,
|
||
fac_bookmark_naam,
|
||
fac_bookmark_id
|
||
)
|
||
AS
|
||
SELECT DISTINCT alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_omschrijving,
|
||
ins_discipline_omschrijving,
|
||
res_ruimte_nr,
|
||
res_ruimte_omschrijving,
|
||
rr.res_ruimte_key,
|
||
fac_bookmark_naam,
|
||
fac_bookmark_id
|
||
FROM res_ruimte rr,
|
||
res_discipline rd,
|
||
fac_bookmark bk,
|
||
(SELECT rag.res_ruimte_key,
|
||
alg_district_omschrijving,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_omschrijving
|
||
FROM res_alg_ruimte rag,
|
||
alg_v_onroerendgoed aor,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_district d
|
||
WHERE rag.alg_ruimte_key = aor.alg_onroerendgoed_keys
|
||
AND aor.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key) res_alg
|
||
WHERE res_ruimte_verwijder IS NULL
|
||
AND rd.ins_discipline_key = rr.res_discipline_key
|
||
AND rr.res_ruimte_key = res_alg.res_ruimte_key(+)
|
||
AND bk.fac_bookmark_naam LIKE '%QRC_RES_RUIMTE%';
|
||
|
||
|
||
-- View om een catalogus te exporteren die daarna weer ingelezen kan worden.
|
||
-- Hopelijk komt hier met YAXX#78417 een generieke oplossing voor.
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_sync_catalogus
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving catalogus_naam,
|
||
b.prs_bedrijf_naam leverancier,
|
||
NULL cat_datum,
|
||
sd.bes_srtdeel_nr artikelnr,
|
||
sg.bes_srtgroep_omschrijving groep,
|
||
sd.bes_srtdeel_omschrijving omschrijving,
|
||
REPLACE (TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)), ',', '.') prijs,
|
||
sd.bes_srtdeel_eenheid eenheid,
|
||
sd.bes_srtdeel_image picture,
|
||
sd.bes_srtdeel_veelvoud orderaantal,
|
||
sd.bes_srtdeel_btw tax,
|
||
TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd') duedate,
|
||
REPLACE (TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)), ',', '.') inkoopprijs,
|
||
bes_srtdeel_minimum minimum,
|
||
bes_staffeltabel_naam staffeltabel,
|
||
bes_srtdeel_wijzigdagen wijzigdagen,
|
||
bes_srtdeel_annuleerdagen annuleerdagen,
|
||
bes_srtdeel_opmerking opmerking
|
||
FROM bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
bes_discipline d,
|
||
prs_bedrijf b,
|
||
bes_staffeltabel st
|
||
WHERE sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = d.ins_discipline_key
|
||
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND sd.bes_staffeltabel_key = st.bes_staffeltabel_key(+)
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sg.bes_srtgroep_verwijder IS NULL;
|
||
|
||
-- Kostenrapportage met de kosten van alle onderdelen KFSG#52740
|
||
/* Formatted on 16/7/2018 9:23:43 (QP5 v5.313) */
|
||
CREATE OR REPLACE VIEW kfsg_v_kostenrapportage
|
||
AS
|
||
SELECT nummer,
|
||
kostentype,
|
||
datum,
|
||
COALESCE (k.prs_kostenplaats_omschrijving,
|
||
ka.prs_kostenplaats_omschrijving)
|
||
kostenplaats,
|
||
aantal,
|
||
omschrijving,
|
||
prijs,
|
||
ins_discipline_omschrijving
|
||
catalogus
|
||
FROM (SELECT res_reservering_key || '/' || res_rsv_ruimte_volgnr
|
||
nummer,
|
||
'artikel'
|
||
kostentype,
|
||
res_rsv_ruimte_van
|
||
datum,
|
||
prs_kostenplaats_key,
|
||
res_rsv_ruimte_host_key
|
||
prs_perslid_key,
|
||
res_rsv_artikel_aantal
|
||
aantal,
|
||
ra.res_artikel_omschrijving
|
||
omschrijving,
|
||
RES.getartikelprijs (res_rsv_artikel_key)
|
||
prijs,
|
||
ra.res_discipline_key
|
||
ins_discipline_key
|
||
FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT res_reservering_key || '/' || res_rsv_ruimte_volgnr
|
||
nummer,
|
||
'deel',
|
||
res_rsv_ruimte_van,
|
||
rrr.prs_kostenplaats_key,
|
||
res_rsv_ruimte_host_key
|
||
prs_perslid_key,
|
||
1,
|
||
res_deel_omschrijving,
|
||
RES.getdeelprijs (res_rsv_deel_key),
|
||
rd.res_discipline_key
|
||
FROM res_rsv_ruimte rrr, res_rsv_deel rrd, res_deel rd
|
||
WHERE rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rrd.res_rsv_deel_verwijder IS NULL
|
||
AND res_rsv_ruimte_van < SYSDATE
|
||
UNION ALL
|
||
SELECT TO_CHAR (b.bes_bestelling_key),
|
||
'bestelling',
|
||
b.bes_bestelling_datum,
|
||
b.prs_kostenplaats_key,
|
||
prs_perslid_key_voor,
|
||
bi.bes_bestelling_item_aantal,
|
||
sd.bes_srtdeel_omschrijving,
|
||
bi.bes_bestelling_item_aantal * bes_bestelling_item_prijs,
|
||
sg.ins_discipline_key
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg
|
||
WHERE 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
|
||
UNION ALL
|
||
SELECT TO_CHAR (m.mld_melding_key),
|
||
'melding',
|
||
m.mld_melding_datum,
|
||
m.prs_kostenplaats_key,
|
||
m.prs_perslid_key_voor,
|
||
1,
|
||
std.mld_stdmelding_omschrijving,
|
||
SUM (o.mld_opdr_kosten),
|
||
std.mld_ins_discipline_key
|
||
FROM mld_melding m, mld_opdr o, mld_stdmelding std
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
GROUP BY m.mld_melding_datum,
|
||
m.prs_kostenplaats_key,
|
||
m.prs_perslid_key_voor,
|
||
1,
|
||
std.mld_stdmelding_omschrijving,
|
||
std.mld_ins_discipline_key,
|
||
m.mld_melding_key) geg,
|
||
prs_kostenplaats k,
|
||
prs_kostenplaats ka,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
ins_tab_discipline d
|
||
WHERE geg.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND geg.ins_discipline_key = d.ins_discipline_key
|
||
AND geg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = ka.prs_kostenplaats_key
|
||
AND geg.datum < SYSDATE;
|
||
|
||
-- KFSG#57062: Klachtenrapportage
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_klachten
|
||
AS
|
||
SELECT d.ins_discipline_omschrijving,
|
||
m.mld_melding_onderwerp,
|
||
aogk.alg_gebouw_naam,
|
||
pf.prs_perslid_naam_full,
|
||
m.mld_melding_datum,
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key)
|
||
melding_afgemeld,
|
||
s.mld_statuses_omschrijving,
|
||
m.mld_melding_opmerking,
|
||
kfsg.get_kenmerk('MLD', 1401, m.mld_melding_key) verbeteractie,
|
||
kfsg.get_kenmerk('MLD', 1423, m.mld_melding_key) verwijtbaar,
|
||
kfsg.get_kenmerk('MLD', 1421, m.mld_melding_key) leverancier
|
||
FROM mld_melding m,
|
||
prs_v_perslid_fullnames_all pf,
|
||
alg_v_allonrgoed_gegevens aogk,
|
||
mld_statuses s,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE m.mld_melding_status = mld_statuses_key
|
||
AND m.prs_perslid_key = pf.prs_perslid_key
|
||
AND m.mld_alg_onroerendgoed_keys = aogk.alg_onroerendgoed_keys
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key -- klacht
|
||
AND d.ins_srtdiscipline_key = 23;
|
||
|
||
|
||
-- KFSG#51990: Facturatieproces (reverse billing zoals bij NS)!
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_actual_cost_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
broc_flag,
|
||
fclt_f_leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
aantal,
|
||
kosten
|
||
)
|
||
AS -- Vaste contractkosten over de ACTUAL termijn
|
||
SELECT c.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand volgende maand factureren (achteraf)
|
||
'C' broc_flag,
|
||
c.prs_bedrijf_naam bedrijf,
|
||
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen vaste kosten
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
0 aantal,
|
||
ROUND (
|
||
DECODE (COALESCE (c.cnt_contract_termijnkosten, 0),
|
||
0, c.cnt_contract_kosten / 12,
|
||
c.cnt_contract_termijnkosten),
|
||
2)
|
||
+ fac.safe_to_number (COALESCE (ce.cnt_kenmerkcontract_waarde, '0'))
|
||
+ fac.safe_to_number (COALESCE (bm.cnt_kenmerkcontract_waarde, '0'))
|
||
kosten -- Wat als looptijd < jaar?
|
||
FROM (SELECT b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_afdeling_key,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
c.cnt_contract_kosten,
|
||
c.cnt_contract_termijnkosten
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp
|
||
WHERE c.ins_discipline_key = 522 -- Vaste contracten
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)) c
|
||
LEFT JOIN cnt_kenmerkcontract ce
|
||
ON ce.cnt_kenmerk_key = -1 -- Credit/extra kosten
|
||
AND c.cnt_contract_key = ce.cnt_contract_key
|
||
LEFT JOIN cnt_kenmerkcontract bm
|
||
ON bm.cnt_kenmerk_key = -1 -- Bonus/malus
|
||
AND c.cnt_contract_key = bm.cnt_contract_key
|
||
UNION ALL -- Bestelopdrachtkosten
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand volgende maand factureren (achteraf)
|
||
'B' broc_flag,
|
||
b.prs_bedrijf_naam bedrijf,
|
||
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
COUNT (DISTINCT bo.bes_bestelopdr_key) aantal,
|
||
SUM ((boi.bes_bestelopdr_item_aantal * COALESCE (boi.bes_bestelopdr_item_inkprijs, boi.bes_bestelopdr_item_prijs)) +
|
||
COALESCE (bo.bes_bestelopdr_korting, 0) +
|
||
COALESCE (bo.bes_bestelopdr_levkosten, 0))
|
||
kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
prs_bedrijf b,
|
||
cnt_v_aanwezigcontract c,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp
|
||
WHERE bo.bes_bestelopdr_status = 6 -- Bestelopdracht Geleverd (en nog niet Verwerkt)
|
||
AND fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key) > TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Geleverd (en nog niet Verwerkt)
|
||
--fac.gettrackingdate ('BESOTV', bbi.bes_bestelling_key) > TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Ontvangen (en nog niet Verwerkt?)
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE ins_discipline_key = 523 -- Variabele contracten
|
||
--AND cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)
|
||
GROUP BY pcp.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'),
|
||
'B',
|
||
b.prs_bedrijf_naam,
|
||
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer
|
||
UNION ALL -- Reserveringskosten
|
||
SELECT x.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand volgende maand factureren (achteraf)
|
||
'R' broc_flag,
|
||
x.prs_bedrijf_naam bedrijf,
|
||
x.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
|
||
x.cnt_contract_omschrijving,
|
||
x.cnt_contract_nummer,
|
||
COUNT (DISTINCT x.res_rsv_ruimte_key) aantal,
|
||
SUM (COALESCE (verw_prijs, prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM (SELECT rrr.res_rsv_ruimte_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_afdeling_key,
|
||
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
|
||
rra.btw
|
||
FROM res_rsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
alg_v_allonroerendgoed aog,
|
||
(SELECT rra.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_levering,
|
||
rra.res_rsv_artikel_prijs,
|
||
rra.res_rsv_artikel_aantal,
|
||
ra.res_artikel_prijs,
|
||
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
|
||
NULL, 'VH',
|
||
21, 'VH',
|
||
'VL')
|
||
btw,
|
||
ra.res_discipline_key,
|
||
ra.res_artikel_omschrijving,
|
||
ra.res_artikel_eenheid
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_rsv_artikel_verwerkt IS NULL
|
||
AND rra.res_rsv_artikel_dirtlevel = 0
|
||
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (SYSDATE, 'mm') AND TRUNC (SYSDATE + 1) -- Actual = Deze maand Geleverd (en nog niet Verwerkt)
|
||
AND rra.res_artikel_key = ra.res_artikel_key) rra,
|
||
res_v_aanwezigdiscipline rd,
|
||
res_disc_params dp,
|
||
prs_bedrijf b,
|
||
cnt_v_aanwezigcontract c,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp
|
||
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_discipline_key = rd.ins_discipline_key
|
||
AND rd.ins_discipline_key = dp.res_ins_discipline_key
|
||
AND dp.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND c.cnt_contract_omschrijving NOT LIKE '%BPS%' -- BPS contracten worden gebruikt om mld_opdrachten te koppelen
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM cnt_v_aanwezigcontract c2
|
||
WHERE c2.ins_discipline_key = 523 -- Variabele contracten
|
||
--AND cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c2.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c2.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND c2.cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND c2.cnt_contract_omschrijving NOT LIKE '%BPS%' -- BPS contracten worden gebruikt om mld_opdrachten te koppelen
|
||
AND c2.cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)) x
|
||
GROUP BY x.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'),
|
||
'R',
|
||
x.prs_bedrijf_naam,
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
x.cnt_contract_nummer
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand ORDAFR, volgende maand factureren (achteraf)
|
||
'O' broc_flag,
|
||
b.prs_bedrijf_naam,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
COALESCE (nr.mld_kenmerkopdr_waarde, c.cnt_contract_nummer) cnt_contract_nummer,
|
||
COUNT ( * ) aantal,
|
||
SUM (o.mld_opdr_kosten) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM mld_opdr o,
|
||
--fac_tracking t,
|
||
cnt_contract c,
|
||
cnt_contract mc,
|
||
prs_bedrijf b,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 961) nr -- Inkoopnummer
|
||
WHERE o.mld_statusopdr_key = 9
|
||
--AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
--AND t.fac_srtnotificatie_key = 76 -- ORDAFR
|
||
--AND t.fac_tracking_datum > TRUNC (SYSDATE, 'mm') -- Actual = deze maand Afgerond (en nog niet Verwerkt)
|
||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) > TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND o.mld_opdr_key = nr.mld_opdr_key(+)
|
||
GROUP BY pcp.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'),
|
||
'O',
|
||
b.prs_bedrijf_naam,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
COALESCE (nr.mld_kenmerkopdr_waarde, c.cnt_contract_nummer)
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten voor Wiltec (niet gekoppeld aan variabel contract)!
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand ORDAFR, volgende maand factureren (achteraf)
|
||
'O' broc_flag,
|
||
b.prs_bedrijf_naam,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
COUNT ( * ) aantal,
|
||
SUM (o.mld_opdr_kosten) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM mld_opdr o,
|
||
cnt_contract c,
|
||
cnt_contract mc,
|
||
prs_bedrijf b,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp
|
||
--(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
-- FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
-- WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
-- AND k.mld_srtkenmerk_key = 961) nr -- Inkoopnummer
|
||
WHERE o.mld_statusopdr_key = 9
|
||
--AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) > TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
|
||
AND o.cnt_contract_key IS NULL -- Niet gekoppeld aan een contract!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = o.mld_melding_key
|
||
AND mld_stdmelding_key = 1781) -- Bedrijfskleding bestellen
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_uitvoerende_keys = c.cnt_prs_bedrijf_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = 31041 -- Wiltec
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
--AND o.mld_opdr_key = nr.mld_opdr_key(+)
|
||
AND NOT EXISTS -- Geen variabel contract met een hoger nummer!
|
||
(SELECT 1
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE ins_discipline_key = 523 -- Variabele contracten
|
||
--AND cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)
|
||
GROUP BY pcp.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'),
|
||
'O',
|
||
b.prs_bedrijf_naam,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer;
|
||
|
||
-- Actual regels en basis voor oa. te exporteren/bevriezen regels op de 10e van
|
||
-- de maand; voor de output geldt:
|
||
-- Dat deze de actual vaste contractkosten toont (over afgelopen maand).
|
||
-- Dat deze de actual variabele bestelopdrachtkosten toont (voor 1e ORDAFR).
|
||
-- Dat deze de actual variabele reserveringskosten toont (over afgelopen maand), behalve verbruiksartikelen met een volgnummer > 900!
|
||
-- Dat deze de actual variabele opdrachtkosten toont (voor 1e ORDAFR).
|
||
-- Dat deze tot de 10e van de huidige maand alleen nog door Yask wijzigbaar is.
|
||
CREATE OR REPLACE VIEW kfsg_v_actual_fact -- Tbv. FACT_EXPORT!
|
||
(
|
||
prs_afdeling_key,
|
||
maand,
|
||
prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
cp_perslid_key,
|
||
cp_aanhef,
|
||
cp_naam,
|
||
cp_email,
|
||
cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
cm_aanhef,
|
||
cm_naam,
|
||
bes_bestelopdr_key,
|
||
res_rsv_ruimte_key,
|
||
mld_opdr_key,
|
||
bro_id,
|
||
aantal,
|
||
kosten
|
||
)
|
||
AS
|
||
SELECT c.prs_afdeling_key, -- Vaste contractkosten over de ACTUAL termijn
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Afgelopen maand deze maand factureren (achteraf)
|
||
c.prs_bedrijf_key,
|
||
c.prs_bedrijf_naam,
|
||
c.prs_perslid_key,
|
||
c.cp_aanhef,
|
||
c.cp_naam,
|
||
c.cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer, -- Uit afgelopen maand lopend contract, anders geen vaste kosten
|
||
c.cm_aanhef,
|
||
c.cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
NULL mld_opdr_key,
|
||
NULL bro_id,
|
||
0 aantal,
|
||
ROUND (
|
||
DECODE (COALESCE (c.cnt_contract_termijnkosten, 0),
|
||
0, c.cnt_contract_kosten / 12,
|
||
c.cnt_contract_termijnkosten),
|
||
2)
|
||
+ fac.safe_to_number (COALESCE (ce.cnt_kenmerkcontract_waarde, '0'))
|
||
+ fac.safe_to_number (COALESCE (bm.cnt_kenmerkcontract_waarde, '0'))
|
||
kosten -- Wat als looptijd < jaar?
|
||
FROM (SELECT b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_afdeling_key,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
c.cnt_contract_kosten,
|
||
c.cnt_contract_termijnkosten,
|
||
DECODE (pcm.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam
|
||
FROM cnt_v_aanwezigcontract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE c.ins_discipline_key = 522 -- Vaste contracten
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND NOT EXISTS -- Nog geen entry in eigen tabel
|
||
(SELECT 1
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 161 -- VasteKostenMnd
|
||
AND fac_usrdata_code = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') || '/' || c.cnt_contract_key)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key) c
|
||
LEFT JOIN cnt_kenmerkcontract ce
|
||
ON ce.cnt_kenmerk_key = -1 -- Credit/extra kosten
|
||
AND c.cnt_contract_key = ce.cnt_contract_key
|
||
LEFT JOIN cnt_kenmerkcontract bm
|
||
ON bm.cnt_kenmerk_key = -1 -- Bonus/malus
|
||
AND c.cnt_contract_key = bm.cnt_contract_key
|
||
UNION ALL -- Bestelopdrachtkosten
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Afgelopen maand deze maand factureren (achteraf)
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam bedrijf,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
bo.bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
NULL mld_opdr_key,
|
||
bo.bes_bestelopdr_id bro_id,
|
||
1 aantal,
|
||
SUM ((boi.bes_bestelopdr_item_aantal * COALESCE (boi.bes_bestelopdr_item_inkprijs, boi.bes_bestelopdr_item_prijs)) +
|
||
COALESCE (bo.bes_bestelopdr_korting, 0) +
|
||
COALESCE (bo.bes_bestelopdr_levkosten, 0))
|
||
kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bbi,
|
||
prs_bedrijf b,
|
||
cnt_v_aanwezigcontract c,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE bo.bes_bestelopdr_status = 6 -- Bestelopdracht Geleverd (en nog niet Verwerkt)
|
||
AND fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Afgelopen maand Geleverd (en nog niet Verwerkt)
|
||
--fac.gettrackingdate ('BESOTV', bbi.bes_bestelling_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Afgelopen maand Ontvangen (en nog niet Verwerkt?)
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
|
||
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE ins_discipline_key = 523 -- Variabele contracten
|
||
--AND cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)
|
||
GROUP BY pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'),
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
''),
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam,
|
||
pcp.prs_perslid_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
''),
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam,
|
||
bo.bes_bestelopdr_key,
|
||
NULL,
|
||
NULL,
|
||
bo.bes_bestelopdr_id,
|
||
1
|
||
UNION ALL -- Reserveringskosten
|
||
SELECT x.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Afgelopen maand deze maand factureren (achteraf)
|
||
x.prs_bedrijf_key,
|
||
x.prs_bedrijf_naam bedrijf,
|
||
x.prs_perslid_key,
|
||
x.cp_aanhef,
|
||
x.cp_naam,
|
||
x.cp_email,
|
||
x.cnt_contract_key,
|
||
x.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
|
||
x.cnt_contract_omschrijving,
|
||
x.cnt_contract_nummer,
|
||
x.cm_aanhef,
|
||
x.cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
x.res_rsv_ruimte_key,
|
||
NULL mld_opdr_key,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) bro_id,
|
||
1 aantal,
|
||
SUM (COALESCE (verw_prijs, prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM (SELECT b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_afdeling_key,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
--rra.res_rsv_artikel_aantal res_aantal,
|
||
--LTRIM (rra.res_artikel_omschrijving) || ' [' || TO_CHAR (res_rsv_artikel_levering, 'dd-mm-yyyy') || ']' res_voorziening,
|
||
--rra.res_rsv_artikel_levering reslev,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
|
||
rra.btw
|
||
FROM res_rsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
alg_v_allonroerendgoed aog,
|
||
(SELECT rra.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_levering,
|
||
rra.res_rsv_artikel_prijs,
|
||
rra.res_rsv_artikel_aantal,
|
||
ra.res_artikel_prijs,
|
||
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
|
||
NULL, 'VH',
|
||
21, 'VH',
|
||
'VL')
|
||
btw,
|
||
ra.res_discipline_key,
|
||
ra.res_artikel_omschrijving,
|
||
ra.res_artikel_eenheid
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_rsv_artikel_verwerkt IS NULL
|
||
AND rra.res_rsv_artikel_dirtlevel = 0
|
||
--AND rra.res_rsv_artikel_levering BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Afgelopen maand Geleverd (en nog niet Verwerkt)
|
||
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -1), 'mm') AND TRUNC (SYSDATE, 'mm') -- Actual = Afgelopen maand Geleverd (en nog niet Verwerkt)
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND COALESCE (ra.res_artikel_volgnummer, 0) <= 900) rra, -- KFSG#74625: Voor facturatie uitsluiten artikelen met een volgnummer >900!
|
||
res_v_aanwezigdiscipline rd,
|
||
res_disc_params dp,
|
||
prs_bedrijf b,
|
||
cnt_v_aanwezigcontract c,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_discipline_key = rd.ins_discipline_key
|
||
AND rd.ins_discipline_key = dp.res_ins_discipline_key
|
||
AND dp.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND c.cnt_contract_omschrijving NOT LIKE '%BPS%' -- BPS contracten worden gebruikt om mld_opdrachten te koppelen
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM cnt_v_aanwezigcontract c2
|
||
WHERE c2.ins_discipline_key = 523 -- Variabele contracten
|
||
--AND cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c2.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c2.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND c2.cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND c2.cnt_contract_omschrijving NOT LIKE '%BPS%' -- BPS contracten worden gebruikt om mld_opdrachten te koppelen
|
||
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)) x
|
||
GROUP BY x.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'),
|
||
x.prs_bedrijf_key,
|
||
x.prs_bedrijf_naam,
|
||
x.prs_perslid_key,
|
||
x.cp_aanhef,
|
||
x.cp_naam,
|
||
x.cp_email,
|
||
x.cnt_contract_key,
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
x.cnt_contract_nummer,
|
||
x.cm_aanhef,
|
||
x.cm_naam,
|
||
x.res_rsv_ruimte_key,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr),
|
||
1
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Voor 1e ORDAFR, deze maand factureren (achteraf)
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
COALESCE (nr.mld_kenmerkopdr_waarde, c.cnt_contract_nummer) cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
|
||
1 aantal,
|
||
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM mld_opdr o,
|
||
--fac_tracking t,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm,
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 961) nr -- Inkoopnummer
|
||
WHERE o.mld_statusopdr_key = 9
|
||
--AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
--AND t.fac_srtnotificatie_key = 76 -- ORDAFR
|
||
--AND t.fac_tracking_datum > TO_DATE ('20190101', 'yyyymmdd')
|
||
--AND t.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
|
||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
AND o.mld_opdr_key = nr.mld_opdr_key(+)
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten-DISPUUT
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Voor 1e ORDAFR, deze maand factureren (achteraf)
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
COALESCE (c.cnt_contract_nummer_intern, '') || '/DISPUUT' cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
COALESCE (nr.mld_kenmerkopdr_waarde, c.cnt_contract_nummer) cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
|
||
1 aantal,
|
||
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM mld_opdr o,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm,
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 961) nr -- Inkoopnummer
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
|
||
AND EXISTS -- Gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
AND o.mld_opdr_key = nr.mld_opdr_key(+)
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten voor Wiltec (niet gekoppeld aan variabel contract)!
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Voor 1e ORDAFR, deze maand factureren (achteraf)
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
|
||
1 aantal,
|
||
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM mld_opdr o,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
--(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
-- FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
-- WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
-- AND k.mld_srtkenmerk_key = 961) nr -- Inkoopnummer
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20210501', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
|
||
AND o.cnt_contract_key IS NULL -- Niet gekoppeld aan een contract!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = o.mld_melding_key
|
||
AND mld_stdmelding_key = 1781) -- Bedrijfskleding bestellen
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_uitvoerende_keys = c.cnt_prs_bedrijf_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = 31041 -- Wiltec
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
--AND o.mld_opdr_key = nr.mld_opdr_key(+)
|
||
AND NOT EXISTS -- Geen variabel contract met een hoger nummer!
|
||
(SELECT 1
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE ins_discipline_key = 523 -- Variabele contracten
|
||
--AND cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten voor Wiltec-DISPUUT (niet gekoppeld aan variabel contract)!
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Voor 1e ORDAFR, deze maand factureren (achteraf)
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
COALESCE (c.cnt_contract_nummer_intern, '') || '/DISPUUT' cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
|
||
1 aantal,
|
||
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM mld_opdr o,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
prs_contactpersoon cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm
|
||
--(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
-- FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
-- WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
-- AND k.mld_srtkenmerk_key = 961) nr -- Inkoopnummer
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20210501', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
|
||
AND o.cnt_contract_key IS NULL -- Niet gekoppeld aan een contract!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = o.mld_melding_key
|
||
AND mld_stdmelding_key = 1781) -- Bedrijfskleding bestellen
|
||
AND EXISTS -- Gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_uitvoerende_keys = c.cnt_prs_bedrijf_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = 31041 -- Wiltec
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
--AND o.mld_opdr_key = nr.mld_opdr_key(+)
|
||
AND NOT EXISTS -- Geen variabel contract met een hoger nummer!
|
||
(SELECT 1
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE ins_discipline_key = 523 -- Variabele contracten
|
||
--AND cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern);
|
||
|
||
-- Te exporteren/bevriezen totalen over voorgaande maand (vast en variabel).
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_actual_fact_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
broc_flag,
|
||
--hide_f_bedrijf_key,
|
||
fclt_f_leverancier,
|
||
--hide_f_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
aantal,
|
||
kosten
|
||
)
|
||
AS
|
||
SELECT prs_afdeling_key,
|
||
maand,
|
||
DECODE (bes_bestelopdr_key, NULL, DECODE (res_rsv_ruimte_key, NULL, DECODE (mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B') broc_flag,
|
||
--prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
SUM (aantal),
|
||
SUM (kosten)
|
||
FROM kfsg_v_actual_fact
|
||
GROUP BY prs_afdeling_key,
|
||
maand,
|
||
DECODE (bes_bestelopdr_key, NULL, DECODE (res_rsv_ruimte_key, NULL, DECODE (mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B'),
|
||
--prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr;
|
||
|
||
-- Te exporteren/bevriezen variabele bestelopdrachtkosten over voorgaande maand (details).
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_actual_fact_bes
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
bes_bestelling_key,
|
||
bes_bestelopdr_key,
|
||
bes_id,
|
||
plaats,
|
||
ruimte,
|
||
catalogus,
|
||
besteldatum,
|
||
leverdatum,
|
||
bestellingstatus, -- Not used
|
||
bestelopdrachtstatus,
|
||
afhandeling, -- Not used
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district
|
||
)
|
||
AS
|
||
SELECT v.prs_afdeling_key,
|
||
v.maand,
|
||
x.bes_bestelling_key,
|
||
v.bes_bestelopdr_key,
|
||
v.bro_id bes_id,
|
||
COALESCE (l.alg_locatie_code, ma.mld_adres_naam) plaatsaanduiding,
|
||
x.bes_bestelling_plaats ruimte,
|
||
x.ins_discipline_omschrijving,
|
||
bo.bes_bestelopdr_datum,
|
||
bo.bes_bestelopdr_leverdatum, -- Of uit FAC_TRACKING-tabel?
|
||
bs.bes_bestellingstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
|
||
bos.bes_bestelopdrstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
|
||
COALESCE (bo.bes_bestelopdr_opmerking, bo.bes_bestelopdr_delivery_opmerk) afhandeling,
|
||
v.prs_bedrijf_naam,
|
||
v.kosten,
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving
|
||
FROM kfsg_v_actual_fact v,
|
||
bes_bestelopdr bo,
|
||
(SELECT DISTINCT boi.bes_bestelopdr_key, b.bes_bestelling_key, b.mld_adres_key_lev, b.bes_bestelling_plaats, b.bes_bestelling_datum, b.bes_bestelling_status, td.ins_discipline_omschrijving
|
||
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelling b, bes_srtdeel sd, bes_srtgroep sg, ins_tab_discipline td
|
||
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
|
||
AND bbi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND bbi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = td.ins_discipline_key) x,
|
||
bes_bestellingstatuses bs,
|
||
bes_bestelopdrstatuses bos,
|
||
mld_adres ma,
|
||
alg_locatie l,
|
||
alg_district d
|
||
WHERE v.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bo.bes_bestelopdr_key = x.bes_bestelopdr_key
|
||
AND x.bes_bestelling_status = bs.bes_bestellingstatuses_key(+)
|
||
AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key(+)
|
||
AND x.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+);
|
||
|
||
-- Te exporteren/bevriezen variabele reserveringskosten over voorgaande maand (details).
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_actual_fact_res
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key,
|
||
res_id,
|
||
plaats, -- Gebouw
|
||
ruimte,
|
||
activiteit,
|
||
omschrijving,
|
||
van_datum, -- Not used
|
||
van_tijd,
|
||
tot_tijd,
|
||
status,
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district
|
||
)
|
||
AS
|
||
SELECT v.prs_afdeling_key,
|
||
v.maand,
|
||
rrr.res_reservering_key,
|
||
v.res_rsv_ruimte_key,
|
||
v.bro_id res_id,
|
||
DECODE (
|
||
og.alg_type,
|
||
'R', og.alg_gebouw_code,
|
||
'V', og.alg_gebouw_code,
|
||
'G', og.alg_gebouw_code,
|
||
'T', og.alg_terreinsector_code,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
COALESCE ((SELECT res_ruimte_nr FROM res_ruimte WHERE res_ruimte_key = rro.res_ruimte_key), og.alg_plaatsaanduiding) ruimte,
|
||
ra.res_activiteit_omschrijving,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rs.res_status_bo_omschrijving,
|
||
v.prs_bedrijf_naam,
|
||
v.kosten,
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving
|
||
FROM kfsg_v_actual_fact v,
|
||
res_rsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
res_status_bo rs,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
alg_v_onroerendgoed_gegevens og,
|
||
alg_locatie l,
|
||
alg_district d
|
||
WHERE v.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
||
AND rrr.res_status_bo_key = rs.res_status_bo_key(+) -- Status van onderliggende artikelen/delen betrekken?
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = og.alg_ruimte_key
|
||
AND og.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+);
|
||
|
||
-- Te exporteren/bevriezen variabele opdrachtkosten over voorgaande maand (details).
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_actual_fact_mld
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
prio,
|
||
mld_melding_key,
|
||
mld_opdr_key,
|
||
opdr_id,
|
||
plaats, -- Gebouw
|
||
ruimte,
|
||
mld_stdmelding_oms,
|
||
opdrachttype,
|
||
omschrijving,
|
||
begindatum,
|
||
einddatum,
|
||
meldingstatus,
|
||
opdrachtstatus,
|
||
afhandeling,
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district
|
||
)
|
||
AS
|
||
SELECT v.prs_afdeling_key,
|
||
v.maand,
|
||
TO_CHAR (m.mld_melding_spoed),
|
||
m.mld_melding_key,
|
||
o.mld_opdr_key,
|
||
COALESCE (sd.ins_srtdiscipline_prefix, '') || v.bro_id opdr_id,
|
||
DECODE (
|
||
og.alg_type,
|
||
'R', og.alg_gebouw_code,
|
||
'V', og.alg_gebouw_code,
|
||
'G', og.alg_gebouw_code,
|
||
'T', og.alg_terreinsector_code,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
DECODE (og.alg_type, 'R', og.alg_plaatsaanduiding, NULL) ruimte,
|
||
sm.mld_stdmelding_omschrijving,
|
||
ot.mld_typeopdr_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
o.mld_opdr_datumbegin begindatum,
|
||
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
|
||
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) einddatum,
|
||
ms.mld_statuses_omschrijving,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_opdr_opmerking,
|
||
v.prs_bedrijf_naam,
|
||
v.kosten,
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving
|
||
FROM kfsg_v_actual_fact v,
|
||
mld_opdr o,
|
||
mld_statusopdr os,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+);
|
||
|
||
-- Frozen regels en basis voor oa. de notificatie op de 11e van de maand; voor
|
||
-- de output geldt:
|
||
-- Dat deze de frozen vaste contractkosten toont.
|
||
-- Dat deze de frozen variabele opdrachtkosten toont.
|
||
-- Dat deze de frozen variabele reserveringskosten toont.
|
||
-- Dat de laatst bevroren maand per bedrijf op de 11e wordt genotificeerd (via
|
||
-- extra_key-principe) met daarin de bedragen gegroepeerd per inkoopordernr.
|
||
CREATE OR REPLACE VIEW kfsg_v_frozen_fact
|
||
(
|
||
prs_afdeling_key,
|
||
maand,
|
||
--prs_bedrijf_key,
|
||
extra_key, -- Moet zo heten!
|
||
prs_bedrijf_naam,
|
||
cp_perslid_key,
|
||
cp_aanhef,
|
||
cp_naam,
|
||
cp_email,
|
||
cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
cm_aanhef,
|
||
cm_naam,
|
||
bes_bestelopdr_key,
|
||
res_rsv_ruimte_key,
|
||
mld_opdr_key,
|
||
bro_id,
|
||
factuur_naar_sg,
|
||
aantal,
|
||
kosten,
|
||
bps
|
||
)
|
||
AS
|
||
SELECT pcp.prs_afdeling_key, -- Vaste contractkosten over de FROZEN termijnen
|
||
SUBSTR (ud.fac_usrdata_code, 1, 7) maand, -- yyyy-mm
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
NULL mld_opdr_key,
|
||
NULL bro_id,
|
||
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee') fact2sg,
|
||
0 aantal,
|
||
ud.fac_usrdata_prijs kosten,
|
||
'X' bps -- X=Don't care!
|
||
FROM fac_usrdata ud,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm,
|
||
(SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerk_key = 1040) kl -- Factuur rechtstreeks naar SG!
|
||
WHERE ud.fac_usrtab_key = 161 -- VasteKostenMnd
|
||
AND SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1) = TO_CHAR (c.cnt_contract_key)
|
||
--AND SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1) = TO_CHAR (b.prs_bedrijf_key)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
AND b.prs_bedrijf_key = kl.prs_link_key(+)
|
||
UNION ALL -- Variabele kosten uit FROZEN bestelopdrachten op variabele contracten (via bes_bestelling_ordernr!)
|
||
SELECT pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (fac.gettrackingdate ('BES2VE', bo.bes_bestelopdr_key), 'mm') - 1, 'yyyy-mm') maand,
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam bedrijf,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
bo.bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
NULL mld_opdr_key,
|
||
bo.bes_bestelopdr_id bro_id,
|
||
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee') fact2sg,
|
||
1 aantal,
|
||
SUM ((boi.bes_bestelopdr_item_aantal * COALESCE (boi.bes_bestelopdr_item_inkprijs, boi.bes_bestelopdr_item_prijs)) +
|
||
COALESCE (bo.bes_bestelopdr_korting, 0) +
|
||
COALESCE (bo.bes_bestelopdr_levkosten, 0))
|
||
kosten, -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
DECODE (c.cnt_contract_nummer_intern, 30, 'O', 'X') bps -- 30=Maatwerk-contract met Eurest Catering
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bbi,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelopdr bo,
|
||
cnt_v_aanwezigcontract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm,
|
||
(SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerk_key = 1040) kl -- Factuur rechtstreeks naar SG!
|
||
WHERE b.bes_bestelling_ordernr IS NOT NULL -- Gefactureerd!
|
||
AND b.bes_bestelling_key = bbi.bes_bestelling_key
|
||
AND bbi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bo.bes_bestelopdr_status = 7 -- Verwerkt (TODO: Soms >1 bestelopdrachten en niet allemaal Verwerkt???)
|
||
--AND bo.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND SUBSTR (b.bes_bestelling_ordernr, INSTR (b.bes_bestelling_ordernr, '/') + 1) = TO_CHAR (c.cnt_contract_key)
|
||
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
AND b.prs_bedrijf_key = kl.prs_link_key(+)
|
||
GROUP BY pcp.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (fac.gettrackingdate ('BES2VE', bo.bes_bestelopdr_key), 'mm') - 1, 'yyyy-mm'),
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
''),
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam,
|
||
pcp.prs_perslid_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
''),
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam,
|
||
bo.bes_bestelopdr_key,
|
||
NULL,
|
||
NULL,
|
||
bo.bes_bestelopdr_id,
|
||
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
|
||
1,
|
||
DECODE (c.cnt_contract_nummer_intern, 30, 'O', 'X')
|
||
UNION ALL -- Variabele kosten uit FROZEN reserveringen op variabele contracten (via fin_verkoopfactuur_id!)
|
||
SELECT x.prs_afdeling_key,
|
||
SUBSTR (x.fin_verkoopfactuur_maand, 1, 4) || '-' || SUBSTR (x.fin_verkoopfactuur_maand, 5, 2) maand,
|
||
x.prs_bedrijf_key,
|
||
x.prs_bedrijf_naam bedrijf,
|
||
x.prs_perslid_key,
|
||
x.cp_aanhef,
|
||
x.cp_naam,
|
||
x.cp_email,
|
||
x.cnt_contract_key,
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
x.cnt_contract_nummer,
|
||
x.cm_aanhef,
|
||
x.cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
x.res_rsv_ruimte_key,
|
||
NULL mld_opdr_key,
|
||
x.fin_verkoopfactuur_omschr bro_id,
|
||
DECODE (x.prs_kenmerklink_waarde, 1, 'Ja', 'Nee') fact2sg,
|
||
1 aantal,
|
||
SUM (COALESCE (x.verw_prijs, x.prijs, 0)) kosten, -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
DECODE (x.cnt_contract_nummer_intern, 30, 'O', 'X') bps -- 30=Maatwerk-contract met Eurest Catering
|
||
FROM (SELECT pcp.prs_afdeling_key,
|
||
vf.fin_verkoopfactuur_maand,
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email cp_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht,
|
||
0, 'Mevr. ',
|
||
1, 'Dhr. ',
|
||
'')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (
|
||
pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
rra.res_rsv_ruimte_key,
|
||
vf.fin_verkoopfactuur_omschr,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs,
|
||
--DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw), NULL, 'VH', 21, 'VH', 'VL')
|
||
-- btw,
|
||
kl.prs_kenmerklink_waarde
|
||
FROM fin_verkoopfactuur vf,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
cnt_v_aanwezigcontract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm,
|
||
(SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerk_key = 1040) kl -- Factuur rechtstreeks naar SG!
|
||
WHERE vf.fin_verkoopfactuur_refkey = rra.res_rsv_artikel_key
|
||
--AND rra.res_status_bo_key = 6 -- Verwerkt (kan niet anders)
|
||
--AND rra.res_rsv_artikel_verwerkt IS NOT NULL -- Verwerkt (kan niet anders)
|
||
--AND rra.res_rsv_artikel_levering > TO_DATE ('20190101', 'yyyymmdd') -- Kan niet anders
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND fac.safe_to_number (vf.fin_verkoopfactuur_id) = c.cnt_contract_key
|
||
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
AND b.prs_bedrijf_key = kl.prs_link_key(+)) x
|
||
GROUP BY x.prs_afdeling_key,
|
||
SUBSTR (x.fin_verkoopfactuur_maand, 1, 4) || '-' || SUBSTR (x.fin_verkoopfactuur_maand, 5, 2),
|
||
x.prs_bedrijf_key,
|
||
x.prs_bedrijf_naam,
|
||
x.prs_perslid_key,
|
||
x.cp_aanhef,
|
||
x.cp_naam,
|
||
x.cp_email,
|
||
x.cnt_contract_key,
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
x.cnt_contract_nummer,
|
||
x.cm_aanhef,
|
||
x.cm_naam,
|
||
NULL,
|
||
x.res_rsv_ruimte_key,
|
||
NULL,
|
||
x.fin_verkoopfactuur_omschr,
|
||
DECODE (x.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
|
||
1,
|
||
DECODE (x.cnt_contract_nummer_intern, 30, 'O', 'X')
|
||
UNION ALL -- Variabele kosten uit FROZEN opdrachten op variabele contracten
|
||
SELECT pcp.prs_afdeling_key,
|
||
o.mld_opdr_ordernr maand,
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL,
|
||
NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
COALESCE (nr.mld_kenmerkopdr_waarde, c.cnt_contract_nummer) cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
|
||
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
|
||
1 aantal,
|
||
o.mld_opdr_kosten kosten, -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
DECODE (c.cnt_contract_nummer_intern, 30, DECODE (m.mld_alg_onroerendgoed_keys, 8023, 'B', 'O'), 'X') bps -- 30=Maatwerk-contract met Eurest Catering/8023=Restaurant BPS (TERM-T1-3-R3236)
|
||
FROM mld_opdr o,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm,
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 961) nr, -- Inkoopnummer
|
||
(SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerk_key = 1040) kl, -- Factuur rechtstreeks naar SG!
|
||
mld_melding m
|
||
WHERE o.mld_opdr_ordernr IS NOT NULL -- Gefactureerd!
|
||
--AND o.mld_statusopdr_key = 7 -- Verwerkt (kan niet anders)
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
AND o.mld_opdr_key = nr.mld_opdr_key(+)
|
||
AND b.prs_bedrijf_key = kl.prs_link_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
UNION ALL -- Variabele kosten uit FROZEN opdrachten voor Wiltec (niet gekoppeld aan variabel contract)!
|
||
SELECT pcp.prs_afdeling_key,
|
||
o.mld_opdr_ordernr maand,
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
pcp.prs_perslid_key,
|
||
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cp_aanhef,
|
||
DECODE (
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
|
||
NULL,
|
||
NULL,
|
||
COALESCE (pcp.prs_perslid_voorletters,
|
||
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcp.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcp.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcp.prs_perslid_naam
|
||
cp_naam,
|
||
pcp.prs_perslid_email,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_contract_nummer,
|
||
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
|
||
cm_aanhef,
|
||
DECODE (
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
|
||
NULL, NULL,
|
||
COALESCE (pcm.prs_perslid_voorletters,
|
||
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|
||
|| ' ')
|
||
|| DECODE (pcm.prs_perslid_tussenvoegsel,
|
||
NULL, NULL,
|
||
pcm.prs_perslid_tussenvoegsel || ' ')
|
||
|| pcm.prs_perslid_naam
|
||
cm_naam,
|
||
NULL bes_bestelopdr_key,
|
||
NULL res_rsv_ruimte_key,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
|
||
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
|
||
1 aantal,
|
||
o.mld_opdr_kosten kosten, -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
DECODE (c.cnt_contract_nummer_intern, 30, DECODE (m.mld_alg_onroerendgoed_keys, 8023, 'B', 'O'), 'X') bps -- 30=Maatwerk-contract met Eurest Catering/8023=Restaurant BPS (TERM-T1-3-R3236)
|
||
FROM mld_opdr o,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
cnt_contract mc,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp,
|
||
prs_perslid pcp,
|
||
prs_perslid pcm,
|
||
--(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
-- FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
-- WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
-- AND k.mld_srtkenmerk_key = 961) nr, -- Inkoopnummer
|
||
(SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerk_key = 1040) kl, -- Factuur rechtstreeks naar SG!
|
||
mld_melding m
|
||
WHERE o.mld_opdr_ordernr IS NOT NULL -- Gefactureerd!
|
||
--AND o.mld_statusopdr_key = 7 -- Verwerkt (kan niet anders)
|
||
AND o.cnt_contract_key IS NULL -- Niet gekoppeld aan een contract!
|
||
AND o.mld_uitvoerende_keys = c.cnt_prs_bedrijf_key
|
||
AND c.ins_discipline_key = 523 -- Variabele contracten
|
||
AND TO_CHAR (c.cnt_contract_looptijd_van, 'yyyy-mm') <= o.mld_opdr_ordernr
|
||
AND TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy-mm') >= o.mld_opdr_ordernr
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = 31041 -- Wiltec
|
||
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
|
||
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
|
||
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
|
||
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
|
||
--AND o.mld_opdr_key = nr.mld_opdr_key(+)
|
||
AND b.prs_bedrijf_key = kl.prs_link_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND NOT EXISTS -- Betreffende maand lopend contract!
|
||
(SELECT 1
|
||
FROM cnt_v_aanwezigcontract
|
||
WHERE ins_discipline_key = 523 -- Variabele contracten
|
||
--AND cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TO_CHAR (cnt_contract_looptijd_van, 'yyyy-mm') <= o.mld_opdr_ordernr
|
||
AND TO_CHAR (cnt_contract_looptijd_tot, 'yyyy-mm') >= o.mld_opdr_ordernr
|
||
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern);
|
||
|
||
-- Geexporteerde/bevroren totalen over voorgaande maanden (vast en variabel).
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_frozen_fact_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
broc_flag,
|
||
--hide_f_bedrijf_key,
|
||
fclt_f_leverancier,
|
||
--hide_f_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
aantal,
|
||
kosten,
|
||
bps
|
||
)
|
||
AS -- Vaste contractkosten over de FROZEN termijnen
|
||
SELECT prs_afdeling_key,
|
||
maand,
|
||
DECODE (bes_bestelopdr_key, NULL, DECODE (res_rsv_ruimte_key, NULL, DECODE (mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B') broc_flag,
|
||
--prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
SUM (aantal),
|
||
SUM (kosten),
|
||
bps
|
||
FROM kfsg_v_frozen_fact
|
||
GROUP BY prs_afdeling_key,
|
||
maand,
|
||
DECODE (bes_bestelopdr_key, NULL, DECODE (res_rsv_ruimte_key, NULL, DECODE (mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B'),
|
||
--prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
--cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
bps;
|
||
|
||
-- KFSG#65747: Rapportage tbv. leverancier-contactpersonen!
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_frozen_tot_lev
|
||
(
|
||
fclt_3d_user_key, -- Kunnen beperken per leverancier-contactpersoon!
|
||
maand,
|
||
broc_flag,
|
||
fclt_f_leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
inkoopordernr,
|
||
aantal,
|
||
kosten,
|
||
bps
|
||
)
|
||
AS -- Vaste contractkosten over de FROZEN termijnen
|
||
SELECT cp.prs_perslid_key,
|
||
v.maand,
|
||
DECODE (v.bes_bestelopdr_key, NULL, DECODE (v.res_rsv_ruimte_key, NULL, DECODE (v.mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B') broc_flag,
|
||
v.prs_bedrijf_naam,
|
||
v.contractnr,
|
||
v.beschrijving,
|
||
v.inkoopordernr,
|
||
SUM (v.aantal),
|
||
SUM (COALESCE (v.kosten, 0)),
|
||
v.bps
|
||
FROM kfsg_v_frozen_fact v,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp
|
||
WHERE v.extra_key = cp.prs_bedrijf_key
|
||
AND cp.prs_perslid_key IS NOT NULL -- Account in Facilitor!
|
||
GROUP BY cp.prs_perslid_key,
|
||
v.maand,
|
||
DECODE (v.bes_bestelopdr_key, NULL, DECODE (v.res_rsv_ruimte_key, NULL, DECODE (v.mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B'),
|
||
v.prs_bedrijf_naam,
|
||
v.contractnr,
|
||
v.beschrijving,
|
||
v.inkoopordernr,
|
||
v.bps;
|
||
|
||
-- Geexporteerde/bevroren variabele bestelopdrachtkosten over voorgaande maanden (details).
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_frozen_fact_bes
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
bes_bestelling_key,
|
||
bes_bestelopdr_key,
|
||
bes_id,
|
||
plaats,
|
||
ruimte,
|
||
catalogus,
|
||
besteldatum,
|
||
leverdatum,
|
||
bestellingstatus, -- Not used
|
||
bestelopdrachtstatus,
|
||
afhandeling, -- Not used
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district,
|
||
bps
|
||
)
|
||
AS
|
||
SELECT v.prs_afdeling_key,
|
||
v.maand,
|
||
x.bes_bestelling_key,
|
||
v.bes_bestelopdr_key,
|
||
v.bro_id bes_id,
|
||
COALESCE (l.alg_locatie_code, ma.mld_adres_naam) plaatsaanduiding,
|
||
x.bes_bestelling_plaats ruimte,
|
||
x.ins_discipline_omschrijving,
|
||
bo.bes_bestelopdr_datum,
|
||
bo.bes_bestelopdr_leverdatum, -- Of uit FAC_TRACKING-tabel?
|
||
bs.bes_bestellingstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
|
||
bos.bes_bestelopdrstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
|
||
COALESCE (bo.bes_bestelopdr_opmerking, bo.bes_bestelopdr_delivery_opmerk) afhandeling,
|
||
v.prs_bedrijf_naam,
|
||
v.kosten,
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving,
|
||
v.bps
|
||
FROM kfsg_v_frozen_fact v,
|
||
bes_bestelopdr bo,
|
||
(SELECT DISTINCT boi.bes_bestelopdr_key, b.bes_bestelling_key, b.mld_adres_key_lev, b.bes_bestelling_plaats, b.bes_bestelling_datum, b.bes_bestelling_status, td.ins_discipline_omschrijving
|
||
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelling b, bes_srtdeel sd, bes_srtgroep sg, ins_tab_discipline td
|
||
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
|
||
AND bbi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND bbi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = td.ins_discipline_key) x,
|
||
bes_bestellingstatuses bs,
|
||
bes_bestelopdrstatuses bos,
|
||
mld_adres ma,
|
||
alg_locatie l,
|
||
alg_district d
|
||
WHERE v.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bo.bes_bestelopdr_key = x.bes_bestelopdr_key
|
||
AND x.bes_bestelling_status = bs.bes_bestellingstatuses_key(+)
|
||
AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key(+)
|
||
AND x.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+);
|
||
|
||
-- KFSG#65747: Rapportage tbv. leverancier-contactpersonen!
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_frozen_bes_lev
|
||
(
|
||
fclt_3d_user_key, -- Kunnen beperken per leverancier-contactpersonen!
|
||
maand,
|
||
bes_bestelling_key,
|
||
bes_bestelopdr_key,
|
||
bes_id,
|
||
plaats,
|
||
ruimte,
|
||
catalogus,
|
||
besteldatum,
|
||
leverdatum,
|
||
bestellingstatus, -- Not used
|
||
bestelopdrachtstatus,
|
||
afhandeling, -- Not used
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district,
|
||
bps
|
||
)
|
||
AS
|
||
SELECT cp.prs_perslid_key,
|
||
v.maand,
|
||
x.bes_bestelling_key,
|
||
v.bes_bestelopdr_key,
|
||
v.bro_id bes_id,
|
||
COALESCE (l.alg_locatie_code, ma.mld_adres_naam) plaatsaanduiding,
|
||
x.bes_bestelling_plaats ruimte,
|
||
x.ins_discipline_omschrijving,
|
||
bo.bes_bestelopdr_datum,
|
||
bo.bes_bestelopdr_leverdatum, -- Of uit FAC_TRACKING-tabel?
|
||
bs.bes_bestellingstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
|
||
bos.bes_bestelopdrstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
|
||
COALESCE (bo.bes_bestelopdr_opmerking, bo.bes_bestelopdr_delivery_opmerk) afhandeling,
|
||
v.prs_bedrijf_naam,
|
||
COALESCE (v.kosten, 0),
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving,
|
||
v.bps
|
||
FROM kfsg_v_frozen_fact v,
|
||
bes_bestelopdr bo,
|
||
(SELECT DISTINCT boi.bes_bestelopdr_key, b.bes_bestelling_key, b.mld_adres_key_lev, b.bes_bestelling_plaats, b.bes_bestelling_datum, b.bes_bestelling_status, td.ins_discipline_omschrijving
|
||
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelling b, bes_srtdeel sd, bes_srtgroep sg, ins_tab_discipline td
|
||
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
|
||
AND bbi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND bbi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = td.ins_discipline_key) x,
|
||
bes_bestellingstatuses bs,
|
||
bes_bestelopdrstatuses bos,
|
||
mld_adres ma,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp
|
||
WHERE v.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND bo.bes_bestelopdr_key = x.bes_bestelopdr_key
|
||
AND x.bes_bestelling_status = bs.bes_bestellingstatuses_key(+)
|
||
AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key(+)
|
||
AND x.mld_adres_key_lev = ma.mld_adres_key(+)
|
||
AND ma.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND v.extra_key = cp.prs_bedrijf_key
|
||
AND cp.prs_perslid_key IS NOT NULL -- Account in Facilitor!
|
||
;
|
||
|
||
-- Geexporteerde/bevroren variabele reserveringskosten over voorgaande maanden (details).
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_frozen_fact_res
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key,
|
||
res_id,
|
||
plaats, -- Gebouw
|
||
ruimte,
|
||
activiteit,
|
||
omschrijving,
|
||
van_datum, -- Not used
|
||
van_tijd,
|
||
tot_tijd,
|
||
status,
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district,
|
||
bps
|
||
)
|
||
AS
|
||
SELECT v.prs_afdeling_key,
|
||
v.maand,
|
||
rrr.res_reservering_key,
|
||
v.res_rsv_ruimte_key,
|
||
v.bro_id res_id,
|
||
DECODE (
|
||
og.alg_type,
|
||
'R', og.alg_gebouw_code,
|
||
'V', og.alg_gebouw_code,
|
||
'G', og.alg_gebouw_code,
|
||
'T', og.alg_terreinsector_code,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
COALESCE ((SELECT res_ruimte_nr FROM res_ruimte WHERE res_ruimte_key = rro.res_ruimte_key), og.alg_plaatsaanduiding) ruimte,
|
||
ra.res_activiteit_omschrijving,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rs.res_status_bo_omschrijving,
|
||
v.prs_bedrijf_naam,
|
||
v.kosten,
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving,
|
||
v.bps
|
||
FROM kfsg_v_frozen_fact v,
|
||
res_rsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
res_status_bo rs,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
alg_v_onroerendgoed_gegevens og,
|
||
alg_locatie l,
|
||
alg_district d
|
||
WHERE v.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
||
AND rrr.res_status_bo_key = rs.res_status_bo_key(+) -- Status van onderliggende artikelen/delen betrekken?
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = og.alg_ruimte_key
|
||
AND og.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+);
|
||
|
||
-- KFSG#65747: Rapportage tbv. leverancier-contactpersonen!
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_frozen_res_lev
|
||
(
|
||
fclt_3d_user_key, -- Kunnen beperken per leverancier-contactpersonen!
|
||
maand,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_key,
|
||
res_id,
|
||
plaats, -- Gebouw
|
||
ruimte,
|
||
activiteit,
|
||
omschrijving,
|
||
van_datum, -- Not used
|
||
van_tijd,
|
||
tot_tijd,
|
||
status,
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district,
|
||
bps
|
||
)
|
||
AS
|
||
SELECT cp.prs_perslid_key,
|
||
v.maand,
|
||
rrr.res_reservering_key,
|
||
v.res_rsv_ruimte_key,
|
||
v.bro_id res_id,
|
||
DECODE (
|
||
og.alg_type,
|
||
'R', og.alg_gebouw_code,
|
||
'V', og.alg_gebouw_code,
|
||
'G', og.alg_gebouw_code,
|
||
'T', og.alg_terreinsector_code,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
COALESCE ((SELECT res_ruimte_nr FROM res_ruimte WHERE res_ruimte_key = rro.res_ruimte_key), og.alg_plaatsaanduiding) ruimte,
|
||
ra.res_activiteit_omschrijving,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rs.res_status_bo_omschrijving,
|
||
v.prs_bedrijf_naam,
|
||
COALESCE (v.kosten, 0),
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving,
|
||
v.bps
|
||
FROM kfsg_v_frozen_fact v,
|
||
res_rsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
res_status_bo rs,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
alg_v_onroerendgoed_gegevens og,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp
|
||
WHERE v.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
||
AND rrr.res_status_bo_key = rs.res_status_bo_key(+) -- Status van onderliggende artikelen/delen betrekken?
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = og.alg_ruimte_key
|
||
AND og.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND v.extra_key = cp.prs_bedrijf_key
|
||
AND cp.prs_perslid_key IS NOT NULL -- Account in Facilitor!
|
||
;
|
||
|
||
-- Geexporteerde/bevroren variabele opdrachtkosten over voorgaande maanden (details).
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_frozen_fact_mld
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
prio,
|
||
mld_melding_key,
|
||
mld_opdr_key,
|
||
opdr_id,
|
||
plaats, -- Gebouw
|
||
ruimte,
|
||
mld_stdmelding_oms,
|
||
opdrachttype,
|
||
omschrijving,
|
||
begindatum,
|
||
einddatum,
|
||
meldingstatus,
|
||
opdrachtstatus,
|
||
afhandeling,
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district,
|
||
bps
|
||
)
|
||
AS
|
||
SELECT v.prs_afdeling_key,
|
||
v.maand,
|
||
TO_CHAR (m.mld_melding_spoed),
|
||
m.mld_melding_key,
|
||
o.mld_opdr_key,
|
||
COALESCE (sd.ins_srtdiscipline_prefix, '') || v.bro_id opdr_id,
|
||
DECODE (
|
||
og.alg_type,
|
||
'R', og.alg_gebouw_code,
|
||
'V', og.alg_gebouw_code,
|
||
'G', og.alg_gebouw_code,
|
||
'T', og.alg_terreinsector_code,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
DECODE (og.alg_type, 'R', og.alg_plaatsaanduiding, NULL) ruimte,
|
||
sm.mld_stdmelding_omschrijving,
|
||
ot.mld_typeopdr_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
o.mld_opdr_datumbegin begindatum,
|
||
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
|
||
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) einddatum,
|
||
ms.mld_statuses_omschrijving,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_opdr_opmerking,
|
||
v.prs_bedrijf_naam,
|
||
o.mld_opdr_kosten,
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving,
|
||
v.bps
|
||
FROM kfsg_v_frozen_fact v,
|
||
mld_opdr o,
|
||
mld_statusopdr os,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_v_onroerendgoed_gegevens og
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+);
|
||
|
||
-- KFSG#65747: Rapportage tbv. leverancier-contactpersonen!
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_frozen_mld_lev
|
||
(
|
||
fclt_3d_user_key, -- Kunnen beperken per leverancier-contactpersonen!
|
||
maand,
|
||
prio,
|
||
mld_melding_key,
|
||
mld_opdr_key,
|
||
opdr_id,
|
||
plaats, -- Gebouw
|
||
ruimte,
|
||
mld_stdmelding_oms,
|
||
opdrachttype,
|
||
omschrijving,
|
||
begindatum,
|
||
einddatum,
|
||
meldingstatus,
|
||
opdrachtstatus,
|
||
afhandeling,
|
||
fclt_f_leverancier,
|
||
kosten,
|
||
fclt_f_contractnr,
|
||
fclt_f_inkoopordernr,
|
||
fclt_x_district,
|
||
bps
|
||
)
|
||
AS
|
||
SELECT cp.prs_perslid_key,
|
||
v.maand,
|
||
TO_CHAR (m.mld_melding_spoed),
|
||
m.mld_melding_key,
|
||
o.mld_opdr_key,
|
||
COALESCE (sd.ins_srtdiscipline_prefix, '') || v.bro_id opdr_id,
|
||
DECODE (
|
||
og.alg_type,
|
||
'R', og.alg_gebouw_code,
|
||
'V', og.alg_gebouw_code,
|
||
'G', og.alg_gebouw_code,
|
||
'T', og.alg_terreinsector_code,
|
||
l.alg_locatie_code)
|
||
plaatsaanduiding,
|
||
DECODE (og.alg_type, 'R', og.alg_plaatsaanduiding, NULL) ruimte,
|
||
sm.mld_stdmelding_omschrijving,
|
||
ot.mld_typeopdr_omschrijving,
|
||
o.mld_opdr_omschrijving,
|
||
o.mld_opdr_datumbegin begindatum,
|
||
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
|
||
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) einddatum,
|
||
ms.mld_statuses_omschrijving,
|
||
os.mld_statusopdr_omschrijving,
|
||
o.mld_opdr_opmerking,
|
||
v.prs_bedrijf_naam,
|
||
COALESCE (o.mld_opdr_kosten, 0),
|
||
v.contractnr,
|
||
v.inkoopordernr,
|
||
d.alg_district_omschrijving,
|
||
v.bps
|
||
FROM kfsg_v_frozen_fact v,
|
||
mld_opdr o,
|
||
mld_statusopdr os,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_v_onroerendgoed_gegevens og,
|
||
(SELECT *
|
||
FROM prs_contactpersoon
|
||
WHERE prs_contactpersoon_verwijder IS NULL) cp
|
||
WHERE v.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND v.extra_key = cp.prs_bedrijf_key
|
||
AND cp.prs_perslid_key IS NOT NULL -- Account in Facilitor!
|
||
;
|
||
|
||
CREATE OR REPLACE PROCEDURE kfsg_select_fact (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Bevries vaste contractkosten in eigen tabel.
|
||
CURSOR c1
|
||
IS
|
||
SELECT DISTINCT '[' || TO_CHAR (v.cnt_contract_key) || '] ' aanduiding,
|
||
v.maand, v.cnt_contract_key, v.prs_bedrijf_key, v.inkoopordernr, v.kosten
|
||
FROM kfsg_v_actual_fact v
|
||
WHERE v.bes_bestelopdr_key IS NULL AND v.res_rsv_ruimte_key IS NULL AND v.mld_opdr_key IS NULL
|
||
ORDER BY 3;
|
||
|
||
-- Zet "variabele" BES-bestelopdrachten die voor de 1e zijn geleverd op AV.
|
||
-- Alleen op variabele contracten.
|
||
CURSOR c2
|
||
IS
|
||
SELECT DISTINCT '[' || TO_CHAR (v.bes_bestelopdr_key) || '|' || v.bro_id || '] ' aanduiding,
|
||
v.maand, v.bes_bestelopdr_key, bbi.bes_bestelling_key, v.cnt_contract_key
|
||
FROM kfsg_v_actual_fact v, bes_bestelopdr_item boi, bes_bestelling_item bbi
|
||
WHERE v.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
|
||
ORDER BY 3;
|
||
|
||
-- Zet "variabele" RES-cateringregels die voor de 1e hebben plaatsgevonden op AV
|
||
-- en meld - zover niet al gebeurd - de deelreservering af (in juiste volgorde).
|
||
-- Alleen op variabele contracten.
|
||
CURSOR c3
|
||
IS
|
||
SELECT DISTINCT '[' || TO_CHAR (v.res_rsv_ruimte_key) || '|' || v.bro_id || '] ' aanduiding,
|
||
v.maand, v.res_rsv_ruimte_key,
|
||
rra.res_status_bo_key,
|
||
rra.res_rsv_artikel_key, rra.res_artikel_key,
|
||
v.cnt_contract_key, v.bro_id, v.prs_bedrijf_key, v.prs_bedrijf_naam
|
||
FROM kfsg_v_actual_fact v, res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE v.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_verwerkt IS NULL
|
||
AND rra.res_rsv_artikel_dirtlevel = 0 -- TODO:Niet dirty?
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND COALESCE (ra.res_artikel_volgnummer, 0) <= 900 -- KFSG#74625: Voor facturatie uitsluiten artikelen met een volgnummer >900!
|
||
UNION ALL
|
||
SELECT DISTINCT '[' || TO_CHAR (v.res_rsv_ruimte_key) || '|' || v.bro_id || '] ' aanduiding,
|
||
v.maand, v.res_rsv_ruimte_key,
|
||
rrr.res_status_bo_key,
|
||
NULL res_rsv_artikel_key, NULL res_artikel_key,
|
||
v.cnt_contract_key, v.bro_id, v.prs_bedrijf_key, v.prs_bedrijf_naam
|
||
FROM kfsg_v_actual_fact v, res_v_aanwezigrsv_ruimte rrr
|
||
WHERE v.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
ORDER BY 1, 5, 3;
|
||
|
||
-- Zet "variabele" MLD-opdrachten die voor de 1e zijn afgerond op AV.
|
||
-- Alleen op variabele contracten <20>n geen dispuut.
|
||
CURSOR c4
|
||
IS
|
||
SELECT DISTINCT '[' || TO_CHAR (v.mld_opdr_key) || '|' || v.bro_id || '] ' aanduiding,
|
||
v.maand, v.mld_opdr_key
|
||
FROM kfsg_v_actual_fact v
|
||
WHERE v.mld_opdr_key IS NOT NULL
|
||
AND v.contractnr NOT LIKE '%/DISPUUT'
|
||
ORDER BY 3;
|
||
|
||
-- Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
|
||
-- Afgerond/kosten meerekenen op vaste contracten en geen dispuut
|
||
-- Afgemeld/kosten niet meerekenen, geen offerteaanvraag en geen dispuut
|
||
-- Afgerond/kosten niet meerekenen en geen dispuut (= geaccepteerde offerteaanvragen)
|
||
CURSOR c5
|
||
IS
|
||
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
|
||
o.mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot, cnt_contract c
|
||
WHERE o.mld_statusopdr_key = 9 -- KV
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
|
||
AND o.cnt_contract_key = c.cnt_contract_key
|
||
AND c.ins_discipline_key = 522 -- Vaste contracten
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
|
||
UNION ALL
|
||
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
|
||
o.mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.mld_statusopdr_key = 6 -- TV
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
|
||
AND ot.mld_typeopdr_key != 220 -- Offerteaanvraag
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
|
||
UNION ALL
|
||
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
|
||
o.mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.mld_statusopdr_key = 9 -- KV (ooit met kosten en Offerteaanvragen)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 141 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
|
||
OR fac.gettrackingdate ('ORDOOK', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm'))
|
||
ORDER BY 2;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
v_verkoopfactuurkop_key NUMBER (10);
|
||
v_prijs NUMBER (9, 2);
|
||
BEGIN
|
||
-- Op 10e dag van de maand (via scheduled task):
|
||
-- 1. Bevries vaste contractkosten in eigen tabel (incl. malus?).
|
||
-- 2. Zet "variabele" bestelopdrachten die voor de 1e zijn geleverd op AV.
|
||
-- 3. Zet "variabele" catering-reserveringen die voor de 1e hebben plaatsgevonden op AV.
|
||
-- 4. Zet "variabele" opdrachten die voor de 1e zijn afgerond op AV.
|
||
-- 5. Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
|
||
-- x. Doe niets met afgewezen/geannuleerde opdrachten?
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen vaste contractkosten';
|
||
|
||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_aanmaak,
|
||
fac_usrdata_vervaldatum,
|
||
fac_usrdata_prijs)
|
||
VALUES (161, -- VasteKostenMnd
|
||
rec.maand || '/' || TO_CHAR (rec.cnt_contract_key),
|
||
TO_CHAR (rec.prs_bedrijf_key) || '/' || rec.inkoopordernr, -- TODO: Of weg?
|
||
SYSDATE,
|
||
NULL,
|
||
rec.kosten);
|
||
|
||
v_count := v_count + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-CAV');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Vaste contractkosten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c2
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bijwerken ordernummer (BES).';
|
||
|
||
UPDATE bes_bestelling
|
||
SET bes_bestelling_ordernr = rec.maand || '/' || TO_CHAR (rec.cnt_contract_key)
|
||
WHERE bes_bestelling_key = rec.bes_bestelling_key;
|
||
|
||
v_errormsg := 'Fout bijwerken status (BES).';
|
||
|
||
BES.setbestelopdrstatus (rec.bes_bestelopdr_key, 7, 3);
|
||
BES.setbestellingstatus (rec.bes_bestelling_key, 7, 3); -- TODO: Soms >1 bestelopdrachten???
|
||
|
||
v_count := v_count + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-BAV');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Variabele bestelopdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
-- Maak elke factuurrun voor elke reverse te billen res_rsv_xxx-regel een
|
||
-- fin_verkoopfactuur-regel aan onder dezelfde fin_verkoopfactuurkop (<28><>n
|
||
-- kop per maand)!
|
||
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
|
||
VALUES ('RES-billing' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'))
|
||
RETURNING fin_verkoopfactuurkop_key
|
||
INTO v_verkoopfactuurkop_key;
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c3
|
||
LOOP
|
||
BEGIN
|
||
IF rec.res_rsv_artikel_key IS NOT NULL
|
||
THEN -- Catering-regel
|
||
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
|
||
|
||
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
IF rec.res_status_bo_key = 2
|
||
THEN
|
||
v_errormsg := 'Fout afmelden res_rsv_artikel';
|
||
|
||
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 = rec.res_artikel_key),
|
||
res_rsv_artikel_btw =
|
||
(SELECT res_artikel_btw
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rec.res_artikel_key)
|
||
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
|
||
|
||
v_errormsg := 'Fout tracken afmelding catering';
|
||
|
||
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
|
||
END IF;
|
||
|
||
IF rec.res_status_bo_key != 6
|
||
THEN
|
||
v_errormsg := 'Fout verwerken res_rsv_artikel';
|
||
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
|
||
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
|
||
|
||
v_errormsg := 'Fout tracken verwerking catering';
|
||
|
||
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt');
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout toevoegen verkoopfactuur';
|
||
|
||
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
|
||
fin_verkoopfactuur_id,
|
||
fin_verkoopfactuur_datum,
|
||
fin_verkoopfactuur_omschr,
|
||
fin_verkoopfactuur_xmlnode,
|
||
fin_verkoopfactuur_refkey,
|
||
prs_bedrijf_key,
|
||
prs_debiteur_naam,
|
||
fin_verkoopfactuur_bedrag,
|
||
fin_verkoopfactuur_maand)
|
||
VALUES (v_verkoopfactuurkop_key,
|
||
TO_CHAR (rec.cnt_contract_key), -- Contract
|
||
SYSDATE,
|
||
rec.bro_id,
|
||
'', -- Er bestaat geen xml-node voor res_rsv_artikel!
|
||
rec.res_rsv_artikel_key,
|
||
rec.prs_bedrijf_key, -- Leverancier-key (crediteur)
|
||
rec.prs_bedrijf_naam, -- Leverancier-naam (crediteur)
|
||
v_prijs, -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
SUBSTR (rec.maand, 1, 4) || SUBSTR (rec.maand, 6, 2));
|
||
|
||
v_count := v_count + 1;
|
||
COMMIT;
|
||
ELSE -- Ruimte-regel
|
||
IF rec.res_status_bo_key = 2
|
||
THEN
|
||
v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs';
|
||
|
||
SELECT res.getruimteprijs (rec.res_rsv_ruimte_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errormsg := 'Fout afmelden res_rsv_ruimte';
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 5,
|
||
res_rsv_ruimte_prijs = v_prijs
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
v_errormsg := 'Fout tracken afmelding ruimte';
|
||
|
||
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
||
END IF;
|
||
|
||
-- Contract kan niet via RES-ordernr historisch worden opgeslagen,
|
||
-- want onder <20><>n res_rsv_ruimte kunnen de artikelen per catalogus
|
||
-- worden gefactureerd aan een verschillende leverancier!
|
||
--v_errormsg := 'Fout bijwerken ordernummer (RES).';
|
||
|
||
--UPDATE res_rsv_ruimte
|
||
-- SET res_rsv_ruimte_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') || '/' || TO_CHAR (rec.cnt_contract_key)
|
||
-- WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-RAV');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Variabele cateringregels bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c4
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bijwerken ordernummer (MLD).';
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_ordernr = rec.maand
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout bijwerken status (MLD).';
|
||
|
||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 3);
|
||
|
||
v_count := v_count + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-OAV1');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Variabele opdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c5
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bijwerken status (inclusief opdrachten).';
|
||
|
||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 3);
|
||
|
||
v_count := v_count + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-OAV2');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Inclusief opdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', v_errormsg, 'Proces FACT_EXPORT afgebroken!');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW kfsg_v_noti_te_factureren
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
WITH cp
|
||
AS (SELECT cp1.prs_bedrijf_key, cp1.prs_contactpersoon_email, p1.prs_perslid_email
|
||
FROM prs_v_aanwezigkenmerklink kl1, prs_contactpersoon cp1, prs_v_aanwezigperslid p1
|
||
WHERE kl1.prs_kenmerk_key = 1020 -- Contactpersoon factuurnotificatie!
|
||
AND kl1.prs_link_key = cp1.prs_contactpersoon_key
|
||
AND cp1.prs_contactpersoon_verwijder IS NULL
|
||
AND cp1.prs_perslid_key = p1.prs_perslid_key(+))
|
||
SELECT DISTINCT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
--63681, -- Maartje Vreijling
|
||
--cp.prs_perslid_key, -- Leverancier-contactpersonen (met noti-vinkje)
|
||
NULL,
|
||
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##LEV##', v.prs_bedrijf_naam), '##MND##', v.maand),
|
||
r.fac_usrrap_key,
|
||
v.extra_key,
|
||
COALESCE (cp.prs_contactpersoon_email, cp.prs_perslid_email),
|
||
NULL
|
||
FROM kfsg_v_frozen_fact v,
|
||
cp cp,
|
||
fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Op de ochtend na 10e van de maand!
|
||
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
AND v.extra_key = cp.prs_bedrijf_key
|
||
AND UPPER (r.fac_usrrap_view_name) = 'KFSG_V_FROZEN_FACT'
|
||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||
UNION ALL
|
||
SELECT DISTINCT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
--gg.prs_perslid_key, -- Schiphol-contactpersonen
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##MND##', v.maand),
|
||
r.fac_usrrap_key,
|
||
NULL, -- Geen extra_key, dus de hele rapportage!
|
||
p.prs_perslid_email,
|
||
NULL
|
||
FROM kfsg_v_frozen_fact v,
|
||
fac_gebruikersgroep gg,
|
||
prs_v_aanwezigperslid p,
|
||
fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Op de ochtend na 10e van de maand!
|
||
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
AND gg.fac_groep_key = 281 -- Schiphol Finance/Control
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND UPPER (r.fac_usrrap_view_name) = 'KFSG_V_FROZEN_FACT'
|
||
AND sn.fac_srtnotificatie_code = 'CUST02';
|
||
|
||
-- Kostenoverzicht
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_costs_suppl_dep
|
||
AS
|
||
SELECT pf.prs_perslid_naam_full naam,
|
||
m.mld_melding_onderwerp omschrijving,
|
||
a.prs_afdeling_omschrijving
|
||
afdeling,
|
||
prs_kostenplaats_nr kostenplaats,
|
||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
|
||
referentie,
|
||
'opdracht'
|
||
typekosten,
|
||
COALESCE (SUBSTR (a.prs_afdeling_omschrijving,
|
||
1,
|
||
INSTR (a.prs_afdeling_omschrijving,
|
||
'/',
|
||
1,
|
||
2)
|
||
- 1),
|
||
a.prs_afdeling_omschrijving)
|
||
afdeling2,
|
||
d.prs_dienst_omschrijving dienst,
|
||
NULL toelichting,
|
||
b.prs_bedrijf_naam
|
||
bedrijf,
|
||
FAC.gettrackingdate ('ORDNEW',mld_opdr_key) datum_aanmaak,
|
||
mld_opdr_datumbegin datum_levering,
|
||
FAC.gettrackingdate ('ORDAFR',mld_opdr_key) datum_afmeld,
|
||
mld_opdr_kosten
|
||
kosten
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_kostenplaats k,
|
||
prs_bedrijf b,
|
||
prs_dienst d,
|
||
mld_stdmelding std,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.prs_dienst_key = d.prs_dienst_key(+)
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND o.mld_typeopdr_key IN (521,
|
||
218,
|
||
219,
|
||
961) -- opdr type = 521 adm opdr, 218 mandaatopdr, 219 offerteopdr, 961 offertopdr
|
||
AND o.mld_statusopdr_key IN (6, 7, 9) -- afgemeld, verwerkt en afgerond.
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL
|
||
SELECT pf.prs_perslid_naam_full, bes_srtdeel_omschrijving ,
|
||
a.prs_afdeling_omschrijving,
|
||
k.prs_kostenplaats_nr,
|
||
TO_CHAR (b.bes_bestelling_key),
|
||
'bestelling',
|
||
COALESCE (SUBSTR (a.prs_afdeling_omschrijving,
|
||
1,
|
||
INSTR (a.prs_afdeling_omschrijving,
|
||
'/',
|
||
1,
|
||
2)
|
||
- 1),
|
||
a.prs_afdeling_omschrijving)
|
||
afd2,
|
||
bd.ins_discipline_omschrijving,
|
||
NULL toelichting,
|
||
l.prs_bedrijf_naam,
|
||
FAC.gettrackingdate ('BES2NE',bo.bes_bestelopdr_key) datum_aanmaak,
|
||
bes_bestelling_leverdatum datum_levering,
|
||
FAC.gettrackingdate ('BES2AF',bo.bes_bestelopdr_key) datum_geleverd,
|
||
bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal
|
||
kosten
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_bestelling b,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_kostenplaats k,
|
||
bes_srtdeel bsd,
|
||
bes_srtgroep bsg,
|
||
bes_discipline bd,
|
||
prs_bedrijf l,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE bo.prs_bedrijf_key = l.prs_bedrijf_key
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND b.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND bi.bes_srtdeel_key = bsd.bes_srtdeel_key
|
||
AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key
|
||
AND bsg.ins_discipline_key = bd.ins_discipline_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL
|
||
SELECT pf.prs_perslid_naam_full,
|
||
res_artikel_omschrijving,
|
||
a.prs_afdeling_omschrijving,
|
||
k.prs_kostenplaats_nr,
|
||
res_reservering_key || '/' || res_rsv_ruimte_volgnr,
|
||
'reservering',
|
||
COALESCE (SUBSTR (a.prs_afdeling_omschrijving,
|
||
1,
|
||
INSTR (a.prs_afdeling_omschrijving,
|
||
'/',
|
||
1,
|
||
2)
|
||
- 1),
|
||
a.prs_afdeling_omschrijving)
|
||
afd2,
|
||
rd.ins_discipline_omschrijving,
|
||
rrr.res_rsv_ruimte_omschrijving toelichting,
|
||
b.prs_bedrijf_naam,
|
||
res_rsv_artikel_aanmaak,
|
||
res_rsv_artikel_levering,
|
||
res_rsv_artikel_afgemeld,
|
||
res_rsv_artikel_prijs
|
||
bedrag
|
||
FROM res_rsv_artikel rsv,
|
||
res_rsv_ruimte rrr,
|
||
res_artikel ra,
|
||
res_discipline rd,
|
||
res_disc_params dp,
|
||
prs_bedrijf b,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_kostenplaats k,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE rsv.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rsv.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = rd.ins_discipline_key
|
||
AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+)
|
||
AND rd.ins_discipline_key = dp.res_ins_discipline_key
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
----UDR VIEW INCL KENKMERKEN KFSG#58766 -----
|
||
CREATE OR REPLACE VIEW KFSG_BEZ_V_UDR_BEZOEKERS
|
||
(
|
||
KEY,
|
||
AFSPRAAK_KEY,
|
||
RESERVERING_KEY,
|
||
HOST,
|
||
CONTACT,
|
||
INVOERDER,
|
||
PLAATS_CODE,
|
||
PLAATS_OMSCHRIJVING,
|
||
REGIO,
|
||
DISTRICT,
|
||
LOCATIE_CODE,
|
||
LOCATIE_NAAM,
|
||
LOCATIE_PLAATS,
|
||
GEBOUW_CODE,
|
||
GEBOUW_NAAM,
|
||
VERDIEPING_CODE,
|
||
VERDIEPING_NAAM,
|
||
RUIMTE_CODE,
|
||
RUIMTE_NAAM,
|
||
AFSPRAAK_RUIMTE,
|
||
AFSPRAAK_OPMERKING,
|
||
BEZOEKER_NAAM,
|
||
BEZOEKER_BEDRIJF,
|
||
BEZOEK_VAN,
|
||
BEZOEK_TOT,
|
||
ACTIE,
|
||
BEZOEKER_OPMERKING,
|
||
BEZOEKER_BINNEN,
|
||
BEZOEKER_BUITEN,
|
||
PASNR,
|
||
PARKEERPLAATS,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
FCLT_3D_AFDELING_KEY,
|
||
SELFSERVICE,
|
||
BEZOEKERSPAS,
|
||
DAGPAS,
|
||
PARKEERKAART_Afgestempeld,
|
||
Pas_vergeten,
|
||
wachten_schipholpas
|
||
)
|
||
AS
|
||
SELECT b.bez_bezoekers_key,
|
||
a.bez_afspraak_key,
|
||
a.res_rsv_ruimte_key,
|
||
COALESCE (p1.prs_perslid_naam_full, a.bez_afspraak_gastheer)
|
||
bez_afspraak_host,
|
||
p2.prs_perslid_naam_full
|
||
bez_afspraak_contact,
|
||
p3.prs_perslid_naam_full
|
||
bez_afspraak_invoerder,
|
||
og.alg_onroerendgoed_code,
|
||
og.alg_onroerendgoed_omschrijving,
|
||
r.alg_regio_omschrijving,
|
||
d.alg_district_omschrijving,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
l.alg_locatie_plaats,
|
||
og.alg_gebouw_code,
|
||
og.alg_gebouw_naam,
|
||
og.alg_verdieping_code,
|
||
og.alg_verdieping_omschrijving,
|
||
og.alg_ruimte_nr,
|
||
og.alg_ruimte_omschrijving,
|
||
a.bez_afspraak_ruimte,
|
||
a.bez_afspraak_opmerking,
|
||
b.bez_afspraak_naam
|
||
bezoeker_naam,
|
||
b.bez_afspraak_bedrijf
|
||
bezoeker_bedrijf,
|
||
a.bez_afspraak_datum,
|
||
a.bez_afspraak_eind,
|
||
ba.bez_actie_omschrijving,
|
||
b.bez_bezoekers_opmerking
|
||
bezoeker_opmerking,
|
||
b.bez_bezoekers_done,
|
||
b.bez_bezoekers_out,
|
||
b.bez_bezoekers_pasnr,
|
||
rd.res_deel_omschrijving,
|
||
a.alg_locatie_key,
|
||
pp1.prs_afdeling_key,
|
||
DECODE (p2.prs_perslid_naam_full,
|
||
p3.prs_perslid_naam_full, lcl.l ('lcl_yes'),
|
||
lcl.l ('lcl_no'))
|
||
selfservice,
|
||
(SELECT bez_kenmerkwaarde_waarde
|
||
FROM bez_kenmerkwaarde kw
|
||
WHERE bez_kenmerk_key = 1080 and bez_bezoekers_key = b.bez_bezoekers_key ) kwbezpas,
|
||
(SELECT bez_kenmerkwaarde_waarde
|
||
FROM bez_kenmerkwaarde kw
|
||
WHERE bez_kenmerk_key = 1020 and bez_bezoekers_key = b.bez_bezoekers_key ) kwdagpas,
|
||
(SELECT bez_kenmerkwaarde_waarde
|
||
FROM bez_kenmerkwaarde kw
|
||
WHERE bez_kenmerk_key = 1041 and bez_bezoekers_key = b.bez_bezoekers_key ) kwparstempel,
|
||
(SELECT bez_kenmerkwaarde_waarde
|
||
FROM bez_kenmerkwaarde kw
|
||
WHERE bez_kenmerk_key = 1101 and bez_bezoekers_key = b.bez_bezoekers_key ) kwparverg,
|
||
(SELECT bez_kenmerkwaarde_waarde
|
||
FROM bez_kenmerkwaarde kw
|
||
WHERE bez_kenmerk_key = 1100 and bez_bezoekers_key = b.bez_bezoekers_key ) kwschipholpas
|
||
FROM bez_afspraak a,
|
||
bez_bezoekers b,
|
||
prs_v_perslid_fullnames_all p1,
|
||
prs_v_perslid_fullnames_all p2,
|
||
prs_v_perslid_fullnames_all p3,
|
||
alg_v_allonrgoed_gegevens og,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_regio r,
|
||
bez_actie ba,
|
||
prs_perslid pp1,
|
||
res_rsv_deel rrd,
|
||
res_deel rd
|
||
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND pp1.prs_perslid_key(+) = a.bez_afspraak_host_key
|
||
AND p1.prs_perslid_key(+) = a.bez_afspraak_host_key
|
||
AND p2.prs_perslid_key = a.bez_afspraak_contact_key
|
||
AND p3.prs_perslid_key(+) = a.prs_perslid_key
|
||
AND a.bez_actie_key = ba.bez_actie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND d.alg_regio_key = r.alg_regio_key
|
||
AND l.alg_locatie_key = a.alg_locatie_key
|
||
AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND b.bez_bezoekers_key = rrd.bez_bezoekers_key(+)
|
||
AND rrd.res_deel_key = rd.res_deel_key(+)
|
||
AND a.bez_afspraak_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
|
||
|
||
-- KFSG#58877: Sticker Eurest (standaard UDR-view plus Telefoon- en Opmerking-
|
||
-- veld)!
|
||
CREATE OR REPLACE VIEW KFSG_V_UDR_RESERVERINGINCL
|
||
(
|
||
KEY,
|
||
NUMMER,
|
||
RES_OMSCHRIJVING,
|
||
INVOERDATUM,
|
||
DATUM,
|
||
GASTHEER,
|
||
CONTACT,
|
||
INVOERDER,
|
||
KOSTENSOORTGROEP,
|
||
KOSTENSOORT,
|
||
KPN,
|
||
KPN_OMSCHRIJVING,
|
||
KPN_EXTERN,
|
||
FCLT_3D_AFDELING_KEY,
|
||
AFDELING_CODE,
|
||
AFDELING_OMSCHRIJVING,
|
||
REGIO_OMSCHRIJVING,
|
||
DISTRICT_OMSCHIJVING,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
LOCATIE,
|
||
LOCATIE_OMSCHRIJVING,
|
||
LOCATIE_PLAATS,
|
||
GEBOUW,
|
||
VERDIEPING,
|
||
RUIMTE,
|
||
OPSTELLING,
|
||
CAPACITEIT,
|
||
NO_SHOW,
|
||
MANDAAT,
|
||
PERSONEELSNR, -- Gastheer/vrouw?
|
||
FCLT_3D_DISCIPLINE_KEY,
|
||
CATALOGUS_KEY,
|
||
CATALOGUS,
|
||
RESERVEERBARE_RUIMTE,
|
||
BEZOEKERS,
|
||
VAN,
|
||
TOT,
|
||
DUUR,
|
||
STATUS,
|
||
BOSTATUS,
|
||
ACTIVITEIT,
|
||
SRTACTIVITEIT_KEY,
|
||
ACTIVITEITSOORT,
|
||
VOORZIENING_DISCIPLINE_KEY,
|
||
VOORZIENING_TYPE,
|
||
VOORZIENING_CATALOGUS,
|
||
LEVERANCIER,
|
||
VOORZIENING_PRODUCT_KEY,
|
||
VOORZIENING_PRODUCT,
|
||
VOORZIENING_TOTAALPRIJS,
|
||
VOORZIENING_VAN,
|
||
VOORZIENING_TOT,
|
||
VOORZIENING_AANTAL,
|
||
VOORZIENING_PRIJS,
|
||
GASTHEER_TEL,
|
||
CONTACT_TEL,
|
||
RES_OPMERKING
|
||
)
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
|
||
COALESCE (rrr.res_rsv_ruimte_van, voorz.van),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
||
(SELECT pf.prs_perslid_naam_full
|
||
FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf
|
||
WHERE tr.prs_perslid_key = pf.prs_perslid_key
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND str.fac_srtnotificatie_code = 'RESNEW'
|
||
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT prs_kostensoort_key
|
||
FROM res_discipline
|
||
WHERE ins_discipline_key =
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT d.ins_discipline_key
|
||
FROM ins_tab_discipline d, res_ruimte rr, res_ruimte_opstelling ro
|
||
WHERE d.ins_discipline_key = rr.res_discipline_key
|
||
AND rr.res_ruimte_key = ro.res_ruimte_key
|
||
AND ro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key))))
|
||
kostensoortgroep,
|
||
(SELECT prs_kostensoort_oms
|
||
FROM prs_kostensoort
|
||
WHERE prs_kostensoort_key =
|
||
(SELECT prs_kostensoort_key
|
||
FROM res_discipline
|
||
WHERE ins_discipline_key =
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT d.ins_discipline_key
|
||
FROM ins_tab_discipline d, res_ruimte rr, res_ruimte_opstelling ro
|
||
WHERE d.ins_discipline_key = rr.res_discipline_key
|
||
AND rr.res_ruimte_key = ro.res_ruimte_key
|
||
AND ro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key))))
|
||
kostensoort,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
k.prs_kostenplaats_extern,
|
||
a.prs_afdeling_key,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
(SELECT rg.alg_regio_omschrijving
|
||
FROM alg_regio rg,
|
||
alg_district d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE rg.alg_regio_key = d.alg_regio_key
|
||
AND d.alg_district_key = l.alg_district_key
|
||
AND l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT d.alg_district_omschrijving
|
||
FROM alg_district d,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE d.alg_district_key = l.alg_district_key
|
||
AND l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT l.alg_locatie_key
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT l.alg_locatie_code
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT l.alg_locatie_omschrijving
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT l.alg_locatie_plaats
|
||
FROM alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT g.alg_gebouw_code
|
||
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
|
||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
(SELECT v.alg_verdieping_code
|
||
FROM alg_verdieping v, alg_ruimte r
|
||
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
||
r2a.ruimte_nr,
|
||
r2a.opstelling,
|
||
r2a.capaciteit,
|
||
rrr.res_rsv_ruimte_noshow,
|
||
COALESCE ((SELECT fac_profiel_limiet
|
||
FROM fac_profiel
|
||
WHERE fac_profiel_key = ph.fac_profiel_key), 0),
|
||
ph.prs_perslid_nr,
|
||
COALESCE (
|
||
voorz.ins_discipline_key,
|
||
(SELECT d.ins_discipline_key
|
||
FROM ins_tab_discipline d, res_ruimte rr, res_ruimte_opstelling ro
|
||
WHERE d.ins_discipline_key = rr.res_discipline_key
|
||
AND rr.res_ruimte_key = ro.res_ruimte_key
|
||
AND ro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key)),
|
||
(SELECT d.ins_discipline_key
|
||
FROM ins_tab_discipline d, res_ruimte rr, res_ruimte_opstelling ro
|
||
WHERE d.ins_discipline_key = rr.res_discipline_key
|
||
AND rr.res_ruimte_key = ro.res_ruimte_key
|
||
AND ro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key),
|
||
(SELECT d.ins_discipline_omschrijving
|
||
FROM ins_tab_discipline d, res_ruimte rr, res_ruimte_opstelling ro
|
||
WHERE d.ins_discipline_key = rr.res_discipline_key
|
||
AND rr.res_ruimte_key = ro.res_ruimte_key
|
||
AND ro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key),
|
||
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
|
||
rrr.res_rsv_ruimte_bezoekers,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
COALESCE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
|
||
(SELECT res_status_fo_omschrijving
|
||
FROM res_status_fo
|
||
WHERE res_status_fo_key = rrr.res_status_fo_key),
|
||
(SELECT res_status_bo_omschrijving
|
||
FROM res_status_bo
|
||
WHERE res_status_bo_key = rrr.res_status_bo_key),
|
||
ra.res_activiteit_omschrijving,
|
||
rsa.res_srtactiviteit_key,
|
||
rsa.res_srtactiviteit_omschrijving,
|
||
voorz.ins_discipline_key,
|
||
voorz.vtype,
|
||
voorz.catalogus,
|
||
(SELECT prs_bedrijf_naam
|
||
FROM res_disc_params rdp, prs_bedrijf b
|
||
WHERE rdp.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND rdp.res_ins_discipline_key = voorz.ins_discipline_key),
|
||
voorz.product_key,
|
||
voorz.product,
|
||
voorz.totaalprijs,
|
||
TO_CHAR (voorz.van, 'hh24:mi'),
|
||
TO_CHAR (voorz.tot, 'hh24:mi'),
|
||
voorz.aantal,
|
||
voorz.prijs,
|
||
COALESCE (pc.prs_perslid_telefoonnr, pc.prs_perslid_mobiel) contact_tel,
|
||
COALESCE (ph.prs_perslid_telefoonnr, ph.prs_perslid_mobiel) host_tel,
|
||
rrr.res_rsv_ruimte_opmerking
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_reservering res,
|
||
( SELECT rrr.res_rsv_ruimte_key,
|
||
MAX (o.res_opstelling_omschrijving) opstelling,
|
||
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
|
||
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
||
MAX (rr.res_ruimte_nr) ruimte_nr
|
||
FROM res_rsv_ruimte rrr,
|
||
res_ruimte_opstelling ro,
|
||
res_opstelling o,
|
||
res_ruimte rr,
|
||
res_alg_ruimte ra
|
||
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_opstelling_key = o.res_opstelling_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rr.res_ruimte_key = ra.res_ruimte_key
|
||
GROUP BY rrr.res_rsv_ruimte_key
|
||
UNION ALL
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
'' opstelling,
|
||
TO_NUMBER (NULL) capaciteit,
|
||
rrr.alg_ruimte_key,
|
||
r.alg_ruimte_nr
|
||
FROM res_rsv_ruimte rrr, alg_ruimte r
|
||
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rrr.alg_ruimte_key IS NOT NULL
|
||
AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
|
||
(SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
|
||
-rd.res_deel_key product_key,
|
||
rd.res_deel_omschrijving product,
|
||
DECODE (rd.res_deel_prijs_vast,
|
||
1, COALESCE (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
|
||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 * COALESCE (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
|
||
totaalprijs,
|
||
rrd.res_rsv_deel_van van,
|
||
rrd.res_rsv_deel_tot tot,
|
||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
|
||
COALESCE (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
||
prijs,
|
||
c.ins_discipline_key ins_discipline_key,
|
||
c.ins_discipline_omschrijving catalogus,
|
||
'object' vtype
|
||
FROM res_v_aanwezigrsv_deel rrd,
|
||
res_deel rd,
|
||
ins_deel d,
|
||
ins_tab_discipline c
|
||
WHERE rrd.res_rsv_ruimte_key IS NOT NULL
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_ins_deel_key = d.ins_deel_key
|
||
AND rd.res_discipline_key = c.ins_discipline_key
|
||
UNION ALL
|
||
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
|
||
ra.res_artikel_key product_key,
|
||
ra.res_artikel_omschrijving product,
|
||
COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * res_artikel_prijs)
|
||
totaalprijs,
|
||
rra.res_rsv_artikel_levering van,
|
||
NULL tot,
|
||
rra.res_rsv_artikel_aantal aantal,
|
||
COALESCE (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal, res_artikel_prijs)
|
||
prijs,
|
||
c.ins_discipline_key ins_discipline_key,
|
||
c.ins_discipline_omschrijving catalogus,
|
||
'consumable' vtype
|
||
FROM res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
ins_tab_discipline c
|
||
WHERE rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = c.ins_discipline_key) voorz,
|
||
res_activiteit ra,
|
||
res_srtactiviteit rsa,
|
||
prs_perslid pc,
|
||
prs_perslid ph,
|
||
prs_afdeling a,
|
||
prs_kostenplaats k
|
||
WHERE rrr.res_reservering_key = res.res_reservering_key
|
||
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
|
||
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
|
||
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
||
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
|
||
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key
|
||
AND ph.prs_afdeling_key = a.prs_afdeling_key
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
|
||
AND rrr.res_rsv_ruimte_van >= TRUNC (ADD_MONTHS (SYSDATE, -1), 'mm');
|
||
|
||
-- 1421 = Werkplekken
|
||
-- 1501 = Werkplekken Speciaal
|
||
CREATE OR REPLACE VIEW kfsg_v_thema_deel_res_datum
|
||
(
|
||
fclt_f_datum,
|
||
ins_deel_key,
|
||
min_van,
|
||
max_tot,
|
||
waarde1,
|
||
waarde,
|
||
waarde3
|
||
)
|
||
AS
|
||
WITH datums AS ( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 61) -- KFSG#68919: Op 61 dagen vooruit!
|
||
SELECT datum fclt_f_datum,
|
||
ins_deel_key,
|
||
MIN (res_rsv_deel_van) min_van,
|
||
MAX (res_rsv_deel_tot) max_tot,
|
||
CASE
|
||
WHEN MAX (res_rsv_deel_tot) IS NULL -- Hele dag beschikbaar
|
||
THEN
|
||
DECODE (res_discipline_key, 1421, 0, 4)
|
||
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- Ochtend, alleen 1421
|
||
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- Middag, alleen 1421
|
||
ELSE
|
||
3 -- Hele dag bezet
|
||
END
|
||
waarde1,
|
||
CASE
|
||
WHEN MAX (res_rsv_deel_tot) IS NULL -- Hele dag beschikbaar
|
||
THEN
|
||
DECODE (res_discipline_key, 1421, 0, 4)
|
||
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- Ochtend, alleen 1421
|
||
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- Middag, alleen 1421
|
||
ELSE
|
||
3 -- Hele dag bezet
|
||
END
|
||
waarde,
|
||
COUNT (res_rsv_deel_tot) -- Aantal reserveringen deze dag
|
||
waarde3
|
||
FROM (SELECT datums.datum,
|
||
r.res_ins_deel_key ins_deel_key,
|
||
blokkerend.res_rsv_deel_van,
|
||
blokkerend.res_rsv_deel_tot,
|
||
r.res_discipline_key
|
||
FROM datums,
|
||
res_v_aanwezigdeel r,
|
||
(SELECT datum, rrd.res_deel_key, rrd.res_rsv_deel_van, rrd.res_rsv_deel_tot
|
||
FROM datums, res_v_aanwezigrsv_deel rrd
|
||
WHERE res_rsv_deel_van > TRUNC(SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
|
||
AND datum + 1 >= res_rsv_deel_van
|
||
AND datum < res_rsv_deel_tot)
|
||
blokkerend, -- Vandaag en nog niet afgelopen
|
||
ins_deel d
|
||
WHERE (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > datums.datum)
|
||
AND r.res_deel_key = blokkerend.res_deel_key(+)
|
||
AND datums.datum = blokkerend.datum(+)
|
||
AND r.res_ins_deel_key = d.ins_deel_key)
|
||
GROUP BY datum, ins_deel_key, res_discipline_key
|
||
ORDER BY datum, ins_deel_key;
|
||
|
||
-- 1421 = Werkplekken
|
||
-- 1501 = Werkplekken Speciaal
|
||
-- 1441 = Werkplekken (nog onzichtbaar)
|
||
-- 130 = Werkplek reservering
|
||
CREATE OR REPLACE VIEW kfsg_v_rap_werkplekken
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
res_reservering_key || '/' || res_rsv_ruimte_volgnr nummer,
|
||
res_rsv_ruimte_van datum_van,
|
||
res_rsv_ruimte_tot datum_tot,
|
||
pf.prs_perslid_naam_full gastheer,
|
||
aog.alg_locatie_key fclt_3d_locatie_key,
|
||
l.alg_locatie_omschrijving locatie,
|
||
aog.alg_gebouw_code gebouw,
|
||
aog.alg_verdieping_code verdieping,
|
||
aog.alg_ruimte_nr ruimte,
|
||
ra.res_activiteit_omschrijving activiteit,
|
||
rdsc.ins_discipline_omschrijving catalogus,
|
||
rd.res_deel_omschrijving voorziening_product,
|
||
res_rsv_deel_van voorziening_van,
|
||
res_rsv_deel_tot voorziening_tot,
|
||
a.prs_afdeling_omschrijving afdeling,
|
||
p.prs_perslid_nr personeelsnr,
|
||
p.prs_perslid_email email
|
||
FROM res_rsv_ruimte rrr,
|
||
res_rsv_deel rrd,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pf,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
alg_locatie l,
|
||
res_activiteit ra,
|
||
res_deel rd,
|
||
res_discipline rdsc
|
||
WHERE rrr.res_activiteit_key = 130
|
||
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
|
||
AND p.prs_perslid_key = res_rsv_ruimte_host_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND aog.alg_ruimte_key = rrr.alg_ruimte_key
|
||
AND aog.alg_locatie_key = l.alg_locatie_key
|
||
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_discipline_key = rdsc.ins_discipline_key
|
||
AND rdsc.ins_discipline_key IN (1421, 1441, 1501)
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL;
|
||
|
||
|
||
CREATE OR REPLACE VIEW kfsg_v_thema_ruimte_res_datum
|
||
(
|
||
fclt_f_datum,
|
||
alg_ruimte_key,
|
||
res_ruimte_key,
|
||
min_van,
|
||
max_tot,
|
||
waarde1,
|
||
waarde,
|
||
waarde3
|
||
)
|
||
AS
|
||
WITH
|
||
datums
|
||
AS
|
||
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 61) -- KFSG#68919: Op 61 dagen vooruit!
|
||
SELECT datum fclt_f_datum,
|
||
alg_ruimte_key,
|
||
res_ruimte_key,
|
||
MIN (res_rsv_ruimte_van) min_van,
|
||
MAX (res_rsv_ruimte_tot) max_tot,
|
||
CASE
|
||
WHEN MAX (res_rsv_ruimte_tot) IS NULL
|
||
THEN
|
||
res_ruimte_nr
|
||
ELSE
|
||
CASE WHEN res_status_fo_key=3 -- geblokkeerd
|
||
THEN
|
||
'geblokkeerd'
|
||
ELSE
|
||
'bezet'
|
||
END
|
||
END waarde1,
|
||
CASE
|
||
WHEN MAX (res_rsv_ruimte_tot) IS NULL
|
||
THEN
|
||
res_ruimte_nr
|
||
ELSE
|
||
CASE WHEN res_status_fo_key=3 -- geblokkeerd
|
||
THEN
|
||
'geblokkeerd'
|
||
ELSE
|
||
'bezet'
|
||
END
|
||
END waarde,
|
||
COUNT (res_rsv_ruimte_tot) -- aantal reservering deze dag
|
||
waarde3
|
||
FROM (SELECT datums.datum,
|
||
rr.res_ruimte_key,
|
||
rar.alg_ruimte_key alg_ruimte_key,
|
||
res_ruimte_nr,
|
||
res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
blokkerend.res_status_fo_key
|
||
FROM res_v_aanwezigruimte rr,
|
||
res_alg_ruimte rar,
|
||
datums,
|
||
(SELECT datum,
|
||
res_ruimte_key,
|
||
res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
res_status_fo_key
|
||
FROM datums,
|
||
res_rsv_ruimte rrr,
|
||
res_ruimte_opstelling rro
|
||
WHERE res_rsv_ruimte_van > TRUNC (SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rrr.res_ruimte_opstel_key =
|
||
rro.res_ruimte_opstel_key
|
||
AND datum+1 >= res_rsv_ruimte_van
|
||
AND datum < res_rsv_ruimte_tot)
|
||
blokkerend -- vandaag en nog niet afgelopen
|
||
WHERE rr.res_ruimte_key = blokkerend.res_ruimte_key(+)
|
||
AND rr.res_ruimte_key = rar.res_ruimte_key
|
||
AND rar.res_alg_ruimte_verwijder is null
|
||
AND datums.datum = blokkerend.datum(+)
|
||
AND ( rr.res_ruimte_vervaldatum IS NULL
|
||
OR rr.res_ruimte_vervaldatum > datums.datum))
|
||
GROUP BY datum,
|
||
alg_ruimte_key,
|
||
res_ruimte_key,
|
||
res_ruimte_nr,
|
||
res_status_fo_key;
|
||
|
||
-- KFSG#70107: BESOTV-notificatie, die standaard (bewust) staat uitgeschakeld,
|
||
-- alsnog versturen als CUST04-notificatie voor sommige catalogi.
|
||
-- Op speciaal verzoek hard-coded (ipv. bes_disc_params_noti_dagen)!
|
||
CREATE OR REPLACE VIEW KFSG_V_NOTI_BESOTV
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XSENDER,
|
||
XEMAIL,
|
||
XMOBILE,
|
||
ATTACHMENTS
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
b.prs_perslid_key,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', TO_CHAR (b.bes_bestelling_key)),
|
||
b.bes_bestelling_key,
|
||
NULL xkey,
|
||
NULL xsender,
|
||
NULL xemail,
|
||
NULL xmobile,
|
||
NULL attachments
|
||
FROM fac_tracking t,
|
||
bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
--bes_disc_params dp,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 9 -- BESOTV
|
||
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 = dp.bes_ins_discipline_key
|
||
--AND dp.bes_disc_params_noti_dagen = 1
|
||
AND sg.ins_discipline_key IN (1121, 1122) -- Reproductie=Xerox/Kantoorartikelen=Staples
|
||
AND sn.fac_srtnotificatie_code = 'CUST04'
|
||
AND nj.fac_notificatie_job_view = 'KFSG_V_NOTI_BESOTV'
|
||
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun;
|
||
|
||
-- KFSG#71873: Uurlijkse CUST05-notificatie van de reguliere RES-bon naar:
|
||
-- - Bastiaan.Brandenburg@schiphol.nl na boeking uit catalogus met key=218 (GPG)
|
||
-- - FSP@schiphol.nl na boeking uit catalogus met key=1781 (Yask Facility Management)
|
||
CREATE OR REPLACE VIEW KFSG_V_NOTI_RESOBJ
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XSENDER,
|
||
XEMAIL,
|
||
XMOBILE,
|
||
ATTACHMENTS
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
sn.fac_srtnotificatie_oms,
|
||
'##KEY##',
|
||
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr)),
|
||
'##DESC##',
|
||
rrr.res_rsv_ruimte_omschrijving),
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_key,
|
||
NULL xsender,
|
||
DECODE (rd.res_discipline_key, 218, 'Bastiaan.Brandenburg@schiphol.nl', 'FSP@schiphol.nl') xemail,
|
||
NULL xmobile,
|
||
NULL attachments
|
||
FROM fac_tracking t,
|
||
res_v_aanwezigrsv_ruimte rrr,
|
||
res_v_aanwezigrsv_deel rrd,
|
||
res_v_aanwezigdeel rd,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 88 -- RESNEW
|
||
AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
||
--AND rrr.res_activiteit_key = -1
|
||
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_discipline_key IN (218, 1781) -- GPG/Yask Facility Management
|
||
AND sn.fac_srtnotificatie_code = 'CUST05'
|
||
AND nj.fac_notificatie_job_view = 'KFSG_V_NOTI_RESOBJ'
|
||
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun;
|
||
|
||
-- KFSG#73183: Uurlijkse CUST06-notificatie van de reguliere Offerteaanvraag-
|
||
-- opdrachtbon naar:
|
||
-- - Bastiaan.Brandenburg@schiphol.nl+Cato.Roodenburg@schiphol.nl
|
||
-- bij afwijzen Offerteaanvraag uitgegeven aan GPG.
|
||
-- - Alle contactpersonen met account bij afwijzen Offerteaanvraag
|
||
-- uitgegeven aan andere Uitvoerende.
|
||
-- NB. Voorkennis: ORDONO-notificatie staat uitgeschakeld.
|
||
CREATE OR REPLACE VIEW KFSG_V_NOTI_ORDONO
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XSENDER,
|
||
XEMAIL,
|
||
XMOBILE,
|
||
ATTACHMENTS
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##OPDRKEY##', TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)),
|
||
o.mld_opdr_key,
|
||
NULL xkey,
|
||
NULL xsender,
|
||
'Bastiaan.Brandenburg@schiphol.nl;Patricia.Nijholt@schiphol.nl' xemail, -- KFSG#77777: Voortaan naar Bastiaan en Patricia!
|
||
NULL xmobile,
|
||
NULL attachments
|
||
FROM fac_tracking t,
|
||
mld_opdr o,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 81 -- ORDONO
|
||
AND t.fac_tracking_refkey = o.mld_opdr_key
|
||
AND o.mld_typeopdr_key = 220 -- Offerteaanvraag
|
||
AND o.mld_uitvoerende_keys = 34221 -- GPG
|
||
AND sn.fac_srtnotificatie_code = 'CUST06'
|
||
AND nj.fac_notificatie_job_view = 'KFSG_V_NOTI_ORDONO'
|
||
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun
|
||
UNION ALL
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##OPDRKEY##', TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)),
|
||
o.mld_opdr_key,
|
||
NULL xkey,
|
||
NULL xsender,
|
||
p.prs_perslid_email xemail,
|
||
NULL xmobile,
|
||
NULL attachments
|
||
FROM fac_tracking t,
|
||
mld_opdr o,
|
||
prs_bedrijf b,
|
||
prs_contactpersoon cp,
|
||
prs_v_aanwezigperslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 81 -- ORDONO
|
||
AND t.fac_tracking_refkey = o.mld_opdr_key
|
||
AND o.mld_typeopdr_key = 220 -- Offerteaanvraag
|
||
AND o.mld_uitvoerende_keys <> 34221 -- Anders dan GPG
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
|
||
AND cp.prs_perslid_key = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST06'
|
||
AND nj.fac_notificatie_job_view = 'KFSG_V_NOTI_ORDONO'
|
||
AND t.fac_tracking_datum > nj.fac_notificatie_job_lastrun;
|
||
|
||
-- KFSG#72652: Door te belasten opdrachten, tevens via CUST07-notificatiejob
|
||
-- elk kwartaal genotificeerd naar Lennart.ter.Beek@schiphol.nl.
|
||
CREATE OR REPLACE VIEW KFSG_V_RAP_OPDR_DOORBEL
|
||
(
|
||
KWARTAAL,
|
||
MAAND,
|
||
PRS_BEDRIJF_KEY,
|
||
PRS_BEDRIJF_NAAM,
|
||
MLD_OPDR_KEY,
|
||
OPDRACHTNR,
|
||
OPDRACHTTYPE,
|
||
OPDRACHTOMSCHR,
|
||
OPDRACHTSTATUS,
|
||
KOSTENPLAATSCODE,
|
||
KOSTENPLAATSOMSCHR,
|
||
KOSTEN
|
||
)
|
||
AS
|
||
SELECT DECODE (TO_CHAR (ko.mld_kenmerkopdr_aanmaak, 'yyyy-q'), TO_CHAR (SYSDATE, 'yyyy-q'), 'Lopend', TO_CHAR (ko.mld_kenmerkopdr_aanmaak, 'yyyy-q')) kwartaal,
|
||
TO_CHAR (ko.mld_kenmerkopdr_aanmaak, 'yyyy-mm') maand,
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
o.mld_opdr_key,
|
||
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdrachtnr,
|
||
ot.mld_typeopdr_omschrijving opdrachttype,
|
||
o.mld_opdr_omschrijving opdrachtomschr,
|
||
os.mld_statusopdr_omschrijving opdrachtstatus,
|
||
kp.prs_kostenplaats_nr kostenplaatcode,
|
||
kp.prs_kostenplaats_omschrijving kostenplaatomschr,
|
||
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM mld_opdr o,
|
||
mld_v_aanwezigkenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
prs_bedrijf b,
|
||
mld_typeopdr ot,
|
||
mld_statusopdr os,
|
||
prs_kostenplaats kp
|
||
WHERE o.mld_opdr_key = ko.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1821 -- Intern doorbelasten
|
||
AND ko.mld_kenmerkopdr_waarde = '1' -- Aangevinkt
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
--AND os.mld_statusopdr_key IN (7, 9) -- Verwerkt/Afgerond
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
UNION ALL
|
||
SELECT DECODE (TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-q'), TO_CHAR (SYSDATE, 'yyyy-q'), 'Lopend', TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-q')) kwartaal,
|
||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') maand,
|
||
NULL prs_bedrijf_key,
|
||
'Beveiliger inzet' prs_bedrijf_naam,
|
||
rrr.res_rsv_ruimte_key,
|
||
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) opdrachtnr,
|
||
NULL opdrachttype,
|
||
rrr.res_rsv_ruimte_omschrijving opdrachtomschr,
|
||
NULL opdrachtstatus,
|
||
kp.prs_kostenplaats_nr kostenplaatcode,
|
||
kp.prs_kostenplaats_omschrijving kostenplaatomschr,
|
||
res.getartikelprijs (rra.res_rsv_artikel_key) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
prs_kostenplaats kp
|
||
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_dirtlevel = 0
|
||
AND rra.res_artikel_key = 2221 -- Beveiliger inzet vanaf 18:30 uur
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+);
|
||
|
||
CREATE OR REPLACE VIEW KFSG_V_NOTI_OPDR_DOORBEL
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XSENDER,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##KWARTAAL##', TO_CHAR (SYSDATE, 'yyyy-q')),
|
||
r.fac_usrrap_key,
|
||
NULL,
|
||
NULL,
|
||
ud.fac_usrdata_omschr,
|
||
NULL
|
||
FROM fac_usrrap r,
|
||
fac_srtnotificatie sn,
|
||
fac_v_aanwezigusrdata ud
|
||
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Op de ochtend na 10e van de maand!
|
||
AND TO_CHAR (SYSDATE, 'mm') IN ('01', '04', '07', '10') -- Kwartaal!
|
||
AND UPPER (r.fac_usrrap_view_name) = 'KFSG_V_RAP_OPDR_DOORBEL'
|
||
AND r.fac_usrrap_functie = 1 -- Via stylesheet
|
||
AND sn.fac_srtnotificatie_code = 'CUST07'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_view_name) = 'KFSG_V_RAP_OPDR_DOORBEL'
|
||
AND fac_usrrap_functie = 1 -- Via stylesheet
|
||
AND fac_usrrap_key > r.fac_usrrap_key)
|
||
AND ud.fac_usrtab_key = 381 -- KFSG#76243:CUST07 ontvanger
|
||
;
|
||
|
||
-- KFSG#76507: RES-kosten per kostenplaats/halfjaar uit de volgende catalogi
|
||
-- (rap.+notificatiejob):
|
||
-- - 821 - Gebak / taart
|
||
-- - 822 - Borrels & Receptie
|
||
-- - 826 - Geschenken
|
||
-- - 828 - Lunch
|
||
-- - 861 - Vergaderservice
|
||
-- - 1242 - Ontbijt
|
||
-- - 1261 - Overige catering
|
||
-- - 1961 - Warme lunchaanvulling/borrelhapjes SHG
|
||
-- - 1981 - Borrelkar
|
||
-- - 2022 - Catering Brandweer Post Sloten
|
||
-- - 2101 - Inzet extern
|
||
-- - 2161 - Dranken
|
||
CREATE OR REPLACE VIEW KFSG_V_RAP_RES_KOSTEN_PHJ
|
||
AS
|
||
WITH halfjaar
|
||
AS (SELECT DECODE (TO_CHAR (ADD_MONTHS (SYSDATE, 6), 'yyyy'), TO_CHAR (SYSDATE, 'yyyy'), TRUNC (SYSDATE, 'yyyy'), ADD_MONTHS (TRUNC (SYSDATE, 'yyyy'), 6))
|
||
begindatum
|
||
FROM DUAL)
|
||
SELECT x.halfjaar,
|
||
x.prs_kostenplaats_nr,
|
||
SUM (COALESCE (x.verw_prijs, x.prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM (SELECT DECODE (
|
||
SIGN (rra.res_rsv_artikel_levering - halfjaar.begindatum),
|
||
1, 'Lopend',
|
||
TO_CHAR (rra.res_rsv_artikel_levering, 'yyyy') || DECODE (TO_CHAR (rra.res_rsv_artikel_levering, 'q'), '1', '-1', '2', '-1', '-2'))
|
||
halfjaar,
|
||
kp.prs_kostenplaats_nr,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
--res_ruimte_opstelling rro,
|
||
--( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
-- FROM res_alg_ruimte
|
||
-- WHERE res_alg_ruimte_verwijder IS NULL
|
||
-- GROUP BY res_ruimte_key) rar1,
|
||
--( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
-- FROM res_alg_ruimte
|
||
-- WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
-- GROUP BY res_ruimte_key) rar2,
|
||
--alg_v_allonroerendgoed aog,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
--res_disc_params dp,
|
||
--prs_bedrijf b,
|
||
prs_kostenplaats kp,
|
||
halfjaar
|
||
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
||
--AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
--AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
--AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
--AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_dirtlevel = 0
|
||
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
|
||
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (SYSDATE + 1) -- Afgelopen jaar plus dit jaar t/m vandaag!
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key IN (821, 822, 826, 828, 861, 1242, 1261, 1961, 1981, 2022, 2101, 2161, 2261)
|
||
--AND ra.res_discipline_key = dp.res_ins_discipline_key(+)
|
||
--AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+)
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
GROUP BY x.halfjaar, x.prs_kostenplaats_nr;
|
||
/*
|
||
-- Kopie van bovenstaande om details per reservering in te bouwen, maar vervallen?
|
||
CREATE OR REPLACE VIEW KFSG_V_RAP_RES_KOSTEN_PHJ2
|
||
AS
|
||
WITH halfjaar
|
||
AS (SELECT DECODE (TO_CHAR (ADD_MONTHS (SYSDATE, 6), 'yyyy'), TO_CHAR (SYSDATE, 'yyyy'), TRUNC (SYSDATE, 'yyyy'), ADD_MONTHS (TRUNC (SYSDATE, 'yyyy'), 6))
|
||
begindatum
|
||
FROM DUAL)
|
||
SELECT x.halfjaar,
|
||
x.prs_kostenplaats_nr,
|
||
SUM (COALESCE (x.verw_prijs, x.prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM (SELECT DECODE (
|
||
SIGN (rra.res_rsv_artikel_levering - halfjaar.begindatum),
|
||
1, 'Lopend',
|
||
TO_CHAR (rra.res_rsv_artikel_levering, 'yyyy') || DECODE (TO_CHAR (rra.res_rsv_artikel_levering, 'q'), '1', '-1', '2', '-1', '-2'))
|
||
halfjaar,
|
||
kp.prs_kostenplaats_nr,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
alg_v_allonroerendgoed aog,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
--res_disc_params dp,
|
||
--prs_bedrijf b,
|
||
prs_kostenplaats kp,
|
||
halfjaar
|
||
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_dirtlevel = 0
|
||
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
|
||
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy') AND TRUNC (SYSDATE + 1) -- Afgelopen jaar plus dit jaar t/m vandaag!
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key IN (821, 822, 826, 828, 861, 1242, 1261, 1961, 1981, 2022, 2101, 2161)
|
||
--AND ra.res_discipline_key = dp.res_ins_discipline_key(+)
|
||
--AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+)
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x;
|
||
*/
|
||
/*
|
||
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy') || DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'q'), '1', '-1', '2', '-1', '-2') halfjaar,
|
||
x.prs_kostenplaats_nr,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) res_id,
|
||
SUM (COALESCE (x.verw_prijs, x.prijs, 0))
|
||
FROM (SELECT rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rrr.prs_kostenplaats_key,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
rra.res_rsv_artikel_levering,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs,
|
||
rra.res_rsv_artikel_btw
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
prs_kostenplaats kp,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
alg_v_allonroerendgoed aog,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
res_disc_params dp,
|
||
prs_bedrijf b
|
||
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_dirtlevel = 0
|
||
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
|
||
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -0), 'yyyy') AND TRUNC (SYSDATE + 1) -- Afgelopen jaar plus dit jaar t/m vandaag!
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
--AND ra.res_discipline_key IN (821, 822, 826, 828, 861, 1242, 1261, 1961, 1981, 2022, 2101, 2161)
|
||
AND ra.res_discipline_key = dp.res_ins_discipline_key(+)
|
||
AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+)) x
|
||
WHERE x.prs_kostenplaats_nr = 'K0013650'
|
||
GROUP BY TO_CHAR (x.res_rsv_artikel_levering, 'yyyy') || DECODE (TO_CHAR (x.res_rsv_artikel_levering, 'q'), '1', '-1', '2', '-1', '-2'),
|
||
x.prs_kostenplaats_nr,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr)
|
||
ORDER BY 3;
|
||
|
||
SELECT TO_CHAR (x.van_tijd, 'yyyy') || DECODE (TO_CHAR (x.van_tijd, 'q'), '1', '-1', '2', '-1', '-2') halfjaar,
|
||
kp.prs_kostenplaats_nr,
|
||
SUM (COALESCE (x.kosten, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
|
||
FROM kfsg_v_rap_frozen_fact_res x, res_rsv_ruimte rrr, prs_kostenplaats kp
|
||
WHERE x.van_tijd BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -0), 'yyyy') AND TRUNC (SYSDATE + 1) -- Afgelopen jaar plus dit jaar t/m vandaag!
|
||
AND x.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
GROUP BY TO_CHAR (x.van_tijd, 'yyyy') || DECODE (TO_CHAR (x.van_tijd, 'q'), '1', '-1', '2', '-1', '-2'),
|
||
kp.prs_kostenplaats_nr;
|
||
|
||
SELECT TO_CHAR (x.van_tijd, 'yyyy') || DECODE (TO_CHAR (x.van_tijd, 'q'), '1', '-1', '2', '-1', '-2') halfjaar,
|
||
kp.prs_kostenplaats_nr,
|
||
x.res_id,
|
||
COALESCE (x.kosten, 0) kosten
|
||
FROM kfsg_v_rap_frozen_fact_res x, res_rsv_ruimte rrr, prs_kostenplaats kp
|
||
WHERE x.van_tijd BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -0), 'yyyy') AND TRUNC (SYSDATE + 1) -- Afgelopen jaar plus dit jaar t/m vandaag!
|
||
AND x.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND kp.prs_kostenplaats_nr = 'K0013650'
|
||
ORDER BY 3;
|
||
*/
|
||
CREATE OR REPLACE VIEW KFSG_V_NOTI_RES_KOSTEN_PHJ
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XSENDER,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##HALFJAAR##', TO_CHAR (ADD_MONTHS (SYSDATE, -6), 'yyyy') || DECODE (TO_CHAR (ADD_MONTHS (SYSDATE, -6), 'q'), '1', '-1', '2', '-1', '-2')),
|
||
r.fac_usrrap_key,
|
||
NULL,
|
||
NULL,
|
||
'FSP@schiphol.nl',
|
||
NULL
|
||
FROM fac_usrrap r,
|
||
fac_srtnotificatie sn
|
||
WHERE TO_CHAR (SYSDATE, 'dd-mm') IN ('01-01', '01-07') -- Op 1-1 en 1-7!
|
||
AND UPPER (r.fac_usrrap_view_name) = 'KFSG_V_RAP_RES_KOSTEN_PHJ'
|
||
AND r.fac_usrrap_functie = 1 -- Via stylesheet
|
||
AND sn.fac_srtnotificatie_code = 'CUST08'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_view_name) = 'KFSG_V_RAP_RES_KOSTEN_PHJ'
|
||
AND fac_usrrap_functie = 1 -- Via stylesheet
|
||
AND fac_usrrap_key > r.fac_usrrap_key)
|
||
;
|
||
|
||
-- KFSG#77433: Artikelen wel-niet gefactureerd per maand.
|
||
/* Zijn er ooit verbruiksartikelen onder verwijderde reserveringen gefactureerd?
|
||
SELECT fin_verkoopfactuur_omschr
|
||
FROM fin_verkoopfactuur
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM res_rsv_ruimte rrr, res_rsv_artikel rra
|
||
WHERE rrr.res_rsv_ruimte_verwijder IS NOT NULL
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_key = fin_verkoopfactuur_refkey);
|
||
*/
|
||
CREATE OR REPLACE VIEW KFSG_V_RAP_RES_ART_PM
|
||
AS
|
||
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy-mm') maand,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) res_id,
|
||
x.res_rsv_ruimte_van van,
|
||
x.res_rsv_ruimte_tot tot,
|
||
x.res_rsv_artikel_levering levertijd,
|
||
x.plaatsaanduiding,
|
||
x.ins_discipline_omschrijving catalogus,
|
||
x.prs_bedrijf_naam leverancier,
|
||
x.res_artikel_omschrijving,
|
||
x.res_artikel_eenheid,
|
||
x.res_artikel_volgnummer,
|
||
x.res_rsv_artikel_aantal aantal,
|
||
--res.getartikelprijs (x.res_rsv_artikel_key) kosten,
|
||
--COALESCE (verw_prijs, prijs, 0) kosten,
|
||
COALESCE (vf.fin_verkoopfactuur_bedrag, verw_prijs, prijs, 0) kosten,
|
||
COALESCE (x.res_rsv_artikel_btw, x.res_artikel_btw) btw,
|
||
DECODE (vf.fin_verkoopfactuur_key, NULL, 'Nee', 'Ja') gefactureerd,
|
||
x.res_status_bo_omschrijving status,
|
||
x.res_rsv_ruimte_key,
|
||
x.prs_perslid_naam_full aanvrager,
|
||
x.prs_afdeling_naam || '-' || x.prs_afdeling_omschrijving afdeling,
|
||
x.afd_kostenplaats_nr,
|
||
x.afd_kostenplaats_omschrijving,
|
||
x.res_kostenplaats_nr,
|
||
x.res_kostenplaats_omschrijving
|
||
FROM (SELECT rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_key,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rra.res_rsv_artikel_levering,
|
||
COALESCE (rr.res_ruimte_nr, pa.alg_plaatsaanduiding) plaatsaanduiding,
|
||
rd.ins_discipline_omschrijving,
|
||
b.prs_bedrijf_naam,
|
||
rra.res_artikel_omschrijving,
|
||
rra.res_artikel_eenheid,
|
||
rra.res_artikel_volgnummer,
|
||
rra.res_rsv_artikel_aantal,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
|
||
rra.res_rsv_artikel_btw,
|
||
rra.res_artikel_btw,
|
||
rs.res_status_bo_omschrijving,
|
||
pf.prs_perslid_naam_full,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
kpa.prs_kostenplaats_nr afd_kostenplaats_nr,
|
||
kpa.prs_kostenplaats_omschrijving afd_kostenplaats_omschrijving,
|
||
kpr.prs_kostenplaats_nr res_kostenplaats_nr,
|
||
kpr.prs_kostenplaats_omschrijving res_kostenplaats_omschrijving
|
||
FROM res_rsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
--alg_v_allonroerendgoed aog,
|
||
(SELECT *
|
||
FROM alg_v_plaatsaanduiding_all
|
||
WHERE alg_onroerendgoed_type = 'R') pa,
|
||
(SELECT rra.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_key,
|
||
rra.res_rsv_artikel_levering,
|
||
ra.res_discipline_key,
|
||
ra.res_artikel_omschrijving,
|
||
ra.res_artikel_eenheid,
|
||
ra.res_artikel_volgnummer,
|
||
rra.res_rsv_artikel_aantal,
|
||
rra.res_rsv_artikel_prijs,
|
||
ra.res_artikel_prijs,
|
||
rra.res_status_bo_key,
|
||
rra.res_rsv_artikel_btw,
|
||
ra.res_artikel_btw
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
|
||
WHERE rra.res_rsv_artikel_dirtlevel = 0
|
||
AND rra.res_rsv_artikel_levering > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND rra.res_rsv_artikel_levering < TRUNC (ADD_MONTHS (SYSDATE, 1), 'mm')
|
||
AND rra.res_artikel_key = ra.res_artikel_key) rra,
|
||
res_v_aanwezigdiscipline rd,
|
||
res_disc_params dp,
|
||
prs_bedrijf b,
|
||
res_status_bo rs,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_afdeling a,
|
||
prs_kostenplaats kpa,
|
||
prs_kostenplaats kpr
|
||
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
||
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
||
--AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
||
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = pa.alg_onroerendgoed_keys(+)
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_discipline_key = rd.ins_discipline_key
|
||
AND rd.ins_discipline_key = dp.res_ins_discipline_key
|
||
AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+)
|
||
AND rra.res_status_bo_key = rs.res_status_bo_key(+)
|
||
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_kostenplaats_key = kpa.prs_kostenplaats_key(+)
|
||
AND rrr.prs_kostenplaats_key = kpr.prs_kostenplaats_key(+)) x,
|
||
fin_verkoopfactuur vf -- Aanname: Alleen gevuld met gefactureerde res_rsv_artikel!
|
||
WHERE x.res_rsv_artikel_key = vf.fin_verkoopfactuur_refkey(+);
|
||
|
||
------ 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
|