details: https://code.openbravo.com/erp/devel/pi/rev/6ce7b150e9e2 changeset: 34945:6ce7b150e9e2 user: Eduardo Argal Guibert <eduardo.argal <at> openbravo.com> date: Wed Nov 07 08:22:46 2018 +0100 summary: Fixed issue 39070 Adds After Process Hook
diffstat: modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddMultiplePaymentsHandler.java | 36 ++++++++- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddMultiplePaymentsProcessAfterProcessHook.java | 31 ++++++++ 2 files changed, 63 insertions(+), 4 deletions(-) diffs (104 lines): diff -r 98b93929cdd3 -r 6ce7b150e9e2 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddMultiplePaymentsHandler.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddMultiplePaymentsHandler.java Tue Oct 16 15:54:26 2018 +0200 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddMultiplePaymentsHandler.java Wed Nov 07 08:22:46 2018 +0100 @@ -19,9 +19,17 @@ package org.openbravo.advpaymentmngt.actionHandler; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; +import java.util.List; import java.util.Map; +import javax.enterprise.inject.Any; +import javax.enterprise.inject.Instance; +import javax.inject.Inject; + import org.apache.log4j.Logger; import org.codehaus.jettison.json.JSONArray; import org.codehaus.jettison.json.JSONException; @@ -42,6 +50,9 @@ private static final Logger log = Logger.getLogger(AddMultiplePaymentsHandler.class); private static final SimpleDateFormat jsDateFormat = JsonUtils.createDateFormat(); private static final String ACTION_PROCESS_TRANSACTION = "P"; + @Inject + @Any + private Instance<AddMultiplePaymentsProcessAfterProcessHook> afterHooks; @Override protected JSONObject doExecute(Map<String, Object> parameters, String data) { @@ -56,16 +67,33 @@ final String strAccountId = jsonData.getString("Fin_Financial_Account_ID"); int selectedPaymentsLength = selectedPayments.length(); - if (selectedPaymentsLength == 0) { - // Validation error: No lines selected - return getErrorMessage(OBMessageUtils.messageBD("APRM_NO_PAYMENTS_SELECTED")); - } for (int i = 0; i < selectedPaymentsLength; i++) { final JSONObject paymentJS = selectedPayments.getJSONObject(i); createAndProcessTransactionFromPayment(paymentJS, statementDate, dateAcct, strAccountId); OBDal.getInstance().getSession().clear(); } + + List<AddMultiplePaymentsProcessAfterProcessHook> hooksPriority = new ArrayList<AddMultiplePaymentsProcessAfterProcessHook>(); + for (AddMultiplePaymentsProcessAfterProcessHook hook : afterHooks) { + hooksPriority.add(hook); + } + Collections.sort(hooksPriority, new Comparator<AddMultiplePaymentsProcessAfterProcessHook>() { + @Override + public int compare(AddMultiplePaymentsProcessAfterProcessHook o1, + AddMultiplePaymentsProcessAfterProcessHook o2) { + return (int) Math.signum(o2.getPriority() - o1.getPriority()); + } + }); + for (AddMultiplePaymentsProcessAfterProcessHook hook : hooksPriority) { + selectedPaymentsLength = selectedPaymentsLength + hook.executeHook(jsonData); + } + + if (selectedPaymentsLength == 0) { + // Validation error: No lines selected + return getErrorMessage(OBMessageUtils.messageBD("APRM_NO_PAYMENTS_SELECTED")); + } + // Success Message return getSuccessMessage(String.format( OBMessageUtils.messageBD("APRM_MULTIPLE_TRANSACTIONS_ADDED"), selectedPaymentsLength)); diff -r 98b93929cdd3 -r 6ce7b150e9e2 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddMultiplePaymentsProcessAfterProcessHook.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/AddMultiplePaymentsProcessAfterProcessHook.java Wed Nov 07 08:22:46 2018 +0100 @@ -0,0 +1,31 @@ +/* + ************************************************************************* + * The contents of this file are subject to the Openbravo Public License + * Version 1.1 (the "License"), being the Mozilla Public License + * Version 1.1 with a permitted attribution clause; you may not use this + * file except in compliance with the License. You may obtain a copy of + * the License at http://www.openbravo.com/legal/license.html + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * The Original Code is Openbravo ERP. + * The Initial Developer of the Original Code is Openbravo SLU + * All portions are Copyright (C) 2016 Openbravo SLU + * All Rights Reserved. + * Contributor(s): ______________________________________. + ************************************************************************ + */ +package org.openbravo.advpaymentmngt.actionHandler; + +import org.codehaus.jettison.json.JSONObject; + +public abstract class AddMultiplePaymentsProcessAfterProcessHook { + private int priority = 100; + + public abstract int executeHook(JSONObject data); + + public int getPriority() { + return priority; + } +} _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits