Files
mip/Data/BulkLoad/EFT/Nominations/plsql/cg$bur_nomination_windows.trg

73 lines
3.7 KiB
Plaintext

CREATE OR REPLACE TRIGGER EFT_NOM.cg$BUR_NOMINATION_WINDOWS
BEFORE UPDATE ON NOMINATION_WINDOWS FOR EACH ROW
DECLARE
cg$rec cg$NOMINATION_WINDOWS.cg$row_type;
cg$ind cg$NOMINATION_WINDOWS.cg$ind_type;
cg$old_rec cg$NOMINATION_WINDOWS.cg$row_type;
BEGIN
-- Application_logic Pre-Before-Update-row <<Start>>
-- Application_logic Pre-Before-Update-row << End >>
-- Load cg$rec/cg$ind values from new
cg$rec.GAS_DAY := :new.GAS_DAY;
cg$ind.GAS_DAY := (:new.GAS_DAY IS NULL AND :old.GAS_DAY IS NOT NULL )
OR (:new.GAS_DAY IS NOT NULL AND :old.GAS_DAY IS NULL)
OR NOT(:new.GAS_DAY = :old.GAS_DAY) ;
cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).GAS_DAY := :old.GAS_DAY;
cg$rec.WINDOW_START := :new.WINDOW_START;
cg$ind.WINDOW_START := (:new.WINDOW_START IS NULL AND :old.WINDOW_START IS NOT NULL )
OR (:new.WINDOW_START IS NOT NULL AND :old.WINDOW_START IS NULL)
OR NOT(:new.WINDOW_START = :old.WINDOW_START) ;
cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).WINDOW_START := :old.WINDOW_START;
cg$rec.WINDOW_END := :new.WINDOW_END;
cg$ind.WINDOW_END := (:new.WINDOW_END IS NULL AND :old.WINDOW_END IS NOT NULL )
OR (:new.WINDOW_END IS NOT NULL AND :old.WINDOW_END IS NULL)
OR NOT(:new.WINDOW_END = :old.WINDOW_END) ;
cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).WINDOW_END := :old.WINDOW_END;
cg$rec.MESSAGE := :new.MESSAGE;
cg$ind.MESSAGE := (:new.MESSAGE IS NULL AND :old.MESSAGE IS NOT NULL )
OR (:new.MESSAGE IS NOT NULL AND :old.MESSAGE IS NULL)
OR NOT(:new.MESSAGE = :old.MESSAGE) ;
cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).MESSAGE := :old.MESSAGE;
cg$rec.NOTES := :new.NOTES;
cg$ind.NOTES := (:new.NOTES IS NULL AND :old.NOTES IS NOT NULL )
OR (:new.NOTES IS NOT NULL AND :old.NOTES IS NULL)
OR NOT(:new.NOTES = :old.NOTES) ;
cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).NOTES := :old.NOTES;
cg$rec.TSA_TIMESTAMP := :new.TSA_TIMESTAMP;
cg$ind.TSA_TIMESTAMP := (:new.TSA_TIMESTAMP IS NULL AND :old.TSA_TIMESTAMP IS NOT NULL )
OR (:new.TSA_TIMESTAMP IS NOT NULL AND :old.TSA_TIMESTAMP IS NULL)
OR NOT(:new.TSA_TIMESTAMP = :old.TSA_TIMESTAMP) ;
cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).TSA_TIMESTAMP := :old.TSA_TIMESTAMP;
cg$rec.NOWI_ID := :new.NOWI_ID;
cg$ind.NOWI_ID := (:new.NOWI_ID IS NULL AND :old.NOWI_ID IS NOT NULL )
OR (:new.NOWI_ID IS NOT NULL AND :old.NOWI_ID IS NULL)
OR NOT(:new.NOWI_ID = :old.NOWI_ID) ;
cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).NOWI_ID := :old.NOWI_ID;
cg$NOMINATION_WINDOWS.idx := cg$NOMINATION_WINDOWS.idx + 1;
if not (cg$NOMINATION_WINDOWS.called_from_package) then
cg$NOMINATION_WINDOWS.validate_arc(cg$rec);
cg$NOMINATION_WINDOWS.validate_domain(cg$rec, cg$ind);
cg$NOMINATION_WINDOWS.validate_domain_cascade_update(cg$old_rec);
cg$NOMINATION_WINDOWS.upd(cg$rec, cg$ind, FALSE);
cg$NOMINATION_WINDOWS.called_from_package := FALSE;
end if;
:new.GAS_DAY := cg$rec.GAS_DAY;
:new.WINDOW_START := cg$rec.WINDOW_START;
:new.WINDOW_END := cg$rec.WINDOW_END;
:new.MESSAGE := cg$rec.MESSAGE;
:new.NOTES := cg$rec.NOTES;
:new.TSA_TIMESTAMP := cg$rec.TSA_TIMESTAMP;
-- Application_logic Post-Before-Update-row <<Start>>
-- Application_logic Post-Before-Update-row << End >>
END;
/