details: https://code.openbravo.com/erp/devel/main/rev/aa760ad8c7d9 changeset: 29937:aa760ad8c7d9 user: RM packaging bot <staff.rm <at> openbravo.com> date: Fri Aug 26 16:01:09 2016 +0000 summary: CI: merge back from main
details: https://code.openbravo.com/erp/devel/main/rev/d538bed5bf3b changeset: 29938:d538bed5bf3b user: Rafa Alonso <ral <at> openbravo.com> date: Sat Aug 27 12:22:15 2016 +0200 summary: Fix nextLine details: https://code.openbravo.com/erp/devel/main/rev/c68721d9831c changeset: 29939:c68721d9831c user: Rafa Alonso <ral <at> openbravo.com> date: Sat Aug 27 12:47:43 2016 +0200 summary: Backed out changeset: d538bed5bf3b, Fix nextLine. Remove rogue commit details: https://code.openbravo.com/erp/devel/main/rev/d23d4182c47a changeset: 29940:d23d4182c47a user: Atul Gaware <atul.gaware <at> openbravo.com> date: Tue Jul 05 13:54:52 2016 +0530 summary: Fixed issue 32020: [Match Several Transactions Project] Allow to match several transactions against a concrete bank statement line details: https://code.openbravo.com/erp/devel/main/rev/66e7cb68bdbe changeset: 29941:66e7cb68bdbe user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Fri Aug 26 09:49:28 2016 +0200 summary: Fixed issue 32020: code review improvements + Allow partial match for multiple transactions as we allow for single transactions + Use adminMode when necessary + Code and javadoc improvements + Improved partial match message from add transaction and find transaction + Matching level properly passed to matchBankStatementLineToTrx() method. details: https://code.openbravo.com/erp/devel/main/rev/52e64c9117f6 changeset: 29942:52e64c9117f6 user: RM packaging bot <staff.rm <at> openbravo.com> date: Mon Aug 29 11:04:15 2016 +0000 summary: CI: update AD_MODULE to version 29941 diffstat: modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml | 2 +- modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 4 +- modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml | 2 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/FindTransactionsToMatchActionHandler.java | 16 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/APRM_MatchingUtility.java | 99 ++++++++- modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-addTransaction.js | 2 +- modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-findTransaction.js | 19 +- modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.apachejdbcconnectionpool/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 8 +- modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 6 +- modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 4 +- modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 10 +- modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 4 +- modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 12 +- modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 6 +- modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.utility.cleanup.log/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 6 +- modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 24 +- modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 22 +- src-db/database/sourcedata/AD_MODULE.xml | 2 +- 51 files changed, 193 insertions(+), 121 deletions(-) diffs (truncated from 1224 to 300 lines): diff -r 322a6605eab9 -r 52e64c9117f6 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml Fri Aug 26 15:47:16 2016 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml Mon Aug 29 11:04:15 2016 +0000 @@ -1495,7 +1495,7 @@ <!--EF56DCF572A94E6CAFE4F13948268050--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> <!--EF56DCF572A94E6CAFE4F13948268050--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--EF56DCF572A94E6CAFE4F13948268050--> <VALUE><![CDATA[APRM_SplitBankStatementLineConfirm]]></VALUE> -<!--EF56DCF572A94E6CAFE4F13948268050--> <MSGTEXT><![CDATA[Bank statement line and transaction amount does not match. Do you want to perform a partial match?]]></MSGTEXT> +<!--EF56DCF572A94E6CAFE4F13948268050--> <MSGTEXT><![CDATA[Bank statement line amount [%0] and transaction amount [%1] does not match. Do you want to perform a partial match?]]></MSGTEXT> <!--EF56DCF572A94E6CAFE4F13948268050--> <MSGTYPE><![CDATA[I]]></MSGTYPE> <!--EF56DCF572A94E6CAFE4F13948268050--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> <!--EF56DCF572A94E6CAFE4F13948268050--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N> diff -r 322a6605eab9 -r 52e64c9117f6 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml Fri Aug 26 15:47:16 2016 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml Mon Aug 29 11:04:15 2016 +0000 @@ -6,7 +6,7 @@ <!--A918E3331C404B889D69AA9BFAFB23AC--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> <!--A918E3331C404B889D69AA9BFAFB23AC--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--A918E3331C404B889D69AA9BFAFB23AC--> <NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></NAME> -<!--A918E3331C404B889D69AA9BFAFB23AC--> <VERSION><![CDATA[3.0.29935]]></VERSION> +<!--A918E3331C404B889D69AA9BFAFB23AC--> <VERSION><![CDATA[3.0.29941]]></VERSION> <!--A918E3331C404B889D69AA9BFAFB23AC--> <DESCRIPTION><![CDATA[Managing your finances with an ERP does not have to be difficult. Enjoy a radically improved user experience that combines the power of an enterprise grade financial application with the simplicity and ease of a web 2.0 personal accounting service.]]></DESCRIPTION> <!--A918E3331C404B889D69AA9BFAFB23AC--> <HELP><![CDATA[Advanced Payables and Receivables Management simplifies and automates the business processes around the management of financial accounts, from the receipt and issue of payment, to the reconciliation of those events with bank statements. If you would like to help shape this module you are welcome to take part in the forum discussions or register feature requests or issues in the corresponding (Forum and Bug Tracking) sections in the Advanced Payables and Receivable project in the OB Forge.]]></HELP> diff -r 322a6605eab9 -r 52e64c9117f6 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml Fri Aug 26 15:47:16 2016 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml Mon Aug 29 11:04:15 2016 +0000 @@ -7,7 +7,7 @@ <!--89326AE95DAD449D85DFAB2C5B1C6683--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID> -<!--89326AE95DAD449D85DFAB2C5B1C6683--> <STARTVERSION><![CDATA[2.1.29935]]></STARTVERSION> +<!--89326AE95DAD449D85DFAB2C5B1C6683--> <STARTVERSION><![CDATA[2.1.29941]]></STARTVERSION> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <ISINCLUDED><![CDATA[N]]></ISINCLUDED> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <DEPENDANT_MODULE_NAME><![CDATA[User Interface Selector]]></DEPENDANT_MODULE_NAME> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT> @@ -21,7 +21,7 @@ <!--B97FC854C6DD41E692161585645A900F--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--B97FC854C6DD41E692161585645A900F--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> <!--B97FC854C6DD41E692161585645A900F--> <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID> -<!--B97FC854C6DD41E692161585645A900F--> <STARTVERSION><![CDATA[3.0.29935]]></STARTVERSION> +<!--B97FC854C6DD41E692161585645A900F--> <STARTVERSION><![CDATA[3.0.29941]]></STARTVERSION> <!--B97FC854C6DD41E692161585645A900F--> <ISINCLUDED><![CDATA[N]]></ISINCLUDED> <!--B97FC854C6DD41E692161585645A900F--> <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME> <!--B97FC854C6DD41E692161585645A900F--> <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT> diff -r 322a6605eab9 -r 52e64c9117f6 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml Fri Aug 26 15:47:16 2016 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml Mon Aug 29 11:04:15 2016 +0000 @@ -609,7 +609,7 @@ <!--B6049E97C1254A1092C883EA59172013--> <EM_OBUIAPP_CAN_ADD><![CDATA[N]]></EM_OBUIAPP_CAN_ADD> <!--B6049E97C1254A1092C883EA59172013--> <EM_OBUIAPP_CAN_DELETE><![CDATA[N]]></EM_OBUIAPP_CAN_DELETE> <!--B6049E97C1254A1092C883EA59172013--> <EM_OBUIAPP_SHOW_SELECT><![CDATA[Y]]></EM_OBUIAPP_SHOW_SELECT> -<!--B6049E97C1254A1092C883EA59172013--> <EM_OBUIAPP_SELECTION_TYPE><![CDATA[S]]></EM_OBUIAPP_SELECTION_TYPE> +<!--B6049E97C1254A1092C883EA59172013--> <EM_OBUIAPP_SELECTION_TYPE><![CDATA[M]]></EM_OBUIAPP_SELECTION_TYPE> <!--B6049E97C1254A1092C883EA59172013--></AD_TAB> <!--B82C02920AA84E8DB57D553185BD2F06--><AD_TAB> diff -r 322a6605eab9 -r 52e64c9117f6 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/FindTransactionsToMatchActionHandler.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/FindTransactionsToMatchActionHandler.java Fri Aug 26 15:47:16 2016 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/actionHandler/FindTransactionsToMatchActionHandler.java Mon Aug 29 11:04:15 2016 +0000 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2014 Openbravo SLU + * All portions are Copyright (C) 2014-2016 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -19,6 +19,8 @@ package org.openbravo.advpaymentmngt.actionHandler; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import org.codehaus.jettison.json.JSONArray; @@ -29,7 +31,6 @@ import org.openbravo.dal.core.OBContext; import org.openbravo.dal.service.OBDal; import org.openbravo.model.financialmgmt.payment.FIN_BankStatementLine; -import org.openbravo.model.financialmgmt.payment.FIN_FinaccTransaction; import org.openbravo.model.financialmgmt.payment.FIN_FinancialAccount; import org.openbravo.model.financialmgmt.payment.FIN_Reconciliation; import org.openbravo.service.db.DbUtility; @@ -53,7 +54,10 @@ if (selection.length() > 0) { final String strBankLineId = params.getString("bankStatementLineId"); - final String strSelectedTransactionId = selection.getJSONObject(0).getString("id"); + final List<String> selectedTransactionIds = new ArrayList<String>(); + for (int i = 0; i < selection.length(); i++) { + selectedTransactionIds.add(selection.getJSONObject(i).getString("id")); + } final FIN_FinancialAccount account = OBDal.getInstance().get(FIN_FinancialAccount.class, jsonData.getString("inpfinFinancialAccountId")); @@ -61,10 +65,8 @@ "N"); final FIN_BankStatementLine bankStatementLine = OBDal.getInstance().get( FIN_BankStatementLine.class, strBankLineId); - final FIN_FinaccTransaction transaction = OBDal.getInstance().get( - FIN_FinaccTransaction.class, strSelectedTransactionId); - APRM_MatchingUtility.matchBankStatementLine(bankStatementLine, transaction, reconciliation, - null, true); + APRM_MatchingUtility.matchBankStatementLine(bankStatementLine, + selectedTransactionIds, reconciliation, null, true); } else { final JSONArray actions = APRM_MatchingUtility.createMessageInProcessView( diff -r 322a6605eab9 -r 52e64c9117f6 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/APRM_MatchingUtility.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/APRM_MatchingUtility.java Fri Aug 26 15:47:16 2016 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/APRM_MatchingUtility.java Mon Aug 29 11:04:15 2016 +0000 @@ -203,6 +203,48 @@ } /** + * Improved version of + * {@link APRM_MatchingUtility#matchBankStatementLine(FIN_BankStatementLine, FIN_FinaccTransaction, FIN_Reconciliation, String, boolean)} + * which can handle a list of transactions for the same bank statement line. + * + * The Bank statement line will be automatically split (and linked) as many times as transactions + * are selected. + * + * Session is cleared after every 100 transaction. + * + * @return the number of matched transactions + * + */ + public static int matchBankStatementLine(final FIN_BankStatementLine _bankStatementLine, + final List<String> transactionIds, final FIN_Reconciliation reconciliation, + final String matchLevel, boolean throwException) { + int counter = 0; + try { + OBContext.setAdminMode(true); + FIN_BankStatementLine bankStatementLine = _bankStatementLine; + for (String transactionId : transactionIds) { + if (bankStatementLine == null) { + break; + } + FIN_FinaccTransaction transaction = OBDal.getInstance().get(FIN_FinaccTransaction.class, + transactionId); + bankStatementLine = matchBankStatementLineToTrx(bankStatementLine, transaction, + reconciliation, null, true); + // Clear session every 100 transactions + if (++counter % 100 == 0) { + OBDal.getInstance().getSession().flush(); + OBDal.getInstance().getSession().clear(); + } + } + + } finally { + OBContext.restorePreviousMode(); + } + + return counter; + } + + /** * Match a bank statement line with a financial account transaction. If the bank statement has * associated a transaction, it is first unmatched and then matched against the given transaction. * @@ -210,15 +252,37 @@ * automatically split the bank statement line in two (see * {@link #splitBankStatementLine(FIN_Reconciliation, FIN_BankStatementLine, FIN_FinaccTransaction)} * + * @return If success, the method automatically flushes and returns true. In case of exceptions, + * the method will either throw the exception or return false. This behavior is controlled + * by the throwException boolean parameter * - * @return If success, the method automatically flushes. In case of exceptions, the method will - * either throw the exception or return false. This behavior is controlled by the - * throwException boolean parameter * */ public static boolean matchBankStatementLine(final FIN_BankStatementLine _bankStatementLine, final FIN_FinaccTransaction transaction, final FIN_Reconciliation reconciliation, final String matchLevel, boolean throwException) { + matchBankStatementLineToTrx(_bankStatementLine, transaction, reconciliation, matchLevel, + throwException); + return true; + } + + /** + * Match a bank statement line with a financial account transaction. If the bank statement has + * associated a transaction, it is first unmatched and then matched against the given transaction. + * + * If the bank statement line amount is different from the transaction amount, the process will + * automatically split the bank statement line in two (see + * {@link #splitBankStatementLine(FIN_Reconciliation, FIN_BankStatementLine, FIN_FinaccTransaction)} + * + * + * @return This method returns a either Bank Statement Line received from splitBankStatementLine + * for pending amount or null value + * + */ + private static FIN_BankStatementLine matchBankStatementLineToTrx( + final FIN_BankStatementLine _bankStatementLine, final FIN_FinaccTransaction transaction, + final FIN_Reconciliation reconciliation, final String matchLevel, boolean throwException) { + FIN_BankStatementLine clonedBSL = null; try { OBContext.setAdminMode(true); FIN_BankStatementLine bankStatementLine = getLockedBSL(_bankStatementLine.getId()); @@ -231,7 +295,7 @@ } // Split if necessary (bank line amount != transaction amount) - splitBankStatementLine(reconciliation, bankStatementLine, transaction); + clonedBSL = splitBankStatementLine(reconciliation, bankStatementLine, transaction); // Match the transaction bankStatementLine.setFinancialAccountTransaction(transaction); @@ -247,20 +311,19 @@ OBDal.getInstance().save(transaction); OBDal.getInstance().save(bankStatementLine); OBDal.getInstance().flush(); + + return clonedBSL; } } catch (Exception e) { log4j.error("Error during matchBankStatementLine, performing a rollback"); OBDal.getInstance().rollbackAndClose(); if (throwException) { throw new OBException(e.getMessage()); - } else { - return false; } } finally { OBContext.restorePreviousMode(); } - - return true; + return null; } private static String getMatchedDocument(FIN_FinaccTransaction transaction) { @@ -678,12 +741,15 @@ /** * Split the given bank statement line only when it does not match with the amount of the given * transaction. It will create a clone of the given bank statement line with the difference - * amount. The original bank statement line amounts will be set equal to the amounts in the + * amount. The original bank statement line amounts will be set equal to the amount in the * transaction * + * @return Clone Bank Statement Line for pending amount left after matching transaction with the + * bank statement line, or null if no split was done */ - private static void splitBankStatementLine(final FIN_Reconciliation reconciliation, - final FIN_BankStatementLine bankStatementLine, final FIN_FinaccTransaction transaction) { + private static FIN_BankStatementLine splitBankStatementLine( + final FIN_Reconciliation reconciliation, final FIN_BankStatementLine bankStatementLine, + final FIN_FinaccTransaction transaction) { try { OBContext.setAdminMode(true); if (reconciliation == null || bankStatementLine == null || transaction == null) { @@ -746,18 +812,19 @@ // Set bankstatement line amounts with the matched transaction amounts bankStatementLine.setCramount(transaction.getDepositAmount()); bankStatementLine.setDramount(transaction.getPaymentAmount()); + // Save + OBDal.getInstance().save(clonedBSLine); + OBDal.getInstance().save(bankStatementLine); + OBDal.getInstance().flush(); bs.setProcessed(true); - - // Save OBDal.getInstance().save(bs); - OBDal.getInstance().save(clonedBSLine); - OBDal.getInstance().save(bankStatementLine); + return clonedBSLine; } - } finally { OBContext.restorePreviousMode(); } + return null; } /** diff -r 322a6605eab9 -r 52e64c9117f6 modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-addTransaction.js --- a/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-addTransaction.js Fri Aug 26 15:47:16 2016 +0000 +++ b/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-addTransaction.js Mon Aug 29 11:04:15 2016 +0000 @@ -62,7 +62,7 @@ // Continue with the match actionHandlerCall(); } else { - isc.confirm(OB.I18N.getLabel('APRM_SplitBankStatementLineConfirm'), execute); + isc.confirm(OB.I18N.getLabel('APRM_SplitBankStatementLineConfirm', [OB.Utilities.Number.JSToOBMasked(blineAmt, OB.Format.defaultNumericMask, OB.Format.defaultDecimalSymbol, OB.Format.defaultGroupingSymbol, OB.Format.defaultGroupingSize), OB.Utilities.Number.JSToOBMasked(trxAmt, OB.Format.defaultNumericMask, OB.Format.defaultDecimalSymbol, OB.Format.defaultGroupingSymbol, OB.Format.defaultGroupingSize)]), execute); } } else { // Continue with the match diff -r 322a6605eab9 -r 52e64c9117f6 modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-findTransaction.js --- a/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-findTransaction.js Fri Aug 26 15:47:16 2016 +0000 +++ b/modules/org.openbravo.advpaymentmngt/web/org.openbravo.advpaymentmngt/js/ob-aprm-findTransaction.js Mon Aug 29 11:04:15 2016 +0000 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU ------------------------------------------------------------------------------ _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits