diff --git a/src-db/database/model/tables/OBPOS_APP_PAYMENT.xml b/src-db/database/model/tables/OBPOS_APP_PAYMENT.xml
--- a/src-db/database/model/tables/OBPOS_APP_PAYMENT.xml
+++ b/src-db/database/model/tables/OBPOS_APP_PAYMENT.xml
@@ -37,7 +37,7 @@
         <default/>
         <onCreateDefault/>
       </column>
-      <column name="FIN_FINANCIAL_ACCOUNT_ID" primaryKey="false" required="true" type="VARCHAR" size="32" autoIncrement="false">
+      <column name="FIN_FINANCIAL_ACCOUNT_ID" primaryKey="false" required="false" type="VARCHAR" size="32" autoIncrement="false">
         <default/>
         <onCreateDefault/>
       </column>
diff --git a/src-db/database/model/tables/OBPOS_APP_PAYMENT_TYPE.xml b/src-db/database/model/tables/OBPOS_APP_PAYMENT_TYPE.xml
--- a/src-db/database/model/tables/OBPOS_APP_PAYMENT_TYPE.xml
+++ b/src-db/database/model/tables/OBPOS_APP_PAYMENT_TYPE.xml
@@ -81,7 +81,7 @@
         <default/>
         <onCreateDefault/>
       </column>
-      <column name="C_GLITEM_DIFF_ID" primaryKey="false" required="true" type="VARCHAR" size="32" autoIncrement="false">
+      <column name="C_GLITEM_DIFF_ID" primaryKey="false" required="false" type="VARCHAR" size="32" autoIncrement="false">
         <default/>
         <onCreateDefault/>
       </column>
@@ -141,6 +141,10 @@
         <default><![CDATA[Y]]></default>
         <onCreateDefault><![CDATA['Y']]></onCreateDefault>
       </column>
+      <column name="LEAVEASCREDIT" primaryKey="false" required="true" type="CHAR" size="1" autoIncrement="false">
+        <default><![CDATA[N]]></default>
+        <onCreateDefault/>
+      </column>
       <foreign-key foreignTable="AD_CLIENT" name="OBPOS_APPPAYTYPE_AD_CLIENT">
         <reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
       </foreign-key>
@@ -187,6 +191,7 @@
       <check name="OBPOS_APP_PAYTYPE_DEPGL_CHK"><![CDATA[(ALLOWDEPOSITS = 'N') OR (C_GLITEM_DEPOSITS_ID IS NOT NULL)]]></check>
       <check name="OBPOS_APP_PAYTYPE_DROPGL_CHK"><![CDATA[(ALLOWDROPS = 'N') OR (C_GLITEM_DROPS_ID IS NOT NULL)]]></check>
       <check name="OBPOS_APP_PAYTYPE_FIXEDAM_CHK"><![CDATA[(KEEPFIXEDAMOUNT = 'N') OR (AMOUNT IS NOT NULL)]]></check>
+      <check name="OBPOS_APPPAY_LEAVECREDIT_CHK"><![CDATA[LEAVEASCREDIT IN ('Y', 'N')]]></check>
       <check name="OBPOS_APPPAYTYPE_AUTO_CHK"><![CDATA[AUTOMATEMOVEMENTTOOTHER IN ('Y', 'N')]]></check>
       <check name="OBPOS_APPPAYTYPE_CASH_CHK"><![CDATA[ISCASH IN ('Y', 'N')]]></check>
       <check name="OBPOS_APPPAYTYPE_COUNTCASH_CHK"><![CDATA[COUNTCASH IN ('Y', 'N')]]></check>
diff --git a/src-db/database/sourcedata/AD_AUXILIARINPUT.xml b/src-db/database/sourcedata/AD_AUXILIARINPUT.xml
new file mode 100644
--- /dev/null
+++ b/src-db/database/sourcedata/AD_AUXILIARINPUT.xml
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--D04496856E194B3A800EC08C0E09B842--><AD_AUXILIARINPUT>
+<!--D04496856E194B3A800EC08C0E09B842-->  <AD_AUXILIARINPUT_ID><![CDATA[D04496856E194B3A800EC08C0E09B842]]></AD_AUXILIARINPUT_ID>
+<!--D04496856E194B3A800EC08C0E09B842-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D04496856E194B3A800EC08C0E09B842-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D04496856E194B3A800EC08C0E09B842-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D04496856E194B3A800EC08C0E09B842-->  <AD_TAB_ID><![CDATA[027E3BB9B7114CA68F976D0C0133E682]]></AD_TAB_ID>
+<!--D04496856E194B3A800EC08C0E09B842-->  <NAME><![CDATA[FinAcc_Disabled]]></NAME>
+<!--D04496856E194B3A800EC08C0E09B842-->  <CODE><![CDATA[@SQL=SELECT LEAVEASCREDIT FROM OBPOS_APP_PAYMENT_TYPE WHERE OBPOS_APP_PAYMENT_TYPE_ID = @OBPOS_APP_PAYMENT_TYPE_ID@]]></CODE>
+<!--D04496856E194B3A800EC08C0E09B842-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--D04496856E194B3A800EC08C0E09B842--></AD_AUXILIARINPUT>
+
+</data>
diff --git a/src-db/database/sourcedata/AD_COLUMN.xml b/src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml
+++ b/src-db/database/sourcedata/AD_COLUMN.xml
@@ -1490,6 +1490,40 @@
 <!--24723B46017345AFB4E5413AF3526776-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
 <!--24723B46017345AFB4E5413AF3526776--></AD_COLUMN>
 
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B--><AD_COLUMN>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <AD_COLUMN_ID><![CDATA[24CA9F6F48DA4453911DDCA77DA7DE2B]]></AD_COLUMN_ID>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <NAME><![CDATA[Leaveascredit]]></NAME>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <COLUMNNAME><![CDATA[Leaveascredit]]></COLUMNNAME>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <AD_TABLE_ID><![CDATA[B096FDF43917472D8FDE9693E9CCFFD4]]></AD_TABLE_ID>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <AD_REFERENCE_ID><![CDATA[20]]></AD_REFERENCE_ID>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <FIELDLENGTH><![CDATA[1]]></FIELDLENGTH>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <DEFAULTVALUE><![CDATA[N]]></DEFAULTVALUE>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <SEQNO><![CDATA[445]]></SEQNO>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <AD_ELEMENT_ID><![CDATA[9E94E84AB7E54849ABE0CEF12E6E9414]]></AD_ELEMENT_ID>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <POSITION><![CDATA[36]]></POSITION>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--24CA9F6F48DA4453911DDCA77DA7DE2B--></AD_COLUMN>
+
 <!--25201F26AB3647C598A1539E7F1C03DF--><AD_COLUMN>
 <!--25201F26AB3647C598A1539E7F1C03DF-->  <AD_COLUMN_ID><![CDATA[25201F26AB3647C598A1539E7F1C03DF]]></AD_COLUMN_ID>
 <!--25201F26AB3647C598A1539E7F1C03DF-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1637,6 +1671,8 @@
 <!--2A66D8FDB84347F3BC2EDD0922F9210F-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--2A66D8FDB84347F3BC2EDD0922F9210F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--2A66D8FDB84347F3BC2EDD0922F9210F-->  <NAME><![CDATA[Unlinkdevice]]></NAME>
