Professional Documents
Culture Documents
DECLARE
v_corporation_code VARCHAR2 (10
CHAR);
v_item_identifier VARCHAR2 (50
CHAR);
v_grouping_key VARCHAR2 (35
CHAR);
v_gen_key VARCHAR2 (35
CHAR);
v_new_sequence NUMBER;
v_tempValue NUMBER;
v_checkSum NUMBER;
v_controlNr NUMBER;
v_tempLngth NUMBER;
numberOfItems NUMBER;
backorder NUMBER;
BEGIN
v_item_identifier := :new.ITEM_IDENTIFIER;
-- generate sscc barcode (only do this when we can find a # in the item
identifier, else a 'normal' value can be set which doesn't require any generation)
IF instr(v_item_identifier,'#SSCC#') > 0 THEN
BEGIN
SELECT corporation_code
INTO v_corporation_code
FROM wfm_pis
INNER JOIN gen_companies
ON gen_companies.code = wfm_pis.company_code
WHERE wfm_pis.id = :new.pi_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_corporation_code := '';
END;
-- retrieve the grouping key from the item identifier
v_grouping_key := PKG_GEN_NUMBERS.get_grouping_key(v_item_identifier);
v_item_identifier := replace(v_item_identifier,'#SSCC#','');
v_gen_key := '';
v_tempLngth := 17;
IF LENGTH(v_item_identifier) > 0 THEN
v_tempLngth := 17 - LENGTH(v_item_identifier);
END IF;
v_controlNr :=
TO_NUMBER(SUBSTR(TO_CHAR(v_checkSum),LENGTH(TO_CHAR(v_checkSum)), 1));
IF backorder = 1 THEN
UPDATE WMSWFM_ORDERS SET WMSWFM_ORDERS.BACKORDER = 1 WHERE WMSWFM_ORDERS.ID =
:new.PI_ID;
ELSE
UPDATE WMSWFM_ORDERS SET WMSWFM_ORDERS.BACKORDER = 0 WHERE WMSWFM_ORDERS.ID =
:new.PI_ID;
END IF;
END IF;