NYBU#33916 -- Goedkeuring Catering

svn path=/Customer/trunk/; revision=27482
This commit is contained in:
Arthur Egberink
2015-12-17 13:39:43 +00:00
parent 83929b8197
commit f2ae47e50b

View File

@@ -1360,7 +1360,7 @@ END nybu_export_res_statusupd;
-- Export om notificatie naar contactpersonen van een reservering
-- te sturen op het moment dat de reservering totaal afgemeld is
-- 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,
@@ -3451,57 +3451,54 @@ BEGIN
LOOP
v_aanduiding := rec.cnt_contract_nr_versie||'/'||rec.prs_perslid_naam||'/'||rec.alg_ruimte_nr;
-- Alleen refunds maken als we GEEN allongeregels aan het maken zijn (p_mode=2)
IF NOT (p_mode = 2)
-- NYBU#34759: Voorheen werden refunds niet meegenomen bij het maken van allongeregels,
-- maar dan kun je refunds niet ongedaan maken
v_betreft := rec.betreft;
v_errormsg := 'Refundregels huur aanmaken';
-- Plaats in huurbuffer
-- met juiste kostenplaatsen en -soorten, omschrijving
INSERT INTO nybu_huur_buffer (
betreft, datum_export,
periode, isMutatie,
deb_nr,
achternaam, naam_full, prs_perslid_key,
cnt_contract_nr, cnt_contract_key,
kamer, alg_ruimte_key,
omschrijving,
kpn_code_afd, kpn_code_proj,
prs_kostensoort_refcode,
btw_code, btw_perc,
bedrag)
VALUES (
v_betreft, p_run,
p_periode, 0,
rec.bill_to,
rec.prs_perslid_naam, rec.prs_perslid_naam_full, rec.prs_perslid_key,
rec.cnt_contract_nr_versie, rec.cnt_contract_key,
rec.alg_ruimte_nr, rec.alg_ruimte_key,
rec.omschrijving,
rec.kpngrp, rec.kpn,
v_kostensoort,
rec.btw, rec.perc,
rec.bedrag);
-- Als we met de definitieve export bezig zijn (p_mode=1),
-- maak dan de refundkenmerken bij deze refundregel leeg, voor een schone lei
IF (p_mode = 1)
THEN
v_betreft := rec.betreft;
v_errormsg := 'Refundregels huur aanmaken';
-- Plaats in huurbuffer
-- met juiste kostenplaatsen en -soorten, omschrijving
INSERT INTO nybu_huur_buffer (
betreft, datum_export,
periode, isMutatie,
deb_nr,
achternaam, naam_full, prs_perslid_key,
cnt_contract_nr, cnt_contract_key,
kamer, alg_ruimte_key,
omschrijving,
kpn_code_afd, kpn_code_proj,
prs_kostensoort_refcode,
btw_code, btw_perc,
bedrag)
VALUES (
v_betreft, p_run,
p_periode, 0,
rec.bill_to,
rec.prs_perslid_naam, rec.prs_perslid_naam_full, rec.prs_perslid_key,
rec.cnt_contract_nr_versie, rec.cnt_contract_key,
rec.alg_ruimte_nr, rec.alg_ruimte_key,
rec.omschrijving,
rec.kpngrp, rec.kpn,
v_kostensoort,
rec.btw, rec.perc,
rec.bedrag);
-- Als we met de definitieve export bezig zijn (p_mode=1),
-- maak dan de refundkenmerken bij deze refundregel leeg, voor een schone lei
IF (p_mode = 1)
THEN
-- Refundvelden leegmaken
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_verwijder = SYSDATE
WHERE cnt_kenmerk_key IN (rec.omschr_key, rec.bedrag_key)
AND cnt_contract_key = rec.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL;
-- Tracking
fac.trackaction('CNTUPD',
rec.cnt_contract_key,
4, -- _FACILITOR
NULL,
'Contract updated'|| chr(10) ||
'Refunded <20>'||rec.bedrag||' as '||rec.omschrijving||' ('||rec.btw||') ');
END IF;
-- Refundvelden leegmaken
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_verwijder = SYSDATE
WHERE cnt_kenmerk_key IN (rec.omschr_key, rec.bedrag_key)
AND cnt_contract_key = rec.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL;
-- Tracking
fac.trackaction('CNTUPD',
rec.cnt_contract_key,
4, -- _FACILITOR
NULL,
'Contract updated'|| chr(10) ||
'Refunded <20>'||rec.bedrag||' as '||rec.omschrijving||' ('||rec.btw||') ');
END IF;
END LOOP;
@@ -5164,7 +5161,7 @@ AS
NULL ref2
FROM nybu_v_vertrekkers
WHERE schoonmaak IS NOT NULL
AND schoonmaak > 0
AND schoonmaak > 0
ORDER BY nummer, idx);
@@ -6797,7 +6794,7 @@ AS
-- fin_verkoopfactuur_c1 = reserveringnummer
-- fin_verkoopfactuur_c2 = klantnaam
-- fin_verkoopfactuur_c3 = klantreferentie
-- fin_verkoopfactuur_c4 = type verkoopfactuur {'catering', 'ruimte/voorz'}
-- 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,
@@ -7818,14 +7815,14 @@ CURSOR c IS
1 aantal,
r.res_ruimte_nr omschrijving,
'catering' soort,
rra.res_rsv_artikel_prijs prijs_ex,
(rra.res_rsv_artikel_prijs / (btw.perc +100)) * 100 prijs_ex,
rra.res_rsv_artikel_prijs prijs_inc,
DECODE (btw.perc,
6, rra.res_rsv_artikel_prijs * btw.perc / 100,
6, rra.res_rsv_artikel_prijs * btw.perc / (100 + btw.perc),
0)
btw_laag,
DECODE (btw.perc,
21, rra.res_rsv_artikel_prijs * btw.perc / 100,
21, rra.res_rsv_artikel_prijs * btw.perc / (100 + btw.perc),
0)
btw_hoog,
0 korting,
@@ -7857,13 +7854,21 @@ CURSOR c IS
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
AND NOT EXISTS -- flag reservering bevat catering op externe kostenplaats is niet gezet.
(SELECT res_kenmerkwaarde_key
FROM res_kenmerkwaarde kw,
res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 321 -- Reservering bevat catering op externe kostenpaats.
AND kw.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND kw.res_kenmerkreservering_waarde = 1)
AND NOT EXISTS -- entry komt nog niet voor in de verkoopfactuurtabel
(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'))
AND COALESCE(vf.fin_verkoopfactuur_c4, 'NOP') = 'catering'))
GROUP BY klant,
res_rsv_ruimte_van,
periode,
@@ -7900,14 +7905,14 @@ BEGIN
DELETE imp_log
WHERE imp_log_applicatie = p_applname;
-- verwijder regels die nog niet verwerkt zijn
DELETE fin_verkoopfactuurkop
WHERE fin_verkoopfactuurkop_key IN
WHERE fin_verkoopfactuurkop_key IN
( SELECT fin_verkoopfactuurkop_key
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_datum IS NULL
AND fin_verkoopfactuur_c4 = 'catering');
AND fin_verkoopfactuur_c4 = 'catering');
DELETE fin_verkoopfactuur
WHERE fin_verkoopfactuur_datum IS NULL
@@ -7919,10 +7924,10 @@ BEGIN
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)
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,
@@ -7977,7 +7982,7 @@ BEGIN
rec.res_rsv_ruimte_van
);
END LOOP;
fac.writelog (
p_applname, 'S',
@@ -8007,12 +8012,69 @@ EXCEPTION
END nybu_select_res_cat;
/
CREATE OR REPLACE VIEW nybu_v_rap_factuur_cateraar
(
kostenplaats,
project,
bedrag,
btw,
btwcode,
regelomschrijving
)
AS
SELECT 'K90000' kostenplaats,
'P990000' project,
SUM (bedrag) bedrag,
SUM (btw) btw,
btwcode,
opmerking
FROM nybu_v_export_res_cat
GROUP BY btwcode, opmerking;
CREATE OR REPLACE VIEW nybu_v_rap_doorbelasting_cat
(
nummer,
adm,
grootboek,
kostenplaats,
project,
medewerker,
bedrag,
d_c,
regelomschrijving
)
AS
SELECT TO_CHAR (NULL) nummer,
TO_CHAR (NULL) adm,
kostensoort,
kostenplaats,
project,
TO_CHAR (NULL) medewerker,
SUM (bedrag) + SUM (btw),
'D',
opmerking
FROM nybu_v_export_res_cat
GROUP BY kostensoort,
kostenplaats,
project,
opmerking
UNION ALL
SELECT TO_CHAR (NULL) nummer,
TO_CHAR (NULL) adm,
kostensoort,
'K90000' kostenplaats,
'P990000' project,
TO_CHAR (NULL) medewerker,
SUM (bedrag) + SUM (btw),
'C',
opmerking
FROM nybu_v_export_res_cat
GROUP BY kostensoort, opmerking;
CREATE OR REPLACE VIEW nybu_v_export_res_cat
(
pnummer,
knummer,
pnummer_fac,
knummer_fac,
project,
kostenplaats,
kostensoort,
bedrag,
btw,
@@ -8020,25 +8082,27 @@ CREATE OR REPLACE VIEW nybu_v_export_res_cat
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');
SELECT prs_kostenplaats_nr,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
COALESCE (fin_verkoopfactuur_bedrag, 0),
COALESCE (fin_verkoopfactuur_btw, 0),
fin_btwtabelwaarde_code,
DECODE (
TRUNC (fin_verkoopfactuur_datum),
NULL,
'Leeg',
'Vermaat '
|| (SELECT TO_CHAR (MAX (v2.fin_verkoopfactuur_datum), 'dd/mm')
|| '-'
FROM fin_verkoopfactuur v2
WHERE fin_verkoopfactuur_c4 = 'catering'
AND TRUNC (v2.fin_verkoopfactuur_datum) <
TRUNC (v.fin_verkoopfactuur_datum))
|| TO_CHAR (v.fin_verkoopfactuur_datum, 'dd/mm'))
FROM fin_verkoopfactuur v
WHERE fin_verkoopfactuur_c4 = 'catering';
-- Zet status van de met RES_CODA ge<67>xporteerde reserveringen op Verwerkt.
-- res_srtkenmerk 202 Exportdatum
@@ -8076,7 +8140,7 @@ BEGIN
SET fin_verkoopfactuur_datum = SYSDATE
WHERE fin_verkoopfactuur_datum IS NULL
AND fin_verkoopfactuur_c4 = 'catering';
COMMIT;
EXCEPTION
@@ -9081,19 +9145,18 @@ AS
AND rr.res_rsv_ruimte_key = e.res_rsv_ruimte_key(+)
AND m.res_rsv_ruimte_key(+) = rr.res_rsv_ruimte_key
AND ( (s.res_status_bo_key = 5
AND res_kenmerkreservering_waarde IS NULL
AND SYSDATE - res_rsv_ruimte_van > 3)
AND res_kenmerkreservering_waarde IS NULL)
OR (res_kenmerkreservering_waarde IS NOT NULL
AND res_rsv_ruimte_tot > SYSDATE - 50))
AND rr.res_rsv_ruimte_van > TO_DATE('20151101', 'yyyymmdd');
AND rr.res_rsv_ruimte_van > TO_DATE('20160101', 'yyyymmdd');
CREATE OR REPLACE VIEW nybu_v_rap_res_approve
AS
SELECT *
FROM nybu_v_res_approve
WHERE catering > 0;
-- notificatie naar contactpersoon als de reservering goedgekeurd moet worden. De mail wordt
-- drie werkdagen na de reservering verzonden. Aangezien er ook in het weekend gereserveerd
-- kan worden controleert de view of dezelfde notificatie ook gisteren verstuurd zou zijn.