+<!--2A66D8FDB84347F3BC2EDD0922F9210F-->  <DESCRIPTION><![CDATA[POS Terminal Unlink Device]]></DESCRIPTION>
+<!--2A66D8FDB84347F3BC2EDD0922F9210F-->  <HELP><![CDATA[POS Terminal Unlink Device]]></HELP>
 <!--2A66D8FDB84347F3BC2EDD0922F9210F-->  <COLUMNNAME><![CDATA[Unlinkdevice]]></COLUMNNAME>
 <!--2A66D8FDB84347F3BC2EDD0922F9210F-->  <AD_TABLE_ID><![CDATA[FF80818132F311740132F31E2C9A0016]]></AD_TABLE_ID>
 <!--2A66D8FDB84347F3BC2EDD0922F9210F-->  <AD_REFERENCE_ID><![CDATA[28]]></AD_REFERENCE_ID>
@@ -1822,7 +1858,7 @@
 <!--349309D809134679955395B9655E8236-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
 <!--349309D809134679955395B9655E8236-->  <ISKEY><![CDATA[N]]></ISKEY>
 <!--349309D809134679955395B9655E8236-->  <ISPARENT><![CDATA[N]]></ISPARENT>
-<!--349309D809134679955395B9655E8236-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--349309D809134679955395B9655E8236-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
 <!--349309D809134679955395B9655E8236-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
 <!--349309D809134679955395B9655E8236-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
 <!--349309D809134679955395B9655E8236-->  <SEQNO><![CDATA[220]]></SEQNO>
@@ -6407,11 +6443,13 @@
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <COLUMNNAME><![CDATA[FIN_Financial_Account_ID]]></COLUMNNAME>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <AD_TABLE_ID><![CDATA[CCE07BDBDC344FD98E52C293A987203F]]></AD_TABLE_ID>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID>
+<!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <AD_VAL_RULE_ID><![CDATA[7153C74CF9CC45D2BBFA524A79146269]]></AD_VAL_RULE_ID>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <ISKEY><![CDATA[N]]></ISKEY>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <ISPARENT><![CDATA[N]]></ISPARENT>
-<!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <READONLYLOGIC><![CDATA[@FinAcc_Disabled@='Y']]></READONLYLOGIC>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <SEQNO><![CDATA[110]]></SEQNO>
 <!--DA36F2891C2A4ED2B4CF4C838C70170E-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
diff --git a/src-db/database/sourcedata/AD_ELEMENT.xml b/src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml
@@ -839,6 +839,18 @@
 <!--9A08A9CC0EAD4B1DADB9CC98D0137EE4-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--9A08A9CC0EAD4B1DADB9CC98D0137EE4--></AD_ELEMENT>
 
+<!--9E94E84AB7E54849ABE0CEF12E6E9414--><AD_ELEMENT>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <AD_ELEMENT_ID><![CDATA[9E94E84AB7E54849ABE0CEF12E6E9414]]></AD_ELEMENT_ID>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <COLUMNNAME><![CDATA[Leaveascredit]]></COLUMNNAME>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <NAME><![CDATA[Leave as credit]]></NAME>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <PRINTNAME><![CDATA[Leave as credit]]></PRINTNAME>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--9E94E84AB7E54849ABE0CEF12E6E9414--></AD_ELEMENT>
+
 <!--9E95A0C00A6C4BDF8BC7D88C0BD4292A--><AD_ELEMENT>
 <!--9E95A0C00A6C4BDF8BC7D88C0BD4292A-->  <AD_ELEMENT_ID><![CDATA[9E95A0C00A6C4BDF8BC7D88C0BD4292A]]></AD_ELEMENT_ID>
 <!--9E95A0C00A6C4BDF8BC7D88C0BD4292A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_FIELD.xml b/src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml
+++ b/src-db/database/sourcedata/AD_FIELD.xml
@@ -13,7 +13,7 @@
 <!--005DC166ED6C48AF89E3280213F6F6F7-->  <AD_COLUMN_ID><![CDATA[BC0C496F16C94F51A37ECF9AD0C2BDFA]]></AD_COLUMN_ID>
 <!--005DC166ED6C48AF89E3280213F6F6F7-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--005DC166ED6C48AF89E3280213F6F6F7-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--005DC166ED6C48AF89E3280213F6F6F7-->  <DISPLAYLOGIC><![CDATA[@Automatemovementtoother@='Y']]></DISPLAYLOGIC>
+<!--005DC166ED6C48AF89E3280213F6F6F7-->  <DISPLAYLOGIC><![CDATA[@Automatemovementtoother@='Y' & @leaveascredit@='N']]></DISPLAYLOGIC>
 <!--005DC166ED6C48AF89E3280213F6F6F7-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--005DC166ED6C48AF89E3280213F6F6F7-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--005DC166ED6C48AF89E3280213F6F6F7-->  <SEQNO><![CDATA[110]]></SEQNO>
@@ -42,7 +42,7 @@
 <!--00BF273D2E3A4308B0ED31A46BD4AC52-->  <AD_COLUMN_ID><![CDATA[57CF66A9D10F48AF8DD4D07ABE392F44]]></AD_COLUMN_ID>
 <!--00BF273D2E3A4308B0ED31A46BD4AC52-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--00BF273D2E3A4308B0ED31A46BD4AC52-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--00BF273D2E3A4308B0ED31A46BD4AC52-->  <DISPLAYLOGIC><![CDATA[@Iscash@='Y']]></DISPLAYLOGIC>
+<!--00BF273D2E3A4308B0ED31A46BD4AC52-->  <DISPLAYLOGIC><![CDATA[@Iscash@='Y' & @leaveascredit@='N']]></DISPLAYLOGIC>
 <!--00BF273D2E3A4308B0ED31A46BD4AC52-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--00BF273D2E3A4308B0ED31A46BD4AC52-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--00BF273D2E3A4308B0ED31A46BD4AC52-->  <SEQNO><![CDATA[160]]></SEQNO>
@@ -465,6 +465,7 @@
 <!--134B712F829041F58A8D96ECD5052739-->  <AD_COLUMN_ID><![CDATA[12556DBF01154B3A85F77D7587583391]]></AD_COLUMN_ID>
 <!--134B712F829041F58A8D96ECD5052739-->  <IGNOREINWAD><![CDATA[Y]]></IGNOREINWAD>
 <!--134B712F829041F58A8D96ECD5052739-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--134B712F829041F58A8D96ECD5052739-->  <DISPLAYLOGIC><![CDATA[@leaveascredit@='N']]></DISPLAYLOGIC>
 <!--134B712F829041F58A8D96ECD5052739-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
 <!--134B712F829041F58A8D96ECD5052739-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--134B712F829041F58A8D96ECD5052739-->  <SEQNO><![CDATA[103]]></SEQNO>
@@ -691,6 +692,7 @@
 <!--2032C68C1FAF43B2B6970EF0E3CCC362-->  <AD_COLUMN_ID><![CDATA[4C31D9531AF848058BF9E66963BCD3F5]]></AD_COLUMN_ID>
 <!--2032C68C1FAF43B2B6970EF0E3CCC362-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--2032C68C1FAF43B2B6970EF0E3CCC362-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--2032C68C1FAF43B2B6970EF0E3CCC362-->  <DISPLAYLOGIC><![CDATA[@leaveascredit@='N']]></DISPLAYLOGIC>
 <!--2032C68C1FAF43B2B6970EF0E3CCC362-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--2032C68C1FAF43B2B6970EF0E3CCC362-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--2032C68C1FAF43B2B6970EF0E3CCC362-->  <SEQNO><![CDATA[190]]></SEQNO>
@@ -805,6 +807,7 @@
 <!--2AE3F424DF984CEC8B3FFAEB9E468577-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--2AE3F424DF984CEC8B3FFAEB9E468577-->  <AD_FIELDGROUP_ID><![CDATA[DA6785B66E1A41D98B03B2BFE5AAAB75]]></AD_FIELDGROUP_ID>
 <!--2AE3F424DF984CEC8B3FFAEB9E468577-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--2AE3F424DF984CEC8B3FFAEB9E468577-->  <DISPLAYLOGIC><![CDATA[@leaveascredit@='N']]></DISPLAYLOGIC>
 <!--2AE3F424DF984CEC8B3FFAEB9E468577-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--2AE3F424DF984CEC8B3FFAEB9E468577-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--2AE3F424DF984CEC8B3FFAEB9E468577-->  <SEQNO><![CDATA[170]]></SEQNO>
@@ -1567,7 +1570,7 @@
 <!--49C20B545A65400E9B36E0BC9AC843F1-->  <AD_COLUMN_ID><![CDATA[D8DD5F42308E4A7893E5766DA2B0C383]]></AD_COLUMN_ID>
 <!--49C20B545A65400E9B36E0BC9AC843F1-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--49C20B545A65400E9B36E0BC9AC843F1-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--49C20B545A65400E9B36E0BC9AC843F1-->  <DISPLAYLOGIC><![CDATA[@Allowdrops@='Y']]></DISPLAYLOGIC>
+<!--49C20B545A65400E9B36E0BC9AC843F1-->  <DISPLAYLOGIC><![CDATA[@Allowdrops@='Y' & @leaveascredit@='N']]></DISPLAYLOGIC>
 <!--49C20B545A65400E9B36E0BC9AC843F1-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
 <!--49C20B545A65400E9B36E0BC9AC843F1-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--49C20B545A65400E9B36E0BC9AC843F1-->  <SEQNO><![CDATA[180]]></SEQNO>
@@ -2132,7 +2135,7 @@
 <!--67E47907D1BE41AC80D9F3DDCF9A1BEF-->  <AD_COLUMN_ID><![CDATA[69DE59465CCE41F08575F610A4CE51C3]]></AD_COLUMN_ID>
 <!--67E47907D1BE41AC80D9F3DDCF9A1BEF-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--67E47907D1BE41AC80D9F3DDCF9A1BEF-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--67E47907D1BE41AC80D9F3DDCF9A1BEF-->  <DISPLAYLOGIC><![CDATA[@Allowdeposits@='Y']]></DISPLAYLOGIC>
+<!--67E47907D1BE41AC80D9F3DDCF9A1BEF-->  <DISPLAYLOGIC><![CDATA[@Allowdeposits@='Y' & @leaveascredit@='N']]></DISPLAYLOGIC>
 <!--67E47907D1BE41AC80D9F3DDCF9A1BEF-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
 <!--67E47907D1BE41AC80D9F3DDCF9A1BEF-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--67E47907D1BE41AC80D9F3DDCF9A1BEF-->  <SEQNO><![CDATA[200]]></SEQNO>
@@ -2394,6 +2397,7 @@
 <!--77E9DB910177422EAD6C2649FB4559C7-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--77E9DB910177422EAD6C2649FB4559C7-->  <AD_FIELDGROUP_ID><![CDATA[F1A8FF12D50241979A7882FA69F7066B]]></AD_FIELDGROUP_ID>
 <!--77E9DB910177422EAD6C2649FB4559C7-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--77E9DB910177422EAD6C2649FB4559C7-->  <DISPLAYLOGIC><![CDATA[@leaveascredit@='N']]></DISPLAYLOGIC>
 <!--77E9DB910177422EAD6C2649FB4559C7-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
 <!--77E9DB910177422EAD6C2649FB4559C7-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--77E9DB910177422EAD6C2649FB4559C7-->  <SEQNO><![CDATA[100]]></SEQNO>
@@ -2759,16 +2763,17 @@
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <AD_COLUMN_ID><![CDATA[DA36F2891C2A4ED2B4CF4C838C70170E]]></AD_COLUMN_ID>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--8949A7E66C06454A9DAC2289ADB2E057-->  <DISPLAYLOGIC><![CDATA[@FinAcc_Disabled@='N' & @Obpos_App_Payment_Type_ID@!'']]></DISPLAYLOGIC>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
-<!--8949A7E66C06454A9DAC2289ADB2E057-->  <SEQNO><![CDATA[30]]></SEQNO>
+<!--8949A7E66C06454A9DAC2289ADB2E057-->  <SEQNO><![CDATA[40]]></SEQNO>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
-<!--8949A7E66C06454A9DAC2289ADB2E057-->  <GRID_SEQNO><![CDATA[30]]></GRID_SEQNO>
+<!--8949A7E66C06454A9DAC2289ADB2E057-->  <GRID_SEQNO><![CDATA[40]]></GRID_SEQNO>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
 <!--8949A7E66C06454A9DAC2289ADB2E057-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
@@ -3303,6 +3308,7 @@
 <!--AE596D0D4C654EA4A0B6E33ECB1FDE7C-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--AE596D0D4C654EA4A0B6E33ECB1FDE7C-->  <AD_FIELDGROUP_ID><![CDATA[F1A8FF12D50241979A7882FA69F7066B]]></AD_FIELDGROUP_ID>
 <!--AE596D0D4C654EA4A0B6E33ECB1FDE7C-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--AE596D0D4C654EA4A0B6E33ECB1FDE7C-->  <DISPLAYLOGIC><![CDATA[@leaveascredit@='N']]></DISPLAYLOGIC>
 <!--AE596D0D4C654EA4A0B6E33ECB1FDE7C-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--AE596D0D4C654EA4A0B6E33ECB1FDE7C-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--AE596D0D4C654EA4A0B6E33ECB1FDE7C-->  <SEQNO><![CDATA[105]]></SEQNO>
@@ -3605,7 +3611,7 @@
 <!--C1041D18C3B2459CAE2FE20114C63F7A-->  <AD_COLUMN_ID><![CDATA[C5AD82AFB0A54FEDBD24F32375F2A4D5]]></AD_COLUMN_ID>
 <!--C1041D18C3B2459CAE2FE20114C63F7A-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--C1041D18C3B2459CAE2FE20114C63F7A-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--C1041D18C3B2459CAE2FE20114C63F7A-->  <DISPLAYLOGIC><![CDATA[@Automatemovementtoother@='Y']]></DISPLAYLOGIC>
+<!--C1041D18C3B2459CAE2FE20114C63F7A-->  <DISPLAYLOGIC><![CDATA[@Automatemovementtoother@='Y'& @leaveascredit@='N']]></DISPLAYLOGIC>
 <!--C1041D18C3B2459CAE2FE20114C63F7A-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--C1041D18C3B2459CAE2FE20114C63F7A-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--C1041D18C3B2459CAE2FE20114C63F7A-->  <SEQNO><![CDATA[130]]></SEQNO>
@@ -3634,7 +3640,7 @@
 <!--C3A536DDD04641ECA2104E406259B060-->  <AD_COLUMN_ID><![CDATA[CC960982D9B14E0DAAC4D95EA3DBAA79]]></AD_COLUMN_ID>
 <!--C3A536DDD04641ECA2104E406259B060-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--C3A536DDD04641ECA2104E406259B060-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--C3A536DDD04641ECA2104E406259B060-->  <DISPLAYLOGIC><![CDATA[@Automatemovementtoother@='Y']]></DISPLAYLOGIC>
+<!--C3A536DDD04641ECA2104E406259B060-->  <DISPLAYLOGIC><![CDATA[@Automatemovementtoother@='Y' & @leaveascredit@='N']]></DISPLAYLOGIC>
 <!--C3A536DDD04641ECA2104E406259B060-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--C3A536DDD04641ECA2104E406259B060-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--C3A536DDD04641ECA2104E406259B060-->  <SEQNO><![CDATA[150]]></SEQNO>
@@ -3807,7 +3813,7 @@
 <!--CF3109E18E5148CB81183EB989E420A3-->  <AD_COLUMN_ID><![CDATA[2286CFE5E2074432B7723288554677F6]]></AD_COLUMN_ID>
 <!--CF3109E18E5148CB81183EB989E420A3-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--CF3109E18E5148CB81183EB989E420A3-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--CF3109E18E5148CB81183EB989E420A3-->  <DISPLAYLOGIC><![CDATA[@Automatemovementtoother@='Y']]></DISPLAYLOGIC>
+<!--CF3109E18E5148CB81183EB989E420A3-->  <DISPLAYLOGIC><![CDATA[@Automatemovementtoother@='Y' & @leaveascredit@='N']]></DISPLAYLOGIC>
 <!--CF3109E18E5148CB81183EB989E420A3-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
 <!--CF3109E18E5148CB81183EB989E420A3-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--CF3109E18E5148CB81183EB989E420A3-->  <SEQNO><![CDATA[140]]></SEQNO>
@@ -4176,7 +4182,7 @@
 <!--DF1087E6BE4148A3AF237F986ECAFD69-->  <AD_COLUMN_ID><![CDATA[1EB3DAB3554949B182943774B94E09DE]]></AD_COLUMN_ID>
 <!--DF1087E6BE4148A3AF237F986ECAFD69-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--DF1087E6BE4148A3AF237F986ECAFD69-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--DF1087E6BE4148A3AF237F986ECAFD69-->  <DISPLAYLOGIC><![CDATA[@Keepfixedamount@='Y' & @Automatemovementtoother@='Y']]></DISPLAYLOGIC>
+<!--DF1087E6BE4148A3AF237F986ECAFD69-->  <DISPLAYLOGIC><![CDATA[@Keepfixedamount@='Y' & @Automatemovementtoother@='Y' & @leaveascredit@='N']]></DISPLAYLOGIC>
 <!--DF1087E6BE4148A3AF237F986ECAFD69-->  <DISPLAYLENGTH><![CDATA[2]]></DISPLAYLENGTH>
 <!--DF1087E6BE4148A3AF237F986ECAFD69-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--DF1087E6BE4148A3AF237F986ECAFD69-->  <SEQNO><![CDATA[120]]></SEQNO>
@@ -4332,6 +4338,32 @@
 <!--E0C14EB436F64DD898CBF154E7C1F882-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--E0C14EB436F64DD898CBF154E7C1F882--></AD_FIELD>
 
