HPJI#28971 Geleverde bestellingen bloemen automatisch afmelden

svn path=/Customer/trunk/; revision=21248
This commit is contained in:
Peter Koerhuis
2014-04-07 12:50:32 +00:00
parent e323a55319
commit 78cfb9e126

View File

@@ -3119,7 +3119,103 @@ AS
AND asd.ins_deel_key = y.ins_deel_key(+) AND asd.ins_deel_key = y.ins_deel_key(+)
AND asd.ins_deel_key = z.ins_deel_key(+); AND asd.ins_deel_key = z.ins_deel_key(+);
BEGIN fac.registercustversion('HPJI', 9); END;
-- HPJI#28971 Geleverde bestellingen bloemen automatisch afmelden
CREATE OR REPLACE PROCEDURE hpji_export_bes_afmeld (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- De bestelopdrachten die ik als compleet geleverd veronderstel,
-- die zouden in principe meer werkdagen geleden geleverd zijn dan
-- de 'notidagen' van de catalogus aangeeft.
-- bes_discipline 201 Bloemen Groningen
-- bes_discipline 202 Bloemen Veenhuizen
CURSOR cbopi
IS
SELECT boi.bes_bestelopdr_item_key, bo.bes_bestelopdr_key, b.bes_bestelling_key
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_disc_params bdp
WHERE bo.bes_bestelopdr_status = 4 -- In bestelling
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
AND sg.ins_discipline_key IN (201, 202)
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
AND ( b.bes_bestelling_leverdatum IS NULL
OR fac.datumtijdplusuitvoertijd (b.bes_bestelling_leverdatum,
bdp.bes_disc_params_noti_dagen,
'DAGEN')
< SYSDATE );
-- Alle bestelaanvragen die (nu) geheel geleverd zijn sluiten we af.
CURSOR cbesi
IS
SELECT bi.bes_bestelling_item_key, b.bes_bestelling_key
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_srtdeel sd,
bes_srtgroep sg
WHERE b.bes_bestelling_status = 5 -- Besteld
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key IN (201, 202);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
FOR r IN cbopi
LOOP
-- Zeg dat alles geleverd is wat besteld is.
UPDATE bes_bestelopdr_item
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
WHERE bes_bestelopdr_item_key = r.bes_bestelopdr_item_key;
bes.updatebestelopdrstatus (r.bes_bestelopdr_key, NULL);
END LOOP;
FOR r IN cbesi
LOOP
-- Sluit alle aanvraagregels af die nu geheel geleverd zijn.
UPDATE bes_bestelling_item
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
WHERE bes_bestelling_item_key = r.bes_bestelling_item_key;
bes.updatebestellingstatus (r.bes_bestelling_key, NULL);
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
ROLLBACK;
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Proces afmelden bestellingen afgebroken!',
v_errormsg);
COMMIT;
END;
/
BEGIN fac.registercustversion('HPJI', 10); END;
/ /
BEGIN adm.systrackscriptId('$Id$', 0); END; BEGIN adm.systrackscriptId('$Id$', 0); END;
/ /