WZUV#41244 Facturatie reserveringen

svn path=/Customer/trunk/; revision=35787
This commit is contained in:
Suzan Wiegerinck
2017-10-23 14:22:08 +00:00
parent e523f05b4b
commit 8aa3edf6c4

View File

@@ -1,5 +1,3 @@
/* Formatted on 7-6-2017 22:13:49 (QP5 v5.136.908.31019) */
--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
@@ -294,6 +292,7 @@ AS
--1842 Huismeester/Technische dienst
--1786 Medewerker Facilitaire dienst
--1845 Assistent Technische dienst
CREATE OR REPLACE VIEW WZUV_V_HUISMEESTERS
(
prs_perslid_key,
@@ -325,6 +324,8 @@ AS
COMMIT;
-- alle ruimtereserveringen en catering met status 5 kan gefactureerd worden
-- en cateraar heeft aangegeven dat het geleverd is
CREATE OR REPLACE VIEW WZUV_V_RAP_RES
(
PERSNR,
@@ -337,11 +338,11 @@ CREATE OR REPLACE VIEW WZUV_V_RAP_RES
OMSCHRIJVING,
INT_EXT,
KOSTENPLAATS,
RES_RSV_RUIMTE_KEY
RES_RSV_RUIMTE_KEY,
MAAND
)
AS
SELECT
CASE
SELECT CASE
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
THEN
SUBSTR (p.prs_perslid_nr, 7)
@@ -367,7 +368,8 @@ AS
aanduiding,
DECODE (prs_afdeling_key, 422, 'Cli<6C>nt', 'Intern') soort,
kpl_ruimte.prs_kostenplaats_nr,
rrr.res_rsv_ruimte_key
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
FROM res_rsv_ruimte rrr,
prs_perslid p,
prs_kostenplaats kp,
@@ -389,8 +391,7 @@ AS
AND ar.alg_ruimte_key = aog.alg_ruimte_key
AND kpl_ruimte.alg_onrgoed_key(+) = aog.alg_gebouw_key
UNION ALL
SELECT
CASE
SELECT CASE
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
THEN
SUBSTR (p.prs_perslid_nr, 7)
@@ -414,7 +415,8 @@ AS
aanduiding,
DECODE (p.prs_afdeling_key, 422, 'Cli<6C>nt', 'Intern') soort,
kpl_cat.prs_kostenplaats_nr,
rrr.res_rsv_ruimte_key
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
FROM res_rsv_artikel ra,
res_rsv_ruimte rrr,
res_artikel a,
@@ -428,6 +430,7 @@ AS
AND kpr.alg_onrgoedkenmerk_waarde =
kpl.prs_kostenplaats_key) kpl_cat
WHERE ra.res_status_bo_key = 5
AND rrr.res_rsv_ruimte_flag = 2
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_dirtlevel = 0
@@ -448,7 +451,8 @@ AS
|| ' - '
|| alg_ruimte_nr
|| ' - '
|| alg_ruimte_omschrijving as RUIMTE
|| alg_ruimte_omschrijving
AS RUIMTE
FROM alg_v_allonrgoed_gegevens
WHERE alg_ruimte_key IS NOT NULL;
@@ -466,75 +470,10 @@ AS
AND r.alg_ruimte_key = og.alg_ruimte_key
AND r.alg_srtruimte_key = 17;
CREATE OR REPLACE PROCEDURE WZUV_select_res (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
CURSOR c
IS
SELECT * FROM WZUV_V_RAP_RES
order by res_rsv_ruimte_key;
v_ruimte_key_prev NUMBER;
v_verkoopfactuurkop_key NUMBER;
BEGIN
v_ruimte_key_prev := 1;
FOR rec IN c
LOOP
IF rec.res_rsv_ruimte_key <> v_ruimte_key_prev
THEN
v_ruimte_key_prev := rec.res_rsv_ruimte_key;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (rec.reservering)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
END IF;
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_nr,
prs_debiteur_naam,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_c1)
VALUES (v_verkoopfactuurkop_key, --key
TO_CHAR (rec.factuurperiode), ---id
sysdate, -- datum
rec.omschrijving, --omsch
'reservering', ---xml
rec.res_rsv_ruimte_key, --refkey
rec.kostenplaats, ---kostenplnr
rec.persnr, -- debnaam
rec.bedrag, --- bedrag
rec.maand, ---- maand
rec.soort --- c1
);
END LOOP;
COMMIT;
END WZUV_select_res;
/
CREATE OR REPLACE PROCEDURE wzuv_prijsbepaling_reservering (
CREATE OR REPLACE PROCEDURE wzuv_select_reservering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
p_applrun IN VARCHAR2)
AS
-- status is geregistreerd (2)
-- de reservering ligt in het verleden
@@ -554,7 +493,7 @@ AS
-- voor de zekerheid controleren we ook of de reservering in het verleden ligt
CURSOR cart
IS
SELECT TO_CHAR (rrr.res_reservering_key)
SELECT TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|| ' - '
@@ -570,14 +509,14 @@ AS
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_dirtlevel = 0
AND ra.res_rsv_artikel_verwijder IS NULL
AND fac.count_work_days (res_rsv_artikel_levering, SYSDATE) > 0
AND fac.count_work_days (res_rsv_artikel_levering, SYSDATE) > 0
AND rrr.res_rsv_ruimte_flag = 2;
v_prijs NUMBER (9, 2);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_prijs NUMBER (9, 2);
BEGIN
FOR rc IN cres
LOOP
@@ -671,7 +610,308 @@ BEGIN
END;
/
COMMIT;
CREATE OR REPLACE PROCEDURE wzuv_export_reservering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- status is afgemeld
-- de reservering ligt in het verleden
-- dan kan de ruimte prijs berekend worden
CURSOR cres
IS
SELECT res_rsv_ruimte_key,
res_reservering_key || '/' || res_rsv_ruimte_volgnr aanduiding
FROM res_rsv_ruimte rrr
WHERE rrr.res_status_bo_key = 5
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND fac.count_work_days (res_rsv_ruimte_tot, SYSDATE) > 0;
-- catering is geleverd (flag = 2)
-- dan mag de catering berekend worden
-- voor de zekerheid controleren we ook of de reservering in het verleden ligt
-- status is afgemeld
CURSOR cart
IS
SELECT TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|| ' - '
|| TO_CHAR (a.res_artikel_omschrijving)
aanduiding,
ra.res_rsv_ruimte_key,
ra.res_rsv_artikel_key,
ra.res_artikel_key,
a.res_artikel_omschrijving
FROM res_rsv_artikel ra, res_rsv_ruimte rrr, res_artikel a
WHERE ra.res_status_bo_key = 5
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_dirtlevel = 0
AND ra.res_rsv_artikel_verwijder IS NULL
AND fac.count_work_days (res_rsv_artikel_levering, SYSDATE) > 0
AND rrr.res_rsv_ruimte_flag = 2;
--- wzuv_rap_res bevat alle reserveringen met status 5 - afgemeld
--- al deze regels moeten uiteindelijk ook bij de reservering zichtbaar zijn vanuit de verkoopfactuurtabellen en krijgen dan status 6 - verwerkt
--- tbv van de export worden deze ook in de fac_rapport tabel gezet
CURSOR c
IS
SELECT *
FROM WZUV_V_RAP_RES
ORDER BY res_rsv_ruimte_key;
v_ruimte_key_prev NUMBER;
v_verkoopfactuurkop_key NUMBER;
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_ruimte_key_prev := 1;
FOR rec IN c
LOOP
IF rec.res_rsv_ruimte_key <> v_ruimte_key_prev
THEN
v_ruimte_key_prev := rec.res_rsv_ruimte_key;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (rec.reservering)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
END IF;
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_nr,
prs_debiteur_naam,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_c1)
VALUES (v_verkoopfactuurkop_key, --key
TO_CHAR (rec.factuurperiode), ---id
SYSDATE, -- datum
rec.omschrijving, --omsch
'reservering', ---xml
rec.res_rsv_ruimte_key, --refkey
rec.kostenplaats, ---kostenplnr
rec.persnr, -- debnaam
rec.bedrag, --- bedrag
rec.maand, ---- maand
rec.soort --- c1
);
COMMIT;
END LOOP;
FOR rc IN cres
LOOP
BEGIN
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6
WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key;
fac.trackaction ('RESVER',
rc.res_rsv_ruimte_key,
NULL,
NULL,
NULL);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'W',
rc.aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
FOR rc IN cart
LOOP
BEGIN
UPDATE res_rsv_artikel
SET res_status_bo_key = 6
WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key;
fac.trackaction (
'RESVER',
rc.res_rsv_ruimte_key,
NULL,
NULL,
'Catering ' || rc.res_artikel_omschrijving || ' verwerkt');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'W',
rc.aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
END;
/
CREATE OR REPLACE VIEW WZUV_V_EXPORT_RESERVERING
(
RESULT,
RESULT_ORDER
)
AS
SELECT persnr
|| ';'
|| artikelcode
|| ';'
|| aantal
|| ';'
|| bedrag
|| ';'
|| omschrijving
|| ';'
|| kostenplaats,
reservering
FROM WZUV_V_RAP_RES r;
CREATE OR REPLACE VIEW WZUV_V_RAP_RES_DEF
(
PERSNR,
RESERVERING,
ARTIKELCODE,
AANTAL,
BEDRAG,
FACTUURPERIODE,
SOORT,
OMSCHRIJVING,
INT_EXT,
KOSTENPLAATS,
RES_RSV_RUIMTE_KEY,
MAAND
)
AS
SELECT CASE
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
THEN
SUBSTR (p.prs_perslid_nr, 7)
ELSE
p.prs_perslid_nr
END
AS persnr,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
TO_CHAR (ar.alg_ruimte_key),
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0)
duur_ruimte,
rrr.res_rsv_ruimte_prijs,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
'Ruimte',
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|| ' - Reserveringsnummer: '
|| rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
|| ' - '
|| rr.res_ruimte_nr
aanduiding,
DECODE (prs_afdeling_key, 422, 'Cli<6C>nt', 'Intern') soort,
kpl_ruimte.prs_kostenplaats_nr,
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
FROM res_rsv_ruimte rrr,
prs_perslid p,
prs_kostenplaats kp,
res_v_rsv_ruimte_2_alg_ruimte ar,
alg_v_allonroerendgoed aog,
res_ruimte rr,
(SELECT kpr.*, kpl.prs_kostenplaats_nr
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
WHERE kpr.alg_kenmerk_key = 1061
AND kpr.alg_onrgoedkenmerk_waarde =
kpl.prs_kostenplaats_key) kpl_ruimte
WHERE rrr.res_status_bo_key = 6
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND res_rsv_ruimte_host_key = p.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND ar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ar.res_ruimte_key = rr.res_ruimte_key
AND ar.alg_ruimte_key = aog.alg_ruimte_key
AND kpl_ruimte.alg_onrgoed_key(+) = aog.alg_gebouw_key
UNION ALL
SELECT CASE
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
THEN
SUBSTR (p.prs_perslid_nr, 7)
ELSE
p.prs_perslid_nr
END
AS persnr,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
a.res_artikel_nr,
ra.res_rsv_artikel_aantal,
ra.res_rsv_artikel_prijs,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
'Catering',
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|| ' - '
|| TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|| ' - '
|| TO_CHAR (a.res_artikel_omschrijving)
aanduiding,
DECODE (p.prs_afdeling_key, 422, 'Cli<6C>nt', 'Intern') soort,
kpl_cat.prs_kostenplaats_nr,
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
FROM res_rsv_artikel ra,
res_rsv_ruimte rrr,
res_artikel a,
prs_perslid p,
prs_kostenplaats kp,
res_v_rsv_ruimte_2_alg_ruimte ar,
alg_v_allonroerendgoed aog,
(SELECT kpr.*, kpl.prs_kostenplaats_nr
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
WHERE kpr.alg_kenmerk_key = 1060
AND kpr.alg_onrgoedkenmerk_waarde =
kpl.prs_kostenplaats_key) kpl_cat
WHERE ra.res_status_bo_key = 6
AND rrr.res_rsv_ruimte_flag = 2
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_dirtlevel = 0
AND ra.res_rsv_artikel_verwijder IS NULL
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND ar.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND (aog.alg_ruimte_key = rrr.alg_ruimte_key
OR aog.alg_ruimte_key = ar.alg_ruimte_key)
AND kpl_cat.alg_onrgoed_key(+) = aog.alg_gebouw_key;
BEGIN
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
@@ -684,7 +924,8 @@ END;
SET DEFINE OFF
BEGIN
adm.systrackscriptId ('$Id$', 0);
adm.systrackscriptId ('$Id$',
0);
END;
/