details: https://code.openbravo.com/erp/devel/pi/rev/145375d4a136 changeset: 15332:145375d4a136 user: David Baz Fayos <david.baz <at> openbravo.com> date: Wed Jan 25 20:32:54 2012 +0100 summary: Fixed issue 19545: 'Alerts' email system now uses POC 'Email Configuration' too
details: https://code.openbravo.com/erp/devel/pi/rev/38a9d8bc9da3 changeset: 15333:38a9d8bc9da3 user: David Baz Fayos <david.baz <at> openbravo.com> date: Tue Jan 31 18:08:12 2012 +0100 summary: Fixed issue 19573: Added more fields to email sending popup details: https://code.openbravo.com/erp/devel/pi/rev/13da342a4a9c changeset: 15334:13da342a4a9c user: David Baz Fayos <david.baz <at> openbravo.com> date: Tue Jan 31 18:24:48 2012 +0100 summary: Merge from pi details: https://code.openbravo.com/erp/devel/pi/rev/3dce4c87de78 changeset: 15335:3dce4c87de78 user: David Baz Fayos <david.baz <at> openbravo.com> date: Thu Feb 02 12:42:04 2012 +0100 summary: Related to isse 19545: code-review changes details: https://code.openbravo.com/erp/devel/pi/rev/2e9a38f2d031 changeset: 15336:2e9a38f2d031 user: David Baz Fayos <david.baz <at> openbravo.com> date: Thu Feb 02 16:39:09 2012 +0100 summary: Merge from pi diffstat: CONTRIBUTORS | 1 + 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/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java | 160 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentGrid.srpt | 4 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentGrid.xml | 6 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java | 32 +- 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.application/src/org/openbravo/client/application/AlertActionHandler.java | 2 +- modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java | 6 +- modules/org.openbravo.client.application/src/org/openbravo/client/application/WindowSettingsActionHandler.java | 42 + modules/org.openbravo.client.application/src/org/openbravo/client/application/personalization/PersonalizationActionHandler.java | 1 + modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-form.js.ftl | 11 +- modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java | 1 + modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java | 4 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/images/iconPin.png | 0 modules/org.openbravo.client.application/web/org.openbravo.client.application/js/alert-management/ob-alert-grid.js | 5 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/alert-management/ob-alert-management-view.js | 5 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/classic/ob-classic-window.js | 5 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-datetime.js | 90 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-section-audit.js | 8 + modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js | 11 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js | 44 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js | 75 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/process/ob-pick-and-execute-view.js | 13 +- modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/process/iconPin.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-process-styles.js | 26 + 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.myob/src-db/database/sourcedata/AD_WINDOW.xml | 2 +- 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.querylist/src/org/openbravo/client/querylist/QueryListDataSource.java | 16 +- 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.client.widgets/src-db/database/sourcedata/OBKMO_WIDGET_CLASS.xml | 4 +- modules/org.openbravo.client.widgets/src-db/database/sourcedata/OBKMO_WIDGET_URL.xml | 18 - modules/org.openbravo.client.widgets/src-db/database/sourcedata/OBUIAPP_PARAMETER.xml | 118 + 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.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java | 14 +- 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.datasource/src/org/openbravo/service/datasource/DataSourceProperty.java | 22 +- modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DefaultDataSourceService.java | 107 +- 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.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java | 44 +- 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.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js | 13 - 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/configScript.xml | 6 +- modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 18 +- src-db/database/lib/dbsourcemanager.jar | 0 src-db/database/model/functions/C_GENERATESOFROMPROJECTPHASE.xml | 8 +- src-db/database/model/functions/C_VALIDCOMBINATION_CLONE.xml | 2 +- src-db/database/model/tables/AD_FIELD_ACCESS.xml | 72 + src-db/database/model/tables/AD_REF_DATA_LOADED.xml | 5 + src-db/database/model/tables/AD_TAB_ACCESS.xml | 67 + src-db/database/model/triggers/C_PROJECT_TRG.xml | 16 +- src-db/database/model/triggers/M_PRODUCT_TRG.xml | 10 + src-db/database/model/triggers/M_WAREHOUSE_TRG.xml | 11 + src-db/database/sourcedata/AD_COLUMN.xml | 810 +++++++++- src-db/database/sourcedata/AD_ELEMENT.xml | 69 +- src-db/database/sourcedata/AD_FIELD.xml | 769 +++++++++- src-db/database/sourcedata/AD_MESSAGE.xml | 11 + src-db/database/sourcedata/AD_MODULE.xml | 2 +- src-db/database/sourcedata/AD_PROCESS.xml | 3 +- src-db/database/sourcedata/AD_TAB.xml | 120 +- src-db/database/sourcedata/AD_TABLE.xml | 40 + src-db/database/sourcedata/AD_TEXTINTERFACES.xml | 55 +- src-db/database/sourcedata/AD_VAL_RULE.xml | 3 +- src-db/database/sourcedata/AD_WINDOW.xml | 10 +- src-db/database/sourcedata/referencedData/AD_CLIENT.xml | 5 - src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateReversalDocumentTypes.class | 0 src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateReversalDocumentTypesData.class | 0 src-util/modulescript/build/classes/org/openbravo/modulescript/UpgradeToPocEmail.class | 0 src-util/modulescript/build/classes/org/openbravo/modulescript/UpgradeToPocEmailData.class | 0 src-util/modulescript/src/org/openbravo/modulescript/UpdateReversalDocumentTypes.java | 1 + src-util/modulescript/src/org/openbravo/modulescript/UpdateReversalDocumentTypes_Data.xsql | 15 +- src-util/modulescript/src/org/openbravo/modulescript/UpgradeToPocEmail.java | 127 + src-util/modulescript/src/org/openbravo/modulescript/UpgradeToPocEmail_Data.xsql | 91 + src-wad/src/org/openbravo/wad/Wad.java | 15 +- src-wad/src/org/openbravo/wad/Wad_data.xsql | 25 +- src-wad/src/org/openbravo/wad/javasource.javaxml | 2 +- src/org/openbravo/authentication/basic/DefaultAuthenticationManager.java | 4 +- src/org/openbravo/dal/xml/EntityResolver.java | 198 +- src/org/openbravo/dal/xml/EntityXMLConverter.java | 19 +- src/org/openbravo/erpCommon/ad_callouts/SL_Order_Amt.java | 30 +- src/org/openbravo/erpCommon/ad_forms/DocInOut.java | 65 +- src/org/openbravo/erpCommon/ad_forms/DocInventory.java | 11 +- src/org/openbravo/erpCommon/ad_forms/DocInvoice.java | 12 +- src/org/openbravo/erpCommon/ad_process/AlertProcess.java | 244 ++- src/org/openbravo/erpCommon/ad_reports/GeneralAccountingReports_data.xsql | 2 +- src/org/openbravo/erpCommon/ad_reports/ReportNotPosted_data.xsql | 2 +- src/org/openbravo/erpCommon/ad_reports/ReportProductionRun.jrxml | 2 +- src/org/openbravo/erpCommon/businessUtility/EMail.java | 4 + src/org/openbravo/erpCommon/businessUtility/InitialOrgSetup.java | 6 + src/org/openbravo/erpCommon/utility/WindowAccess_data.xsql | 30 +- src/org/openbravo/erpCommon/utility/poc/EmailManager.java | 166 +- src/org/openbravo/erpCommon/utility/reporting/printing/EmailOptions.html | 154 +- src/org/openbravo/erpCommon/utility/reporting/printing/EmailOptions.xml | 23 +- src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java | 365 ++-- src/org/openbravo/erpReports/RptM_InOut.jrxml | 99 +- src/org/openbravo/erpReports/Rptm_InOut_Lines.jrxml | 8 +- src/org/openbravo/service/dataset/DataSetService.java | 18 +- 128 files changed, 4163 insertions(+), 739 deletions(-) diffs (truncated from 8058 to 300 lines): diff -r 440693e24fec -r 2e9a38f2d031 CONTRIBUTORS --- a/CONTRIBUTORS Wed Jan 25 18:20:11 2012 +0100 +++ b/CONTRIBUTORS Thu Feb 02 16:39:09 2012 +0100 @@ -14,3 +14,4 @@ Mallikarjun M TDS - provided deep linking with filter clause Shankar Balachandran <[email protected]> - Bug fixing Francois Le Roux - <[email protected]> - Bug fixing and documentation +Shawn Laubach SAIC <[email protected]> - Development diff -r 440693e24fec -r 2e9a38f2d031 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml Wed Jan 25 18:20:11 2012 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml Thu Feb 02 16:39:09 2012 +0100 @@ -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.15193]]></VERSION> +<!--A918E3331C404B889D69AA9BFAFB23AC--> <VERSION><![CDATA[3.0.15265]]></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 440693e24fec -r 2e9a38f2d031 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 Wed Jan 25 18:20:11 2012 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml Thu Feb 02 16:39:09 2012 +0100 @@ -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.15193]]></STARTVERSION> +<!--89326AE95DAD449D85DFAB2C5B1C6683--> <STARTVERSION><![CDATA[2.1.15265]]></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.15193]]></STARTVERSION> +<!--B97FC854C6DD41E692161585645A900F--> <STARTVERSION><![CDATA[3.0.15265]]></STARTVERSION> <!--B97FC854C6DD41E692161585645A900F--> <ISINCLUDED><![CDATA[N]]></ISINCLUDED> <!--B97FC854C6DD41E692161585645A900F--> <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME> <!--B97FC854C6DD41E692161585645A900F--> <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT> diff -r 440693e24fec -r 2e9a38f2d031 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java Wed Jan 25 18:20:11 2012 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java Thu Feb 02 16:39:09 2012 +0100 @@ -23,7 +23,10 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; +import java.util.StringTokenizer; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -90,7 +93,7 @@ String strDueDateTo = vars.getStringParameter("inpDueDateTo", ""); String strDocumentType = vars.getStringParameter("inpDocumentType", ""); String strSelectedPaymentDetails = vars.getInStringParameter("inpScheduledPaymentDetailId", - IsIDFilter.instance); + "", null); boolean isReceipt = vars.getRequiredStringParameter("isReceipt").equals("Y"); Boolean showAlternativePM = "Y".equals(vars.getStringParameter("inpAlternativePaymentMethod", filterYesNo)); @@ -107,8 +110,8 @@ strAction = vars.getRequiredStringParameter("inpActionDocument"); } String strPaymentId = vars.getRequiredStringParameter("inpfinPaymentId"); - String strSelectedScheduledPaymentDetailIds = vars.getInParameter( - "inpScheduledPaymentDetailId", "", IsIDFilter.instance); + String strSelectedScheduledPaymentDetailIds = vars.getInStringParameter( + "inpScheduledPaymentDetailId", "", null); String strAddedGLItems = vars.getStringParameter("inpGLItems"); JSONArray addedGLITemsArray = null; try { @@ -128,7 +131,6 @@ } String strTabId = vars.getRequiredStringParameter("inpTabId"); String strPaymentAmount = vars.getRequiredNumericParameter("inpActualPayment"); - String strDocumentType = vars.getStringParameter("inpDocumentType", ""); String paymentCurrencyId = vars.getRequiredStringParameter("inpCurrencyId"); BigDecimal exchangeRate = new BigDecimal(vars.getRequiredNumericParameter("inpExchangeRate", "1")); @@ -142,8 +144,8 @@ List<FIN_PaymentScheduleDetail> selectedPaymentDetails = FIN_Utility.getOBObjectList( FIN_PaymentScheduleDetail.class, strSelectedScheduledPaymentDetailIds); - HashMap<String, BigDecimal> selectedPaymentDetailAmounts = FIN_AddPayment - .getSelectedPaymentDetailsAndAmount(vars, selectedPaymentDetails); + HashMap<String, BigDecimal> selectedPaymentDetailAmounts = getSelectedPaymentDetailsAndAmount( + vars, strSelectedScheduledPaymentDetailIds); FIN_Payment payment = dao.getObject(FIN_Payment.class, strPaymentId); BigDecimal newPaymentAmount = new BigDecimal(strPaymentAmount); @@ -412,8 +414,9 @@ showAlternativePM ? null : payment.getPaymentMethod(), selectedScheduledPaymentDetails, isReceipt); - final FieldProvider[] data = FIN_AddPayment.getShownScheduledPaymentDetails(vars, + FieldProvider[] data = FIN_AddPayment.getShownScheduledPaymentDetails(vars, selectedScheduledPaymentDetails, filteredScheduledPaymentDetails, false, null); + data = groupPerDocumentType(data, strDocumentType); xmlDocument.setData("structure", (data == null) ? set() : data); response.setContentType("text/html; charset=UTF-8"); @@ -436,6 +439,149 @@ return FieldProviderFactory.getFieldProviderArray(result); } + private FieldProvider[] groupPerDocumentType(FieldProvider[] data, String strDocumenType) { + ArrayList<FieldProvider> gridLines = new ArrayList<FieldProvider>(); + HashMap<String, Integer> amountsPerGroupingField = new HashMap<String, Integer>(); + String groupingField = "finScheduledPaymentDetailId"; + if ("I".equals(strDocumenType)) { + groupingField = "invoicePaymentScheduleId"; + } else if ("O".equals(strDocumenType)) { + groupingField = "orderPaymentScheduleId"; + } + for (int i = 0; i < data.length; i++) { + if (!amountsPerGroupingField.containsKey(data[i].getField(groupingField)) + || "".equals(data[i].getField(groupingField))) { + amountsPerGroupingField.put(data[i].getField(groupingField), gridLines.size()); + FieldProviderFactory.setField(data[i], "rownum", String.valueOf(gridLines.size())); + gridLines.add(data[i]); + } else { + Integer listIndex = amountsPerGroupingField.get(data[i].getField(groupingField)); + FieldProvider row = gridLines.get(listIndex); + FieldProviderFactory.setField( + row, + "finScheduledPaymentDetailId", + row.getField("finScheduledPaymentDetailId") + "," + + data[i].getField("finScheduledPaymentDetailId")); + FieldProviderFactory.setField( + row, + "finSelectedPaymentDetailId", + row.getField("finSelectedPaymentDetailId") + "," + + data[i].getField("finScheduledPaymentDetailId")); + FieldProviderFactory.setField( + row, + "outstandingAmount", + new BigDecimal(row.getField("outstandingAmount")).add( + new BigDecimal(data[i].getField("outstandingAmount"))).toString()); + BigDecimal payAmount = BigDecimal.ZERO; + if (!"".equals(row.getField("paymentAmount"))) { + payAmount = new BigDecimal(row.getField("paymentAmount")); + } + FieldProviderFactory.setField( + row, + "paymentAmount", + !"".equals(data[i].getField("paymentAmount")) ? payAmount.add( + new BigDecimal(data[i].getField("paymentAmount"))).toString() : (payAmount + .compareTo(BigDecimal.ZERO) == 0 ? "" : payAmount.toString())); + if ("O".equals(strDocumenType)) { + String strGroupedInvoicesNr = row.getField("invoiceNr"); + FieldProviderFactory.setField(row, "invoiceNr", (strGroupedInvoicesNr.isEmpty() ? "" + : strGroupedInvoicesNr + ", ") + data[i].getField("invoiceNr")); + String invoiceNumber = row.getField("invoiceNr"); + String invoiceNumberTrunc = (invoiceNumber.length() > 17) ? invoiceNumber + .substring(0, 14).concat("...").toString() : invoiceNumber; + FieldProviderFactory.setField(row, "invoiceNrTrunc", invoiceNumberTrunc); + } else if ("I".equals(strDocumenType)) { + String strGroupedOrdersNr = row.getField("orderNr"); + FieldProviderFactory.setField(row, "orderNr", (strGroupedOrdersNr.isEmpty() ? "" + : strGroupedOrdersNr + ", ") + data[i].getField("orderNr")); + String orderNumber = row.getField("orderNr"); + String orderNumberTrunc = (orderNumber.length() > 17) ? orderNumber.substring(0, 14) + .concat("...").toString() : orderNumber; + FieldProviderFactory.setField(row, "orderNrTrunc", orderNumberTrunc); + } + } + } + FieldProvider[] result = new FieldProvider[gridLines.size()]; + gridLines.toArray(result); + return result; + } + + /** + * Creates a HashMap with the FIN_PaymentScheduleDetail id's and the amount gotten from the + * Session. + * + * The amounts are stored in Session like "inpPaymentAmount"+paymentScheduleDetail.Id + * + * @param vars + * VariablseSecureApp with the session data. + * @param selectedPaymentScheduleDetails + * List of FIN_PaymentScheduleDetails that need to be included in the HashMap. + * @return A HashMap mapping the FIN_PaymentScheduleDetail's Id with the corresponding amount. + */ + private HashMap<String, BigDecimal> getSelectedPaymentDetailsAndAmount(VariablesSecureApp vars, + String _strSelectedScheduledPaymentDetailIds) throws ServletException { + String strSelectedScheduledPaymentDetailIds = _strSelectedScheduledPaymentDetailIds; + // Remove "(" ")" + strSelectedScheduledPaymentDetailIds = strSelectedScheduledPaymentDetailIds.replace("(", ""); + strSelectedScheduledPaymentDetailIds = strSelectedScheduledPaymentDetailIds.replace(")", ""); + HashMap<String, BigDecimal> selectedPaymentScheduleDetailsAmounts = new HashMap<String, BigDecimal>(); + // As selected items may contain records with multiple IDs we as well need the records list as + // amounts are related to records + StringTokenizer records = new StringTokenizer(strSelectedScheduledPaymentDetailIds, "'"); + Set<String> recordSet = new LinkedHashSet<String>(); + while (records.hasMoreTokens()) { + recordSet.add(records.nextToken()); + } + for (String record : recordSet) { + if (", ".equals(record)) { + continue; + } + Set<String> psdSet = new LinkedHashSet<String>(); + StringTokenizer psds = new StringTokenizer(record, ","); + while (psds.hasMoreTokens()) { + psdSet.add(psds.nextToken()); + } + BigDecimal recordAmount = new BigDecimal(vars.getNumericParameter( + "inpPaymentAmount" + record, "")); + HashMap<String, BigDecimal> recordsAmounts = calculateAmounts(recordAmount, psdSet); + selectedPaymentScheduleDetailsAmounts.putAll(recordsAmounts); + } + return selectedPaymentScheduleDetailsAmounts; + } + + /** + * This method returns a HashMap with pairs of UUID of payment schedule details and amounts + * related to those ones. + * + * @param recordAmount + * : amount to split among the set + * @param psdSet + * : set of payment schedule details where to allocate the amount + * @return + */ + private HashMap<String, BigDecimal> calculateAmounts(BigDecimal recordAmount, Set<String> psdSet) { + BigDecimal remainingAmount = recordAmount; + HashMap<String, BigDecimal> recordsAmounts = new HashMap<String, BigDecimal>(); + for (String psdId : psdSet) { + FIN_PaymentScheduleDetail paymentScheduleDetail = OBDal.getInstance().get( + FIN_PaymentScheduleDetail.class, psdId); + BigDecimal outstandingAmount = paymentScheduleDetail.getAmount(); + // Manage negative amounts + if ((remainingAmount.compareTo(BigDecimal.ZERO) > 0 && remainingAmount + .compareTo(outstandingAmount) >= 0) + || ((remainingAmount.compareTo(BigDecimal.ZERO) == -1 && outstandingAmount + .compareTo(BigDecimal.ZERO) == -1) && (remainingAmount.compareTo(outstandingAmount) <= 0))) { + recordsAmounts.put(psdId, outstandingAmount); + remainingAmount = remainingAmount.subtract(outstandingAmount); + } else { + recordsAmounts.put(psdId, remainingAmount); + remainingAmount = BigDecimal.ZERO; + } + + } + return recordsAmounts; + } + public String getServletInfo() { return "Servlet that presents the payment proposal"; // end of getServletInfo() method diff -r 440693e24fec -r 2e9a38f2d031 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentGrid.srpt --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentGrid.srpt Wed Jan 25 18:20:11 2012 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentGrid.srpt Thu Feb 02 16:39:09 2012 +0100 @@ -22,8 +22,8 @@ <input type="hidden" name="inpRecordAmtxx" value="" id="fieldRecordAmt"/> <tr id="funcEvenOddRow" class="DataGrid_Body_Row DataGrid_Body_Row_xx" bgcolor="#E1E1E1"> <td class="DataGrid_Body_LineNoCell"> <input type="checkbox" name="inpScheduledPaymentDetailId" value="" id="fieldScheduledPaymentDetailId" onclick="updateData(this.value, this.checked, true);return true;"/></td> - <td class="DataGrid_Body_Cell" id="fieldOrderNr">xx</td> - <td class="DataGrid_Body_Cell" id="fieldInvoiceNr">xxINV30004 (2/3)</td> + <td class="DataGrid_Body_Cell" title="zz" id="fieldOrderNr">xx</td> + <td class="DataGrid_Body_Cell" title="zz" id="fieldInvoiceNr">xxINV30004 (2/3)</td> <td class="DataGrid_Body_Cell" id="businessPartnerName" title="">xxBPartner</td> <td class="DataGrid_Body_Cell" title="zz" id="fieldPaymentMethod">xxCash</td> <td class="DataGrid_Body_Cell" id="fieldDueDate">xx12/12/2009</td> diff -r 440693e24fec -r 2e9a38f2d031 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentGrid.xml --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentGrid.xml Wed Jan 25 18:20:11 2012 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentGrid.xml Thu Feb 02 16:39:09 2012 +0100 @@ -28,8 +28,10 @@ <FIELD id="fieldRecordId" attribute="name" replace="xx">rownum</FIELD> <FIELD id="fieldRecordAmt" attribute="value" format="euroEdition">outstandingAmount</FIELD> <FIELD id="fieldRecordAmt" attribute="name" replace="xx">finScheduledPaymentDetailId</FIELD> - <FIELD id="fieldOrderNr">orderNr</FIELD> - <FIELD id="fieldInvoiceNr">invoiceNr</FIELD> + <FIELD id="fieldOrderNr">orderNrTrunc</FIELD> + <FIELD id="fieldOrderNr" attribute="title" replace="zz">orderNr</FIELD> + <FIELD id="fieldInvoiceNr">invoiceNrTrunc</FIELD> + <FIELD id="fieldInvoiceNr" attribute="title" replace="zz">invoiceNr</FIELD> <FIELD id="businessPartnerName" attribute="title">businessPartnerName</FIELD> <FIELD id="businessPartnerName">businessPartnerNameTrunc</FIELD> <FIELD id="fieldPaymentMethod">paymentMethodNameTrunc</FIELD> diff -r 440693e24fec -r 2e9a38f2d031 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java Wed Jan 25 18:20:11 2012 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java Thu Feb 02 16:39:09 2012 +0100 @@ -533,9 +533,7 @@ shownScheduledPaymentDetails.addAll(filteredScheduledPaymentDetails); FIN_PaymentScheduleDetail[] FIN_PaymentScheduleDetails = new FIN_PaymentScheduleDetail[0]; FIN_PaymentScheduleDetails = shownScheduledPaymentDetails.toArray(FIN_PaymentScheduleDetails); - // FieldProvider[] data = FieldProviderFactory.getFieldProviderArray(FIN_PaymentSchedules); - // FieldProvider[] data = new FieldProviderFactory[selectedScheduledPayments.size()]; FieldProvider[] data = FieldProviderFactory.getFieldProviderArray(shownScheduledPaymentDetails); String dateFormat = OBPropertiesProvider.getInstance().getOpenbravoProperties() .getProperty("dateFormat.java"); @@ -552,16 +550,30 @@ : ""); ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
