FSN#21545 Annuleren
svn path=/Database/trunk/; revision=10936
This commit is contained in:
133
BES/BES_PAC.SRC
133
BES/BES_PAC.SRC
@@ -1,7 +1,7 @@
|
||||
#ifdef BES // 03-11-2000 PF
|
||||
/* BES_PAC.SRC
|
||||
* $Revision: 80 $
|
||||
* $Modtime: 19-10-11 12:30 $
|
||||
* $Revision: 81 $
|
||||
* $Modtime: 26-10-11 13:01 $
|
||||
*/
|
||||
|
||||
-- STATUS: TESTEN
|
||||
@@ -842,7 +842,12 @@ AS
|
||||
SET bes_bestelopdr_item_cnt = aantalopdrachtregels,
|
||||
bes_bestelopdr_status = 3 -- JGL: stond hij hier nog niet op dan?
|
||||
WHERE bes_bestelopdr_key = lbord_key;
|
||||
-- Bepaal opdrachtkorting en opdrachtkosten en sla deze op
|
||||
fac.trackaction ('BES2NE',
|
||||
lbord_key,
|
||||
i_userkey,
|
||||
NULL,
|
||||
'');
|
||||
-- Bepaal opdrachtkorting en opdrachtkosten en sla deze op
|
||||
-- Met parameter 1 geven we aan dat de berekende waarde automaisch ook word opgeslagen
|
||||
besopdrachtkorting := bes.calcbesopdrachtkorting(lbord_key, 1);
|
||||
besopdrachtkosten := bes.calcbesopdrachtkosten(lbord_key, 1);
|
||||
@@ -897,6 +902,11 @@ AS
|
||||
SET bes_bestelopdr_item_cnt = aantalopdrachtregels,
|
||||
bes_bestelopdr_status = 3
|
||||
WHERE bes_bestelopdr_key = lbord_key;
|
||||
fac.trackaction ('BES2NE',
|
||||
lbord_key,
|
||||
i_userkey,
|
||||
NULL,
|
||||
'');
|
||||
-- Bepaal opdrachtkorting en opdrachtkosten en sla deze op
|
||||
-- Met parameter 1 geven we aan dat de berekende waarde automaisch ook word opgeslagen
|
||||
besopdrachtkorting := bes.calcbesopdrachtkorting(lbord_key, 1);
|
||||
@@ -959,6 +969,12 @@ AS
|
||||
THEN
|
||||
eventcode := 'BESVER';
|
||||
END IF;
|
||||
WHEN 8 -- Annuleer
|
||||
THEN
|
||||
IF currentstatus <> 8
|
||||
THEN
|
||||
eventcode := 'BESCAN';
|
||||
END IF;
|
||||
ELSE
|
||||
-- Invalid statuschange or no change
|
||||
eventcode := NULL;
|
||||
@@ -1134,26 +1150,21 @@ AS
|
||||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||||
AND boi.bes_bestelopdr_key = pbestelopdr_key;
|
||||
-- We hebben nu alles in geval van een mutatieopdracht:
|
||||
-- Later: orgopdrkey = de key van de oude opdracht BO1
|
||||
-- pkey = de key van de nieuwe opdracht BO2
|
||||
-- orgopdrkey = de key van de oude opdracht BO1
|
||||
-- pbestelopdr_key = de key van de nieuwe opdracht BO2
|
||||
-- orgbeskey = de key van de oude aanvraag BA1
|
||||
-- beskey = de key van de nieuwe aanvraag BA2
|
||||
DBMS_OUTPUT.put_line ('orgbeskey' || orgbeskey);
|
||||
DBMS_OUTPUT.put_line ('pbestelopdr_key' || pbestelopdr_key);
|
||||
DBMS_OUTPUT.put_line ('beskey' || beskey);
|
||||
|
||||
-- Ook gewoon op change-opdracht
|
||||
bes.setbestelopdrstatus (pbestelopdr_key, 4, user_key);
|
||||
|
||||
IF orgbeskey IS NULL
|
||||
THEN
|
||||
-- dit is geen kopie of zo, gewoon een bestelling/opdracht
|
||||
UPDATE bes_bestelopdr
|
||||
SET bes_bestelopdr_status = 4
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key;
|
||||
|
||||
fac.trackaction ('BES2CO', -- confirm
|
||||
pbestelopdr_key,
|
||||
user_key,
|
||||
NULL,
|
||||
NULL);
|
||||
NULL; -- we zijn klaar
|
||||
ELSE
|
||||
-- Deze opdracht behoort bij een kopie-bestelaanvraag, waarvan de opdracht
|
||||
-- nu dus is goedgekeurd door de leverancier. Aan het werk!
|
||||
@@ -1165,6 +1176,15 @@ AS
|
||||
AND bi.bes_bestelling_key = orgbeskey;
|
||||
DBMS_OUTPUT.put_line ('orgopdrkey' || orgopdrkey);
|
||||
|
||||
-- Nieuwe tracking toevoegen aan de oude (die we straks weggooien);
|
||||
UPDATE fac_tracking
|
||||
SET fac_tracking_refkey = orgopdrkey
|
||||
WHERE fac_tracking_refkey = pbestelopdr_key
|
||||
AND fac_srtnotificatie_key IN
|
||||
(SELECT fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_xmlnode = 'bestelopdr');
|
||||
|
||||
-- Als het totaal van de mutatie-opdracht 0 is, is het een annulering, die nu
|
||||
-- dus door de leverancier is goedgekeurd. Het kan echter zo zijn dat de
|
||||
-- annuleringshorizon verstreken is, en dat er toch nog betaald moet worden
|
||||
@@ -1183,17 +1203,6 @@ AS
|
||||
--
|
||||
-- Nu alle nieuwe gegevens aan de oorspronkelijke hangen (behoud van nummer/key)
|
||||
-- Eerst de opdracht.
|
||||
DBMS_OUTPUT.put_line ('0');
|
||||
|
||||
-- Nieuwe tracking toevoegen aan de oude; op dit moment is er niet
|
||||
-- veel (geen) opdrachttracking, maar ALS het er zou zijn..
|
||||
UPDATE fac_tracking
|
||||
SET fac_tracking_refkey = orgopdrkey
|
||||
WHERE fac_tracking_refkey = pbestelopdr_key
|
||||
AND fac_srtnotificatie_key IN
|
||||
(SELECT fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_xmlnode = 'bestelopdr');
|
||||
|
||||
-- Let op: we *verwijderen* de originele bes_bestelling_item en bes_bestelopdr_item
|
||||
-- (en flex) maar *houden* de originele bes_bestelling en bes_bestelopdr
|
||||
@@ -1214,8 +1223,6 @@ AS
|
||||
DELETE FROM bes_kenmerkbestell
|
||||
WHERE bes_bestelling_key = orgbeskey;
|
||||
|
||||
DBMS_OUTPUT.put_line ('1');
|
||||
|
||||
UPDATE bes_bestelopdr_item -- de concept opdracht regels actueel maken
|
||||
SET bes_bestelopdr_key = orgopdrkey
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key;
|
||||
@@ -1236,10 +1243,9 @@ AS
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key)
|
||||
WHERE bes_bestelopdr_key = orgopdrkey;
|
||||
|
||||
DELETE FROM bes_bestelopdr -- de concept opdracht mag nu weg
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key;
|
||||
|
||||
-- De opdracht is weg, nu de aanvraag
|
||||
-- Merk op: bij een annuleer doen we dit niet, bestelling-tracking
|
||||
-- is niet interessant
|
||||
UPDATE fac_tracking
|
||||
SET fac_tracking_refkey = orgbeskey
|
||||
WHERE fac_tracking_refkey = beskey
|
||||
@@ -1248,8 +1254,6 @@ AS
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_xmlnode = 'bestelling');
|
||||
|
||||
DBMS_OUTPUT.put_line ('2');
|
||||
|
||||
UPDATE bes_bestelling_item -- de concept aanvraagregels actueel maken
|
||||
SET bes_bestelling_key = orgbeskey
|
||||
WHERE bes_bestelling_key = beskey;
|
||||
@@ -1282,43 +1286,32 @@ AS
|
||||
WHERE bes_bestelling_key = beskey)
|
||||
WHERE bes_bestelling_key = orgbeskey;
|
||||
|
||||
DELETE FROM bes_bestelling -- de concept bestelling mag nu weg
|
||||
WHERE bes_bestelling_key = beskey;
|
||||
|
||||
DBMS_OUTPUT.put_line ('3');
|
||||
|
||||
--
|
||||
UPDATE bes_bestelopdr
|
||||
SET bes_bestelopdr_status = 4
|
||||
WHERE bes_bestelopdr_key = orgopdrkey;
|
||||
bes.setbestelopdrstatus (orgopdrkey, 4, user_key);
|
||||
|
||||
fac.trackaction ('BES2CO',
|
||||
orgopdrkey,
|
||||
user_key,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
DBMS_OUTPUT.put_line ('4');
|
||||
-- Anders nog iets?
|
||||
ELSE
|
||||
-- Een annulering
|
||||
-- We behouden de oude opdracht, maar zetten die op Geannuleerd,
|
||||
-- We behouden de oude opdracht/ bestelling, maar zetten die op Geannuleerd,
|
||||
-- De nieuwe gooien we weg, die heeft zijn werk gedaan
|
||||
-- Eindstand is dus BA2 en BO1
|
||||
UPDATE bes_bestelopdr
|
||||
SET bes_bestelopdr_status = 8
|
||||
WHERE bes_bestelopdr_key = orgopdrkey;
|
||||
-- Eindstand is dus BA1 en BO1
|
||||
|
||||
fac.trackaction ('BES2CA',
|
||||
orgopdrkey,
|
||||
user_key,
|
||||
NULL,
|
||||
NULL);
|
||||
--TODO: (kan wellicht dieper in de bovenste THEN tak)
|
||||
-- BA2 -> BA1
|
||||
-- Delete BO2
|
||||
bes.setbestelopdrstatus (orgopdrkey, 8, user_key);
|
||||
bes.setbestellingstatus (orgbeskey, 8, user_key);
|
||||
|
||||
DELETE FROM bes_bestelling_item
|
||||
WHERE bes_bestelling_key = beskey;
|
||||
|
||||
DELETE FROM bes_bestelopdr_item -- de concept opdracht regels mogen weg
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key;
|
||||
|
||||
END IF;
|
||||
-- De concept bestelling en bestelopdracht records mogen nu altijd weg
|
||||
DELETE FROM bes_bestelopdr
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key;
|
||||
|
||||
DELETE FROM bes_bestelling
|
||||
WHERE bes_bestelling_key = beskey;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
@@ -1339,19 +1332,8 @@ AS
|
||||
IF orgbeskey IS NULL
|
||||
THEN
|
||||
-- dit is geen kopie of zo, gewoon een bestelling/opdracht, dus gewoon vervallen
|
||||
UPDATE bes_bestelopdr
|
||||
SET bes_bestelopdr_status = 1
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key;
|
||||
|
||||
UPDATE bes_bestelling
|
||||
SET bes_bestelling_status = 1
|
||||
WHERE bes_bestelling_key = beskey;
|
||||
|
||||
fac.trackaction ('BES2RE',
|
||||
pbestelopdr_key,
|
||||
user_key,
|
||||
NULL,
|
||||
presulttext);
|
||||
bes.setbestelopdrstatus (pbestelopdr_key, 1, user_key);
|
||||
bes.setbestellingstatus(beskey, 1, user_key);
|
||||
ELSE
|
||||
-- rollback
|
||||
fac.trackaction ('BESXXX',
|
||||
@@ -1359,7 +1341,6 @@ AS
|
||||
user_key,
|
||||
NULL,
|
||||
presulttext); -- mutatie gefaalt
|
||||
DBMS_OUTPUT.put_line ('failed -1');
|
||||
|
||||
DELETE FROM bes_bestelling_item
|
||||
WHERE bes_bestelling_key = beskey;
|
||||
@@ -1367,8 +1348,6 @@ AS
|
||||
DELETE FROM bes_bestelopdr_item
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key;
|
||||
|
||||
DBMS_OUTPUT.put_line ('failed -2');
|
||||
|
||||
DELETE FROM bes_bestelopdr
|
||||
WHERE bes_bestelopdr_key = pbestelopdr_key;
|
||||
|
||||
@@ -1484,6 +1463,6 @@ END bes;
|
||||
/
|
||||
|
||||
|
||||
REGISTERRUN('$Workfile: BES_PAC.SRC $','$Revision: 80 $')
|
||||
REGISTERRUN('$Workfile: BES_PAC.SRC $','$Revision: 81 $')
|
||||
|
||||
#endif // BES
|
||||
|
||||
Reference in New Issue
Block a user