details:   /erp/devel/pi/rev/2dc001be8a10
changeset: 10706:2dc001be8a10
user:      Adrián Romero <adrianromero <at> openbravo.com>
date:      Wed Feb 16 14:51:11 2011 +0100
summary:   Backed out changeset 225560d67fc4

details:   /erp/devel/pi/rev/a1ea484305b4
changeset: 10707:a1ea484305b4
user:      Adrián Romero <adrianromero <at> openbravo.com>
date:      Wed Feb 16 14:51:26 2011 +0100
summary:   Merging backout

details:   /erp/devel/pi/rev/ae9c9328dd42
changeset: 10708:ae9c9328dd42
user:      Adrián Romero <adrianromero <at> openbravo.com>
date:      Wed Feb 16 14:53:09 2011 +0100
summary:   Merging backout

diffstat:

 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml  
                                                                               
|      2 +-
 
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                                                                      |      4 
+-
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.html
                                                   |      2 +-
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java
                                                   |    308 +-
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
                                                              |     16 +-
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java
                                                                |     11 +-
 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/ApplicationComponentProvider.java
                                               |      9 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/MenuManager.java
                                                                |     16 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/QuickCreateDataSource.java
                              |      4 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/QuickLaunchDataSource.java
                              |      4 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
                        |     25 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/templates/quick-launch.js.ftl
                           |    212 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
                                                  |      5 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-form.js.ftl
                                                   |     42 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
                                         |      6 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
                                                 |      6 +
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewTab.java
                                                           |      2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-formitem-widgets.js
                                                       |     13 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-quick-launch.js
                                                           |    272 +
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js
                                                          |     12 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-toolbar.js
                                                                |      6 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-utilities.js
                                                              |     30 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
                                                              |    239 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
                                                              |     95 +-
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/ob-form-styles.css
 |      1 -
 
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-db/database/sourcedata/OBCLKER_TEMPLATE.xml
                                                                           |    
 13 +
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/ApplicationComponent.java
                                                                 |     15 +-
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/ApplicationDynamicComponent.java
                                                          |     72 +
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelComponentProvider.java
                                                              |     15 +-
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelConstants.java
                                                                      |      7 +
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
                                                               |      6 +-
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/templates/application-dynamic-js.ftl
                                                      |     40 +
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/templates/application-js.ftl
                                                              |     23 +-
 modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml     
                                                                               
|      2 +-
 
modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                                                                         |      
4 +-
 
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoComponentProvider.java
                                                             |      4 +-
 
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/URLWidgetProvider.java
                                                                        |      
7 +-
 
modules/org.openbravo.client.myob/web/org.openbravo.client.myob/js/ob-getting-started-view.js
                                                                 |      9 +-
 
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.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.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.service.json/src/org/openbravo/service/json/DataToJsonConverter.java
                                                                    |      4 +-
 
modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml
                                                                         |      
2 +-
 
modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
                                                              |     12 +-
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
                                      |      5 +-
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
                                                  |     63 +-
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
                                                  |      1 +
 
modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
                                                  |    133 +-
 
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.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
                                                                        |     
22 +-
 modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml              
                                                                               
|      2 +-
 modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml   
                                                                               
|     12 +-
 referencedata/sampledata/F_B_International_Group.xml                           
                                                                               
|  10664 +++++++++-
 referencedata/sampledata/QA_Testing.xml                                        
                                                                               
|     10 +-
 src-db/database/model/tables/FIN_PAYMENT_RUN_PAYMENT.xml                       
                                                                               
|      2 +-
 src-db/database/model/tables/FIN_RECLINE_TEMP.xml                              
                                                                               
|     92 +
 src-db/database/model/triggers/C_INVOICEDISCOUNT_TRG.xml                       
                                                                               
|      2 +-
 src-db/database/model/triggers/C_ORDERDISCOUNT_TRG.xml                         
                                                                               
|      2 +-
 src-db/database/sourcedata/AD_COLUMN.xml                                       
                                                                               
|    537 +-
 src-db/database/sourcedata/AD_DATASET_TABLE.xml                                
                                                                               
|     14 +
 src-db/database/sourcedata/AD_ELEMENT.xml                                      
                                                                               
|     64 +-
 src-db/database/sourcedata/AD_FIELD.xml                                        
                                                                               
|     12 +-
 src-db/database/sourcedata/AD_MODULE.xml                                       
                                                                               
|      2 +-
 src-db/database/sourcedata/AD_TABLE.xml                                        
                                                                               
|     20 +
 src-db/database/sourcedata/OBCLKER_UIDEFINITION.xml                            
                                                                               
|     33 +
 src-db/database/sourcedata/OBUISEL_SELECTOR.xml                                
                                                                               
|     62 +
 src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml                          
                                                                               
|    339 +
 src/org/openbravo/base/structure/BaseOBObject.java                             
                                                                               
|      4 +-
 src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java                  
                                                                               
|     12 +-
 88 files changed, 13127 insertions(+), 631 deletions(-)

diffs (truncated from 21506 to 300 lines):

diff -r 225560d67fc4 -r ae9c9328dd42 
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml
--- 
a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml 
    Tue Feb 15 13:55:51 2011 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml 
    Wed Feb 16 14:53:09 2011 +0100
@@ -6,7 +6,7 @@
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <NAME><![CDATA[Advanced Payables and 
Receivables Mngmt]]></NAME>
-<!--A918E3331C404B889D69AA9BFAFB23AC-->  
<VERSION><![CDATA[3.0.10644]]></VERSION>
+<!--A918E3331C404B889D69AA9BFAFB23AC-->  
<VERSION><![CDATA[3.0.10665]]></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 225560d67fc4 -r ae9c9328dd42 
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
--- 
a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
  Tue Feb 15 13:55:51 2011 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
  Wed Feb 16 14:53:09 2011 +0100
@@ -7,7 +7,7 @@
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID>
-<!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<STARTVERSION><![CDATA[2.1.10644]]></STARTVERSION>
+<!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<STARTVERSION><![CDATA[2.1.10665]]></STARTVERSION>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <DEPENDANT_MODULE_NAME><![CDATA[User 
Interface Selector]]></DEPENDANT_MODULE_NAME>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--B97FC854C6DD41E692161585645A900F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--B97FC854C6DD41E692161585645A900F-->  
<AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--B97FC854C6DD41E692161585645A900F-->  
<AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--B97FC854C6DD41E692161585645A900F-->  
<STARTVERSION><![CDATA[3.0.10644]]></STARTVERSION>
+<!--B97FC854C6DD41E692161585645A900F-->  
<STARTVERSION><![CDATA[3.0.10665]]></STARTVERSION>
 <!--B97FC854C6DD41E692161585645A900F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--B97FC854C6DD41E692161585645A900F-->  
<DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--B97FC854C6DD41E692161585645A900F-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
diff -r 225560d67fc4 -r ae9c9328dd42 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.html
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.html
       Tue Feb 15 13:55:51 2011 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.html
       Wed Feb 16 14:53:09 2011 +0100
@@ -576,7 +576,7 @@
                   <button type="button"
                     id="buttonCancel"
                     class="ButtonLink"
-                    onclick="closeThisPage();return false;"
+                    onclick="submitThisPage('CANCEL');return false;"
                     onfocus="buttonEvent('onfocus', this); 
window.status='Cancel'; return true;"
                     onblur="buttonEvent('onblur', this);"
                     onkeyup="buttonEvent('onkeyup', this);"
diff -r 225560d67fc4 -r ae9c9328dd42 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java
       Tue Feb 15 13:55:51 2011 +0100
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java
       Wed Feb 16 14:53:09 2011 +0100
@@ -24,6 +24,7 @@
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 import javax.servlet.ServletException;
@@ -36,11 +37,13 @@
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.dao.MatchTransactionDao;
 import org.openbravo.advpaymentmngt.dao.TransactionsDao;
+import org.openbravo.advpaymentmngt.process.FIN_AddPayment;
 import org.openbravo.advpaymentmngt.utility.FIN_MatchedTransaction;
 import org.openbravo.advpaymentmngt.utility.FIN_MatchingTransaction;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.filter.IsIDFilter;
+import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.secureApp.HttpSecureAppServlet;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.base.session.OBPropertiesProvider;
@@ -48,16 +51,25 @@
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.data.FieldProvider;
+import org.openbravo.database.ConnectionProvider;
 import org.openbravo.erpCommon.utility.ComboTableData;
 import org.openbravo.erpCommon.utility.FieldProviderFactory;
 import org.openbravo.erpCommon.utility.OBError;
 import org.openbravo.erpCommon.utility.Utility;
+import org.openbravo.model.common.businesspartner.BusinessPartner;
+import org.openbravo.model.common.enterprise.DocumentType;
+import org.openbravo.model.common.enterprise.Organization;
 import org.openbravo.model.financialmgmt.payment.FIN_BankStatementLine;
 import org.openbravo.model.financialmgmt.payment.FIN_FinaccTransaction;
 import org.openbravo.model.financialmgmt.payment.FIN_FinancialAccount;
+import org.openbravo.model.financialmgmt.payment.FIN_Payment;
+import org.openbravo.model.financialmgmt.payment.FIN_PaymentMethod;
+import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail;
 import org.openbravo.model.financialmgmt.payment.FIN_Reconciliation;
+import org.openbravo.model.financialmgmt.payment.FIN_ReconciliationLineTemp;
 import org.openbravo.model.financialmgmt.payment.FIN_ReconciliationLine_v;
 import org.openbravo.model.financialmgmt.payment.MatchingAlgorithm;
+import org.openbravo.service.db.DalConnectionProvider;
 import org.openbravo.xmlEngine.XmlDocument;
 
 public class MatchTransaction extends HttpSecureAppServlet {
@@ -91,6 +103,7 @@
           OBContext.restorePreviousMode();
         }
       }
+      getSnapShot(reconciliation);
       if (MatchTransactionDao.getUnMatchedBankStatementLines(account).size() 
== 0
           && reconciledItems == 0) {
         OBError message = Utility.translateError(this, vars, 
vars.getLanguage(), Utility
@@ -137,6 +150,15 @@
           .getRequiredStringParameter("inpFinBankStatementLineId");
       unMatchBankStatementLine(response, strUnmatchBankStatementLineId);
 
+    } else if (vars.commandIn("CANCEL")) {
+      String strReconciliationId = 
vars.getRequiredStringParameter("inpfinReconciliationId");
+      restoreSnapShot(OBDal.getInstance().get(FIN_Reconciliation.class, 
strReconciliationId));
+      String strTabId = vars.getGlobalVariable("inpTabId", 
"MatchTransaction.adTabId");
+      String strWindowPath = Utility.getTabURL(strTabId, "R", true);
+      if (strWindowPath.equals(""))
+        strWindowPath = strDefaultServlet;
+
+      printPageClosePopUp(response, vars, strWindowPath);
     } else if (vars.commandIn("SAVE", "RECONCILE")) {
       OBContext.setAdminMode();
       try {
@@ -389,56 +411,15 @@
 
   private void unMatchBankStatementLine(HttpServletResponse response,
       String strUnmatchBankStatementLineId) throws IOException, 
ServletException {
-
-    OBContext.setAdminMode();
     try {
-      FIN_BankStatementLine bsline = 
OBDal.getInstance().get(FIN_BankStatementLine.class,
-          strUnmatchBankStatementLineId);
-
-      FIN_FinaccTransaction finTrans = bsline.getFinancialAccountTransaction();
-      if (finTrans != null) {
-        finTrans.setReconciliation(null);
-        bsline.setFinancialAccountTransaction(null);
-        OBDal.getInstance().save(finTrans);
-        OBDal.getInstance().flush();
-      }
-      bsline.setMatchingtype(null);
-      OBDal.getInstance().save(bsline);
-      OBDal.getInstance().flush();
-
-      if (finTrans != null) {
-        if (finTrans.getFinPayment() != null) {
-          finTrans.getFinPayment().setStatus(
-              (finTrans.getFinPayment().isReceipt()) ? "RDNC" : "PWNC");
-        }
-        boolean isReceipt = false;
-        if (finTrans.getFinPayment() != null) {
-          isReceipt = finTrans.getFinPayment().isReceipt();
-        } else {
-          isReceipt = 
finTrans.getDepositAmount().compareTo(finTrans.getPaymentAmount()) > 0;
-        }
-        finTrans.setStatus(isReceipt ? "RDNC" : "PWNC");
-        finTrans.setReconciliation(null);
-        OBDal.getInstance().save(finTrans);
-        OBDal.getInstance().flush();
-      }
-
-      // Execute un-matching logic defined by algorithm
-      MatchingAlgorithm ma = 
bsline.getBankStatement().getAccount().getMatchingAlgorithm();
-      FIN_MatchingTransaction matchingTransaction = new 
FIN_MatchingTransaction(ma
-          .getJavaClassName());
-      matchingTransaction.unmatch(finTrans);
-
+      unmatch(OBDal.getInstance().get(FIN_BankStatementLine.class, 
strUnmatchBankStatementLineId));
       response.setContentType("text/html; charset=UTF-8");
       PrintWriter out = response.getWriter();
       out.println("");
       out.close();
     } catch (Exception e) {
       throw new OBException(e);
-    } finally {
-      OBContext.restorePreviousMode();
     }
-
   }
 
   private FieldProvider[] getMatchedBankStatementLinesData(VariablesSecureApp 
vars,
@@ -612,6 +593,249 @@
     }
   }
 
+  private void getSnapShot(FIN_Reconciliation reconciliation) {
+    // First remove old temp info if exists
+    OBContext.setAdminMode();
+    try {
+      List<FIN_ReconciliationLineTemp> oldTempLines = reconciliation
+          .getFINReconciliationLineTempList();
+      for (FIN_ReconciliationLineTemp oldtempLine : oldTempLines) {
+        OBDal.getInstance().remove(oldtempLine);
+        OBDal.getInstance().flush();
+      }
+      // Now copy info taken from the reconciliation when first opened
+      List<FIN_ReconciliationLine_v> reconciledlines = reconciliation
+          .getFINReconciliationLineVList();
+      for (FIN_ReconciliationLine_v reconciledLine : reconciledlines) {
+        FIN_ReconciliationLineTemp lineTemp = OBProvider.getInstance().get(
+            FIN_ReconciliationLineTemp.class);
+        lineTemp.setClient(reconciledLine.getClient());
+        lineTemp.setOrganization(reconciledLine.getOrganization());
+        lineTemp.setReconciliation(reconciledLine.getReconciliation());
+        lineTemp.setBankStatementLine(reconciledLine.getBankStatementLine());
+        if (reconciledLine.getFinancialAccountTransaction() != null
+            && 
reconciledLine.getFinancialAccountTransaction().isCreatedByAlgorithm()) {
+          if (reconciledLine.getFinancialAccountTransaction().getFinPayment() 
!= null
+              && 
!reconciledLine.getFinancialAccountTransaction().getFinPayment()
+                  .isCreatedByAlgorithm()) {
+            lineTemp.setPayment(reconciledLine.getPayment());
+          } else if 
(reconciledLine.getFinancialAccountTransaction().getFinPayment()
+              
.getFINPaymentDetailList().get(0).getFINPaymentScheduleDetailList() != null
+              && 
reconciledLine.getFinancialAccountTransaction().getFinPayment()
+                  
.getFINPaymentDetailList().get(0).getFINPaymentScheduleDetailList().size() > 0
+              && 
(reconciledLine.getFinancialAccountTransaction().getFinPayment()
+                  
.getFINPaymentDetailList().get(0).getFINPaymentScheduleDetailList().get(0)
+                  .getInvoicePaymentSchedule() != null || reconciledLine
+                  
.getFinancialAccountTransaction().getFinPayment().getFINPaymentDetailList()
+                  
.get(0).getFINPaymentScheduleDetailList().get(0).getOrderPaymentSchedule() != 
null)) {
+            
lineTemp.setPaymentScheduleDetail(reconciledLine.getFinancialAccountTransaction()
+                
.getFinPayment().getFINPaymentDetailList().get(0).getFINPaymentScheduleDetailList()
+                .get(0));
+          }
+        } else {
+          
lineTemp.setFinancialAccountTransaction(reconciledLine.getFinancialAccountTransaction());
+        }
+        if (reconciledLine.getFinancialAccountTransaction().getFinPayment() != 
null) {
+          
lineTemp.setPaymentDocumentno(reconciledLine.getFinancialAccountTransaction()
+              .getFinPayment().getDocumentNo());
+        }
+        lineTemp
+            
.setMatched(reconciledLine.getBankStatementLine().getFinancialAccountTransaction()
 != null);
+        
lineTemp.setMatchlevel(reconciledLine.getBankStatementLine().getMatchingtype());
+        OBDal.getInstance().save(lineTemp);
+        OBDal.getInstance().flush();
+      }
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  private void restoreSnapShot(FIN_Reconciliation reconciliation) {
+    OBContext.setAdminMode();
+    List<FIN_BankStatementLine> tempBSL = new 
ArrayList<FIN_BankStatementLine>();
+    List<FIN_BankStatementLine> finalBSL = new 
ArrayList<FIN_BankStatementLine>();
+    try {
+      // First get the list of BSL which were reconciled at the beginning (L1)
+      List<FIN_ReconciliationLineTemp> oldTempLines = reconciliation
+          .getFINReconciliationLineTempList();
+      for (FIN_ReconciliationLineTemp oldTempLine : oldTempLines) {
+        tempBSL.add(oldTempLine.getBankStatementLine());
+      }
+      // Then get the list of BSL reconciled at last (L2)
+      List<FIN_ReconciliationLine_v> oldReconciliationLines = reconciliation
+          .getFINReconciliationLineVList();
+      for (FIN_ReconciliationLine_v oldReconciliationLine : 
oldReconciliationLines) {
+        finalBSL.add(oldReconciliationLine.getBankStatementLine());
+      }
+      // Unmatch L2-L1
+      finalBSL.removeAll(tempBSL);
+      unmatch(finalBSL);
+      // Match L1
+      match(reconciliation);
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  private void unmatch(List<FIN_BankStatementLine> toUnmatch) {
+    for (FIN_BankStatementLine bsl : toUnmatch) {
+      unmatch(bsl);
+    }
+  }
+
+  private void unmatch(FIN_BankStatementLine bsline) {
+    OBContext.setAdminMode();
+    try {
+      FIN_FinaccTransaction finTrans = bsline.getFinancialAccountTransaction();
+      if (finTrans != null) {
+        finTrans.setReconciliation(null);
+        bsline.setFinancialAccountTransaction(null);
+        OBDal.getInstance().save(finTrans);
+        OBDal.getInstance().flush();
+      }
+      bsline.setMatchingtype(null);
+      OBDal.getInstance().save(bsline);
+      OBDal.getInstance().flush();
+
+      if (finTrans != null) {
+        if (finTrans.getFinPayment() != null) {
+          finTrans.getFinPayment().setStatus(
+              (finTrans.getFinPayment().isReceipt()) ? "RDNC" : "PWNC");
+        }
+        boolean isReceipt = false;
+        if (finTrans.getFinPayment() != null) {
+          isReceipt = finTrans.getFinPayment().isReceipt();
+        } else {
+          isReceipt = 
finTrans.getDepositAmount().compareTo(finTrans.getPaymentAmount()) > 0;
+        }
+        finTrans.setStatus(isReceipt ? "RDNC" : "PWNC");
+        finTrans.setReconciliation(null);
+        OBDal.getInstance().save(finTrans);

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to