details: https://code.openbravo.com/erp/devel/pi/rev/b1e739866c09 changeset: 20847:b1e739866c09 user: Augusto Mauch <augusto.mauch <at> openbravo.com> date: Thu Jul 18 12:45:16 2013 +0200 summary: [rest webservices with selected properties] First commit
This changeset implements the functionality that enables to specify the list of properties that will be exported in a XML Rest Webservice call (this functionality was already implemented for Json Rest Webservices). Changes done: - DalWebService.java: If the _selectedProperties is included in the request parameters the string is parsed to obtain two maps (propertiesToBeFeched and childPropertiesToBeFeched) that will contain the list of child and non child property for each entity being exported (i.e. when an entity is beign exported its child entities can also be exported in the process). Then these two maps are passed to the EntityXMLConverter. - EntityXMLConverter.java: Filters out the properties not included in the propertiesToBeFetched or childPropertiesToBeFetched maps, but only if they are not empty. If they are empty (because the _selectedProperties parameter was not included in the URL) then all properties are returned (the child properties will only be returned if the includeChildren parameter is not set to false). Example: Let's suppose that someone wants to retrieve the list of all windows, including its tabs and its fields. Only these properties are required: - ADWindow: id, name - ADTab: id, name, tabLevel - ADField: id, name, description The request to the xml webservice should be like this: http://localhost:8080/openbravo/ws/dal/ADWindow/100?_selectedProperties=id,name,aDTabList,aDTabList.id,aDTabList.name,aDTabList.tabLevel,aDTabList.aDFieldList,aDTabList.aDFieldList.id,aDTabList.aDFieldList.name,aDTabList.aDFieldList.description 'id', 'name' and 'aDTabList' are properties of the ADWindow entity. The aDTabList property is a child entity of ADWindow. If no more properties were specified, then only the id and the identifier of each tab would be returned. 'aDTabList.id','aDTabList.name','aDTabList.tabLevel' and 'aDTabList.aDFieldList' are properties of the adTabList entity. 'aDTabList.aDFieldList.id','aDTabList.aDFieldList.name' and 'aDTabList.aDFieldList.description' When the _selectedProperties parameter is parsed, these two maps will be generated: - properties: a map with the list of not child properties to be exported for each entity: {_top=[id, name],aDTabList=[id, name, tabLevel], aDTabList.aDFieldList=[id, name, description]} - childProperties: a map with the list of child properties to be exported for each entity: {_top=[id, aDTabList],aDTabList=[id, aDFieldList]} details: https://code.openbravo.com/erp/devel/pi/rev/a2f50431bea5 changeset: 20848:a2f50431bea5 user: Augusto Mauch <augusto.mauch <at> openbravo.com> date: Thu Jul 18 13:47:31 2013 +0200 summary: [rest webservices with selected properties] Prevents Java API change details: https://code.openbravo.com/erp/devel/pi/rev/a71ec7122273 changeset: 20849:a71ec7122273 user: Augusto Mauch <augusto.mauch <at> openbravo.com> date: Fri Jul 26 10:04:18 2013 +0200 summary: [rest webservices with selected properties] Fix access to 3rd-level properties details: https://code.openbravo.com/erp/devel/pi/rev/cf8dd73ff55a changeset: 20850:cf8dd73ff55a user: Asier Lostalé <asier.lostale <at> openbravo.com> date: Tue Aug 06 16:42:40 2013 +0200 summary: merged back DAL ws included properties diffstat: .hgsigs | 2 + .hgtags | 2 + build.xml | 7 +- modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml | 22 + modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml | 78 +- modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_FINACC_TRAN_CHECK_TRG.xml | 2 +- modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml | 54 + modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml | 12 + 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_TEXTINTERFACES.xml | 22 + modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java | 4 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java | 28 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddTransaction.java | 45 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.html | 36 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java | 55 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.xml | 3 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransactionGrid.srpt | 3 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransactionGrid.xml | 5 +- 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/event/FieldHandler.java | 17 +- modules/org.openbravo.client.application/src/org/openbravo/client/application/event/NoteEventHandler.java | 132 + modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-tab.js.ftl | 1 + modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java | 16 + modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewTab.java | 8 + modules/org.openbravo.client.application/src/org/openbravo/client/application/window/StandardWindowComponent.java | 12 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/classic/ob-classic-window.js | 10 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-date.js | 2 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-richtext.js | 11 + modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form-notes.js | 8 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js | 7 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js | 18 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view-datasource.js | 21 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js | 31 +- 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.kernel/src/org/openbravo/client/kernel/KernelUtils.java | 7 +- 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.skin.250to300Comp/web/org.openbravo.userinterface.skin.250to300Comp/skins/250to300Comp/Openbravo_ERP_250.css | 5 + 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 | 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/configScript.xml | 12 - 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 +- referencedata/sampledata/F_B_International_Group/AD_PINSTANCE.xml | 6229 + referencedata/sampledata/F_B_International_Group/AD_PINSTANCE_PARA.xml | 3706 + referencedata/sampledata/F_B_International_Group/AD_PROCESS_REQUEST.xml | 1058 +- referencedata/sampledata/F_B_International_Group/AD_SEQUENCE.xml | 58 +- referencedata/sampledata/F_B_International_Group/AD_USER.xml | 48 +- referencedata/sampledata/F_B_International_Group/A_AMORTIZATION.xml | 17 +- referencedata/sampledata/F_B_International_Group/A_ASSET.xml | 11 +- referencedata/sampledata/F_B_International_Group/C_BPARTNER.xml | 116 +- referencedata/sampledata/F_B_International_Group/C_INVOICE.xml | 4184 +- referencedata/sampledata/F_B_International_Group/C_INVOICELINE.xml | 11353 ++ referencedata/sampledata/F_B_International_Group/C_INVOICELINETAX.xml | 5598 + referencedata/sampledata/F_B_International_Group/C_INVOICETAX.xml | 1122 + referencedata/sampledata/F_B_International_Group/C_ORDER.xml | 2436 + referencedata/sampledata/F_B_International_Group/C_ORDERLINE.xml | 12194 ++ referencedata/sampledata/F_B_International_Group/C_ORDERLINETAX.xml | 4675 + referencedata/sampledata/F_B_International_Group/C_ORDERTAX.xml | 672 + referencedata/sampledata/F_B_International_Group/C_ORDER_DISCOUNT.xml | 165 + referencedata/sampledata/F_B_International_Group/FACT_ACCT.xml | 55307 +++++++++- referencedata/sampledata/F_B_International_Group/FIN_BANKSTATEMENT.xml | 126 + referencedata/sampledata/F_B_International_Group/FIN_BANKSTATEMENTLINE.xml | 1300 + referencedata/sampledata/F_B_International_Group/FIN_FINACC_TRANSACTION.xml | 1893 +- referencedata/sampledata/F_B_International_Group/FIN_FINANCIAL_ACCOUNT.xml | 12 +- referencedata/sampledata/F_B_International_Group/FIN_PAYMENT.xml | 2228 + referencedata/sampledata/F_B_International_Group/FIN_PAYMENT_DETAIL.xml | 1152 + referencedata/sampledata/F_B_International_Group/FIN_PAYMENT_PROPOSAL.xml | 174 + referencedata/sampledata/F_B_International_Group/FIN_PAYMENT_PROP_DETAIL.xml | 720 + referencedata/sampledata/F_B_International_Group/FIN_PAYMENT_SCHEDULE.xml | 11564 +- referencedata/sampledata/F_B_International_Group/FIN_PAYMENT_SCHEDULEDETAIL.xml | 1210 +- referencedata/sampledata/F_B_International_Group/FIN_RECLINE_TEMP.xml | 270 + referencedata/sampledata/F_B_International_Group/FIN_RECONCILIATION.xml | 174 + referencedata/sampledata/F_B_International_Group/GL_JOURNAL.xml | 105 + referencedata/sampledata/F_B_International_Group/GL_JOURNALBATCH.xml | 78 + referencedata/sampledata/F_B_International_Group/GL_JOURNALLINE.xml | 1260 + referencedata/sampledata/F_B_International_Group/M_ATTRIBUTESETINSTANCE.xml | 45 + referencedata/sampledata/F_B_International_Group/M_COSTING.xml | 2058 +- referencedata/sampledata/F_B_International_Group/M_INOUT.xml | 1686 + referencedata/sampledata/F_B_International_Group/M_INOUTLINE.xml | 6135 + referencedata/sampledata/F_B_International_Group/M_MATCHINV.xml | 1672 + referencedata/sampledata/F_B_International_Group/M_MATCHPO.xml | 3268 + referencedata/sampledata/F_B_International_Group/M_STOCK_PROPOSED.xml | 5344 + referencedata/sampledata/F_B_International_Group/M_STORAGE_DETAIL.xml | 336 +- referencedata/sampledata/F_B_International_Group/M_STORAGE_PENDING.xml | 211 +- referencedata/sampledata/F_B_International_Group/M_TRANSACTION.xml | 6800 + referencedata/sampledata/F_B_International_Group/M_TRANSACTION_COST.xml | 4080 + referencedata/standard/Unit_of_Measure.xml | 12 + src-db/database/lib/dbsourcemanager.jar | 0 src-db/database/model/functions/C_GET_NET_PRICE_FROM_GROSS.xml | 8 +- src-db/database/model/functions/C_INVOICE_POST.xml | 2 +- src-db/database/model/functions/C_ORDER_POST1.xml | 12 +- src-db/database/model/functions/MA_GLOBALUSE_DISTRIBUTE.xml | 11 +- src-db/database/model/functions/MA_PRODUCTION_COST.xml | 82 +- src-db/database/model/functions/M_RESERVATION_CONSUMPTION.xml | 43 +- src-db/database/model/functions/M_RESERVE_STOCK_MANUAL.xml | 39 +- src-db/database/model/tables/AD_AUXILIARINPUT.xml | 2 +- src-db/database/model/tables/C_UOM.xml | 4 + src-db/database/model/tables/M_PRODUCT.xml | 7 + src-db/database/model/tables/M_STOCK_PROPOSED.xml | 3 + src-db/database/model/tables/M_TRANSACTION.xml | 12 + src-db/database/model/triggers/C_ORDLINE_CHK_RESTRICTIONS_TRG.xml | 2 +- src-db/database/model/triggers/M_TRANSACTION_TRG2.xml | 32 +- src-db/database/model/views/C_YEAR_CLOSE_V.xml | 2 +- src-db/database/sourcedata/AD_COLUMN.xml | 90 +- src-db/database/sourcedata/AD_DATASET.xml | 2 +- src-db/database/sourcedata/AD_ELEMENT.xml | 12 + src-db/database/sourcedata/AD_FIELD.xml | 70 +- src-db/database/sourcedata/AD_MESSAGE.xml | 49 + src-db/database/sourcedata/AD_MODULE.xml | 2 +- src-db/database/sourcedata/AD_PROCESS_PARA.xml | 4 +- src-db/database/sourcedata/AD_REFERENCE.xml | 60 + src-db/database/sourcedata/AD_REF_LIST.xml | 55 + src-db/database/sourcedata/AD_REF_TABLE.xml | 52 + src-db/database/sourcedata/AD_TEXTINTERFACES.xml | 33 +- src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml | 4 +- src/org/openbravo/dal/core/DalMappingGenerator.java | 7 +- src/org/openbravo/dal/xml/EntityXMLConverter.java | 75 +- src/org/openbravo/erpCommon/ReportsUtility.java | 108 + src/org/openbravo/erpCommon/ad_actionButton/CopyFromPOOrder.java | 4 +- src/org/openbravo/erpCommon/ad_actionButton/DocAction.xml | 2 +- src/org/openbravo/erpCommon/ad_actionButton/Posted.java | 1 + src/org/openbravo/erpCommon/ad_callouts/SE_Project_BPartner.java | 39 +- src/org/openbravo/erpCommon/ad_callouts/SL_Order_Amt.java | 5 +- src/org/openbravo/erpCommon/ad_forms/AcctServer.java | 172 +- src/org/openbravo/erpCommon/ad_forms/DocFINPayment.java | 17 +- src/org/openbravo/erpCommon/ad_forms/FactLine.java | 36 +- src/org/openbravo/erpCommon/ad_forms/InstanceManagement.java | 12 +- src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java | 6 +- src/org/openbravo/erpCommon/ad_forms/ShowLogFile.html | 2 +- src/org/openbravo/erpCommon/ad_process/ApplyModules.html | 2 +- src/org/openbravo/erpCommon/ad_process/ConvertQuotationIntoOrder.java | 6 +- src/org/openbravo/erpCommon/ad_reports/CustomerStatement.jrxml | 85 +- src/org/openbravo/erpCommon/businessUtility/TabAttachments.java | 23 +- src/org/openbravo/erpCommon/security/Login.html | 6 + src/org/openbravo/erpCommon/utility/MigrateAttachments.java | 9 +- src/org/openbravo/financial/ResetAccounting.java | 21 +- src/org/openbravo/service/rest/DalWebService.java | 112 +- src/org/openbravo/service/system/DatabaseValidator.java | 13 + 171 files changed, 158804 insertions(+), 6375 deletions(-) diffs (truncated from 208842 to 300 lines): diff -r fd17b88f8379 -r cf8dd73ff55a .hgsigs --- a/.hgsigs Mon Jul 15 12:21:34 2013 +0530 +++ b/.hgsigs Tue Aug 06 16:42:40 2013 +0200 @@ -116,3 +116,5 @@ 859de1db934381df3b1eb0e863ec19a887565331 0 iEYEABECAAYFAlHbj5AACgkQCX/oGf+2qkMgJACgz7U/fVr1o5M08eTFaJQDldJ5xBoAoI6O81kGY5mmurordwIpiYKlT7wp b0634b11086a05db9d54275a05c64f23bf12f805 0 iEYEABECAAYFAlHBMSwACgkQCX/oGf+2qkOR+ACcDWGNCcZXny0x54Jkrc744UEpy3kAn3L1sDVMcfqraHG8ierwEcnOL9S3 5efe3c4189c7db9b2ea2bdff73de3256217df045 0 iEYEABECAAYFAlHNMRQACgkQCX/oGf+2qkPkMACfSJJJM2kdf89Up4kfEbCZW/smRIEAoKbC5gBEuEKdflRQU5ber6TXErjQ +b92ea05d4f9df44475cc35b00682862d15f7880d 0 iEYEABECAAYFAlHfwu0ACgkQCX/oGf+2qkNDwgCeKTGDEeOXONV0dU9Br2RZAwEOFsMAn3okxXa3sdQk63JiB5PfPtBF6VLI +d49b59c48d5f7d47d9d9505d2cf0ea5ea89b7070 0 iEYEABECAAYFAlHjfZMACgkQCX/oGf+2qkNnbgCg33P3BC6aXRRMGxtrdjpaugceKtUAoO6Nyy5jm/dx2xWnWBzg8u+F48BJ diff -r fd17b88f8379 -r cf8dd73ff55a .hgtags --- a/.hgtags Mon Jul 15 12:21:34 2013 +0530 +++ b/.hgtags Tue Aug 06 16:42:40 2013 +0200 @@ -127,3 +127,5 @@ af209003923492e8a18062c4dc58711d445345ed 3.0MP23.2 692d465ddec51a2cf0798735abe7fa33436ac1ec 3.0MP24 fdd2929b3158b981bad058be133c560874629a1c 3.0MP24.1 +0e89a754cf5593dcec90d925c25534be68c38873 3.0MP24.2 +895ac3b1f59a66db37a45476a6a82cdca0564ee8 3.0MP25 diff -r fd17b88f8379 -r cf8dd73ff55a build.xml --- a/build.xml Mon Jul 15 12:21:34 2013 +0530 +++ b/build.xml Tue Aug 06 16:42:40 2013 +0200 @@ -372,9 +372,10 @@ </target> <target name="migrate.attachments" depends="init"> - <java classname="org.openbravo.erpCommon.utility.MigrateAttachments" fork="true" failonerror="yes" jvm="${env.JAVA_HOME}/bin/java"> + <taskdef name="MigrateAttachments" classname="org.openbravo.erpCommon.utility.MigrateAttachments" > <classpath refid="project.class.path" /> - </java> + </taskdef> + <MigrateAttachments/> </target> <target name="smartbuild" depends="init"> @@ -1069,7 +1070,7 @@ </target> <target name="setup" depends="setup.check.os, setup.check.arch, setup.exists.test" unless="setup.exists"> - <get src="https://dev.openbravo.com/svn/packaging/setup/output/setup-properties-${osname}${osarch}.${bin.ext}" dest="config/setup-properties-${osname}${osarch}.${bin.ext}" verbose="true" /> + <get src="https://code.openbravo.com/tools/rm/erp-setup-tool/raw-file/tip/setup/output/setup-properties-${osname}${osarch}.${bin.ext}" dest="config/setup-properties-${osname}${osarch}.${bin.ext}" verbose="true" /> <chmod file="config/setup-properties-${osname}${osarch}.${bin.ext}" perm="+x" /> </target> diff -r fd17b88f8379 -r cf8dd73ff55a modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml Mon Jul 15 12:21:34 2013 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_INV.xml Tue Aug 06 16:42:40 2013 +0200 @@ -69,6 +69,7 @@ v_Line FIN_FINACC_TRANSACTION.LINE%TYPE; v_count NUMBER; v_PaymentPriority VARCHAR(32); +v_InvoicePaid CHAR(1); v_creditmultiplier NUMBER:= 1; v_lang AD_User.Default_AD_Language%TYPE; v_orderno C_Order.DocumentNo%TYPE:=null; @@ -132,6 +133,27 @@ -- complete invoice IF (p_docaction = 'CO') THEN + -- Do not add payment for the reversal invoice if the voided invoice is not paid + SELECT COUNT(*) + INTO v_Count + FROM C_Invoice_Reverse + WHERE C_Invoice_ID = p_record_id; + + IF(v_Count <> 0) THEN + SELECT COALESCE(ispaid, 'Y') + INTO v_InvoicePaid + FROM C_Invoice + WHERE C_Invoice_ID IN ( + SELECT Reversed_C_Invoice_ID + FROM C_Invoice_Reverse + WHERE C_Invoice_Id = p_record_id + ); + + IF (v_InvoicePaid = 'N') THEN + RETURN; + END IF; + END IF; + -- Checking Payment Method ID is available IF(v_PaymentMethod IS NULL) THEN RAISE_APPLICATION_ERROR(-20000, '@APRM_PAYMENTMETHOD_MISSING@'); diff -r fd17b88f8379 -r cf8dd73ff55a modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml Mon Jul 15 12:21:34 2013 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/functions/APRM_GEN_PAYMENTSCHEDULE_ORD.xml Tue Aug 06 16:42:40 2013 +0200 @@ -16,7 +16,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) 2010 Openbravo SLU +* All portions are Copyright (C) 2013 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************/ @@ -114,48 +114,50 @@ RAISE_APPLICATION_ERROR(-20000, '@APRM_ORDER_MAN_PAYMENTS@'); END IF; v_payment_schedule_order := get_uuid(); - INSERT INTO fin_payment_schedule - ( - fin_payment_schedule_id, ad_client_id, ad_org_id, isactive, - created, createdby, updated, updatedby, - c_invoice_id, c_currency_id, c_order_id, - fin_paymentmethod_id, amount, duedate, expecteddate, - outstandingamt, fin_payment_priority_id - ) - VALUES - ( - v_payment_schedule_order, v_Client_ID, v_Org_ID, 'Y', - now(), p_user, now(), p_user, - null, v_currency_id, p_record_id, - v_paymentmethod_id, v_grandtotal, v_orderdate, v_orderdate, - v_grandtotal, v_PaymentPriority - ); + IF v_grandtotal <> 0 THEN + INSERT INTO fin_payment_schedule + ( + fin_payment_schedule_id, ad_client_id, ad_org_id, isactive, + created, createdby, updated, updatedby, + c_invoice_id, c_currency_id, c_order_id, + fin_paymentmethod_id, amount, duedate, expecteddate, + outstandingamt, fin_payment_priority_id + ) + VALUES + ( + v_payment_schedule_order, v_Client_ID, v_Org_ID, 'Y', + now(), p_user, now(), p_user, + null, v_currency_id, p_record_id, + v_paymentmethod_id, v_grandtotal, v_orderdate, v_orderdate, + v_grandtotal, v_PaymentPriority + ); - v_pendingamount := v_grandtotal; - --If exist a payment plan for an invoice it will always be an invoice generated completing this order - --so we can asume that all fin_payment_scheduledetail records are also related to the order. - --With the same asumption if the invoice has some paid amount it will always be by a paymetn for the whole - --amount generated on the invoice completion, so we can safely set as paid amount the whole amount of the - --payment plan. - FOR cur_invoicepayments IN ( - SELECT distinct psd.fin_payment_scheduledetail_id, ps.paidamt - FROM fin_payment_scheduledetail psd, c_orderline ol, c_invoiceline il, fin_payment_schedule ps - WHERE ol.c_order_id = p_record_id + v_pendingamount := v_grandtotal; + --If exist a payment plan for an invoice it will always be an invoice generated completing this order + --so we can asume that all fin_payment_scheduledetail records are also related to the order. + --With the same asumption if the invoice has some paid amount it will always be by a paymetn for the whole + --amount generated on the invoice completion, so we can safely set as paid amount the whole amount of the + --payment plan. + FOR cur_invoicepayments IN ( + SELECT distinct psd.fin_payment_scheduledetail_id, ps.paidamt + FROM fin_payment_scheduledetail psd, c_orderline ol, c_invoiceline il, fin_payment_schedule ps + WHERE ol.c_order_id = p_record_id AND ol.c_orderline_id = il.c_orderline_id AND il.c_invoice_id = ps.c_invoice_id AND psd.fin_payment_schedule_invoice = ps.fin_payment_schedule_id ) LOOP - UPDATE fin_payment_scheduledetail - SET fin_payment_schedule_order = v_payment_schedule_order - WHERE fin_payment_scheduledetail_id = cur_invoicepayments.fin_payment_scheduledetail_id; - SELECT v_pendingamount -(amount + coalesce(writeoffamt, 0)) INTO v_pendingamount - FROM fin_payment_scheduledetail - WHERE fin_payment_scheduledetail_id = cur_invoicepayments.fin_payment_scheduledetail_id; - UPDATE fin_payment_schedule - SET paidamt = paidamt + cur_invoicepayments.paidamt, - outstandingamt = outstandingamt - cur_invoicepayments.paidamt - WHERE fin_payment_schedule_id = v_payment_schedule_order; - END LOOP; + UPDATE fin_payment_scheduledetail + SET fin_payment_schedule_order = v_payment_schedule_order + WHERE fin_payment_scheduledetail_id = cur_invoicepayments.fin_payment_scheduledetail_id; + SELECT v_pendingamount -(amount + coalesce(writeoffamt, 0)) INTO v_pendingamount + FROM fin_payment_scheduledetail + WHERE fin_payment_scheduledetail_id = cur_invoicepayments.fin_payment_scheduledetail_id; + UPDATE fin_payment_schedule + SET paidamt = paidamt + cur_invoicepayments.paidamt, + outstandingamt = outstandingamt - cur_invoicepayments.paidamt + WHERE fin_payment_schedule_id = v_payment_schedule_order; + END LOOP; + END IF; IF (v_pendingamount <> 0) THEN INSERT INTO fin_payment_scheduledetail diff -r fd17b88f8379 -r cf8dd73ff55a modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_FINACC_TRAN_CHECK_TRG.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_FINACC_TRAN_CHECK_TRG.xml Mon Jul 15 12:21:34 2013 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_FINACC_TRAN_CHECK_TRG.xml Tue Aug 06 16:42:40 2013 +0200 @@ -67,7 +67,7 @@ WHERE fin_financial_account_id = :OLD.FIN_FINANCIAL_ACCOUNT_ID AND ((:OLD.TRXTYPE IN ('BPW','BF') AND fin_withdrawal_acct IS NULL) OR (:OLD.TRXTYPE = 'BPD' AND fin_deposit_acct IS NULL)); - IF(v_Count>0) THEN + IF(v_Count>0 OR (COALESCE(:OLD.DATEACCT, v_DateNull) <> COALESCE(:NEW.DATEACCT, v_DateNull))) THEN RAISE_APPLICATION_ERROR(-20000, '@APRM_RelatedPostedDocument@'); END IF; ELSIF((COALESCE(:OLD.DATEACCT, v_DateNull) <> COALESCE(:NEW.DATEACCT, v_DateNull))) THEN diff -r fd17b88f8379 -r cf8dd73ff55a modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml Mon Jul 15 12:21:34 2013 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml Tue Aug 06 16:42:40 2013 +0200 @@ -2578,6 +2578,33 @@ <!--2C3C6561C2DB4025A367330BB9070FCB--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY> <!--2C3C6561C2DB4025A367330BB9070FCB--></AD_FIELD> +<!--2D22FFF55FDD405DB18F8CC23481333F--><AD_FIELD> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <AD_FIELD_ID><![CDATA[2D22FFF55FDD405DB18F8CC23481333F]]></AD_FIELD_ID> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <NAME><![CDATA[Amount]]></NAME> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <AD_TAB_ID><![CDATA[2ECAED4620B840BA8DD738140F58A629]]></AD_TAB_ID> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <AD_COLUMN_ID><![CDATA[7890366979642CEFE040007F01013334]]></AD_COLUMN_ID> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISDISPLAYED><![CDATA[N]]></ISDISPLAYED> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <DISPLAYLENGTH><![CDATA[0]]></DISPLAYLENGTH> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISREADONLY><![CDATA[N]]></ISREADONLY> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <SEQNO><![CDATA[140]]></SEQNO> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <GRID_SEQNO><![CDATA[21]]></GRID_SEQNO> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR> +<!--2D22FFF55FDD405DB18F8CC23481333F--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY> +<!--2D22FFF55FDD405DB18F8CC23481333F--></AD_FIELD> + <!--2D59DEFAF52341F9814A2F071792B57C--><AD_FIELD> <!--2D59DEFAF52341F9814A2F071792B57C--> <AD_FIELD_ID><![CDATA[2D59DEFAF52341F9814A2F071792B57C]]></AD_FIELD_ID> <!--2D59DEFAF52341F9814A2F071792B57C--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> @@ -15949,6 +15976,33 @@ <!--B8BF3A9E948844DA807DDE25E75A0FFC--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY> <!--B8BF3A9E948844DA807DDE25E75A0FFC--></AD_FIELD> +<!--B96C393D0DCF47DFBBA99C2269D30891--><AD_FIELD> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <AD_FIELD_ID><![CDATA[B96C393D0DCF47DFBBA99C2269D30891]]></AD_FIELD_ID> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <NAME><![CDATA[Amount]]></NAME> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <AD_TAB_ID><![CDATA[15ECCF8974044A81982F57F9F1E1A67B]]></AD_TAB_ID> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <AD_COLUMN_ID><![CDATA[7890366979642CEFE040007F01013334]]></AD_COLUMN_ID> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISDISPLAYED><![CDATA[N]]></ISDISPLAYED> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <DISPLAYLENGTH><![CDATA[0]]></DISPLAYLENGTH> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISREADONLY><![CDATA[N]]></ISREADONLY> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <SEQNO><![CDATA[140]]></SEQNO> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <GRID_SEQNO><![CDATA[31]]></GRID_SEQNO> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR> +<!--B96C393D0DCF47DFBBA99C2269D30891--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY> +<!--B96C393D0DCF47DFBBA99C2269D30891--></AD_FIELD> + <!--B9BC67D6F48A46569F7E80607777A270--><AD_FIELD> <!--B9BC67D6F48A46569F7E80607777A270--> <AD_FIELD_ID><![CDATA[B9BC67D6F48A46569F7E80607777A270]]></AD_FIELD_ID> <!--B9BC67D6F48A46569F7E80607777A270--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r fd17b88f8379 -r cf8dd73ff55a modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml Mon Jul 15 12:21:34 2013 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml Tue Aug 06 16:42:40 2013 +0200 @@ -661,6 +661,18 @@ <!--8EF25E4AD4EF46E4BCE4E0FACAFC717F--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N> <!--8EF25E4AD4EF46E4BCE4E0FACAFC717F--></AD_MESSAGE> +<!--8FC3C9524EE54E518B679D58F709119D--><AD_MESSAGE> +<!--8FC3C9524EE54E518B679D58F709119D--> <AD_MESSAGE_ID><![CDATA[8FC3C9524EE54E518B679D58F709119D]]></AD_MESSAGE_ID> +<!--8FC3C9524EE54E518B679D58F709119D--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--8FC3C9524EE54E518B679D58F709119D--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--8FC3C9524EE54E518B679D58F709119D--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--8FC3C9524EE54E518B679D58F709119D--> <VALUE><![CDATA[APRM_AlgorithmConfirm]]></VALUE> +<!--8FC3C9524EE54E518B679D58F709119D--> <MSGTEXT><![CDATA[Do you want the algorithm to be run against unmatched bank statement lines?]]></MSGTEXT> +<!--8FC3C9524EE54E518B679D58F709119D--> <MSGTYPE><![CDATA[I]]></MSGTYPE> +<!--8FC3C9524EE54E518B679D58F709119D--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> +<!--8FC3C9524EE54E518B679D58F709119D--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N> +<!--8FC3C9524EE54E518B679D58F709119D--></AD_MESSAGE> + <!--92EC1935A8B947BA83EF82DBD169CA8B--><AD_MESSAGE> <!--92EC1935A8B947BA83EF82DBD169CA8B--> <AD_MESSAGE_ID><![CDATA[92EC1935A8B947BA83EF82DBD169CA8B]]></AD_MESSAGE_ID> <!--92EC1935A8B947BA83EF82DBD169CA8B--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r fd17b88f8379 -r cf8dd73ff55a modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml Mon Jul 15 12:21:34 2013 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml Tue Aug 06 16:42:40 2013 +0200 @@ -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.20678]]></VERSION> +<!--A918E3331C404B889D69AA9BFAFB23AC--> <VERSION><![CDATA[3.0.20831]]></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 fd17b88f8379 -r cf8dd73ff55a modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml ------------------------------------------------------------------------------ Get your SQL database under version control now! Version control is standard for application code, but databases havent caught up. So what steps can you take to put your SQL databases under version control? Why should you start doing it? Read more to find out. http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits