AAXX#39588 -- Bundel catering referentie opslaan

svn path=/Customer/trunk/; revision=36160
This commit is contained in:
Arthur Egberink
2017-11-30 09:30:25 +00:00
parent 08f2f22543
commit a268c3e69c

View File

@@ -132,7 +132,7 @@ AS
SELECT res_rsv_artikel_key || ';' || res_rsv_artikel_prijs result,
res_rsv_artikel_key result_order
FROM aaar_v_catering_kpn_bld;
CREATE OR REPLACE PROCEDURE aaar_export_bundel_catering (
p_applname IN VARCHAR2,
@@ -140,7 +140,7 @@ CREATE OR REPLACE PROCEDURE aaar_export_bundel_catering (
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR c_kpn_bld (lev_date DATE)
IS
SELECT prs_kostenplaats_key, alg_gebouw_key, alg_locatie_key, sum(res_rsv_artikel_prijs) prijs
@@ -181,7 +181,7 @@ BEGIN
-- wat is de eerste dag van de huidige maand
v_date := TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01', 'yyyymmdd');
v_month := REPLACE(TO_CHAR (v_date-1, 'month-yyyy', 'NLS_DATE_LANGUAGE = ''dutch'''), ' ', '');
SELECT COUNT (mld_opdr_key)
INTO v_count
FROM mld_opdr
@@ -199,12 +199,12 @@ BEGIN
FOR rec IN c_kpn_bld (v_date)
LOOP
BEGIN
IF rec.prs_kostenplaats_key IS NOT NULL
THEN
IF rec.prs_kostenplaats_key IS NOT NULL
THEN
-- controleer of ik een melding heb op dit gebouw
BEGIN
v_errormsg := 'Opzoeken catering melding';
SELECT mld_melding_key
INTO v_mld_melding_key
FROM mld_melding
@@ -218,9 +218,9 @@ BEGIN
WHEN NO_DATA_FOUND
THEN
-- geen melding voor deze locatie gevonden. Dan maken we er maar een aan.
v_errormsg := 'Aanmaken catering melding';
BEGIN
INSERT INTO mld_melding (mld_melding_omschrijving,
prs_perslid_key,
@@ -250,29 +250,29 @@ BEGIN
3)
RETURNING mld_melding_key
INTO v_mld_melding_key;
BEGIN
mld.setmeldingstatus (v_mld_melding_key, 2, v_aanvrager);
END;
BEGIN
mld.setmeldingstatus (v_mld_melding_key, 4, v_aanvrager);
END;
UPDATE mld_melding
SET mld_melding_behandelaar_key = v_aanvrager
WHERE mld_melding_key = v_mld_melding_key;
END;
END;
-- nu gaan we de opdracht aanmaken
BEGIN
v_mld_opdr_bedrijfopdr_volgnr :=
mld.bepaalopdrmeldingvolgnr (v_mld_melding_key);
v_errormsg :=
'Maak opdracht aan om factuur van cateraar te matchen';
-- maak opdracht aan om cateringfactuur van leverancier te matchen
INSERT INTO mld_opdr (mld_melding_key,
prs_kostenplaats_key,
@@ -301,26 +301,30 @@ BEGIN
rec.prijs,
v_mld_opdr_bedrijfopdr_volgnr)
RETURNING mld_opdr_key INTO v_mld_opdr_key;
INSERT INTO aaxx_bundel_catering_ref (mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, res_rsv_artikel_verwerkt)
SELECT v_mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, v_date
FROM aaar_v_catering_kpn_bld
WHERE res_rsv_artikel_levering < v_date
AND prs_kostenplaats_key = rec.prs_kostenplaats_key
AND alg_gebouw_key = rec.alg_gebouw_key;
UPDATE res_rsv_artikel rra
SET res_rsv_artikel_verwerkt = SYSDATE,
res_status_bo_key = 6
WHERE EXISTS
(SELECT res_rsv_artikel_key
FROM aaar_v_catering_kpn_bld kpnbld
WHERE kpnbld.res_rsv_artikel_key =
rra.res_rsv_artikel_key
AND kpnbld.prs_kostenplaats_key = rec.prs_kostenplaats_key
AND kpnbld.alg_locatie_key = rec.alg_locatie_key
AND res_rsv_artikel_levering < v_date);
(SELECT mld_opdr_key
FROM aaxx_bundel_catering_ref bc
WHERE bc.mld_opdr_key = v_mld_opdr_key
AND bc.res_rsv_artikel_key = rra.res_rsv_artikel_key);
v_errormsg := 'Update melding status';
mld.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- Facilitor
-- meld de opdracht af
MLD.setopdrachtstatus (v_mld_opdr_key, 6, v_aanvrager);
-- en zet de opdracht op afgerond zodat deze direct in het factuurvoorstel komt.
MLD.setopdrachtstatus (v_mld_opdr_key, 9, v_aanvrager);
EXCEPTION
WHEN OTHERS
THEN
@@ -328,11 +332,11 @@ BEGIN
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', v_errormsg, '');
END;
ELSE
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec.prijs || ' euro kan niet aan een kostenplaats gekoppeld worden!', '');
END IF;
END IF;
END LOOP;
END LOOP;
END IF;