Ciao a tutti Buon Anno,

ho scritto un trigger su oracle che mi permette, ogni volta che una transazione viene chiusa, di inserire o modificare un record in una nuova tabella.

Scenario:

TB_TRANSACTIONS; --- Tabella testate vendite ----
TB_TRANS_ARTICLES: --- Tabella dettagli artricoli venduti ---
TB_POS_GIACENZE; --- Tabella da me creata con i dati essenziali per le giacenze ---
TriggerGIACENZE; --- Il trigger che si occupa di aggiornare le giacenze su TB_POS_GIACENZE ---


---------------------------------------------------------------

Codice Trigger:

create or replace
TRIGGER TriggerGIACENZE
AFTER INSERT
ON TB_TRANS_ARTICLES
FOR EACH ROW

DECLARE
ART TB_POS_GIACENZE%ROWTYPE;

BEGIN

SELECT * INTO ART
FROM TB_POS_GIACENZE
WHERE ARTICLE_ID = :NEW.ARTICLE_ID AND CASHREG_ID = :NEW.POS_ID;
IF :NEW.DELETE_OPERATOR_ID IS NULL THEN
UPDATE TB_POS_GIACENZE
SET QTA = QTA + :NEW.QTY_WEIGHT,
PRICE = PRICE + :NEW.PRICE
WHERE ARTICLE_ID = :NEW.ARTICLE_ID AND CASHREG_ID = :NEW.POS_ID;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
IF :NEW.DELETE_OPERATOR_ID IS NULL THEN
INSERT INTO TB_POS_GIACENZE ( ARTICLE_ID, CASHREG_ID, QTA, PRICE )
VALUES ( :NEW.ARTICLE_ID, :NEW.POS_ID , :NEW.QTY_WEIGHT, :NEW.PRICE );
END IF;
END;

---------------------------------------------------------------

Problema:

il POS_ID, che doveva essere l'ID della cassa che chiude la transazione, risulta essere tutt'altra cosa.....

Il CASHREG_ID che a me serve si trova nella testata cioè su TB_TRANSACTIONS.

Dopo vari tentativi mi sono arreso ... non so proprio come modificare il Trigger, mi sapete aiutare ?