From 4d7e5ff85489585655e01e621a2620274840e37b Mon Sep 17 00:00:00 2001 From: vpj-cd Date: Wed, 11 Nov 2009 06:22:19 +0000 Subject: [PATCH] https://sourceforge.net/tracker/?func=detail&atid=879332&aid=2880182&group_id=176962 Error you can allocate a payment to invoice that was paid Thank a lot Enrique to report this bug , I fixed kind regards Victor Perez www.e-evolution.com --- base/src/org/compiere/model/MAllocationHdr.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/base/src/org/compiere/model/MAllocationHdr.java b/base/src/org/compiere/model/MAllocationHdr.java index 85bb5fe118..266ffa33e7 100644 --- a/base/src/org/compiere/model/MAllocationHdr.java +++ b/base/src/org/compiere/model/MAllocationHdr.java @@ -411,9 +411,12 @@ public final class MAllocationHdr extends X_C_AllocationHdr implements DocAction { if (line.getC_Invoice_ID() != 0) { - boolean InvoiceIsPaid = new Query(getCtx(), I_C_Invoice.Table_Name, I_C_Invoice.COLUMNNAME_C_Invoice_ID + "=? AND " + I_C_Invoice.COLUMNNAME_IsPaid + "=?", get_TrxName()) + final String whereClause = I_C_Invoice.COLUMNNAME_C_Invoice_ID + "=? AND " + + I_C_Invoice.COLUMNNAME_IsPaid + "=? AND " + + I_C_Invoice.COLUMNNAME_DocStatus + " NOT IN (?,?)"; + boolean InvoiceIsPaid = new Query(getCtx(), I_C_Invoice.Table_Name, whereClause, get_TrxName()) .setClient_ID() - .setParameters(new Object[]{line.getC_Invoice_ID(), "Y"}) + .setParameters(new Object[]{line.getC_Invoice_ID(), "Y", MInvoice.DOCSTATUS_Voided, MInvoice.DOCSTATUS_Reversed}) .match(); if(InvoiceIsPaid) throw new AdempiereException("@ValidationError@ @C_Invoice_ID@ @IsPaid@");