+<!--E4641870AEC84A8D8E76A3B55DB18FE0--><AD_FIELD>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <AD_FIELD_ID><![CDATA[E4641870AEC84A8D8E76A3B55DB18FE0]]></AD_FIELD_ID>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <NAME><![CDATA[Leave as credit]]></NAME>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <AD_TAB_ID><![CDATA[4D9F5E9CC0014A96861CEFB64BBF013B]]></AD_TAB_ID>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <AD_COLUMN_ID><![CDATA[24CA9F6F48DA4453911DDCA77DA7DE2B]]></AD_COLUMN_ID>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <SEQNO><![CDATA[98]]></SEQNO>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--E4641870AEC84A8D8E76A3B55DB18FE0--></AD_FIELD>
+
 <!--E5EBCFED984240BCA9842D21A8380349--><AD_FIELD>
 <!--E5EBCFED984240BCA9842D21A8380349-->  <AD_FIELD_ID><![CDATA[E5EBCFED984240BCA9842D21A8380349]]></AD_FIELD_ID>
 <!--E5EBCFED984240BCA9842D21A8380349-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -4376,14 +4408,14 @@
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
-<!--E6D4FAAE415149528A8BC38C91C397D8-->  <SEQNO><![CDATA[40]]></SEQNO>
+<!--E6D4FAAE415149528A8BC38C91C397D8-->  <SEQNO><![CDATA[30]]></SEQNO>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
-<!--E6D4FAAE415149528A8BC38C91C397D8-->  <GRID_SEQNO><![CDATA[40]]></GRID_SEQNO>
+<!--E6D4FAAE415149528A8BC38C91C397D8-->  <GRID_SEQNO><![CDATA[30]]></GRID_SEQNO>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
 <!--E6D4FAAE415149528A8BC38C91C397D8-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -1176,6 +1176,18 @@
 <!--39EABA22733043DC88329BEA3A659AC1-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--39EABA22733043DC88329BEA3A659AC1--></AD_MESSAGE>
 
+<!--3A25E7FF206F42DD8B98F30D0D3A595E--><AD_MESSAGE>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <AD_MESSAGE_ID><![CDATA[3A25E7FF206F42DD8B98F30D0D3A595E]]></AD_MESSAGE_ID>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <VALUE><![CDATA[OBPOS_FinAccLeaveCredit]]></VALUE>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <MSGTEXT><![CDATA[It is mandatory to select a Financial Account or a Payment Method leave as credit]]></MSGTEXT>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--3A25E7FF206F42DD8B98F30D0D3A595E--></AD_MESSAGE>
+
 <!--3AEE277A5F2543558720992E1CED2C2C--><AD_MESSAGE>
 <!--3AEE277A5F2543558720992E1CED2C2C-->  <AD_MESSAGE_ID><![CDATA[3AEE277A5F2543558720992E1CED2C2C]]></AD_MESSAGE_ID>
 <!--3AEE277A5F2543558720992E1CED2C2C-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1861,6 +1873,18 @@
 <!--57870DFDE61D4E2F8AEF51B931B13DEA-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--57870DFDE61D4E2F8AEF51B931B13DEA--></AD_MESSAGE>
 
+<!--57FBE2E7D28140EA996A25CAE57AFC80--><AD_MESSAGE>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <AD_MESSAGE_ID><![CDATA[57FBE2E7D28140EA996A25CAE57AFC80]]></AD_MESSAGE_ID>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <VALUE><![CDATA[OBPOS_CashDiffLeaveCredit]]></VALUE>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <MSGTEXT><![CDATA[It is mandatory to select Cash Differences or  leave the Payment Method as credit]]></MSGTEXT>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--57FBE2E7D28140EA996A25CAE57AFC80-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--57FBE2E7D28140EA996A25CAE57AFC80--></AD_MESSAGE>
+
 <!--582715E35F2B449584BEB484566A3381--><AD_MESSAGE>
 <!--582715E35F2B449584BEB484566A3381-->  <AD_MESSAGE_ID><![CDATA[582715E35F2B449584BEB484566A3381]]></AD_MESSAGE_ID>
 <!--582715E35F2B449584BEB484566A3381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -2606,6 +2630,18 @@
 <!--7EC813AE2A094FE18CEA6ADD6071BA5C-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--7EC813AE2A094FE18CEA6ADD6071BA5C--></AD_MESSAGE>
 
+<!--7EF083B7E1F246EC81CFECAF0B81DB78--><AD_MESSAGE>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <AD_MESSAGE_ID><![CDATA[7EF083B7E1F246EC81CFECAF0B81DB78]]></AD_MESSAGE_ID>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <VALUE><![CDATA[OBPOS_LeaveAsCreditNotConfigured]]></VALUE>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <MSGTEXT><![CDATA[There was an error loading the POS terminal. There is one payment type defined for this terminal whose payment method is checked as Leave as Credit and it has a Financial Account. To fix this, go to the POS Terminal window in Openbravo, look for the financial account of the affected payment method, and make sure to set the appropriate payment method in the "Payment Method" tab.]]></MSGTEXT>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--7EF083B7E1F246EC81CFECAF0B81DB78--></AD_MESSAGE>
+
 <!--7EF243C4B75B402D9C48D4F1ED7FE919--><AD_MESSAGE>
 <!--7EF243C4B75B402D9C48D4F1ED7FE919-->  <AD_MESSAGE_ID><![CDATA[7EF243C4B75B402D9C48D4F1ED7FE919]]></AD_MESSAGE_ID>
 <!--7EF243C4B75B402D9C48D4F1ED7FE919-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_VAL_RULE.xml b/src-db/database/sourcedata/AD_VAL_RULE.xml
--- a/src-db/database/sourcedata/AD_VAL_RULE.xml
+++ b/src-db/database/sourcedata/AD_VAL_RULE.xml
@@ -68,6 +68,17 @@
 <!--40BFCC34D83D4733ADD598251FB1F8A9-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
 <!--40BFCC34D83D4733ADD598251FB1F8A9--></AD_VAL_RULE>
 
+<!--7153C74CF9CC45D2BBFA524A79146269--><AD_VAL_RULE>
+<!--7153C74CF9CC45D2BBFA524A79146269-->  <AD_VAL_RULE_ID><![CDATA[7153C74CF9CC45D2BBFA524A79146269]]></AD_VAL_RULE_ID>
+<!--7153C74CF9CC45D2BBFA524A79146269-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--7153C74CF9CC45D2BBFA524A79146269-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--7153C74CF9CC45D2BBFA524A79146269-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--7153C74CF9CC45D2BBFA524A79146269-->  <NAME><![CDATA[Payment Type financial account]]></NAME>
+<!--7153C74CF9CC45D2BBFA524A79146269-->  <TYPE><![CDATA[S]]></TYPE>
+<!--7153C74CF9CC45D2BBFA524A79146269-->  <CODE><![CDATA[@Obpos_App_Payment_Type_ID@ is not null]]></CODE>
+<!--7153C74CF9CC45D2BBFA524A79146269-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--7153C74CF9CC45D2BBFA524A79146269--></AD_VAL_RULE>
+
 <!--7E72CA2E0AC546EEB0F80920F0C36CC8--><AD_VAL_RULE>
 <!--7E72CA2E0AC546EEB0F80920F0C36CC8-->  <AD_VAL_RULE_ID><![CDATA[7E72CA2E0AC546EEB0F80920F0C36CC8]]></AD_VAL_RULE_ID>
 <!--7E72CA2E0AC546EEB0F80920F0C36CC8-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src/org/openbravo/retail/posterminal/CashCloseProcessor.java b/src/org/openbravo/retail/posterminal/CashCloseProcessor.java
