details: https://code.openbravo.com/erp/devel/pi/rev/e5982f367e56
changeset: 13795:e5982f367e56
user: Gorka Ion Damián <gorkaion.damian <at> openbravo.com>
date: Mon Sep 19 17:08:19 2011 +0200
summary: Fixed issue 18485.Forwardport fix on 2.50 branch.
diffstat:
src/org/openbravo/erpCommon/ad_process/PaymentMonitor.java | 69 ++++++++++---
1 files changed, 51 insertions(+), 18 deletions(-)
diffs (104 lines):
diff -r 535838efebce -r e5982f367e56
src/org/openbravo/erpCommon/ad_process/PaymentMonitor.java
--- a/src/org/openbravo/erpCommon/ad_process/PaymentMonitor.java Mon Sep
19 16:04:17 2011 +0200
+++ b/src/org/openbravo/erpCommon/ad_process/PaymentMonitor.java Mon Sep
19 17:08:19 2011 +0200
@@ -174,16 +174,31 @@
for (DebtPayment cancelledPayment : cancelledPayments) {
if (!cancelledPayment.isPaymentComplete()) {
cancelledNotPaidPayments.add(cancelledPayment);
- cancelledNotPaidAmount =
cancelledNotPaidAmount.add(getConvertedAmt(cancelledPayment
- .getAmount(), cancelledPayment.getCurrency().getId(),
strCurrencyTo, cancelledPayment
- .getSettlementCancelled().getAccountingDate(),
cancelledPayment.getClient().getId(),
- cancelledPayment.getOrganization().getId()));
- cancelledNotPaidWriteOffAmount =
cancelledNotPaidWriteOffAmount.add(getConvertedAmt(
- cancelledPayment.getWriteoffAmount(),
cancelledPayment.getCurrency().getId(),
- strCurrencyTo,
cancelledPayment.getSettlementCancelled().getAccountingDate(),
- cancelledPayment.getClient().getId(),
cancelledPayment.getOrganization().getId()));
+ BigDecimal paymentCancelledAmt =
getConvertedAmt(cancelledPayment.getAmount(),
+ cancelledPayment.getCurrency().getId(), strCurrencyTo,
cancelledPayment
+ .getSettlementCancelled().getAccountingDate(),
cancelledPayment.getClient()
+ .getId(), cancelledPayment.getOrganization().getId());
+ cancelledNotPaidAmount = cancelledNotPaidAmount
+ .add(payment.isReceipt() == cancelledPayment.isReceipt() ?
paymentCancelledAmt
+ : paymentCancelledAmt.negate());
+ BigDecimal paymentCancelledWOAmt =
getConvertedAmt(cancelledPayment.getWriteoffAmount(),
+ cancelledPayment.getCurrency().getId(), strCurrencyTo,
cancelledPayment
+ .getSettlementCancelled().getAccountingDate(),
cancelledPayment.getClient()
+ .getId(), cancelledPayment.getOrganization().getId());
+ cancelledNotPaidWriteOffAmount = cancelledNotPaidWriteOffAmount
+ .add(payment.isReceipt() == cancelledPayment.isReceipt() ?
paymentCancelledWOAmt
+ : paymentCancelledWOAmt.negate());
}
}
+
+ if (cancelledNotPaidAmount.compareTo(BigDecimal.ZERO) == 0)
+ // The sum of all canceled not paid payments in the settlement is
zero. This means that the
+ // payment has been paid completely, as it was canceled with some
other pending payments
+ // (for example, the ones comming from a credit memo)
+ return getConvertedAmt(payment.getAmount().multiply(multiplier),
payment.getCurrency()
+ .getId(), strCurrencyTo, conversionDate,
payment.getClient().getId(), payment
+ .getOrganization().getId());
+
List<DebtPayment> generatedPayments = payment.getSettlementCancelled()
.getFinancialMgmtDebtPaymentCSettlementGenerateIDList();
// Add the write-off amount
@@ -199,7 +214,9 @@
generatedPaymentPaidAmount = calculatePaidAmount(generatedPayment,
strCurrencyTo,
generatedPayment.getSettlementGenerate().getAccountingDate(),
payment.getAmount()
.divide(cancelledNotPaidAmount, 1000,
BigDecimal.ROUND_HALF_UP));
- paidAmount = paidAmount.add(generatedPaymentPaidAmount);
+ paidAmount = paidAmount
+ .add(payment.isReceipt() == generatedPayment.isReceipt() ?
generatedPaymentPaidAmount
+ : generatedPaymentPaidAmount.negate());
}
}
return paidAmount;
@@ -226,16 +243,30 @@
for (DebtPayment cancelledPayment : cancelledPayments) {
if (!cancelledPayment.isPaymentComplete()) {
cancelledNotPaidPayments.add(cancelledPayment);
- cancelledNotPaidAmount =
cancelledNotPaidAmount.add(getConvertedAmt(cancelledPayment
- .getAmount(), cancelledPayment.getCurrency().getId(),
strCurrencyTo, cancelledPayment
- .getSettlementCancelled().getAccountingDate(),
cancelledPayment.getClient().getId(),
- cancelledPayment.getOrganization().getId()));
- cancelledNotPaidWriteOffAmount =
cancelledNotPaidWriteOffAmount.add(getConvertedAmt(
- cancelledPayment.getWriteoffAmount(),
cancelledPayment.getCurrency().getId(),
- strCurrencyTo,
cancelledPayment.getSettlementCancelled().getAccountingDate(),
- cancelledPayment.getClient().getId(),
cancelledPayment.getOrganization().getId()));
+ BigDecimal paymentCancelledAmt =
getConvertedAmt(cancelledPayment.getAmount(),
+ cancelledPayment.getCurrency().getId(), strCurrencyTo,
cancelledPayment
+ .getSettlementCancelled().getAccountingDate(),
cancelledPayment.getClient()
+ .getId(), cancelledPayment.getOrganization().getId());
+ cancelledNotPaidAmount = cancelledNotPaidAmount
+ .add(payment.isReceipt() == cancelledPayment.isReceipt() ?
paymentCancelledAmt
+ : paymentCancelledAmt.negate());
+ BigDecimal paymentCancelledWOAmt =
getConvertedAmt(cancelledPayment.getWriteoffAmount(),
+ cancelledPayment.getCurrency().getId(), strCurrencyTo,
cancelledPayment
+ .getSettlementCancelled().getAccountingDate(),
cancelledPayment.getClient()
+ .getId(), cancelledPayment.getOrganization().getId());
+ cancelledNotPaidWriteOffAmount = cancelledNotPaidWriteOffAmount
+ .add(payment.isReceipt() == cancelledPayment.isReceipt() ?
paymentCancelledWOAmt
+ : paymentCancelledWOAmt.negate());
+
}
}
+ if (cancelledNotPaidAmount.compareTo(BigDecimal.ZERO) == 0)
+ // The sum of all canceled not paid payments in the settlement is
zero. This means that the
+ // payment has been paid completely, as it was canceled with some
other pending payments
+ // (for example, the ones comming from a credit memo)
+ return getConvertedAmt(payment.getAmount().multiply(multiplier),
payment.getCurrency()
+ .getId(), strCurrencyTo, conversionDate,
payment.getClient().getId(), payment
+ .getOrganization().getId());
List<DebtPayment> generatedPayments = payment.getSettlementCancelled()
.getFinancialMgmtDebtPaymentCSettlementGenerateIDList();
if (generatedPayments == null || generatedPayments.size() == 0)
@@ -246,7 +277,9 @@
generatedPaymentOverdueAmount =
calculateOverdueAmount(generatedPayment, strCurrencyTo,
generatedPayment.getSettlementGenerate().getAccountingDate(),
payment.getAmount()
.divide(cancelledNotPaidAmount, 1000,
BigDecimal.ROUND_HALF_UP));
- overdueAmount = overdueAmount.add(generatedPaymentOverdueAmount);
+ overdueAmount = overdueAmount
+ .add(payment.isReceipt() == generatedPayment.isReceipt() ?
generatedPaymentOverdueAmount
+ : generatedPaymentOverdueAmount.negate());
}
}
return overdueAmount;
------------------------------------------------------------------------------
BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
Learn about the latest advances in developing for the
BlackBerry® mobile platform with sessions, labs & more.
See new tools and technologies. Register for BlackBerry® DevCon today!
http://p.sf.net/sfu/rim-devcon-copy1
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits