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

Reply via email to