DIAN#65248 NACHTWERK-export/Auto registreren levering (14 dagen na afleverdatum)
svn path=/Customer/trunk/; revision=49368
This commit is contained in:
@@ -924,6 +924,90 @@ EXCEPTION
|
||||
END dian_update_exact;
|
||||
/
|
||||
|
||||
-- DIAN#65248: Dummy export NACHTWERK tbv. het automatisch op Geleverd zetten
|
||||
-- van bestellingen 2 weken na Afleverdatum.
|
||||
CREATE OR REPLACE PROCEDURE dian_select_nachtwerk (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2)
|
||||
AS
|
||||
-- Cursor loopt over alle bestelopdracht-items met status 'In bestelling';
|
||||
-- deze worden verondersteld te zijn geleverd na 'leverdagen'+'notidagen'!
|
||||
CURSOR cboi
|
||||
IS
|
||||
SELECT DISTINCT bo.bes_bestelopdr_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 = -1
|
||||
--AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
|
||||
--AND bdp.bes_disc_params_noti_dagen IS NOT NULL
|
||||
--AND (b.bes_bestelling_datum IS NULL OR fac.datumtijdplusuitvoertijd (b.bes_bestelling_leverdatum, bdp.bes_disc_params_noti_dagen, 'DAGEN') < SYSDATE)
|
||||
AND (b.bes_bestelling_datum IS NULL OR b.bes_bestelling_leverdatum + 14 < SYSDATE) -- Hard 2 weken na afleverdatum!
|
||||
ORDER BY 1;
|
||||
|
||||
-- Cursor loopt over alle bestelling-items met status 'Besteld' waarvan
|
||||
-- de bijbehorende bestelopdracht-items zijn geleverd; deze worden dan ook
|
||||
-- gesloten!
|
||||
CURSOR cbi
|
||||
IS
|
||||
SELECT DISTINCT b.bes_bestelling_key
|
||||
FROM bes_bestelling b,
|
||||
bes_bestelling_item bi,
|
||||
bes_bestelopdr_item boi
|
||||
WHERE b.bes_bestelling_status = 5 -- Besteld
|
||||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||||
--AND bi.bes_bestelling_item_aantal != COALESCE (bi.bes_bestelling_item_aantalontv, 0)
|
||||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||||
AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv
|
||||
ORDER BY 1;
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
v_errormsg := 'Fout leveren bestelopdracht';
|
||||
|
||||
FOR rec IN cboi
|
||||
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_key = rec.bes_bestelopdr_key;
|
||||
|
||||
bes.updatebestelopdrstatus (rec.bes_bestelopdr_key, NULL);
|
||||
END LOOP;
|
||||
|
||||
v_errormsg := 'Fout sluiten bestelaanvraag';
|
||||
|
||||
FOR rec IN cbi
|
||||
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_key = rec.bes_bestelling_key;
|
||||
|
||||
bes.updatebestellingstatus (rec.bes_bestelling_key, NULL);
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog (p_applname, 'E', 'Proces NACHTWERK afgebroken!', v_errormsg);
|
||||
END dian_select_nachtwerk;
|
||||
/
|
||||
|
||||
/*
|
||||
DELETE FROM bes_srtdeel;
|
||||
DELETE FROM bes_srtgroep;
|
||||
|
||||
Reference in New Issue
Block a user