--- a/src/org/openbravo/retail/posterminal/CashCloseProcessor.java
+++ b/src/org/openbravo/retail/posterminal/CashCloseProcessor.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2012 Openbravo S.L.U.
+ * Copyright (C) 2012-2014 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -67,7 +67,9 @@
       }
       String paymentTypeId = cashCloseObj.getString("paymentTypeId");
       OBPOSAppPayment paymentType = OBDal.getInstance().get(OBPOSAppPayment.class, paymentTypeId);
-
+      if (paymentType.getFinancialAccount() == null) {
+        continue;
+      }
       FIN_Reconciliation reconciliation = createReconciliation(cashCloseObj, posTerminal,
           paymentType.getFinancialAccount(), cashUpDate);
 
diff --git a/src/org/openbravo/retail/posterminal/InitialValidations.java b/src/org/openbravo/retail/posterminal/InitialValidations.java
--- a/src/org/openbravo/retail/posterminal/InitialValidations.java
+++ b/src/org/openbravo/retail/posterminal/InitialValidations.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2012 Openbravo S.L.U.
+ * Copyright (C) 2012-2014 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -44,8 +44,8 @@
       throw new JSONException("OBPOS_OrgDesynchronization");
     }
 
-    String whereclausePM = " as e where e.obposApplications=:terminal and not exists "
-        + "(select 1 from FinancialMgmtFinAccPaymentMethod as pmacc where "
+    String whereclausePM = " as e where e.obposApplications=:terminal and e.financialAccount is not null "
+        + "and not exists (select 1 from FinancialMgmtFinAccPaymentMethod as pmacc where "
         + "pmacc.paymentMethod = e.paymentMethod.paymentMethod and pmacc.account = e.financialAccount"
         + ")";
     OBQuery<OBPOSAppPayment> queryFinAccounts = OBDal.getInstance().createQuery(
@@ -55,7 +55,7 @@
       throw new JSONException("OBPOS_PayMethodNotConfiguredInAccount");
     }
 
-    String whereclauseCMEV = " as e where e.obposApplications=:terminal and exists "
+    String whereclauseCMEV = " as e where e.obposApplications=:terminal and e.financialAccount is not null and exists "
         + "(select 1 from OBRETCO_CashManagementEvents as cmev where "
         + "cmev.financialAccount = e.financialAccount)";
     OBQuery<OBPOSAppPayment> queryEventAccounts = OBDal.getInstance().createQuery(
@@ -64,5 +64,14 @@
     if (queryEventAccounts.list().size() > 0) {
       throw new JSONException("OBPOS_CMEVAccountIsUsedInPayMethod");
     }
+
+    String whereclauseLAC = " as e where e.obposApplications=:terminal and ((e.financialAccount is null "
+        + "and e.paymentMethod.leaveascredit = false) or (e.financialAccount is not null and e.paymentMethod.leaveascredit = true))";
+    OBQuery<OBPOSAppPayment> queryLeaveAsCredit = OBDal.getInstance().createQuery(
+        OBPOSAppPayment.class, whereclauseLAC);
+    queryLeaveAsCredit.setNamedParameter("terminal", posTerminal);
+    if (queryLeaveAsCredit.list().size() > 0) {
+      throw new JSONException("OBPOS_LeaveAsCreditNotConfigured");
+    }
   }
 }
diff --git a/src/org/openbravo/retail/posterminal/OrderLoader.java b/src/org/openbravo/retail/posterminal/OrderLoader.java
--- a/src/org/openbravo/retail/posterminal/OrderLoader.java
+++ b/src/org/openbravo/retail/posterminal/OrderLoader.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2012-2013 Openbravo S.L.U.
+ * Copyright (C) 2012-2014 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -161,9 +161,14 @@
           && !isQuotation
           && Math.abs(jsonorder.getDouble("payment")) < Math.abs(new Double(jsonorder
               .getDouble("gross")));
-      createInvoice = wasPaidOnCredit
-          || (!isQuotation && (!isLayaway && !partialpayLayaway || fullpayLayaway) && (jsonorder
-              .has("generateInvoice") && jsonorder.getBoolean("generateInvoice")));
+      if (jsonorder.has("oBPOSNotInvoiceOnCashUp")
+          && jsonorder.getBoolean("oBPOSNotInvoiceOnCashUp")) {
+        createInvoice = false;
+      } else {
+        createInvoice = wasPaidOnCredit
+            || (!isQuotation && (!isLayaway && !partialpayLayaway || fullpayLayaway) && (jsonorder
+                .has("generateInvoice") && jsonorder.getBoolean("generateInvoice")));
+      }
       createShipment = !isQuotation && (!isLayaway && !partialpayLayaway || fullpayLayaway);
       if (jsonorder.has("generateShipment")) {
         createShipment &= jsonorder.getBoolean("generateShipment");
@@ -1325,6 +1330,9 @@
           paymentinst.process(payment, order, invoice, i == (payments.length() - 1) ? writeoffAmt
               : BigDecimal.ZERO);
         } else {
+          if (paymentType.getFinancialAccount() == null) {
+            continue;
+          }
           processPayments(paymentSchedule, paymentScheduleInvoice, order, invoice, paymentType,
               payment, i == (payments.length() - 1) ? writeoffAmt : BigDecimal.ZERO, jsonorder);
         }
diff --git a/src/org/openbravo/retail/posterminal/ProcessCashClose.java b/src/org/openbravo/retail/posterminal/ProcessCashClose.java
--- a/src/org/openbravo/retail/posterminal/ProcessCashClose.java
+++ b/src/org/openbravo/retail/posterminal/ProcessCashClose.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2012 Openbravo S.L.U.
+ * Copyright (C) 2012-2014 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -58,6 +58,9 @@
 
     // check if there is a reconciliation in draft status
     for (OBPOSAppPayment payment : posTerminal.getOBPOSAppPaymentList()) {
+      if (payment.getFinancialAccount() == null) {
+        continue;
+      }
       final OBCriteria<FIN_Reconciliation> recconciliations = OBDal.getInstance().createCriteria(
           FIN_Reconciliation.class);
       recconciliations.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_DOCUMENTSTATUS, "DR"));
