From d442d2fe55bfaa1174002963de4915025dafefe4 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Sat, 26 Mar 2011 01:46:57 -0500 Subject: [PATCH] Improvement for Auto Allocation process - this modification allow the auto allocation process to allocate the remanent portion of partially allocated payments --- .../src/org/compiere/process/AllocationAuto.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/org.adempiere.base.process/src/org/compiere/process/AllocationAuto.java b/org.adempiere.base.process/src/org/compiere/process/AllocationAuto.java index cf8743b4fc..49de9a7bc3 100644 --- a/org.adempiere.base.process/src/org/compiere/process/AllocationAuto.java +++ b/org.adempiere.base.process/src/org/compiere/process/AllocationAuto.java @@ -650,6 +650,7 @@ public class AllocationAuto extends SvrProcess .add(payment.getDiscountAmt()) .add(payment.getWriteOffAmt()) .add(payment.getOverUnderAmt()); + availableAmt = availableAmt.subtract(allocatedAmt); if (!payment.isReceipt()) availableAmt = availableAmt.negate(); log.fine("Available=" + availableAmt); @@ -704,12 +705,14 @@ public class AllocationAuto extends SvrProcess if (payment.getC_Currency_ID() != C_Currency_ID) continue; BigDecimal allocatedAmt = payment.getAllocatedAmt(); - if (allocatedAmt != null && allocatedAmt.signum() != 0) - continue; + // comment following lines to allow partial allocation + // if (allocatedAmt != null && allocatedAmt.signum() != 0) + // continue; BigDecimal availableAmt = payment.getPayAmt() .add(payment.getDiscountAmt()) .add(payment.getWriteOffAmt()) .add(payment.getOverUnderAmt()); + availableAmt = availableAmt.subtract(allocatedAmt); if (!payment.isReceipt()) availableAmt = availableAmt.negate(); allocatedPayments = allocatedPayments.add(availableAmt);