details: https://code.openbravo.com/erp/devel/pi/rev/e3ae82ec9ee3
changeset: 22834:e3ae82ec9ee3
user: Pandeeswari Ramakrishnan <pandeeswari.ramakrishnan <at>
openbravo.com>
date: Mon Apr 07 00:47:11 2014 +0530
summary: Fixes Issue 25483: It is not possible to add a validate rule to
fin_financial_account_id column of fin_payment table
diffstat:
src-db/database/sourcedata/AD_COLUMN.xml | 5
+-
src-db/database/sourcedata/AD_VAL_RULE.xml | 33
++++
src/org/openbravo/erpCommon/ad_callouts/SE_PaymentMethod_FinAccount.java | 70
++-------
3 files changed, 57 insertions(+), 51 deletions(-)
diffs (195 lines):
diff -r a7130dd050ca -r e3ae82ec9ee3 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml Sun Apr 06 18:24:19 2014 +0530
+++ b/src-db/database/sourcedata/AD_COLUMN.xml Mon Apr 07 00:47:11 2014 +0530
@@ -220565,7 +220565,8 @@
<!--03276FB53CC54CC1829E0AA6EC0F2EE6-->
<COLUMNNAME><![CDATA[Fin_Financial_Account_ID]]></COLUMNNAME>
<!--03276FB53CC54CC1829E0AA6EC0F2EE6-->
<AD_TABLE_ID><![CDATA[D1A97202E832470285C9B1EB026D54E2]]></AD_TABLE_ID>
<!--03276FB53CC54CC1829E0AA6EC0F2EE6-->
<AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID>
-<!--03276FB53CC54CC1829E0AA6EC0F2EE6-->
<FIELDLENGTH><![CDATA[0]]></FIELDLENGTH>
+<!--03276FB53CC54CC1829E0AA6EC0F2EE6-->
<AD_VAL_RULE_ID><![CDATA[6910516E0A54432CA2E6A0C058346F92]]></AD_VAL_RULE_ID>
+<!--03276FB53CC54CC1829E0AA6EC0F2EE6-->
<FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
<!--03276FB53CC54CC1829E0AA6EC0F2EE6--> <ISKEY><![CDATA[N]]></ISKEY>
<!--03276FB53CC54CC1829E0AA6EC0F2EE6--> <ISPARENT><![CDATA[N]]></ISPARENT>
<!--03276FB53CC54CC1829E0AA6EC0F2EE6-->
<ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
@@ -279374,6 +279375,7 @@
<!--828EE0AE802F5FA1E040007F010067C7-->
<AD_TABLE_ID><![CDATA[291]]></AD_TABLE_ID>
<!--828EE0AE802F5FA1E040007F010067C7-->
<AD_REFERENCE_ID><![CDATA[18]]></AD_REFERENCE_ID>
<!--828EE0AE802F5FA1E040007F010067C7-->
<AD_REFERENCE_VALUE_ID><![CDATA[DF1CEA94B3564A33AFDB37C07E1CE353]]></AD_REFERENCE_VALUE_ID>
+<!--828EE0AE802F5FA1E040007F010067C7-->
<AD_VAL_RULE_ID><![CDATA[3041353DA35A4C17BC434CF80FEE9CC9]]></AD_VAL_RULE_ID>
<!--828EE0AE802F5FA1E040007F010067C7-->
<FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
<!--828EE0AE802F5FA1E040007F010067C7--> <ISKEY><![CDATA[N]]></ISKEY>
<!--828EE0AE802F5FA1E040007F010067C7--> <ISPARENT><![CDATA[N]]></ISPARENT>
@@ -279410,6 +279412,7 @@
<!--828EE0AE80305FA1E040007F010067C7-->
<AD_TABLE_ID><![CDATA[291]]></AD_TABLE_ID>
<!--828EE0AE80305FA1E040007F010067C7-->
<AD_REFERENCE_ID><![CDATA[18]]></AD_REFERENCE_ID>
<!--828EE0AE80305FA1E040007F010067C7-->
<AD_REFERENCE_VALUE_ID><![CDATA[DF1CEA94B3564A33AFDB37C07E1CE353]]></AD_REFERENCE_VALUE_ID>
+<!--828EE0AE80305FA1E040007F010067C7-->
<AD_VAL_RULE_ID><![CDATA[F7DCC072355648E7BFFF05014361A44C]]></AD_VAL_RULE_ID>
<!--828EE0AE80305FA1E040007F010067C7-->
<FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
<!--828EE0AE80305FA1E040007F010067C7--> <ISKEY><![CDATA[N]]></ISKEY>
<!--828EE0AE80305FA1E040007F010067C7--> <ISPARENT><![CDATA[N]]></ISPARENT>
diff -r a7130dd050ca -r e3ae82ec9ee3 src-db/database/sourcedata/AD_VAL_RULE.xml
--- a/src-db/database/sourcedata/AD_VAL_RULE.xml Sun Apr 06 18:24:19
2014 +0530
+++ b/src-db/database/sourcedata/AD_VAL_RULE.xml Mon Apr 07 00:47:11
2014 +0530
@@ -1353,6 +1353,17 @@
<!--2E7335B7F14041DFBC61DCE771B1A57B-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--2E7335B7F14041DFBC61DCE771B1A57B--></AD_VAL_RULE>
+<!--3041353DA35A4C17BC434CF80FEE9CC9--><AD_VAL_RULE>
+<!--3041353DA35A4C17BC434CF80FEE9CC9-->
<AD_VAL_RULE_ID><![CDATA[3041353DA35A4C17BC434CF80FEE9CC9]]></AD_VAL_RULE_ID>
+<!--3041353DA35A4C17BC434CF80FEE9CC9-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--3041353DA35A4C17BC434CF80FEE9CC9--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--3041353DA35A4C17BC434CF80FEE9CC9--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--3041353DA35A4C17BC434CF80FEE9CC9--> <NAME><![CDATA[Financial Account -
Customer]]></NAME>
+<!--3041353DA35A4C17BC434CF80FEE9CC9--> <TYPE><![CDATA[S]]></TYPE>
+<!--3041353DA35A4C17BC434CF80FEE9CC9-->
<CODE><![CDATA[Fin_Financial_Account_ID IN (SELECT Fin_Financial_Account_ID
FROM Fin_Finacc_Paymentmethod WHERE
Fin_Paymentmethod_ID=@Fin_Paymentmethod_ID@)]]></CODE>
+<!--3041353DA35A4C17BC434CF80FEE9CC9-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--3041353DA35A4C17BC434CF80FEE9CC9--></AD_VAL_RULE>
+
<!--324A9767D9B94A8A8154DEB3ACA6E063--><AD_VAL_RULE>
<!--324A9767D9B94A8A8154DEB3ACA6E063-->
<AD_VAL_RULE_ID><![CDATA[324A9767D9B94A8A8154DEB3ACA6E063]]></AD_VAL_RULE_ID>
<!--324A9767D9B94A8A8154DEB3ACA6E063-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1610,6 +1621,17 @@
<!--6770688C3FBC4D139DEE04BF67997D55-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--6770688C3FBC4D139DEE04BF67997D55--></AD_VAL_RULE>
+<!--6910516E0A54432CA2E6A0C058346F92--><AD_VAL_RULE>
+<!--6910516E0A54432CA2E6A0C058346F92-->
<AD_VAL_RULE_ID><![CDATA[6910516E0A54432CA2E6A0C058346F92]]></AD_VAL_RULE_ID>
+<!--6910516E0A54432CA2E6A0C058346F92-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--6910516E0A54432CA2E6A0C058346F92--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--6910516E0A54432CA2E6A0C058346F92--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--6910516E0A54432CA2E6A0C058346F92-->
<NAME><![CDATA[Fin_FinancialAccountofPaymentMethod]]></NAME>
+<!--6910516E0A54432CA2E6A0C058346F92--> <TYPE><![CDATA[S]]></TYPE>
+<!--6910516E0A54432CA2E6A0C058346F92-->
<CODE><![CDATA[Fin_Financial_Account_ID IN (SELECT Fin_Financial_Account_ID
FROM Fin_Finacc_Paymentmethod WHERE Fin_Paymentmethod_ID=@Fin_Paymentmethod_ID@
AND CASE WHEN @IsReceipt@='Y' THEN Payin_Allow='Y' ELSE Payout_Allow='Y'
END)]]></CODE>
+<!--6910516E0A54432CA2E6A0C058346F92-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--6910516E0A54432CA2E6A0C058346F92--></AD_VAL_RULE>
+
<!--6BAE0C5334EE468DB58E0806C4F54FF0--><AD_VAL_RULE>
<!--6BAE0C5334EE468DB58E0806C4F54FF0-->
<AD_VAL_RULE_ID><![CDATA[6BAE0C5334EE468DB58E0806C4F54FF0]]></AD_VAL_RULE_ID>
<!--6BAE0C5334EE468DB58E0806C4F54FF0-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -2201,6 +2223,17 @@
<!--F5C1AEE7CA3D4EF690406695F212E463-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--F5C1AEE7CA3D4EF690406695F212E463--></AD_VAL_RULE>
+<!--F7DCC072355648E7BFFF05014361A44C--><AD_VAL_RULE>
+<!--F7DCC072355648E7BFFF05014361A44C-->
<AD_VAL_RULE_ID><![CDATA[F7DCC072355648E7BFFF05014361A44C]]></AD_VAL_RULE_ID>
+<!--F7DCC072355648E7BFFF05014361A44C-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F7DCC072355648E7BFFF05014361A44C--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F7DCC072355648E7BFFF05014361A44C--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F7DCC072355648E7BFFF05014361A44C--> <NAME><![CDATA[Financial Account -
Vendor]]></NAME>
+<!--F7DCC072355648E7BFFF05014361A44C--> <TYPE><![CDATA[S]]></TYPE>
+<!--F7DCC072355648E7BFFF05014361A44C-->
<CODE><![CDATA[Fin_Financial_Account_ID IN (SELECT Fin_Financial_Account_ID
FROM Fin_Finacc_Paymentmethod WHERE
Fin_Paymentmethod_ID=@PO_Paymentmethod_ID@)]]></CODE>
+<!--F7DCC072355648E7BFFF05014361A44C-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--F7DCC072355648E7BFFF05014361A44C--></AD_VAL_RULE>
+
<!--F998285191EA4BA9AC839BF540016DB4--><AD_VAL_RULE>
<!--F998285191EA4BA9AC839BF540016DB4-->
<AD_VAL_RULE_ID><![CDATA[F998285191EA4BA9AC839BF540016DB4]]></AD_VAL_RULE_ID>
<!--F998285191EA4BA9AC839BF540016DB4-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r a7130dd050ca -r e3ae82ec9ee3
src/org/openbravo/erpCommon/ad_callouts/SE_PaymentMethod_FinAccount.java
--- a/src/org/openbravo/erpCommon/ad_callouts/SE_PaymentMethod_FinAccount.java
Sun Apr 06 18:24:19 2014 +0530
+++ b/src/org/openbravo/erpCommon/ad_callouts/SE_PaymentMethod_FinAccount.java
Mon Apr 07 00:47:11 2014 +0530
@@ -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) 2010-2011 Openbravo SLU
+ * All portions are Copyright (C) 2010-2014 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -36,77 +36,47 @@
@Override
protected void execute(CalloutInfo info) throws ServletException {
- String srtPaymentMethodId =
info.getStringParameter("inpfinPaymentmethodId",
- IsIDFilter.instance);
- String srtPOPaymentMethodId =
info.getStringParameter("inppoPaymentmethodId",
- IsIDFilter.instance);
-
String tabId = info.getTabId();
boolean isVendorTab = "224".equals(tabId);
String finIsReceipt = info.getStringParameter("inpisreceipt", null);
boolean isPaymentOut = isVendorTab || "N".equals(finIsReceipt);
- String srtOrgId = info.getStringParameter("inpadOrgId",
IsIDFilter.instance);
+ String strOrgId = info.getStringParameter("inpadOrgId",
IsIDFilter.instance);
+
+ String strSelectedPaymentMethod = info.getStringParameter(isVendorTab ?
"inppoPaymentmethodId"
+ : "inpfinPaymentmethodId", IsIDFilter.instance);
FIN_PaymentMethod paymentMethod =
OBDal.getInstance().get(FIN_PaymentMethod.class,
- isVendorTab ? srtPOPaymentMethodId : srtPaymentMethodId);
+ strSelectedPaymentMethod);
- info.addSelect(isVendorTab ? "inppoFinancialAccountId" :
"inpfinFinancialAccountId");
- String srtSelectedFinancialAccount = info.getStringParameter(
+ String strSelectedFinancialAccount = info.getStringParameter(
isVendorTab ? "inppoFinancialAccountId" : "inpfinFinancialAccountId",
IsIDFilter.instance);
- boolean isSelected = true;
+ FIN_FinancialAccount financialAccount =
OBDal.getInstance().get(FIN_FinancialAccount.class,
+ strSelectedFinancialAccount);
+
boolean isMultiCurrencyEnabled = false;
- // No Payment Method selected
- if (srtPaymentMethodId.isEmpty() && srtPOPaymentMethodId.isEmpty()) {
- OBCriteria<FIN_FinancialAccount> obc =
OBDal.getInstance().createCriteria(
- FIN_FinancialAccount.class);
- obc.add(Restrictions.in("organization.id", OBContext.getOBContext()
- .getOrganizationStructureProvider().getNaturalTree(srtOrgId)));
- obc.setFilterOnReadableOrganization(false);
- for (FIN_FinancialAccount acc : obc.list()) {
- info.addSelectResult(acc.getId(), acc.getIdentifier());
- }
-
- } else {
+ if (paymentMethod != null && financialAccount != null) {
OBCriteria<FinAccPaymentMethod> obc = OBDal.getInstance().createCriteria(
FinAccPaymentMethod.class);
+ // (paymentmethod, financial_account) is unique
obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD,
paymentMethod));
+ obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT,
financialAccount));
obc.add(Restrictions.in("organization.id", OBContext.getOBContext()
- .getOrganizationStructureProvider().getNaturalTree(srtOrgId)));
- if (isPaymentOut) {
- obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_PAYOUTALLOW,
true));
- } else {
- obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_PAYINALLOW,
true));
- }
+ .getOrganizationStructureProvider().getNaturalTree(strOrgId)));
- FinAccPaymentMethod selectedPaymentMethod = null;
- for (FinAccPaymentMethod accPm : obc.list()) {
- if (accPm.getAccount().isActive()) {
- if (srtSelectedFinancialAccount.equals(accPm.getAccount().getId())) {
- isSelected = true;
- } else if (srtSelectedFinancialAccount.isEmpty()) {
- srtSelectedFinancialAccount = accPm.getAccount().getIdentifier();
- isSelected = true;
- }
- selectedPaymentMethod = accPm;
+ if (obc.count() > 0) {
+ FinAccPaymentMethod selectedAccPaymentMethod = obc.list().get(0);
- info.addSelectResult(accPm.getAccount().getId(),
accPm.getAccount().getIdentifier(),
- isSelected);
- }
- isSelected = false;
- }
- if (selectedPaymentMethod != null) {
if (isPaymentOut) {
- isMultiCurrencyEnabled = selectedPaymentMethod.isPayoutAllow()
- && selectedPaymentMethod.isPayoutIsMulticurrency();
+ isMultiCurrencyEnabled = selectedAccPaymentMethod.isPayoutAllow()
+ && selectedAccPaymentMethod.isPayoutIsMulticurrency();
} else {
- isMultiCurrencyEnabled = selectedPaymentMethod.isPayinAllow()
- && selectedPaymentMethod.isPayinIsMulticurrency();
+ isMultiCurrencyEnabled = selectedAccPaymentMethod.isPayinAllow()
+ && selectedAccPaymentMethod.isPayinIsMulticurrency();
}
}
}
- info.endSelect();
info.addResult("inpismulticurrencyenabled", isMultiCurrencyEnabled ? "Y" :
"N");
}
}
------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees_APR
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits