NYBU#33916 -- Goedkeuring Catering

svn path=/Customer/trunk/; revision=27100
This commit is contained in:
Arthur Egberink
2015-11-25 11:15:23 +00:00
parent cf28908514
commit 430723853b

View File

@@ -1358,6 +1358,64 @@ EXCEPTION
END nybu_export_res_statusupd;
/
-- Export om notificatie naar contactpersonen van een reservering
-- te sturen op het moment dat de reservering totaal afgemeld is
-- en de contactpersoon de resevering moet goedkeuren.
CREATE OR REPLACE PROCEDURE nybu_export_res_noti_goedk (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR c
IS
SELECT rrr.res_rsv_ruimte_key,
'Goedkeuring voor reservering ' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr || ' (' || rrr.res_rsv_ruimte_omschrijving ||') is vereist' omschrijving
FROM res_rsv_ruimte rrr,
( SELECT MIN (res_status_bo_key) res_status_bo_key,
res_rsv_ruimte_key
FROM (SELECT res_status_bo_key, rr1.res_rsv_ruimte_key
FROM res_rsv_ruimte rr1
WHERE rr1.res_rsv_ruimte_verwijder IS NULL
UNION ALL
SELECT res_status_bo_key, rd1.res_rsv_ruimte_key
FROM res_rsv_deel rd1
WHERE rd1.res_rsv_deel_verwijder IS NULL
UNION ALL
SELECT res_status_bo_key, ra1.res_rsv_ruimte_key
FROM res_rsv_artikel ra1
WHERE ra1.res_rsv_artikel_verwijder IS NULL)
GROUP BY res_rsv_ruimte_key) bo_stat
WHERE NOT EXISTS
-- die nog niet genotificeerd zijn
(SELECT fac_tracking_refkey
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'CUST01'
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key)
-- met cateringkosten
AND (SELECT SUM (res.getartikelprijs (res_rsv_artikel_key))
FROM res_rsv_artikel rra, res_artikel ra
WHERE res_rsv_artikel_verwijder IS NULL
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (462, 581, 741) -- hotelkamers, inhuur voorzieningen, linnen
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key) <> 0
AND rrr.res_rsv_ruimte_key = bo_stat.res_rsv_ruimte_key
AND bo_stat.res_status_bo_key = 5
AND rrr.res_rsv_ruimte_van > TO_DATE('20151130', 'yyyymmdd');
BEGIN
FOR rec IN c
LOOP
fac.trackaction ('CUST01',
rec.res_rsv_ruimte_key,
NULL,
NULL,
rec.omschrijving);
END LOOP;
END nybu_export_res_noti_goedk;
/
-- Verschilrapportage werkplek FACILITOR vs AD
CREATE OR REPLACE VIEW nybu_v_rap_wp_verschil
AS
@@ -6739,6 +6797,7 @@ AS
-- fin_verkoopfactuur_c1 = reserveringnummer
-- fin_verkoopfactuur_c2 = klantnaam
-- fin_verkoopfactuur_c3 = klantreferentie
-- fin_verkoopfactuur_c4 = type verkoopfactuur {'catering', 'ruimte/voorz'}
-- fin_verkoopfactuur_d1 = rsv_ruimte_datum_van
CREATE OR REPLACE PROCEDURE nybu_res_verkoopfacturen (
p_applname IN VARCHAR2,
@@ -6781,6 +6840,7 @@ AS
AND kw.res_kenmerkreservering_waarde = '1'
AND vf.fin_verkoopfactuur_refkey = kw.res_rsv_ruimte_key
AND vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND vf.fin_verkoopfactuur_c4 = 'ruimte/voorz'
AND vf.fin_verkoopfactuur_datum IS NOT NULL
AND vf.fin_verkoopfactuur_datum = (SELECT MAX(fin_verkoopfactuur_datum)
FROM fin_verkoopfactuur
@@ -6803,8 +6863,9 @@ BEGIN
DELETE imp_log
WHERE imp_log_applicatie = p_applname;
DELETE fin_verkoopfactuur
WHERE fin_verkoopfactuur_datum IS NULL;
DELETE fin_verkoopfactuur vf
WHERE vf.fin_verkoopfactuur_datum IS NULL
AND vf.fin_verkoopfactuur_c4 = 'ruimte/voorz';
-- Genereer verkoopfactuurregels voor externe reserveringen
FOR rec IN c_regels
@@ -6841,6 +6902,7 @@ BEGIN
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_d1
)
VALUES
@@ -6867,6 +6929,7 @@ BEGIN
rec.reservering,
rec.klant,
rec.referentie,
'ruimte/voorz',
rec.res_rsv_ruimte_van
);
@@ -6908,6 +6971,7 @@ BEGIN
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_d1
)
VALUES
@@ -6932,6 +6996,7 @@ BEGIN
rec.fin_verkoopfactuur_c1,
rec.fin_verkoopfactuur_c2,
rec.fin_verkoopfactuur_c3,
'ruimte/voorz',
rec.fin_verkoopfactuur_d1
);
@@ -7483,6 +7548,7 @@ AS
ROUND( SUM(fin_verkoopfactuur_bedrag+fin_verkoopfactuur_btw), 2) prijs
FROM fin_verkoopfactuur vf
WHERE vf.fin_verkoopfactuur_datum IS NULL
AND vf.fin_verkoopfactuur_c4 = 'ruimte/voorz'
AND vf.fin_verkoopfactuur_n2 = 0 -- geen creditering
GROUP BY fin_verkoopfactuur_refkey ) vf
ON vf.res_rsv_ruimte_key = ei.res_rsv_ruimte_key;
@@ -7685,6 +7751,356 @@ END nybu_export_res_verwerk;
/
-- Genereert exportbestand voor doorbelasting catering over interne reserveringen
-- fin_verkoopfactuur_n1 = intern/extern (0 = intern)
-- fin_verkoopfactuur_n2 = credit nee/ja (0 = nee)
-- fin_verkoopfactuur_c1 = reserveringnummer
-- fin_verkoopfactuur_c2 = klantnaam
-- fin_verkoopfactuur_c3 = klantreferentie
-- fin_verkoopfactuur_c4 = catering
-- fin_verkoopfactuur_d1 = res_rsv_ruimte_van
CREATE OR REPLACE PROCEDURE nybu_select_res_cat (
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 klant,
res_rsv_ruimte_van,
periode,
grootboek,
kostenplaats_key,
kostenplaats,
deb_nr,
proj_key,
proj,
btw,
prs_kostensoort_btw,
res_key,
res_volgnr,
referentie,
res_rsv_ruimte_key,
descr,
aantal,
omschrijving,
soort,
btw_code,
SUM (prijs_ex) prijs_ex,
SUM (prijs_inc) prijs_inc,
SUM (btw_laag) btw_laag,
SUM (btw_hoog) btw_hoog,
SUM (korting) korting,
SUM (inex) inex
FROM (SELECT k.prs_kostenplaats_omschrijving klant,
rr.res_rsv_ruimte_van,
TO_CHAR (rr.res_rsv_ruimte_van, 'YYYYMM') periode,
ks.prs_kostensoort_oms grootboek,
kg.prs_kostenplaatsgrp_key kostenplaats_key,
TRIM (SUBSTR (kg.prs_kostenplaatsgrp_oms, 1, 7)) kostenplaats,
k.prs_kostenplaats_nr deb_nr,
k.prs_kostenplaats_key proj_key,
k.prs_kostenplaats_nr proj,
btw.perc btw,
ks.prs_kostensoort_btw,
btw.btw_code,
rr.res_reservering_key res_key,
rr.res_rsv_ruimte_volgnr res_volgnr,
NULL referentie,
rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr
reservering,
rr.res_rsv_ruimte_key,
rr.res_rsv_ruimte_omschrijving descr,
1 aantal,
r.res_ruimte_nr omschrijving,
'catering' soort,
rra.res_rsv_artikel_prijs prijs_ex,
rra.res_rsv_artikel_prijs prijs_inc,
DECODE (btw.perc,
6, rra.res_rsv_artikel_prijs * btw.perc / 100,
0)
btw_laag,
DECODE (btw.perc,
21, rra.res_rsv_artikel_prijs * btw.perc / 100,
0)
btw_hoog,
0 korting,
0 inex
FROM res_rsv_ruimte rr,
prs_kostenplaats k,
prs_kostenplaatsgrp kg,
res_ruimte_opstelling ro,
res_ruimte r,
res_rsv_artikel rra,
res_artikel ra,
res_discipline di,
prs_kostensoort ks,
(SELECT fac.safe_to_number (fac_usrdata_upper) perc,
fac_usrdata_omschr btw_code
FROM fac_usrdata
WHERE fac_usrtab_key = 42 AND fac_usrdata_verwijder IS NULL)
btw
WHERE COALESCE (k.prs_kostenplaats_extern, 0) = 0
AND kg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key
AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key
AND rr.res_rsv_ruimte_dirtlevel = 0
AND rr.res_rsv_ruimte_afgerond = 1
AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
AND r.res_ruimte_key = ro.res_ruimte_key
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = di.ins_discipline_key
AND ks.prs_kostensoort_key = di.prs_kostensoort_key
AND ra.res_artikel_btw = btw.perc
AND rra.res_rsv_artikel_prijs <> 0
AND NOT EXISTS
(SELECT fin_verkoopfactuur_key
FROM fin_verkoopfactuur vf
WHERE vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND vf.fin_verkoopfactuur_refkey =
rr.res_rsv_ruimte_key
AND vf.fin_verkoopfactuur_c4 = 'catering'))
GROUP BY klant,
res_rsv_ruimte_van,
periode,
grootboek,
kostenplaats_key,
kostenplaats,
deb_nr,
proj_key,
proj,
btw,
prs_kostensoort_btw,
res_key,
res_volgnr,
referentie,
res_rsv_ruimte_key,
descr,
aantal,
omschrijving,
soort,
btw_code
ORDER BY res_rsv_ruimte_key, btw_code;
v_teller NUMBER;
v_rap_count NUMBER;
v_kenmerk_key_laatste NUMBER;
v_ruimte_key_prev NUMBER;
v_verkoopfactuurkop_key NUMBER;
BEGIN
v_teller := 0;
v_rap_count := 0;
v_aanduiding := 'Init';
v_errormsg := 'Periode bepalen';
DELETE imp_log
WHERE imp_log_applicatie = p_applname;
-- verwijder regels die nog niet verwerkt zijn
DELETE fin_verkoopfactuurkop
WHERE fin_verkoopfactuurkop_key IN
( SELECT fin_verkoopfactuurkop_key
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_datum IS NULL
AND fin_verkoopfactuur_c4 = 'catering');
DELETE fin_verkoopfactuur
WHERE fin_verkoopfactuur_datum IS NULL
AND fin_verkoopfactuur_c4 = 'catering';
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.res_key || '/' || rec.res_volgnr || '-c')
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_kostenplaats_omschrijving,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
prs_debiteur_naam,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_btw,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_n2,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_d1
)
VALUES
(v_verkoopfactuurkop_key,
TO_CHAR(SYSDATE, 'YYYY-MM-DD'),
NULL,
rec.omschrijving,
'reservering',
rec.res_rsv_ruimte_key,
rec.proj,
rec.proj,
rec.kostenplaats,
rec.grootboek,
rec.deb_nr,
rec.prijs_ex,
rec.btw_hoog + rec.btw_laag,
rec.btw_code,
rec.btw_code,
rec.btw,
rec.periode,
rec.inex,
0, -- debet
rec.res_key || '/' || rec.res_volgnr,
rec.klant,
rec.referentie,
'catering',
rec.res_rsv_ruimte_van
);
END LOOP;
fac.writelog (
p_applname, 'S',
'Factuurregels gegenereerd',
'');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
v_errorhint
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (
p_applname,
'E',
v_aanduiding || v_errormsg,
'Onbekende fout!');
COMMIT;
END nybu_select_res_cat;
/
CREATE OR REPLACE VIEW nybu_v_export_res_cat
(
pnummer,
knummer,
pnummer_fac,
knummer_fac,
kostensoort,
bedrag,
btw,
btwcode,
opmerking
)
AS
SELECT prs_kostenplaats_nr,
prs_kostenplaatsgrp_oms,
'P990000' pnummer_fac,
'K90000' knummer_fac,
prs_kostensoort_oms,
SUM (COALESCE (fin_verkoopfactuur_bedrag, 0)),
SUM (COALESCE (fin_verkoopfactuur_btw, 0)),
fin_btwtabelwaarde_code,
COALESCE (TO_CHAR (TRUNC (fin_verkoopfactuur_datum), 'yyyy-mm-dd'),
'Leeg')
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_c4 = 'catering'
GROUP BY prs_kostenplaats_nr,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
fin_btwtabelwaarde_code,
COALESCE (
TO_CHAR (TRUNC (fin_verkoopfactuur_datum), 'yyyy-mm-dd'),
'Leeg');
-- Zet status van de met RES_CODA ge<67>xporteerde reserveringen op Verwerkt.
-- res_srtkenmerk 202 Exportdatum
-- res_srtkenmerk 261 Ge<47>xporteerd bedrag
-- res_srtkenmerk 203 Te crediteren
-- res_srtkenmerk 241 In laatste export
-- fin_verkoopfactuur_n1 = intern/extern (0/1)
-- fin_verkoopfactuur_n2 = credit nee/ja (0/1)
-- fin_verkoopfactuur_c1 = reserveringnummer
-- NB: "In laatste export" wordt door de verwerk-export niet gereset
CREATE OR REPLACE PROCEDURE nybu_export_res_cat_verwerk (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_periode VARCHAR(6);
v_periodeNaam VARCHAR2(20);
v_kenmerk_key_cred NUMBER;
v_kenmerk_key_datum NUMBER;
v_kenmerk_key_geexp NUMBER;
v_trackmessage VARCHAR2(100);
BEGIN
v_aanduiding := 'Init';
v_errormsg := 'Aanpassen facturdatum';
UPDATE fin_verkoopfactuur
SET fin_verkoopfactuur_datum = SYSDATE
WHERE fin_verkoopfactuur_datum IS NULL
AND fin_verkoopfactuur_c4 = 'catering';
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
v_errorhint
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (
p_applname,
'E',
v_aanduiding || v_errormsg,
'Onbekende fout! Niets verwerkt.');
COMMIT;
END nybu_export_res_cat_verwerk;
/
-- NYBU#30645: Rapportage voor inzage in verkoopfactuurtabel
-- fin_verkoopfactuur_n1 = intern/extern (0/1)
@@ -7721,7 +8137,8 @@ AS
1, 'credit') fclt_f_credit
FROM fin_verkoopfactuur vf,
res_rsv_ruimte rr
WHERE fin_verkoopfactuur_xmlnode = 'reservering'
WHERE vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND vf.fin_verkoopfactuur_c4 = 'ruimte/voorz'
AND rr.res_rsv_ruimte_key = fin_verkoopfactuur_refkey;
------- Rapportages Reserveringen ----------------------------------------------
@@ -9082,7 +9499,7 @@ AS
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
BEGIN fac.registercustversion ('nybu', 30); END;
BEGIN fac.registercustversion ('nybu', 31); END;
/
COMMIT;