[Relaxing Reconciliations] New buttons to be able to edit old documents
authorEduardo Argal Guibert <eduardo.argal@openbravo.com>
Fri, 28 Feb 2014 11:23:32 +0100
changeset 22292 627fb422fbe8
parent 22291 89155988f108
child 22293 0b033ca5bd1b
child 22319 2a3305b1338e
[Relaxing Reconciliations] New buttons to be able to edit old documents
modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValue.class
modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValueData.class
modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_BANKSTATEMENT.xml
modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_FINANCIAL_ACCOUNT.xml
modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_RECONCILIATION.xml
modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_BNKSTM_LINE_CHECK_TRG.xml
modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_RECON_CHECK_TRG.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_AUXILIARINPUT.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_ELEMENT.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODEL_OBJECT.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS_PARA.xml
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml
modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValue.java
modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValue_data.xsql
modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/src/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValueData.java
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/MatchTransactionDao.java
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_BankStatementProcess.java
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ReconciliationProcess.java
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-action-button.js
src-db/database/sourcedata/AD_AUXILIARINPUT.xml
Binary file modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValue.class has changed
Binary file modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValueData.class has changed
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_BANKSTATEMENT.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_BANKSTATEMENT.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -5,5 +5,9 @@
         <default><![CDATA[P]]></default>
         <onCreateDefault/>
       </column>
+      <column name="EM_APRM_PROCESS_BS_FORCE" primaryKey="false" required="false" type="VARCHAR" size="60" autoIncrement="false">
+        <default><![CDATA[P]]></default>
+        <onCreateDefault/>
+      </column>
     </table>
   </database>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_FINANCIAL_ACCOUNT.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_FINANCIAL_ACCOUNT.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -17,5 +17,9 @@
         <default/>
         <onCreateDefault/>
       </column>
+      <column name="EM_APRM_MATCHTRANS_FORCE" primaryKey="false" required="false" type="CHAR" size="1" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
     </table>
   </database>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_RECONCILIATION.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/modifiedTables/FIN_RECONCILIATION.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -17,6 +17,10 @@
         <default><![CDATA[P]]></default>
         <onCreateDefault/>
       </column>
+      <column name="EM_APRM_PROCESS_REC_FORCE" primaryKey="false" required="false" type="VARCHAR" size="60" autoIncrement="false">
+        <default><![CDATA[P]]></default>
+        <onCreateDefault/>
+      </column>
       <check name="EM_APRM_REC_PRINTDET_CHK"><![CDATA[EM_APRM_PRINTDETAILED IN ('Y', 'N')]]></check>
       <check name="EM_APRM_REC_PRINTSUM_CHK"><![CDATA[EM_APRM_PRINTSUMMARY IN ('Y', 'N')]]></check>
     </table>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_BNKSTM_LINE_CHECK_TRG.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_BNKSTM_LINE_CHECK_TRG.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -62,6 +62,28 @@
   IF((DELETING OR INSERTING) AND v_Processed='Y') THEN
 	RAISE_APPLICATION_ERROR(-20000, '@20501@');
   END IF;
+  IF(DELETING) THEN
+    IF( :OLD.FIN_FINACC_TRANSACTION_ID IS NOT NULL) THEN
+	    RAISE_APPLICATION_ERROR(-20000, '@APRM_BSTLine_Matched@');
+    END IF;
+  END IF;
+  IF (UPDATING) THEN
+  	IF (:OLD.FIN_FINACC_TRANSACTION_ID IS NOT NULL) THEN
+    	    IF(((COALESCE(:OLD.AD_ORG_ID, '0') <> COALESCE(:NEW.AD_ORG_ID, '0'))
+      OR(COALESCE(:OLD.ISACTIVE, '0') <> COALESCE(:NEW.ISACTIVE, '0'))
+      OR(COALESCE(:OLD.FIN_BANKSTATEMENT_ID, '0') <> COALESCE(:NEW.FIN_BANKSTATEMENT_ID, '0'))
+      OR(COALESCE(:OLD.LINE, 0) <> COALESCE(:NEW.LINE, 0))
+      OR(COALESCE(:OLD.BPARTNERNAME, '0') <> COALESCE(:NEW.BPARTNERNAME, '0'))
+      OR(COALESCE(:OLD.DATETRX, v_DateNull) <> COALESCE(:NEW.DATETRX, v_DateNull))
+      OR(COALESCE(:OLD.CRAMOUNT, 0) <> COALESCE(:NEW.CRAMOUNT, 0))
+      OR(COALESCE(:OLD.DRAMOUNT, 0) <> COALESCE(:NEW.DRAMOUNT, 0))
+      OR(COALESCE(:OLD.REFERENCENO, '0') <> COALESCE(:NEW.REFERENCENO, '0'))
+      )) THEN
+      RAISE_APPLICATION_ERROR(-20000, '@APRM_BSTLine_Matched@');
+    END IF;
+
+  	END IF;
+  END IF;
 END APRM_FIN_BNKSTM_LINE_CHECK_TRG
 ]]></body>
     </trigger>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_RECON_CHECK_TRG.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/model/triggers/APRM_FIN_RECON_CHECK_TRG.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -34,8 +34,6 @@
       OR(COALESCE(:OLD.C_DOCTYPE_ID, '0') <> COALESCE(:NEW.C_DOCTYPE_ID, '0'))
       OR(COALESCE(:OLD.DATETO, v_DateNull) <> COALESCE(:NEW.DATETO, v_DateNull))
       OR(COALESCE(:OLD.STATEMENTDATE, v_DateNull) <> COALESCE(:NEW.STATEMENTDATE, v_DateNull))
-      OR(COALESCE(:OLD.ENDINGBALANCE, 0) <> COALESCE(:NEW.ENDINGBALANCE, 0))
-      OR(COALESCE(:OLD.STARTINGBALANCE, 0) <> COALESCE(:NEW.STARTINGBALANCE, 0))
       OR(COALESCE(:OLD.DOCSTATUS, '0') <> COALESCE(:NEW.DOCSTATUS, '0')))) THEN
       RAISE_APPLICATION_ERROR(-20000, '@20501@');
     END IF;
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_AUXILIARINPUT.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_AUXILIARINPUT.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -22,6 +22,20 @@
 <!--21943DF0B89F4AE3AF14A9C06F1181C2-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--21943DF0B89F4AE3AF14A9C06F1181C2--></AD_AUXILIARINPUT>
 
+<!--29B80A89DBA84293A75434979C655101--><AD_AUXILIARINPUT>
+<!--29B80A89DBA84293A75434979C655101-->  <AD_AUXILIARINPUT_ID><![CDATA[29B80A89DBA84293A75434979C655101]]></AD_AUXILIARINPUT_ID>
+<!--29B80A89DBA84293A75434979C655101-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--29B80A89DBA84293A75434979C655101-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--29B80A89DBA84293A75434979C655101-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--29B80A89DBA84293A75434979C655101-->  <AD_TAB_ID><![CDATA[FF8080813320657F0133209DE21B0042]]></AD_TAB_ID>
+<!--29B80A89DBA84293A75434979C655101-->  <NAME><![CDATA[APRM_LASTREC]]></NAME>
+<!--29B80A89DBA84293A75434979C655101-->  <CODE><![CDATA[@SQL=select fin_reconciliation_id from fin_reconciliation where created = (
+select max(created)
+from fin_reconciliation 
+where fin_financial_account_id = @FIN_Financial_Account_ID@)]]></CODE>
+<!--29B80A89DBA84293A75434979C655101-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--29B80A89DBA84293A75434979C655101--></AD_AUXILIARINPUT>
+
 <!--4FA457B12B4E411FA662D4D97A53B2E1--><AD_AUXILIARINPUT>
 <!--4FA457B12B4E411FA662D4D97A53B2E1-->  <AD_AUXILIARINPUT_ID><![CDATA[4FA457B12B4E411FA662D4D97A53B2E1]]></AD_AUXILIARINPUT_ID>
 <!--4FA457B12B4E411FA662D4D97A53B2E1-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -44,6 +58,17 @@
 <!--9D630C9E4C734361BFB09B153EEE3BCB-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--9D630C9E4C734361BFB09B153EEE3BCB--></AD_AUXILIARINPUT>
 
+<!--B1C25B989C164EDFB7F9B26CB799DDAA--><AD_AUXILIARINPUT>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA-->  <AD_AUXILIARINPUT_ID><![CDATA[B1C25B989C164EDFB7F9B26CB799DDAA]]></AD_AUXILIARINPUT_ID>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA-->  <AD_TAB_ID><![CDATA[C56E698100314ABBBBD3A89626CA551C]]></AD_TAB_ID>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA-->  <NAME><![CDATA[APRM_ISRECONCILED]]></NAME>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA-->  <CODE><![CDATA[@SQL=SELECT 1 FROM DUAL WHERE EXISTS (SELECT 1 FROM FIN_BANKSTATEMENTLINE WHERE FIN_FINACC_TRANSACTION_ID IS NOT NULL AND FIN_BANKSTATEMENT_ID = @FIN_BankStatement_ID@) OR EXISTS (SELECT 1 FROM FIN_BANKSTATEMENTLINE, FIN_BANKSTATEMENT  WHERE DATETRX > (SELECT MAX(DATETRX) FROM FIN_BANKSTATEMENTLINE WHERE FIN_BANKSTATEMENT_ID = @FIN_BankStatement_ID@) AND  FIN_BANKSTATEMENT.FIN_BANKSTATEMENT_ID = FIN_BANKSTATEMENTLINE.FIN_BANKSTATEMENT_ID AND FIN_BANKSTATEMENT.FIN_FINANCIAL_ACCOUNT_ID = @FIN_Financial_Account_ID@) ]]></CODE>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--B1C25B989C164EDFB7F9B26CB799DDAA--></AD_AUXILIARINPUT>
+
 <!--D08EBACB459849488F49089EA28F96D9--><AD_AUXILIARINPUT>
 <!--D08EBACB459849488F49089EA28F96D9-->  <AD_AUXILIARINPUT_ID><![CDATA[D08EBACB459849488F49089EA28F96D9]]></AD_AUXILIARINPUT_ID>
 <!--D08EBACB459849488F49089EA28F96D9-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_COLUMN.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -1545,6 +1545,43 @@
 <!--41DAD5FF72274650A3C41D103F20C111-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
 <!--41DAD5FF72274650A3C41D103F20C111--></AD_COLUMN>
 
+<!--422F3732DA324AE2AA34AE2E44D42037--><AD_COLUMN>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_COLUMN_ID><![CDATA[422F3732DA324AE2AA34AE2E44D42037]]></AD_COLUMN_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <NAME><![CDATA[EM_APRM_Process_Reconciliation_Force]]></NAME>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <COLUMNNAME><![CDATA[EM_APRM_Process_Rec_Force]]></COLUMNNAME>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_TABLE_ID><![CDATA[B1B7075C46934F0A9FD4C4D0F1457B42]]></AD_TABLE_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_REFERENCE_ID><![CDATA[28]]></AD_REFERENCE_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_REFERENCE_VALUE_ID><![CDATA[FF8080812E443491012E443C053A001A]]></AD_REFERENCE_VALUE_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_VAL_RULE_ID><![CDATA[FF8080812E448A62012E44943A160017]]></AD_VAL_RULE_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <FIELDLENGTH><![CDATA[60]]></FIELDLENGTH>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <DEFAULTVALUE><![CDATA[P]]></DEFAULTVALUE>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <SEQNO><![CDATA[280]]></SEQNO>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_ELEMENT_ID><![CDATA[1C8028555014460F81C6ACC811CA74E2]]></AD_ELEMENT_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_PROCESS_ID><![CDATA[6BF16EFC772843AC9A17552AE0B26AB7]]></AD_PROCESS_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <POSITION><![CDATA[27]]></POSITION>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--422F3732DA324AE2AA34AE2E44D42037-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--422F3732DA324AE2AA34AE2E44D42037--></AD_COLUMN>
+
 <!--42C6FD4ECBF6451F9D570317F4472FD7--><AD_COLUMN>
 <!--42C6FD4ECBF6451F9D570317F4472FD7-->  <AD_COLUMN_ID><![CDATA[42C6FD4ECBF6451F9D570317F4472FD7]]></AD_COLUMN_ID>
 <!--42C6FD4ECBF6451F9D570317F4472FD7-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -2466,6 +2503,42 @@
 <!--68C853FD393C4620A3947EC34C416B9A-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
 <!--68C853FD393C4620A3947EC34C416B9A--></AD_COLUMN>
 
+<!--6B5C965B623748689A689838835C0AC2--><AD_COLUMN>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_COLUMN_ID><![CDATA[6B5C965B623748689A689838835C0AC2]]></AD_COLUMN_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--6B5C965B623748689A689838835C0AC2-->  <NAME><![CDATA[EM_APRM_Process Bank Statement Force]]></NAME>
+<!--6B5C965B623748689A689838835C0AC2-->  <COLUMNNAME><![CDATA[EM_APRM_Process_BS_Force]]></COLUMNNAME>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_TABLE_ID><![CDATA[D4C23A17190649E7B78F55A05AF3438C]]></AD_TABLE_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_REFERENCE_ID><![CDATA[28]]></AD_REFERENCE_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_REFERENCE_VALUE_ID><![CDATA[EC75B6F5A9504DB6B3F3356EA85F15EE]]></AD_REFERENCE_VALUE_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <FIELDLENGTH><![CDATA[60]]></FIELDLENGTH>
+<!--6B5C965B623748689A689838835C0AC2-->  <DEFAULTVALUE><![CDATA[P]]></DEFAULTVALUE>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--6B5C965B623748689A689838835C0AC2-->  <SEQNO><![CDATA[220]]></SEQNO>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_ELEMENT_ID><![CDATA[D42C1F18622F4773989190BB8C2C8436]]></AD_ELEMENT_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_PROCESS_ID><![CDATA[2DDE7D3618034C38A4462B7F3456C28D]]></AD_PROCESS_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISSESSIONATTR><![CDATA[Y]]></ISSESSIONATTR>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--6B5C965B623748689A689838835C0AC2-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--6B5C965B623748689A689838835C0AC2-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--6B5C965B623748689A689838835C0AC2-->  <POSITION><![CDATA[22]]></POSITION>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--6B5C965B623748689A689838835C0AC2-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--6B5C965B623748689A689838835C0AC2-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--6B5C965B623748689A689838835C0AC2-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--6B5C965B623748689A689838835C0AC2--></AD_COLUMN>
+
 <!--6BBCB749C7C640A08F573BF86D270171--><AD_COLUMN>
 <!--6BBCB749C7C640A08F573BF86D270171-->  <AD_COLUMN_ID><![CDATA[6BBCB749C7C640A08F573BF86D270171]]></AD_COLUMN_ID>
 <!--6BBCB749C7C640A08F573BF86D270171-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -5377,6 +5450,40 @@
 <!--9D382AE31EFB4496B0A531A0FD72E73B-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
 <!--9D382AE31EFB4496B0A531A0FD72E73B--></AD_COLUMN>
 
+<!--9DC8500B414640E09BF61A3D14FE13D1--><AD_COLUMN>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <AD_COLUMN_ID><![CDATA[9DC8500B414640E09BF61A3D14FE13D1]]></AD_COLUMN_ID>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <NAME><![CDATA[EM_APRM_MatchTransactions_Force]]></NAME>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <COLUMNNAME><![CDATA[EM_APRM_MatchTrans_Force]]></COLUMNNAME>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <AD_TABLE_ID><![CDATA[B129E53BC0E747879F7BA17F0AECEC32]]></AD_TABLE_ID>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <AD_REFERENCE_ID><![CDATA[28]]></AD_REFERENCE_ID>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <FIELDLENGTH><![CDATA[1]]></FIELDLENGTH>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <SEQNO><![CDATA[450]]></SEQNO>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <AD_ELEMENT_ID><![CDATA[F79620AE1CC041308045C23E661BD907]]></AD_ELEMENT_ID>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <AD_PROCESS_ID><![CDATA[19EEA22FCA464979B3ADAD3A967ADA52]]></AD_PROCESS_ID>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <POSITION><![CDATA[39]]></POSITION>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--9DC8500B414640E09BF61A3D14FE13D1-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--9DC8500B414640E09BF61A3D14FE13D1--></AD_COLUMN>
+
 <!--9DE9E45A80994A969AC623FA97A3C0E8--><AD_COLUMN>
 <!--9DE9E45A80994A969AC623FA97A3C0E8-->  <AD_COLUMN_ID><![CDATA[9DE9E45A80994A969AC623FA97A3C0E8]]></AD_COLUMN_ID>
 <!--9DE9E45A80994A969AC623FA97A3C0E8-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -5511,7 +5618,7 @@
 <!--A028C07508878CB9E040007F01007210-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
 <!--A028C07508878CB9E040007F01007210-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
 <!--A028C07508878CB9E040007F01007210-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--A028C07508878CB9E040007F01007210-->  <POSITION><![CDATA[30]]></POSITION>
+<!--A028C07508878CB9E040007F01007210-->  <POSITION><![CDATA[35]]></POSITION>
 <!--A028C07508878CB9E040007F01007210-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
 <!--A028C07508878CB9E040007F01007210-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
 <!--A028C07508878CB9E040007F01007210-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
@@ -5545,7 +5652,7 @@
 <!--A04179EAC69DF848E040007F01004523-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
 <!--A04179EAC69DF848E040007F01004523-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
 <!--A04179EAC69DF848E040007F01004523-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--A04179EAC69DF848E040007F01004523-->  <POSITION><![CDATA[31]]></POSITION>
+<!--A04179EAC69DF848E040007F01004523-->  <POSITION><![CDATA[36]]></POSITION>
 <!--A04179EAC69DF848E040007F01004523-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
 <!--A04179EAC69DF848E040007F01004523-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
 <!--A04179EAC69DF848E040007F01004523-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
@@ -5579,7 +5686,7 @@
 <!--A04179EAC69EF848E040007F01004523-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
 <!--A04179EAC69EF848E040007F01004523-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
 <!--A04179EAC69EF848E040007F01004523-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--A04179EAC69EF848E040007F01004523-->  <POSITION><![CDATA[32]]></POSITION>
+<!--A04179EAC69EF848E040007F01004523-->  <POSITION><![CDATA[37]]></POSITION>
 <!--A04179EAC69EF848E040007F01004523-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
 <!--A04179EAC69EF848E040007F01004523-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
 <!--A04179EAC69EF848E040007F01004523-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
@@ -5614,7 +5721,7 @@
 <!--A04179EAC69FF848E040007F01004523-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
 <!--A04179EAC69FF848E040007F01004523-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
 <!--A04179EAC69FF848E040007F01004523-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--A04179EAC69FF848E040007F01004523-->  <POSITION><![CDATA[33]]></POSITION>
+<!--A04179EAC69FF848E040007F01004523-->  <POSITION><![CDATA[38]]></POSITION>
 <!--A04179EAC69FF848E040007F01004523-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
 <!--A04179EAC69FF848E040007F01004523-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
 <!--A04179EAC69FF848E040007F01004523-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_ELEMENT.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_ELEMENT.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -36,6 +36,18 @@
 <!--0CF797887AC9494F9C250A6B6EB5D60D-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--0CF797887AC9494F9C250A6B6EB5D60D--></AD_ELEMENT>
 
+<!--1C8028555014460F81C6ACC811CA74E2--><AD_ELEMENT>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <AD_ELEMENT_ID><![CDATA[1C8028555014460F81C6ACC811CA74E2]]></AD_ELEMENT_ID>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <COLUMNNAME><![CDATA[EM_APRM_Process_Rec_Force]]></COLUMNNAME>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <NAME><![CDATA[EM_APRM_Process_Reconciliation_Force]]></NAME>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <PRINTNAME><![CDATA[EM_APRM_Process_Reconciliation_Force]]></PRINTNAME>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--1C8028555014460F81C6ACC811CA74E2-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--1C8028555014460F81C6ACC811CA74E2--></AD_ELEMENT>
+
 <!--256AB5C3D6144B2C9884CF0FA4D81911--><AD_ELEMENT>
 <!--256AB5C3D6144B2C9884CF0FA4D81911-->  <AD_ELEMENT_ID><![CDATA[256AB5C3D6144B2C9884CF0FA4D81911]]></AD_ELEMENT_ID>
 <!--256AB5C3D6144B2C9884CF0FA4D81911-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -677,6 +689,18 @@
 <!--D2AC3F75FCDC4BC187A1F492C46D68D1-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--D2AC3F75FCDC4BC187A1F492C46D68D1--></AD_ELEMENT>
 
+<!--D42C1F18622F4773989190BB8C2C8436--><AD_ELEMENT>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <AD_ELEMENT_ID><![CDATA[D42C1F18622F4773989190BB8C2C8436]]></AD_ELEMENT_ID>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <COLUMNNAME><![CDATA[EM_APRM_Process_BS_Force]]></COLUMNNAME>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <NAME><![CDATA[EM_APRM_Process Bank Statement Force]]></NAME>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <PRINTNAME><![CDATA[EM_APRM_Process Bank Statement Force]]></PRINTNAME>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--D42C1F18622F4773989190BB8C2C8436-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--D42C1F18622F4773989190BB8C2C8436--></AD_ELEMENT>
+
 <!--DB85AA94D6DF4D7CB29CE7999B15F9C7--><AD_ELEMENT>
 <!--DB85AA94D6DF4D7CB29CE7999B15F9C7-->  <AD_ELEMENT_ID><![CDATA[DB85AA94D6DF4D7CB29CE7999B15F9C7]]></AD_ELEMENT_ID>
 <!--DB85AA94D6DF4D7CB29CE7999B15F9C7-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -719,6 +743,18 @@
 <!--EDB9CF491555465382F828F48291A0C0-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--EDB9CF491555465382F828F48291A0C0--></AD_ELEMENT>
 
+<!--F79620AE1CC041308045C23E661BD907--><AD_ELEMENT>
+<!--F79620AE1CC041308045C23E661BD907-->  <AD_ELEMENT_ID><![CDATA[F79620AE1CC041308045C23E661BD907]]></AD_ELEMENT_ID>
+<!--F79620AE1CC041308045C23E661BD907-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F79620AE1CC041308045C23E661BD907-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F79620AE1CC041308045C23E661BD907-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F79620AE1CC041308045C23E661BD907-->  <COLUMNNAME><![CDATA[EM_APRM_MatchTrans_Force]]></COLUMNNAME>
+<!--F79620AE1CC041308045C23E661BD907-->  <NAME><![CDATA[EM_APRM_MatchTransactions_Force]]></NAME>
+<!--F79620AE1CC041308045C23E661BD907-->  <PRINTNAME><![CDATA[EM_APRM_MatchTransactions_Force]]></PRINTNAME>
+<!--F79620AE1CC041308045C23E661BD907-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--F79620AE1CC041308045C23E661BD907-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--F79620AE1CC041308045C23E661BD907--></AD_ELEMENT>
+
 <!--FC780C136EFA4D98B2435A9448FA44AD--><AD_ELEMENT>
 <!--FC780C136EFA4D98B2435A9448FA44AD-->  <AD_ELEMENT_ID><![CDATA[FC780C136EFA4D98B2435A9448FA44AD]]></AD_ELEMENT_ID>
 <!--FC780C136EFA4D98B2435A9448FA44AD-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_FIELD.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -5251,7 +5251,6 @@
 <!--5422F2DED3234598A429221281F8B61D-->  <AD_COLUMN_ID><![CDATA[F362B84F4718449EAD840F1C25667B37]]></AD_COLUMN_ID>
 <!--5422F2DED3234598A429221281F8B61D-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--5422F2DED3234598A429221281F8B61D-->  <ISDISPLAYED><![CDATA[N]]></ISDISPLAYED>
-<!--5422F2DED3234598A429221281F8B61D-->  <DISPLAYLOGIC><![CDATA[@Processed@='Y']]></DISPLAYLOGIC>
 <!--5422F2DED3234598A429221281F8B61D-->  <DISPLAYLENGTH><![CDATA[60]]></DISPLAYLENGTH>
 <!--5422F2DED3234598A429221281F8B61D-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--5422F2DED3234598A429221281F8B61D-->  <SEQNO><![CDATA[170]]></SEQNO>
@@ -5516,6 +5515,33 @@
 <!--56C9A3AC73DC456293EB5E18A7E88048-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--56C9A3AC73DC456293EB5E18A7E88048--></AD_FIELD>
 
+<!--573AAAA411BD4BB5B6A155A820199184--><AD_FIELD>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <AD_FIELD_ID><![CDATA[573AAAA411BD4BB5B6A155A820199184]]></AD_FIELD_ID>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <NAME><![CDATA[Bank Statement Process Force]]></NAME>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <AD_TAB_ID><![CDATA[C56E698100314ABBBBD3A89626CA551C]]></AD_TAB_ID>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <AD_COLUMN_ID><![CDATA[6B5C965B623748689A689838835C0AC2]]></AD_COLUMN_ID>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <DISPLAYLOGIC><![CDATA[@APRM_ISRECONCILED@!'']]></DISPLAYLOGIC>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <DISPLAYLENGTH><![CDATA[60]]></DISPLAYLENGTH>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <SEQNO><![CDATA[130]]></SEQNO>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--573AAAA411BD4BB5B6A155A820199184-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--573AAAA411BD4BB5B6A155A820199184--></AD_FIELD>
+
 <!--573C4BEE22054AAEA437A3EEA5A03E70--><AD_FIELD>
 <!--573C4BEE22054AAEA437A3EEA5A03E70-->  <AD_FIELD_ID><![CDATA[573C4BEE22054AAEA437A3EEA5A03E70]]></AD_FIELD_ID>
 <!--573C4BEE22054AAEA437A3EEA5A03E70-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -12416,7 +12442,7 @@
 <!--A0417A0E9255CA28E040007F01003C18-->  <AD_COLUMN_ID><![CDATA[A04179EAC69DF848E040007F01004523]]></AD_COLUMN_ID>
 <!--A0417A0E9255CA28E040007F01003C18-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--A0417A0E9255CA28E040007F01003C18-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--A0417A0E9255CA28E040007F01003C18-->  <DISPLAYLOGIC><![CDATA[@Type@='B'&@FIN_Matching_Algorithm_ID@!'']]></DISPLAYLOGIC>
+<!--A0417A0E9255CA28E040007F01003C18-->  <DISPLAYLOGIC><![CDATA[@Type@='B'&@FIN_Matching_Algorithm_ID@!''&(@LASTRECON@=@DRAFTRECONCILIATION@|@DRAFTRECONCILIATION@='')]]></DISPLAYLOGIC>
 <!--A0417A0E9255CA28E040007F01003C18-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--A0417A0E9255CA28E040007F01003C18-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--A0417A0E9255CA28E040007F01003C18-->  <SEQNO><![CDATA[240]]></SEQNO>
@@ -12638,6 +12664,7 @@
 <!--A28B0A82995D87F5E040007F010067A0-->  <AD_COLUMN_ID><![CDATA[A28B0A82995C87F5E040007F010067A0]]></AD_COLUMN_ID>
 <!--A28B0A82995D87F5E040007F010067A0-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--A28B0A82995D87F5E040007F010067A0-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--A28B0A82995D87F5E040007F010067A0-->  <DISPLAYLOGIC><![CDATA[@APRM_ISRECONCILED@='']]></DISPLAYLOGIC>
 <!--A28B0A82995D87F5E040007F010067A0-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--A28B0A82995D87F5E040007F010067A0-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--A28B0A82995D87F5E040007F010067A0-->  <SEQNO><![CDATA[130]]></SEQNO>
@@ -15959,6 +15986,33 @@
 <!--B739AFFFB5CC4E1C847EB25ABE62A233-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--B739AFFFB5CC4E1C847EB25ABE62A233--></AD_FIELD>
 
+<!--B7C06E2CD9EC460FBA493804E274ACC7--><AD_FIELD>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <AD_FIELD_ID><![CDATA[B7C06E2CD9EC460FBA493804E274ACC7]]></AD_FIELD_ID>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <NAME><![CDATA[Match Statement Force]]></NAME>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <AD_TAB_ID><![CDATA[2845D761A8394468BD3BA4710AA888D4]]></AD_TAB_ID>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <AD_COLUMN_ID><![CDATA[9DC8500B414640E09BF61A3D14FE13D1]]></AD_COLUMN_ID>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <DISPLAYLOGIC><![CDATA[@Type@='B'&@FIN_Matching_Algorithm_ID@!''&(@LASTRECON@!@DRAFTRECONCILIATION@&@DRAFTRECONCILIATION@!'')]]></DISPLAYLOGIC>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <SEQNO><![CDATA[240]]></SEQNO>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--B7C06E2CD9EC460FBA493804E274ACC7-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--B7C06E2CD9EC460FBA493804E274ACC7--></AD_FIELD>
+
 <!--B8756B0E70554048BCC9F1727B8A5AA4--><AD_FIELD>
 <!--B8756B0E70554048BCC9F1727B8A5AA4-->  <AD_FIELD_ID><![CDATA[B8756B0E70554048BCC9F1727B8A5AA4]]></AD_FIELD_ID>
 <!--B8756B0E70554048BCC9F1727B8A5AA4-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -16983,7 +17037,7 @@
 <!--C2639FEBB29C4CB4A363DE376E294FD6-->  <AD_COLUMN_ID><![CDATA[B50241F11C4F404583CACB2A88CE875F]]></AD_COLUMN_ID>
 <!--C2639FEBB29C4CB4A363DE376E294FD6-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--C2639FEBB29C4CB4A363DE376E294FD6-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--C2639FEBB29C4CB4A363DE376E294FD6-->  <DISPLAYLOGIC><![CDATA[@Processed@='Y']]></DISPLAYLOGIC>
+<!--C2639FEBB29C4CB4A363DE376E294FD6-->  <DISPLAYLOGIC><![CDATA[@Processed@='Y'&@APRM_LASTREC@=@FIN_Reconciliation_ID@]]></DISPLAYLOGIC>
 <!--C2639FEBB29C4CB4A363DE376E294FD6-->  <DISPLAYLENGTH><![CDATA[60]]></DISPLAYLENGTH>
 <!--C2639FEBB29C4CB4A363DE376E294FD6-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--C2639FEBB29C4CB4A363DE376E294FD6-->  <SEQNO><![CDATA[180]]></SEQNO>
@@ -19410,6 +19464,33 @@
 <!--F183507AF521490292E8E31141D1610E-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--F183507AF521490292E8E31141D1610E--></AD_FIELD>
 
+<!--F195EACFC9FD47C6BA15B51B6A10F25E--><AD_FIELD>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <AD_FIELD_ID><![CDATA[F195EACFC9FD47C6BA15B51B6A10F25E]]></AD_FIELD_ID>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <NAME><![CDATA[Reconciliation Process Force]]></NAME>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <AD_TAB_ID><![CDATA[FF8080813320657F0133209DE21B0042]]></AD_TAB_ID>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <AD_COLUMN_ID><![CDATA[422F3732DA324AE2AA34AE2E44D42037]]></AD_COLUMN_ID>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <DISPLAYLOGIC><![CDATA[@Processed@='Y'&@APRM_LASTREC@!@FIN_Reconciliation_ID@]]></DISPLAYLOGIC>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <DISPLAYLENGTH><![CDATA[60]]></DISPLAYLENGTH>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <SEQNO><![CDATA[190]]></SEQNO>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--F195EACFC9FD47C6BA15B51B6A10F25E--></AD_FIELD>
+
 <!--F26956BDA9F147249DDC8195C303BAA2--><AD_FIELD>
 <!--F26956BDA9F147249DDC8195C303BAA2-->  <AD_FIELD_ID><![CDATA[F26956BDA9F147249DDC8195C303BAA2]]></AD_FIELD_ID>
 <!--F26956BDA9F147249DDC8195C303BAA2-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -673,6 +673,18 @@
 <!--8FC3C9524EE54E518B679D58F709119D-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--8FC3C9524EE54E518B679D58F709119D--></AD_MESSAGE>
 
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291--><AD_MESSAGE>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <AD_MESSAGE_ID><![CDATA[91CCBCC8F7D940AA8F5EE2DD301C9291]]></AD_MESSAGE_ID>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <VALUE><![CDATA[APRM_DraftReconciliationExists]]></VALUE>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <MSGTEXT><![CDATA[Draft Reconciliation already exists. Just one reconciliation can be edited at a time for a financial account. Please process ongoing reconciliation prior to reactivate this one. ]]></MSGTEXT>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--91CCBCC8F7D940AA8F5EE2DD301C9291--></AD_MESSAGE>
+
 <!--92EC1935A8B947BA83EF82DBD169CA8B--><AD_MESSAGE>
 <!--92EC1935A8B947BA83EF82DBD169CA8B-->  <AD_MESSAGE_ID><![CDATA[92EC1935A8B947BA83EF82DBD169CA8B]]></AD_MESSAGE_ID>
 <!--92EC1935A8B947BA83EF82DBD169CA8B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -997,6 +1009,18 @@
 <!--CCA38D3048F04C1FA6F05AD56CF81B5D-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--CCA38D3048F04C1FA6F05AD56CF81B5D--></AD_MESSAGE>
 
+<!--D0F129E2F69F4D199DAE68813D2327A2--><AD_MESSAGE>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <AD_MESSAGE_ID><![CDATA[D0F129E2F69F4D199DAE68813D2327A2]]></AD_MESSAGE_ID>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <VALUE><![CDATA[APRM_BSTLine_Matched]]></VALUE>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <MSGTEXT><![CDATA[Bank Statement Line is already matched. It can not be modified nor deleted.]]></MSGTEXT>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--D0F129E2F69F4D199DAE68813D2327A2-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--D0F129E2F69F4D199DAE68813D2327A2--></AD_MESSAGE>
+
 <!--D2585EEAC94945C7B3CF79C209FD7650--><AD_MESSAGE>
 <!--D2585EEAC94945C7B3CF79C209FD7650-->  <AD_MESSAGE_ID><![CDATA[D2585EEAC94945C7B3CF79C209FD7650]]></AD_MESSAGE_ID>
 <!--D2585EEAC94945C7B3CF79C209FD7650-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODEL_OBJECT.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODEL_OBJECT.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -48,6 +48,42 @@
 <!--46A3E47C3F414E948988B487A85FC244-->  <OBJECT_TYPE><![CDATA[S]]></OBJECT_TYPE>
 <!--46A3E47C3F414E948988B487A85FC244--></AD_MODEL_OBJECT>
 
+<!--560040FB16CB46A0ABDED8047D25D4CD--><AD_MODEL_OBJECT>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <AD_MODEL_OBJECT_ID><![CDATA[560040FB16CB46A0ABDED8047D25D4CD]]></AD_MODEL_OBJECT_ID>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <ACTION><![CDATA[P]]></ACTION>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <CLASSNAME><![CDATA[org.openbravo.advpaymentmngt.process.FIN_BankStatementProcess]]></CLASSNAME>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <ISDEFAULT><![CDATA[Y]]></ISDEFAULT>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <AD_PROCESS_ID><![CDATA[2DDE7D3618034C38A4462B7F3456C28D]]></AD_PROCESS_ID>
+<!--560040FB16CB46A0ABDED8047D25D4CD-->  <OBJECT_TYPE><![CDATA[S]]></OBJECT_TYPE>
+<!--560040FB16CB46A0ABDED8047D25D4CD--></AD_MODEL_OBJECT>
+
+<!--62CA7E15A1D94659808D715D1A6D65F9--><AD_MODEL_OBJECT>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <AD_MODEL_OBJECT_ID><![CDATA[62CA7E15A1D94659808D715D1A6D65F9]]></AD_MODEL_OBJECT_ID>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <ACTION><![CDATA[P]]></ACTION>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <CLASSNAME><![CDATA[org.openbravo.advpaymentmngt.ad_actionbutton.MatchTransaction]]></CLASSNAME>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <ISDEFAULT><![CDATA[Y]]></ISDEFAULT>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <AD_PROCESS_ID><![CDATA[19EEA22FCA464979B3ADAD3A967ADA52]]></AD_PROCESS_ID>
+<!--62CA7E15A1D94659808D715D1A6D65F9-->  <OBJECT_TYPE><![CDATA[S]]></OBJECT_TYPE>
+<!--62CA7E15A1D94659808D715D1A6D65F9--></AD_MODEL_OBJECT>
+
+<!--640FC5F514AA4798B36A15D1E70335EC--><AD_MODEL_OBJECT>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <AD_MODEL_OBJECT_ID><![CDATA[640FC5F514AA4798B36A15D1E70335EC]]></AD_MODEL_OBJECT_ID>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <ACTION><![CDATA[P]]></ACTION>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <CLASSNAME><![CDATA[org.openbravo.advpaymentmngt.process.FIN_ReconciliationProcess]]></CLASSNAME>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <ISDEFAULT><![CDATA[Y]]></ISDEFAULT>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <AD_PROCESS_ID><![CDATA[6BF16EFC772843AC9A17552AE0B26AB7]]></AD_PROCESS_ID>
+<!--640FC5F514AA4798B36A15D1E70335EC-->  <OBJECT_TYPE><![CDATA[S]]></OBJECT_TYPE>
+<!--640FC5F514AA4798B36A15D1E70335EC--></AD_MODEL_OBJECT>
+
 <!--668D8470721B430687DFE2F97A75751F--><AD_MODEL_OBJECT>
 <!--668D8470721B430687DFE2F97A75751F-->  <AD_MODEL_OBJECT_ID><![CDATA[668D8470721B430687DFE2F97A75751F]]></AD_MODEL_OBJECT_ID>
 <!--668D8470721B430687DFE2F97A75751F-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -60,6 +60,16 @@
 <!--3C67B056A44F4D948570621D2DADA439-->  <ISDEFAULT><![CDATA[Y]]></ISDEFAULT>
 <!--3C67B056A44F4D948570621D2DADA439--></AD_MODEL_OBJECT_MAPPING>
 
+<!--3FA22942DCD0451CAA0E924B30296B8B--><AD_MODEL_OBJECT_MAPPING>
+<!--3FA22942DCD0451CAA0E924B30296B8B-->  <AD_MODEL_OBJECT_MAPPING_ID><![CDATA[3FA22942DCD0451CAA0E924B30296B8B]]></AD_MODEL_OBJECT_MAPPING_ID>
+<!--3FA22942DCD0451CAA0E924B30296B8B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--3FA22942DCD0451CAA0E924B30296B8B-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--3FA22942DCD0451CAA0E924B30296B8B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--3FA22942DCD0451CAA0E924B30296B8B-->  <AD_MODEL_OBJECT_ID><![CDATA[62CA7E15A1D94659808D715D1A6D65F9]]></AD_MODEL_OBJECT_ID>
+<!--3FA22942DCD0451CAA0E924B30296B8B-->  <MAPPINGNAME><![CDATA[/org.openbravo.advpaymentmngt.ad_actionbutton/MatchTransaction.html]]></MAPPINGNAME>
+<!--3FA22942DCD0451CAA0E924B30296B8B-->  <ISDEFAULT><![CDATA[Y]]></ISDEFAULT>
+<!--3FA22942DCD0451CAA0E924B30296B8B--></AD_MODEL_OBJECT_MAPPING>
+
 <!--58BB77DE57BB409FB8C66C528C826DBF--><AD_MODEL_OBJECT_MAPPING>
 <!--58BB77DE57BB409FB8C66C528C826DBF-->  <AD_MODEL_OBJECT_MAPPING_ID><![CDATA[58BB77DE57BB409FB8C66C528C826DBF]]></AD_MODEL_OBJECT_MAPPING_ID>
 <!--58BB77DE57BB409FB8C66C528C826DBF-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -87,6 +87,27 @@
 <!--15C8708DFC464C2D91286E59624FDD18-->  <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS>
 <!--15C8708DFC464C2D91286E59624FDD18--></AD_PROCESS>
 
+<!--19EEA22FCA464979B3ADAD3A967ADA52--><AD_PROCESS>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <AD_PROCESS_ID><![CDATA[19EEA22FCA464979B3ADAD3A967ADA52]]></AD_PROCESS_ID>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <VALUE><![CDATA[APRM_MatchTransaction Force]]></VALUE>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <NAME><![CDATA[Match Statement Force]]></NAME>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ACCESSLEVEL><![CDATA[7]]></ACCESSLEVEL>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ISUSERSTARTABLE><![CDATA[N]]></ISUSERSTARTABLE>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ISREPORT><![CDATA[N]]></ISREPORT>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ISDIRECTPRINT><![CDATA[N]]></ISDIRECTPRINT>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ISBACKGROUND><![CDATA[N]]></ISBACKGROUND>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ISJASPER><![CDATA[N]]></ISJASPER>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ISEXTERNALSERVICE><![CDATA[N]]></ISEXTERNALSERVICE>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <UIPATTERN><![CDATA[M]]></UIPATTERN>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <ISADVANCEDFEATURE><![CDATA[N]]></ISADVANCEDFEATURE>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <PREVENTCONCURRENT><![CDATA[N]]></PREVENTCONCURRENT>
+<!--19EEA22FCA464979B3ADAD3A967ADA52-->  <IS_EXPLICIT_ACCESS><![CDATA[Y]]></IS_EXPLICIT_ACCESS>
+<!--19EEA22FCA464979B3ADAD3A967ADA52--></AD_PROCESS>
+
 <!--29D17F515727436DBCE32BC6CA28382B--><AD_PROCESS>
 <!--29D17F515727436DBCE32BC6CA28382B-->  <AD_PROCESS_ID><![CDATA[29D17F515727436DBCE32BC6CA28382B]]></AD_PROCESS_ID>
 <!--29D17F515727436DBCE32BC6CA28382B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -108,6 +129,27 @@
 <!--29D17F515727436DBCE32BC6CA28382B-->  <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS>
 <!--29D17F515727436DBCE32BC6CA28382B--></AD_PROCESS>
 
+<!--2DDE7D3618034C38A4462B7F3456C28D--><AD_PROCESS>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <AD_PROCESS_ID><![CDATA[2DDE7D3618034C38A4462B7F3456C28D]]></AD_PROCESS_ID>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <VALUE><![CDATA[BankStatementProcessForce]]></VALUE>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <NAME><![CDATA[Bank Statement Process Force]]></NAME>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ACCESSLEVEL><![CDATA[1]]></ACCESSLEVEL>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ISUSERSTARTABLE><![CDATA[N]]></ISUSERSTARTABLE>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ISREPORT><![CDATA[N]]></ISREPORT>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ISDIRECTPRINT><![CDATA[N]]></ISDIRECTPRINT>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ISBACKGROUND><![CDATA[N]]></ISBACKGROUND>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ISJASPER><![CDATA[N]]></ISJASPER>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ISEXTERNALSERVICE><![CDATA[N]]></ISEXTERNALSERVICE>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <UIPATTERN><![CDATA[S]]></UIPATTERN>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <ISADVANCEDFEATURE><![CDATA[N]]></ISADVANCEDFEATURE>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <PREVENTCONCURRENT><![CDATA[N]]></PREVENTCONCURRENT>
+<!--2DDE7D3618034C38A4462B7F3456C28D-->  <IS_EXPLICIT_ACCESS><![CDATA[Y]]></IS_EXPLICIT_ACCESS>
+<!--2DDE7D3618034C38A4462B7F3456C28D--></AD_PROCESS>
+
 <!--2EED9BC16DB34D2B80BA40A21564BECF--><AD_PROCESS>
 <!--2EED9BC16DB34D2B80BA40A21564BECF-->  <AD_PROCESS_ID><![CDATA[2EED9BC16DB34D2B80BA40A21564BECF]]></AD_PROCESS_ID>
 <!--2EED9BC16DB34D2B80BA40A21564BECF-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -260,6 +302,27 @@
 <!--62E6270312534380B9A8BDF603CA8FBB-->  <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS>
 <!--62E6270312534380B9A8BDF603CA8FBB--></AD_PROCESS>
 
+<!--6BF16EFC772843AC9A17552AE0B26AB7--><AD_PROCESS>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <AD_PROCESS_ID><![CDATA[6BF16EFC772843AC9A17552AE0B26AB7]]></AD_PROCESS_ID>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <VALUE><![CDATA[ReconciliationProcessForce]]></VALUE>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <NAME><![CDATA[Reconciliation Process Force]]></NAME>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ACCESSLEVEL><![CDATA[1]]></ACCESSLEVEL>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ISUSERSTARTABLE><![CDATA[N]]></ISUSERSTARTABLE>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ISREPORT><![CDATA[N]]></ISREPORT>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ISDIRECTPRINT><![CDATA[N]]></ISDIRECTPRINT>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ISBACKGROUND><![CDATA[N]]></ISBACKGROUND>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ISJASPER><![CDATA[N]]></ISJASPER>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ISEXTERNALSERVICE><![CDATA[N]]></ISEXTERNALSERVICE>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <UIPATTERN><![CDATA[S]]></UIPATTERN>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <ISADVANCEDFEATURE><![CDATA[N]]></ISADVANCEDFEATURE>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <PREVENTCONCURRENT><![CDATA[N]]></PREVENTCONCURRENT>
+<!--6BF16EFC772843AC9A17552AE0B26AB7-->  <IS_EXPLICIT_ACCESS><![CDATA[Y]]></IS_EXPLICIT_ACCESS>
+<!--6BF16EFC772843AC9A17552AE0B26AB7--></AD_PROCESS>
+
 <!--7AC7BE9024E448A0BB863C159DA762F9--><AD_PROCESS>
 <!--7AC7BE9024E448A0BB863C159DA762F9-->  <AD_PROCESS_ID><![CDATA[7AC7BE9024E448A0BB863C159DA762F9]]></AD_PROCESS_ID>
 <!--7AC7BE9024E448A0BB863C159DA762F9-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS_PARA.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS_PARA.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -21,6 +21,28 @@
 <!--0F62C351CBE74F9F856E8383AF932DD6-->  <AD_ELEMENT_ID><![CDATA[5491745132934260A5F00EF178EBC04B]]></AD_ELEMENT_ID>
 <!--0F62C351CBE74F9F856E8383AF932DD6--></AD_PROCESS_PARA>
 
+<!--10D10303E5374D7E99D9D04EE16DCC5D--><AD_PROCESS_PARA>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <AD_PROCESS_PARA_ID><![CDATA[10D10303E5374D7E99D9D04EE16DCC5D]]></AD_PROCESS_PARA_ID>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <NAME><![CDATA[Action]]></NAME>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <DESCRIPTION><![CDATA[A drop down list box indicating the next step to take.]]></DESCRIPTION>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <HELP><![CDATA[The Action field indicates the Action to be performed for this element.]]></HELP>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <AD_PROCESS_ID><![CDATA[6BF16EFC772843AC9A17552AE0B26AB7]]></AD_PROCESS_ID>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <SEQNO><![CDATA[10]]></SEQNO>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <AD_REFERENCE_ID><![CDATA[17]]></AD_REFERENCE_ID>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <AD_REFERENCE_VALUE_ID><![CDATA[FF8080812E443491012E443C053A001A]]></AD_REFERENCE_VALUE_ID>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <AD_VAL_RULE_ID><![CDATA[FF808081332719060133271E5BB1001B]]></AD_VAL_RULE_ID>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <COLUMNNAME><![CDATA[action]]></COLUMNNAME>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <FIELDLENGTH><![CDATA[0]]></FIELDLENGTH>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <ISRANGE><![CDATA[N]]></ISRANGE>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <DEFAULTVALUE><![CDATA[@Process_Reconciliation@]]></DEFAULTVALUE>
+<!--10D10303E5374D7E99D9D04EE16DCC5D-->  <AD_ELEMENT_ID><![CDATA[152]]></AD_ELEMENT_ID>
+<!--10D10303E5374D7E99D9D04EE16DCC5D--></AD_PROCESS_PARA>
+
 <!--1913962D2952412B84B8CDD3BC17026F--><AD_PROCESS_PARA>
 <!--1913962D2952412B84B8CDD3BC17026F-->  <AD_PROCESS_PARA_ID><![CDATA[1913962D2952412B84B8CDD3BC17026F]]></AD_PROCESS_PARA_ID>
 <!--1913962D2952412B84B8CDD3BC17026F-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -270,6 +292,27 @@
 <!--A7B47A5637A74910ADC70CD66E6C6A29-->  <AD_ELEMENT_ID><![CDATA[210]]></AD_ELEMENT_ID>
 <!--A7B47A5637A74910ADC70CD66E6C6A29--></AD_PROCESS_PARA>
 
+<!--ADC43AD315004E2D8E2802E00C4F178B--><AD_PROCESS_PARA>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <AD_PROCESS_PARA_ID><![CDATA[ADC43AD315004E2D8E2802E00C4F178B]]></AD_PROCESS_PARA_ID>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <NAME><![CDATA[Action]]></NAME>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <DESCRIPTION><![CDATA[A drop down list box indicating the next step to take.]]></DESCRIPTION>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <HELP><![CDATA[The Action field indicates the Action to be performed for this element.]]></HELP>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <AD_PROCESS_ID><![CDATA[2DDE7D3618034C38A4462B7F3456C28D]]></AD_PROCESS_ID>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <SEQNO><![CDATA[10]]></SEQNO>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <AD_REFERENCE_ID><![CDATA[17]]></AD_REFERENCE_ID>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <AD_REFERENCE_VALUE_ID><![CDATA[EC75B6F5A9504DB6B3F3356EA85F15EE]]></AD_REFERENCE_VALUE_ID>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <COLUMNNAME><![CDATA[action]]></COLUMNNAME>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <FIELDLENGTH><![CDATA[0]]></FIELDLENGTH>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <ISRANGE><![CDATA[N]]></ISRANGE>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <DEFAULTVALUE><![CDATA[@EM_APRM_Process_BS@]]></DEFAULTVALUE>
+<!--ADC43AD315004E2D8E2802E00C4F178B-->  <AD_ELEMENT_ID><![CDATA[152]]></AD_ELEMENT_ID>
+<!--ADC43AD315004E2D8E2802E00C4F178B--></AD_PROCESS_PARA>
+
 <!--D04309BB0DA14B5789FB76C141ED464C--><AD_PROCESS_PARA>
 <!--D04309BB0DA14B5789FB76C141ED464C-->  <AD_PROCESS_PARA_ID><![CDATA[D04309BB0DA14B5789FB76C141ED464C]]></AD_PROCESS_PARA_ID>
 <!--D04309BB0DA14B5789FB76C141ED464C-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_TAB.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -905,7 +905,7 @@
 <!--FF8080813320657F0133209DE21B0042-->  <IMPORTFIELDS><![CDATA[N]]></IMPORTFIELDS>
 <!--FF8080813320657F0133209DE21B0042-->  <ISSORTTAB><![CDATA[N]]></ISSORTTAB>
 <!--FF8080813320657F0133209DE21B0042-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--FF8080813320657F0133209DE21B0042-->  <UIPATTERN><![CDATA[STD]]></UIPATTERN>
+<!--FF8080813320657F0133209DE21B0042-->  <UIPATTERN><![CDATA[ED]]></UIPATTERN>
 <!--FF8080813320657F0133209DE21B0042-->  <SHOWPARENTBUTTONS><![CDATA[N]]></SHOWPARENTBUTTONS>
 <!--FF8080813320657F0133209DE21B0042-->  <DISABLE_PARENT_KEY_PROPERTY><![CDATA[N]]></DISABLE_PARENT_KEY_PROPERTY>
 <!--FF8080813320657F0133209DE21B0042-->  <EM_OBUIAPP_CAN_ADD><![CDATA[N]]></EM_OBUIAPP_CAN_ADD>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValue.java	Fri Feb 28 11:23:32 2014 +0100
@@ -0,0 +1,39 @@
+/*
+ *************************************************************************
+ * 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) 2014 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ *************************************************************************
+ */
+package org.openbravo.advpaymentmngt.modulescript;
+
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.modulescript.ModuleScript;
+
+public class UpdateReconciliationStatementProcessedValue extends ModuleScript {
+  
+  //Used for onCreateDefault value of new columns: it inherits value from other column, so when null is being updated
+
+  @Override
+  public void execute() {
+    try {
+      ConnectionProvider cp = getConnectionProvider();
+      UpdateReconciliationStatementProcessedValueData.updateFinancialAccount(cp);
+      UpdateReconciliationStatementProcessedValueData.updateStatement(cp);
+      UpdateReconciliationStatementProcessedValueData.updateReconciliation(cp);
+    } catch (Exception e) {
+      handleError(e);
+    }
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValue_data.xsql	Fri Feb 28 11:23:32 2014 +0100
@@ -0,0 +1,54 @@
+<?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) 2014 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ *************************************************************************
+-->
+<SqlClass name="UpdateReconciliationStatementProcessedValueData" package="org.openbravo.advpaymentmngt.modulescript">
+  <SqlClassComment></SqlClassComment>
+     <SqlMethod name="select" type="preparedStatement" return="multiple">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        select 1 as name from dual
+      ]]>
+    </Sql>
+  </SqlMethod>
+  <SqlMethod name="updateFinancialAccount" type="preparedStatement" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        UPDATE FIN_FINANCIAL_ACCOUNT SET EM_APRM_MatchTrans_Force = em_aprm_matchtransactions
+      ]]>
+    </Sql>
+  </SqlMethod>
+  <SqlMethod name="updateStatement" type="preparedStatement" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        UPDATE FIN_BANKSTATEMENT SET em_aprm_process_bs_force = em_aprm_process_bs 
+      ]]>
+    </Sql>
+  </SqlMethod>
+  <SqlMethod name="updateReconciliation" type="preparedStatement" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        UPDATE FIN_RECONCILIATION SET EM_APRM_Process_Rec_Force = em_aprm_process_rec 
+      ]]>
+    </Sql>
+  </SqlMethod>
+</SqlClass>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.advpaymentmngt/src-util/modulescript/src/src/org/openbravo/advpaymentmngt/modulescript/UpdateReconciliationStatementProcessedValueData.java	Fri Feb 28 11:23:32 2014 +0100
@@ -0,0 +1,211 @@
+//Sqlc generated V1.O00-1
+package org.openbravo.advpaymentmngt.modulescript;
+
+import java.sql.*;
+
+import org.apache.log4j.Logger;
+
+import javax.servlet.ServletException;
+
+import org.openbravo.data.FieldProvider;
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.data.UtilSql;
+import org.openbravo.service.db.QueryTimeOutUtil;
+import org.openbravo.database.SessionInfo;
+import java.util.*;
+
+class UpdateReconciliationStatementProcessedValueData implements FieldProvider {
+static Logger log4j = Logger.getLogger(UpdateReconciliationStatementProcessedValueData.class);
+  private String InitRecordNumber="0";
+  public String name;
+
+  public String getInitRecordNumber() {
+    return InitRecordNumber;
+  }
+
+  public String getField(String fieldName) {
+    if (fieldName.equalsIgnoreCase("name"))
+      return name;
+   else {
+     log4j.debug("Field does not exist: " + fieldName);
+     return null;
+   }
+ }
+
+  public static UpdateReconciliationStatementProcessedValueData[] select(ConnectionProvider connectionProvider)    throws ServletException {
+    return select((String)null, connectionProvider, 0, 0);
+  }
+
+  public static UpdateReconciliationStatementProcessedValueData[] select(String queryType, ConnectionProvider connectionProvider)    throws ServletException {
+    return select(queryType, connectionProvider, 0, 0);
+  }
+
+  public static UpdateReconciliationStatementProcessedValueData[] select(ConnectionProvider connectionProvider, int firstRegister, int numberRegisters)    throws ServletException {
+    return select((String)null, connectionProvider);
+  }
+
+  public static UpdateReconciliationStatementProcessedValueData[] select(String queryType, ConnectionProvider connectionProvider, int firstRegister, int numberRegisters)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "        select 1 as name from dual";
+
+    ResultSet result;
+    Vector<java.lang.Object> vector = new Vector<java.lang.Object>(0);
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      String profile = queryType;
+      if (profile == null || profile.isEmpty()) {
+        profile = SessionInfo.getQueryProfile();
+      }
+      QueryTimeOutUtil.getInstance().setQueryTimeOut(st, profile);
+
+      result = st.executeQuery();
+      long countRecord = 0;
+      long countRecordSkip = 1;
+      boolean continueResult = true;
+      while(countRecordSkip < firstRegister && continueResult) {
+        continueResult = result.next();
+        countRecordSkip++;
+      }
+      while(continueResult && result.next()) {
+        countRecord++;
+        UpdateReconciliationStatementProcessedValueData objectUpdateReconciliationStatementProcessedValueData = new UpdateReconciliationStatementProcessedValueData();
+        objectUpdateReconciliationStatementProcessedValueData.name = UtilSql.getValue(result, "name");
+        objectUpdateReconciliationStatementProcessedValueData.InitRecordNumber = Integer.toString(firstRegister);
+        vector.addElement(objectUpdateReconciliationStatementProcessedValueData);
+        if (countRecord >= numberRegisters && numberRegisters != 0) {
+          continueResult = false;
+        }
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    UpdateReconciliationStatementProcessedValueData objectUpdateReconciliationStatementProcessedValueData[] = new UpdateReconciliationStatementProcessedValueData[vector.size()];
+    vector.copyInto(objectUpdateReconciliationStatementProcessedValueData);
+    return(objectUpdateReconciliationStatementProcessedValueData);
+  }
+
+  public static int updateFinancialAccount(ConnectionProvider connectionProvider)    throws ServletException {
+    return updateFinancialAccount((String)null, connectionProvider);
+  }
+
+  public static int updateFinancialAccount(String queryType, ConnectionProvider connectionProvider)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "        UPDATE FIN_FINANCIAL_ACCOUNT SET EM_APRM_MatchTrans_Force = em_aprm_matchtransactions";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      String profile = queryType;
+      if (profile == null || profile.isEmpty()) {
+        profile = SessionInfo.getQueryProfile();
+      }
+      QueryTimeOutUtil.getInstance().setQueryTimeOut(st, profile);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
+
+  public static int updateStatement(ConnectionProvider connectionProvider)    throws ServletException {
+    return updateStatement((String)null, connectionProvider);
+  }
+
+  public static int updateStatement(String queryType, ConnectionProvider connectionProvider)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "        UPDATE FIN_BANKSTATEMENT SET em_aprm_process_bs_force = em_aprm_process_bs ";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      String profile = queryType;
+      if (profile == null || profile.isEmpty()) {
+        profile = SessionInfo.getQueryProfile();
+      }
+      QueryTimeOutUtil.getInstance().setQueryTimeOut(st, profile);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
+
+  public static int updateReconciliation(ConnectionProvider connectionProvider)    throws ServletException {
+    return updateReconciliation((String)null, connectionProvider);
+  }
+
+  public static int updateReconciliation(String queryType, ConnectionProvider connectionProvider)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "        UPDATE FIN_BANKSTATEMENT SET em_aprm_process_rec_force = em_aprm_process_rec ";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      String profile = queryType;
+      if (profile == null || profile.isEmpty()) {
+        profile = SessionInfo.getQueryProfile();
+      }
+      QueryTimeOutUtil.getInstance().setQueryTimeOut(st, profile);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
+}
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java	Fri Feb 28 11:23:32 2014 +0100
@@ -24,6 +24,7 @@
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -35,6 +36,7 @@
 
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
+import org.hibernate.criterion.Order;
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.dao.MatchTransactionDao;
@@ -309,21 +311,17 @@
           strReconciliationId);
       FIN_FinancialAccount financialAccount = MatchTransactionDao.getObject(
           FIN_FinancialAccount.class, strFinancialAccountId);
-      FIN_Reconciliation lastReconciliation = TransactionsDao.getLastReconciliation(OBDal
-          .getInstance().get(FIN_FinancialAccount.class, strFinancialAccountId), "Y");
-      BigDecimal unreconciledInLastReconciliation = BigDecimal.ZERO;
-      if (lastReconciliation != null) {
-        unreconciledInLastReconciliation = MatchTransactionDao
-            .getLastReconciliationUnmatchedBalance(lastReconciliation);
+      if (MatchTransactionDao.islastreconciliation(reconciliation)) {
+        Date maxBSLDate = MatchTransactionDao.getBankStatementLineMaxDate(financialAccount);
+        reconciliation.setEndingDate(maxBSLDate);
+        reconciliation.setTransactionDate(maxBSLDate);
+      } else {
+        Date maxClearItemDate = getClearItemsMaxDate(reconciliation);
+        reconciliation.setEndingDate(maxClearItemDate);
+        reconciliation.setTransactionDate(maxClearItemDate);
       }
-      // This is needed to allow completing a reconciliation with unmatched bank statement lines
-      reconciliation.setEndingBalance(reconciliation.getStartingbalance()
-          .subtract(unreconciledInLastReconciliation)
-          .add(MatchTransactionDao.getReconciliationEndingBalance(reconciliation)));
-      reconciliation.setEndingDate(MatchTransactionDao
-          .getBankStatementLineMaxDate(financialAccount));
-      reconciliation.setTransactionDate(MatchTransactionDao
-          .getBankStatementLineMaxDate(financialAccount));
+      reconciliation.setEndingBalance(MatchTransactionDao.getEndingBalance(reconciliation));
+
       if (!process) {
         reconciliation.setProcessed(false);
         reconciliation.setDocumentStatus("DR");
@@ -349,6 +347,17 @@
     return true;
   }
 
+  private Date getClearItemsMaxDate(FIN_Reconciliation reconciliation) {
+    OBCriteria<FIN_ReconciliationLine_v> obc = OBDal.getInstance().createCriteria(
+        FIN_ReconciliationLine_v.class);
+    obc.setFilterOnReadableClients(false);
+    obc.setFilterOnReadableOrganization(false);
+    obc.add(Restrictions.eq(FIN_ReconciliationLine_v.PROPERTY_RECONCILIATION, reconciliation));
+    obc.addOrder(Order.desc(FIN_ReconciliationLine_v.PROPERTY_TRANSACTIONDATE));
+    obc.setMaxResults(1);
+    return ((FIN_ReconciliationLine_v) obc.uniqueResult()).getTransactionDate();
+  }
+
   private void printPage(HttpServletResponse response, VariablesSecureApp vars, String strOrgId,
       String strWindowId, String strTabId, String strPaymentTypeFilter,
       String strFinancialAccountId, String reconciliationId, String strShowCleared,
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/MatchTransactionDao.java	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/MatchTransactionDao.java	Fri Feb 28 11:23:32 2014 +0100
@@ -26,6 +26,7 @@
 
 import javax.servlet.ServletException;
 
+import org.hibernate.criterion.Order;
 import org.hibernate.criterion.ProjectionList;
 import org.hibernate.criterion.Projections;
 import org.hibernate.criterion.Restrictions;
@@ -148,7 +149,7 @@
           .getReconciliationLastAmount(financialAccount);
       OBDal.getInstance().save(newData);
       OBDal.getInstance().flush();
-      newData.setEndingBalance(startingBalance.add(getReconciliationEndingBalance(newData)));
+      newData.setEndingBalance(getEndingBalance(newData));
       newData.setStartingbalance(startingBalance != null ? startingBalance : BigDecimal.ZERO);
 
       OBDal.getInstance().save(newData);
@@ -163,8 +164,10 @@
   public static List<FIN_BankStatementLine> getMatchingBankStatementLines(
       String strFinancialAccountId, String strReconciliationId, String strPaymentTypeFilter,
       String strShowCleared) {
+    FIN_Reconciliation reconciliation = OBDal.getInstance().get(FIN_Reconciliation.class,
+        strReconciliationId);
+    boolean isLastReconciliation = islastreconciliation(reconciliation);
     final StringBuilder whereClause = new StringBuilder();
-
     whereClause.append(" as bsl ");
     whereClause.append(" left outer join bsl.financialAccountTransaction as fat");
     whereClause.append(" where bsl.").append(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT);
@@ -182,6 +185,10 @@
       whereClause.append("   or bsl.").append(FIN_BankStatementLine.PROPERTY_CRAMOUNT);
       whereClause.append(" = 0) ");
     }
+    if (!isLastReconciliation) {
+      whereClause.append(" and  bsl.").append(FIN_BankStatementLine.PROPERTY_TRANSACTIONDATE)
+          .append(" <= :endingdate");
+    }
     whereClause.append("   and (fat is null");
     whereClause.append("   or (fat.").append(FIN_FinaccTransaction.PROPERTY_RECONCILIATION);
     whereClause.append(".id = '").append(strReconciliationId).append("'");
@@ -196,8 +203,19 @@
     whereClause.append(", bsl.").append(FIN_BankStatementLine.PROPERTY_BPARTNERNAME);
     final OBQuery<FIN_BankStatementLine> obData = OBDal.getInstance().createQuery(
         FIN_BankStatementLine.class, whereClause.toString());
+    if (!isLastReconciliation) {
+      obData.setNamedParameter("endingdate",
+          OBDal.getInstance().get(FIN_Reconciliation.class, strReconciliationId).getEndingDate());
+    }
+    return obData.list();
+  }
 
-    return obData.list();
+  public static boolean islastreconciliation(FIN_Reconciliation reconciliation) {
+    if (MatchTransactionDao.getReconciliationListAfterDate(reconciliation).size() > 0) {
+      return false;
+    } else {
+      return true;
+    }
   }
 
   public static List<FIN_BankStatementLine> getUnMatchedBankStatementLines(
@@ -470,6 +488,7 @@
    *          Reconciliation.
    * @return Ending balance of an automatic reconciliation.
    */
+  @Deprecated
   public static BigDecimal getReconciliationEndingBalance(FIN_Reconciliation reconciliation) {
     BigDecimal total = BigDecimal.ZERO;
     OBContext.setAdminMode(true);
@@ -582,4 +601,83 @@
     }
     return reconciliations;
   }
+
+  public static BigDecimal getEndingBalance(FIN_Reconciliation reconciliation) {
+    OBContext.setAdminMode(false);
+    try {
+      BigDecimal endingBalance = reconciliation.getAccount().getInitialBalance();
+      endingBalance = endingBalance
+          .add(getBSLAmount(reconciliation, reconciliation.getEndingDate()));
+      return endingBalance;
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  private static BigDecimal getBSLAmount(FIN_Reconciliation reconciliation, Date date) {
+    BigDecimal total = BigDecimal.ZERO;
+    OBContext.setAdminMode(false);
+    try {
+      OBCriteria<FIN_BankStatementLine> obcBsl = OBDal.getInstance().createCriteria(
+          FIN_BankStatementLine.class);
+      obcBsl.createAlias(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT, "bs");
+      obcBsl.createAlias(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION, "tr",
+          OBCriteria.LEFT_JOIN);
+      obcBsl.add(Restrictions.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT,
+          reconciliation.getAccount()));
+      obcBsl.add(Restrictions.eq("bs." + FIN_BankStatement.PROPERTY_PROCESSED, true));
+      obcBsl.add(Restrictions.le(FIN_BankStatementLine.PROPERTY_TRANSACTIONDATE, date));
+      ProjectionList projections = Projections.projectionList();
+      projections.add(Projections.sum(FIN_BankStatementLine.PROPERTY_CRAMOUNT));
+      projections.add(Projections.sum(FIN_BankStatementLine.PROPERTY_DRAMOUNT));
+      obcBsl.setProjection(projections);
+
+      @SuppressWarnings("rawtypes")
+      List o = obcBsl.list();
+      if (o != null && o.size() > 0) {
+        Object[] resultSet = (Object[]) o.get(0);
+        BigDecimal credit = (resultSet[0] != null) ? (BigDecimal) resultSet[0] : BigDecimal.ZERO;
+        BigDecimal debit = (resultSet[1] != null) ? (BigDecimal) resultSet[1] : BigDecimal.ZERO;
+        total = credit.subtract(debit);
+      }
+      o.clear();
+
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+    return total;
+  }
+
+  public static BigDecimal getStartingBalance(FIN_Reconciliation reconciliation) {
+    OBContext.setAdminMode(false);
+    try {
+      BigDecimal statingBalance = reconciliation.getAccount().getInitialBalance();
+      FIN_Reconciliation previousReconciliation = getPreviousReconciliation(reconciliation);
+      if (previousReconciliation != null) {
+        statingBalance = previousReconciliation.getEndingBalance();
+      }
+      return statingBalance;
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  private static FIN_Reconciliation getPreviousReconciliation(FIN_Reconciliation reconciliation) {
+    OBContext.setAdminMode(false);
+    try {
+      final OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(
+          FIN_Reconciliation.class);
+      obc.add(Restrictions.le(FIN_Reconciliation.PROPERTY_ENDINGDATE,
+          reconciliation.getEndingDate()));
+      obc.add(Restrictions.lt(FIN_Reconciliation.PROPERTY_CREATIONDATE,
+          reconciliation.getCreationDate()));
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, reconciliation.getAccount()));
+      obc.addOrder(Order.desc(FIN_Reconciliation.PROPERTY_ENDINGDATE));
+      obc.addOrder(Order.desc(FIN_Reconciliation.PROPERTY_CREATIONDATE));
+      obc.setMaxResults(1);
+      return (FIN_Reconciliation) obc.uniqueResult();
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
 }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_BankStatementProcess.java	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_BankStatementProcess.java	Fri Feb 28 11:23:32 2014 +0100
@@ -4,9 +4,13 @@
 import java.util.Date;
 import java.util.List;
 
+import org.hibernate.criterion.Restrictions;
+import org.openbravo.advpaymentmngt.dao.MatchTransactionDao;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.base.session.OBPropertiesProvider;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.dal.service.OBQuery;
 import org.openbravo.database.ConnectionProvider;
@@ -38,6 +42,8 @@
       final VariablesSecureApp vars = bundle.getContext().toVars();
       final ConnectionProvider conProvider = bundle.getConnection();
       final String language = bundle.getContext().getLanguage();
+      final boolean isForceProcess = (Boolean) "2DDE7D3618034C38A4462B7F3456C28D".equals(bundle
+          .getProcessId());
 
       bankStatement.setProcessNow(true);
       OBDal.getInstance().save(bankStatement);
@@ -49,9 +55,9 @@
         // ***********************
 
         // Check all dates are after last reconciliation date or last transaction date of previous
-        // bank statements.
-        Date maxBSLDate = getMaxBSLDate(bankStatement.getAccount(), bankStatement);
-        if (maxBSLDate != null) {
+        // bank statements. Skip when force
+        Date maxBSLDate = getMaxBSLDate(bankStatement);
+        if (maxBSLDate != null && !isForceProcess) {
           for (FIN_BankStatementLine bsl : bankStatement.getFINBankStatementLineList()) {
             if (bsl.getTransactionDate().compareTo(maxBSLDate) <= 0) {
               if (!msg.getMessage().equals("")) {
@@ -70,14 +76,18 @@
             }
           }
         }
-
         if (msg.getType() != null && !msg.getType().toLowerCase().equals("warning")) {
           // Success
           bankStatement.setProcessed(true);
           bankStatement.setAPRMProcessBankStatement("R");
+          bankStatement.setAPRMProcessBankStatementForce("R");
           OBDal.getInstance().save(bankStatement);
           OBDal.getInstance().flush();
         }
+        if (isForceProcess) {
+          // Update affected Reconciliations
+          updateAffectedReconciliations(bankStatement);
+        }
       } else if (strAction.equals("R")) {
         // *************************
         // Reactivate Bank Statement
@@ -91,20 +101,23 @@
           bundle.setResult(msg);
           return;
         }
-        // Already Reconciled
-        for (FIN_BankStatementLine bsl : bankStatement.getFINBankStatementLineList()) {
-          if (bsl.getFinancialAccountTransaction() != null) {
-            msg.setType("Error");
-            msg.setTitle(Utility.messageBD(conProvider, "Error", language));
-            msg.setMessage(Utility.parseTranslation(conProvider, vars, language,
-                "@APRM_BSLineReconciled@" + ": " + bsl.getLineNo().toString()));
-            bundle.setResult(msg);
-            return;
+        if (!isForceProcess) {
+          // Already Reconciled
+          for (FIN_BankStatementLine bsl : bankStatement.getFINBankStatementLineList()) {
+            if (bsl.getFinancialAccountTransaction() != null) {
+              msg.setType("Error");
+              msg.setTitle(Utility.messageBD(conProvider, "Error", language));
+              msg.setMessage(Utility.parseTranslation(conProvider, vars, language,
+                  "@APRM_BSLineReconciled@" + ": " + bsl.getLineNo().toString()));
+              bundle.setResult(msg);
+              return;
+            }
           }
         }
 
         bankStatement.setProcessed(false);
         bankStatement.setAPRMProcessBankStatement("P");
+        bankStatement.setAPRMProcessBankStatementForce("P");
         OBDal.getInstance().save(bankStatement);
         OBDal.getInstance().flush();
       }
@@ -126,7 +139,7 @@
 
   }
 
-  private Date getMaxBSLDate(FIN_FinancialAccount account, FIN_BankStatement bankstatement) {
+  private Date getMaxBSLDate(FIN_BankStatement bankstatement) {
     // Get last transaction date from previous bank statements
     final StringBuilder whereClause = new StringBuilder();
     List<Object> parameters = new ArrayList<Object>();
@@ -134,7 +147,7 @@
     whereClause.append(" where bsl.");
     whereClause.append(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT);
     whereClause.append("." + FIN_BankStatement.PROPERTY_ACCOUNT + " = ?");
-    parameters.add(account);
+    parameters.add(bankstatement.getAccount());
     whereClause.append(" and bsl." + FIN_BankStatementLine.PROPERTY_BANKSTATEMENT + " <> ?");
     parameters.add(bankstatement);
     whereClause.append(" and bsl.bankStatement.processed = 'Y'");
@@ -149,7 +162,7 @@
 
     // If no previous bank statement is found get the ending date of the last reconciliation
     FIN_Reconciliation rec = org.openbravo.advpaymentmngt.dao.TransactionsDao
-        .getLastReconciliation(account, "Y");
+        .getLastReconciliation(bankstatement.getAccount(), "Y");
     org.openbravo.dal.core.OBContext.setAdminMode(true);
     try {
       return (rec == null) ? null : rec.getEndingDate();
@@ -157,4 +170,63 @@
       org.openbravo.dal.core.OBContext.restorePreviousMode();
     }
   }
+
+  private Date getBankStatementLineMinDate(FIN_BankStatement bankStatement) {
+    OBContext.setAdminMode();
+    Date minDate = new Date();
+    try {
+      final OBCriteria<FIN_BankStatementLine> obc = OBDal.getInstance().createCriteria(
+          FIN_BankStatementLine.class);
+      obc.createAlias(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT, "bs");
+      obc.add(Restrictions.eq("bs." + FIN_BankStatement.PROPERTY_ID, bankStatement.getId()));
+      obc.addOrderBy(FIN_BankStatementLine.PROPERTY_TRANSACTIONDATE, true);
+      obc.setMaxResults(1);
+      final List<FIN_BankStatementLine> bst = obc.list();
+      if (bst.size() == 0)
+        return minDate;
+      minDate = bst.get(0).getTransactionDate();
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+    return minDate;
+  }
+
+  private void updateAffectedReconciliations(FIN_BankStatement bankStatement) {
+    List<FIN_Reconciliation> affectedReconciliations = getAffectedReconciliations(
+        bankStatement.getAccount(), getBankStatementLineMinDate(bankStatement));
+    for (FIN_Reconciliation rec : affectedReconciliations) {
+      updateReconciliation(rec);
+    }
+
+  }
+
+  private List<FIN_Reconciliation> getAffectedReconciliations(FIN_FinancialAccount account,
+      Date bankStatementLineMinDate) {
+    OBContext.setAdminMode();
+    try {
+      final OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(
+          FIN_Reconciliation.class);
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, account));
+      obc.add(Restrictions.ge(FIN_Reconciliation.PROPERTY_ENDINGDATE, bankStatementLineMinDate));
+      obc.setMaxResults(1);
+      return obc.list();
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  private void updateReconciliation(FIN_Reconciliation reconciliation) {
+    OBContext.setAdminMode(false);
+    try {
+      // This is needed to allow completing a reconciliation with unmatched bank statement lines
+      reconciliation.setStartingbalance(MatchTransactionDao.getStartingBalance(reconciliation));
+      reconciliation.setEndingBalance(MatchTransactionDao.getEndingBalance(reconciliation));
+      OBDal.getInstance().save(reconciliation);
+      OBDal.getInstance().flush();
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+    return;
+  }
+
 }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ReconciliationProcess.java	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ReconciliationProcess.java	Fri Feb 28 11:23:32 2014 +0100
@@ -23,6 +23,7 @@
 import org.hibernate.criterion.Order;
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
+import org.openbravo.advpaymentmngt.dao.MatchTransactionDao;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.dal.core.OBContext;
@@ -33,8 +34,8 @@
 import org.openbravo.erpCommon.utility.OBDateUtils;
 import org.openbravo.erpCommon.utility.OBError;
 import org.openbravo.erpCommon.utility.Utility;
-import org.openbravo.model.financialmgmt.payment.FIN_BankStatement;
 import org.openbravo.model.financialmgmt.payment.FIN_FinaccTransaction;
+import org.openbravo.model.financialmgmt.payment.FIN_FinancialAccount;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentDetail;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail;
 import org.openbravo.model.financialmgmt.payment.FIN_Reconciliation;
@@ -101,9 +102,11 @@
             }
           }
         }
+        updateReconciliations(reconciliation);
         reconciliation.setProcessed(true);
         reconciliation.setAPRMProcessReconciliation("R");
         reconciliation.setAprmProcessRec("R");
+        reconciliation.setAPRMProcessReconciliationForce("R");
         reconciliation.setDocumentStatus("CO");
         OBDal.getInstance().save(reconciliation);
         OBDal.getInstance().flush();
@@ -143,8 +146,10 @@
           bundle.setResult(msg);
           return;
         }
+        final boolean isForceProcess = (Boolean) "6BF16EFC772843AC9A17552AE0B26AB7".equals(bundle
+            .getProcessId());
         // Transaction exists
-        if (!isLastReconciliation(reconciliation)) {
+        if (!isForceProcess && !MatchTransactionDao.islastreconciliation(reconciliation)) {
           msg.setType("Error");
           msg.setTitle(Utility.messageBD(conProvider, "Error", language));
           msg.setMessage(Utility.parseTranslation(conProvider, vars, language,
@@ -152,12 +157,40 @@
           bundle.setResult(msg);
           return;
         }
+        if (existsDraftReconciliation(reconciliation.getAccount())) {
+          msg.setType("Error");
+          msg.setTitle(Utility.messageBD(conProvider, "Error", language));
+          msg.setMessage(Utility.parseTranslation(conProvider, vars, language,
+              "@APRM_DraftReconciliationExists@"));
+          bundle.setResult(msg);
+          return;
+        }
+        for (FIN_ReconciliationLine_v recLine : reconciliation.getFINReconciliationLineVList()) {
+          boolean orgLegalWithAccounting = FIN_Utility.periodControlOpened(recLine
+              .getFinancialAccountTransaction().getReconciliation().TABLE_NAME, recLine
+              .getFinancialAccountTransaction().getReconciliation().getId(), recLine
+              .getFinancialAccountTransaction().getReconciliation().TABLE_NAME + "_ID", "LE");
+          if (!FIN_Utility.isPeriodOpen(recLine.getFinancialAccountTransaction().getClient()
+              .getId(), AcctServer.DOCTYPE_Reconciliation, recLine.getFinancialAccountTransaction()
+              .getOrganization().getId(),
+              OBDateUtils.formatDate(recLine.getFinancialAccountTransaction().getDateAcct()))
+              && orgLegalWithAccounting) {
+            msg.setType("Error");
+            msg.setTitle(Utility.messageBD(conProvider, "Error", language));
+            msg.setMessage(String.format(Utility.parseTranslation(conProvider, vars, language,
+                "@APRM_PeriodNotAvailableClearedItem@"), recLine.getIdentifier()));
+            bundle.setResult(msg);
+            OBDal.getInstance().rollbackAndClose();
+            return;
+          }
+        }
         reconciliation.setProcessed(false);
         OBDal.getInstance().save(reconciliation);
         OBDal.getInstance().flush();
         reconciliation.setDocumentStatus("DR");
         reconciliation.setAPRMProcessReconciliation("P");
         reconciliation.setAprmProcessRec("P");
+        reconciliation.setAPRMProcessReconciliationForce("P");
         OBDal.getInstance().save(reconciliation);
         OBDal.getInstance().flush();
         Boolean invoicePaidold = false;
@@ -205,39 +238,49 @@
     }
   }
 
-  private boolean isLastReconciliation(FIN_Reconciliation reconciliation) {
+  private boolean existsDraftReconciliation(FIN_FinancialAccount account) {
+    OBContext.setAdminMode(false);
+    try {
+      OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(
+          FIN_Reconciliation.class);
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_DOCUMENTSTATUS, "DR"));
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_PROCESSED, false));
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, account));
+      obc.setMaxResults(1);
+      return obc.uniqueResult() != null;
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  private void updateReconciliations(FIN_Reconciliation reconciliation) {
     final OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(
         FIN_Reconciliation.class);
     obc.add(Restrictions.ge(FIN_Reconciliation.PROPERTY_ENDINGDATE, reconciliation.getEndingDate()));
-    obc.add(Restrictions.gt(FIN_Reconciliation.PROPERTY_CREATIONDATE,
+    obc.add(Restrictions.ge(FIN_Reconciliation.PROPERTY_CREATIONDATE,
         reconciliation.getCreationDate()));
     obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, reconciliation.getAccount()));
     obc.addOrder(Order.asc(FIN_Reconciliation.PROPERTY_ENDINGDATE));
     obc.addOrder(Order.asc(FIN_Reconciliation.PROPERTY_CREATIONDATE));
     final List<FIN_Reconciliation> reconciliations = obc.list();
-    if (reconciliations.size() == 0) {
-      return true;
-    } else if (reconciliations.size() == 1) {
-      if (reconciliations.get(0).isProcessed()) {
-        return false;
-      } else if (reconciliations.get(0).getFINReconciliationLineVList().size() == 0) {
-        FIN_Reconciliation reconciliationToDelete = OBDal.getInstance().get(
-            FIN_Reconciliation.class, reconciliations.get(0).getId());
-        for (FIN_BankStatement bst : reconciliationToDelete.getFINBankStatementList()) {
-          FIN_BankStatement bankstatement = OBDal.getInstance().get(FIN_BankStatement.class,
-              bst.getId());
-          bankstatement.setFINReconciliation(null);
-          OBDal.getInstance().save(bankstatement);
-          OBDal.getInstance().flush();
-        }
-        OBDal.getInstance().remove(reconciliationToDelete);
-        OBDal.getInstance().flush();
-        return true;
-      } else {
-        return false;
-      }
-    } else {
-      return false;
+    for (FIN_Reconciliation rec : reconciliations) {
+      updateReconciliation(rec);
     }
+    return;
   }
+
+  private void updateReconciliation(FIN_Reconciliation reconciliation) {
+    OBContext.setAdminMode(false);
+    try {
+      // This is needed to allow completing a reconciliation with unmatched bank statement lines
+      reconciliation.setStartingbalance(MatchTransactionDao.getStartingBalance(reconciliation));
+      reconciliation.setEndingBalance(MatchTransactionDao.getEndingBalance(reconciliation));
+      OBDal.getInstance().save(reconciliation);
+      OBDal.getInstance().flush();
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+    return;
+  }
+
 }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java	Fri Feb 28 11:23:32 2014 +0100
@@ -36,6 +36,7 @@
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.process.FIN_AddPayment;
+import org.openbravo.base.exception.OBException;
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.dal.core.OBContext;
@@ -158,6 +159,9 @@
 
     try {
       bankStatementLines = loadFile(file, bankStatement);
+    } catch (OBException e) {
+      OBDal.getInstance().rollbackAndClose();
+      return getOBError(conn, vars, e.getMessage(), "Error", "Error");
     } catch (Exception e) {
       OBDal.getInstance().rollbackAndClose();
       return getOBError(conn, vars, "@APRM_InvalidOrMissingValues@", "Error", "Error");
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-action-button.js	Thu Feb 27 20:13:13 2014 +0100
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/toolbar/ob-action-button.js	Fri Feb 28 11:23:32 2014 +0100
@@ -267,6 +267,7 @@
 
     if (!multiSelect) {
       OB.Utilities.fixNull250(currentValues);
+      OB.Utilities.fixNull250(context);
 
       this.visible = !this.displayIf || (context && this.displayIf(this.contextView.viewForm, currentValues, context));
       readonly = this.readOnlyIf && context && this.readOnlyIf(this.contextView.viewForm, currentValues, context);
--- a/src-db/database/sourcedata/AD_AUXILIARINPUT.xml	Thu Feb 27 20:13:13 2014 +0100
+++ b/src-db/database/sourcedata/AD_AUXILIARINPUT.xml	Fri Feb 28 11:23:32 2014 +0100
@@ -1009,6 +1009,17 @@
 <!--1FEA6AF375714E1A962C67E094001342-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--1FEA6AF375714E1A962C67E094001342--></AD_AUXILIARINPUT>
 
+<!--1FF62A68BA95425CA76E4317DD195C62--><AD_AUXILIARINPUT>
+<!--1FF62A68BA95425CA76E4317DD195C62-->  <AD_AUXILIARINPUT_ID><![CDATA[1FF62A68BA95425CA76E4317DD195C62]]></AD_AUXILIARINPUT_ID>
+<!--1FF62A68BA95425CA76E4317DD195C62-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--1FF62A68BA95425CA76E4317DD195C62-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--1FF62A68BA95425CA76E4317DD195C62-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--1FF62A68BA95425CA76E4317DD195C62-->  <AD_TAB_ID><![CDATA[2845D761A8394468BD3BA4710AA888D4]]></AD_TAB_ID>
+<!--1FF62A68BA95425CA76E4317DD195C62-->  <NAME><![CDATA[DRAFTRECONCILIATION]]></NAME>
+<!--1FF62A68BA95425CA76E4317DD195C62-->  <CODE><![CDATA[@SQL=select coalesce(fin_reconciliation_id,'') from fin_reconciliation where fin_financial_account_id = @FIN_Financial_Account_ID@ and processed = 'N']]></CODE>
+<!--1FF62A68BA95425CA76E4317DD195C62-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--1FF62A68BA95425CA76E4317DD195C62--></AD_AUXILIARINPUT>
+
 <!--21B56210EEAD4C08AB3A0A1A4F781FE6--><AD_AUXILIARINPUT>
 <!--21B56210EEAD4C08AB3A0A1A4F781FE6-->  <AD_AUXILIARINPUT_ID><![CDATA[21B56210EEAD4C08AB3A0A1A4F781FE6]]></AD_AUXILIARINPUT_ID>
 <!--21B56210EEAD4C08AB3A0A1A4F781FE6-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1673,6 +1684,20 @@
 <!--4D9613116EAA46A585AEDB75237D5140-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--4D9613116EAA46A585AEDB75237D5140--></AD_AUXILIARINPUT>
 
+<!--4FD70C86888041D695C59CFA792BBCC6--><AD_AUXILIARINPUT>
+<!--4FD70C86888041D695C59CFA792BBCC6-->  <AD_AUXILIARINPUT_ID><![CDATA[4FD70C86888041D695C59CFA792BBCC6]]></AD_AUXILIARINPUT_ID>
+<!--4FD70C86888041D695C59CFA792BBCC6-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--4FD70C86888041D695C59CFA792BBCC6-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--4FD70C86888041D695C59CFA792BBCC6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--4FD70C86888041D695C59CFA792BBCC6-->  <AD_TAB_ID><![CDATA[2845D761A8394468BD3BA4710AA888D4]]></AD_TAB_ID>
+<!--4FD70C86888041D695C59CFA792BBCC6-->  <NAME><![CDATA[LASTRECON]]></NAME>
+<!--4FD70C86888041D695C59CFA792BBCC6-->  <CODE><![CDATA[@SQL=select fin_reconciliation_id from fin_reconciliation where created = (
+select max(created)
+from fin_reconciliation 
+where fin_financial_account_id = @FIN_Financial_Account_ID@)]]></CODE>
+<!--4FD70C86888041D695C59CFA792BBCC6-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--4FD70C86888041D695C59CFA792BBCC6--></AD_AUXILIARINPUT>
+
 <!--51568B79156646C8966F49F82EE51CB7--><AD_AUXILIARINPUT>
 <!--51568B79156646C8966F49F82EE51CB7-->  <AD_AUXILIARINPUT_ID><![CDATA[51568B79156646C8966F49F82EE51CB7]]></AD_AUXILIARINPUT_ID>
 <!--51568B79156646C8966F49F82EE51CB7-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>