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