details:   https://code.openbravo.com/erp/devel/pi/rev/548bfa48bd30
changeset: 22792:548bfa48bd30
user:      Pandeeswari Ramakrishnan <pandeeswari.ramakrishnan <at> 
openbravo.com>
date:      Sun Mar 30 18:36:39 2014 +0530
summary:   Fixes Issue 26073: When a payment is processed, even if the process 
fails, the ProcessBundle returns 'success'

diffstat:

 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
 |  44 +++++----
 1 files changed, 26 insertions(+), 18 deletions(-)

diffs (82 lines):

diff -r 8b34f091bb95 -r 548bfa48bd30 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
     Fri Mar 28 03:44:06 2014 +0000
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
     Sun Mar 30 18:36:39 2014 +0530
@@ -39,7 +39,6 @@
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.database.ConnectionProvider;
-import org.openbravo.erpCommon.utility.OBDateUtils;
 import org.openbravo.erpCommon.utility.OBError;
 import org.openbravo.erpCommon.utility.OBMessageUtils;
 import org.openbravo.erpCommon.utility.Utility;
@@ -154,18 +153,15 @@
 
         boolean orgLegalWithAccounting = 
FIN_Utility.periodControlOpened(payment.TABLE_NAME,
             payment.getId(), payment.TABLE_NAME + "_ID", "LE");
-        if (!FIN_Utility.isPeriodOpen(payment.getClient().getId(), 
payment.getDocumentType()
-            .getDocumentCategory(), payment.getOrganization().getId(), 
OBDateUtils
-            .formatDate(payment.getPaymentDate()))
-            && orgLegalWithAccounting) {
-          msg.setType("Error");
-          msg.setTitle(Utility.messageBD(conProvider, "Error", language));
-          msg.setMessage(Utility.parseTranslation(conProvider, vars, language,
-              "@PeriodNotAvailable@"));
-          bundle.setResult(msg);
-          OBDal.getInstance().rollbackAndClose();
-          return;
-        }
+        /*
+         * if (!FIN_Utility.isPeriodOpen(payment.getClient().getId(), 
payment.getDocumentType()
+         * .getDocumentCategory(), payment.getOrganization().getId(), 
OBDateUtils
+         * .formatDate(payment.getPaymentDate())) && orgLegalWithAccounting) { 
msg.setType("Error");
+         * msg.setTitle(Utility.messageBD(conProvider, "Error", language));
+         * msg.setMessage(Utility.parseTranslation(conProvider, vars, language,
+         * "@PeriodNotAvailable@")); bundle.setResult(msg); 
OBDal.getInstance().rollbackAndClose();
+         * return; }
+         */
         Set<String> documentOrganizations = OBContext.getOBContext()
             .getOrganizationStructureProvider(payment.getClient().getId())
             .getNaturalTree(payment.getOrganization().getId());
@@ -429,8 +425,15 @@
             payment.setStatus(isReceipt ? "RPR" : "PPM");
 
             if ((strAction.equals("D") || 
FIN_Utility.isAutomaticDepositWithdrawn(payment))
-                && payment.getAmount().compareTo(BigDecimal.ZERO) != 0)
-              triggerAutomaticFinancialAccountTransaction(vars, conProvider, 
payment);
+                && payment.getAmount().compareTo(BigDecimal.ZERO) != 0) {
+              OBError result = 
triggerAutomaticFinancialAccountTransaction(vars, conProvider,
+                  payment);
+              if ("Error".equals(result.getType())) {
+                OBDal.getInstance().rollbackAndClose();
+                bundle.setResult(result);
+                return;
+              }
+            }
           }
           if (!payment.getAccount().getCurrency().equals(payment.getCurrency())
               && getConversionRateDocument(payment).size() == 0) {
@@ -1172,16 +1175,21 @@
     updateCustomerCredit(businessPartner, amount, false);
   }
 
-  private void triggerAutomaticFinancialAccountTransaction(VariablesSecureApp 
vars,
+  private OBError 
triggerAutomaticFinancialAccountTransaction(VariablesSecureApp vars,
       ConnectionProvider connectionProvider, FIN_Payment payment) {
     FIN_FinaccTransaction transaction = 
TransactionsDao.createFinAccTransaction(payment);
     try {
-      processTransaction(vars, connectionProvider, "P", transaction);
+      return processTransaction(vars, connectionProvider, "P", transaction);
+
     } catch (Exception e) {
       OBDal.getInstance().rollbackAndClose();
       e.printStackTrace(System.err);
+      OBError msg = new OBError();
+      msg.setType("Error");
+      msg.setMessage(e.getMessage());
+      msg.setTitle(e.getMessage());
+      return msg;
     }
-    return;
   }
 
   private static boolean hasTransaction(FIN_Payment payment) {

------------------------------------------------------------------------------
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to