details: https://code.openbravo.com/erp/devel/pi/rev/2674db04cea8
changeset: 20209:2674db04cea8
user: David Miguelez <david.miguelez <at> openbravo.com>
date: Thu Apr 25 13:24:22 2013 +0200
summary: Fixes Issue 23216: Fixes the getBalance method in
DocFINFinAccTransaction.
diffstat:
src/org/openbravo/erpCommon/ad_forms/DocFINFinAccTransaction.java | 38
++++++---
1 files changed, 23 insertions(+), 15 deletions(-)
diffs (50 lines):
diff -r f74f6987c503 -r 2674db04cea8
src/org/openbravo/erpCommon/ad_forms/DocFINFinAccTransaction.java
--- a/src/org/openbravo/erpCommon/ad_forms/DocFINFinAccTransaction.java Thu Apr
25 12:23:10 2013 +0200
+++ b/src/org/openbravo/erpCommon/ad_forms/DocFINFinAccTransaction.java Thu Apr
25 13:24:22 2013 +0200
@@ -715,23 +715,31 @@
sb.append(retValue);
FIN_Payment payment = OBDal.getInstance().get(FIN_FinaccTransaction.class,
Record_ID)
.getFinPayment();
+ if (payment != null) {
+ retValue = retValue.add(payment.isReceipt() ?
payment.getWriteoffAmount() : payment
+ .getWriteoffAmount().negate());
+ }
// - Lines
- for (int i = 0; i < p_lines.length; i++) {
- if (payment == null) {
- BigDecimal lineBalance = new BigDecimal(
- ((DocLine_FINFinAccTransaction) p_lines[i]).DepositAmount);
- lineBalance = lineBalance.subtract(new BigDecimal(
- ((DocLine_FINFinAccTransaction) p_lines[i]).PaymentAmount));
- retValue = retValue.subtract(lineBalance);
- } else {
- BigDecimal lineBalance = payment.isReceipt() ? new BigDecimal(
- ((DocLine_FINFinAccTransaction) p_lines[i]).getAmount()) : new
BigDecimal(
- ((DocLine_FINFinAccTransaction) p_lines[i]).getAmount()).negate();
- BigDecimal lineWriteoff = payment.isReceipt() ? new BigDecimal(
- ((DocLine_FINFinAccTransaction) p_lines[i]).getWriteOffAmt()) :
new BigDecimal(
- ((DocLine_FINFinAccTransaction)
p_lines[i]).getWriteOffAmt()).negate();
- retValue = retValue.subtract(lineBalance).subtract(lineWriteoff);
+ OBContext.setAdminMode(false);
+ try {
+ for (int i = 0; i < p_lines.length; i++) {
+ if (payment == null) {
+ BigDecimal lineBalance = new BigDecimal(
+ ((DocLine_FINFinAccTransaction) p_lines[i]).DepositAmount);
+ lineBalance = lineBalance.subtract(new BigDecimal(
+ ((DocLine_FINFinAccTransaction) p_lines[i]).PaymentAmount));
+ retValue = retValue.subtract(lineBalance);
+ } else {
+ BigDecimal lineBalance = BigDecimal.ZERO;
+ for (FIN_PaymentDetail pd : payment.getFINPaymentDetailList()) {
+ lineBalance = lineBalance.add(payment.isReceipt() ?
pd.getAmount().add(
+ pd.getWriteoffAmount()) :
pd.getAmount().add(pd.getWriteoffAmount()).negate());
+ }
+ retValue = retValue.subtract(lineBalance);
+ }
}
+ } finally {
+ OBContext.restorePreviousMode();
}
sb.append("]");
//
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits