Files
Customer/KFSG/kfsg.sql
Maarten van der Heide bf6270cd6c KFSG#65747 FACT-rap/Toegang tbv. leveranciers
svn path=/Customer/trunk/; revision=51305
2021-05-06 16:44:30 +00:00

4204 lines
186 KiB
MySQL
Raw Blame History

--
-- $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;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE KFSG
AS
PROCEDURE set_werkplek;
PROCEDURE annuleer_werkplek;
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;
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;
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;
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();
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
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 (165, 162, 167)
AND ra.res_discipline_key IN (821, 822, 823, 862, 1242, 1281, 1241) -- KFSG#56898/58379/60004
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
UNION ALL
SELECT NULL sender,
NULL receiver, --Catering1@schiphol.nl
'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 fac_tracking t,
res_rsv_ruimte rrr,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE fac_srtnotificatie_key IN (88, 89) -- resnew, resupd
AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = 142 -- FSP
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'KFSG_V_NOTI_CATERING')
AND t.fac_tracking_datum <
(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%';
-- 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 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)) 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 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 -- Niet gemarkeerd als dispuut!
(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).
-- 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_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,
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 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
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)) 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 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 -- Niet gemarkeerd als dispuut!
(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 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 -- Niet gemarkeerd als dispuut!
(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,
prs_contactpersoon 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,
prs_contactpersoon 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,
prs_contactpersoon 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,
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
(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,
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
(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.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, prs_contactpersoon 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,
prs_contactpersoon 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,
prs_contactpersoon 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,
prs_contactpersoon 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
WHERE v.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
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
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
INTO v_prijs
FROM DUAL;
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 <= 31)
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
THEN
DECODE (res_discipline_key, 1421, 0, 4)
ELSE
3 -- Hele dag bezet
END
waarde1,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL
THEN
DECODE (res_discipline_key, 1421, 0, 4)
--WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- Ochtend
--WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- Middag
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 datum >= TRUNC (rrd.res_rsv_deel_van)
AND datum < TRUNC (rrd.res_rsv_deel_tot) + 1)
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;
------ 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