ZGTW#89613 Implementatie ZGT
Facturatierapport svn path=/Customer/trunk/; revision=70353
This commit is contained in:
248
ZGTW/ZGTW.sql
248
ZGTW/ZGTW.sql
@@ -939,6 +939,254 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW ZGTW_V_FACTURATIERAPPORT
|
||||
(
|
||||
NUMMER,
|
||||
DATUM,
|
||||
LOCATIE_OMSCHRIJVING,
|
||||
VAN,
|
||||
TOT,
|
||||
ACTIVITEIT,
|
||||
VOORZIENING_TYPE,
|
||||
VOORZIENING_CATALOGUS,
|
||||
VOORZIENING_PRODUCT,
|
||||
VOORZIENING_VAN,
|
||||
VOORZIENING_TOT,
|
||||
VOORZIENING_AANTAL,
|
||||
VOORZIENING_PRIJS,
|
||||
VOORZIENING_PRIJS_EXTERN,
|
||||
VOORZIENING_TOTAALPRIJS,
|
||||
VOORZIENING_TOTAALPRIJSEXTERN,
|
||||
RUIMTE_UURPRIJS,
|
||||
RUIMTE_DUUR,
|
||||
ZAALHUUR,
|
||||
DEBITEURNR,
|
||||
RELATIETYPE_OMSCHRIJVING,
|
||||
PRIJS_DOORBELASTING
|
||||
)
|
||||
AS
|
||||
WITH
|
||||
r2a
|
||||
AS
|
||||
( SELECT r.res_rsv_ruimte_key,
|
||||
MAX (o.res_opstelling_omschrijving) AS opstelling,
|
||||
MAX (ro.res_ruimte_opstel_bezoekers) AS capaciteit,
|
||||
MAX (ra.alg_ruimte_key) AS alg_ruimte_key
|
||||
FROM res_rsv_ruimte r
|
||||
JOIN res_ruimte_opstelling ro
|
||||
ON r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||||
JOIN res_opstelling o
|
||||
ON ro.res_opstelling_key = o.res_opstelling_key
|
||||
JOIN res_ruimte rr
|
||||
ON ro.res_ruimte_key = rr.res_ruimte_key
|
||||
JOIN res_alg_ruimte ra
|
||||
ON rr.res_ruimte_key = ra.res_ruimte_key
|
||||
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
||||
GROUP BY r.res_rsv_ruimte_key
|
||||
UNION ALL
|
||||
SELECT rrr.res_rsv_ruimte_key,
|
||||
'' AS opstelling,
|
||||
NULL AS capaciteit,
|
||||
r.alg_ruimte_key
|
||||
FROM res_rsv_ruimte rrr
|
||||
JOIN alg_ruimte r
|
||||
ON r.alg_ruimte_key = rrr.alg_ruimte_key
|
||||
WHERE rrr.alg_ruimte_key IS NOT NULL),
|
||||
-- 2) Voorzieningen (objecten & consumables)
|
||||
voorz
|
||||
AS
|
||||
(SELECT rrd.res_rsv_ruimte_key
|
||||
AS res_rsv_ruimte_key,
|
||||
-rd.res_deel_key
|
||||
AS product_key,
|
||||
rd.res_deel_omschrijving
|
||||
AS product,
|
||||
CASE
|
||||
WHEN rd.res_deel_prijs_vast = 1
|
||||
THEN
|
||||
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
||||
ELSE
|
||||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
||||
* 24
|
||||
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
||||
END
|
||||
AS totaalprijs,
|
||||
CASE
|
||||
WHEN rd.res_deel_prijs_vast = 1
|
||||
THEN
|
||||
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
||||
ELSE
|
||||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
||||
* 24
|
||||
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
||||
END
|
||||
AS totaalprijs_extern,
|
||||
rrd.res_rsv_deel_van
|
||||
AS van,
|
||||
rrd.res_rsv_deel_tot
|
||||
AS tot,
|
||||
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
|
||||
AS aantal,
|
||||
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
||||
AS prijs,
|
||||
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
|
||||
AS prijs_extern,
|
||||
c.ins_discipline_key
|
||||
AS ins_discipline_key,
|
||||
c.ins_discipline_omschrijving
|
||||
AS catalogus,
|
||||
'object'
|
||||
AS vtype
|
||||
FROM res_v_aanwezigrsv_deel rrd
|
||||
JOIN res_deel rd ON rrd.res_deel_key = rd.res_deel_key
|
||||
JOIN ins_deel d ON d.ins_deel_key = rd.res_ins_deel_key
|
||||
JOIN ins_tab_discipline c
|
||||
ON c.ins_discipline_key = rd.res_discipline_key
|
||||
WHERE rrd.res_rsv_ruimte_key IS NOT NULL
|
||||
UNION ALL
|
||||
SELECT rra.res_rsv_ruimte_key,
|
||||
ra.res_artikel_key,
|
||||
ra.res_artikel_omschrijving,
|
||||
NVL (rra.res_rsv_artikel_prijs,
|
||||
rra.res_rsv_artikel_aantal * res_artikel_prijs),
|
||||
NVL (
|
||||
rra.res_rsv_artikel_prijs,
|
||||
rra.res_rsv_artikel_aantal * res_artikel_inkoopprijs),
|
||||
rra.res_rsv_artikel_levering,
|
||||
NULL,
|
||||
rra.res_rsv_artikel_aantal,
|
||||
NVL (
|
||||
rra.res_rsv_artikel_prijs
|
||||
/ rra.res_rsv_artikel_aantal,
|
||||
res_artikel_prijs),
|
||||
NVL (
|
||||
rra.res_rsv_artikel_prijs
|
||||
/ rra.res_rsv_artikel_aantal,
|
||||
res_artikel_inkoopprijs),
|
||||
c.ins_discipline_key,
|
||||
c.ins_discipline_omschrijving,
|
||||
'consumable'
|
||||
FROM res_v_aanwezigrsv_artikel rra
|
||||
JOIN res_artikel ra
|
||||
ON rra.res_artikel_key = ra.res_artikel_key
|
||||
JOIN ins_tab_discipline c
|
||||
ON ra.res_discipline_key = c.ins_discipline_key),
|
||||
kc
|
||||
AS
|
||||
(SELECT *
|
||||
FROM (SELECT kc.res_rsv_ruimte_key,
|
||||
kc.res_kenmerk_key,
|
||||
kc.res_kenmerkreservering_waarde,
|
||||
ROW_NUMBER ()
|
||||
OVER (PARTITION BY kc.res_rsv_ruimte_key
|
||||
ORDER BY kc.res_kenmerkwaarde_key) AS rn
|
||||
FROM res_kenmerkwaarde kc
|
||||
JOIN res_kenmerk r
|
||||
ON kc.res_kenmerk_key = r.res_kenmerk_key
|
||||
WHERE kc.res_kenmerkwaarde_verwijder IS NULL
|
||||
AND r.res_srtkenmerk_key = 42)
|
||||
WHERE rn = 1)
|
||||
SELECT res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||||
AS nummer,
|
||||
rrr.res_rsv_ruimte_van
|
||||
AS datum,
|
||||
l.alg_locatie_omschrijving
|
||||
AS locatie_omschrijving,
|
||||
rrr.res_rsv_ruimte_van
|
||||
AS van,
|
||||
rrr.res_rsv_ruimte_tot
|
||||
AS tot,
|
||||
ra.res_activiteit_omschrijving
|
||||
AS activiteit,
|
||||
voorz.vtype
|
||||
AS voorziening_type,
|
||||
voorz.catalogus
|
||||
AS voorziening_catalogus,
|
||||
voorz.product
|
||||
AS voorziening_product,
|
||||
TO_CHAR (voorz.van, 'hh24:mi')
|
||||
AS voorziening_van,
|
||||
TO_CHAR (voorz.tot, 'hh24:mi')
|
||||
AS voorziening_tot,
|
||||
voorz.aantal
|
||||
AS voorziening_aantal,
|
||||
voorz.prijs
|
||||
AS voorziening_prijs,
|
||||
voorz.prijs_extern
|
||||
AS voorziening_prijs_extern,
|
||||
voorz.totaalprijs
|
||||
AS voorziening_totaalprijs,
|
||||
voorz.totaalprijs_extern
|
||||
AS voorziening_totaalprijsextern,
|
||||
rr.res_ruimte_prijs
|
||||
AS ruimte_uurprijs,
|
||||
ROUND ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 2)
|
||||
AS ruimte_duur,
|
||||
CASE
|
||||
WHEN b.prs_leverancier_nr IS NULL
|
||||
THEN
|
||||
NULL
|
||||
WHEN rt.prs_relatietype_key = 30
|
||||
THEN
|
||||
NULL
|
||||
ELSE
|
||||
rr.res_ruimte_prijs
|
||||
* (ROUND (
|
||||
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
|
||||
* 24,
|
||||
2))
|
||||
/ COUNT (*) OVER (PARTITION BY rrr.res_rsv_ruimte_key)
|
||||
END
|
||||
AS zaalhuur,
|
||||
b.prs_leverancier_nr
|
||||
AS debiteurnr,
|
||||
rt.prs_relatietype_omschrijving
|
||||
AS relatietype_omschrijving,
|
||||
CASE
|
||||
WHEN b.prs_leverancier_nr IS NULL
|
||||
THEN
|
||||
voorz.totaalprijs
|
||||
WHEN rt.prs_relatietype_key = 30
|
||||
THEN
|
||||
voorz.totaalprijs
|
||||
ELSE
|
||||
voorz.totaalprijs_extern
|
||||
+ rr.res_ruimte_prijs
|
||||
* (ROUND (
|
||||
( rrr.res_rsv_ruimte_tot
|
||||
- rrr.res_rsv_ruimte_van)
|
||||
* 24,
|
||||
2))
|
||||
/ COUNT (*) OVER (PARTITION BY rrr.res_rsv_ruimte_key)
|
||||
END
|
||||
AS prijs_doorbelasting
|
||||
FROM res_v_aanwezigrsv_ruimte rrr
|
||||
JOIN res_reservering res
|
||||
ON rrr.res_reservering_key = res.res_reservering_key
|
||||
JOIN res_activiteit ra
|
||||
ON rrr.res_activiteit_key = ra.res_activiteit_key
|
||||
LEFT JOIN res_ruimte_opstelling ro
|
||||
ON rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||||
LEFT JOIN res_ruimte rr ON ro.res_ruimte_key = rr.res_ruimte_key
|
||||
LEFT JOIN r2a ON r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
LEFT JOIN alg_ruimte r ON r2a.alg_ruimte_key = r.alg_ruimte_key
|
||||
LEFT JOIN alg_verdieping v
|
||||
ON r.alg_verdieping_key = v.alg_verdieping_key
|
||||
LEFT JOIN alg_gebouw g ON v.alg_gebouw_key = g.alg_gebouw_key
|
||||
LEFT JOIN alg_locatie l ON g.alg_locatie_key = l.alg_locatie_key
|
||||
LEFT JOIN voorz
|
||||
ON rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key
|
||||
LEFT JOIN kc ON kc.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
LEFT JOIN prs_bedrijf b
|
||||
ON fac.safe_to_number (kc.res_kenmerkreservering_waarde) =
|
||||
b.prs_bedrijf_key
|
||||
LEFT JOIN prs_relatietype rt
|
||||
ON fac.safe_to_number (b.prs_relatietype_key) =
|
||||
rt.prs_relatietype_key
|
||||
WHERE rrr.res_rsv_ruimte_van >= DATE '2017-01-01'
|
||||
AND ( rrr.res_ruimte_opstel_key IS NOT NULL
|
||||
OR voorz.res_rsv_ruimte_key IS NOT NULL);
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user