diff --git a/src/org/openbravo/retail/posterminal/ProcessVoidLayaway.java b/src/org/openbravo/retail/posterminal/ProcessVoidLayaway.java
--- a/src/org/openbravo/retail/posterminal/ProcessVoidLayaway.java
+++ b/src/org/openbravo/retail/posterminal/ProcessVoidLayaway.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2012 Openbravo S.L.U.
+ * Copyright (C) 2012-2014 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -144,6 +144,9 @@
             paymentType = type;
           }
         }
+        if (paymentType.getFinancialAccount() == null) {
+          continue;
+        }
         FIN_FinancialAccount account = paymentType.getFinancialAccount();
 
         FIN_PaymentScheduleDetail newPaymentScheduleDetail = OBProvider.getInstance().get(
diff --git a/src/org/openbravo/retail/posterminal/ad_reports/CashUpReport.java b/src/org/openbravo/retail/posterminal/ad_reports/CashUpReport.java
--- a/src/org/openbravo/retail/posterminal/ad_reports/CashUpReport.java
+++ b/src/org/openbravo/retail/posterminal/ad_reports/CashUpReport.java
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2013 Openbravo SLU 
+ * All portions are Copyright (C) 2013-2014 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -138,7 +138,10 @@
       reconsQuery.setNamedParameter("cashUpId", cashup.getId());
       List<OBPOSAppCashReconcil> recons = reconsQuery.list();
       for (int i = 0; i < recons.size(); i++) {
-
+        if (recons.get(i).getReconciliation().getAccount().getOBPOSAppPaymentList().get(0)
+            .getFinancialAccount() == null) {
+          continue;
+        }
         expected = BigDecimal.ZERO;
 
         if (i != 0)
diff --git a/src/org/openbravo/retail/posterminal/event/PaymentMethodEventHandler.java b/src/org/openbravo/retail/posterminal/event/PaymentMethodEventHandler.java
new file mode 100644
--- /dev/null
+++ b/src/org/openbravo/retail/posterminal/event/PaymentMethodEventHandler.java
@@ -0,0 +1,89 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2014 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+
+package org.openbravo.retail.posterminal.event;
+
+import javax.enterprise.event.Observes;
+
+import org.apache.log4j.Logger;
+import org.openbravo.base.exception.OBException;
+import org.openbravo.base.model.Entity;
+import org.openbravo.base.model.ModelProvider;
+import org.openbravo.base.model.Property;
+import org.openbravo.client.kernel.event.EntityNewEvent;
+import org.openbravo.client.kernel.event.EntityPersistenceEventObserver;
+import org.openbravo.client.kernel.event.EntityUpdateEvent;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.erpCommon.utility.Utility;
+import org.openbravo.model.financialmgmt.payment.FIN_FinancialAccount;
+import org.openbravo.retail.posterminal.OBPOSAppPayment;
+import org.openbravo.retail.posterminal.TerminalTypePaymentMethod;
+import org.openbravo.service.db.DalConnectionProvider;
+
+/**
+ * @author guillermogil
+ * 
+ */
+
+public class PaymentMethodEventHandler extends EntityPersistenceEventObserver {
+  private static Entity[] entities = { ModelProvider.getInstance().getEntity(
+      OBPOSAppPayment.ENTITY_NAME) };
+  protected Logger logger = Logger.getLogger(this.getClass());
+
+  @Override
+  protected Entity[] getObservedEntities() {
+    return entities;
+  }
+
+  public void onUpdate(@Observes
+  EntityUpdateEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+
+    FIN_FinancialAccount financialAccount = (FIN_FinancialAccount) event.getTargetInstance().get(
+        "financialAccount");
+    TerminalTypePaymentMethod paymentMethod = (TerminalTypePaymentMethod) event.getTargetInstance()
+        .get("paymentMethod");
+    Boolean leaveascredit = paymentMethod.isLeaveascredit();
+    if (leaveascredit && financialAccount != null) {
+      final Entity appPaymentEntity = ModelProvider.getInstance().getEntity(
+          OBPOSAppPayment.ENTITY_NAME);
+      final Property financialAccountProperty = appPaymentEntity.getProperty("financialAccount");
+      event.setCurrentState(financialAccountProperty, null);
+    } else if (!leaveascredit && financialAccount == null) {
+      throw new OBException(Utility.messageBD(new DalConnectionProvider(false),
+          "OBPOS_FinAccLeaveCredit", OBContext.getOBContext().getLanguage().getLanguage()));
+    }
+
+  }
+
+  public void onSave(@Observes
+  EntityNewEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+
+    FIN_FinancialAccount financialAccount = (FIN_FinancialAccount) event.getTargetInstance().get(
+        "financialAccount");
+    TerminalTypePaymentMethod paymentMethod = (TerminalTypePaymentMethod) event.getTargetInstance()
+        .get("paymentMethod");
+    Boolean leaveascredit = paymentMethod.isLeaveascredit();
+    if (leaveascredit && financialAccount != null) {
+      final Entity appPaymentEntity = ModelProvider.getInstance().getEntity(
+          OBPOSAppPayment.ENTITY_NAME);
+      final Property financialAccountProperty = appPaymentEntity.getProperty("financialAccount");
+      event.setCurrentState(financialAccountProperty, null);
+    } else if (!leaveascredit && financialAccount == null) {
+      throw new OBException(Utility.messageBD(new DalConnectionProvider(false),
+          "OBPOS_FinAccLeaveCredit", OBContext.getOBContext().getLanguage().getLanguage()));
+    }
+
+  }
+}
\ No newline at end of file
diff --git a/src/org/openbravo/retail/posterminal/event/PaymentMethodTypeEventHandler.java b/src/org/openbravo/retail/posterminal/event/PaymentMethodTypeEventHandler.java
new file mode 100644
--- /dev/null
+++ b/src/org/openbravo/retail/posterminal/event/PaymentMethodTypeEventHandler.java
@@ -0,0 +1,96 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2014 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+
+package org.openbravo.retail.posterminal.event;
+
+import javax.enterprise.event.Observes;
+
+import org.apache.log4j.Logger;
+import org.openbravo.base.exception.OBException;
+import org.openbravo.base.model.Entity;
+import org.openbravo.base.model.ModelProvider;
+import org.openbravo.client.kernel.event.EntityNewEvent;
+import org.openbravo.client.kernel.event.EntityPersistenceEventObserver;
+import org.openbravo.client.kernel.event.EntityUpdateEvent;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.erpCommon.utility.Utility;
+import org.openbravo.retail.posterminal.TerminalTypePaymentMethod;
+import org.openbravo.service.db.DalConnectionProvider;
+
+/**
+ * @author guillermogil
+ * 
+ */
+
+public class PaymentMethodTypeEventHandler extends EntityPersistenceEventObserver {
+  private static Entity[] entities = { ModelProvider.getInstance().getEntity(
+      TerminalTypePaymentMethod.ENTITY_NAME) };
+  protected Logger logger = Logger.getLogger(this.getClass());
+
+  @Override
+  protected Entity[] getObservedEntities() {
+    return entities;
+  }
+
+  public void onUpdate(@Observes
+  EntityUpdateEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+
+    Boolean leaveascredit = (Boolean) event.getTargetInstance().get("leaveascredit");
+    Entity appPaymentTypeEntity = ModelProvider.getInstance().getEntity(
+        TerminalTypePaymentMethod.ENTITY_NAME);
+    if (leaveascredit) {
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowdrops"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowdeposits"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowvariableamount"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowdontmove"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowmoveeverything"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("automatemovementtoother"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("keepfixedamount"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("cashDifferences"), null);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("glitemDropdep"), null);
+    } else {
+      if (event.getCurrentState(appPaymentTypeEntity.getProperty("cashDifferences")) == null) {
+        throw new OBException(Utility.messageBD(new DalConnectionProvider(false),
+            "OBPOS_CashDiffLeaveCredit", OBContext.getOBContext().getLanguage().getLanguage()));
+      }
+    }
+
+  }
+
+  public void onSave(@Observes
+  EntityNewEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+
+    Boolean leaveascredit = (Boolean) event.getTargetInstance().get("leaveascredit");
+    Entity appPaymentTypeEntity = ModelProvider.getInstance().getEntity(
+        TerminalTypePaymentMethod.ENTITY_NAME);
+    if (leaveascredit) {
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowdrops"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowdeposits"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowvariableamount"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowdontmove"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("allowmoveeverything"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("automatemovementtoother"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("keepfixedamount"), false);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("cashDifferences"), null);
+      event.setCurrentState(appPaymentTypeEntity.getProperty("glitemDropdep"), null);
+    } else {
+      if (event.getCurrentState(appPaymentTypeEntity.getProperty("cashDifferences")) == null) {
+        throw new OBException(Utility.messageBD(new DalConnectionProvider(false),
+            "OBPOS_CashDiffLeaveCredit", OBContext.getOBContext().getLanguage().getLanguage()));
+      }
+    }
+
+  }
+}
\ No newline at end of file
diff --git a/src/org/openbravo/retail/posterminal/term/Payments.java b/src/org/openbravo/retail/posterminal/term/Payments.java
--- a/src/org/openbravo/retail/posterminal/term/Payments.java
+++ b/src/org/openbravo/retail/posterminal/term/Payments.java
@@ -39,12 +39,12 @@
       JSONArray respArray = new JSONArray();
       String posId = RequestContext.get().getSessionAttribute("POSTerminal").toString();
       String hqlPayments = "select p as payment, p.paymentMethod as paymentMethod, "
-          + "c_currency_rate(p.financialAccount.currency, p.obposApplications.organization.currency, null, null, p.obposApplications.client.id, p.obposApplications.organization.id) as rate, c_currency_rate(p.obposApplications.organization.currency, p.financialAccount.currency, null, null, p.obposApplications.client.id, p.obposApplications.organization.id) as mulrate, "
-          + "p.financialAccount.currency.iSOCode as isocode, "
-          + "p.financialAccount.currency.symbol as symbol, p.financialAccount.currency.currencySymbolAtTheRight as currencySymbolAtTheRight, "
-          + "p.financialAccount.currentBalance as currentBalance "
-          + "from OBPOS_App_Payment as p where p.obposApplications.id=? "
-          + "and p.$readableCriteria order by p.line, p.commercialName";
+          + "c_currency_rate(coalesce(c, p.paymentMethod.currency), p.obposApplications.organization.currency, null, null, p.obposApplications.client.id, p.obposApplications.organization.id) as rate, c_currency_rate(p.obposApplications.organization.currency, coalesce(c, p.paymentMethod.currency), null, null, p.obposApplications.client.id, p.obposApplications.organization.id) as mulrate, "
+          + "coalesce(c.iSOCode, p.paymentMethod.currency.iSOCode) as isocode, "
+          + "coalesce(c.symbol, p.paymentMethod.currency.symbol) as symbol, coalesce(c.currencySymbolAtTheRight, p.paymentMethod.currency.currencySymbolAtTheRight) as currencySymbolAtTheRight, "
+          + "coalesce(f.currentBalance, 0) as currentBalance "
+          + "from OBPOS_App_Payment as p left join p.financialAccount as f left join f.currency as c "
+          + "where p.obposApplications.id=? and p.$readableCriteria order by p.line, p.commercialName";
 
       SimpleQueryBuilder querybuilder = new SimpleQueryBuilder(hqlPayments, OBContext
           .getOBContext().getCurrentClient().getId(), OBContext.getOBContext()
diff --git a/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js b/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js
--- a/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js
+++ b/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js
@@ -422,6 +422,13 @@
             }));
           }
           receipt.set('change', oldChange);
+          for (var i = 0; i < receipt.get('payments').length; i++) {
+            var payment = OB.MobileApp.model.paymentnames[receipt.get('payments').models[i].get('kind')];
+            if (payment && payment.paymentMethod && payment.paymentMethod.leaveascredit) {
+              receipt.set('payment', OB.DEC.sub(receipt.get('payment'), receipt.get('payments').models[i].get('amount')));
+              receipt.set('paidOnCredit', true);
+            }
+          }
           receipt.trigger('closed', {
             callback: function () {
               receipt.get('payments').reset();
@@ -439,6 +446,13 @@
             }
           });
         } else {
+          for (var i = 0; i < receipt.get('payments').length; i++) {
+            var payment = OB.MobileApp.model.paymentnames[receipt.get('payments').models[i].get('kind')];
+            if (payment && payment.paymentMethod && payment.paymentMethod.leaveascredit) {
+              receipt.set('payment', OB.DEC.sub(receipt.get('payment'), receipt.get('payments').models[i].get('amount')));
+              receipt.set('paidOnCredit', true);
+            }
+          }
           receipt.trigger('closed', {
             callback: function () {
               receipt.trigger('print', null, {
