details: https://code.openbravo.com/erp/devel/pi/rev/e033a8db491d changeset: 14198:e033a8db491d user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Wed Oct 26 19:11:17 2011 +0200 summary: Issue 18343: Credit payment management enhanced - A new table called FIN_PAYMENT_CREDIT is created. This table stores the relationship between credit payments and payments that use credit. This table is represented as a tab called Used Credit Source inside the Payment In and Payment Out windows. When a payment has used one or more credit payments, it shows the credit payments and amounts used. The user can also use the Linked item feature to navigate from a credit payment to the payments that use it.
- When completing and invoice, if the invoice's business partner has credit payments available, the system shows automatically a new popup just after completing the invoice. This popup allows the user to select the credit payments and the amount he wants to use of each one. By default, this popup tries to give the user the best configuration possible, i.e. selecting by default the oldest credit payments and the right amount to fully pay the invoice. However, the user will have the opportunity to modify this proposal. The popup will validate the user data to ensure it's OK (we don't pay more than the invoice's grand total amount, we don't use more amount than the available in the credit payment, etc.) - A new flag called Include Payments Using Credit is added to the payment report. This flag, which is checked by default, allows the user to include/exclude in the report all the payments that are using credit payments. - The description of the payment has also been added to the report: a new column has been added in the spreadsheet format, and a new context message with the payment's description is shown when the mouse is over the payment name in the report's HTML format - The invoice column shows also the invoices paid using a credit payment. An asterisk in shown before the invoice number to reflect this invoice has been paid using a credit payment. In case several invoices have been paid with the same credit payment, two asterisks are shown before the list of invoice document numbers. - Fixed issues in multicurrency rounding - Added payment date column from the 2.50 version report details: https://code.openbravo.com/erp/devel/pi/rev/84ad90a492a9 changeset: 14199:84ad90a492a9 user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Fri Oct 28 10:55:03 2011 +0200 summary: Issue 18343: applied code review feedback - getCustomerPaymentsWithCredit() searchs for the payments that belong to any child of the invoice's legal entity - getSelectedPaymentDetailsAndAmount() now delegates to the generic method getSelectedBaseOBObjectAmount() - when reactivating a payment, the invoice's description related to the payment is updated - when reactivating a payment, the used credits description is updated - we check the FINPaymentCreditList() instead of using the Stack to know if we need to link the credit payments details: https://code.openbravo.com/erp/devel/pi/rev/7e2a246d5c0a changeset: 14200:7e2a246d5c0a user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Wed Nov 02 15:55:58 2011 +0100 summary: Added module script to automatically link old credit payments details: https://code.openbravo.com/erp/devel/pi/rev/f689c825cc1d changeset: 14201:f689c825cc1d user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Wed Nov 02 17:26:09 2011 +0100 summary: Improved module script we only check for business partners with fin_payment information fixed several issues after testing details: https://code.openbravo.com/erp/devel/pi/rev/1a8899a5f282 changeset: 14202:1a8899a5f282 user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Wed Nov 02 17:43:13 2011 +0100 summary: Fixed issue 18343: Thanks to the LinkCreditPayments module script, the undoUsedCredit() doesn't need to calculate on the fly the credit payments used because the Used credit source tab will be always filled details: https://code.openbravo.com/erp/devel/pi/rev/69b54baf8a5a changeset: 14203:69b54baf8a5a user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Wed Nov 02 17:53:42 2011 +0100 summary: Merge Credit Payment Management Project diffstat: modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments.class | 0 modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/LinkCreditPaymentsData.class | 0 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml | 72 +- modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml | 26 - modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments.java | 100 + modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments_data.xsql | 89 + modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/src/org/openbravo/advpaymentmngt/modulescript/LinkCreditPaymentsData.java | 288 +++++ modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java | 388 +++++- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java | 33 + modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java | 30 +- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java | 194 ++- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_Utility.java | 25 + modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js | 5 + modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-toolbar.js | 2 + modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_TEXTINTERFACES.xml | 110 + modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.html | 64 +- modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.java | 50 +- modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.xml | 14 +- modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java | 294 +++- modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportExcel.jrxml | 164 ++- modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportPDF.jrxml | 71 + modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js | 4 + src-db/database/model/tables/FIN_PAYMENT_CREDIT.xml | 69 + src-db/database/sourcedata/AD_COLUMN.xml | 415 +++++++ src-db/database/sourcedata/AD_ELEMENT.xml | 26 + src-db/database/sourcedata/AD_FIELD.xml | 412 +++++++ src-db/database/sourcedata/AD_MODEL_OBJECT.xml | 48 + src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml | 80 + src-db/database/sourcedata/AD_REFERENCE.xml | 12 + src-db/database/sourcedata/AD_REF_TABLE.xml | 11 + src-db/database/sourcedata/AD_TAB.xml | 50 + src-db/database/sourcedata/AD_TABLE.xml | 24 + src-db/database/sourcedata/AD_TEXTINTERFACES.xml | 88 + src/org/openbravo/erpCommon/ad_actionButton/AddCreditPaymentGrid.srpt | 53 + src/org/openbravo/erpCommon/ad_actionButton/AddCreditPaymentGrid.xml | 43 + src/org/openbravo/erpCommon/ad_actionButton/CreditPaymentGrid.html | 570 ++++++++++ src/org/openbravo/erpCommon/ad_actionButton/CreditPaymentGrid.xml | 50 + 37 files changed, 3636 insertions(+), 338 deletions(-) diffs (truncated from 5029 to 300 lines): diff -r 2c91b7756596 -r 69b54baf8a5a modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments.class Binary file modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments.class has changed diff -r 2c91b7756596 -r 69b54baf8a5a modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/LinkCreditPaymentsData.class Binary file modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/LinkCreditPaymentsData.class has changed diff -r 2c91b7756596 -r 69b54baf8a5a modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml Sat Nov 05 23:44:54 2011 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml Wed Nov 02 17:53:42 2011 +0100 @@ -6275,43 +6275,6 @@ <!--B01D6A5AF6F14FD6947BDEEF22C35CF8--> <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION> <!--B01D6A5AF6F14FD6947BDEEF22C35CF8--></AD_COLUMN> -<!--B44BDBCFCEC243179D78A333FA0497A5--><AD_COLUMN> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <AD_COLUMN_ID><![CDATA[B44BDBCFCEC243179D78A333FA0497A5]]></AD_COLUMN_ID> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <NAME><![CDATA[Modify]]></NAME> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <DESCRIPTION><![CDATA[Modify existing transaction once created]]></DESCRIPTION> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <HELP><![CDATA[Process to modify transactions GL Item type once they have been created]]></HELP> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <COLUMNNAME><![CDATA[EM_APRM_Modify]]></COLUMNNAME> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <AD_TABLE_ID><![CDATA[FF8080812FFEC82D012FFECCE3400030]]></AD_TABLE_ID> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <AD_REFERENCE_ID><![CDATA[28]]></AD_REFERENCE_ID> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <FIELDLENGTH><![CDATA[1]]></FIELDLENGTH> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISKEY><![CDATA[N]]></ISKEY> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISPARENT><![CDATA[N]]></ISPARENT> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISMANDATORY><![CDATA[N]]></ISMANDATORY> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <SEQNO><![CDATA[410]]></SEQNO> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <AD_ELEMENT_ID><![CDATA[91DD92021CFA438DBBF2ABAFCB2089C5]]></AD_ELEMENT_ID> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <AD_PROCESS_ID><![CDATA[15C8708DFC464C2D91286E59624FDD18]]></AD_PROCESS_ID> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <POSITION><![CDATA[34]]></POSITION> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <ISAUTOSAVE><![CDATA[N]]></ISAUTOSAVE> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW> -<!--B44BDBCFCEC243179D78A333FA0497A5--> <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION> -<!--B44BDBCFCEC243179D78A333FA0497A5--></AD_COLUMN> - -<!--B50241F11C4F404583CACB2A88CE875F--><AD_COLUMN> -<!--B50241F11C4F404583CACB2A88CE875F--> <AD_COLUMN_ID><![CDATA[B50241F11C4F404583CACB2A88CE875F]]></AD_COLUMN_ID> <!--B50241F11C4F404583CACB2A88CE875F--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> <!--B50241F11C4F404583CACB2A88CE875F--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> <!--B50241F11C4F404583CACB2A88CE875F--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> @@ -7305,6 +7268,41 @@ <!--F860918881E54495981462670E8882BF--> <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION> <!--F860918881E54495981462670E8882BF--></AD_COLUMN> +<!--F860918881E54495981462670E8882BF--><AD_COLUMN> +<!--F860918881E54495981462670E8882BF--> <AD_COLUMN_ID><![CDATA[F860918881E54495981462670E8882BF]]></AD_COLUMN_ID> +<!--F860918881E54495981462670E8882BF--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--F860918881E54495981462670E8882BF--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--F860918881E54495981462670E8882BF--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--F860918881E54495981462670E8882BF--> <NAME><![CDATA[Organization]]></NAME> +<!--F860918881E54495981462670E8882BF--> <DESCRIPTION><![CDATA[Organizational entity within client]]></DESCRIPTION> +<!--F860918881E54495981462670E8882BF--> <HELP><![CDATA[An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.]]></HELP> +<!--F860918881E54495981462670E8882BF--> <COLUMNNAME><![CDATA[AD_Org_ID]]></COLUMNNAME> +<!--F860918881E54495981462670E8882BF--> <AD_TABLE_ID><![CDATA[FF808081331848750133184B38D20009]]></AD_TABLE_ID> +<!--F860918881E54495981462670E8882BF--> <AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID> +<!--F860918881E54495981462670E8882BF--> <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH> +<!--F860918881E54495981462670E8882BF--> <DEFAULTVALUE><![CDATA[@AD_ORG_ID@]]></DEFAULTVALUE> +<!--F860918881E54495981462670E8882BF--> <ISKEY><![CDATA[N]]></ISKEY> +<!--F860918881E54495981462670E8882BF--> <ISPARENT><![CDATA[N]]></ISPARENT> +<!--F860918881E54495981462670E8882BF--> <ISMANDATORY><![CDATA[N]]></ISMANDATORY> +<!--F860918881E54495981462670E8882BF--> <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE> +<!--F860918881E54495981462670E8882BF--> <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER> +<!--F860918881E54495981462670E8882BF--> <SEQNO><![CDATA[70]]></SEQNO> +<!--F860918881E54495981462670E8882BF--> <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED> +<!--F860918881E54495981462670E8882BF--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED> +<!--F860918881E54495981462670E8882BF--> <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN> +<!--F860918881E54495981462670E8882BF--> <AD_ELEMENT_ID><![CDATA[113]]></AD_ELEMENT_ID> +<!--F860918881E54495981462670E8882BF--> <ISSESSIONATTR><![CDATA[Y]]></ISSESSIONATTR> +<!--F860918881E54495981462670E8882BF--> <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY> +<!--F860918881E54495981462670E8882BF--> <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE> +<!--F860918881E54495981462670E8882BF--> <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS> +<!--F860918881E54495981462670E8882BF--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> +<!--F860918881E54495981462670E8882BF--> <POSITION><![CDATA[7]]></POSITION> +<!--F860918881E54495981462670E8882BF--> <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT> +<!--F860918881E54495981462670E8882BF--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE> +<!--F860918881E54495981462670E8882BF--> <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW> +<!--F860918881E54495981462670E8882BF--> <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION> +<!--F860918881E54495981462670E8882BF--></AD_COLUMN> + <!--FA5D73939D454F8E804DFACEE44D0C6E--><AD_COLUMN> <!--FA5D73939D454F8E804DFACEE44D0C6E--> <AD_COLUMN_ID><![CDATA[FA5D73939D454F8E804DFACEE44D0C6E]]></AD_COLUMN_ID> <!--FA5D73939D454F8E804DFACEE44D0C6E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 2c91b7756596 -r 69b54baf8a5a modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml Sat Nov 05 23:44:54 2011 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml Wed Nov 02 17:53:42 2011 +0100 @@ -6621,32 +6621,6 @@ <!--8C679A6AD6294811B5936EE59035CE36--> <ISSHOWNINSTATUSBAR><![CDATA[Y]]></ISSHOWNINSTATUSBAR> <!--8C679A6AD6294811B5936EE59035CE36--></AD_FIELD> -<!--8C8A4128A9384B3087CCD1759C603A0B--><AD_FIELD> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <AD_FIELD_ID><![CDATA[8C8A4128A9384B3087CCD1759C603A0B]]></AD_FIELD_ID> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <NAME><![CDATA[Product]]></NAME> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <DESCRIPTION><![CDATA[An item produced by a process.]]></DESCRIPTION> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <HELP><![CDATA[Identifies an item which is either purchased or sold in this organization.]]></HELP> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <AD_TAB_ID><![CDATA[FF8080812F213146012F2135BC25000E]]></AD_TAB_ID> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <AD_COLUMN_ID><![CDATA[BBA3DB68DBD844B29F1EEC9A04F112E8]]></AD_COLUMN_ID> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISDISPLAYED><![CDATA[N]]></ISDISPLAYED> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISREADONLY><![CDATA[Y]]></ISREADONLY> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <SEQNO><![CDATA[30]]></SEQNO> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <GRID_SEQNO><![CDATA[0]]></GRID_SEQNO> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE> -<!--8C8A4128A9384B3087CCD1759C603A0B--> <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR> -<!--8C8A4128A9384B3087CCD1759C603A0B--></AD_FIELD> <!--8DAAD5774E07425B8B4A46FA3E4A5294--><AD_FIELD> <!--8DAAD5774E07425B8B4A46FA3E4A5294--> <AD_FIELD_ID><![CDATA[8DAAD5774E07425B8B4A46FA3E4A5294]]></AD_FIELD_ID> diff -r 2c91b7756596 -r 69b54baf8a5a modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments.java Wed Nov 02 17:53:42 2011 +0100 @@ -0,0 +1,100 @@ +/* + ************************************************************************* + * The contents of this file are subject to the Openbravo Public License + * Version 1.0 (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) 2011 Openbravo SLU + * All Rights Reserved. + * Contributor(s): ______________________________________. + ************************************************************************* + */ +package org.openbravo.advpaymentmngt.modulescript; + +import java.math.BigDecimal; + +import javax.servlet.ServletException; + +import org.apache.log4j.Logger; +import org.openbravo.database.ConnectionProvider; +import org.openbravo.modulescript.ModuleScript; + +public class LinkCreditPayments extends ModuleScript { + private static final Logger log4j = Logger.getLogger(LinkCreditPayments.class); + + @Override + public void execute() { + try { + ConnectionProvider cp = getConnectionProvider(); + + final LinkCreditPaymentsData[] bPartners = LinkCreditPaymentsData.selectBusinessPartners(cp); + for (int i = 0; i < bPartners.length; i++) { + linkCreditPayments(cp, bPartners[i].cBpartnerId, bPartners[i].name, "Y"); + linkCreditPayments(cp, bPartners[i].cBpartnerId, bPartners[i].name, "N"); + } + } catch (Exception e) { + handleError(e); + } + + } + + private void linkCreditPayments(ConnectionProvider cp, String cbPartnerId, String cbPartnerName, + String isReceipt) throws ServletException { + LinkCreditPaymentsData[] paymentsUsingCredit = LinkCreditPaymentsData + .selectPaymentsUsingCredit(cp, isReceipt, cbPartnerId); + LinkCreditPaymentsData[] creditPayments = LinkCreditPaymentsData + .selectPaymentsGeneratingCredit(cp, isReceipt, cbPartnerId); + if (paymentsUsingCredit.length > 0 && creditPayments.length > 0) { + log4j.info("Linking Credit Payments for business Partner: " + cbPartnerName); + linkCreditPayment(cp, paymentsUsingCredit, creditPayments); + } + } + + private void linkCreditPayment(ConnectionProvider cp, + LinkCreditPaymentsData[] paymentsUsingCredit, LinkCreditPaymentsData[] creditPayments) + throws ServletException { + int j = 0; + BigDecimal availableCreditPayment = new BigDecimal(creditPayments[j].usedCredit); + for (int i = 0; i < paymentsUsingCredit.length; i++) { + BigDecimal consumedCredit = new BigDecimal(paymentsUsingCredit[i].usedCredit); + while (j < creditPayments.length && consumedCredit.compareTo(BigDecimal.ZERO) > 0) { + log4j.info("Payment Using Credit: " + paymentsUsingCredit[i].documentno + + ". Pending amount to distribute: " + consumedCredit); + if (availableCreditPayment.compareTo(BigDecimal.ZERO) == 0) { + availableCreditPayment = new BigDecimal(creditPayments[j].usedCredit); + } + if (availableCreditPayment.compareTo(consumedCredit) >= 0) { + log4j.info("linking with credit payment " + creditPayments[j].documentno + ", amount: " + + consumedCredit); + LinkCreditPaymentsData.insertUsedCreditSource(cp, paymentsUsingCredit[i].adClientId, + paymentsUsingCredit[i].adOrgId, paymentsUsingCredit[i].finPaymentId, + creditPayments[j].finPaymentId, consumedCredit.toString(), + creditPayments[j].cCurrencyId); + availableCreditPayment = availableCreditPayment.subtract(consumedCredit); + consumedCredit = BigDecimal.ZERO; + log4j.info("(available credit in the payment: " + availableCreditPayment + ") "); + } else { + log4j.info("linking with credit payment " + creditPayments[j].documentno + ", amount: " + + availableCreditPayment); + LinkCreditPaymentsData.insertUsedCreditSource(cp, paymentsUsingCredit[i].adClientId, + paymentsUsingCredit[i].adOrgId, paymentsUsingCredit[i].finPaymentId, + creditPayments[j].finPaymentId, availableCreditPayment.toString(), + creditPayments[j].cCurrencyId); + consumedCredit = consumedCredit.subtract(availableCreditPayment); + availableCreditPayment = BigDecimal.ZERO; + log4j.info("(credit payment has been fully used)"); + } + if (availableCreditPayment.compareTo(BigDecimal.ZERO) == 0) { + j++; + } + } + } + } +} diff -r 2c91b7756596 -r 69b54baf8a5a modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments_data.xsql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/LinkCreditPayments_data.xsql Wed Nov 02 17:53:42 2011 +0100 @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + ************************************************************************* + * The contents of this file are subject to the Openbravo Public License + * Version 1.0 (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) 2011 Openbravo SLU + * All Rights Reserved. + * Contributor(s): ______________________________________. + ************************************************************************* +--> +<SqlClass name="LinkCreditPaymentsData" package="org.openbravo.advpaymentmngt.modulescript"> + <SqlClassComment></SqlClassComment> + <SqlMethod name="selectPaymentsUsingCredit" type="preparedStatement" return="multiple"> + <SqlMethodComment></SqlMethodComment> + <Sql> + <![CDATA[ + SELECT FIN_PAYMENT_ID, USED_CREDIT, C_CURRENCY_ID, AD_CLIENT_ID, AD_ORG_ID, C_BPARTNER_ID, DOCUMENTNO, '' AS NAME + FROM FIN_PAYMENT P + WHERE NOT EXISTS (SELECT 1 + FROM FIN_PAYMENT_CREDIT PC + WHERE PC.FIN_PAYMENT_ID = P.FIN_PAYMENT_ID + ) + AND P.GENERATED_CREDIT = 0 AND P.USED_CREDIT > 0 + AND P.ISRECEIPT = ? + AND P.C_BPARTNER_ID = ? + ORDER BY P.PAYMENTDATE, P.DOCUMENTNO + ]]> + </Sql> + <Parameter name="isReceipt"/> + <Parameter name="cbPartnerId"/> + </SqlMethod> + <SqlMethod name="selectPaymentsGeneratingCredit" type="preparedStatement" return="multiple"> + <SqlMethodComment></SqlMethodComment> + <Sql> + <![CDATA[ + SELECT FIN_PAYMENT_ID, USED_CREDIT, C_CURRENCY_ID, DOCUMENTNO + FROM FIN_PAYMENT P + WHERE GENERATED_CREDIT > 0 AND USED_CREDIT > 0 + AND ISRECEIPT = ? + AND C_BPARTNER_ID = ? + ORDER BY PAYMENTDATE, DOCUMENTNO + ]]> + </Sql> + <Parameter name="isReceipt"/> + <Parameter name="cbPartnerId"/> + </SqlMethod> + <SqlMethod name="insertUsedCreditSource" type="preparedStatement" return="rowcount"> + <SqlMethodComment></SqlMethodComment> + <Sql> + <![CDATA[ + INSERT INTO fin_payment_credit( + fin_payment_credit_id, ad_client_id, ad_org_id, created, createdby, + updated, updatedby, isactive, fin_payment_id, fin_payment_id_used, + amount, c_currency_id) ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
