📄 gl_journalline_trg.sql
字号:
CREATE OR REPLACE TRIGGER GL_JournalLine_Trg
AFTER INSERT OR DELETE OR UPDATE
ON GL_JournalLine
FOR EACH ROW
DECLARE
/*************************************************************************
* The contents of this file are subject to the Compiere License. You may
* obtain a copy of the License at http://www.compiere.org/license.html
* Software is on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the License for details. Code: Compiere ERP+CRM
* Copyright (C) 1999-2001 Jorg Janke, ComPiere, Inc. All Rights Reserved.
*************************************************************************
* $Id: GL_JournalLine_Trg.sql,v 1.3 2002/07/01 02:29:00 jjanke Exp $
***
* Title: Journal Line
* Description:
* - Update Journal Totals
************************************************************************/
v_ID NUMBER;
v_RO NUMBER;
BEGIN
-- Get ID
IF (UPDATING OR INSERTING) THEN
v_ID := :new.GL_Journal_ID;
ELSE
v_ID := :old.GL_Journal_ID;
END IF;
-- ReadOnly Check
SELECT COUNT(*)
INTO v_RO
FROM GL_Journal
WHERE GL_Journal_ID=v_ID
AND (Processed='Y' OR Posted='Y');
IF (v_RO > 0) THEN
RAISE_APPLICATION_ERROR(-20501, 'Document processed/posted');
END IF;
-- Subtract Old Amount
IF (UPDATING OR DELETING) THEN
IF (:old.IsActive = 'Y') THEN
UPDATE GL_Journal
SET TotalDr = TotalDr - :old.AmtSourceDr,
TotalCr = TotalCr - :old.AmtSourceCr
WHERE GL_Journal_ID = :old.GL_Journal_ID;
END IF;
END IF;
-- Add new Amount
IF (INSERTING OR UPDATING) THEN
IF (:new.IsActive = 'Y') THEN
UPDATE GL_Journal
SET TotalDr = TotalDr + :new.AmtSourceDr,
TotalCr = TotalCr + :new.AmtSourceCr
WHERE GL_Journal_ID = :new.GL_Journal_ID;
END IF;
END IF;
END GL_JournalLine_Trg;
/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -