details: https://code.openbravo.com/erp/devel/pi/rev/bcfa910662a2
changeset: 18551:bcfa910662a2
user: Pandeeswari Ramakrishnan <pandeeswari.ramakrishnan <at>
openbravo.com>
date: Wed Nov 14 12:05:51 2012 +0100
summary: Fixes Issue 22133: Error while creating payment using business
partner's credit
diffstat:
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
| 121 +++++----
1 files changed, 70 insertions(+), 51 deletions(-)
diffs (157 lines):
diff -r ee6d1fc1ea73 -r bcfa910662a2
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
Wed Nov 14 16:59:38 2012 +0100
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
Wed Nov 14 12:05:51 2012 +0100
@@ -62,6 +62,7 @@
import org.openbravo.model.financialmgmt.payment.FIN_PaymentMethod;
import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail;
import org.openbravo.model.financialmgmt.payment.FinAccPaymentMethod;
+import org.openbravo.model.pricing.pricelist.PriceList;
import org.openbravo.service.db.CallStoredProcedure;
import org.openbravo.xmlEngine.XmlDocument;
@@ -170,6 +171,7 @@
String strOrgId = vars.getRequiredStringParameter("inpadOrgId");
String strDifferenceAction = "";
String strDifference = vars.getNumericParameter("inpDifference", "0");
+ boolean isUseCredit =
vars.getStringParameter("inpUseCredit").equals("Y");
BigDecimal refundAmount = BigDecimal.ZERO;
if (!strDifference.equals("0")) {
refundAmount = new BigDecimal(strDifference);
@@ -182,69 +184,86 @@
"1"));
BigDecimal convertedAmount = new
BigDecimal(vars.getRequiredNumericParameter(
"inpActualConverted", strPaymentAmount));
+ BusinessPartner businessPartner =
OBDal.getInstance().get(BusinessPartner.class,
+ strReceivedFromId);
+ PriceList priceList = isReceipt ? businessPartner.getPriceList() :
businessPartner
+ .getPurchasePricelist();
OBError message = null;
// FIXME: added to access the FIN_PaymentSchedule and
FIN_PaymentScheduleDetail tables to be
// removed when new security implementation is done
OBContext.setAdminMode();
try {
+ if (isUseCredit
+ && !paymentCurrencyId
+ .equals((priceList != null) ? priceList.getCurrency().getId()
: "")) {
+ String errorMsg = String.format(
+ Utility.parseTranslation(this, vars, vars.getLanguage(),
"@APRM_CreditCurrency@"),
+ priceList != null ? priceList.getCurrency().getISOCode() :
Utility.parseTranslation(
+ this, vars, vars.getLanguage(),
"@APRM_CreditNoPricelistCurrency@"));
+ message = new OBError();
+ message.setType("Error");
+ message.setTitle("Error");
+ message.setMessage(errorMsg);
+ } else {
- List<FIN_PaymentScheduleDetail> selectedPaymentDetails =
FIN_Utility.getOBObjectList(
- FIN_PaymentScheduleDetail.class,
strSelectedScheduledPaymentDetailIds);
- HashMap<String, BigDecimal> selectedPaymentDetailAmounts =
FIN_AddPayment
- .getSelectedPaymentDetailsAndAmount(vars, selectedPaymentDetails);
+ List<FIN_PaymentScheduleDetail> selectedPaymentDetails =
FIN_Utility.getOBObjectList(
+ FIN_PaymentScheduleDetail.class,
strSelectedScheduledPaymentDetailIds);
+ HashMap<String, BigDecimal> selectedPaymentDetailAmounts =
FIN_AddPayment
+ .getSelectedPaymentDetailsAndAmount(vars,
selectedPaymentDetails);
- final List<Object> parameters = new ArrayList<Object>();
- parameters.add(vars.getClient());
- parameters.add(strOrgId);
- parameters.add((isReceipt ? "ARR" : "APP"));
- // parameters.add(null);
- String strDocTypeId = (String)
CallStoredProcedure.getInstance().call("AD_GET_DOCTYPE",
- parameters, null);
+ final List<Object> parameters = new ArrayList<Object>();
+ parameters.add(vars.getClient());
+ parameters.add(strOrgId);
+ parameters.add((isReceipt ? "ARR" : "APP"));
+ // parameters.add(null);
+ String strDocTypeId = (String)
CallStoredProcedure.getInstance().call("AD_GET_DOCTYPE",
+ parameters, null);
- if (strPaymentDocumentNo.startsWith("<")) {
- // get DocumentNo
- strPaymentDocumentNo = Utility.getDocumentNo(this, vars,
"AddPaymentFromInvoice",
- "FIN_Payment", strDocTypeId, strDocTypeId, false, true);
- }
+ if (strPaymentDocumentNo.startsWith("<")) {
+ // get DocumentNo
+ strPaymentDocumentNo = Utility.getDocumentNo(this, vars,
"AddPaymentFromInvoice",
+ "FIN_Payment", strDocTypeId, strDocTypeId, false, true);
+ }
- FIN_Payment payment = FIN_AddPayment.savePayment(null, isReceipt,
- dao.getObject(DocumentType.class, strDocTypeId),
strPaymentDocumentNo,
- dao.getObject(BusinessPartner.class, strReceivedFromId),
- dao.getObject(FIN_PaymentMethod.class, strPaymentMethodId),
- dao.getObject(FIN_FinancialAccount.class, strFinancialAccountId),
strPaymentAmount,
- FIN_Utility.getDate(strPaymentDate),
dao.getObject(Organization.class, strOrgId),
- strReferenceNo, selectedPaymentDetails,
selectedPaymentDetailAmounts,
- strDifferenceAction.equals("writeoff"),
strDifferenceAction.equals("refund"),
- dao.getObject(Currency.class, paymentCurrencyId), exchangeRate,
convertedAmount);
+ FIN_Payment payment = FIN_AddPayment.savePayment(null, isReceipt,
+ dao.getObject(DocumentType.class, strDocTypeId),
strPaymentDocumentNo,
+ dao.getObject(BusinessPartner.class, strReceivedFromId),
+ dao.getObject(FIN_PaymentMethod.class, strPaymentMethodId),
+ dao.getObject(FIN_FinancialAccount.class,
strFinancialAccountId), strPaymentAmount,
+ FIN_Utility.getDate(strPaymentDate),
dao.getObject(Organization.class, strOrgId),
+ strReferenceNo, selectedPaymentDetails,
selectedPaymentDetailAmounts,
+ strDifferenceAction.equals("writeoff"),
strDifferenceAction.equals("refund"),
+ dao.getObject(Currency.class, paymentCurrencyId), exchangeRate,
convertedAmount);
- if (strAction.equals("PRP") || strAction.equals("PPP") ||
strAction.equals("PRD")
- || strAction.equals("PPW")) {
+ if (strAction.equals("PRP") || strAction.equals("PPP") ||
strAction.equals("PRD")
+ || strAction.equals("PPW")) {
- message = FIN_AddPayment.processPayment(vars, this,
- (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" :
"D", payment);
- String strNewPaymentMessage = Utility.parseTranslation(this, vars,
vars.getLanguage(),
- "@PaymentCreated@" + " " + payment.getDocumentNo()) + ".";
- message.setMessage(strNewPaymentMessage + " " +
message.getMessage());
- if (strDifferenceAction.equals("refund")) {
- Boolean newPayment = !payment.getFINPaymentDetailList().isEmpty();
- FIN_Payment refundPayment =
FIN_AddPayment.createRefundPayment(this, vars, payment,
- refundAmount.negate(), exchangeRate);
- OBError auxMessage = FIN_AddPayment.processPayment(vars, this,
- (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" :
"D", refundPayment);
- if (newPayment) {
- final String strNewRefundPaymentMessage = Utility
- .parseTranslation(this, vars, vars.getLanguage(),
"@APRM_RefundPayment@" + ": "
- + refundPayment.getDocumentNo())
- + ".";
- message.setMessage(strNewRefundPaymentMessage + " " +
message.getMessage());
- if (payment.getGeneratedCredit().compareTo(BigDecimal.ZERO) !=
0) {
- payment
- .setDescription(payment.getDescription() +
strNewRefundPaymentMessage + "\n");
- OBDal.getInstance().save(payment);
- OBDal.getInstance().flush();
+ message = FIN_AddPayment.processPayment(vars, this,
+ (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" :
"D", payment);
+ String strNewPaymentMessage = Utility.parseTranslation(this, vars,
vars.getLanguage(),
+ "@PaymentCreated@" + " " + payment.getDocumentNo()) + ".";
+ message.setMessage(strNewPaymentMessage + " " +
message.getMessage());
+ if (strDifferenceAction.equals("refund")) {
+ Boolean newPayment =
!payment.getFINPaymentDetailList().isEmpty();
+ FIN_Payment refundPayment =
FIN_AddPayment.createRefundPayment(this, vars, payment,
+ refundAmount.negate(), exchangeRate);
+ OBError auxMessage = FIN_AddPayment.processPayment(vars, this,
+ (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" :
"D", refundPayment);
+ if (newPayment) {
+ final String strNewRefundPaymentMessage =
Utility.parseTranslation(this, vars,
+ vars.getLanguage(),
+ "@APRM_RefundPayment@" + ": " +
refundPayment.getDocumentNo())
+ + ".";
+ message.setMessage(strNewRefundPaymentMessage + " " +
message.getMessage());
+ if (payment.getGeneratedCredit().compareTo(BigDecimal.ZERO) !=
0) {
+ payment.setDescription(payment.getDescription() +
strNewRefundPaymentMessage
+ + "\n");
+ OBDal.getInstance().save(payment);
+ OBDal.getInstance().flush();
+ }
+ } else {
+ message = auxMessage;
}
- } else {
- message = auxMessage;
}
}
}
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits