41 lines
1.5 KiB
MySQL
41 lines
1.5 KiB
MySQL
|
/*************************************************************************
|
||
|
* 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 */
|
||
|
|