3388 lines
159 KiB
MySQL
3388 lines
159 KiB
MySQL
-- Script containing customer specific db-configuration for WIBC.
|
|
-- (c) 2012 SG|facilitor bv
|
|
-- $Revision$
|
|
-- $Id$
|
|
--
|
|
-- Support: +31 53 4800700
|
|
set echo on
|
|
spool xwibc.lst
|
|
|
|
/* Formatted on 5-6-2013 15:30:45 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PACKAGE WIBC
|
|
AS
|
|
-- PACKAGES voor de WIBC specifieke ondersteuning
|
|
PROCEDURE freezereserveringen (p_prskey IN NUMBER, p_periode IN NUMBER);
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 5-6-2013 15:30:45 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PACKAGE BODY WIBC
|
|
AS
|
|
PROCEDURE freezereserveringen (p_prskey IN NUMBER, p_periode IN NUMBER)
|
|
AS
|
|
-- Volgende cursors lopen over reserveringen (door personen van bedrijf
|
|
-- waartoe ook 'p_prskey' behoort) die in de voorgaande maand hebben
|
|
-- plaatsgevonden en nog niet zijn gefactuureerd; betreffende ruimte- én
|
|
-- roomservice-reserveringen worden Administratief Verwerkt (AV)!
|
|
-- Tevens wordt aan al deze reserveringen het factuurnummer gekoppeld.
|
|
CURSOR cobj
|
|
IS
|
|
SELECT x.periode,
|
|
x.res_rsv_ruimte_key,
|
|
x.res_reservering_key,
|
|
x.res_rsv_ruimte_volgnr,
|
|
x.res_rsv_deel_key,
|
|
x.res_status_bo_key
|
|
FROM (SELECT rr.res_rsv_ruimte_key,
|
|
rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_volgnr,
|
|
DECODE (
|
|
TO_CHAR (rr.res_rsv_ruimte_tot, 'yyyymm'),
|
|
TO_CHAR (SYSDATE, 'yyyymm'),
|
|
0,
|
|
1
|
|
)
|
|
periode,
|
|
rd.res_rsv_deel_key,
|
|
rd.res_status_bo_key,
|
|
rr.res_rsv_ruimte_contact_key,
|
|
TRIM (bedr.prs_kenmerklink_waarde) bedrijf
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
res_v_aanwezigrsv_deel rd,
|
|
prs_perslid p,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key = 1000) bedr
|
|
WHERE rr.res_status_fo_key IN (1, 2)
|
|
AND COALESCE (rr.res_status_bo_key, 2) != 6 -- Nog niet AV
|
|
AND rr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rr.res_rsv_ruimte_key =
|
|
rd.res_rsv_ruimte_key
|
|
AND rd.res_status_bo_key != 6 -- Nog niet AV
|
|
AND rd.res_rsv_deel_dirtlevel = 0
|
|
AND rd.res_rsv_ruimte_key IS NOT NULL -- Geen parkeerplaatsen
|
|
AND rr.res_rsv_ruimte_contact_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN (21, 22) -- Leden/Niet leden
|
|
--AND TRUNC (rr.res_rsv_ruimte_tot) <
|
|
-- TO_DATE (
|
|
-- '01' || TO_CHAR (SYSDATE, 'mmyyyy'),
|
|
-- 'ddmmyyyy'
|
|
-- )
|
|
AND rr.res_rsv_ruimte_tot < SYSDATE + (1 / 24)
|
|
AND rr.res_rsv_ruimte_contact_key =
|
|
bedr.prs_link_key(+)) x
|
|
LEFT JOIN
|
|
(SELECT c.bedrijf,
|
|
COALESCE (mc.prs_link_key, c.prs_link_key)
|
|
prs_link_key
|
|
FROM ( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN (kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
c
|
|
LEFT JOIN
|
|
( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN (kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
AND p.prs_srtperslid_key = 482
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
mc
|
|
ON c.bedrijf = mc.bedrijf) y
|
|
ON UPPER (x.bedrijf) = y.bedrijf
|
|
WHERE COALESCE (y.prs_link_key, x.res_rsv_ruimte_contact_key) =
|
|
p_prskey
|
|
AND x.periode = p_periode;
|
|
|
|
CURSOR cart
|
|
IS
|
|
SELECT x.periode,
|
|
x.res_rsv_ruimte_key,
|
|
x.res_reservering_key,
|
|
x.res_rsv_ruimte_volgnr,
|
|
x.res_rsv_artikel_key,
|
|
x.res_artikel_key,
|
|
x.res_status_bo_key,
|
|
x.res_artikel_prijs_vast
|
|
FROM (SELECT rr.res_rsv_ruimte_key,
|
|
rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_volgnr,
|
|
DECODE (
|
|
TO_CHAR (rr.res_rsv_ruimte_tot, 'yyyymm'),
|
|
TO_CHAR (SYSDATE, 'yyyymm'),
|
|
0,
|
|
1
|
|
)
|
|
periode,
|
|
ra.res_rsv_artikel_key,
|
|
ra.res_artikel_key,
|
|
ra.res_status_bo_key,
|
|
a.res_artikel_prijs_vast,
|
|
rr.res_rsv_ruimte_contact_key,
|
|
TRIM (bedr.prs_kenmerklink_waarde) bedrijf
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
res_v_aanwezigrsv_artikel ra,
|
|
res_artikel a,
|
|
prs_perslid p,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key = 1000) bedr
|
|
WHERE rr.res_status_fo_key IN (1, 2)
|
|
AND COALESCE (rr.res_status_bo_key, 2) != 6 -- Nog niet AV
|
|
AND rr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rr.res_rsv_ruimte_key =
|
|
ra.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = a.res_artikel_key
|
|
AND ra.res_status_bo_key != 6 -- Nog niet AV
|
|
AND ra.res_rsv_artikel_dirtlevel = 0
|
|
AND rr.res_rsv_ruimte_contact_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN (21, 22) -- Leden/Niet leden
|
|
--AND TRUNC (rr.res_rsv_ruimte_tot) <
|
|
-- TO_DATE (
|
|
-- '01' || TO_CHAR (SYSDATE, 'mmyyyy'),
|
|
-- 'ddmmyyyy'
|
|
-- )
|
|
AND rr.res_rsv_ruimte_tot < SYSDATE + (1 / 24)
|
|
AND rr.res_rsv_ruimte_contact_key =
|
|
bedr.prs_link_key(+)) x
|
|
LEFT JOIN
|
|
(SELECT c.bedrijf,
|
|
COALESCE (mc.prs_link_key, c.prs_link_key)
|
|
prs_link_key
|
|
FROM ( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN (kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
c
|
|
LEFT JOIN
|
|
( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN (kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
AND p.prs_srtperslid_key = 482
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
mc
|
|
ON c.bedrijf = mc.bedrijf) y
|
|
ON UPPER (x.bedrijf) = y.bedrijf
|
|
WHERE COALESCE (y.prs_link_key, x.res_rsv_ruimte_contact_key) =
|
|
p_prskey
|
|
AND x.periode = p_periode;
|
|
|
|
CURSOR crui
|
|
IS
|
|
SELECT x.periode,
|
|
x.res_rsv_ruimte_key,
|
|
x.res_reservering_key,
|
|
x.res_rsv_ruimte_volgnr,
|
|
x.res_status_bo_key,
|
|
x.old_prijs,
|
|
x.new_prijs
|
|
FROM (SELECT rr.res_rsv_ruimte_key,
|
|
rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_volgnr,
|
|
DECODE (
|
|
TO_CHAR (rr.res_rsv_ruimte_tot, 'yyyymm'),
|
|
TO_CHAR (SYSDATE, 'yyyymm'),
|
|
0,
|
|
1
|
|
)
|
|
periode,
|
|
rr.res_status_bo_key,
|
|
COALESCE (rr.res_rsv_ruimte_prijs, 0)
|
|
old_prijs,
|
|
DECODE (
|
|
SIGN( ( (rr.res_rsv_ruimte_tot
|
|
- rr.res_rsv_ruimte_van)
|
|
* 24)
|
|
- 8),
|
|
-1,
|
|
DECODE (
|
|
SIGN( ( (rr.res_rsv_ruimte_tot
|
|
- rr.res_rsv_ruimte_van)
|
|
* 24)
|
|
- 4),
|
|
-1,
|
|
(rr.res_rsv_ruimte_tot
|
|
- rr.res_rsv_ruimte_van)
|
|
* 24
|
|
* COALESCE (r.res_ruimte_prijs, 0),
|
|
COALESCE (r.res_ruimte_prijs_ochtend, 0)
|
|
+ ( ( (rr.res_rsv_ruimte_tot
|
|
- rr.res_rsv_ruimte_van)
|
|
* 24)
|
|
- 4)
|
|
* COALESCE (r.res_ruimte_prijs, 0)
|
|
),
|
|
COALESCE (r.res_ruimte_prijs_middag, 0)
|
|
)
|
|
new_prijs,
|
|
rr.res_rsv_ruimte_contact_key,
|
|
TRIM (bedr.prs_kenmerklink_waarde) bedrijf
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
res_ruimte_opstelling ro,
|
|
res_ruimte r,
|
|
prs_perslid p,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key = 1000) bedr
|
|
WHERE rr.res_status_fo_key IN (1, 2)
|
|
AND COALESCE (rr.res_status_bo_key, 2) != 6 -- Nog niet AV
|
|
AND rr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rr.res_rsv_ruimte_ordernr IS NULL -- Nog geen factuur!
|
|
AND rr.res_ruimte_opstel_key =
|
|
ro.res_ruimte_opstel_key(+)
|
|
AND ro.res_ruimte_key = r.res_ruimte_key(+)
|
|
AND rr.res_rsv_ruimte_contact_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN (21, 22) -- Leden/Niet leden
|
|
--AND TRUNC (rr.res_rsv_ruimte_tot) <
|
|
-- TO_DATE (
|
|
-- '01' || TO_CHAR (SYSDATE, 'mmyyyy'),
|
|
-- 'ddmmyyyy'
|
|
-- )
|
|
AND rr.res_rsv_ruimte_tot < SYSDATE + (1 / 24)
|
|
AND rr.res_rsv_ruimte_contact_key =
|
|
bedr.prs_link_key(+)) x
|
|
LEFT JOIN
|
|
(SELECT c.bedrijf,
|
|
COALESCE (mc.prs_link_key, c.prs_link_key)
|
|
prs_link_key
|
|
FROM ( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN (kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
c
|
|
LEFT JOIN
|
|
( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN (kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
AND p.prs_srtperslid_key = 482
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
mc
|
|
ON c.bedrijf = mc.bedrijf) y
|
|
ON UPPER (x.bedrijf) = y.bedrijf
|
|
WHERE COALESCE (y.prs_link_key, x.res_rsv_ruimte_contact_key) =
|
|
p_prskey
|
|
AND x.periode = p_periode;
|
|
|
|
c_applname VARCHAR2 (50) := 'FREEZE_RES';
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200) := '-';
|
|
v_count NUMBER (10);
|
|
v_count_upd NUMBER (10);
|
|
v_factuurnr VARCHAR2 (20);
|
|
v_prskey NUMBER (10);
|
|
v_huurderlid VARCHAR2 (1) := 'N';
|
|
v_factuurbedrag NUMBER (12, 2);
|
|
v_prijs NUMBER (9, 2);
|
|
BEGIN
|
|
-- Beginnen met toevoegen Factuur/Debiteur-entry in Eigen tabel met
|
|
-- key=82; als dat al niet kan, dan weten wij dat gelijk (nog zonder
|
|
-- gevolgschade)!
|
|
v_errormsg := 'Fout bij bepalen factuurnummer.';
|
|
|
|
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
|
|
|
|
v_factuurnr :=
|
|
TO_CHAR (TRUNC (SYSDATE, 'MM') - 1, 'YYYY')
|
|
|| SUBSTR ('0000' || TO_CHAR (v_count), -4);
|
|
|
|
v_errormsg := 'Fout bij bepalen debiteur.';
|
|
|
|
SELECT COALESCE (y.prs_link_key, x.prs_perslid_key)
|
|
INTO v_prskey
|
|
FROM (SELECT p.prs_perslid_key,
|
|
TRIM (bedr.prs_kenmerklink_waarde) bedrijf
|
|
FROM prs_perslid p,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key = 1000) bedr
|
|
WHERE p.prs_perslid_key = p_prskey
|
|
AND p.prs_perslid_key = bedr.prs_link_key(+)) x
|
|
LEFT JOIN
|
|
(SELECT c.bedrijf,
|
|
COALESCE (mc.prs_link_key, c.prs_link_key)
|
|
prs_link_key
|
|
FROM ( SELECT UPPER (
|
|
TRIM (kl.prs_kenmerklink_waarde)
|
|
)
|
|
bedrijf,
|
|
MIN (kl.prs_link_key) prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN (21, 22) -- Leden/Niet leden
|
|
GROUP BY UPPER(TRIM (
|
|
kl.prs_kenmerklink_waarde
|
|
))) c
|
|
LEFT JOIN
|
|
( SELECT UPPER (
|
|
TRIM (kl.prs_kenmerklink_waarde)
|
|
)
|
|
bedrijf,
|
|
MIN (kl.prs_link_key) prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN (21, 22) -- Leden/Niet leden
|
|
AND p.prs_srtperslid_key = 482
|
|
GROUP BY UPPER(TRIM (
|
|
kl.prs_kenmerklink_waarde
|
|
))) mc
|
|
ON c.bedrijf = mc.bedrijf) y
|
|
ON UPPER (x.bedrijf) = y.bedrijf;
|
|
|
|
v_errormsg := 'Fout bij bepalen ruimtekorting.';
|
|
|
|
--SELECT COUNT ( * )
|
|
-- INTO v_count
|
|
-- FROM prs_v_aanwezigkenmerklink
|
|
-- WHERE prs_link_key = v_prskey
|
|
-- AND prs_kenmerk_key = 1023 -- Huurder
|
|
-- AND prs_kenmerklink_waarde = '1';
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM wibc_v_rap_res_actual
|
|
WHERE hide_f_debnr = SUBSTR ('000000' || TO_CHAR (v_prskey), -6)
|
|
AND hide_f_restype = '1S';
|
|
|
|
IF (v_count > 0)
|
|
THEN
|
|
v_huurderlid := 'H'; -- Factuur incl. ruimtekorting!
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout bij bepalen lidmaatschap.';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM wibc_v_rap_res_actual
|
|
WHERE hide_f_debnr = SUBSTR ('000000' || TO_CHAR (v_prskey), -6)
|
|
AND hide_f_restype = '0L';
|
|
|
|
IF (v_count > 0)
|
|
THEN
|
|
--IF (v_huurderlid = 'H')
|
|
--THEN
|
|
-- v_huurderlid := 'X';
|
|
--ELSE
|
|
-- v_huurderlid := 'L';
|
|
--END IF;
|
|
v_huurderlid := 'L'; -- Factuur incl. lidmaatschap én ruimtekorting!
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout bij toevoegen meta-factuur.';
|
|
|
|
INSERT INTO fac_usrdata (fac_usrtab_key,
|
|
fac_usrdata_code,
|
|
fac_usrdata_omschr,
|
|
fac_usrdata_aanmaak,
|
|
fac_usrdata_vervaldatum)
|
|
VALUES (82,
|
|
v_factuurnr,
|
|
TO_CHAR (p_prskey) || v_huurderlid,
|
|
TRUNC (SYSDATE),
|
|
TRUNC (SYSDATE + 24));
|
|
|
|
COMMIT;
|
|
|
|
v_errormsg := 'Fout bij bepalen factuurbedrag.';
|
|
|
|
SELECT SUM (kosten + btwkosten)
|
|
INTO v_factuurbedrag
|
|
FROM wibc_v_rap_res_actual
|
|
WHERE hide_f_debnr = SUBSTR ('000000' || TO_CHAR (v_prskey), -6);
|
|
|
|
-- Toevoegen pseudo-transactie in wibc_bankboek voor facturen met een
|
|
-- negatief bedrag (te betalen door WIBC aan klant).
|
|
IF (v_factuurbedrag < 0)
|
|
THEN
|
|
v_errormsg := 'Fout bij toevoegen pseudo-tranactie.';
|
|
|
|
INSERT INTO wibc_bankboek (regel_insert,
|
|
afschriftnr,
|
|
boekdat_oud,
|
|
saldo_oud,
|
|
valutadat,
|
|
creditdebet,
|
|
bedrag,
|
|
transactietype,
|
|
tegenrekening,
|
|
omschrijving,
|
|
boekdat_nieuw,
|
|
saldo_nieuw)
|
|
VALUES (SYSDATE,
|
|
'Geen',
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
'-',
|
|
v_factuurbedrag,
|
|
NULL,
|
|
NULL,
|
|
'Pseudo-transactie tbv. factuur ' || v_factuurnr,
|
|
TO_CHAR (SYSDATE, 'yymmdd'),
|
|
NULL);
|
|
|
|
COMMIT;
|
|
END IF;
|
|
|
|
v_count_upd := 0;
|
|
|
|
-- Bevriezen RES-objecten!
|
|
FOR rec IN cobj
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
'['
|
|
|| rec.res_reservering_key
|
|
|| '|'
|
|
|| rec.res_rsv_ruimte_volgnr
|
|
|| '|'
|
|
|| rec.res_rsv_ruimte_key
|
|
|| '|'
|
|
|| TO_CHAR (p_prskey)
|
|
|| '] ';
|
|
|
|
-- Eerst maar eens afmelden (als dat nog niet is gedaan)!
|
|
IF (rec.res_status_bo_key = 2)
|
|
THEN
|
|
v_errormsg := 'Fout bij TV-en RES-object.';
|
|
|
|
UPDATE res_rsv_deel
|
|
SET res_status_bo_key = 5
|
|
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout bij bepalen res_rsv_deel_prijs.';
|
|
|
|
SELECT res.getdeelprijs (rec.res_rsv_deel_key)
|
|
INTO v_prijs
|
|
FROM DUAL;
|
|
|
|
v_errormsg := 'Fout bij bijwerken res_rsv_deel_prijs.';
|
|
|
|
UPDATE res_rsv_deel
|
|
SET res_rsv_deel_prijs = v_prijs
|
|
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
|
|
|
|
v_errormsg := 'Fout bij AV-en RES-object.';
|
|
|
|
UPDATE res_rsv_deel
|
|
SET res_status_bo_key = 6
|
|
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
|
|
|
|
v_count_upd := v_count_upd + 1;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog (c_applname,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'RES-object');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.writelog (c_applname,
|
|
'S',
|
|
'RES-object/#bevroren: ' || TO_CHAR (v_count_upd),
|
|
'');
|
|
COMMIT;
|
|
|
|
v_count_upd := 0;
|
|
|
|
-- Bevriezen RES-artikelen!
|
|
FOR rec IN cart
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
'['
|
|
|| rec.res_reservering_key
|
|
|| '|'
|
|
|| rec.res_rsv_ruimte_volgnr
|
|
|| '|'
|
|
|| rec.res_rsv_ruimte_key
|
|
|| '|'
|
|
|| TO_CHAR (p_prskey)
|
|
|| '] ';
|
|
|
|
-- Eerst maar eens afmelden (als dat nog niet is gedaan)!
|
|
IF (rec.res_status_bo_key = 2)
|
|
THEN
|
|
v_errormsg := 'Fout bij TV-en RES-artikel.';
|
|
|
|
UPDATE res_rsv_artikel
|
|
SET res_status_bo_key = 5
|
|
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
|
|
|
|
IF (rec.res_artikel_prijs_vast = 1)
|
|
THEN
|
|
v_errormsg := 'Fout bij bepalen res_rsv_artikel_prijs.';
|
|
|
|
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
|
|
INTO v_prijs
|
|
FROM DUAL;
|
|
|
|
v_errormsg := 'Fout bij bijwerken res_rsv_artikel_prijs.';
|
|
|
|
UPDATE res_rsv_artikel
|
|
SET 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;
|
|
END IF;
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout bij AV-en RES-artikel.';
|
|
|
|
UPDATE res_rsv_artikel
|
|
SET res_status_bo_key = 6
|
|
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
|
|
|
|
v_count_upd := v_count_upd + 1;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog (c_applname,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'RES-artikel');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.writelog (c_applname,
|
|
'S',
|
|
'RES-artikel/#bevroren: ' || TO_CHAR (v_count_upd),
|
|
'');
|
|
COMMIT;
|
|
|
|
-- Eerst maar eens afmelden (als dat nog niet is gedaan)!
|
|
FOR rec IN crui
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
'['
|
|
|| rec.res_reservering_key
|
|
|| '|'
|
|
|| rec.res_rsv_ruimte_volgnr
|
|
|| '|'
|
|
|| rec.res_rsv_ruimte_key
|
|
|| '|'
|
|
|| TO_CHAR (p_prskey)
|
|
|| '] ';
|
|
|
|
-- Niet voor reeds afgemelde reserveringen en "roomservice"!
|
|
IF (rec.res_status_bo_key = 2)
|
|
THEN
|
|
v_errormsg := 'Fout bij TV-en RES-ruimte.';
|
|
|
|
UPDATE res_rsv_ruimte
|
|
SET res_status_bo_key = 5
|
|
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
|
|
|
fac.trackaction ('RESAFM',
|
|
rec.res_rsv_ruimte_key,
|
|
NULL,
|
|
NULL,
|
|
NULL);
|
|
|
|
COMMIT;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog (c_applname,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'RES-ruimte/TV');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
v_count_upd := 0;
|
|
|
|
FOR rec IN crui
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
'['
|
|
|| rec.res_reservering_key
|
|
|| '|'
|
|
|| rec.res_rsv_ruimte_volgnr
|
|
|| '|'
|
|
|| rec.res_rsv_ruimte_key
|
|
|| '|'
|
|
|| TO_CHAR (p_prskey)
|
|
|| '] ';
|
|
|
|
v_errormsg := 'Fout bij bijwerken factuurnummer.';
|
|
|
|
UPDATE res_rsv_ruimte
|
|
SET res_rsv_ruimte_ordernr = v_factuurnr
|
|
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
|
|
|
-- Niet voor "roomservice"!
|
|
IF (rec.res_status_bo_key = 5)
|
|
THEN
|
|
IF (rec.old_prijs <> rec.new_prijs)
|
|
THEN
|
|
v_errormsg := 'Fout bij bijwerken res_rsv_ruimte_prijs';
|
|
|
|
UPDATE res_rsv_ruimte rr
|
|
SET rr.res_rsv_ruimte_prijs = rec.new_prijs
|
|
WHERE rr.res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout bij AV-en RES-ruimte.';
|
|
|
|
UPDATE res_rsv_ruimte
|
|
SET res_status_bo_key = 6
|
|
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
|
|
|
fac.trackaction ('RESVER',
|
|
rec.res_rsv_ruimte_key,
|
|
NULL,
|
|
NULL,
|
|
NULL);
|
|
END IF;
|
|
|
|
v_count_upd := v_count_upd + 1;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog (c_applname,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'RES-ruimte/AV');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.writelog (c_applname,
|
|
'S',
|
|
'RES-ruimte/#bevroren: ' || TO_CHAR (v_count_upd),
|
|
'');
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog (c_applname,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'');
|
|
COMMIT;
|
|
END freezereserveringen;
|
|
END;
|
|
/
|
|
|
|
|
|
/* Formatted on 24-5-2013 16:55:05 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE wibc_import_mt940 (p_import_key IN NUMBER)
|
|
AS
|
|
--c_delim VARCHAR2 (1) := ';';
|
|
c_rekeningnummer VARCHAR2 (35) := '173847757'; -- ALLEEN dit rek.nr.!
|
|
v_newline VARCHAR2 (1000); -- Input line
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
header_is_valid NUMBER;
|
|
v_count_tot NUMBER (10);
|
|
v_count_import NUMBER (10);
|
|
v_aanduiding VARCHAR2 (200);
|
|
-- De importvelden
|
|
v_mt940_rcode VARCHAR2 (5); -- Record-code uit v_newline (optioneel)
|
|
v_mt940_rdata VARCHAR2 (100); -- Record-data uit v_newline
|
|
-- Overige velden:
|
|
v_mt940_index NUMBER (10);
|
|
v_mt940_rcodekeep VARCHAR2 (5); -- Bewaarde code uit eerdere newline
|
|
v_mt940_rdatakeep VARCHAR2 (100); -- Bewaarde data uit eerdere newline
|
|
v_mt940_tromskeep VARCHAR2 (500); -- Bewaarde 86-data (transactieoms.)
|
|
|
|
CURSOR c1
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
-- Eerst opruiming
|
|
DELETE FROM wibc_imp_mt940;
|
|
|
|
COMMIT;
|
|
|
|
header_is_valid := 1; -- Altijd valid (:940: komt soms niet/vaker voor)!
|
|
v_count_tot := 0;
|
|
v_count_import := 0;
|
|
|
|
v_mt940_rcode := '';
|
|
v_mt940_rdata := '';
|
|
v_mt940_index := 0;
|
|
v_mt940_rcodekeep := '';
|
|
v_mt940_rdatakeep := '';
|
|
v_mt940_tromskeep := '';
|
|
|
|
-- LET OP: Elke bank heeft zijn eigen MT940-interpretatie. Die van de Rabo
|
|
-- is leidend voor WIBC (deze import), maar ik heb ook gekeken naar die van
|
|
-- andere banken en interpreteer - bij import - eea. nog vrij losjes.
|
|
-- Elke regel <100 wordt ingelezen, regels na een 61-regel (met een 86-code
|
|
-- of zonder code!) worden samengesteld met een :61:-rcode, het 61-stuk als
|
|
-- rdata en het 86-stuk als troms.
|
|
-- Omdat 86-regels niet alleen na een 61-regel voorkomen, bevat de INSERT
|
|
-- een DECODE om igv. losse 86-regels de rcode op :86: ipv. :61: te zetten;
|
|
-- de rdata-veld is in dat geval leeg.
|
|
FOR rec1 IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_newline := TRIM (rec1.fac_imp_file_line); -- MT940-lengte max. 80?!
|
|
v_aanduiding := '[' || SUBSTR (v_newline, 1, 100) || '] ';
|
|
|
|
-- Ik controleer of ik een geldige header heb, dat is: een regel met
|
|
-- alleen een :940:-code!
|
|
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
IF (UPPER (v_newline) = ':940:')
|
|
THEN
|
|
header_is_valid := 1;
|
|
END IF;
|
|
ELSE -- Na een geldige header gaat de v_count_tot-teller pas lopen!
|
|
v_count_tot := v_count_tot + 1;
|
|
v_errormsg := 'MT940-regel te lang';
|
|
|
|
IF (LENGTH (v_newline) > 100)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'Regel wordt overgeslagen');
|
|
ELSE
|
|
-- Ingelezen regel opsplitsen in rcode en rdata.
|
|
IF (SUBSTR (v_newline, 1, 1) = ':'
|
|
AND SUBSTR (v_newline, 4, 1) = ':')
|
|
THEN -- rcode 4-posities
|
|
v_mt940_rcode := SUBSTR (v_newline, 1, 4);
|
|
v_mt940_rdata := SUBSTR (v_newline, 5);
|
|
ELSIF (SUBSTR (v_newline, 1, 1) = ':' AND SUBSTR (v_newline, 5, 1) = ':')
|
|
THEN -- rcode 5-posities
|
|
v_mt940_rcode := SUBSTR (v_newline, 1, 5);
|
|
v_mt940_rdata := SUBSTR (v_newline, 6);
|
|
ELSE -- Geen rcode
|
|
v_mt940_rcode := '';
|
|
v_mt940_rdata := v_newline;
|
|
END IF;
|
|
|
|
IF (v_mt940_rcodekeep IN (':61:', ':86:'))
|
|
THEN
|
|
IF (COALESCE (v_mt940_rcode, 'x') IN (':86:', 'x'))
|
|
THEN -- Vervolgregel; doe alsof vorige rcode wordt herhaald
|
|
v_mt940_rcode :=
|
|
COALESCE (v_mt940_rcode, v_mt940_rcodekeep);
|
|
ELSE -- Insert samengestelde regel met terugwerkende kracht
|
|
v_errormsg :=
|
|
'Fout bij wegschrijven samengestelde importregel';
|
|
|
|
v_mt940_index := v_mt940_index + 1;
|
|
|
|
INSERT INTO wibc_imp_mt940 (
|
|
mt940_index,
|
|
mt940_rcode,
|
|
mt940_rdata,
|
|
mt940_troms
|
|
)
|
|
VALUES (
|
|
v_mt940_index,
|
|
DECODE (v_mt940_rdatakeep,
|
|
NULL, ':86:',
|
|
':61:'),
|
|
v_mt940_rdatakeep,
|
|
v_mt940_tromskeep
|
|
);
|
|
|
|
COMMIT;
|
|
|
|
-- Clear al het bewaarde!
|
|
v_mt940_rcodekeep := '';
|
|
v_mt940_rdatakeep := '';
|
|
v_mt940_tromskeep := '';
|
|
END IF;
|
|
END IF;
|
|
|
|
IF (v_mt940_rcode = ':61:')
|
|
THEN -- Bewaar rcode en rdata; tromskeep zal leeg zijn/blijven!
|
|
v_mt940_rcodekeep := v_mt940_rcode;
|
|
v_mt940_rdatakeep :=
|
|
COALESCE (v_mt940_rdatakeep, '') || v_mt940_rdata;
|
|
ELSIF (v_mt940_rcode = ':86:')
|
|
THEN -- Bewaar rcode en (uitgebreide) troms; rdatakeep "as is"!
|
|
--v_mt940_rcodekeep := ':61:';
|
|
v_mt940_rcodekeep := v_mt940_rcode;
|
|
v_mt940_tromskeep :=
|
|
COALESCE (v_mt940_tromskeep, '') || v_mt940_rdata;
|
|
ELSE -- Insert deze iteratie ingelezen (enkelvoudige) regel
|
|
v_errormsg :=
|
|
'Fout bij wegschrijven enkelvoudige importregel';
|
|
|
|
v_mt940_index := v_mt940_index + 1;
|
|
|
|
INSERT INTO wibc_imp_mt940 (
|
|
mt940_index,
|
|
mt940_rcode,
|
|
mt940_rdata
|
|
)
|
|
VALUES (v_mt940_index, v_mt940_rcode, v_mt940_rdata);
|
|
|
|
COMMIT;
|
|
|
|
-- Clear al het bewaarde!
|
|
v_mt940_rcodekeep := '';
|
|
v_mt940_rdatakeep := '';
|
|
v_mt940_tromskeep := '';
|
|
|
|
-- Check op :25:-regel met ander rekeningnummer dan waarvoor
|
|
-- deze importfunctie is bedoeld -> EXIT!
|
|
EXIT WHEN (v_mt940_rcode = ':25:'
|
|
AND INSTR (v_mt940_rdata, c_rekeningnummer) = 0);
|
|
END IF;
|
|
|
|
v_count_import := v_count_import + 1;
|
|
END IF;
|
|
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.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
IF (header_is_valid = 0)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Ongeldig importbestand',
|
|
'Geen header of header niet volgens specificatie!');
|
|
ELSIF (v_mt940_rcode = ':25:' AND INSTR (v_mt940_rdata, c_rekeningnummer) = 0)
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Ongeldig importbestand',
|
|
'Ander rekeningnr dan waarvoor import is bedoeld!');
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'MT940/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot),
|
|
''
|
|
);
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'MT940/aantal ongeldige niet ingelezen importregels: '
|
|
|| TO_CHAR (v_count_tot - v_count_import),
|
|
''
|
|
);
|
|
END IF;
|
|
|
|
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.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Importproces MT940 afgebroken!');
|
|
END wibc_import_mt940;
|
|
/
|
|
|
|
/* Formatted on 6-6-2013 17:16:18 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE PROCEDURE wibc_update_mt940 (p_import_key IN NUMBER)
|
|
AS
|
|
v_errormsg VARCHAR2 (1000) := '-';
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count_insert NUMBER (10);
|
|
v_count NUMBER (10);
|
|
v_aanduiding VARCHAR2 (500);
|
|
-- Redundant opgeslagen bij 1 of meer transacties (better safe than sorry)!
|
|
v_bankboek_key NUMBER (10);
|
|
v_afschriftnr VARCHAR2 (50);
|
|
v_boekdat_oud VARCHAR2 (6);
|
|
v_saldo_oud NUMBER (12, 3);
|
|
v_valutadat VARCHAR2 (6);
|
|
v_creditdebet VARCHAR2 (2);
|
|
v_bedrag_begin NUMBER;
|
|
v_bedrag_lengte NUMBER;
|
|
v_bedrag NUMBER (12, 3);
|
|
v_transactietype VARCHAR2 (4);
|
|
v_tegenrekening VARCHAR2 (50);
|
|
v_omschrijving VARCHAR2 (500);
|
|
v_boekdat_nieuw VARCHAR2 (6);
|
|
v_saldo_nieuw NUMBER (12, 3);
|
|
|
|
CURSOR c1 -- BELANGRIJK: Op volgorde inlezen!
|
|
IS
|
|
SELECT mt940_index,
|
|
mt940_rcode,
|
|
mt940_rdata,
|
|
mt940_troms
|
|
FROM wibc_imp_mt940
|
|
--WHERE mt940_rcode IN (':28C:', ':60F:', ':61:', ':62F:') -- Rest skippen!
|
|
WHERE mt940_rcode IN (':28:', ':60F:', ':61:', ':62F:')
|
|
-- Rest skippen!
|
|
ORDER BY mt940_index;
|
|
|
|
CURSOR c2
|
|
IS
|
|
SELECT bb.bankboek_key, ud.fac_usrdata_upper factuurnummer
|
|
FROM wibc_bankboek bb, fac_usrdata ud
|
|
WHERE bankboek_key > COALESCE (v_bankboek_key, 0)
|
|
AND INSTR (UPPER (COALESCE (bb.omschrijving, 'x')),
|
|
ud.fac_usrdata_upper) > 0
|
|
AND INSTR (UPPER (COALESCE (bb.ref_waarde, 'x')),
|
|
ud.fac_usrdata_upper) = 0
|
|
AND ud.fac_usrtab_key = 82
|
|
AND ud.fac_usrdata_verwijder IS NULL
|
|
ORDER BY ud.fac_usrdata_upper; -- MAIN
|
|
BEGIN
|
|
v_count_insert := 0;
|
|
v_count := 0;
|
|
|
|
SELECT MAX (bankboek_key) INTO v_bankboek_key FROM wibc_bankboek;
|
|
|
|
FOR rec1 IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
'[' || rec1.mt940_rdata || '|' || rec1.mt940_troms || '] ';
|
|
|
|
--IF (rec1.mt940_rcode = ':28C:')
|
|
IF (rec1.mt940_rcode = ':28:')
|
|
THEN
|
|
v_errormsg := 'Fout bij bepalen afschrift/volgnummer';
|
|
v_afschriftnr := SUBSTR (rec1.mt940_rdata, 1, 20);
|
|
ELSIF (rec1.mt940_rcode = ':60F:')
|
|
THEN
|
|
v_errormsg := 'Fout bij bepalen saldo oud';
|
|
v_boekdat_oud := SUBSTR (rec1.mt940_rdata, 2, 6);
|
|
|
|
IF (UPPER (SUBSTR (rec1.mt940_rdata, 1, 1)) = 'C')
|
|
THEN -- 'C(redit)'
|
|
v_saldo_oud :=
|
|
fac.safe_to_number (
|
|
REPLACE (SUBSTR (rec1.mt940_rdata, 11), ',', '.')
|
|
);
|
|
ELSE -- 'D(ebet)'
|
|
v_saldo_oud :=
|
|
-1
|
|
* fac.safe_to_number (
|
|
REPLACE (SUBSTR (rec1.mt940_rdata, 11), ',', '.')
|
|
);
|
|
END IF;
|
|
ELSIF (rec1.mt940_rcode = ':61:')
|
|
THEN
|
|
v_errormsg := 'Fout bij bepalen transactie'; -- Waar het om gaat!
|
|
v_valutadat := SUBSTR (rec1.mt940_rdata, 1, 6);
|
|
|
|
IF (INSTR (rec1.mt940_rdata, 'C') BETWEEN 1 AND 12)
|
|
THEN
|
|
IF (SUBSTR (rec1.mt940_rdata,
|
|
INSTR (rec1.mt940_rdata, 'C') - 1,
|
|
1) IN
|
|
('0',
|
|
'1',
|
|
'2',
|
|
'3',
|
|
'4',
|
|
'5',
|
|
'6',
|
|
'7',
|
|
'8',
|
|
'9',
|
|
',',
|
|
'.'))
|
|
THEN
|
|
v_creditdebet := 'C';
|
|
ELSE
|
|
v_creditdebet :=
|
|
SUBSTR (rec1.mt940_rdata,
|
|
INSTR (rec1.mt940_rdata, 'C') - 1,
|
|
2);
|
|
END IF;
|
|
|
|
-- Skip optionele 'Kapitaalcode'?
|
|
IF (SUBSTR (rec1.mt940_rdata,
|
|
INSTR (rec1.mt940_rdata, 'C') + 1,
|
|
1) IN
|
|
('0',
|
|
'1',
|
|
'2',
|
|
'3',
|
|
'4',
|
|
'5',
|
|
'6',
|
|
'7',
|
|
'8',
|
|
'9',
|
|
',',
|
|
'.'))
|
|
THEN
|
|
v_bedrag_begin := INSTR (rec1.mt940_rdata, 'C') + 1;
|
|
ELSE
|
|
v_bedrag_begin := INSTR (rec1.mt940_rdata, 'C') + 2;
|
|
END IF;
|
|
ELSE -- (INSTR (rec1.mt940_rdata, 'D') BETWEEN 1 AND 12)
|
|
IF (SUBSTR (rec1.mt940_rdata,
|
|
INSTR (rec1.mt940_rdata, 'D') - 1,
|
|
1) IN
|
|
('0',
|
|
'1',
|
|
'2',
|
|
'3',
|
|
'4',
|
|
'5',
|
|
'6',
|
|
'7',
|
|
'8',
|
|
'9',
|
|
',',
|
|
'.'))
|
|
THEN
|
|
v_creditdebet := 'D';
|
|
ELSE
|
|
v_creditdebet :=
|
|
SUBSTR (rec1.mt940_rdata,
|
|
INSTR (rec1.mt940_rdata, 'D') - 1,
|
|
2);
|
|
END IF;
|
|
|
|
-- Skip optionele 'Kapitaalcode'?
|
|
IF (SUBSTR (rec1.mt940_rdata,
|
|
INSTR (rec1.mt940_rdata, 'D') + 1,
|
|
1) IN
|
|
('0',
|
|
'1',
|
|
'2',
|
|
'3',
|
|
'4',
|
|
'5',
|
|
'6',
|
|
'7',
|
|
'8',
|
|
'9',
|
|
',',
|
|
'.'))
|
|
THEN
|
|
v_bedrag_begin := INSTR (rec1.mt940_rdata, 'D') + 1;
|
|
ELSE
|
|
v_bedrag_begin := INSTR (rec1.mt940_rdata, 'D') + 2;
|
|
END IF;
|
|
END IF;
|
|
|
|
v_bedrag_lengte := 1;
|
|
|
|
WHILE (SUBSTR (rec1.mt940_rdata,
|
|
v_bedrag_begin + v_bedrag_lengte,
|
|
1) IN
|
|
('0',
|
|
'1',
|
|
'2',
|
|
'3',
|
|
'4',
|
|
'5',
|
|
'6',
|
|
'7',
|
|
'8',
|
|
'9',
|
|
',',
|
|
'.')
|
|
AND v_bedrag_lengte < 15)
|
|
LOOP
|
|
v_bedrag_lengte := v_bedrag_lengte + 1;
|
|
END LOOP;
|
|
|
|
v_bedrag :=
|
|
fac.safe_to_number(REPLACE (
|
|
SUBSTR (rec1.mt940_rdata,
|
|
v_bedrag_begin,
|
|
v_bedrag_lengte),
|
|
',',
|
|
'.'
|
|
));
|
|
|
|
v_transactietype :=
|
|
SUBSTR (rec1.mt940_rdata, v_bedrag_begin + v_bedrag_lengte, 4);
|
|
v_tegenrekening :=
|
|
SUBSTR (rec1.mt940_rdata,
|
|
v_bedrag_begin + v_bedrag_lengte + 4);
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM wibc_bankboek
|
|
WHERE afschriftnr = v_afschriftnr
|
|
AND valutadat = v_valutadat
|
|
AND creditdebet = v_creditdebet
|
|
AND bedrag = v_bedrag
|
|
AND transactietype = v_transactietype
|
|
AND tegenrekening = v_tegenrekening
|
|
AND omschrijving = rec1.mt940_troms;
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
INSERT INTO wibc_bankboek (regel_insert,
|
|
afschriftnr,
|
|
boekdat_oud,
|
|
saldo_oud,
|
|
valutadat,
|
|
creditdebet,
|
|
bedrag,
|
|
transactietype,
|
|
tegenrekening,
|
|
omschrijving)
|
|
VALUES (SYSDATE,
|
|
v_afschriftnr,
|
|
v_boekdat_oud,
|
|
v_saldo_oud,
|
|
v_valutadat,
|
|
v_creditdebet,
|
|
v_bedrag,
|
|
v_transactietype,
|
|
v_tegenrekening,
|
|
rec1.mt940_troms);
|
|
|
|
COMMIT;
|
|
v_count_insert := v_count_insert + 1;
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
v_aanduiding || 'Transactie bestaat al?',
|
|
'Transactie niet toegevoegd!');
|
|
END IF;
|
|
ELSIF (rec1.mt940_rcode = ':62F:')
|
|
THEN
|
|
v_errormsg := 'Fout bij bepalen saldo nieuw';
|
|
v_boekdat_nieuw := SUBSTR (rec1.mt940_rdata, 2, 6);
|
|
|
|
IF (UPPER (SUBSTR (rec1.mt940_rdata, 1, 1)) = 'C')
|
|
THEN -- 'C(redit)'
|
|
v_saldo_nieuw :=
|
|
fac.safe_to_number (
|
|
REPLACE (SUBSTR (rec1.mt940_rdata, 11), ',', '.')
|
|
);
|
|
ELSE -- 'D(ebet)'
|
|
v_saldo_nieuw :=
|
|
-1
|
|
* fac.safe_to_number (
|
|
REPLACE (SUBSTR (rec1.mt940_rdata, 11), ',', '.')
|
|
);
|
|
END IF;
|
|
|
|
UPDATE wibc_bankboek
|
|
SET boekdat_nieuw = v_boekdat_nieuw,
|
|
saldo_nieuw = v_saldo_nieuw
|
|
WHERE bankboek_key > COALESCE (v_bankboek_key, 0)
|
|
AND afschriftnr = v_afschriftnr
|
|
AND boekdat_oud = v_boekdat_oud
|
|
AND saldo_oud = v_saldo_oud;
|
|
|
|
COMMIT;
|
|
ELSE -- Kan niet!
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'W',
|
|
v_aanduiding || 'Unexpected code: ' || rec1.mt940_rcode,
|
|
''
|
|
);
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM wibc_bankboek
|
|
WHERE bankboek_key > v_bankboek_key
|
|
AND ( afschriftnr IS NULL
|
|
OR boekdat_oud IS NULL
|
|
OR saldo_oud IS NULL
|
|
OR valutadat IS NULL
|
|
OR creditdebet IS NULL
|
|
OR bedrag IS NULL
|
|
OR boekdat_nieuw IS NULL
|
|
OR saldo_nieuw IS NULL);
|
|
|
|
IF (v_count = 0)
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'MT940-transacties/#toegevoegd: ' || TO_CHAR (v_count_insert),
|
|
''
|
|
);
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'MT940-transacties/#ongeldig: '
|
|
|| TO_CHAR (v_count)
|
|
|| ' van '
|
|
|| TO_CHAR (v_count_insert),
|
|
'Geen transacties toegevoegd!'
|
|
);
|
|
|
|
-- Draai eventuele toevoegingen vandaag(!) terug.
|
|
DELETE FROM wibc_bankboek
|
|
WHERE bankboek_key > v_bankboek_key;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
|
|
FOR rec1 IN c2
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout bij matchen transactie';
|
|
v_aanduiding :=
|
|
'['
|
|
|| TO_CHAR (rec1.bankboek_key)
|
|
|| '|'
|
|
|| rec1.factuurnummer
|
|
|| '] ';
|
|
|
|
UPDATE wibc_bankboek
|
|
SET ref_waarde =
|
|
DECODE (ref_waarde,
|
|
NULL, rec1.factuurnummer,
|
|
ref_waarde || '/' || rec1.factuurnummer),
|
|
ref_update = SYSDATE
|
|
WHERE bankboek_key = rec1.bankboek_key;
|
|
|
|
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.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
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.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Updateproces MT940 afgebroken!');
|
|
|
|
-- Draai eventuele toevoegingen vandaag(!) terug.
|
|
DELETE FROM wibc_bankboek
|
|
WHERE bankboek_key > v_bankboek_key;
|
|
END wibc_update_mt940;
|
|
/
|
|
|
|
|
|
/* Formatted on 5-6-2013 16:30:45 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wibc_v_rap_res_actual
|
|
(
|
|
periode,
|
|
hide_f_debnr,
|
|
fclt_f_bedrijf,
|
|
per_adres,
|
|
fclt_f_aanvrager,
|
|
adres,
|
|
postcode,
|
|
plaats,
|
|
btwnr,
|
|
fclt_f_factuur,
|
|
factuurperiode,
|
|
factuurdatum,
|
|
vervaldatum,
|
|
hide_f_datum,
|
|
hide_f_restype,
|
|
resnr,
|
|
datum,
|
|
van,
|
|
tot,
|
|
bezoekers,
|
|
activiteit_key,
|
|
ruimte_voorzieningen,
|
|
aantal,
|
|
stuksprijs,
|
|
kosten,
|
|
btwtarief,
|
|
btwkosten,
|
|
omschrijving,
|
|
opmerking
|
|
)
|
|
AS
|
|
SELECT DECODE (TO_CHAR (x.tot, 'yyyymm'),
|
|
TO_CHAR (SYSDATE, 'yyyymm'), 0,
|
|
1)
|
|
periode,
|
|
SUBSTR (
|
|
'000000'
|
|
|| TO_CHAR (COALESCE (y.prs_link_key, x.prs_perslid_key)),
|
|
-6
|
|
)
|
|
debnr,
|
|
COALESCE (x.bedrijf,
|
|
SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6))
|
|
bedrijf,
|
|
TRIM (pa.prs_kenmerklink_waarde) pa,
|
|
COALESCE (
|
|
TRIM (tav.prs_kenmerklink_waarde),
|
|
(SELECT DECODE (prs_perslid_geslacht,
|
|
0, 'Mevr. ',
|
|
1, 'Dhr. ',
|
|
'')
|
|
|| DECODE (prs_perslid_voorletters,
|
|
'', '',
|
|
prs_perslid_voorletters || ' ')
|
|
|| DECODE (prs_perslid_tussenvoegsel,
|
|
'', '',
|
|
prs_perslid_tussenvoegsel || ' ')
|
|
|| prs_perslid_naam
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key =
|
|
COALESCE (y.prs_link_key, x.prs_perslid_key))
|
|
)
|
|
tav,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cad.prs_kenmerklink_waarde),
|
|
TRIM (fad.prs_kenmerklink_waarde))
|
|
adres,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cpc.prs_kenmerklink_waarde),
|
|
TRIM (fpc.prs_kenmerklink_waarde))
|
|
postcode,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cpl.prs_kenmerklink_waarde),
|
|
TRIM (fpl.prs_kenmerklink_waarde))
|
|
plaats,
|
|
btwnr.prs_kenmerklink_waarde btwnr,
|
|
'***CONCEPT***' factuurnummer, -- Factuurnummer
|
|
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') factuurperiode,
|
|
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum,
|
|
TO_CHAR (SYSDATE + 24, 'dd-mm-yyyy') vervaldatum,
|
|
TO_CHAR (x.van, 'yyyy-mm-dd hh24:mi')
|
|
|| rvc.res_ruimte_nr
|
|
|| x.res_reservering_key
|
|
sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
|
|
rvc.res_type || SUBSTR ('000000' || TO_CHAR (rvc.vnr), -6)
|
|
sortering2, -- ..daarbinnen op type (1R2V3C) en dan volgnr
|
|
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr,
|
|
TO_CHAR (x.van, 'dd-mm-yyyy') datum_tijd,
|
|
TO_CHAR (x.van, 'hh24:mi') van,
|
|
TO_CHAR (x.tot, 'hh24:mi') tot,
|
|
TO_CHAR (x.res_rsv_ruimte_bezoekers) bezoekers,
|
|
x.res_activiteit_key,
|
|
DECODE (
|
|
rvc.res_type,
|
|
'2V',
|
|
rvc.res_voorziening || ' / ' || TO_CHAR (rvc.aantal) || ' uur',
|
|
'3C',
|
|
DECODE (x.res_activiteit_key,
|
|
50, x.res_rsv_ruimte_omschrijving,
|
|
70, x.res_rsv_ruimte_omschrijving,
|
|
TO_CHAR (rvc.aantal) || ' * ' || rvc.res_voorziening),
|
|
rvc.res_ruimte_nr -- '1R'
|
|
)
|
|
ruimte_voorzieningen,
|
|
TO_CHAR (rvc.aantal) aantal,
|
|
ROUND (
|
|
DECODE (
|
|
rvc.res_rsv_prijs,
|
|
NULL,
|
|
rvc.ps,
|
|
rvc.res_rsv_prijs
|
|
/ DECODE (rvc.aantal, NULL, 1, 0, 1, rvc.aantal)
|
|
),
|
|
2
|
|
)
|
|
stuksprijs,
|
|
ROUND (
|
|
DECODE (
|
|
rvc.res_type,
|
|
'1R',
|
|
DECODE (
|
|
SIGN (rvc.aantal - 8),
|
|
-1,
|
|
DECODE (SIGN (rvc.aantal - 4),
|
|
-1, rvc.aantal * rvc.ps,
|
|
rvc.po + (rvc.aantal - 4) * rvc.ps),
|
|
rvc.pm
|
|
),
|
|
DECODE ( -- '2V' of '3C'
|
|
x.res_activiteit_key,
|
|
50, -- Creditboeking
|
|
-1 * COALESCE (rvc.res_rsv_prijs, rvc.aantal * rvc.ps),
|
|
COALESCE (rvc.res_rsv_prijs, rvc.aantal * rvc.ps)
|
|
)
|
|
),
|
|
2
|
|
)
|
|
netto,
|
|
rvc.btw btwtarief,
|
|
ROUND (
|
|
DECODE (
|
|
rvc.res_type,
|
|
'1R',
|
|
DECODE (
|
|
SIGN (rvc.aantal - 8),
|
|
-1,
|
|
DECODE (SIGN (rvc.aantal - 4),
|
|
-1, rvc.aantal * rvc.ps,
|
|
rvc.po + (rvc.aantal - 4) * rvc.ps),
|
|
rvc.pm
|
|
),
|
|
DECODE ( -- '2V' of '3C'
|
|
x.res_activiteit_key,
|
|
50, -- Creditboeking
|
|
-1 * COALESCE (rvc.res_rsv_prijs, rvc.aantal * rvc.ps),
|
|
COALESCE (rvc.res_rsv_prijs, rvc.aantal * rvc.ps)
|
|
)
|
|
)
|
|
* rvc.btw
|
|
/ 100,
|
|
2
|
|
)
|
|
btw,
|
|
x.res_rsv_ruimte_omschrijving oms,
|
|
x.res_rsv_ruimte_opmerking opm
|
|
FROM (SELECT rr.res_rsv_ruimte_key,
|
|
rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_volgnr,
|
|
rr.res_rsv_ruimte_van
|
|
van,
|
|
rr.res_rsv_ruimte_tot
|
|
tot,
|
|
rr.res_activiteit_key,
|
|
rr.res_rsv_ruimte_bezoekers,
|
|
rr.res_rsv_ruimte_omschrijving,
|
|
rr.res_rsv_ruimte_opmerking,
|
|
p.prs_perslid_key,
|
|
TRIM(bedr.prs_kenmerklink_waarde)
|
|
bedrijf
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
prs_perslid p,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key =
|
|
1000)
|
|
bedr
|
|
WHERE rr.res_rsv_ruimte_ordernr IS NULL
|
|
AND rr.res_status_fo_key IN
|
|
(1, 2)
|
|
AND COALESCE (
|
|
rr.res_status_bo_key,
|
|
2
|
|
) != 6 -- Nog niet AV
|
|
AND rr.res_rsv_ruimte_dirtlevel =
|
|
0
|
|
--AND rr.res_rsv_ruimte_tot <
|
|
-- TO_DATE (
|
|
-- '01'
|
|
-- || TO_CHAR (
|
|
-- SYSDATE,
|
|
-- 'mmyyyy'
|
|
-- ),
|
|
-- 'ddmmyyyy'
|
|
-- )
|
|
AND rr.res_rsv_ruimte_tot <
|
|
SYSDATE
|
|
+ (1 / 24)
|
|
AND rr.res_rsv_ruimte_contact_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
AND p.prs_perslid_key =
|
|
bedr.prs_link_key(+))
|
|
x
|
|
LEFT JOIN
|
|
(SELECT c.bedrijf,
|
|
COALESCE (
|
|
mc.prs_link_key,
|
|
c.prs_link_key
|
|
)
|
|
prs_link_key
|
|
FROM ( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN(kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key =
|
|
1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21,
|
|
22) -- Leden/Niet leden
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
c
|
|
LEFT JOIN
|
|
( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN(kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key =
|
|
1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21,
|
|
22) -- Leden/Niet leden
|
|
AND p.prs_srtperslid_key =
|
|
482
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
mc
|
|
ON c.bedrijf =
|
|
mc.bedrijf) y
|
|
ON UPPER (x.bedrijf) = y.bedrijf
|
|
LEFT JOIN -- 1060 = Factuur p.a.
|
|
prs_v_aanwezigkenmerklink pa
|
|
ON COALESCE (y.prs_link_key,
|
|
x.prs_perslid_key) =
|
|
pa.prs_link_key
|
|
AND pa.prs_kenmerk_key = 1060
|
|
LEFT JOIN -- 1040 = Factuur t.a.v.
|
|
prs_v_aanwezigkenmerklink tav
|
|
ON COALESCE (y.prs_link_key,
|
|
x.prs_perslid_key) =
|
|
tav.prs_link_key
|
|
AND tav.prs_kenmerk_key = 1040
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cad
|
|
ON COALESCE (y.prs_link_key,
|
|
x.prs_perslid_key) =
|
|
cad.prs_link_key
|
|
AND cad.prs_kenmerk_key = 1001 -- C-Adres
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cpc
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
cpc.prs_link_key
|
|
AND cpc.prs_kenmerk_key = 1002 -- C-Postcode
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cpl
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
cpl.prs_link_key
|
|
AND cpl.prs_kenmerk_key = 1003 -- C-Plaats
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fad
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
fad.prs_link_key
|
|
AND fad.prs_kenmerk_key = 1006 -- F-Adres
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fpc
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
fpc.prs_link_key
|
|
AND fpc.prs_kenmerk_key = 1007 -- F-Postcode
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fpl
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
fpl.prs_link_key
|
|
AND fpl.prs_kenmerk_key = 1008 -- F-Plaats
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink btwnr
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
btwnr.prs_link_key
|
|
AND btwnr.prs_kenmerk_key = 1005 -- BTW-nr
|
|
LEFT JOIN
|
|
(SELECT rrr.res_rsv_ruimte_key,
|
|
rr.res_ruimte_nr,
|
|
'1R' res_type,
|
|
TO_NUMBER (NULL) vnr,
|
|
NULL res_voorziening,
|
|
rrr.res_rsv_ruimte_prijs res_rsv_prijs,
|
|
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
|
|
* 24
|
|
aantal, -- Duur in uren
|
|
rr.res_ruimte_prijs ps, -- Uur-tarief
|
|
rr.res_ruimte_prijs_ochtend po, -- Dagdeel-tarief
|
|
rr.res_ruimte_prijs_middag pm, -- Dag-tarief
|
|
21 btw
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr
|
|
WHERE rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
UNION ALL
|
|
SELECT rrd.res_rsv_ruimte_key,
|
|
rr.res_ruimte_nr,
|
|
'2V' res_type,
|
|
rd.res_ins_deel_key vnr,
|
|
LTRIM (ID.ins_deel_omschrijving)
|
|
|| DECODE (rd.res_deel_eenheid,
|
|
NULL, '',
|
|
' (' || rd.res_deel_eenheid || ')')
|
|
res_voorziening,
|
|
rrd.res_rsv_deel_prijs res_rsv_prijs,
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
|
|
aantal, -- Duur in uren
|
|
rd.res_deel_prijs ps, -- Uur-tarief
|
|
TO_NUMBER (NULL) po, -- Dagdeel-tarief
|
|
TO_NUMBER (NULL) pm, -- Dag-tarief
|
|
21 btw
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
res_v_aanwezigrsv_deel rrd,
|
|
res_deel rd,
|
|
ins_deel ID
|
|
WHERE rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key(+)
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_ins_deel_key = ID.ins_deel_key
|
|
UNION ALL
|
|
SELECT rra.res_rsv_ruimte_key,
|
|
rr.res_ruimte_nr,
|
|
'3C' res_type,
|
|
ra.res_artikel_volgnummer vnr,
|
|
LTRIM (ra.res_artikel_omschrijving)
|
|
|| DECODE (ra.res_artikel_eenheid,
|
|
NULL, '',
|
|
' (' || ra.res_artikel_eenheid || ')')
|
|
res_voorziening,
|
|
rra.res_rsv_artikel_prijs res_rsv_prijs,
|
|
rra.res_rsv_artikel_aantal aantal,
|
|
ra.res_artikel_prijs ps, -- Stuksprijs
|
|
TO_NUMBER (NULL) po, -- Dagdeel-tarief
|
|
TO_NUMBER (NULL) pm, -- Dag-tarief
|
|
COALESCE (rra.res_rsv_artikel_btw,
|
|
ra.res_artikel_btw,
|
|
21)
|
|
btw
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
res_v_aanwezigrsv_artikel rra,
|
|
res_artikel ra
|
|
WHERE rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key(+)
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
|
AND rra.res_artikel_key = ra.res_artikel_key) rvc
|
|
ON x.res_rsv_ruimte_key = rvc.res_rsv_ruimte_key
|
|
UNION ALL -- Additionele lidmaatschapregels voor leden!
|
|
SELECT 1 periode,
|
|
SUBSTR (
|
|
'000000'
|
|
|| TO_CHAR (COALESCE (y.prs_link_key, x.prs_perslid_key)),
|
|
-6
|
|
)
|
|
debnr,
|
|
COALESCE (x.bedrijf,
|
|
SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6))
|
|
bedrijf,
|
|
TRIM (pa.prs_kenmerklink_waarde) pa,
|
|
COALESCE (
|
|
TRIM (tav.prs_kenmerklink_waarde),
|
|
(SELECT DECODE (prs_perslid_geslacht,
|
|
0, 'Mevr. ',
|
|
1, 'Dhr. ',
|
|
'')
|
|
|| DECODE (prs_perslid_voorletters,
|
|
'', '',
|
|
prs_perslid_voorletters || ' ')
|
|
|| DECODE (prs_perslid_tussenvoegsel,
|
|
'', '',
|
|
prs_perslid_tussenvoegsel || ' ')
|
|
|| prs_perslid_naam
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key =
|
|
COALESCE (y.prs_link_key, x.prs_perslid_key))
|
|
)
|
|
tav,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cad.prs_kenmerklink_waarde),
|
|
TRIM (fad.prs_kenmerklink_waarde))
|
|
adres,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cpc.prs_kenmerklink_waarde),
|
|
TRIM (fpc.prs_kenmerklink_waarde))
|
|
postcode,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cpl.prs_kenmerklink_waarde),
|
|
TRIM (fpl.prs_kenmerklink_waarde))
|
|
plaats,
|
|
btwnr.prs_kenmerklink_waarde btwnr,
|
|
'***CONCEPT***' factuurnummer, -- Factuurnummer
|
|
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') factuurperiode,
|
|
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum,
|
|
TO_CHAR (SYSDATE + 24, 'dd-mm-yyyy') vervaldatum,
|
|
TO_CHAR (TRUNC (x.van - 1, 'mm'), 'yyyy-mm-dd hh24:mi')
|
|
|| x.lidmaatschap
|
|
sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
|
|
'0L' sortering2, -- ..daarbinnen op type (0L1R1S2V3C)
|
|
NULL resnr,
|
|
NULL datum_tijd,
|
|
NULL van,
|
|
NULL tot,
|
|
NULL bezoekers,
|
|
NULL res_activiteit_key,
|
|
'Lidmaatschap ' || x.lidmaatschap ruimte_voorzieningen,
|
|
NULL aantal,
|
|
NULL stuksprijs,
|
|
ROUND (250, 2) netto,
|
|
21 btwtarief,
|
|
ROUND (250 * 21 / 100, 2) btw,
|
|
NULL oms,
|
|
NULL opm
|
|
FROM -- Lidmaatschap maandelijks vooruit (VANAF 2013)!
|
|
( SELECT TRIM(bedrijf.prs_kenmerklink_waarde)
|
|
bedrijf,
|
|
MIN (p.prs_perslid_key)
|
|
prs_perslid_key,
|
|
TRUNC (SYSDATE, 'mm') van,
|
|
TO_CHAR (SYSDATE,
|
|
'yyyy-mm')
|
|
lidmaatschap
|
|
FROM prs_v_aanwezigperslid p,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key =
|
|
1000)
|
|
bedrijf,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key =
|
|
1024)
|
|
lidsinds,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key =
|
|
1025)
|
|
opgezegd
|
|
WHERE p.prs_afdeling_key = 21 -- Leden
|
|
AND p.prs_perslid_key =
|
|
bedrijf.prs_link_key(+)
|
|
AND p.prs_perslid_key =
|
|
lidsinds.prs_link_key
|
|
AND lidsinds.prs_link_key =
|
|
opgezegd.prs_link_key(+)
|
|
AND TRUNC (SYSDATE, 'mm') >=
|
|
fac.safe_to_date (
|
|
lidsinds.prs_kenmerklink_waarde,
|
|
'dd-mm-yyyy'
|
|
)
|
|
AND TRUNC (SYSDATE, 'mm') <
|
|
COALESCE (
|
|
fac.safe_to_date (
|
|
opgezegd.prs_kenmerklink_waarde,
|
|
'dd-mm-yyyy'
|
|
),
|
|
SYSDATE
|
|
)
|
|
GROUP BY TRIM(bedrijf.prs_kenmerklink_waarde)
|
|
UNION ALL -- Lidmaatschap over 2012-12 achteraf (EENMALIG)!
|
|
SELECT TRIM(bedrijf.prs_kenmerklink_waarde)
|
|
bedrijf,
|
|
MIN (p.prs_perslid_key)
|
|
prs_perslid_key,
|
|
TRUNC (SYSDATE, 'mm') van,
|
|
'2012-12' lidmaatschap
|
|
FROM prs_v_aanwezigperslid p,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key =
|
|
1000)
|
|
bedrijf,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key =
|
|
1024)
|
|
lidsinds
|
|
WHERE p.prs_afdeling_key = 21 -- Leden
|
|
AND p.prs_perslid_key =
|
|
bedrijf.prs_link_key(+)
|
|
AND p.prs_perslid_key =
|
|
lidsinds.prs_link_key
|
|
AND lidsinds.prs_kenmerklink_waarde LIKE
|
|
'%2012'
|
|
AND TO_CHAR (SYSDATE,
|
|
'yyyy-mm') =
|
|
'2013-01' -- Alleen dan dus!
|
|
GROUP BY TRIM(bedrijf.prs_kenmerklink_waarde))
|
|
x
|
|
LEFT JOIN
|
|
(SELECT c.bedrijf,
|
|
COALESCE (
|
|
mc.prs_link_key,
|
|
c.prs_link_key
|
|
)
|
|
prs_link_key
|
|
FROM ( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN(kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key =
|
|
1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key =
|
|
21 -- Leden
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
c
|
|
LEFT JOIN
|
|
( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN(kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key =
|
|
1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key =
|
|
21 -- Leden
|
|
AND p.prs_srtperslid_key =
|
|
482
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
mc
|
|
ON c.bedrijf = mc.bedrijf)
|
|
y
|
|
ON UPPER (x.bedrijf) = y.bedrijf
|
|
LEFT JOIN -- 1060 = Factuur p.a.
|
|
prs_v_aanwezigkenmerklink pa
|
|
ON COALESCE (y.prs_link_key,
|
|
x.prs_perslid_key) =
|
|
pa.prs_link_key
|
|
AND pa.prs_kenmerk_key = 1060
|
|
LEFT JOIN -- 1040 = Factuur t.a.v.
|
|
prs_v_aanwezigkenmerklink tav
|
|
ON COALESCE (y.prs_link_key,
|
|
x.prs_perslid_key) =
|
|
tav.prs_link_key
|
|
AND tav.prs_kenmerk_key = 1040
|
|
LEFT JOIN -- 1001 = C-Adres
|
|
prs_v_aanwezigkenmerklink cad
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
cad.prs_link_key
|
|
AND cad.prs_kenmerk_key = 1001
|
|
LEFT JOIN -- 1002 = C-Postcode
|
|
prs_v_aanwezigkenmerklink cpc
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
cpc.prs_link_key
|
|
AND cpc.prs_kenmerk_key = 1002
|
|
LEFT JOIN -- 1003 = C-Plaats
|
|
prs_v_aanwezigkenmerklink cpl
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
cpl.prs_link_key
|
|
AND cpl.prs_kenmerk_key = 1003
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fad
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
fad.prs_link_key
|
|
AND fad.prs_kenmerk_key = 1006 -- F-Adres
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fpc
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
fpc.prs_link_key
|
|
AND fpc.prs_kenmerk_key = 1007 -- F-Postcode
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fpl
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
fpl.prs_link_key
|
|
AND fpl.prs_kenmerk_key = 1008 -- F-Plaats
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink btwnr
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
btwnr.prs_link_key
|
|
AND btwnr.prs_kenmerk_key = 1005 -- BTW-nr
|
|
WHERE NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 82
|
|
AND TO_CHAR (fac_usrdata_aanmaak, 'yyyy-mm') =
|
|
TO_CHAR (SYSDATE, 'yyyy-mm')
|
|
AND fac.safe_to_number(SUBSTR (
|
|
fac_usrdata_omschr,
|
|
1,
|
|
LENGTH (
|
|
fac_usrdata_omschr
|
|
)
|
|
- 1
|
|
)) =
|
|
COALESCE (y.prs_link_key, x.prs_perslid_key))
|
|
UNION ALL -- Additionele kortingregels voor huurders/leden!
|
|
SELECT DECODE (TO_CHAR (x.van, 'yyyymm'),
|
|
TO_CHAR (SYSDATE, 'yyyymm'), 0,
|
|
1)
|
|
periode,
|
|
SUBSTR (
|
|
'000000'
|
|
|| TO_CHAR (COALESCE (y.prs_link_key, x.prs_perslid_key)),
|
|
-6
|
|
)
|
|
debnr,
|
|
COALESCE (x.bedrijf,
|
|
SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6))
|
|
bedrijf,
|
|
TRIM (pa.prs_kenmerklink_waarde) pa,
|
|
COALESCE (
|
|
TRIM (tav.prs_kenmerklink_waarde),
|
|
(SELECT DECODE (prs_perslid_geslacht,
|
|
0, 'Mevr. ',
|
|
1, 'Dhr. ',
|
|
'')
|
|
|| DECODE (prs_perslid_voorletters,
|
|
'', '',
|
|
prs_perslid_voorletters || ' ')
|
|
|| DECODE (prs_perslid_tussenvoegsel,
|
|
'', '',
|
|
prs_perslid_tussenvoegsel || ' ')
|
|
|| prs_perslid_naam
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key =
|
|
COALESCE (y.prs_link_key, x.prs_perslid_key))
|
|
)
|
|
tav,
|
|
NULL adres,
|
|
NULL postcode,
|
|
NULL plaats,
|
|
NULL btwnr,
|
|
'***CONCEPT***' factuurnummer, -- Factuurnummer
|
|
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') factuurperiode,
|
|
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum,
|
|
TO_CHAR (SYSDATE + 24, 'dd-mm-yyyy') vervaldatum,
|
|
TO_CHAR (x.van, 'yyyy-mm-dd hh24:mi')
|
|
|| x.res_ruimte_nr
|
|
|| x.res_reservering_key
|
|
sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
|
|
'1S' sortering2, -- ..daarbinnen op type (0L1R1S2V3C)
|
|
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr,
|
|
NULL datum_tijd,
|
|
NULL van,
|
|
NULL tot,
|
|
NULL bezoekers,
|
|
NULL res_activiteit_key,
|
|
x.res_ruimte_nr || ' 20% korting' ruimte_voorzieningen,
|
|
NULL aantal,
|
|
NULL stuksprijs,
|
|
ROUND (
|
|
DECODE (
|
|
SIGN (x.aantal - 8),
|
|
-1,
|
|
DECODE (SIGN (x.aantal - 4),
|
|
-1, x.aantal * x.ps,
|
|
x.po + (x.aantal - 4) * x.ps),
|
|
x.pm
|
|
)
|
|
* -0.2,
|
|
2
|
|
)
|
|
netto,
|
|
21 btwtarief,
|
|
ROUND (
|
|
DECODE (
|
|
SIGN (x.aantal - 8),
|
|
-1,
|
|
DECODE (SIGN (x.aantal - 4),
|
|
-1, x.aantal * x.ps,
|
|
x.po + (x.aantal - 4) * x.ps),
|
|
x.pm
|
|
)
|
|
* -0.2
|
|
* 21
|
|
/ 100,
|
|
2
|
|
)
|
|
btw,
|
|
NULL oms,
|
|
NULL opm
|
|
FROM (SELECT TRIM (bedrijf.prs_kenmerklink_waarde) bedrijf,
|
|
p.prs_perslid_key,
|
|
rrr.res_reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
rr.res_ruimte_nr,
|
|
rrr.res_rsv_ruimte_van van,
|
|
(rrr.res_rsv_ruimte_tot
|
|
- rrr.res_rsv_ruimte_van)
|
|
* 24
|
|
aantal,
|
|
rr.res_ruimte_prijs ps,
|
|
rr.res_ruimte_prijs_ochtend po,
|
|
rr.res_ruimte_prijs_middag pm
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
prs_perslid p,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key = 1000) bedrijf,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key = 1023) huurder,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key = 1024) lidsinds,
|
|
(SELECT *
|
|
FROM prs_v_aanwezigkenmerklink
|
|
WHERE prs_kenmerk_key = 1025) opgezegd
|
|
WHERE rrr.res_rsv_ruimte_ordernr IS NULL
|
|
AND rrr.res_status_fo_key IN (1, 2)
|
|
AND rrr.res_status_bo_key != 6 -- Nog niet AV
|
|
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
--AND rrr.res_rsv_ruimte_tot <
|
|
-- TO_DATE (
|
|
-- '01' || TO_CHAR (SYSDATE, 'mmyyyy'),
|
|
-- 'ddmmyyyy'
|
|
-- )
|
|
AND rrr.res_rsv_ruimte_tot <
|
|
SYSDATE + (1 / 24)
|
|
AND rrr.res_rsv_ruimte_contact_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN (21, 22) -- Leden/Niet leden
|
|
AND p.prs_perslid_key =
|
|
bedrijf.prs_link_key(+)
|
|
AND p.prs_perslid_key =
|
|
huurder.prs_link_key(+)
|
|
AND p.prs_perslid_key =
|
|
lidsinds.prs_link_key(+)
|
|
AND p.prs_perslid_key =
|
|
opgezegd.prs_link_key(+)
|
|
AND (huurder.prs_kenmerklink_waarde = 1
|
|
OR (TRUNC (rrr.res_rsv_ruimte_van, 'mm') >=
|
|
COALESCE (
|
|
fac.safe_to_date (
|
|
lidsinds.prs_kenmerklink_waarde,
|
|
'dd-mm-yyyy'
|
|
),
|
|
SYSDATE
|
|
)
|
|
AND TRUNC (rrr.res_rsv_ruimte_van,
|
|
'mm') <
|
|
COALESCE (
|
|
fac.safe_to_date (
|
|
opgezegd.prs_kenmerklink_waarde,
|
|
'dd-mm-yyyy'
|
|
),
|
|
SYSDATE
|
|
)))) x
|
|
LEFT JOIN
|
|
(SELECT c.bedrijf,
|
|
COALESCE (mc.prs_link_key, c.prs_link_key)
|
|
prs_link_key
|
|
FROM ( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN (kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
c
|
|
LEFT JOIN
|
|
( SELECT UPPER(TRIM(kl.prs_kenmerklink_waarde))
|
|
bedrijf,
|
|
MIN (kl.prs_link_key)
|
|
prs_link_key
|
|
FROM prs_v_aanwezigkenmerklink kl,
|
|
prs_perslid p
|
|
WHERE kl.prs_kenmerk_key = 1000
|
|
AND kl.prs_link_key =
|
|
p.prs_perslid_key
|
|
AND p.prs_afdeling_key IN
|
|
(21, 22) -- Leden/Niet leden
|
|
AND p.prs_srtperslid_key = 482
|
|
GROUP BY UPPER(TRIM(kl.prs_kenmerklink_waarde)))
|
|
mc
|
|
ON c.bedrijf = mc.bedrijf) y
|
|
ON UPPER (x.bedrijf) = y.bedrijf
|
|
LEFT JOIN -- 1060 = Factuur p.a.
|
|
prs_v_aanwezigkenmerklink pa
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
pa.prs_link_key
|
|
AND pa.prs_kenmerk_key = 1060
|
|
LEFT JOIN -- 1040 = Factuur t.a.v.
|
|
prs_v_aanwezigkenmerklink tav
|
|
ON COALESCE (y.prs_link_key, x.prs_perslid_key) =
|
|
tav.prs_link_key
|
|
AND tav.prs_kenmerk_key = 1040;
|
|
|
|
/* Formatted on 5-6-2013 16:35:45 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wibc_v_rap_res_frozen
|
|
(
|
|
hide_f_debnr,
|
|
fclt_f_bedrijf,
|
|
per_adres,
|
|
fclt_f_aanvrager,
|
|
adres,
|
|
postcode,
|
|
plaats,
|
|
btwnr,
|
|
fclt_f_factuur,
|
|
factuurperiode,
|
|
factuurdatum,
|
|
vervaldatum,
|
|
hide_f_datum,
|
|
hide_f_restype,
|
|
resnr,
|
|
datum,
|
|
van,
|
|
tot,
|
|
bezoekers,
|
|
activiteit_key,
|
|
ruimte_voorzieningen,
|
|
aantal,
|
|
stuksprijs,
|
|
kosten,
|
|
btwtarief,
|
|
btwkosten,
|
|
omschrijving,
|
|
opmerking
|
|
)
|
|
AS
|
|
SELECT SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6) debnr,
|
|
COALESCE (bedr.prs_kenmerklink_waarde,
|
|
SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6))
|
|
bedrijf,
|
|
TRIM (pa.prs_kenmerklink_waarde) pa,
|
|
COALESCE (
|
|
TRIM (tav.prs_kenmerklink_waarde),
|
|
(SELECT DECODE (prs_perslid_geslacht,
|
|
0, 'Mevr. ',
|
|
1, 'Dhr. ',
|
|
'')
|
|
|| DECODE (prs_perslid_voorletters,
|
|
'', '',
|
|
prs_perslid_voorletters || ' ')
|
|
|| DECODE (prs_perslid_tussenvoegsel,
|
|
'', '',
|
|
prs_perslid_tussenvoegsel || ' ')
|
|
|| prs_perslid_naam
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = x.prs_perslid_key)
|
|
)
|
|
tav,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cad.prs_kenmerklink_waarde),
|
|
TRIM (fad.prs_kenmerklink_waarde))
|
|
adres,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cpc.prs_kenmerklink_waarde),
|
|
TRIM (fpc.prs_kenmerklink_waarde))
|
|
postcode,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cpl.prs_kenmerklink_waarde),
|
|
TRIM (fpl.prs_kenmerklink_waarde))
|
|
plaats,
|
|
btwnr.prs_kenmerklink_waarde btwnr,
|
|
x.factuurnummer,
|
|
TO_CHAR (TRUNC (x.factuurdatum, 'mm') - 1, 'yyyy-mm')
|
|
factuurperiode,
|
|
TO_CHAR (x.factuurdatum, 'dd-mm-yyyy') factuurdatum,
|
|
TO_CHAR (x.vervaldatum, 'dd-mm-yyyy') vervaldatum,
|
|
TO_CHAR (x.van, 'yyyy-mm-dd hh24:mi')
|
|
|| rvc.res_ruimte_nr
|
|
|| x.res_reservering_key
|
|
sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
|
|
rvc.res_type || SUBSTR ('000000' || TO_CHAR (rvc.vnr), -6)
|
|
sortering2, -- ..daarbinnen op type (1R2V3C) en dan volgnr
|
|
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr,
|
|
TO_CHAR (x.van, 'dd-mm-yyyy') datum_tijd,
|
|
TO_CHAR (x.van, 'hh24:mi') van,
|
|
TO_CHAR (x.tot, 'hh24:mi') tot,
|
|
TO_CHAR (x.res_rsv_ruimte_bezoekers) bezoekers,
|
|
x.res_activiteit_key,
|
|
DECODE (
|
|
rvc.res_type,
|
|
'2V',
|
|
rvc.res_voorziening || ' / ' || TO_CHAR (rvc.aantal) || ' uur',
|
|
'3C',
|
|
DECODE (x.res_activiteit_key,
|
|
50, x.res_rsv_ruimte_omschrijving,
|
|
70, x.res_rsv_ruimte_omschrijving,
|
|
TO_CHAR (rvc.aantal) || ' * ' || rvc.res_voorziening),
|
|
rvc.res_ruimte_nr -- '1R'
|
|
)
|
|
ruimte_voorzieningen,
|
|
TO_CHAR (rvc.aantal) aantal,
|
|
ROUND (
|
|
COALESCE (rvc.res_rsv_prijs, 0)
|
|
/ DECODE (rvc.aantal, NULL, 1, 0, 1, rvc.aantal),
|
|
2
|
|
)
|
|
stuksprijs,
|
|
ROUND (
|
|
DECODE ( -- '2V' of '3C'
|
|
x.res_activiteit_key,
|
|
50, -- Creditboeking
|
|
-1 * COALESCE (rvc.res_rsv_prijs, 0),
|
|
COALESCE (rvc.res_rsv_prijs, 0)),
|
|
2
|
|
)
|
|
netto,
|
|
rvc.btw btwtarief,
|
|
ROUND (
|
|
DECODE ( -- '2V' of '3C'
|
|
x.res_activiteit_key,
|
|
50, -- Creditboeking
|
|
-1 * COALESCE (rvc.res_rsv_prijs, 0),
|
|
COALESCE (rvc.res_rsv_prijs, 0))
|
|
* rvc.btw
|
|
/ 100,
|
|
2
|
|
)
|
|
btw,
|
|
x.res_rsv_ruimte_omschrijving oms,
|
|
x.res_rsv_ruimte_opmerking opm
|
|
FROM (SELECT rr.res_rsv_ruimte_key,
|
|
rr.res_reservering_key,
|
|
rr.res_rsv_ruimte_volgnr,
|
|
rr.res_rsv_ruimte_van
|
|
van,
|
|
rr.res_rsv_ruimte_tot
|
|
tot,
|
|
rr.res_activiteit_key,
|
|
rr.res_rsv_ruimte_bezoekers,
|
|
rr.res_rsv_ruimte_omschrijving,
|
|
rr.res_rsv_ruimte_opmerking,
|
|
fac.safe_to_number(SUBSTR (
|
|
ud.fac_usrdata_omschr,
|
|
1,
|
|
LENGTH(ud.fac_usrdata_omschr)
|
|
- 1
|
|
))
|
|
prs_perslid_key,
|
|
ud.fac_usrdata_code
|
|
factuurnummer,
|
|
ud.fac_usrdata_aanmaak
|
|
factuurdatum,
|
|
ud.fac_usrdata_vervaldatum
|
|
vervaldatum
|
|
FROM res_v_aanwezigrsv_ruimte rr,
|
|
fac_v_aanwezigusrdata ud
|
|
WHERE rr.res_rsv_ruimte_ordernr =
|
|
ud.fac_usrdata_code
|
|
AND ud.fac_usrtab_key =
|
|
82) x
|
|
LEFT JOIN -- 1060 = Factuur p.a.
|
|
prs_v_aanwezigkenmerklink pa
|
|
ON x.prs_perslid_key =
|
|
pa.prs_link_key
|
|
AND pa.prs_kenmerk_key = 1060
|
|
LEFT JOIN -- 1040 = Factuur t.a.v.
|
|
prs_v_aanwezigkenmerklink tav
|
|
ON x.prs_perslid_key =
|
|
tav.prs_link_key
|
|
AND tav.prs_kenmerk_key = 1040
|
|
LEFT JOIN -- 1000 = Bedrijf
|
|
prs_v_aanwezigkenmerklink bedr
|
|
ON x.prs_perslid_key = bedr.prs_link_key
|
|
AND bedr.prs_kenmerk_key = 1000
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cad
|
|
ON x.prs_perslid_key = cad.prs_link_key
|
|
AND cad.prs_kenmerk_key = 1001 -- C-Adres
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cpc
|
|
ON x.prs_perslid_key = cpc.prs_link_key
|
|
AND cpc.prs_kenmerk_key = 1002 -- C-Postcode
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cpl
|
|
ON x.prs_perslid_key = cpl.prs_link_key
|
|
AND cpl.prs_kenmerk_key = 1003 -- C-Plaats
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fad
|
|
ON x.prs_perslid_key = fad.prs_link_key
|
|
AND fad.prs_kenmerk_key = 1006 -- F-Adres
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fpc
|
|
ON x.prs_perslid_key = fpc.prs_link_key
|
|
AND fpc.prs_kenmerk_key = 1007 -- F-Postcode
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fpl
|
|
ON x.prs_perslid_key = fpl.prs_link_key
|
|
AND fpl.prs_kenmerk_key = 1008 -- F-Plaats
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink btwnr
|
|
ON x.prs_perslid_key = btwnr.prs_link_key
|
|
AND btwnr.prs_kenmerk_key = 1005 -- BTW-nr
|
|
LEFT JOIN
|
|
(SELECT rrr.res_rsv_ruimte_key,
|
|
rr.res_ruimte_nr,
|
|
'1R' res_type,
|
|
TO_NUMBER (NULL) vnr,
|
|
NULL res_voorziening,
|
|
rrr.res_rsv_ruimte_prijs res_rsv_prijs,
|
|
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
|
|
* 24
|
|
aantal, -- Duur in uren
|
|
21 btw
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr
|
|
WHERE rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
UNION ALL
|
|
SELECT rrd.res_rsv_ruimte_key,
|
|
rr.res_ruimte_nr,
|
|
'2V' res_type,
|
|
rd.res_ins_deel_key vnr,
|
|
LTRIM (ID.ins_deel_omschrijving)
|
|
|| DECODE (rd.res_deel_eenheid,
|
|
NULL, '',
|
|
' (' || rd.res_deel_eenheid || ')')
|
|
res_voorziening,
|
|
rrd.res_rsv_deel_prijs res_rsv_prijs,
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
|
|
aantal, -- Duur in uren
|
|
21 btw
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
res_v_aanwezigrsv_deel rrd,
|
|
res_deel rd,
|
|
ins_deel ID
|
|
WHERE rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key(+)
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_ins_deel_key = ID.ins_deel_key
|
|
UNION ALL
|
|
SELECT rra.res_rsv_ruimte_key,
|
|
rr.res_ruimte_nr,
|
|
'3C' res_type,
|
|
ra.res_artikel_volgnummer vnr,
|
|
LTRIM (ra.res_artikel_omschrijving)
|
|
|| DECODE (ra.res_artikel_eenheid,
|
|
NULL, '',
|
|
' (' || ra.res_artikel_eenheid || ')')
|
|
res_voorziening,
|
|
--DECODE (ra.res_artikel_key, -1, -1, 1) * -- Korting
|
|
rra.res_rsv_artikel_prijs res_rsv_prijs,
|
|
rra.res_rsv_artikel_aantal aantal,
|
|
COALESCE (rra.res_rsv_artikel_btw,
|
|
ra.res_artikel_btw,
|
|
21)
|
|
btw
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
res_v_aanwezigrsv_artikel rra,
|
|
res_artikel ra
|
|
WHERE rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key(+)
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
|
|
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
|
AND rra.res_artikel_key = ra.res_artikel_key) rvc
|
|
ON x.res_rsv_ruimte_key = rvc.res_rsv_ruimte_key
|
|
UNION ALL -- Additionele lidmaatschapregels voor leden!
|
|
SELECT SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6) debnr,
|
|
COALESCE (bedr.prs_kenmerklink_waarde,
|
|
SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6))
|
|
bedrijf,
|
|
TRIM (pa.prs_kenmerklink_waarde) pa,
|
|
COALESCE (
|
|
TRIM (tav.prs_kenmerklink_waarde),
|
|
(SELECT DECODE (prs_perslid_geslacht,
|
|
0, 'Mevr. ',
|
|
1, 'Dhr. ',
|
|
'')
|
|
|| DECODE (prs_perslid_voorletters,
|
|
'', '',
|
|
prs_perslid_voorletters || ' ')
|
|
|| DECODE (prs_perslid_tussenvoegsel,
|
|
'', '',
|
|
prs_perslid_tussenvoegsel || ' ')
|
|
|| prs_perslid_naam
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = x.prs_perslid_key)
|
|
)
|
|
tav,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cad.prs_kenmerklink_waarde),
|
|
TRIM (fad.prs_kenmerklink_waarde))
|
|
adres,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cpc.prs_kenmerklink_waarde),
|
|
TRIM (fpc.prs_kenmerklink_waarde))
|
|
postcode,
|
|
DECODE (fad.prs_kenmerklink_waarde,
|
|
NULL, TRIM (cpl.prs_kenmerklink_waarde),
|
|
TRIM (fpl.prs_kenmerklink_waarde))
|
|
plaats,
|
|
btwnr.prs_kenmerklink_waarde btwnr,
|
|
x.factuurnummer,
|
|
TO_CHAR (TRUNC (x.factuurdatum, 'mm') - 1, 'yyyy-mm')
|
|
factuurperiode,
|
|
TO_CHAR (x.factuurdatum, 'dd-mm-yyyy') factuurdatum,
|
|
TO_CHAR (x.vervaldatum, 'dd-mm-yyyy') vervaldatum,
|
|
TO_CHAR (TRUNC (TRUNC (x.factuurdatum, 'mm') - 1, 'mm'),
|
|
'yyyy-mm-dd hh24:mi')
|
|
|| x.lidmaatschap
|
|
sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
|
|
'0L' sortering2, -- ..daarbinnen op type (0L1R1S2V3C)
|
|
NULL resnr,
|
|
NULL datum_tijd,
|
|
NULL van,
|
|
NULL tot,
|
|
NULL bezoekers,
|
|
NULL res_activiteit_key,
|
|
'Lidmaatschap ' || x.lidmaatschap ruimte_voorzieningen,
|
|
NULL aantal,
|
|
NULL stuksprijs,
|
|
ROUND (250, 2) netto,
|
|
21 btwtarief,
|
|
ROUND (250 * 21 / 100, 2) btw,
|
|
NULL oms,
|
|
NULL opm
|
|
FROM (SELECT fac.safe_to_number(SUBSTR (
|
|
fac_usrdata_omschr,
|
|
1,
|
|
LENGTH(fac_usrdata_omschr)
|
|
- 1
|
|
))
|
|
prs_perslid_key,
|
|
fac_usrdata_code
|
|
factuurnummer,
|
|
fac_usrdata_aanmaak
|
|
factuurdatum,
|
|
fac_usrdata_vervaldatum
|
|
vervaldatum,
|
|
TO_CHAR (
|
|
fac_usrdata_aanmaak,
|
|
'yyyy-mm'
|
|
)
|
|
lidmaatschap
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 82
|
|
AND SUBSTR (
|
|
fac_usrdata_omschr,
|
|
-1
|
|
) IN
|
|
('L', 'X') -- Lidmaatschap
|
|
UNION ALL
|
|
SELECT fac.safe_to_number(SUBSTR (
|
|
fac_usrdata_omschr,
|
|
1,
|
|
LENGTH(fac_usrdata_omschr)
|
|
- 1
|
|
))
|
|
prs_perslid_key,
|
|
fac_usrdata_code
|
|
factuurnummer,
|
|
fac_usrdata_aanmaak
|
|
factuurdatum,
|
|
fac_usrdata_vervaldatum
|
|
vervaldatum,
|
|
'2012-12' lidmaatschap
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 82
|
|
AND SUBSTR (
|
|
fac_usrdata_omschr,
|
|
-1
|
|
) IN
|
|
('L', 'X') -- Lidmaatschap
|
|
AND TO_CHAR (
|
|
fac_usrdata_aanmaak,
|
|
'yyyy-mm'
|
|
) = '2013-01') x
|
|
LEFT JOIN -- 1060 = Factuur p.a.
|
|
prs_v_aanwezigkenmerklink pa
|
|
ON x.prs_perslid_key = pa.prs_link_key
|
|
AND pa.prs_kenmerk_key = 1060
|
|
LEFT JOIN -- 1040 = Factuur t.a.v.
|
|
prs_v_aanwezigkenmerklink tav
|
|
ON x.prs_perslid_key = tav.prs_link_key
|
|
AND tav.prs_kenmerk_key = 1040
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink bedr
|
|
ON x.prs_perslid_key = bedr.prs_link_key
|
|
AND bedr.prs_kenmerk_key = 1000 -- Bedrijf
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cad
|
|
ON x.prs_perslid_key = cad.prs_link_key
|
|
AND cad.prs_kenmerk_key = 1001 -- C-Adres
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cpc
|
|
ON x.prs_perslid_key = cpc.prs_link_key
|
|
AND cpc.prs_kenmerk_key = 1002 -- C-Postcode
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink cpl
|
|
ON x.prs_perslid_key = cpl.prs_link_key
|
|
AND cpl.prs_kenmerk_key = 1003 -- C-Plaats
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fad
|
|
ON x.prs_perslid_key = fad.prs_link_key
|
|
AND fad.prs_kenmerk_key = 1006 -- F-Adres
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fpc
|
|
ON x.prs_perslid_key = fpc.prs_link_key
|
|
AND fpc.prs_kenmerk_key = 1007 -- F-Postcode
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink fpl
|
|
ON x.prs_perslid_key = fpl.prs_link_key
|
|
AND fpl.prs_kenmerk_key = 1008 -- F-Plaats
|
|
LEFT JOIN
|
|
prs_v_aanwezigkenmerklink btwnr
|
|
ON x.prs_perslid_key = btwnr.prs_link_key
|
|
AND btwnr.prs_kenmerk_key = 1005 -- BTW-nr
|
|
UNION ALL -- Additionele kortingregels voor huurders/leden!
|
|
SELECT SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6) debnr,
|
|
COALESCE (bedr.prs_kenmerklink_waarde,
|
|
SUBSTR ('000000' || TO_CHAR (x.prs_perslid_key), -6))
|
|
bedrijf,
|
|
TRIM (pa.prs_kenmerklink_waarde) pa,
|
|
COALESCE (
|
|
TRIM (tav.prs_kenmerklink_waarde),
|
|
(SELECT DECODE (prs_perslid_geslacht,
|
|
0, 'Mevr. ',
|
|
1, 'Dhr. ',
|
|
'')
|
|
|| DECODE (prs_perslid_voorletters,
|
|
'', '',
|
|
prs_perslid_voorletters || ' ')
|
|
|| DECODE (prs_perslid_tussenvoegsel,
|
|
'', '',
|
|
prs_perslid_tussenvoegsel || ' ')
|
|
|| prs_perslid_naam
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = x.prs_perslid_key)
|
|
)
|
|
tav,
|
|
NULL adres,
|
|
NULL postcode,
|
|
NULL plaats,
|
|
NULL btwnr,
|
|
x.factuurnummer,
|
|
TO_CHAR (TRUNC (x.factuurdatum, 'mm') - 1, 'yyyy-mm')
|
|
factuurperiode,
|
|
TO_CHAR (x.factuurdatum, 'dd-mm-yyyy') factuurdatum,
|
|
TO_CHAR (x.vervaldatum, 'dd-mm-yyyy') vervaldatum,
|
|
TO_CHAR (x.van, 'yyyy-mm-dd hh24:mi')
|
|
|| x.res_ruimte_nr
|
|
|| x.res_reservering_key
|
|
sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
|
|
'1S' sortering2, -- ..daarbinnen op type (0L1R1S2V3C)
|
|
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr,
|
|
NULL datum_tijd,
|
|
NULL van,
|
|
NULL tot,
|
|
NULL bezoekers,
|
|
NULL res_activiteit_key,
|
|
x.res_ruimte_nr || ' 20% korting' ruimte_voorzieningen,
|
|
NULL aantal,
|
|
NULL stuksprijs,
|
|
ROUND (COALESCE (x.res_rsv_ruimte_prijs, 0) * -0.2, 2) netto,
|
|
21 btwtarief,
|
|
ROUND (COALESCE (x.res_rsv_ruimte_prijs, 0) * -0.2 * 21 / 100, 2)
|
|
btw,
|
|
NULL oms,
|
|
NULL opm
|
|
FROM (SELECT fac.safe_to_number(SUBSTR (
|
|
fac_usrdata_omschr,
|
|
1,
|
|
LENGTH (
|
|
fac_usrdata_omschr
|
|
)
|
|
- 1
|
|
))
|
|
prs_perslid_key,
|
|
fac_usrdata_code factuurnummer,
|
|
fac_usrdata_aanmaak factuurdatum,
|
|
fac_usrdata_vervaldatum vervaldatum,
|
|
rrr.res_reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
rr.res_ruimte_nr,
|
|
rrr.res_rsv_ruimte_van van,
|
|
rrr.res_rsv_ruimte_prijs
|
|
FROM fac_v_aanwezigusrdata ud,
|
|
res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_ruimte rr
|
|
WHERE ud.fac_usrtab_key = 82
|
|
AND SUBSTR (ud.fac_usrdata_omschr, -1) IN
|
|
('H', 'L', 'X') -- Ruimtekorting
|
|
AND ud.fac_usrdata_code =
|
|
rrr.res_rsv_ruimte_ordernr
|
|
AND rrr.res_status_bo_key = 6 -- AV (zou zo moeten zijn)
|
|
AND rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key) x
|
|
LEFT JOIN -- 1060 = Factuur p.a.
|
|
prs_v_aanwezigkenmerklink pa
|
|
ON x.prs_perslid_key = pa.prs_link_key
|
|
AND pa.prs_kenmerk_key = 1060
|
|
LEFT JOIN -- 1040 = Factuur t.a.v.
|
|
prs_v_aanwezigkenmerklink tav
|
|
ON x.prs_perslid_key = tav.prs_link_key
|
|
AND tav.prs_kenmerk_key = 1040
|
|
LEFT JOIN -- 1000 = Bedrijf
|
|
prs_v_aanwezigkenmerklink bedr
|
|
ON x.prs_perslid_key = bedr.prs_link_key
|
|
AND bedr.prs_kenmerk_key = 1000;
|
|
|
|
|
|
/* Formatted on 5-6-2013 15:05:55 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wibc_v_rap_freezereserveringen
|
|
(
|
|
hide_f_prskey,
|
|
hide_f_debnr,
|
|
fclt_f_bedrijf,
|
|
fclt_f_aanvrager,
|
|
aantal,
|
|
periode
|
|
)
|
|
AS
|
|
SELECT x.hide_f_prskey,
|
|
x.hide_f_debnr,
|
|
x.fclt_f_bedrijf,
|
|
x.fclt_f_aanvrager,
|
|
x.aantal,
|
|
1 periode -- Altijd 1!
|
|
FROM ( SELECT fac.safe_to_number (v.hide_f_debnr) hide_f_prskey,
|
|
v.hide_f_debnr,
|
|
v.fclt_f_bedrijf,
|
|
v.fclt_f_aanvrager,
|
|
COUNT (DISTINCT v.resnr) aantal,
|
|
SUM (v.periode) periode
|
|
FROM wibc_v_rap_res_actual v
|
|
WHERE v.periode > 0
|
|
GROUP BY fac.safe_to_number (v.hide_f_debnr),
|
|
v.hide_f_debnr,
|
|
v.fclt_f_bedrijf,
|
|
v.fclt_f_aanvrager) x
|
|
WHERE x.periode > 0
|
|
UNION ALL -- Enkele reservering deze maand (en niets voorgaande maand)!
|
|
SELECT x.hide_f_prskey,
|
|
x.hide_f_debnr,
|
|
x.fclt_f_bedrijf,
|
|
x.fclt_f_aanvrager,
|
|
x.aantal,
|
|
x.periode -- Altijd 0!
|
|
FROM ( SELECT fac.safe_to_number (v.hide_f_debnr) hide_f_prskey,
|
|
v.hide_f_debnr,
|
|
v.fclt_f_bedrijf,
|
|
v.fclt_f_aanvrager,
|
|
COUNT (DISTINCT v.resnr) aantal,
|
|
SUM (v.periode) periode
|
|
FROM wibc_v_rap_res_actual v
|
|
GROUP BY fac.safe_to_number (v.hide_f_debnr),
|
|
v.hide_f_debnr,
|
|
v.fclt_f_bedrijf,
|
|
v.fclt_f_aanvrager) x
|
|
WHERE x.aantal = 1 AND x.periode = 0;
|
|
|
|
/* Formatted on 5-6-2013 12:24:42 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wibc_v_rap_transactielijst
|
|
(
|
|
hide_f_bb_key,
|
|
fclt_f_afschrift,
|
|
fclt_d_boekdatum,
|
|
omschrijving,
|
|
fclt_f_cd,
|
|
t_bedrag,
|
|
r_waarde,
|
|
r_bedrag
|
|
)
|
|
AS
|
|
SELECT bb.bankboek_key,
|
|
bb.afschriftnr,
|
|
TO_CHAR (TO_DATE (bb.boekdat_nieuw, 'yymmdd'), 'dd-mm-yyyy')
|
|
boekdatum,
|
|
bb.omschrijving,
|
|
bb.creditdebet,
|
|
bb.bedrag,
|
|
bb.ref_waarde,
|
|
(SELECT SUM (kosten + btwkosten)
|
|
FROM wibc_v_rap_res_frozen v
|
|
WHERE INSTR (UPPER (bb.ref_waarde), v.fclt_f_factuur) > 0)
|
|
ref_bedrag
|
|
FROM wibc_bankboek bb;
|
|
|
|
/* Formatted on 7-6-2013 11:55:44 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wibc_v_rap_charge_register
|
|
(
|
|
invoice_nr,
|
|
fclt_f_name,
|
|
fclt_f_firm,
|
|
due_date,
|
|
fclt_f_post_month,
|
|
net_amount,
|
|
VAT,
|
|
gross,
|
|
amount_paid,
|
|
remarks
|
|
)
|
|
AS
|
|
SELECT f.fclt_f_factuur,
|
|
f.fclt_f_aanvrager,
|
|
f.fclt_f_bedrijf,
|
|
f.vervaldatum,
|
|
SUBSTR (f.factuurperiode, 6, 2)
|
|
|| '/'
|
|
|| SUBSTR (f.factuurperiode, 1, 4)
|
|
factuurperiode,
|
|
f.kosten netto,
|
|
f.btwkosten btw,
|
|
f.kosten + f.btwkosten bruto,
|
|
t.t_bedrag,
|
|
DECODE (t.aantal,
|
|
NULL, NULL,
|
|
1, t.ref_waarde,
|
|
'Meer dan 1 transactie!')
|
|
FROM ( SELECT fclt_f_factuur,
|
|
MIN (fclt_f_bedrijf) fclt_f_bedrijf,
|
|
MIN (fclt_f_aanvrager) fclt_f_aanvrager,
|
|
MIN (factuurperiode) factuurperiode,
|
|
MIN (vervaldatum) vervaldatum,
|
|
SUM (kosten) kosten,
|
|
SUM (btwkosten) btwkosten
|
|
FROM wibc_v_rap_res_frozen v
|
|
GROUP BY fclt_f_factuur) f
|
|
LEFT JOIN
|
|
( SELECT ud.fac_usrdata_upper,
|
|
SUM (
|
|
DECODE (bb.creditdebet, 'D', -1, 1) * bb.bedrag
|
|
)
|
|
t_bedrag,
|
|
COUNT ( * ) aantal,
|
|
MAX (bb.ref_waarde) ref_waarde
|
|
FROM fac_usrdata ud, wibc_bankboek bb
|
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrtab_key = 82
|
|
AND INSTR (UPPER (bb.ref_waarde),
|
|
ud.fac_usrdata_upper) > 0
|
|
GROUP BY ud.fac_usrdata_upper) t
|
|
ON f.fclt_f_factuur = t.fac_usrdata_upper;
|
|
|
|
/* Formatted on 7-6-2013 11:55:44 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wibc_v_rap_openpostenlijst
|
|
(
|
|
fclt_f_legal_entity,
|
|
property,
|
|
fclt_f_charge_to,
|
|
fclt_f_factuurnummer,
|
|
factuurdatum,
|
|
vervaldatum,
|
|
boekperiode,
|
|
totaal_gefactureerd,
|
|
current_owed,
|
|
owed_0_30,
|
|
owed_31_60,
|
|
owed_61_90,
|
|
owed_91_120,
|
|
owed_over_120,
|
|
betalingen,
|
|
memo
|
|
)
|
|
AS
|
|
SELECT f.fclt_f_bedrijf,
|
|
'WTC The Hague Business Center',
|
|
f.fclt_f_aanvrager,
|
|
f.fclt_f_factuur,
|
|
f.factuurdatum,
|
|
f.vervaldatum,
|
|
SUBSTR (f.factuurperiode, 6, 2)
|
|
|| '/'
|
|
|| SUBSTR (f.factuurperiode, 1, 4)
|
|
factuurperiode,
|
|
f.f_bedrag,
|
|
f.f_bedrag - COALESCE (t.t_bedrag, 0),
|
|
CASE
|
|
WHEN TRUNC (SYSDATE) - TO_DATE (f.factuurdatum, 'dd-mm-yyyy') BETWEEN 0
|
|
AND 30
|
|
THEN
|
|
f.f_bedrag - COALESCE (paid1, 0)
|
|
ELSE
|
|
TO_NUMBER (NULL)
|
|
END
|
|
owed1,
|
|
CASE
|
|
WHEN TRUNC (SYSDATE) - TO_DATE (f.factuurdatum, 'dd-mm-yyyy') BETWEEN 31
|
|
AND 60
|
|
THEN
|
|
f.f_bedrag - COALESCE (paid1, 0) - COALESCE (paid2, 0)
|
|
ELSE
|
|
TO_NUMBER (NULL)
|
|
END
|
|
owed2,
|
|
CASE
|
|
WHEN TRUNC (SYSDATE) - TO_DATE (f.factuurdatum, 'dd-mm-yyyy') BETWEEN 61
|
|
AND 90
|
|
THEN
|
|
f.f_bedrag
|
|
- COALESCE (paid1, 0)
|
|
- COALESCE (paid2, 0)
|
|
- COALESCE (paid3, 0)
|
|
ELSE
|
|
TO_NUMBER (NULL)
|
|
END
|
|
owed3,
|
|
CASE
|
|
WHEN TRUNC (SYSDATE) - TO_DATE (f.factuurdatum, 'dd-mm-yyyy') BETWEEN 91
|
|
AND 120
|
|
THEN
|
|
f.f_bedrag
|
|
- COALESCE (paid1, 0)
|
|
- COALESCE (paid2, 0)
|
|
- COALESCE (paid3, 0)
|
|
- COALESCE (paid4, 0)
|
|
ELSE
|
|
TO_NUMBER (NULL)
|
|
END
|
|
owed4,
|
|
CASE
|
|
WHEN (TRUNC (SYSDATE) - TO_DATE (f.factuurdatum, 'dd-mm-yyyy')) >
|
|
120
|
|
THEN
|
|
f.f_bedrag
|
|
- COALESCE (paid1, 0)
|
|
- COALESCE (paid2, 0)
|
|
- COALESCE (paid3, 0)
|
|
- COALESCE (paid4, 0)
|
|
- COALESCE (paid5, 0)
|
|
ELSE
|
|
TO_NUMBER (NULL)
|
|
END
|
|
owed5,
|
|
t.t_bedrag,
|
|
NULL
|
|
FROM ( SELECT fclt_f_factuur,
|
|
MIN (fclt_f_bedrijf) fclt_f_bedrijf,
|
|
MIN (fclt_f_aanvrager) fclt_f_aanvrager,
|
|
MIN (factuurperiode) factuurperiode,
|
|
MIN (factuurdatum) factuurdatum,
|
|
MIN (vervaldatum) vervaldatum,
|
|
SUM (kosten + btwkosten) f_bedrag
|
|
FROM wibc_v_rap_res_frozen
|
|
GROUP BY fclt_f_factuur) f
|
|
LEFT JOIN
|
|
( SELECT ud.fac_usrdata_upper,
|
|
MIN(DECODE (
|
|
UPPER(SUBSTR (
|
|
bb.ref_waarde || 'x',
|
|
INSTR (UPPER (bb.ref_waarde),
|
|
ud.fac_usrdata_upper)
|
|
+ 8,
|
|
1
|
|
)),
|
|
'=',
|
|
1,
|
|
0
|
|
))
|
|
force_match,
|
|
SUM(DECODE (bb.creditdebet, 'C', 1, -1)
|
|
* bb.bedrag) -- 'D' en '-' negatief!
|
|
t_bedrag
|
|
FROM fac_usrdata ud, wibc_bankboek bb
|
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrtab_key = 82
|
|
AND INSTR (UPPER (bb.ref_waarde),
|
|
ud.fac_usrdata_upper) > 0
|
|
GROUP BY ud.fac_usrdata_upper) t
|
|
ON f.fclt_f_factuur = t.fac_usrdata_upper
|
|
LEFT JOIN
|
|
( SELECT x.fac_usrdata_upper,
|
|
SUM (x.paid1) paid1,
|
|
SUM (x.paid2) paid2,
|
|
SUM (x.paid3) paid3,
|
|
SUM (x.paid4) paid4,
|
|
SUM (x.paid5) paid5
|
|
FROM ( SELECT ud.fac_usrdata_upper,
|
|
SUM(DECODE (bb.creditdebet, 'C', 1, -1)
|
|
* bb.bedrag)
|
|
paid1,
|
|
0 paid2,
|
|
0 paid3,
|
|
0 paid4,
|
|
0 paid5
|
|
FROM fac_usrdata ud, wibc_bankboek bb
|
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrtab_key = 82
|
|
AND INSTR (UPPER (bb.ref_waarde),
|
|
ud.fac_usrdata_upper) > 0
|
|
AND TO_DATE (bb.valutadat, 'yymmdd')
|
|
- ud.fac_usrdata_aanmaak BETWEEN 0
|
|
AND 30
|
|
GROUP BY ud.fac_usrdata_upper
|
|
UNION ALL
|
|
SELECT ud.fac_usrdata_upper,
|
|
0 paid1,
|
|
SUM(DECODE (bb.creditdebet, 'C', 1, -1)
|
|
* bb.bedrag)
|
|
paid2,
|
|
0 paid3,
|
|
0 paid4,
|
|
0 paid5
|
|
FROM fac_usrdata ud, wibc_bankboek bb
|
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrtab_key = 82
|
|
AND INSTR (UPPER (bb.ref_waarde),
|
|
ud.fac_usrdata_upper) > 0
|
|
AND TO_DATE (bb.valutadat, 'yymmdd')
|
|
- ud.fac_usrdata_aanmaak BETWEEN 31
|
|
AND 60
|
|
GROUP BY ud.fac_usrdata_upper
|
|
UNION ALL
|
|
SELECT ud.fac_usrdata_upper,
|
|
0 paid1,
|
|
0 paid2,
|
|
SUM(DECODE (bb.creditdebet, 'C', 1, -1)
|
|
* bb.bedrag)
|
|
paid3,
|
|
0 paid4,
|
|
0 paid5
|
|
FROM fac_usrdata ud, wibc_bankboek bb
|
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrtab_key = 82
|
|
AND INSTR (UPPER (bb.ref_waarde),
|
|
ud.fac_usrdata_upper) > 0
|
|
AND TO_DATE (bb.valutadat, 'yymmdd')
|
|
- ud.fac_usrdata_aanmaak BETWEEN 61
|
|
AND 90
|
|
GROUP BY ud.fac_usrdata_upper
|
|
UNION ALL
|
|
SELECT ud.fac_usrdata_upper,
|
|
0 paid1,
|
|
0 paid2,
|
|
0 paid3,
|
|
SUM(DECODE (bb.creditdebet, 'C', 1, -1)
|
|
* bb.bedrag)
|
|
paid4,
|
|
0 paid5
|
|
FROM fac_usrdata ud, wibc_bankboek bb
|
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrtab_key = 82
|
|
AND INSTR (UPPER (bb.ref_waarde),
|
|
ud.fac_usrdata_upper) > 0
|
|
AND TO_DATE (bb.valutadat, 'yymmdd')
|
|
- ud.fac_usrdata_aanmaak BETWEEN 91
|
|
AND 120
|
|
GROUP BY ud.fac_usrdata_upper
|
|
UNION ALL
|
|
SELECT ud.fac_usrdata_upper,
|
|
0 paid1,
|
|
0 paid2,
|
|
0 paid3,
|
|
0 paid4,
|
|
SUM(DECODE (bb.creditdebet, 'C', 1, -1)
|
|
* bb.bedrag)
|
|
paid5
|
|
FROM fac_usrdata ud, wibc_bankboek bb
|
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrtab_key = 82
|
|
AND INSTR (UPPER (bb.ref_waarde),
|
|
ud.fac_usrdata_upper) > 0
|
|
AND TO_DATE (bb.valutadat, 'yymmdd')
|
|
- ud.fac_usrdata_aanmaak > 120
|
|
GROUP BY ud.fac_usrdata_upper) x
|
|
GROUP BY x.fac_usrdata_upper) p
|
|
ON f.fclt_f_factuur = p.fac_usrdata_upper
|
|
--LEFT JOIN -- Eerdere factuur (debet) weggestreept door credit!
|
|
-- (SELECT ud.fac_usrdata_upper, 1 debet_ok
|
|
-- FROM fac_usrdata ud, wibc_bankboek bb
|
|
-- WHERE ud.fac_usrdata_verwijder IS NULL
|
|
-- AND ud.fac_usrtab_key = 82
|
|
-- AND INSTR (UPPER (bb.ref_waarde),
|
|
-- ud.fac_usrdata_upper) > 0
|
|
-- AND bb.creditdebet = '-') d
|
|
--ON f.fclt_f_factuur = d.fac_usrdata_upper
|
|
LEFT JOIN -- Factuur met negatief bedrag (credit) afgehandeld!
|
|
(SELECT ud.fac_usrdata_upper, 1 credit_ok
|
|
FROM fac_usrdata ud, wibc_bankboek bb
|
|
WHERE ud.fac_usrdata_verwijder IS NULL
|
|
AND ud.fac_usrtab_key = 82
|
|
AND INSTR (UPPER (bb.omschrijving),
|
|
ud.fac_usrdata_upper) > 0
|
|
AND bb.ref_waarde IS NOT NULL -- Iets ingevuld!
|
|
AND bb.creditdebet = '-') c
|
|
ON f.fclt_f_factuur = c.fac_usrdata_upper
|
|
WHERE f.f_bedrag != COALESCE (t.t_bedrag, 0)
|
|
AND COALESCE (t.force_match, 0) = 0 --AND COALESCE (c.debet_ok, 0) = 0
|
|
AND COALESCE (c.credit_ok, 0) = 0;
|
|
|
|
|
|
-- Gegevensbron voor het samenstellen van de response op API-requests vanaf
|
|
-- WTC-website (WW)!
|
|
-- LET OP: Aanname is dat er geen koppelzalen zijn!!!
|
|
/* Formatted on 18-12-2012 9:05:55 (QP5 v5.115.810.9015)
|
|
CREATE OR REPLACE VIEW WIBC_V_WW_INPUT
|
|
(
|
|
AV_DATE,
|
|
MAX_VIS,
|
|
NAV_PERC
|
|
)
|
|
AS
|
|
SELECT bes.ddmmyyyy av_date,
|
|
MAX(DECODE (SIGN (bes.uren - COALESCE (bez.uren, 0) - 1),
|
|
1, bes.cap,
|
|
0))
|
|
max_vis,
|
|
TO_CHAR(ROUND (
|
|
(SUM (COALESCE (bez.uren, 0)) / SUM (bes.uren)) * 100,
|
|
0
|
|
))
|
|
nav_perc -- SUM (bes.uren) nooit 0; hard 10 uur per ruimte!
|
|
FROM (SELECT TO_CHAR (per.av_date, 'dd-mm-yyyy') ddmmyyyy,
|
|
rr.res_ruimte_key,
|
|
rro.res_ruimte_opstel_bezoekers cap,
|
|
10 uren -- Beschikbaar
|
|
FROM res_v_aanwezigruimte rr,
|
|
res_ruimte_opstelling rro,
|
|
( SELECT TRUNC (SYSDATE) + ROWNUM - 1 av_date
|
|
FROM DUAL
|
|
CONNECT BY LEVEL <= 380) per
|
|
WHERE rr.res_ruimte_key = rro.res_ruimte_key
|
|
AND TO_CHAR (per.av_date, 'D') NOT IN (1, 7)
|
|
AND per.av_date NOT IN
|
|
(SELECT mld_vrije_dagen_datum
|
|
FROM mld_vrije_dagen)) bes
|
|
LEFT JOIN
|
|
( SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy')
|
|
ddmmyyyy,
|
|
rr.res_ruimte_key,
|
|
MAX (rro.res_ruimte_opstel_bezoekers) cap,
|
|
SUM( (rrr.res_rsv_ruimte_tot
|
|
- rrr.res_rsv_ruimte_van)
|
|
* 24)
|
|
uren -- Bezet
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_v_aanwezigruimte rr
|
|
WHERE res_rsv_ruimte_van > TRUNC (SYSDATE)
|
|
AND rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_discipline_key IS NOT NULL
|
|
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy'),
|
|
rr.res_ruimte_key) bez
|
|
ON bes.ddmmyyyy = bez.ddmmyyyy
|
|
AND bes.res_ruimte_key = bez.res_ruimte_key
|
|
GROUP BY bes.ddmmyyyy;
|
|
*/
|
|
/* Formatted on 24-5-2013 19:30:45 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW WIBC_V_WW_INPUT
|
|
(
|
|
AV_DATE, -- Wanneer/datum
|
|
ACTIVITY, -- Waarvoor/Vergadering|Presentatie|Videoconferentie|Stiltewerk
|
|
MAX_VIS, -- Hoeveel/capaciteit
|
|
MAX_DUR,
|
|
MAX_BES,
|
|
CUR_BEZ,
|
|
CUR_BES,
|
|
AV_PERC
|
|
)
|
|
AS
|
|
SELECT bes.ddmmyyyy av_date,
|
|
DECODE (bes.res_activiteit_key,
|
|
10, 'VERGADERING',
|
|
30, 'PRESENTATIE',
|
|
31, 'VIDEOCONFERENTIE',
|
|
'STILTEWERK')
|
|
activity,
|
|
MAX(DECODE (SIGN (bes.uren - COALESCE (bez.uren, 0) - 1),
|
|
1, bes.cap,
|
|
0))
|
|
max_vis,
|
|
MAX (bes.uren - COALESCE (bez.uren, 0)) max_dur,
|
|
SUM (bes.uren), -- SUM (bes.uren) nooit 0; hard 10u per ruimte!
|
|
SUM (COALESCE (bez.uren, 0)),
|
|
SUM (bes.uren) - SUM (COALESCE (bez.uren, 0)),
|
|
TO_CHAR(100
|
|
- ROUND (
|
|
100 * SUM (COALESCE (bez.uren, 0)) / SUM (bes.uren)
|
|
))
|
|
av_perc -- SUM (bes.uren) nooit 0; hard 10u per ruimte!
|
|
FROM (SELECT TO_CHAR (per.av_date, 'dd-mm-yyyy') ddmmyyyy,
|
|
rr.res_ruimte_key,
|
|
rad.res_activiteit_key,
|
|
rro.res_ruimte_opstel_bezoekers cap,
|
|
10 uren -- Beschikbaar
|
|
FROM res_v_aanwezigruimte rr,
|
|
res_ruimte_opstelling rro,
|
|
res_activiteitdiscipline rad,
|
|
( SELECT TRUNC (SYSDATE) + ROWNUM - 1 av_date
|
|
FROM DUAL
|
|
CONNECT BY LEVEL <= 380) per
|
|
WHERE rr.res_discipline_key != 121 -- Alleen receptie
|
|
AND rr.res_ruimte_key = rro.res_ruimte_key
|
|
AND rr.res_discipline_key = rad.res_discipline_key
|
|
AND rad.res_activiteit_key IN (10, 30, 31, 34)
|
|
AND TO_CHAR (per.av_date, 'D') NOT IN (1, 7)
|
|
AND per.av_date NOT IN
|
|
(SELECT mld_vrije_dagen_datum
|
|
FROM mld_vrije_dagen)) bes
|
|
LEFT JOIN -- Aanname: GEEN koppelzalen, maar ALLE zalen dubbel!
|
|
( SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy')
|
|
ddmmyyyy,
|
|
--rr.res_ruimte_key,
|
|
DECODE (SIGN (rr.res_ruimte_key - 20),
|
|
-1, rr.res_ruimte_key,
|
|
rr.res_ruimte_key - 20)
|
|
res_ruimte_key, -- TODO: NIET TOEKOMSTVAST!
|
|
--rrr.res_activiteit_key,
|
|
--MAX (rro.res_ruimte_opstel_bezoekers) cap,
|
|
--DECODE (rrr.res_activiteit_key, 34, 1, 2) *
|
|
SUM(DECODE (
|
|
SIGN( ( (rrr.res_rsv_ruimte_tot
|
|
- TRUNC (rrr.res_rsv_ruimte_tot))
|
|
* 24)
|
|
- 18),
|
|
1,
|
|
18,
|
|
( (rrr.res_rsv_ruimte_tot
|
|
- TRUNC (rrr.res_rsv_ruimte_tot))
|
|
* 24)
|
|
)
|
|
- ( (rrr.res_rsv_ruimte_van
|
|
- TRUNC (rrr.res_rsv_ruimte_van))
|
|
* 24))
|
|
uren -- Bezet
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_ruimte_opstelling rro,
|
|
res_v_aanwezigruimte rr
|
|
WHERE rrr.res_activiteit_key IN (10, 30, 31, 34)
|
|
AND rrr.res_rsv_ruimte_van > TRUNC (SYSDATE)
|
|
AND rrr.res_ruimte_opstel_key =
|
|
rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_discipline_key IS NOT NULL
|
|
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy'),
|
|
--rr.res_ruimte_key,
|
|
--rrr.res_activiteit_key) bez
|
|
DECODE (SIGN (rr.res_ruimte_key - 20),
|
|
-1, rr.res_ruimte_key,
|
|
rr.res_ruimte_key - 20)) bez
|
|
ON bes.ddmmyyyy = bez.ddmmyyyy
|
|
AND bes.res_ruimte_key = bez.res_ruimte_key
|
|
--AND bes.res_activiteit_key = bez.res_activiteit_key
|
|
GROUP BY bes.ddmmyyyy, bes.res_activiteit_key;
|
|
|
|
-- WW-request: GetAv (= Get Availability-indication)
|
|
/* Formatted on 28-2-2013 15:12:48 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW WIBC_V_WW_GETAV
|
|
(
|
|
AV_DATE, -- Wanneer/datum
|
|
ACTIVITY, -- Waarvoor/Vergadering|Presentatie|Videoconferentie|Stiltewerk
|
|
MAX_VIS, -- Hoeveel/capaciteit
|
|
MAX_DUR,
|
|
MAX_BES,
|
|
CUR_BEZ,
|
|
CUR_BES,
|
|
AV_PERC
|
|
)
|
|
AS
|
|
SELECT * FROM WIBC_V_WW_INPUT;
|
|
|
|
/* Formatted on 5-6-2013 17:55:05 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW wibc_v_noti_receptie
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
KEY,
|
|
par1,
|
|
par2,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL sender,
|
|
NULL, --x.receiver,
|
|
sn.fac_srtnotificatie_oms,
|
|
p.prs_perslid_key,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
'businesscenter@wtcthehague.com',
|
|
NULL
|
|
FROM prs_perslid p, fac_srtnotificatie sn
|
|
WHERE TRUNC (p.prs_perslid_aanmaak) = TRUNC (SYSDATE + 5 / 1440)
|
|
AND TO_NUMBER(TO_CHAR (p.prs_perslid_aanmaak, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))
|
|
--AND p.prs_afdeling_key = 22
|
|
AND sn.fac_srtnotificatie_code = 'CUST01'
|
|
UNION ALL
|
|
SELECT sn.fac_srtnotificatie_code,
|
|
NULL sender,
|
|
NULL, --x.receiver,
|
|
sn.fac_srtnotificatie_oms,
|
|
t.fac_tracking_refkey,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
'businesscenter@wtcthehague.com',
|
|
NULL
|
|
FROM fac_tracking t, fac_srtnotificatie sn
|
|
WHERE TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
|
|
AND TO_NUMBER(TO_CHAR (t.fac_tracking_datum, 'HH24')) + 1 =
|
|
TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))
|
|
AND t.fac_srtnotificatie_key = 75 -- RESNEW
|
|
AND sn.fac_srtnotificatie_code = 'CUST02';
|
|
|
|
BEGIN adm.systrackscript('$Workfile: wibc.sql $', '$Revision$', 0); END;
|
|
/
|
|
BEGIN fac.registercustversion('WIBC', 2); END;
|
|
/
|
|
COMMIT;
|
|
spool off
|