@Override protected JSONObject execute(Map<String, Object> parameters, String data) { JSONObject result = new JSONObject(); JSONObject errorMessage = new JSONObject(); OBContext.setAdminMode(true); try { final JSONObject jsonData = new JSONObject(data); boolean isReceipt = "true".equals(jsonData.getString("issotrx")); String strFinFinancialAccountId = jsonData.getString("finFinancialAccount"); FIN_FinancialAccount finFinancialAccount = OBDal.getInstance().get(FIN_FinancialAccount.class, strFinFinancialAccountId); String strBusinessPartnerId = null; if (jsonData.get("receivedFrom") != JSONObject.NULL) { strBusinessPartnerId = jsonData.getString("receivedFrom"); BusinessPartner businessPartner = OBDal.getInstance().get(BusinessPartner.class, strBusinessPartnerId); if (FIN_Utility.isBlockedBusinessPartner(businessPartner.getId(), isReceipt, 4)) { String strThebusinessPartner = OBMessageUtils.parseTranslation("@ThebusinessPartner@"); String strBusinessPartnerBlocked = OBMessageUtils.parseTranslation("@BusinessPartnerBlocked@"); errorMessage.put("severity", "error"); errorMessage.put("title", "Error"); errorMessage.put( "text", strThebusinessPartner + " " + businessPartner.getName() + " " + strBusinessPartnerBlocked); result.put("message", errorMessage); return result; } } else { JSONArray selectedPSDs = jsonData.getJSONArray("selectedRecords"); for (int i = 0; i < selectedPSDs.length(); i++) { JSONObject psdRow = selectedPSDs.getJSONObject(i); strBusinessPartnerId = psdRow.getString("businessPartner"); BusinessPartner businessPartner = OBDal.getInstance().get(BusinessPartner.class, strBusinessPartnerId); if (FIN_Utility.isBlockedBusinessPartner(businessPartner.getId(), isReceipt, 4)) { String strThebusinessPartner = OBMessageUtils.parseTranslation("@ThebusinessPartner@"); String strBusinessPartnerBlocked = OBMessageUtils.parseTranslation("@BusinessPartnerBlocked@"); errorMessage.put("severity", "error"); errorMessage.put("title", "Error"); errorMessage.put( "text", strThebusinessPartner + " " + businessPartner.getName() + " " + strBusinessPartnerBlocked); result.put("message", errorMessage); return result; } } } String message = "Ok"; errorMessage.put("severity", "success"); errorMessage.put("text", message); result.put("message", errorMessage); result.put("writeofflimit", finFinancialAccount.getWriteofflimit()); } catch (Exception e) { OBDal.getInstance().rollbackAndClose(); log.error(e.getMessage(), e); try { Throwable ex = DbUtility.getUnderlyingSQLException(e); String message = OBMessageUtils.translateError(ex.getMessage()).getMessage(); errorMessage = new JSONObject(); errorMessage.put("severity", "error"); errorMessage.put("title", "Error"); errorMessage.put("text", message); result.put("message", errorMessage); } catch (Exception e2) { log.error(e.getMessage(), e2); // do nothing, give up } } finally { OBContext.restorePreviousMode(); } return result; }