2631 lines
122 KiB
SQL
2631 lines
122 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
|
|
DEFINE thisfile = 'WZKW.SQL'
|
|
DEFINE dbuser = 'WZKW'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE PACKAGE WZKW
|
|
AS
|
|
TYPE t_cursor IS REF CURSOR;
|
|
|
|
PROCEDURE add_csv_row (p_bestand IN VARCHAR2,
|
|
p_regel IN VARCHAR2);
|
|
|
|
PROCEDURE add_xml_row (p_bestand IN VARCHAR2,
|
|
p_regel IN VARCHAR2);
|
|
|
|
PROCEDURE add_xml_element (p_bestand IN VARCHAR2,
|
|
p_tag IN VARCHAR2,
|
|
p_value IN VARCHAR2);
|
|
|
|
PROCEDURE resetCashExport(p_reservering_key IN NUMBER,
|
|
p_datumExport IN VARCHAR2);
|
|
|
|
PROCEDURE setReserveringKenmerk(p_reservering_key IN NUMBER,
|
|
p_periode_van IN DATE,
|
|
p_periode_tot IN DATE,
|
|
p_kenmerk_key IN NUMBER);
|
|
|
|
PROCEDURE WZKW_GENERATE_FIN_VERKOOP(p_rrr_key IN NUMBER);
|
|
|
|
PROCEDURE BEZETTINGSGRAAD(user_key IN NUMBER,
|
|
p_datum_van IN VARCHAR2,
|
|
p_datum_tot IN VARCHAR2,
|
|
p_cursor OUT t_cursor);
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY WZKW
|
|
AS
|
|
|
|
PROCEDURE add_csv_row (
|
|
p_bestand IN VARCHAR2,
|
|
p_regel IN VARCHAR2)
|
|
AS
|
|
v_index NUMBER;
|
|
BEGIN
|
|
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
|
|
INTO v_index
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = p_bestand;
|
|
|
|
INSERT INTO fac_rapport (
|
|
fac_rapport_node,
|
|
fac_rapport_volgnr,
|
|
fac_rapport_regel)
|
|
VALUES (p_bestand,
|
|
v_index,
|
|
p_regel);
|
|
END;
|
|
|
|
PROCEDURE add_xml_row (
|
|
p_bestand IN VARCHAR2,
|
|
p_regel IN VARCHAR2)
|
|
AS
|
|
v_index NUMBER;
|
|
BEGIN
|
|
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
|
|
INTO v_index
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = p_bestand;
|
|
|
|
INSERT INTO fac_rapport (
|
|
fac_rapport_node,
|
|
fac_rapport_volgnr,
|
|
fac_rapport_regel)
|
|
VALUES (p_bestand,
|
|
v_index,
|
|
p_regel);
|
|
END;
|
|
|
|
PROCEDURE add_xml_element (
|
|
p_bestand IN VARCHAR2,
|
|
p_tag IN VARCHAR2,
|
|
p_value IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
wzkw.add_xml_row(p_bestand,
|
|
'<' || p_tag || '>'
|
|
|| xml.char_to_html(p_value)
|
|
|| '</' || p_tag || '>');
|
|
END;
|
|
|
|
|
|
-- Procedure om niet verwerkte res naar cash opmieuw aan te bieden
|
|
PROCEDURE resetCashExport(
|
|
p_reservering_key IN NUMBER,
|
|
p_datumExport IN VARCHAR2)
|
|
AS
|
|
CURSOR sel
|
|
IS
|
|
SELECT rrr.res_rsv_ruimte_key rrr_key,
|
|
rkw.res_kenmerk_key kenmerk_key
|
|
FROM res_rsv_ruimte rrr,
|
|
res_kenmerk rk,
|
|
res_kenmerkwaarde rkw,
|
|
res_srtkenmerk rsk
|
|
WHERE rrr.res_reservering_key=p_reservering_key
|
|
AND rkw.res_rsv_ruimte_key= rrr.res_rsv_ruimte_key
|
|
AND rkw.res_kenmerk_key=rk.res_kenmerk_key
|
|
AND rsk.res_srtkenmerk_key = rk.res_srtkenmerk_key
|
|
AND UPPER(rsk.res_srtkenmerk_omschrijving)='CASHSYNCDATE'
|
|
AND rkw.res_kenmerkreservering_waarde= p_datumexport;
|
|
BEGIN
|
|
FOR rec in sel
|
|
LOOP
|
|
flx.deleteflex('RES',rec.kenmerk_key,rec.rrr_key, NULL, NULL);
|
|
END LOOP;
|
|
Commit;
|
|
END;
|
|
|
|
|
|
PROCEDURE setReserveringKenmerk(p_reservering_key IN NUMBER, p_periode_van IN DATE, p_periode_tot IN DATE, p_kenmerk_key IN NUMBER)
|
|
AS
|
|
CURSOR res (v_reservering_key IN NUMBER, v_periode_van IN DATE, v_periode_tot IN DATE)
|
|
IS
|
|
SELECT rrr.res_rsv_ruimte_key rrr_key
|
|
FROM res_rsv_ruimte rrr,
|
|
res_kenmerkwaarde rkw,
|
|
res_kenmerk rk
|
|
where res_reservering_key=v_reservering_key
|
|
AND rrr.res_rsv_ruimte_van BETWEEN v_periode_van AND v_periode_tot
|
|
AND rrr.res_status_bo_key = 2
|
|
AND rrr.res_status_fo_key = 2;
|
|
BEGIN
|
|
FOR rec in res(p_reservering_key, p_periode_van, p_periode_tot)
|
|
LOOP
|
|
flx.setflex('RES',p_kenmerk_key, rec.rrr_key, TO_CHAR(TRUNC(SYSDATE),'DD-MM-YYYY'));
|
|
END LOOP;
|
|
END;
|
|
|
|
|
|
|
|
|
|
PROCEDURE WZKW_GENERATE_FIN_VERKOOP(p_rrr_key IN NUMBER)
|
|
AS
|
|
CURSOR sel (v_rrr_key IN NUMBER)
|
|
IS
|
|
SELECT rrr_key,
|
|
reservering_key,
|
|
res_volgnr,
|
|
ruimte_oms,
|
|
bedrijf_key,
|
|
lev_nr,
|
|
kostenplaats_nr,
|
|
prijs,
|
|
contract_key,
|
|
contract_ref ref,
|
|
'Ruimte' soort,
|
|
'Contract' fact_type
|
|
FROM wzkw_v_fact_res_cnt
|
|
where rrr_key=v_rrr_key
|
|
AND soort_reservering='Contract'
|
|
UNION ALL
|
|
SELECT rrr_key,
|
|
reservering_key,
|
|
res_volgnr,
|
|
ruimte_oms,
|
|
bedrijf_key,
|
|
lev_nr,
|
|
kostenplaats_nr,
|
|
prijs,
|
|
NULL contract_key,
|
|
reservering_ref ref,
|
|
'Ruimte' soort,
|
|
'Incidenteel' fact_type
|
|
FROM wzkw_v_fact_res_incdtl
|
|
where rrr_key=v_rrr_key
|
|
AND soort_reservering='Incidenteel';
|
|
|
|
|
|
|
|
CURSOR sel_artdeel(v_rrr_key IN NUMBER)
|
|
IS
|
|
SELECT res_reservering_key reservering_key,
|
|
'Catering' oms,
|
|
SUM(ra.res_artikel_prijs*rra.res_rsv_artikel_aantal) prijs
|
|
FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra
|
|
WHERE rrr.res_rsv_ruimte_key = v_rrr_key
|
|
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = rra.res_artikel_key
|
|
AND rra.res_rsv_artikel_verwijder IS NULL
|
|
GROUP BY res_reservering_key, 'Catering'
|
|
UNION ALL
|
|
SELECT rrr.res_reservering_key reservering_key,
|
|
'Object' oms,
|
|
SUM(rd.res_deel_prijs*rrd.res_rsv_deel_aantal) prijs
|
|
FROM res_rsv_ruimte rrr, res_rsv_deel rrd, res_deel rd
|
|
WHERE rrr.res_rsv_ruimte_key = v_rrr_key
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rd.res_deel_key = rrd.res_deel_key
|
|
AND rrd.res_rsv_deel_verwijder IS NULL
|
|
GROUP BY res_reservering_key, 'Object';
|
|
|
|
|
|
v_verkoopfactuurkop_key NUMBER;
|
|
v_factuurdatum VARCHAR2(10);
|
|
v_lev_nr VARCHAR2(20);
|
|
v_count NUMBER;
|
|
v_count_artdeel NUMBER;
|
|
v_rrr_key NUMBER;
|
|
BEGIN
|
|
v_lev_nr:='';
|
|
v_rrr_key:=0;
|
|
v_count:=0;
|
|
v_count_artdeel:=0;
|
|
FOR rec In sel(p_rrr_key)
|
|
LOOP
|
|
BEGIN
|
|
SELECT fin_verkoopfactuurkop_key
|
|
INTO v_verkoopfactuurkop_key
|
|
FROM fin_verkoopfactuurkop
|
|
WHERE fin_verkoopfactuurkop_id=(rec.lev_nr || '-' || rec.reservering_key || '/'|| rec.res_volgnr);
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
|
|
VALUES (rec.lev_nr || '-' || rec.reservering_key || '/'|| rec.res_volgnr)
|
|
RETURNING fin_verkoopfactuurkop_key
|
|
INTO v_verkoopfactuurkop_key;
|
|
END;
|
|
-- Gaan we eerst kijken of de rrr_key al in de verkoopfactuur table staat
|
|
SELECT COUNT(*)
|
|
INTO v_count
|
|
FROM fin_verkoopfactuur f
|
|
WHERE f.fin_verkoopfactuur_refkey=rec.rrr_key;
|
|
|
|
IF v_count >0 THEN
|
|
DELETE FROM fin_verkoopfactuur f
|
|
WHERE f.fin_verkoopfactuur_refkey=rec.rrr_key;
|
|
END IF;
|
|
|
|
-- Gaan we eerst de ruimte reservereing toevoegen
|
|
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,
|
|
prs_kostenplaats_nr,
|
|
fin_verkoopfactuur_bedrag,
|
|
fin_verkoopfactuur_c1, -- Hierin leggen we het soort factuurregel vast ruimte, catering of object
|
|
fin_verkoopfactuur_n1, -- Hierin leggen we de status van de factuur vast 1=Nieuw, 2=Export
|
|
fin_verkoopfactuur_n2, -- Hier in slaan we het reservering_key op omdat alles gegropeerd nmoet worden op reservering_key
|
|
fin_verkoopfactuur_n3, -- 1=Ruimte 2=Catering/Object
|
|
fin_verkoopfactuur_n4, -- contract _key
|
|
fin_verkoopfactuur_c2, -- Referentie van de reservering via contract of de reservering zelf
|
|
fin_verkoopfactuur_c3 -- factuur_soort Contract of Incidenteel
|
|
)
|
|
VALUES (
|
|
v_verkoopfactuurkop_key,
|
|
rec.reservering_key || '/'|| rec.res_volgnr,
|
|
TRUNC(SYSDATE),
|
|
rec.ruimte_oms,
|
|
'reservering',
|
|
rec.rrr_key,
|
|
rec.bedrijf_key,
|
|
rec.lev_nr,
|
|
rec.kostenplaats_nr,
|
|
rec.prijs,
|
|
rec.soort,
|
|
1,
|
|
rec.reservering_key,
|
|
1,
|
|
rec.contract_key,
|
|
rec.ref,
|
|
rec.fact_type
|
|
);
|
|
|
|
-- Gaan we nu nog de catering en reserveerbare oibjecten toevoegen als deze er zijn.
|
|
FOR rec_art IN sel_artdeel(p_rrr_key)
|
|
LOOP
|
|
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,
|
|
prs_kostenplaats_nr,
|
|
fin_verkoopfactuur_bedrag,
|
|
fin_verkoopfactuur_c1, -- Hierin leggen we het soort factuurregel vast ruimte, catering of object
|
|
fin_verkoopfactuur_n1, -- Hierin leggen we de status van de factuur vast 1=Nieuw, 2=Export
|
|
fin_verkoopfactuur_n2,
|
|
fin_verkoopfactuur_n3,
|
|
fin_verkoopfactuur_n4,
|
|
fin_verkoopfactuur_c2,
|
|
fin_verkoopfactuur_c3
|
|
)
|
|
VALUES (
|
|
v_verkoopfactuurkop_key,
|
|
rec.reservering_key || '/'|| rec.res_volgnr,
|
|
TRUNC(SYSDATE),
|
|
rec.ruimte_oms,
|
|
'reservering',
|
|
rec.rrr_key,
|
|
rec.bedrijf_key,
|
|
rec.lev_nr,
|
|
rec.kostenplaats_nr,
|
|
rec_art.prijs,
|
|
rec_art.oms,
|
|
1,
|
|
rec.reservering_key,
|
|
2,
|
|
rec.contract_key,
|
|
rec.ref,
|
|
rec.fact_type
|
|
);
|
|
END LOOP;
|
|
|
|
|
|
END LOOP;
|
|
|
|
|
|
END;
|
|
|
|
|
|
PROCEDURE BEZETTINGSGRAAD(user_key IN NUMBER,
|
|
p_datum_van IN VARCHAR2,
|
|
p_datum_tot IN VARCHAR2,
|
|
p_cursor OUT t_cursor)
|
|
AS
|
|
v_datum_van DATE;
|
|
v_datum_tot DATE;
|
|
BEGIN
|
|
v_datum_van := fac.safe_to_date (p_datum_van, 'DD-MM-YYYY');
|
|
v_datum_tot := fac.safe_to_date (p_datum_tot, 'DD-MM-YYYY');
|
|
|
|
OPEN p_cursor FOR
|
|
SELECT COALESCE(afd.alg_gebouw_code,res.alg_gebouw_code) gebouw_code,
|
|
(SELECT alg_gebouw_naam
|
|
from alg_gebouw
|
|
where alg_gebouw_code=COALESCE(afd.alg_gebouw_code,res.alg_gebouw_code)) gebouw_naam,
|
|
ROUND(res.bezetting) res_bezetting_proc,
|
|
res.aantal_ruimten res_ruimtes_aantal,
|
|
res.opp opp_res_ruimtes,
|
|
afd.bezetting afdeling_bezetting_proc,
|
|
afd.ruimtes afd_ruimtes_aantal,
|
|
afd.opp afd_opp
|
|
FROM
|
|
(SELECT
|
|
gebouw,
|
|
alg_gebouw_code,
|
|
COUNT (alg_ruimte_key) aantal_ruimten,
|
|
SUM (gebruik_uren) gebruik_uren,
|
|
SUM (beschikbaar_uren) beschikbaar_uren,
|
|
SUM (opp) opp,
|
|
(CASE
|
|
WHEN SUM (beschikbaar_uren) = 0
|
|
THEN
|
|
100
|
|
ELSE
|
|
ROUND ((SUM (gebruik_uren) / SUM (beschikbaar_uren)) * 100,
|
|
2)
|
|
END) bezetting
|
|
FROM ( SELECT g.alg_gebouw_key res_keycolumn,
|
|
g.alg_gebouw_naam gebouw,
|
|
g.alg_gebouw_code alg_gebouw_code,
|
|
x.alg_ruimte_key,
|
|
SUM (bezetting) gebruik_uren,
|
|
MAX (beschikbaar) beschikbaar_uren,
|
|
SUM(alg_ruimte_bruto_vloeropp) opp
|
|
FROM (SELECT beschik.alg_ruimte_key,
|
|
beschik.res_discipline_key,
|
|
beschik.res_ruimte_upper,
|
|
ROUND (NVL (bezetting, 0), 2) bezetting,
|
|
ROUND (NVL (beschikbaar, 0), 2) beschikbaar,
|
|
di.alg_regio_key,
|
|
l.alg_district_key,
|
|
l.alg_locatie_key,
|
|
alg_gebouw_key,
|
|
alg_verdieping_key,
|
|
alg_ruimte_bruto_vloeropp
|
|
FROM ( SELECT alg_ruimte_key,
|
|
rarg.res_discipline_key,
|
|
SUM (
|
|
GREATEST (
|
|
0,
|
|
GREATEST (
|
|
LEAST (
|
|
TO_NUMBER (
|
|
TO_CHAR (
|
|
res_rsv_ruimte_tot_tz,
|
|
'SSSSS'))
|
|
/ 3600,
|
|
COALESCE (
|
|
res_ruimte_eindtijd,
|
|
24,
|
|
23.75),
|
|
8)
|
|
- LEAST (
|
|
GREATEST (
|
|
TO_NUMBER (
|
|
TO_CHAR (
|
|
res_rsv_ruimte_van_tz,
|
|
'SSSSS'))
|
|
/ 3600,
|
|
COALESCE (
|
|
res_ruimte_begintijd,
|
|
8),
|
|
8),
|
|
23.75)))) bezetting
|
|
FROM (SELECT r.res_rsv_ruimte_key,
|
|
ra.alg_ruimte_key,
|
|
ra.res_alg_ruimte_key,
|
|
rr.res_discipline_key,
|
|
r.res_rsv_ruimte_van,
|
|
r.res_rsv_ruimte_van
|
|
res_rsv_ruimte_van_tz,
|
|
r.res_rsv_ruimte_tot,
|
|
r.res_rsv_ruimte_tot
|
|
res_rsv_ruimte_tot_tz,
|
|
ra.res_alg_ruimte_aanmaak,
|
|
ra.res_alg_ruimte_verwijder,
|
|
rr.res_ruimte_begintijd,
|
|
rr.res_ruimte_eindtijd
|
|
FROM res_rsv_ruimte r,
|
|
res_ruimte_opstelling ro,
|
|
res_ruimte rr,
|
|
res_alg_ruimte ra
|
|
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
|
AND r.res_rsv_ruimte_dirtlevel = 0
|
|
AND ( rr.res_ruimte_startdatum
|
|
IS NULL
|
|
OR rr.res_ruimte_startdatum <=
|
|
v_datum_van)
|
|
AND ( rr.res_ruimte_vervaldatum
|
|
IS NULL
|
|
OR rr.res_ruimte_vervaldatum >
|
|
v_datum_van)
|
|
AND r.res_status_fo_key IN (1, 2)
|
|
AND r.res_ruimte_opstel_key =
|
|
ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key =
|
|
rr.res_ruimte_key
|
|
AND rr.res_ruimte_key =
|
|
ra.res_ruimte_key) rarg
|
|
WHERE res_rsv_ruimte_van BETWEEN v_datum_van
|
|
AND v_datum_tot
|
|
AND TO_CHAR (res_rsv_ruimte_van_tz, 'd') >= 0
|
|
AND TO_CHAR (res_rsv_ruimte_van_tz, 'd') <= 7
|
|
AND TRUNC (res_rsv_ruimte_van_tz) NOT IN
|
|
(SELECT mld_vrije_dagen_datum
|
|
FROM mld_vrije_dagen)
|
|
AND rarg.res_alg_ruimte_aanmaak <=
|
|
v_datum_tot
|
|
AND ( rarg.res_alg_ruimte_verwijder IS NULL
|
|
OR rarg.res_alg_ruimte_verwijder >=
|
|
v_datum_van)
|
|
GROUP BY alg_ruimte_key, rarg.res_discipline_key) bez,
|
|
(SELECT DISTINCT
|
|
rr1.res_discipline_key,
|
|
rr1.res_ruimte_upper,
|
|
ra.alg_ruimte_key,
|
|
( TO_NUMBER(v_datum_tot -
|
|
v_datum_van
|
|
- 1)
|
|
* (GREATEST (
|
|
0,
|
|
LEAST (
|
|
COALESCE (
|
|
rr1.res_ruimte_eindtijd,
|
|
24),
|
|
23.75)
|
|
- GREATEST (
|
|
COALESCE (
|
|
rr1.res_ruimte_begintijd,
|
|
8),
|
|
8)
|
|
- ( COALESCE (
|
|
rr1.res_ruimte_eindtijdblok,
|
|
12)
|
|
- COALESCE (
|
|
rr1.res_ruimte_begintijdblok,
|
|
12))))) beschikbaar
|
|
FROM res_ruimte rr1, res_alg_ruimte ra
|
|
WHERE rr1.res_ruimte_key = ra.res_ruimte_key
|
|
AND ra.res_alg_ruimte_aanmaak <=
|
|
v_datum_tot
|
|
AND ( rr1.res_ruimte_startdatum IS NULL
|
|
OR rr1.res_ruimte_startdatum <=
|
|
v_datum_van)
|
|
AND ( rr1.res_ruimte_vervaldatum IS NULL
|
|
OR rr1.res_ruimte_vervaldatum >
|
|
v_datum_van)
|
|
AND ( ra.res_alg_ruimte_verwijder IS NULL
|
|
OR ra.res_alg_ruimte_verwijder >=
|
|
v_datum_van))
|
|
beschik,
|
|
alg_v_ruimte_gegevens_all ruimte_geg,
|
|
alg_locatie l,
|
|
alg_district di
|
|
WHERE beschik.alg_ruimte_key = bez.alg_ruimte_key(+)
|
|
AND beschik.res_discipline_key =
|
|
bez.res_discipline_key(+)
|
|
AND beschik.alg_ruimte_key = ruimte_geg.alg_ruimte_key
|
|
AND ruimte_geg.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = di.alg_district_key
|
|
) x,
|
|
alg_gebouw g
|
|
WHERE x.alg_gebouw_key = g.alg_gebouw_key
|
|
GROUP BY g.alg_gebouw_key, g.alg_gebouw_naam, g.alg_gebouw_code,x.alg_ruimte_key) data
|
|
GROUP BY res_keycolumn, gebouw, alg_gebouw_code
|
|
ORDER BY gebouw
|
|
) res,
|
|
(
|
|
SELECT b.alg_gebouw_code,
|
|
ROUND(AVG(b.bezetting)) bezetting,
|
|
COUNT(*) ruimtes,
|
|
SUM(alg_ruimte_bruto_vloeropp) opp
|
|
FROM
|
|
(SELECT r.alg_ruimte_nr ruimte_nr,
|
|
a.ALG_GEBOUW_CODE alg_gebouw_code,
|
|
r.alg_ruimte_bruto_vloeropp alg_ruimte_bruto_vloeropp,
|
|
fac.safe_to_number (COALESCE (p.prs_ruimteafdeling_bezetting, 0)) bezetting
|
|
FROM alg_ruimte r,
|
|
prs_ruimteafdeling p,
|
|
alg_v_allonrgoed_gegevens a
|
|
WHERE r.alg_ruimte_key NOT IN
|
|
(SELECT alg_ruimte_key FROM res_alg_ruimte)
|
|
AND a.alg_ruimte_key = r.alg_ruimte_key
|
|
AND p.alg_ruimte_key(+) = r.alg_ruimte_key
|
|
AND r.alg_ruimte_key NOT IN (SELECT aok.alg_onrgoed_key
|
|
FROM alg_kenmerk ak, alg_onrgoedkenmerk aok
|
|
WHERE ak.alg_kenmerk_code='UITSLUITBEZETTINGSGRAAD'
|
|
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND aok.alg_onrgoed_niveau='R')
|
|
ORDER BY 3, 2
|
|
) b
|
|
GROUP BY b.alg_gebouw_code
|
|
) afd
|
|
WHERE res.alg_gebouw_code(+)=afd.alg_gebouw_code;
|
|
END;
|
|
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
-- EXPORTS
|
|
-- Export View
|
|
|
|
|
|
-- View tbv van de interne doorbealsting van de ruimtes met afdeling gekoppeld.
|
|
-- uitgaande van de 2024.1 release aanpassing mbt de afdeling bezetting tussen twee datums.
|
|
--CREATE OR REPLACE VIEW WZKW_V_INT_DOORBELAST_RUIMTES
|
|
--AS
|
|
-- SELECT ar.alg_ruimte_nr,
|
|
-- ar.alg_ruimte_omschrijving,
|
|
-- ok.alg_onrgoedkenmerk_waarde,
|
|
-- (SELECT prs_afdeling_naam
|
|
-- FROM prs_afdeling
|
|
-- WHERE prs_afdeling_key = pra.prs_afdeling_key) afdeling_code,
|
|
-- (SELECT prs_afdeling_omschrijving
|
|
-- FROM prs_afdeling
|
|
-- WHERE prs_afdeling_key = pra.prs_afdeling_key) afdeling_naam,
|
|
-- pra.prs_ruimteafdeling_bezetting,
|
|
-- fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) * (pra.prs_ruimteafdeling_bezetting/100) bedrag,
|
|
-- pra.prs_ruimteafdeling_ingangsdatum,
|
|
-- pra.prs_ruimteafdeling_einddatum
|
|
-- FROM prs_ruimteafdeling pra, alg_v_ruimte_gegevens ar, alg_kenmerk ak, alg_onrgoedkenmerk ok
|
|
-- WHERE pra.alg_ruimte_key = ar.ALG_RUIMTE_KEY
|
|
-- AND TRUNC (ADD_MONTHS (SYSDATE, 0)) BETWEEN TRUNC (
|
|
-- pra.prs_ruimteafdeling_ingangsdatum)
|
|
-- AND COALESCE (
|
|
-- TRUNC (
|
|
-- pra.prs_ruimteafdeling_einddatum),
|
|
-- TRUNC (SYSDATE))
|
|
-- AND ak.alg_kenmerk_code='DOORBELAST'
|
|
-- AND ok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
-- AND ok.alg_onrgoed_niveau='R'
|
|
-- AND ok.alg_onrgoed_key=ar.alg_ruimte_key;
|
|
|
|
-- View tbv van de interne doorbealsting van de interen reservereingn en ruimtes met afdeling gekoppeld.
|
|
CREATE OR REPLACE VIEW WZKW_V_INTERNE_DOORBELAST
|
|
(
|
|
soort,
|
|
datum_van,
|
|
datum_tot,
|
|
tijd_van,
|
|
tijd_tot,
|
|
omschrijving,
|
|
gebouw_naam,
|
|
gebouw_code,
|
|
ruimt,
|
|
aanvrager,
|
|
kostenplaats,
|
|
bedrag
|
|
)
|
|
AS
|
|
SELECT *
|
|
FROM (
|
|
SELECT 'RESERVERING'
|
|
soort,
|
|
TRUNC (rrr.res_rsv_ruimte_van)
|
|
datum_van,
|
|
TRUNC (rrr.res_rsv_ruimte_tot)
|
|
datum_tot,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI')
|
|
van,
|
|
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI')
|
|
tot,
|
|
rrr.res_rsv_ruimte_omschrijving
|
|
reservering_omschrijving,
|
|
aag.alg_gebouw_code
|
|
gebouw_code,
|
|
aag.alg_gebouw_naam,
|
|
rr.res_ruimte_nr,
|
|
(SELECT p.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames p, fac_tracking ft
|
|
WHERE ft.FAC_TRACKING_REFKEY=rrr.res_rsv_ruimte_key
|
|
AND ft.FAC_SRTNOTIFICATIE_KEY=116
|
|
AND p.PRS_PERSLID_KEY=ft.PRS_PERSLID_KEY) aanvrager,
|
|
pka.prs_kostenplaats_nr
|
|
res_kostenplaats,
|
|
LTRIM(TO_CHAR(ROUND(COALESCE (rrr.res_rsv_ruimte_totaal,
|
|
res.getresruimteprijs (rr.res_ruimte_key,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
0)),2),'999999999.99'))
|
|
prijs
|
|
FROM res_rsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
res_ruimte rr,
|
|
res_ruimte_opstelling rro,
|
|
res_alg_ruimte rar,
|
|
alg_ruimte ar,
|
|
prs_kostenplaats pka,
|
|
alg_v_allonrgoed_gegevens aag
|
|
WHERE UPPER (ra.res_activiteit_omschrijving) = 'INTERNE RESERVERING'
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND rrr.res_status_fo_key = 2
|
|
AND rrr.res_status_bo_key = 2
|
|
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rr.res_ruimte_key = rro.res_ruimte_key
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key
|
|
AND ar.alg_ruimte_key = rar.alg_ruimte_key
|
|
AND rrr.prs_kostenplaats_key = pka.prs_kostenplaats_key(+)
|
|
-- AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
|
AND aag.alg_ruimte_key = ar.alg_ruimte_key
|
|
UNION ALL
|
|
SELECT 'RESERVERING-CATERING'
|
|
soort,
|
|
TRUNC (rrr.res_rsv_ruimte_van)
|
|
datum_van,
|
|
TRUNC (rrr.res_rsv_ruimte_tot)
|
|
datum_tot,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI')
|
|
van,
|
|
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI')
|
|
tot,
|
|
rrr.res_rsv_ruimte_omschrijving
|
|
reservering_omschrijving,
|
|
aag.alg_gebouw_code
|
|
gebouw_code,
|
|
aag.alg_gebouw_naam,
|
|
rr.res_ruimte_nr,
|
|
(SELECT p.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames p, fac_tracking ft
|
|
WHERE ft.FAC_TRACKING_REFKEY=rrr.res_rsv_ruimte_key
|
|
AND ft.FAC_SRTNOTIFICATIE_KEY=116
|
|
AND p.PRS_PERSLID_KEY=ft.PRS_PERSLID_KEY) aanvrager,
|
|
pka.prs_kostenplaats_nr
|
|
res_kostenplaats,
|
|
(SELECT LTRIM(TO_CHAR(ROUND(SUM(ra.res_artikel_prijs*rra.res_rsv_artikel_aantal),2),'999999999.99'))
|
|
FROM res_rsv_artikel rra, res_artikel ra
|
|
WHERE rra.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key=rra.res_artikel_key) prijs
|
|
FROM res_rsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
res_ruimte rr,
|
|
res_ruimte_opstelling rro,
|
|
res_alg_ruimte rar,
|
|
alg_ruimte ar,
|
|
prs_kostenplaats pka,
|
|
alg_v_allonrgoed_gegevens aag
|
|
WHERE UPPER (ra.res_activiteit_omschrijving) = 'INTERNE RESERVERING'
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND rrr.res_status_fo_key = 2
|
|
AND rrr.res_status_bo_key = 2
|
|
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rr.res_ruimte_key = rro.res_ruimte_key
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key
|
|
AND ar.alg_ruimte_key = rar.alg_ruimte_key
|
|
AND rrr.prs_kostenplaats_key = pka.prs_kostenplaats_key(+)
|
|
-- AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
|
AND aag.alg_ruimte_key = ar.alg_ruimte_key
|
|
UNION ALL
|
|
SELECT 'RESERVERING-DEEL'
|
|
soort,
|
|
TRUNC (rrr.res_rsv_ruimte_van)
|
|
datum_van,
|
|
TRUNC (rrr.res_rsv_ruimte_tot)
|
|
datum_tot,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI')
|
|
van,
|
|
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI')
|
|
tot,
|
|
rrr.res_rsv_ruimte_omschrijving
|
|
reservering_omschrijving,
|
|
aag.alg_gebouw_code
|
|
gebouw_code,
|
|
aag.alg_gebouw_naam,
|
|
rr.res_ruimte_nr,
|
|
(SELECT p.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames p, fac_tracking ft
|
|
WHERE ft.FAC_TRACKING_REFKEY=rrr.res_rsv_ruimte_key
|
|
AND ft.FAC_SRTNOTIFICATIE_KEY=116
|
|
AND p.PRS_PERSLID_KEY=ft.PRS_PERSLID_KEY) aanvrager,
|
|
pka.prs_kostenplaats_nr
|
|
res_kostenplaats,
|
|
(SELECT LTRIM(TO_CHAR(ROUND(SUM(rd.res_deel_prijs),2),'999999999.99'))
|
|
FROM res_rsv_deel rrd, res_deel rd
|
|
WHERE rrd.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
|
|
AND rd.res_deel_key=rrd.res_deel_key)
|
|
prijs
|
|
FROM res_rsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
res_ruimte rr,
|
|
res_ruimte_opstelling rro,
|
|
res_alg_ruimte rar,
|
|
alg_ruimte ar,
|
|
prs_kostenplaats pka,
|
|
alg_v_allonrgoed_gegevens aag
|
|
WHERE UPPER (ra.res_activiteit_omschrijving) = 'INTERNE RESERVERING'
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND rrr.res_status_fo_key = 2
|
|
AND rrr.res_status_bo_key = 2
|
|
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rr.res_ruimte_key = rro.res_ruimte_key
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key
|
|
AND ar.alg_ruimte_key = rar.alg_ruimte_key
|
|
AND rrr.prs_kostenplaats_key = pka.prs_kostenplaats_key(+)
|
|
-- AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
|
AND aag.alg_ruimte_key = ar.alg_ruimte_key
|
|
UNION ALL
|
|
SELECT 'RUIMTE-AFD'
|
|
soort,
|
|
TRUNC (pra.prs_ruimteafdeling_ingangsdatum) datum_van,
|
|
TRUNC (pra.prs_ruimteafdeling_einddatum) datum_tot,
|
|
NULL
|
|
van,
|
|
NULL
|
|
tot,
|
|
r.alg_ruimte_omschrijving
|
|
ruimte_omschrijving,
|
|
aag.alg_gebouw_code
|
|
gebouw_code,
|
|
aag.alg_gebouw_naam
|
|
gebouw_naam,
|
|
r.alg_ruimte_nr
|
|
ruimte_nr,
|
|
pa.prs_afdeling_naam
|
|
Afdeling,
|
|
(SELECT kpn.prs_kostenplaats_nr
|
|
FROM prs_kostenplaats kpn
|
|
WHERE kpn.prs_kostenplaats_key = pa.prs_kostenplaats_key)
|
|
kostenplaats,
|
|
LTRIM(TO_CHAR(ROUND(pra.prs_ruimteafdeling_bezetting/100* fac.safe_to_number(aok.alg_onrgoedkenmerk_waarde),'999999999.99'))) bedrag
|
|
FROM alg_ruimte r,
|
|
alg_v_allonrgoed_gegevens aag,
|
|
prs_ruimteafdeling pra,
|
|
prs_afdeling pa,
|
|
alg_kenmerk ak,
|
|
alg_onrgoedkenmerk aok
|
|
WHERE r.alg_ruimte_key = pra.alg_ruimte_key(+)
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND aag.alg_ruimte_key = r.alg_ruimte_key
|
|
AND pa.prs_afdeling_key = pra.prs_afdeling_key
|
|
AND ak.alg_kenmerk_code = 'DOORBELAST'
|
|
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND aok.alg_onrgoed_key(+) = r.alg_ruimte_key
|
|
AND aok.alg_onrgoed_niveau = 'R'
|
|
UNION ALL
|
|
SELECT 'RUIMTE-KPN'
|
|
soort,
|
|
NULL datum_van,
|
|
NULL datum_tot,
|
|
NULL
|
|
van,
|
|
NULL
|
|
tot,
|
|
r.alg_ruimte_omschrijving
|
|
ruimte_omschrijving,
|
|
aag.alg_gebouw_code
|
|
gebouw_code,
|
|
aag.alg_gebouw_naam
|
|
gebouw_naam,
|
|
r.alg_ruimte_nr
|
|
ruimte_nr,
|
|
(SELECT kpn.PRS_KOSTENPLAATS_Omschrijving
|
|
FROM prs_kostenplaats kpn, alg_onrgoedkenmerk aok2, alg_kenmerk ak2
|
|
WHERE kpn.prs_kostenplaats_key = fac.safe_to_number(aok2.alg_onrgoedkenmerk_waarde)
|
|
AND aok2.ALG_KENMERK_KEY=ak2.ALG_KENMERK_KEY
|
|
AND ak2.ALG_KENMERK_CODE LIKE SUBSTR(ak.alg_kenmerk_code,0,5)
|
|
AND aok2.ALG_ONRGOED_KEY=r.alg_ruimte_key
|
|
AND aok2.ALG_ONRGOED_NIVEAU='R'
|
|
AND ak2.ALG_KENMERK_VERWIJDER IS NULL)
|
|
Afdeling,
|
|
(SELECT kpn.PRS_KOSTENPLAATS_NR
|
|
FROM prs_kostenplaats kpn, alg_onrgoedkenmerk aok2, alg_kenmerk ak2
|
|
WHERE kpn.prs_kostenplaats_key = fac.safe_to_number(aok2.alg_onrgoedkenmerk_waarde)
|
|
AND aok2.ALG_KENMERK_KEY=ak2.ALG_KENMERK_KEY
|
|
AND ak2.ALG_KENMERK_CODE LIKE SUBSTR(ak.alg_kenmerk_code,0,5)
|
|
AND aok2.ALG_ONRGOED_KEY=r.alg_ruimte_key
|
|
AND aok2.ALG_ONRGOED_NIVEAU='R'
|
|
AND ak2.ALG_KENMERK_VERWIJDER IS NULL) kostenplaats,
|
|
LTRIM(TO_CHAR(ROUND(fac.safe_to_number(aok.alg_onrgoedkenmerk_waarde)/100*
|
|
fac.safe_to_number(db.alg_onrgoedkenmerk_waarde),'999999999.99'))) bedrag
|
|
FROM alg_ruimte r,
|
|
alg_v_allonrgoed_gegevens aag,
|
|
alg_kenmerk ak,
|
|
alg_onrgoedkenmerk aok,
|
|
(SELECT *
|
|
FROM alg_onrgoedkenmerk o, alg_kenmerk a
|
|
WHERE a.alg_kenmerk_code = 'DOORBELAST'
|
|
AND o.alg_kenmerk_key = a.alg_kenmerk_key
|
|
AND o.alg_onrgoed_niveau = 'R') db
|
|
WHERE r.alg_ruimte_verwijder IS NULL
|
|
AND aag.alg_ruimte_key = r.alg_ruimte_key
|
|
AND ak.alg_kenmerk_code LIKE '%_KPN_PERC'
|
|
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND aok.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND aok.alg_onrgoed_niveau = 'R'
|
|
AND aok.ALG_ONRGOEDKENMERK_VERWIJDER IS NULL
|
|
AND aok.ALG_ONRGOEDKENMERK_WAARDE IS NOT NULL
|
|
AND db.ALG_ONRGOED_KEY = r.ALG_ruimte_KEY
|
|
)
|
|
WHERE (soort LIKE 'RESERVERING%' AND datum_van IS NOT NULL AND datum_van BETWEEN TRUNC(ADD_MONTHS(SYSDATE, 0), 'Q')
|
|
AND LAST_DAY(ADD_MONTHS(SYSDATE, 0)))
|
|
OR (soort LIKE 'RUIMTE-%' AND datum_van IS NULL);
|
|
|
|
|
|
|
|
-- View van alle externe reserveringen
|
|
CREATE OR REPLACE VIEW WZKW_V_RESERVERINGEN
|
|
AS
|
|
SELECT *
|
|
FROM (SELECT rrr.res_rsv_ruimte_key rrr_key,
|
|
rrr.res_reservering_key reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr volgnr,
|
|
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
|
|
(SELECT rkw.res_kenmerkreservering_waarde
|
|
FROM res_kenmerkwaarde rkw,
|
|
res_kenmerk rk,
|
|
res_srtkenmerk rsk
|
|
WHERE rkw.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
|
|
AND rkw.res_kenmerk_key=rk.res_kenmerk_key
|
|
AND rsk.res_srtkenmerk_key=rk.res_srtkenmerk_key
|
|
AND rsk.res_srtkenmerk_omschrijving='CashSyncDate') last_export,
|
|
rrr.res_rsv_ruimte_verwijder verw_datum,
|
|
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
|
|
(SELECT PRS_PERSLID_NAAM_FRIENDLY
|
|
FROM PRS_V_PERSLID_FULLNAMES
|
|
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
|
|
rrr.RES_RSV_RUIMTE_VAN datum_van,
|
|
rrr.RES_RSV_RUIMTE_TOT datum_tot,
|
|
rrr.res_rsv_ruimte_omschrijving oms,
|
|
COALESCE(rrr.res_rsv_ruimte_totaal,res.getresruimteprijs(rer.res_ruimte_key,rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot)) prijs,
|
|
rrr.res_status_fo_key fo_status,
|
|
rrr.res_rsv_ruimte_dirtlevel dirtlevel,
|
|
(SELECT b.prs_leverancier_nr
|
|
FROM res_kenmerkwaarde rkw,
|
|
prs_bedrijf b
|
|
WHERE rkw.res_rsv_ruimte_key=rrr.res_rsv_ruimte_key
|
|
AND b.prs_bedrijf_key = fac.safe_to_number(rkw.res_kenmerkreservering_waarde)) huurder,
|
|
(SELECT k.prs_kostenplaats_nr
|
|
FROM prs_kostenplaats k
|
|
WHERE k.prs_kostenplaats_key=rrr.prs_kostenplaats_key) kostenplaats
|
|
FROM res_rsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
res_ruimte_opstelling rop,
|
|
res_ruimte rer,
|
|
res_alg_ruimte rarm,
|
|
alg_v_ruimte_gegevens_all alg
|
|
WHERE rrr.res_status_bo_key = 2
|
|
AND rrr.res_status_fo_key= 2
|
|
AND rrr.res_activiteit_key=ra.res_activiteit_key
|
|
AND ra.res_activiteit_omschrijving = 'Externe reservering'
|
|
AND ra.res_activiteit_verwijder IS NULL
|
|
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
|
|
AND rer.res_ruimte_key = rop.res_ruimte_key
|
|
AND rarm.res_ruimte_key = rer.res_ruimte_key
|
|
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
|
-- AND rrr.res_rsv_ruimte_van < SYSDATE
|
|
ORDER BY 16,2,3);
|
|
|
|
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW wzkw_v_fact_res_cnt
|
|
AS
|
|
SELECT rrr.res_rsv_ruimte_key rrr_key,
|
|
rrr.res_reservering_key reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr res_volgnr,
|
|
rrr.res_rsv_ruimte_van ruimte_van,
|
|
b.prs_bedrijf_key bedrijf_key,
|
|
b.prs_leverancier_nr lev_nr,
|
|
b.prs_bedrijf_naam huurder,
|
|
rrr.res_rsv_ruimte_omschrijving rrr_oms,
|
|
'Huur ' || rer.res_ruimte_nr ruimte_oms,
|
|
alg.ALG_RUIMTE_NR ruimte_NR,
|
|
COALESCE (fac.safe_to_number(contract_prijs.res_kenmerkreservering_waarde),
|
|
rrr.res_rsv_ruimte_totaal,
|
|
res.getresruimteprijs (
|
|
rer.res_ruimte_key,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
0)) prijs,
|
|
(SELECT SUM(COALESCE(rra.res_rsv_artikel_prijs,
|
|
rra.RES_RSV_ARTIKEL_AANTAL*ra.res_artikel_prijs))
|
|
FROM res_rsv_artikel rra, res_artikel ra
|
|
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = rra.res_artikel_key) catering,
|
|
(SELECT SUM(COALESCE(rrd.res_rsv_deel_prijs,
|
|
rrd.RES_RSV_deel_AANTAL*rd.res_deel_prijs))
|
|
FROM res_rsv_deel rrd, res_deel rd
|
|
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rd.res_deel_key = rrd.res_deel_key) object,
|
|
'Contract' soort_reservering,
|
|
c.cnt_contract_key contract_key,
|
|
ct.cnt_termijn_aantal fact_periode_aantal,
|
|
ct.cnt_termijn_type fact_interval,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'YYYY') fact_jaar,
|
|
DECODE (ct.cnt_termijn_aantal,
|
|
3, 'Q','MM') fact_periode,
|
|
DECODE (ct.CNT_TERMIJN_AANTAL,
|
|
1, TO_CHAR (rrr.res_rsv_ruimte_van, 'MM'),
|
|
'') fact_maand,
|
|
(SELECT ck.cnt_kenmerk_key
|
|
FROM cnt_kenmerk ck
|
|
WHERE ck.cnt_kenmerk_code='LASTINVOICEDATE'
|
|
AND ck.cnt_kenmerk_verwijder IS NULL) lastinvoicedate_key,
|
|
(SELECT TO_DATE (ckc.cnt_kenmerkcontract_waarde, 'DD-MM-YYYY')
|
|
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
|
WHERE ck.cnt_kenmerk_code = 'LASTINVOICEDATE'
|
|
AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
|
AND ckc.cnt_kenmerkcontract_verwijder IS NULL
|
|
AND ckc.cnt_contract_key = c.cnt_contract_key) lastinvoicedate,
|
|
(SELECT p.prs_kostenplaats_nr
|
|
FROM prs_kostenplaats p
|
|
WHERE p.prs_kostenplaats_key=c.prs_kostenplaats_key) kostenplaats_nr,
|
|
(SELECT ckc.cnt_kenmerkcontract_waarde
|
|
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
|
WHERE ck.cnt_kenmerk_code = 'CONTRACTREF'
|
|
AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
|
AND ckc.cnt_kenmerkcontract_verwijder IS NULL
|
|
AND ckc.cnt_contract_key = c.cnt_contract_key) contract_ref
|
|
FROM res_rsv_ruimte rrr,
|
|
RES_ACTIVITEIT ra,
|
|
res_kenmerkwaarde rkw,
|
|
res_kenmerk rk,
|
|
res_ruimte_opstelling rop,
|
|
res_alg_ruimte rarm,
|
|
res_ruimte rer,
|
|
alg_v_ruimte_gegevens_all alg,
|
|
prs_bedrijf b,
|
|
cnt_contract c,
|
|
CNT_TERMIJN ct,
|
|
(SELECT rkw.*
|
|
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
|
WHERE rk.RES_KENMERK_CODE = 'CNT_BEDRAG'
|
|
AND rkw.res_kenmerk_key = rk.RES_KENMERK_KEY) contract_prijs
|
|
WHERE rrr.res_status_bo_key = 2
|
|
AND rrr.res_status_fo_key = 2
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND ra.res_activiteit_omschrijving = 'Externe reservering'
|
|
AND rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rkw.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND rk.res_kenmerk_code = 'HUURDERS'
|
|
AND rrr.res_rsv_ruimte_key NOT IN
|
|
(SELECT rkw2.RES_RSV_RUIMTE_KEY
|
|
FROM res_kenmerkwaarde rkw2, res_kenmerk rk2
|
|
WHERE rkw2.res_kenmerk_key = rk2.res_kenmerk_key
|
|
AND rk2.res_kenmerk_code = 'FACTUURSYNC')
|
|
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
|
|
AND rer.res_ruimte_key = rop.res_ruimte_key
|
|
AND rarm.res_ruimte_key = rer.res_ruimte_key
|
|
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
|
|
AND contract_prijs.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
|
AND b.prs_bedrijf_key =
|
|
fac.safe_to_number (rkw.res_kenmerkreservering_waarde)
|
|
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
|
AND c.cnt_contract_status = 0
|
|
AND ct.cnt_termijn_key(+) = c.cnt_contract_termijntermijn
|
|
AND alg.alg_ruimte_key IN
|
|
(SELECT ccp.cnt_alg_plaats_key
|
|
FROM cnt_contract_plaats ccp
|
|
WHERE ccp.cnt_contract_key = c.cnt_contract_key)
|
|
AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw2.res_rsv_ruimte_key
|
|
FROM res_kenmerkwaarde rkw2, res_kenmerk rk2
|
|
WHERE rkw2.res_kenmerk_key = rk2.res_kenmerk_key
|
|
AND rk2.res_kenmerk_code = 'INCIDENTEEL'
|
|
AND rk2.res_kenmerk_verwijder IS NULL)
|
|
AND TRUNC(rrr.res_rsv_ruimte_van)
|
|
BETWEEN TRUNC(c.cnt_contract_looptijd_van)
|
|
AND TRUNC(c.cnt_contract_looptijd_tot)
|
|
ORDER BY 5, 2, 3;
|
|
|
|
CREATE OR REPLACE VIEW wzkw_v_fact_res_incdtl
|
|
AS
|
|
SELECT rrr.res_rsv_ruimte_key rrr_key,
|
|
rrr.res_reservering_key reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr res_volgnr,
|
|
rrr.res_rsv_ruimte_van ruimte_van,
|
|
b.prs_bedrijf_key bedrijf_key,
|
|
b.prs_leverancier_nr lev_nr,
|
|
b.prs_bedrijf_naam huurder,
|
|
COALESCE(rer.RES_RUIMTE_FRIENDLYNAME,
|
|
rrr.res_rsv_ruimte_omschrijving) rrr_oms,
|
|
'Huur ' || rer.res_ruimte_nr ruimte_oms,
|
|
alg.ALG_RUIMTE_NR ruimte_NR,
|
|
COALESCE (fac.safe_to_number(comm_prijs.res_kenmerkreservering_waarde),
|
|
res.getresruimteprijs (
|
|
rer.res_ruimte_key,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
1)) prijs,
|
|
(SELECT SUM(COALESCE(rra.res_rsv_artikel_prijs,rra.RES_RSV_ARTIKEL_AANTAL*ra.res_artikel_prijs))
|
|
FROM res_rsv_artikel rra, res_artikel ra
|
|
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = rra.res_artikel_key) catering,
|
|
(SELECT SUM(COALESCE(rrd.res_rsv_deel_prijs,rrd.RES_RSV_deel_AANTAL*rd.res_deel_prijs))
|
|
FROM res_rsv_deel rrd, res_deel rd
|
|
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rd.res_deel_key = rrd.res_deel_key) object,
|
|
'Incidenteel' soort_reservering,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'YYYY') fact_jaar,
|
|
(SELECT p.prs_kostenplaats_nr
|
|
FROM prs_kostenplaats p
|
|
WHERE p.prs_kostenplaats_key=rrr.prs_kostenplaats_key) kostenplaats_nr,
|
|
(SELECT rkr.res_kenmerkreservering_waarde
|
|
FROM RES_KENMERKWAARDE rkr, res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'RESERVERINGREF'
|
|
AND rkr.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND rkr.res_kenmerkwaarde_verwijder IS NULL
|
|
AND rkr.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key) reservering_ref
|
|
FROM res_rsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
res_kenmerkwaarde rkw,
|
|
res_kenmerk rk,
|
|
res_ruimte_opstelling rop,
|
|
res_alg_ruimte rarm,
|
|
res_ruimte rer,
|
|
alg_v_ruimte_gegevens_all alg,
|
|
res_kenmerkwaarde rkw2,
|
|
res_kenmerk rk2,
|
|
prs_bedrijf b,
|
|
(SELECT rkw.*
|
|
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
|
WHERE rk.RES_KENMERK_CODE = 'COMM_BEDRAG'
|
|
AND rkw.res_kenmerk_key = rk.RES_KENMERK_KEY) comm_prijs
|
|
WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND rkw.RES_KENMERKRESERVERING_WAARDE='1'
|
|
AND rk.res_kenmerk_code = 'INCIDENTEEL'
|
|
AND rk.res_kenmerk_verwijder IS NULL
|
|
AND rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrr.res_status_bo_key = 2
|
|
AND rrr.res_status_fo_key = 2
|
|
AND comm_prijs.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
|
AND ra.res_activiteit_omschrijving = 'Externe reservering'
|
|
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
|
|
AND rer.res_ruimte_key = rop.res_ruimte_key
|
|
AND rarm.res_ruimte_key = rer.res_ruimte_key
|
|
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
|
|
AND rkw2.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rkw2.res_kenmerk_key = rk2.res_kenmerk_key
|
|
AND rk2.res_kenmerk_code = 'HUURDERS'
|
|
AND b.prs_bedrijf_key =
|
|
fac.safe_to_number (rkw2.res_kenmerkreservering_waarde)
|
|
AND rrr.res_rsv_ruimte_key NOT IN
|
|
(SELECT rkw2.res_rsv_ruimte_key
|
|
FROM res_kenmerkwaarde rkw2, res_kenmerk rk2
|
|
WHERE rkw2.res_kenmerk_key = rk2.res_kenmerk_key
|
|
AND rk2.res_kenmerk_code = 'FACTUURSYNC')
|
|
ORDER BY 5, 2, 3;
|
|
|
|
CREATE OR REPLACE VIEW wzkw_v_fact_res_intern
|
|
AS
|
|
/* Formatted on 11-11-2024 14:59:10 (QP5 v5.336) */
|
|
SELECT rrr.res_rsv_ruimte_key rrr_key,
|
|
rrr.res_reservering_key reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr res_volgnr,
|
|
to_char(rrr.res_rsv_ruimte_van,'Q') kwartaal,
|
|
to_char(rrr.res_rsv_ruimte_van,'YYYY') jaar,
|
|
rrr.res_rsv_ruimte_van ruimte_van,
|
|
COALESCE(rer.RES_RUIMTE_FRIENDLYNAME,
|
|
rrr.res_rsv_ruimte_omschrijving) rrr_oms,
|
|
'Res Intern ' || rer.res_ruimte_nr ruimte_oms,
|
|
alg.ALG_GEBOUW_UPPER gebouw_code,
|
|
alg.ALG_RUIMTE_NR ruimte_NR,
|
|
res.getresruimteprijs (
|
|
rer.res_ruimte_key,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
0) prijs,
|
|
rrr.RES_RSV_RUIMTE_PRIJS rrr_prijs,
|
|
(SELECT SUM(COALESCE(rra.res_rsv_artikel_prijs,rra.RES_RSV_ARTIKEL_AANTAL*ra.res_artikel_prijs))
|
|
FROM res_rsv_artikel rra, res_artikel ra
|
|
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = rra.res_artikel_key) catering,
|
|
(SELECT SUM(COALESCE(rrd.res_rsv_deel_prijs,rrd.RES_RSV_deel_AANTAL*rd.res_deel_prijs))
|
|
FROM res_rsv_deel rrd, res_deel rd
|
|
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rd.res_deel_key = rrd.res_deel_key) object,
|
|
'Intern' soort_reservering,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'YYYY') fact_jaar,
|
|
(SELECT p.prs_kostenplaats_nr
|
|
FROM prs_kostenplaats p
|
|
WHERE p.prs_kostenplaats_key=rrr.prs_kostenplaats_key) kostenplaats_nr,
|
|
(SELECT rkr.res_kenmerkreservering_waarde
|
|
FROM RES_KENMERKWAARDE rkr, res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'RESERVERINGREF'
|
|
AND rkr.res_kenmerk_key = rk.res_kenmerk_key
|
|
AND rkr.res_kenmerkwaarde_verwijder IS NULL
|
|
AND rkr.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key) reservering_ref
|
|
FROM res_rsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
res_ruimte_opstelling rop,
|
|
res_alg_ruimte rarm,
|
|
res_ruimte rer,
|
|
alg_v_ruimte_gegevens_all alg
|
|
WHERE
|
|
rrr.res_status_bo_key = 2
|
|
AND rrr.res_status_fo_key = 2
|
|
AND ra.res_activiteit_omschrijving = 'Interne reservering'
|
|
AND rrr.RES_ACTIVITEIT_KEY = ra.RES_ACTIVITEIT_KEY
|
|
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
|
|
AND rer.res_ruimte_key = rop.res_ruimte_key
|
|
AND rarm.res_ruimte_key = rer.res_ruimte_key
|
|
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
|
|
-- AND rrr.res_reservering_key=2036
|
|
AND rrr.res_rsv_ruimte_key NOT IN
|
|
(SELECT rkw2.res_rsv_ruimte_key
|
|
FROM res_kenmerkwaarde rkw2, res_kenmerk rk2
|
|
WHERE rkw2.res_kenmerk_key = rk2.res_kenmerk_key
|
|
AND rk2.res_kenmerk_code = 'FACTUURSYNC_INT')
|
|
ORDER BY 4, 2, 3;
|
|
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW wzkw_v_fact_all
|
|
(
|
|
rrr_key,
|
|
reservering_key,
|
|
volgnr,
|
|
huurder,
|
|
leverancier_nr,
|
|
Ruimte_nr,
|
|
reservering_datum,
|
|
kostenplaats,
|
|
contract_key,
|
|
prijs,
|
|
catering,
|
|
object,
|
|
totaal,
|
|
soort
|
|
)
|
|
AS
|
|
SELECT c.rrr_key,
|
|
c.reservering_key reservering_key,
|
|
c.res_volgnr volgnr,
|
|
c.huurder huurder,
|
|
c.lev_nr leverancier_nr,
|
|
c.ruimte_nr Ruimte_nr,
|
|
c.ruimte_van reservering_datum,
|
|
c.kostenplaats_nr kostenplaats,
|
|
c.lastinvoicedate contract_key,
|
|
c.prijs prijs,
|
|
c.catering catering,
|
|
c.object object,
|
|
c.prijs+c.catering+c.object totaal,
|
|
'Contract' soort
|
|
FROM wzkw_v_fact_res_cnt c
|
|
UNION ALL
|
|
SELECT i.rrr_key,
|
|
i.reservering_key reservering_key,
|
|
i.res_volgnr volgnr,
|
|
i.huurder huurder,
|
|
i.lev_nr leverancier_nr,
|
|
i.ruimte_nr Ruimte_nr,
|
|
i.ruimte_van reservering_datum,
|
|
i.kostenplaats_nr kostenplaats,
|
|
NULL contract_key,
|
|
i.prijs prijs,
|
|
i.catering catering,
|
|
i.object object,
|
|
i.prijs+i.catering+i.object totaal,
|
|
'Incidenteel' soort
|
|
FROM wzkw_v_fact_res_incdtl i;
|
|
|
|
|
|
-- EXPORT RES2CASH 1 of reserveringen
|
|
|
|
CREATE OR REPLACE PROCEDURE WZKW_SELECT_RES2CASHXML (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR sel_res
|
|
IS
|
|
SELECT *
|
|
FROM wzkw_v_reserveringen
|
|
WHERE last_export IS NULL
|
|
AND TO_CHAR(datum_van,'MM-YYYY') = TO_CHAR(ADD_MONTHS(SYSDATE,1),'MM-YYYY'); -- aanpassen naar juiste periode
|
|
|
|
CURSOR sel_art(v_rrr_key IN NUMBER)
|
|
IS
|
|
SELECT rrr.res_reservering_key reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr volgnr,
|
|
ra.res_artikel_omschrijving||' ('||ra.res_artikel_eenheid||')' oms,
|
|
ra.res_artikel_nr artikelnr,
|
|
ra.res_artikel_prijs prijs,
|
|
rra.res_rsv_artikel_aantal aantal,
|
|
'L' btwCode
|
|
FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra
|
|
WHERE rrr.res_rsv_ruimte_key = v_rrr_key
|
|
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND ra.res_artikel_key = rra.res_artikel_key
|
|
AND rra.res_rsv_artikel_verwijder IS NULL
|
|
UNION ALL
|
|
SELECT rrr.res_reservering_key reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr volgnr,
|
|
rd.res_deel_omschrijving omschrijving,
|
|
NULL artikelnr,
|
|
rd.res_deel_prijs prijs,
|
|
rrd.res_rsv_deel_aantal aantal,
|
|
'H' btwCode
|
|
FROM res_rsv_ruimte rrr, res_rsv_deel rrd, res_deel rd
|
|
WHERE rrr.res_rsv_ruimte_key = v_rrr_key
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rd.res_deel_key = rrd.res_deel_key
|
|
AND rrd.res_rsv_deel_verwijder IS NULL;
|
|
|
|
|
|
|
|
|
|
v_bestand VARCHAR2(20);
|
|
v_count NUMBER;
|
|
v_regel NUMBER;
|
|
v_huurder VARCHAR2(50);
|
|
v_reservering_key NUMBER;
|
|
v_prijs_tot NUMBER;
|
|
v_maand NUMBER;
|
|
v_SyncDate_Key NUMBER;
|
|
v_error NUMBER;
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (200);
|
|
|
|
BEGIN
|
|
v_bestand:= 'CSH_RESX';
|
|
v_count:=0;
|
|
v_regel:=0;
|
|
v_reservering_key:=0;
|
|
v_error:=0;
|
|
|
|
DELETE FROM fac_rapport WHERE fac_rapport_node LIKE 'CSH_RESX';
|
|
|
|
BEGIN
|
|
SELECT rk.res_kenmerk_key
|
|
INTO v_SyncDate_Key
|
|
FROM res_activiteit ra,
|
|
res_kenmerk rk,
|
|
RES_SRTKENMERK rsk
|
|
WHERE UPPER(rsk.RES_srtkenmerk_omschrijving) = 'CASHSYNCDATE'
|
|
AND rk.res_srtkenmerk_key = rsk.res_srtkenmerk_key
|
|
AND rk.RES_ACTIVITEIT_KEY = ra.RES_ACTIVITEIT_KEY
|
|
AND ra.RES_ACTIVITEIT_OMSCHRIJVING = 'Externe reservering'
|
|
AND ra.RES_ACTIVITEIT_VERWIJDER IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_error:=1;
|
|
v_errormsg:='Kenmerk key voor ExtrenSyncDate op ACtiviteot Externe reservering niet gevonden';
|
|
fac.writelog ('RES2CASH', 'E', v_errormsg, v_errorhint);
|
|
END;
|
|
|
|
IF v_error=0 THEN
|
|
FOR rec IN sel_res
|
|
LOOP
|
|
v_count:=v_count+1;
|
|
|
|
IF v_count=1 THEN
|
|
wzkw.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
|
wzkw.add_xml_row (v_bestand, '<Reserveringen>');
|
|
END IF;
|
|
v_regel:=v_regel+1;
|
|
wzkw.add_xml_row (v_bestand, '<Reservering>');
|
|
wzkw.add_xml_element (v_bestand, 'reservering_key', rec.reservering_key);
|
|
wzkw.add_xml_element (v_bestand, 'reservering_volgnr', rec.volgnr);
|
|
wzkw.add_xml_element (v_bestand, 'omschrijving', SUBSTR(rec.oms,1,40));
|
|
wzkw.add_xml_element (v_bestand, 'aantal', '1.00');
|
|
wzkw.add_xml_element (v_bestand, 'bedrag', LTRIM(TO_CHAR(ROUND(rec.prijs,2),'999999999.99')));
|
|
wzkw.add_xml_element (v_bestand, 'btwcode', 'H');
|
|
wzkw.add_xml_element (v_bestand, 'factuuregel', v_regel);
|
|
wzkw.add_xml_element (v_bestand, 'relatie', rec.huurder);
|
|
wzkw.add_xml_element (v_bestand, 'kostenplaats', rec.kostenplaats);
|
|
wzkw.add_xml_row (v_bestand, '</Reservering>');
|
|
|
|
|
|
-- Gaan we nu kijken of deze resrevereing ook losse artikelen heeft
|
|
FOR rec_art in sel_art(rec.rrr_key)
|
|
LOOP
|
|
v_regel:=v_regel+1;
|
|
wzkw.add_xml_row (v_bestand, '<Reservering>');
|
|
wzkw.add_xml_element (v_bestand, 'reservering_key', rec_art.reservering_key);
|
|
wzkw.add_xml_element (v_bestand, 'reservering_volgnr', rec_art.volgnr);
|
|
wzkw.add_xml_element (v_bestand, 'omschrijving', SUBSTR(rec_art.oms,1,40));
|
|
wzkw.add_xml_element (v_bestand, 'aantal', LTRIM(TO_CHAR(ROUND(rec_art.aantal,2),'999999999.99')));
|
|
wzkw.add_xml_element (v_bestand, 'bedrag', LTRIM(TO_CHAR(ROUND(rec_art.prijs,2),'999999999.99')));
|
|
wzkw.add_xml_element (v_bestand, 'btwcode', rec_art.btwCode);
|
|
wzkw.add_xml_element (v_bestand, 'factuuregel', v_regel);
|
|
wzkw.add_xml_element (v_bestand, 'relatie', rec.huurder);
|
|
wzkw.add_xml_element (v_bestand, 'kostenplaats', rec.kostenplaats);
|
|
wzkw.add_xml_row (v_bestand, '</Reservering>');
|
|
END LOOP;
|
|
|
|
flx.setflex('RES',v_SyncDate_Key, rec.rrr_key, TO_CHAR(TRUNC(SYSDATE),'DD-MM-YYYY'));
|
|
|
|
|
|
END LOOP;
|
|
|
|
|
|
IF v_count>0 THEN
|
|
wzkw.add_xml_row (v_bestand, '</Reserveringen>');
|
|
|
|
END IF;
|
|
IF v_count=0 THEN
|
|
-- We hebben niets om te exporteren dan gooien we ook XML tags weg.
|
|
DELETE FROM fac_rapport WHERE fac_rapport_node = v_bestand;
|
|
END IF;
|
|
END IF;
|
|
fac.writelog ('RES2CASHXML', 'M', 'Er zijn '||v_count||' reservereinge verstuurd naar Cash', 'Export2Cash');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_EXPORT_RES2CASHXML (
|
|
result,
|
|
result_order,
|
|
exact_exp
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel ,fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'CSH_RESX%'
|
|
ORDER BY fac_rapport_node,fac_rapport_volgnr;
|
|
-- EINDE EXPORT RES2CASH
|
|
|
|
-- EXPORT RES2CASHCSV 1 of reserveringen
|
|
CREATE OR REPLACE PROCEDURE WZKW_SELECT_RES2CASHCSV (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR sel_res
|
|
IS
|
|
SELECT rrr_key,
|
|
reservering_key,
|
|
ruimte_van,
|
|
huurder,
|
|
lev_nr,
|
|
bedrijf_key,
|
|
contract_key,
|
|
ruimte_oms,
|
|
lastinvoicedate_key,
|
|
TRUNC(lastinvoicedate) lastinvoicedate,
|
|
fact_periode ,
|
|
fact_interval,
|
|
prijs,
|
|
TRUNC(SYSDATE,fact_periode) no_invoicedatstart,
|
|
TRUNC(SYSDATE,fact_periode) firstStartDatumPeriode,
|
|
last_day(ADD_MONTHS(trunc(SYSDATE+2, fact_periode),fact_periode_aantal-1)) firstEindDatumPeriode,
|
|
ADD_MONTHS(trunc(lastinvoicedate,fact_periode), fact_periode_aantal) startDatumPeriode,
|
|
last_day(ADD_MONTHS(trunc(SYSDATE, fact_periode),fact_periode_aantal-1)) eindDatumPeriode
|
|
FROM wzkw_v_fact_res_cnt
|
|
WHERE ( lastinvoicedate IS NOT NULL
|
|
AND TRUNC(SYSDATE) >= ADD_MONTHS(trunc(lastinvoicedate,fact_periode),fact_periode_aantal)
|
|
AND ruimte_van BETWEEN ADD_MONTHS(trunc(lastinvoicedate,fact_periode), fact_periode_aantal)
|
|
AND last_day(ADD_MONTHS(trunc(SYSDATE, fact_periode),fact_periode_aantal-1))
|
|
)
|
|
OR
|
|
(lastinvoicedate IS NULL
|
|
AND ruimte_van BETWEEN TRUNC(SYSDATE,fact_periode)
|
|
AND last_day(ADD_MONTHS(trunc(SYSDATE+2, fact_periode),fact_periode_aantal-1))
|
|
)
|
|
AND soort_reservering='Contract';
|
|
|
|
--GROUP BY RESERVERING_KEY,HUURDER,lev_nr,BEDRIJF_KEY,CONTRACT_KEY, RUIMTE_OMS,lastinvoicedate_key,LASTINVOICEDATE,FACT_PERIODE,fact_interval;
|
|
|
|
CURSOR sel_finv
|
|
IS
|
|
SELECT fin_verkoopfactuur_n2 reservering_key,
|
|
prs_debiteur_naam huurder,
|
|
fin_verkoopfactuur_c1 soort,
|
|
|
|
fin_verkoopfactuur_omschr oms,
|
|
fin_verkoopfactuur_n4 contract_key,
|
|
fin_verkoopfactuur_n3 volgnr,
|
|
prs_kostenplaats_nr kostenplaats_nr,
|
|
fin_verkoopfactuur_c2 res_ref,
|
|
SUM (fin_verkoopfactuur_bedrag) prijs,
|
|
COUNT (*) aantal
|
|
FROM fin_verkoopfactuur
|
|
WHERE fin_verkoopfactuur_datum = TRUNC (SYSDATE)
|
|
AND fin_verkoopfactuur_c3 ='Contract'
|
|
AND fin_verkoopfactuur_n1=1
|
|
GROUP BY fin_verkoopfactuur_n2,
|
|
prs_debiteur_naam,
|
|
fin_verkoopfactuur_c1,
|
|
fin_verkoopfactuur_omschr,
|
|
fin_verkoopfactuur_n4,
|
|
fin_verkoopfactuur_n3,
|
|
prs_kostenplaats_nr,
|
|
fin_verkoopfactuur_c2
|
|
ORDER BY fin_verkoopfactuur_n2, fin_verkoopfactuur_n3;
|
|
|
|
CURSOR sel_upd
|
|
IS
|
|
SELECT fin_verkoopfactuur_refkey rrr_key,
|
|
fin_verkoopfactuur_n4 contract_key
|
|
FROM fin_verkoopfactuur
|
|
WHERE fin_verkoopfactuur_datum = TRUNC (SYSDATE)
|
|
AND fin_verkoopfactuur_c3 ='Contract'
|
|
AND fin_verkoopfactuur_n1=2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v_bestand VARCHAR2(20);
|
|
v_count NUMBER;
|
|
v_regel NUMBER;
|
|
v_huurder VARCHAR2(50);
|
|
v_csv_regel VARCHAR2(2000);
|
|
v_reservering_key NUMBER;
|
|
v_prijs_tot NUMBER;
|
|
v_maand NUMBER;
|
|
v_SyncDate_Key NUMBER;
|
|
v_lastinvoicedate_key NUMBER;
|
|
v_error NUMBER;
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (200);
|
|
v_omschrijving VARCHAR2(200);
|
|
v_servicecost NUMBER;
|
|
v_energiecost NUMBER;
|
|
v_grootboek VARCHAR2(10);
|
|
v_contractverwijs VARCHAR2(40);
|
|
|
|
BEGIN
|
|
v_bestand:= 'CSH_RESC';
|
|
v_count:=0;
|
|
v_regel:=0;
|
|
v_reservering_key:=0;
|
|
v_error:=0;
|
|
v_grootboek:='';
|
|
v_contractverwijs:='';
|
|
|
|
DELETE FROM fac_rapport WHERE fac_rapport_node LIKE 'CSH_RESC';
|
|
|
|
BEGIN
|
|
SELECT rk.res_kenmerk_key
|
|
INTO v_SyncDate_Key
|
|
FROM res_activiteit ra,
|
|
res_kenmerk rk
|
|
WHERE rk.RES_KENMERK_CODE = 'FACTUURSYNC'
|
|
AND rk.res_activiteit_key = ra.res_activiteit_key
|
|
AND ra.res_activiteit_omschrijving = 'Externe reservering'
|
|
AND ra.res_activiteit_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_error:=1;
|
|
v_errormsg:='Kenmerk key met code FACTUURSYNC op Activiteit Externe reservering niet gevonden';
|
|
fac.writelog ('RES2CASH', 'E', v_errormsg, v_errorhint);
|
|
END;
|
|
|
|
IF v_error=0 THEN
|
|
|
|
-- Gaan we eerst de fin_verkoopfactuur vullen met alle te exporteren reserveringen
|
|
FOR rec IN sel_res
|
|
LOOP
|
|
wzkW.WZKW_GENERATE_FIN_VERKOOP(rec.rrr_key);
|
|
END LOOP;
|
|
|
|
-- Gaan we ni over de fin_verkoopfactuur loopen om de unieke reservering_key er uit te krijgen.
|
|
v_huurder:='';
|
|
FOR rex_exp IN sel_finv
|
|
LOOP
|
|
v_count:=v_count+1;
|
|
IF v_count=1 THEN
|
|
v_contractverwijs:=rex_exp.res_ref;
|
|
v_huurder:=rex_exp.huurder;
|
|
v_reservering_key:=rex_exp.reservering_key;
|
|
END IF;
|
|
|
|
IF (v_count>1 AND v_reservering_key <> rex_exp.reservering_key) THEN
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR('',1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=8210|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(v_contractverwijs,1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=8210|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
v_huurder:=rex_exp.huurder;
|
|
v_reservering_key:=rex_exp.reservering_key;
|
|
v_contractverwijs:=rex_exp.res_ref;
|
|
END IF;
|
|
|
|
IF rex_exp.soort='Ruimte' THEN
|
|
v_grootboek:='8200';
|
|
ELSIF rex_exp.soort='Catering' THEN
|
|
v_grootboek:='7110';
|
|
ELSIF rex_exp.soort='Object' THEN
|
|
v_grootboek:='8115';
|
|
ELSE
|
|
v_grootboek:='';
|
|
END IF ;
|
|
v_omschrijving:= rex_exp.soort||' '||rex_exp.oms||' ('||rex_exp.aantal||'x)';
|
|
v_csv_regel:='0440|0101='||rex_exp.huurder||'|0425='||rex_exp.reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(v_omschrijving,1,40)||'|0421=1.00|0455='||LTRIM(TO_CHAR(ROUND(rex_exp.prijs,2),'999999999.99'))||'|0442=|0118=|0201='||v_grootboek||'|0911='||rex_exp.kostenplaats_nr||'|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
|
|
-- IF LENGTH(v_omschrijving)>40
|
|
-- THEN
|
|
-- v_count:=v_count+1;
|
|
-- v_csv_regel:='0440|0101='||rex_exp.huurder||'|0425='||rex_exp.reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(v_omschrijving,41,80)||'|0421=1.00|0455='||LTRIM(TO_CHAR(ROUND(rex_exp.prijs,2),'999999999.99'))||'|0442=|0118=|0201='||v_grootboek||'|0911='||rex_exp.kostenplaats_nr||'|1919=|';
|
|
-- wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
-- END IF;
|
|
|
|
|
|
IF rex_exp.volgnr='1' THEN -- volgnr=1 betekend ruimte dus gaan we gelijk de service en energie kosten inboeken
|
|
SELECT COALESCE((
|
|
SELECT fac.safe_to_number(ckw1.CNT_KENMERKCONTRACT_WAARDE)
|
|
FROM cnt_kenmerkcontract ckw1, cnt_kenmerk ck1
|
|
WHERE ckw1.CNT_CONTRACT_KEY = c.CNT_CONTRACT_KEY
|
|
AND ckw1.CNT_KENMERK_KEY = ck1.CNT_KENMERK_KEY
|
|
AND ck1.CNT_KENMERK_CODE = 'SERVICECOST'),
|
|
0) serviceCost,
|
|
COALESCE(( SELECT fac.safe_to_number(ckw1.CNT_KENMERKCONTRACT_WAARDE)
|
|
FROM cnt_kenmerkcontract ckw1, cnt_kenmerk ck1
|
|
WHERE ckw1.CNT_CONTRACT_KEY = c.CNT_CONTRACT_KEY
|
|
AND ckw1.CNT_KENMERK_KEY = ck1.CNT_KENMERK_KEY
|
|
AND ck1.CNT_KENMERK_CODE = 'ENERGIECOST'),0) energieCost
|
|
INTO v_servicecost,
|
|
v_energiecost
|
|
FROM cnt_contract c
|
|
WHERE c.cnt_contract_key = rex_exp.contract_key;
|
|
|
|
IF v_servicecost>0 THEN -- alleen als we ook een bedrag hebben
|
|
v_count:=v_count+1;
|
|
v_csv_regel:='0440|0101='||rex_exp.huurder||'|0425='||rex_exp.reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR('Service kosten',1,40)||'|0421=1.00|0455='||LTRIM(TO_CHAR(ROUND(v_servicecost,2),'999999999.99'))||'|0442=|0118=|0201=8299|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
END IF;
|
|
IF v_energiecost>0 THEN -- alleen als we ook een bedrag hebben
|
|
v_count:=v_count+1;
|
|
v_csv_regel:='0440|0101='||rex_exp.huurder||'|0425='||rex_exp.reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR('Energie kosten',1,40)||'|0421=1.00|0455='||LTRIM(TO_CHAR(ROUND(v_energiecost,2),'999999999.99'))||'|0442=|0118=|0201=8210|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
END IF;
|
|
|
|
|
|
END IF;
|
|
|
|
END LOOP;
|
|
IF v_count>0 THEN
|
|
v_count:=v_count+1;
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR('',1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=8210|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(v_contractverwijs,1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=8210|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
END IF;
|
|
|
|
UPDATE fin_verkoopfactuur
|
|
SET fin_verkoopfactuur_n1=2
|
|
WHERE fin_verkoopfactuur_datum = TRUNC (SYSDATE)
|
|
AND fin_verkoopfactuur_n1=1;
|
|
|
|
-- Gaan we nu de flex kenmerken voor de res-rsv_ruimte en contract zetten:
|
|
SELECT ck.cnt_kenmerk_key
|
|
INTO v_lastinvoicedate_key
|
|
FROM cnt_kenmerk ck
|
|
WHERE ck.cnt_kenmerk_code='LASTINVOICEDATE'
|
|
AND ck.cnt_kenmerk_verwijder IS NULL;
|
|
FOR rec_upd IN sel_upd
|
|
LOOP
|
|
flx.setflex('RES',v_SyncDate_Key, rec_upd.rrr_key, TO_CHAR(TRUNC(SYSDATE),'DD-MM-YYYY'));
|
|
flx.setflex('CNT',v_lastinvoicedate_key, rec_upd.contract_key, TO_CHAR(TRUNC(SYSDATE),'DD-MM-YYYY'));
|
|
END LOOP;
|
|
|
|
|
|
IF v_count=0 THEN
|
|
-- We hebben niets om te exporteren dan gooien we ook XML tags weg.
|
|
DELETE FROM fac_rapport WHERE fac_rapport_node = v_bestand;
|
|
END IF;
|
|
END IF;
|
|
fac.writelog ('RES2CASHCSV', 'M', 'Er zijn '||v_count||' reserveringen geexporteerd', 'Export2Cash');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_EXPORT_RES2CASHCSV (
|
|
result,
|
|
result_order,
|
|
exact_exp
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel ,fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'CSH_RESC'
|
|
ORDER BY fac_rapport_node,fac_rapport_volgnr;
|
|
-- EINDE EXPORT RES2CASHCSV
|
|
|
|
|
|
|
|
|
|
-- EXPORT RES2CASHINC
|
|
CREATE OR REPLACE PROCEDURE WZKW_SELECT_RES2CASHINCD (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR sel
|
|
IS
|
|
SELECT *
|
|
FROM wzkw_v_fact_res_incdtl
|
|
WHERE TRUNC (ruimte_van) BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'MM'),-2) -- 1ste van de vorige maand
|
|
AND LAST_DAY (ADD_MONTHS (TRUNC (SYSDATE,'MM'),-1)); -- laatse dag van de vorige maand;
|
|
|
|
CURSOR sel_finv
|
|
IS
|
|
SELECT fin_verkoopfactuur_n2 reservering_key,
|
|
prs_debiteur_naam huurder,
|
|
fin_verkoopfactuur_c1 soort,
|
|
fin_verkoopfactuur_omschr oms,
|
|
fin_verkoopfactuur_n4 contract_key,
|
|
fin_verkoopfactuur_n3 volgnr,
|
|
prs_kostenplaats_nr kostenplaats_nr,
|
|
fin_verkoopfactuur_c2 res_ref,
|
|
SUM (fin_verkoopfactuur_bedrag) prijs,
|
|
COUNT (*) aantal
|
|
FROM fin_verkoopfactuur
|
|
WHERE fin_verkoopfactuur_datum = TRUNC (SYSDATE)
|
|
AND fin_verkoopfactuur_c3 ='Incidenteel'
|
|
AND fin_verkoopfactuur_n1=1
|
|
GROUP BY fin_verkoopfactuur_n2,
|
|
prs_debiteur_naam,
|
|
fin_verkoopfactuur_c1,
|
|
fin_verkoopfactuur_omschr,
|
|
fin_verkoopfactuur_n4,
|
|
fin_verkoopfactuur_n3,
|
|
prs_kostenplaats_nr,
|
|
fin_verkoopfactuur_c2
|
|
ORDER BY fin_verkoopfactuur_n2, fin_verkoopfactuur_n3;
|
|
|
|
CURSOR sel_upd
|
|
IS
|
|
SELECT fin_verkoopfactuur_refkey rrr_key,
|
|
fin_verkoopfactuur_n4 contract_key
|
|
FROM fin_verkoopfactuur
|
|
WHERE fin_verkoopfactuur_datum = TRUNC (SYSDATE)
|
|
AND fin_verkoopfactuur_c3 ='Incidenteel'
|
|
AND fin_verkoopfactuur_n1=2;
|
|
|
|
|
|
|
|
v_bestand VARCHAR2(20);
|
|
v_count NUMBER;
|
|
v_huurder VARCHAR2(50);
|
|
v_reservering_key NUMBER;
|
|
v_SyncDate_Key NUMBER;
|
|
v_csv_regel VARCHAR2(2000);
|
|
v_error NUMBER;
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (200);
|
|
v_grootboek VARCHAR2(10);
|
|
v_resverwijs VARCHAR2(40);
|
|
v_maand VARCHAR2(40);
|
|
BEGIN
|
|
v_bestand:= 'CSH_RESINC';
|
|
v_count:=0;
|
|
|
|
v_reservering_key:=0;
|
|
v_error:=0;
|
|
v_grootboek:='';
|
|
|
|
DELETE FROM fac_rapport WHERE fac_rapport_node LIKE 'CSH_RESINC';
|
|
|
|
BEGIN
|
|
SELECT rk.res_kenmerk_key
|
|
INTO v_SyncDate_Key
|
|
FROM res_activiteit ra,
|
|
res_kenmerk rk
|
|
WHERE rk.RES_KENMERK_CODE = 'FACTUURSYNC'
|
|
AND rk.res_activiteit_key = ra.res_activiteit_key
|
|
AND ra.res_activiteit_omschrijving = 'Externe reservering'
|
|
AND ra.res_activiteit_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_error:=1;
|
|
v_errormsg:='Kenmerk key voor ExtrenSyncDate op ACtiviteot Vergaderirng-Extren niet gevonden';
|
|
fac.writelog ('RES2CASHINCD', 'E', v_errormsg, v_errorhint);
|
|
END;
|
|
|
|
FOR rec IN sel
|
|
LOOP
|
|
wzkW.WZKW_GENERATE_FIN_VERKOOP(rec.rrr_key);
|
|
END LOOP;
|
|
|
|
SELECT 'Betreft maand '||
|
|
RTRIM(TO_CHAR(ADD_MONTHS (TRUNC (SYSDATE,'MM'),-1),'Month','NLS_DATE_LANGUAGE = dutch'))||' '||
|
|
TO_CHAR(ADD_MONTHS (TRUNC (SYSDATE,'MM'),-1),'YYYY')
|
|
INTO v_maand
|
|
FROM DUAL;
|
|
|
|
|
|
|
|
FOR rex_exp IN sel_finv
|
|
LOOP
|
|
v_count:=v_count+1;
|
|
IF v_count=1 THEN
|
|
v_resverwijs:=rex_exp.res_ref;
|
|
v_huurder:=rex_exp.huurder;
|
|
v_reservering_key:=rex_exp.reservering_key;
|
|
END IF;
|
|
|
|
IF (v_count>1 AND v_reservering_key <> rex_exp.reservering_key) THEN
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR('',1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(v_resverwijs,1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
|
|
|
|
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(v_maand,1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
|
|
|
|
v_huurder:=rex_exp.huurder;
|
|
v_reservering_key:=rex_exp.reservering_key;
|
|
v_resverwijs:=rex_exp.res_ref;
|
|
END IF;
|
|
|
|
IF rex_exp.soort='Ruimte' THEN
|
|
v_grootboek:='8290';
|
|
ELSIF rex_exp.soort='Catering' THEN
|
|
v_grootboek:='7110';
|
|
ELSIF rex_exp.soort='Object' THEN
|
|
v_grootboek:='8115';
|
|
ELSE
|
|
v_grootboek:='';
|
|
END IF ;
|
|
v_csv_regel:='0440|0101='||rex_exp.huurder||'|0425='||rex_exp.reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(rex_exp.soort||' '||rex_exp.oms||' ('||rex_exp.aantal||'x)',1,40)||'|0421=1.00|0455='||LTRIM(TO_CHAR(ROUND(rex_exp.prijs,2),'999999999.99'))||'|0442=|0118=|0201='||v_grootboek||'|0911='||rex_exp.kostenplaats_nr||'|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
|
|
|
|
END LOOP;
|
|
IF v_count>0 THEN
|
|
v_count:=v_count+1;
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR('',1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(v_resverwijs,1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
|
|
v_csv_regel:='0440|0101='||v_huurder||'|0425='||v_reservering_key||'|1490='||v_count||'|0451=|0452='||SUBSTR(v_maand,1,40)||'|0421=1.00|0455='||'|0442=|0118=|0201=|0911=|1919=|';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
END IF;
|
|
|
|
UPDATE fin_verkoopfactuur
|
|
SET fin_verkoopfactuur_n1=2
|
|
WHERE fin_verkoopfactuur_datum = TRUNC (SYSDATE)
|
|
AND fin_verkoopfactuur_n1=1;
|
|
|
|
FOR rec_upd IN sel_upd
|
|
LOOP
|
|
flx.setflex('RES',v_SyncDate_Key, rec_upd.rrr_key, TO_CHAR(TRUNC(SYSDATE),'DD-MM-YYYY'));
|
|
END LOOP;
|
|
|
|
|
|
|
|
|
|
IF v_count=0 THEN
|
|
-- We hebben niets om te exporteren dan gooien we ook XML tags weg.
|
|
DELETE FROM fac_rapport WHERE fac_rapport_node = v_bestand;
|
|
END IF;
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_EXPORT_RES2CASHINCD (
|
|
result,
|
|
result_order,
|
|
exact_exp
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel ,fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'CSH_RESINC'
|
|
ORDER BY fac_rapport_node,fac_rapport_volgnr;
|
|
|
|
CREATE OR REPLACE PROCEDURE WZKW_SELECT_RES2CASHDOORB (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
|
|
CURSOR sel(p_kwartaal IN VARCHAR2, p_jaar IN VARCHAR2)
|
|
IS
|
|
SELECT gebouw_code,
|
|
kostenplaats_nr,
|
|
jaar,
|
|
kwartaal,
|
|
DECODE(kwartaal,1,'01',2,'04',3,'07',4,'12') maand,
|
|
count(*) aantal,
|
|
sum(prijs) totaal
|
|
from wzkw_v_fact_res_intern
|
|
WHERE jaar=p_jaar
|
|
AND TO_CHAR(kwartaal)= p_kwartaal
|
|
GROUP BY gebouw_code, kostenplaats_nr, jaar,kwartaal, 4
|
|
ORDER by kwartaal, gebouw_code, kostenplaats_nr;
|
|
|
|
|
|
|
|
v_count NUMBER;
|
|
v_bestand VARCHAR2(20);
|
|
v_kwartaal NUMBER;
|
|
v_jaar NUMBER;
|
|
v_SyncDate_Key NUMBER;
|
|
v_error NUMBER;
|
|
v_errormsg VARCHAR2(200);
|
|
v_errorhint VARCHAR2 (200);
|
|
v_gebouw_code_org VARCHAR2(10);
|
|
v_gebouw_kpn VARCHAR2(10);
|
|
v_sum_gebouw NUMBER;
|
|
v_grootboek VARCHAR2(10);
|
|
v_grootboekTB VARCHAR2(10);
|
|
v_welzijnskwartier VARCHAR2(10);
|
|
v_csv_regel VARCHAR2(2000);
|
|
BEGIN
|
|
v_bestand:= 'CSH_RESDOORB';
|
|
v_count:=0;
|
|
v_error:=0;
|
|
|
|
-- Eerst opruimen
|
|
DELETE FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'CSH_RESDOORB%';
|
|
|
|
-- Welke periode hebben we.. we gaan altijd per kwartaal
|
|
SELECT fac.safe_to_number(TO_CHAR(SYSDATE,'Q')) , fac.safe_to_number(TO_CHAR(SYSDATE,'YYYY'))
|
|
INTO v_kwartaal, v_jaar
|
|
FROM DUAL;
|
|
|
|
IF v_kwartaal=1
|
|
THEN
|
|
v_jaar:=v_jaar-1;
|
|
v_kwartaal:=4;
|
|
ELSE
|
|
v_kwartaal:=v_kwartaal-1;
|
|
END IF;
|
|
|
|
BEGIN
|
|
SELECT rk.res_kenmerk_key
|
|
INTO v_SyncDate_Key
|
|
FROM res_activiteit ra,
|
|
res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'FACTUURSYNC_INT'
|
|
AND rk.res_activiteit_key = ra.res_activiteit_key
|
|
AND ra.res_activiteit_omschrijving = 'Interne reservering'
|
|
AND ra.res_activiteit_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_error:=1;
|
|
v_errormsg:='Kenmerk key voor FactuurSync_INT op Activiteit Interne reservering niet gevonden';
|
|
fac.writelog ('RES2CASHDOORB', 'E', v_errormsg, v_errorhint);
|
|
END;
|
|
v_grootboek:='2020';
|
|
v_grootboekTB:='2998';
|
|
v_gebouw_code_org:='';
|
|
v_sum_gebouw:=0;
|
|
|
|
IF v_error=0
|
|
THEN
|
|
-- Gaan we eerste de export file maken
|
|
FOR rec IN sel(''||v_kwartaal, ''||v_jaar)
|
|
LOOP
|
|
v_count:=v_count+1;
|
|
|
|
|
|
IF (v_count>1 AND rec.gebouw_code <> v_gebouw_code_org)
|
|
THEN
|
|
BEGIN
|
|
SELECT prs_kostenplaats_nr
|
|
INTO v_gebouw_kpn
|
|
from prs_kostenplaats k, alg_gebouw g
|
|
WHERE g.ALG_GEBOUW_CODE=v_gebouw_code_org
|
|
AND k.prs_kostenplaats_key=g.prs_kostenplaats_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_gebouw_kpn:='NB';
|
|
END;
|
|
v_csv_regel:='0301|0901=DBL|0911='||v_gebouw_kpn||'|0201='||v_grootboekTB||'|0306='||SUBSTR('DBL Huisv. '||v_gebouw_code_org||' Q'||rec.kwartaal ,1,40)||'|0307=-'||LTRIM(TO_CHAR(ROUND(v_sum_gebouw,2),'999999999.99'))||'|0302='||TO_CHAR(SYSDATE,'YYMMDD')||'|0301='||SUBSTR(rec.jaar,3,2)||rec.maand||'|0303=STUKNR';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_sum_gebouw:=0;
|
|
END IF;
|
|
|
|
v_sum_gebouw:=v_sum_gebouw+ROUND(rec.totaal,2);
|
|
v_csv_regel:='0301|0901=DBL|0911='||rec.kostenplaats_nr||'|0201='||v_grootboek||'|0306='||SUBSTR('DBL Huisv. '||rec.gebouw_code||' Q'||rec.kwartaal ,1,40)||'|0307='||LTRIM(TO_CHAR(ROUND(rec.totaal,2),'999999999.99'))||'|0302='||TO_CHAR(SYSDATE,'YYMMDD')||'|0301='||SUBSTR(rec.jaar,3,2)||rec.maand||'|0303=STUKNR';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
v_count:=v_count+1;
|
|
v_gebouw_code_org:=rec.gebouw_code;
|
|
v_kwartaal:=rec.kwartaal;
|
|
|
|
END LOOP;
|
|
|
|
-- Dan moeten we nu voor de laatse regel nog een tegenboekingt doen.
|
|
BEGIN
|
|
SELECT prs_kostenplaats_nr
|
|
INTO v_gebouw_kpn
|
|
FROM prs_kostenplaats k, alg_gebouw g
|
|
WHERE g.alg_gebouw_code=v_gebouw_code_org
|
|
AND k.prs_kostenplaats_key=g.prs_kostenplaats_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_gebouw_kpn:='NB';
|
|
END;
|
|
v_csv_regel:='0301|0901=DBL|0911='||v_gebouw_kpn||'|0201='||v_grootboekTB||'|0306='||SUBSTR('DBL Huisv. '||v_gebouw_code_org||' Q'||v_kwartaal ,1,40)||'|0307=-'||LTRIM(TO_CHAR(ROUND(v_sum_gebouw,2),'999999999.99'))||'|0302='||TO_CHAR(SYSDATE,'YYMMDD')||'|0301='||SUBSTR(v_jaar,3,2)||LPAD(v_kwartaal,2,'0')||'|0303=STUKNR';
|
|
wzkw.add_csv_row (v_bestand, v_csv_regel);
|
|
|
|
IF v_count=0
|
|
THEN
|
|
-- We hebben geen recorda maar er is toch een tegenboeking record ten onrechte gemaakt dus gaan we die maar verwijderen
|
|
DELETE
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'CSH_RESDOORB%';
|
|
END IF;
|
|
|
|
/*
|
|
FOR rec_upd IN sel_sync(v_kartaal, v_jaar)
|
|
LOOP
|
|
flx.setflex('RES',v_SyncDate_Key, rec_upd.rrr_key, TO_CHAR(TRUNC(SYSDATE),'DD-MM-YYYY'));
|
|
END LOOP;
|
|
*/
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_EXPORT_RES2CASHDOORB (
|
|
result,
|
|
result_order,
|
|
exact_exp
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel ,fac_rapport_volgnr, fac_rapport_node
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'CSH_RESDOORB'
|
|
ORDER BY fac_rapport_node,fac_rapport_volgnr;
|
|
|
|
|
|
-- EINDE EXPORT RES2CASHMND
|
|
|
|
|
|
|
|
|
|
-- EINDE EXPORTS
|
|
|
|
|
|
-- VIEW
|
|
-- rapport View
|
|
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_GEBOUWBEZETTING
|
|
(
|
|
alg_gebouw_code,
|
|
aantal_ruimtes,
|
|
bezet_opp,
|
|
bruto_opp
|
|
)
|
|
AS
|
|
SELECT alg_gebouw_code,
|
|
(SELECT COUNT(*)
|
|
FROM alg_v_ruimte_gegevens a
|
|
WHERE alg_gebouw_upper = alg_gebouw_code
|
|
AND a.alg_ruimte_key NOT IN
|
|
(SELECT rar.alg_ruimte_key
|
|
FROM res_ruimte rr, res_alg_ruimte rar
|
|
WHERE rr.res_ruimte_verwijder IS NULL
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key)) aantal_ruimtes,
|
|
bezet_opp,
|
|
(SELECT SUM (a.alg_ruimte_bruto_vloeropp)
|
|
FROM alg_v_ruimte_gegevens a
|
|
WHERE alg_gebouw_upper = alg_gebouw_code
|
|
AND a.alg_ruimte_key NOT IN
|
|
(SELECT rar.alg_ruimte_key
|
|
FROM res_ruimte rr, res_alg_ruimte rar
|
|
WHERE rr.res_ruimte_verwijder IS NULL
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key)) bruto_opp
|
|
FROM (
|
|
SELECT alg_gebouw_upper alg_gebouw_code, SUM (bezet_opp) bezet_opp
|
|
FROM (
|
|
SELECT alg.alg_ruimte_key,
|
|
alg.alg_ruimte_nr,
|
|
alg.alg_gebouw_upper,
|
|
alg.alg_gebouw_key,
|
|
COALESCE (
|
|
(SELECT SUM (ra.prs_ruimteafdeling_bezetting)/100
|
|
FROM prs_ruimteafdeling ra
|
|
WHERE ra.alg_ruimte_key = alg.ALG_RUIMTE_KEY),
|
|
0)*alg.alg_ruimte_bruto_vloeropp bezet_opp
|
|
FROM alg_v_ruimte_gegevens alg
|
|
WHERE alg.alg_ruimte_key NOT IN
|
|
(SELECT rar.alg_ruimte_key
|
|
FROM res_ruimte rr, res_alg_ruimte rar
|
|
WHERE rr.res_ruimte_verwijder IS NULL
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key))
|
|
GROUP BY alg_gebouw_upper
|
|
);
|
|
|
|
CREATE OR REPLACE VIEW WXKW_V_RUIMTEBEZETTING
|
|
AS
|
|
SELECT x.*,
|
|
( COALESCE (q1, 0)
|
|
+ COALESCE (q2, 0)
|
|
+ COALESCE (q3, 0)
|
|
+ COALESCE (q4, 0))
|
|
/ 4 AS avg_ytd
|
|
FROM (SELECT z.*,
|
|
CASE
|
|
WHEN ( van <=
|
|
TO_DATE ('01-01-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
(tot IS NULL
|
|
OR
|
|
tot >
|
|
TO_DATE ('31-03-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
)
|
|
) OR
|
|
(
|
|
van >
|
|
TO_DATE ('01-01-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
van <=
|
|
TO_DATE ('31-03-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
) OR
|
|
(
|
|
van <
|
|
TO_DATE ('01-01-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
tot <=
|
|
TO_DATE ('31-03-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
)
|
|
THEN
|
|
COALESCE (z.bezetting, 0)
|
|
END q1,
|
|
CASE
|
|
WHEN ( van <=
|
|
TO_DATE ('01-04-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
(tot IS NULL
|
|
OR
|
|
tot >
|
|
TO_DATE ('30-06-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
)
|
|
) OR
|
|
(
|
|
van >
|
|
TO_DATE ('01-04-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
van <=
|
|
TO_DATE ('30-06-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
) OR
|
|
(
|
|
van <
|
|
TO_DATE ('01-04-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
tot <=
|
|
TO_DATE ('30-06-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
)
|
|
THEN
|
|
COALESCE (z.bezetting, 0)
|
|
END q2,
|
|
CASE
|
|
WHEN ( van <=
|
|
TO_DATE ('01-07-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
(tot IS NULL
|
|
OR
|
|
tot >
|
|
TO_DATE ('30-09-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
)
|
|
) OR
|
|
(
|
|
van >
|
|
TO_DATE ('01-07-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
van <=
|
|
TO_DATE ('30-09-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
) OR
|
|
(
|
|
van <
|
|
TO_DATE ('01-07-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
tot <=
|
|
TO_DATE ('30-09-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
)
|
|
THEN
|
|
COALESCE (z.bezetting, 0)
|
|
END q3,
|
|
CASE
|
|
WHEN ( van <=
|
|
TO_DATE ('01-10-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
(tot IS NULL
|
|
OR
|
|
tot >
|
|
TO_DATE ('31-12-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
)
|
|
) OR
|
|
(
|
|
van >
|
|
TO_DATE ('01-10-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
AND
|
|
van <=
|
|
TO_DATE ('31-12-' || TO_CHAR (SYSDATE, 'YYYY'),
|
|
'DD-MM-YYYY')
|
|
)
|
|
THEN
|
|
COALESCE (z.bezetting, 0)
|
|
END q4
|
|
FROM ( SELECT r.alg_ruimte_key,
|
|
r.alg_ruimte_nr
|
|
ruimte_nr,
|
|
a.ALG_GEBOUW_CODE
|
|
gebouw_code,
|
|
a.ALG_GEBOUW_NAAM
|
|
gebouw_naam,
|
|
(SELECT a.PRS_AFDELING_omschrijving
|
|
FROM prs_afdeling a
|
|
WHERE a.prs_afdeling_key = p.prs_afdeling_key)
|
|
afdeling,
|
|
TRUNC (p.PRS_RUIMTEAFDELING_INGANGSDATUM)
|
|
van,
|
|
DECODE (
|
|
p.PRS_RUIMTEAFDELING_INGANGSDATUM,
|
|
NULL, NULL,
|
|
TRUNC (p.PRS_RUIMTEAFDELING_EINDDATUM))
|
|
tot,
|
|
fac.safe_to_number (
|
|
COALESCE (p.PRS_RUIMTEAFDELING_BEZETTING, 0))
|
|
bezetting
|
|
FROM alg_ruimte r,
|
|
prs_ruimteafdeling p,
|
|
ALG_V_ALLONRGOED_GEGEVENS a
|
|
WHERE r.alg_ruimte_key NOT IN
|
|
(SELECT alg_ruimte_key FROM res_alg_ruimte)
|
|
AND a.ALG_RUIMTE_KEY = r.ALG_RUIMTE_KEY
|
|
AND p.ALG_RUIMTE_KEY(+) = r.ALG_RUIMTE_KEY
|
|
ORDER BY 3, 2) z) x;
|
|
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_RUIMTEDOORBELST
|
|
(
|
|
loctie_code,
|
|
gebouw_code,
|
|
verdieping_oms,
|
|
ruimtesrt_oms,
|
|
ruimte_nr,
|
|
ruimte_oms,
|
|
ruimte_opp,
|
|
ruimtesrt_prijs,
|
|
doorbelast_bedrag,
|
|
afdeling_oms,
|
|
afd_bezetting,
|
|
kpn_1,
|
|
Percentage_1,
|
|
bedrag_1,
|
|
bedrag_km_1,
|
|
kpn_2,
|
|
Percentage_2,
|
|
bedrag_2,
|
|
bedrag_km_2,
|
|
kpn_3,
|
|
Percentage_3,
|
|
bedrag_3,
|
|
bedrag_km_3,
|
|
kpn_4,
|
|
Percentage_4,
|
|
bedrag_4,
|
|
bedrag_km_4,
|
|
kpn_5,
|
|
Percentage_5,
|
|
bedrag_5,
|
|
bedrag_km_5,
|
|
tot_percentage
|
|
)
|
|
AS
|
|
SELECT locatie_code,
|
|
gebouw_code,
|
|
verdieping,
|
|
srt_ruimte,
|
|
ruimte_nr,
|
|
ruimte_oms,
|
|
opp,
|
|
prijs,
|
|
doorbelast_bedrag,
|
|
afdeling,
|
|
afd_bezetting,
|
|
kpn_1,
|
|
kpn_bezet_1,
|
|
ROUND(opp*prijs*(kpn_bezet_1/100),2) bedrag_1,
|
|
ROUND(doorbelast_bedrag*(afd_bezetting/100)*(kpn_bezet_1/100),2) bedrag_km_1,
|
|
kpn_2,
|
|
kpn_bezet_2,
|
|
ROUND(opp*prijs*(kpn_bezet_2/100),2) bedrag_2,
|
|
ROUND(doorbelast_bedrag*(afd_bezetting/100)*(kpn_bezet_2/100),2) bedrag_km_2,
|
|
kpn_3,
|
|
kpn_bezet_3,
|
|
ROUND(opp*prijs*(kpn_bezet_3/100),2) bedrag_3,
|
|
ROUND(doorbelast_bedrag*(afd_bezetting/100)*(kpn_bezet_3/100),2) bedrag_km_3,
|
|
kpn_4,
|
|
kpn_bezet_4,
|
|
ROUND(opp*prijs*(kpn_bezet_4/100),2) bedrag_4,
|
|
ROUND(doorbelast_bedrag*(afd_bezetting/100)*(kpn_bezet_4/100),2) bedrag_km_4,
|
|
kpn_5,
|
|
kpn_bezet_5,
|
|
ROUND(opp*prijs*(kpn_bezet_5/100),2) bedrag_5,
|
|
ROUND(doorbelast_bedrag*(afd_bezetting/100)*(kpn_bezet_5/100),2) bedrag_km_5,
|
|
(COALESCE(kpn_bezet_1,0)+COALESCE(kpn_bezet_2,0)+COALESCE(kpn_bezet_3,0)+COALESCE(kpn_bezet_4,0)+COALESCE(kpn_bezet_5,0)) tot_bezetting
|
|
FROM (
|
|
SELECT l.alg_locatie_code locatie_code,
|
|
g.alg_gebouw_code gebouw_code,
|
|
v.alg_verdieping_omschrijving verdieping,
|
|
sr.alg_srtruimte_omschrijving srt_ruimte,
|
|
r.alg_ruimte_nr ruimte_nr,
|
|
r.alg_ruimte_omschrijving ruimte_oms,
|
|
r.alg_ruimte_bruto_vloeropp opp,
|
|
sr.alg_srtruimte_prijs prijs,
|
|
a.prs_afdeling_omschrijving afdeling,
|
|
ra.prs_ruimteafdeling_bezetting afd_bezetting,
|
|
(SELECT fac.safe_to_number(ao.alg_onrgoedkenmerk_waarde)
|
|
FROM alg_onrgoedkenmerk ao, ALG_KENMERK ak
|
|
WHERE ak.alg_kenmerk_code='DOORBELAST'
|
|
AND ak.alg_kenmerk_verwijder IS NULL
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.ALG_KENMERK_KEY
|
|
AND ao.alg_onrgoedkenmerk_verwijder IS NULL) doorbelast_bedrag,
|
|
(SELECT k.prs_kostenplaats_nr
|
|
FROM alg_onrgoedkenmerk ao, alg_kenmerk ak, prs_kostenplaats k
|
|
WHERE ak.alg_kenmerk_code='1_KPN'
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND k.prs_kostenplaats_key = ao.alg_onrgoedkenmerk_waarde) KPN_1,
|
|
(SELECT fac.safe_to_number(ao.alg_onrgoedkenmerk_waarde)
|
|
FROM alg_onrgoedkenmerk ao, ALG_KENMERK ak
|
|
WHERE ak.alg_kenmerk_code='1_KPN_PERC'
|
|
AND ak.alg_kenmerk_verwijder IS NULL
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND ao.alg_onrgoedkenmerk_verwijder IS NULL) KPN_BEZET_1,
|
|
(SELECT k.prs_kostenplaats_nr
|
|
FROM alg_onrgoedkenmerk ao, alg_kenmerk ak, prs_kostenplaats k
|
|
WHERE ak.alg_kenmerk_code='2_KPN'
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND k.prs_kostenplaats_key = ao.alg_onrgoedkenmerk_waarde) KPN_2,
|
|
(SELECT fac.safe_to_number(ao.alg_onrgoedkenmerk_waarde)
|
|
FROM alg_onrgoedkenmerk ao, ALG_KENMERK ak
|
|
WHERE ak.alg_kenmerk_code='2_KPN_PERC'
|
|
AND ak.alg_kenmerk_verwijder IS NULL
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND ao.alg_onrgoedkenmerk_verwijder IS NULL) KPN_BEZET_2,
|
|
(SELECT k.prs_kostenplaats_nr
|
|
FROM alg_onrgoedkenmerk ao, alg_kenmerk ak, prs_kostenplaats k
|
|
WHERE ak.alg_kenmerk_code='3_KPN'
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND k.prs_kostenplaats_key = ao.alg_onrgoedkenmerk_waarde) KPN_3,
|
|
(SELECT fac.safe_to_number(ao.alg_onrgoedkenmerk_waarde)
|
|
FROM alg_onrgoedkenmerk ao, ALG_KENMERK ak
|
|
WHERE ak.alg_kenmerk_code='3_KPN_PERC'
|
|
AND ak.alg_kenmerk_verwijder IS NULL
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND ao.alg_onrgoedkenmerk_verwijder IS NULL) KPN_BEZET_3,
|
|
(SELECT k.prs_kostenplaats_nr
|
|
FROM alg_onrgoedkenmerk ao, alg_kenmerk ak, prs_kostenplaats k
|
|
WHERE ak.alg_kenmerk_code='4_KPN'
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND k.prs_kostenplaats_key = ao.alg_onrgoedkenmerk_waarde) KPN_4,
|
|
(SELECT fac.safe_to_number(ao.alg_onrgoedkenmerk_waarde)
|
|
FROM alg_onrgoedkenmerk ao, ALG_KENMERK ak
|
|
WHERE ak.alg_kenmerk_code='4_KPN_PERC'
|
|
AND ak.alg_kenmerk_verwijder IS NULL
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND ao.alg_onrgoedkenmerk_verwijder IS NULL) KPN_BEZET_4,
|
|
(SELECT k.prs_kostenplaats_nr
|
|
FROM alg_onrgoedkenmerk ao, alg_kenmerk ak, prs_kostenplaats k
|
|
WHERE ak.alg_kenmerk_code='5_KPN'
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND k.prs_kostenplaats_key = ao.alg_onrgoedkenmerk_waarde) KPN_5,
|
|
(SELECT fac.safe_to_number(ao.alg_onrgoedkenmerk_waarde)
|
|
FROM alg_onrgoedkenmerk ao, alg_kenmerk ak
|
|
WHERE ak.alg_kenmerk_code='5_KPN_PERC'
|
|
AND ak.alg_kenmerk_verwijder IS NULL
|
|
AND ao.alg_onrgoed_key = r.alg_ruimte_key
|
|
AND ao.alg_kenmerk_key = ak.alg_kenmerk_key
|
|
AND ao.alg_onrgoedkenmerk_verwijder IS NULL) KPN_BEZET_5
|
|
FROM alg_ruimte r,
|
|
prs_ruimteafdeling ra,
|
|
prs_afdeling a,
|
|
alg_v_allonroerendgoed av,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
alg_verdieping v,
|
|
ALG_SRTRUIMTE sr
|
|
WHERE r.alg_ruimte_key = ra.alg_ruimte_key(+)
|
|
AND r.alg_ruimte_verwijder IS NULL
|
|
AND a.prs_afdeling_key(+) = ra.prs_afdeling_key
|
|
AND av.alg_ruimte_key = r.alg_ruimte_key
|
|
AND l.alg_locatie_key = av.alg_locatie_key
|
|
AND g.alg_gebouw_key = av.alg_gebouw_key
|
|
AND g.alg_gebouw_verwijder IS NULL
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND sr.alg_srtruimte_key = r.alg_srtruimte_key
|
|
AND r.alg_ruimte_key NOT IN (SELECT rar.alg_ruimte_key
|
|
FROM res_ruimte rr, res_alg_ruimte rar
|
|
WHERE rr.res_ruimte_verwijder IS NULL
|
|
AND (rr.res_ruimte_vervaldatum IS NULL OR TRUNC(rr.res_ruimte_vervaldatum) > TRUNC(SYSDATE))
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key)
|
|
);
|
|
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_RES_OVEREENKOMST
|
|
AS
|
|
SELECT rrr.res_rsv_ruimte_key,
|
|
rrr.res_reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
TO_CHAR(rrr.res_rsv_ruimte_van,'DD-MM-YYYY') datum,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI') begintijd,
|
|
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') eindtijd,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI')
|
|
|| '-'
|
|
|| TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') van_tot,
|
|
(SELECT TO_CHAR(MIN(rrr2.res_rsv_ruimte_van),'DD-MM-YYYY') FROM res_rsv_ruimte rrr2 where rrr2.res_reservering_key=rrr.res_reservering_key GROUP BY rrr2.res_reservering_key) start_datum,
|
|
(SELECT TO_CHAR(MAX(rrr2.res_rsv_ruimte_van),'DD-MM-YYYY') FROM res_rsv_ruimte rrr2 where rrr2.res_reservering_key=rrr.res_reservering_key GROUP BY rrr2.res_reservering_key) eind_datum,
|
|
CASE WHEN struct.res_kenmerkreservering_waarde='1' THEN
|
|
fac.safe_to_number (cnt_prijs.res_kenmerkreservering_waarde)
|
|
WHEN incid.res_kenmerkreservering_waarde='1' THEN
|
|
fac.safe_to_number (comm_prijs.res_kenmerkreservering_waarde)
|
|
ELSE
|
|
res.getresruimteprijs (
|
|
rer.res_ruimte_key,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
COALESCE (incid.res_kenmerkreservering_waarde, '0'))
|
|
END as prijs_ruimte,
|
|
(SELECT SUM (COALESCE(rra.RES_RSV_ARTIKEL_PRIJS ,rra.res_rsv_artikel_aantal * ra.res_artikel_prijs))
|
|
FROM res_rsv_artikel rra, res_artikel ra
|
|
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rra.res_artikel_key = ra.res_artikel_key) prijs_cat,
|
|
(SELECT SUM (rrd.res_rsv_deel_aantal * rd.res_deel_prijs)
|
|
FROM res_rsv_deel rrd, res_deel rd
|
|
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrd.res_deel_key = rd.res_deel_key) prijs_deel,
|
|
(SELECT p.prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames p
|
|
WHERE g.prs_perslid_key_verantw = p.prs_perslid_key) gebouw_beheerder,
|
|
(SELECT COALESCE (p.prs_perslid_telefoonnr, p.prs_perslid_mobiel)
|
|
FROM prs_perslid p
|
|
WHERE g.prs_perslid_key_verantw = p.prs_perslid_key) gebouw_beheerder_telefoon,
|
|
(SELECT p.prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames p
|
|
WHERE g.prs_perslid_key_verantw2 = p.prs_perslid_key) gebouw_beheerder2,
|
|
(SELECT COALESCE (p.prs_perslid_telefoonnr, p.prs_perslid_mobiel)
|
|
FROM prs_perslid p
|
|
WHERE g.prs_perslid_key_verantw2 = p.prs_perslid_key) gebouw_beheerder2_telefoon,
|
|
(SELECT b.prs_bedrijf_naam
|
|
FROM prs_bedrijf b
|
|
WHERE b.prs_bedrijf_key =
|
|
fac.safe_to_number (huurder.res_kenmerkreservering_waarde)) huurder,
|
|
(SELECT b.prs_bedrijf_bezoek_adres
|
|
FROM prs_bedrijf b
|
|
WHERE b.prs_bedrijf_key =
|
|
fac.safe_to_number (huurder.res_kenmerkreservering_waarde)) huurder_adres,
|
|
(SELECT b.PRS_BEDRIJF_BEZOEK_postcode
|
|
FROM prs_bedrijf b
|
|
WHERE b.prs_bedrijf_key =
|
|
fac.safe_to_number (huurder.res_kenmerkreservering_waarde)) huurder_postcode,
|
|
(SELECT b.prs_bedrijf_bezoek_plaats
|
|
FROM prs_bedrijf b
|
|
WHERE b.prs_bedrijf_key =
|
|
fac.safe_to_number (huurder.res_kenmerkreservering_waarde)) huurder_plaats,
|
|
rer.res_ruimte_nr ruimte,
|
|
l.alg_locatie_adres adres,
|
|
l.alg_locatie_postcode postcode,
|
|
l.alg_locatie_plaats plaats
|
|
FROM res_rsv_ruimte rrr,
|
|
res_ruimte_opstelling rop,
|
|
res_ruimte rer,
|
|
-- res_alg_ruimte rar,
|
|
alg_v_onroerendgoed_gegevens alg,
|
|
alg_gebouw g,
|
|
alg_locatie l,
|
|
(SELECT rkw.*
|
|
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'HUURDERS'
|
|
AND rkw.res_kenmerk_key = rk.res_kenmerk_key) huurder,
|
|
(SELECT rkw.*
|
|
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'INCIDENTEEL'
|
|
AND rkw.res_kenmerk_key = rk.res_kenmerk_key) incid,
|
|
(SELECT rkw.*
|
|
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'STRUCT_CONTRACT'
|
|
AND rkw.res_kenmerk_key = rk.res_kenmerk_key) struct,
|
|
(SELECT rkw.*
|
|
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'COMM_BEDRAG'
|
|
AND rkw.res_kenmerk_key = rk.res_kenmerk_key) comm_prijs,
|
|
(SELECT rkw.*
|
|
FROM res_kenmerkwaarde rkw, res_kenmerk rk
|
|
WHERE rk.res_kenmerk_code = 'CNT_BEDRAG'
|
|
AND rkw.res_kenmerk_key = rk.res_kenmerk_key) cnt_prijs
|
|
WHERE rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
|
|
AND rer.res_ruimte_key = rop.res_ruimte_key
|
|
-- AND rar.RES_RUIMTE_KEY = rer.res_ruimte_key
|
|
AND alg.ALG_RUIMTE_KEY = (SELECT MAX(ra.alg_ruimte_key) -- WE WILLEN MAAR 1 ALG_RUIMTE BIJ EEN KOPPELZAAL
|
|
FROM res_alg_ruimte ra
|
|
WHERE ra.res_ruimte_key = rer.res_ruimte_key)
|
|
AND g.alg_gebouw_code = alg.alg_gebouw_code
|
|
AND l.alg_locatie_key = alg.alg_locatie_key
|
|
AND incid.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
|
AND comm_prijs.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
|
AND cnt_prijs.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
|
AND struct.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
|
AND huurder.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
|
ORDER BY rrr.res_rsv_ruimte_van,rer.res_ruimte_nr ASC;
|
|
|
|
|
|
CREATE OR REPLACE VIEW WZWK_V_HUURDERBEDRIJF
|
|
(
|
|
prs_bedrijf_key,
|
|
prs_bedrijf_naam
|
|
)
|
|
as
|
|
SELECT prs_bedrijf_key, prs_bedrijf_naam
|
|
FROM prs_bedrijf
|
|
WHERE prs_bedrijf.prs_bedrijf_verwijder IS NULL
|
|
AND prs_leverancier_nr IS NOT NULL
|
|
AND prs_bedrijf_huurder = 1;
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_KOSTENPLAATS
|
|
(
|
|
prs_kostenplaats_key,
|
|
prs_kostenplaats_omsch
|
|
)
|
|
AS
|
|
SELECT kpn.prs_kostenplaats_key,
|
|
kpn.prs_kostenplaats_nr||' - '||kpn.prs_kostenplaats_omschrijving
|
|
FROM prs_kostenplaats kpn
|
|
WHERE kpn.prs_kostenplaats_verwijder IS NULL;
|
|
|
|
|
|
-- Notificatie Views
|
|
|
|
CREATE OR REPLACE VIEW wzkw_v_noti_externeres
|
|
(
|
|
key,
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
xkey,
|
|
xsender,
|
|
xemail,
|
|
xmobile,
|
|
attachments,
|
|
prio
|
|
)
|
|
AS
|
|
SELECT DISTINCT rrr.res_reservering_key,
|
|
'CUST01',
|
|
NULL,
|
|
NULL,
|
|
'Uw reservering bij Welzijnskwartier',
|
|
NULL,
|
|
NULL,
|
|
(SELECT prs_bedrijf_email
|
|
FROM prs_bedrijf
|
|
WHERE prs_bedrijf_key = fac.safe_to_number(r.res_kenmerkreservering_waarde)) email,
|
|
NULL,
|
|
-- '/../../Branch20233/CUST/WZKW/bdradrfiles/TEST.pdf' attachment,
|
|
'/../../FPlace_a/CUST/WZKW/bdradrfiles/voorwaarden_2024.pdf' attachment,
|
|
NULL
|
|
FROM res_rsv_ruimte rrr,
|
|
res_kenmerkwaarde r,
|
|
res_kenmerk rk,
|
|
prs_bedrijf b,
|
|
fac_notificatie_job nj,
|
|
res_activiteit ra
|
|
WHERE rrr.res_rsv_ruimte_aanmaak BETWEEN nj.fac_notificatie_job_lastrun AND nj.fac_notificatie_job_nextrun
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND nj.fac_notificatie_job_view = 'WZKW_V_NOTI_EXTERNERES'
|
|
AND r.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rk.res_kenmerk_key = r.res_kenmerk_key
|
|
AND rk.res_kenmerk_code = 'HUURDERS'
|
|
AND ra.res_activiteit_omschrijving = 'Externe reservering'
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW WZKW_V_NOTI_CNTACTIEF
|
|
(
|
|
key,
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
xkey,
|
|
xsender,
|
|
xemail,
|
|
xmobile,
|
|
attachments,
|
|
prio
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
cnt.CNT_CONTRACT_KEY,
|
|
'CUST02',
|
|
NULL,
|
|
NULL,
|
|
'Uw contract met Stichting Welzijnskwartier is geregistreerd.',
|
|
NULL,
|
|
NULL,
|
|
(SELECT prs_bedrijf_email
|
|
FROM prs_bedrijf prs
|
|
WHERE prs.prs_bedrijf_key = cnt.cnt_prs_bedrijf_key)
|
|
email,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM cnt_contract cnt,
|
|
cnt_kenmerkcontract kmc,
|
|
cnt_kenmerk km,
|
|
fac_notificatie_job nj
|
|
WHERE kmc.cnt_kenmerkcontract_aanmaak BETWEEN nj.fac_notificatie_job_lastrun
|
|
AND nj.fac_notificatie_job_nextrun
|
|
AND nj.fac_notificatie_job_view = 'WZKW_V_NOTI_CNTACTIEF'
|
|
AND cnt.cnt_contract_key = kmc.cnt_contract_key
|
|
AND kmc.cnt_kenmerk_key = km.cnt_kenmerk_key
|
|
AND km.cnt_kenmerk_code = 'ACTIEF'
|
|
AND cnt.cnt_contract_status=0;
|
|
|
|
-- Rapportage Views
|
|
|
|
|
|
------ 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
|