core-jgi/db/maintain/Maintenance/C_CashLine_Check.sql

41 lines
1.5 KiB
SQL

/*************************************************************************
* The contents of this file are subject to the Adempiere License. You may
* obtain a copy of the License at http://www.adempiere.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: Adempiere ERP+CRM
* Copyright (C) 1999-2001 Jorg Janke, ComPiere, Inc. All Rights Reserved.
*************************************************************************
* $Id: C_CashLine_Check.sql,v 1.1 2006/04/21 17:51:58 jjanke Exp $
***
* Title: C_CashLine_Check
* Description:
* Check correctness of CashLine Invoice Amount
* with the Option to Fix it.
************************************************************************/
-- Invalid Records
SELECT c.Name, cl.Description, i.GrandTotal, cl.Amount,
ABS(i.GrandTotal)*SIGN(cl.Amount) AS CorrectAmount
FROM C_Cash c, C_CashLine cl, C_Invoice i
WHERE c.C_Cash_ID=cl.C_Cash_ID
AND cl.C_Invoice_ID=i.C_Invoice_ID
AND ABS(cl.Amount) <> ABS(i.GrandTotal)
/
/** Fix it *
ALTER TRIGGER C_CashLine_Trg DISABLE
/
UPDATE C_CashLine cl
SET Amount = (SELECT ABS(i.GrandTotal)*SIGN(cl.Amount) FROM C_Invoice i
WHERE cl.C_Invoice_ID=i.C_Invoice_ID)
WHERE EXISTS
(SELECT * FROM C_Invoice i WHERE cl.C_Invoice_ID=i.C_Invoice_ID
AND ABS(cl.Amount) <> ABS(i.GrandTotal))
/
ALTER TRIGGER C_CashLine_Trg ENABLE
/
COMMIT
/
/** Fix it */