details: https://code.openbravo.com/erp/devel/pi/rev/0520348593b2
changeset: 13481:0520348593b2
user: Mikel Irurita <mikel.irurita <at> openbravo.com>
date: Tue Aug 09 11:44:11 2011 +0200
summary: Fixes issue 18196: Wrong deposited amount in Financial Account when
refunding credit memo
diffstat:
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
| 2 +-
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
| 2 +-
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
| 2 +-
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java
| 15 ++++++----
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java
| 8 +++++
5 files changed, 20 insertions(+), 9 deletions(-)
diffs (93 lines):
diff -r 34f2911c23a2 -r 0520348593b2
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
Tue Aug 09 11:36:49 2011 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
Tue Aug 09 11:44:11 2011 +0200
@@ -176,7 +176,7 @@
if (strDifferenceAction.equals("refund")) {
Boolean newPayment =
!payment.getFINPaymentDetailList().isEmpty();
FIN_Payment refundPayment =
FIN_AddPayment.createRefundPayment(this, vars, payment,
- refundAmount.negate());
+ refundAmount.negate(), exchangeRate);
OBError auxMessage = FIN_AddPayment.processPayment(vars, this,
(strAction.equals("PRP") || strAction.equals("PPP")) ? "P" :
"D", refundPayment);
if (newPayment) {
diff -r 34f2911c23a2 -r 0520348593b2
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
Tue Aug 09 11:36:49 2011 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
Tue Aug 09 11:44:11 2011 +0200
@@ -228,7 +228,7 @@
if (strDifferenceAction.equals("refund")) {
Boolean newPayment =
!payment.getFINPaymentDetailList().isEmpty();
FIN_Payment refundPayment =
FIN_AddPayment.createRefundPayment(this, vars, payment,
- refundAmount.negate());
+ refundAmount.negate(), exchangeRate);
OBError auxMessage = FIN_AddPayment.processPayment(vars, this,
(strAction.equals("PRP") || strAction.equals("PPP")) ? "P" :
"D", refundPayment);
if (newPayment) {
diff -r 34f2911c23a2 -r 0520348593b2
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
Tue Aug 09 11:36:49 2011 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
Tue Aug 09 11:44:11 2011 +0200
@@ -256,7 +256,7 @@
if (strDifferenceAction.equals("refund")) {
Boolean newPayment = !payment.getFINPaymentDetailList().isEmpty();
FIN_Payment refundPayment =
FIN_AddPayment.createRefundPayment(this, vars, payment,
- refundAmount.negate());
+ refundAmount.negate(), exchangeRate);
OBError auxMessage = FIN_AddPayment.processPayment(vars, this,
(strAction.equals("PRP") || strAction.equals("PPP")) ? "P" :
"D", refundPayment);
if (newPayment) {
diff -r 34f2911c23a2 -r 0520348593b2
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java
Tue Aug 09 11:36:49 2011 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java
Tue Aug 09 11:44:11 2011 +0200
@@ -26,6 +26,7 @@
import java.util.List;
import org.hibernate.criterion.Restrictions;
+import org.openbravo.advpaymentmngt.utility.FIN_Utility;
import org.openbravo.base.exception.OBException;
import org.openbravo.base.provider.OBProvider;
import org.openbravo.base.secureApp.VariablesSecureApp;
@@ -109,12 +110,14 @@
payment.getDescription().length() > 254 ? 254 :
payment.getDescription().length()));
newTransaction.setClient(payment.getClient());
newTransaction.setLineNo(getTransactionMaxLineNo(payment.getAccount()) +
10);
- newTransaction
-
.setDepositAmount(payment.getDocumentType().getDocumentCategory().equals("ARR")
? payment
- .getFinancialTransactionAmount() : BigDecimal.ZERO);
- newTransaction
-
.setPaymentAmount(payment.getDocumentType().getDocumentCategory().equals("ARR")
? BigDecimal.ZERO
- : payment.getFinancialTransactionAmount());
+
+ BigDecimal depositAmt =
FIN_Utility.getDepositAmount(payment.getDocumentType()
+ .getDocumentCategory().equals("ARR"),
payment.getFinancialTransactionAmount());
+ BigDecimal paymentAmt =
FIN_Utility.getPaymentAmount(payment.getDocumentType()
+ .getDocumentCategory().equals("ARR"),
payment.getFinancialTransactionAmount());
+
+ newTransaction.setDepositAmount(depositAmt);
+ newTransaction.setPaymentAmount(paymentAmt);
newTransaction.setStatus(newTransaction.getDepositAmount().compareTo(
newTransaction.getPaymentAmount()) > 0 ? "RPR" : "PPM");
if (!newTransaction.getCurrency().equals(payment.getCurrency())) {
diff -r 34f2911c23a2 -r 0520348593b2
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java
Tue Aug 09 11:36:49 2011 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java
Tue Aug 09 11:44:11 2011 +0200
@@ -227,6 +227,12 @@
public static FIN_Payment createRefundPayment(ConnectionProvider conProvider,
VariablesSecureApp vars, FIN_Payment payment, BigDecimal refundAmount) {
+ return createRefundPayment(conProvider, vars, payment, refundAmount, null);
+ }
+
+ public static FIN_Payment createRefundPayment(ConnectionProvider conProvider,
+ VariablesSecureApp vars, FIN_Payment payment, BigDecimal refundAmount,
+ BigDecimal conversionRate) {
dao = new AdvPaymentMngtDao();
FIN_Payment refundPayment;
if (payment.getFINPaymentDetailList().isEmpty())
@@ -249,6 +255,8 @@
refundPayment.setAmount(refundAmount);
refundPayment.setUsedCredit(refundAmount.negate());
+ setFinancialTransactionAmountAndRate(refundPayment, conversionRate, null);
+
FIN_PaymentScheduleDetail refundScheduleDetail =
dao.getNewPaymentScheduleDetail(
payment.getOrganization(), refundAmount);
dao.getNewPaymentDetail(refundPayment, refundScheduleDetail, refundAmount,
BigDecimal.ZERO,
------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model
configuration take the hassle out of deploying and managing Subversion and
the tools developers use with it. Learn more about uberSVN and get a free
download at: http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits