details:   https://code.openbravo.com/erp/devel/pi/rev/4e97236ce97e
changeset: 17816:4e97236ce97e
user:      David Miguelez <david.miguelez <at> openbravo.com>
date:      Fri Aug 31 08:32:49 2012 +0200
summary:   Fixes issue 21521: Shows warning message when different Payment 
Method.

diffstat:

 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/PaymentProposalPickEditLines.java
 |  31 ++++++++-
 1 files changed, 26 insertions(+), 5 deletions(-)

diffs (91 lines):

diff -r e364b1c3d2d7 -r 4e97236ce97e 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/PaymentProposalPickEditLines.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/PaymentProposalPickEditLines.java
     Fri Aug 31 11:08:22 2012 +0200
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/PaymentProposalPickEditLines.java
     Fri Aug 31 08:32:49 2012 +0200
@@ -20,6 +20,7 @@
 package org.openbravo.advpaymentmngt.actionHandler;
 
 import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.log4j.Logger;
@@ -34,6 +35,7 @@
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.erpCommon.utility.OBMessageUtils;
+import org.openbravo.model.financialmgmt.payment.FIN_PaymentMethod;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentPropDetail;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentProposal;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail;
@@ -57,14 +59,22 @@
       final String strPaymentProposalId = 
jsonRequest.getString("Fin_Payment_Proposal_ID");
       FIN_PaymentProposal paymentProposal = 
OBDal.getInstance().get(FIN_PaymentProposal.class,
           strPaymentProposalId);
+      final String strPaymentMethodId = 
jsonRequest.getString("inpfinPaymentmethodId");
+      FIN_PaymentMethod paymentMethod = 
OBDal.getInstance().get(FIN_PaymentMethod.class,
+          strPaymentMethodId);
 
       if (cleanPaymentProposalDetails(paymentProposal)) {
-        int cont = createPaymentProposalDetails(jsonRequest);
+        HashMap<String, String> map = 
createPaymentProposalDetails(jsonRequest, paymentMethod);
         jsonRequest = new JSONObject();
 
         JSONObject errorMessage = new JSONObject();
         errorMessage.put("severity", "success");
         errorMessage.put("text", OBMessageUtils.messageBD("Success"));
+        if (map.get("DifferentPaymentMethod").equals("true")) {
+          errorMessage.put("severity", "warning");
+          errorMessage.put("text",
+              
OBMessageUtils.messageBD("APRM_Different_PaymentMethod_Selected"));
+        }
         jsonRequest.put("message", errorMessage);
       }
 
@@ -110,25 +120,34 @@
     return true;
   }
 
-  private int createPaymentProposalDetails(JSONObject jsonRequest) throws 
JSONException,
-      OBException {
+  private HashMap<String, String> createPaymentProposalDetails(JSONObject 
jsonRequest,
+      FIN_PaymentMethod paymentMethod) throws JSONException, OBException {
 
+    HashMap<String, String> map = new HashMap<String, String>();
+    map.put("DifferentPaymentMethod", "false");
+    map.put("Count", "0");
     JSONArray selectedLines = jsonRequest.getJSONArray("_selection");
     // if no lines selected don't do anything.
     if (selectedLines.length() == 0) {
-      return 0;
+      return map;
     }
     final String strPaymentProposalId = 
jsonRequest.getString("Fin_Payment_Proposal_ID");
     FIN_PaymentProposal paymentProposal = 
OBDal.getInstance().get(FIN_PaymentProposal.class,
         strPaymentProposalId);
     BigDecimal totalAmount = BigDecimal.ZERO, totalWriteOff = BigDecimal.ZERO;
     int cont = 0;
+    String differentPaymentMethod = "false";
     for (int i = 0; i < selectedLines.length(); i++) {
       JSONObject selectedLine = selectedLines.getJSONObject((int) i);
       log.debug(selectedLine);
       BigDecimal paidAmount = new 
BigDecimal(selectedLine.getString("payment"));
 
       if (paidAmount.compareTo(BigDecimal.ZERO) != 0) {
+        FIN_PaymentMethod linePaymentMethod = 
OBDal.getInstance().get(FIN_PaymentMethod.class,
+            selectedLine.getString("paymentMethod"));
+        if (!paymentMethod.equals(linePaymentMethod)) {
+          differentPaymentMethod = "true";
+        }
         FIN_PaymentPropDetail newPPD = 
OBProvider.getInstance().get(FIN_PaymentPropDetail.class);
         newPPD.setOrganization(paymentProposal.getOrganization());
         newPPD.setClient(paymentProposal.getClient());
@@ -156,6 +175,8 @@
     paymentProposal.setAmount(totalAmount);
     paymentProposal.setWriteoffAmount(totalWriteOff);
     OBDal.getInstance().save(paymentProposal);
-    return cont;
+    map.put("DifferentPaymentMethod", differentPaymentMethod);
+    map.put("Count", Integer.toString(cont));
+    return map;
   }
 }

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to