details:   https://code.openbravo.com/erp/devel/pi/rev/2711fe8a20bc
changeset: 29711:2711fe8a20bc
user:      Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
date:      Wed Jun 29 12:40:27 2016 +0200
summary:   Related to issue 33063: Enable Organization type orgs in Reset 
Accounting

diffstat:

 src-db/database/sourcedata/OBUISEL_SELECTOR.xml       |   2 +-
 src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml |  44 +++++++++++++++++++
 src/org/openbravo/financial/ResetAccounting.java      |  15 +++---
 3 files changed, 53 insertions(+), 8 deletions(-)

diffs (122 lines):

diff -r 414e75b699ca -r 2711fe8a20bc 
src-db/database/sourcedata/OBUISEL_SELECTOR.xml
--- a/src-db/database/sourcedata/OBUISEL_SELECTOR.xml   Tue Jun 28 14:03:32 
2016 +0000
+++ b/src-db/database/sourcedata/OBUISEL_SELECTOR.xml   Wed Jun 29 12:40:27 
2016 +0200
@@ -92,7 +92,7 @@
 <!--1DB80A7D4BC244F0BE5615702D3BF91C-->  <NAME><![CDATA[Legal or Business 
Organizations Selector]]></NAME>
 <!--1DB80A7D4BC244F0BE5615702D3BF91C-->  
<AD_REFERENCE_ID><![CDATA[C205D56B07D74778A6D6A1AED8467690]]></AD_REFERENCE_ID>
 <!--1DB80A7D4BC244F0BE5615702D3BF91C-->  
<AD_TABLE_ID><![CDATA[155]]></AD_TABLE_ID>
-<!--1DB80A7D4BC244F0BE5615702D3BF91C-->  <WHERECLAUSE><![CDATA[(e.id='0' OR 
exists (select 1 from OrganizationType ot where ot.id = e.organizationType.id 
and (ot.legalEntity=true or ot.businessUnit=true))) AND 
e.ready=true]]></WHERECLAUSE>
+<!--1DB80A7D4BC244F0BE5615702D3BF91C-->  <WHERECLAUSE><![CDATA[exists (select 
1 from OrganizationType ot where ot.id = e.organizationType.id and 
(ot.legalEntity=true or ot.businessUnit=true or ot.name='Organization')) AND 
e.ready=true]]></WHERECLAUSE>
 <!--1DB80A7D4BC244F0BE5615702D3BF91C-->  
<OBCLKER_TEMPLATE_ID><![CDATA[9314DE8599AD44E7BFC4CC50699042AB]]></OBCLKER_TEMPLATE_ID>
 <!--1DB80A7D4BC244F0BE5615702D3BF91C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--1DB80A7D4BC244F0BE5615702D3BF91C-->  
<SUGGESTIONTEXTMATCHSTYLE><![CDATA[startsWith]]></SUGGESTIONTEXTMATCHSTYLE>
diff -r 414e75b699ca -r 2711fe8a20bc 
src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml
--- a/src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml     Tue Jun 28 
14:03:32 2016 +0000
+++ b/src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml     Wed Jun 29 
12:40:27 2016 +0200
@@ -1771,6 +1771,28 @@
 <!--61468BCC79F14B0289A046060D119EC2-->  
<SHOWINPICKLIST><![CDATA[N]]></SHOWINPICKLIST>
 <!--61468BCC79F14B0289A046060D119EC2--></OBUISEL_SELECTOR_FIELD>
 
+<!--6232D2B8EECC499EB2CFB853A184F3AB--><OBUISEL_SELECTOR_FIELD>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  
<OBUISEL_SELECTOR_FIELD_ID><![CDATA[6232D2B8EECC499EB2CFB853A184F3AB]]></OBUISEL_SELECTOR_FIELD_ID>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  
<OBUISEL_SELECTOR_ID><![CDATA[159A0EA5DE8844E9B0E7198E5525C854]]></OBUISEL_SELECTOR_ID>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  
<AD_COLUMN_ID><![CDATA[208]]></AD_COLUMN_ID>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <NAME><![CDATA[Name]]></NAME>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <DESCRIPTION><![CDATA[A non-unique 
identifier for a record/document often used as a search tool.]]></DESCRIPTION>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <HELP><![CDATA[A more descriptive 
identifier (that does need to be unique) of a record/document that is used as a 
default search option along with the search key (that is unique and mostly 
shorter). It is up to 60 characters in length.]]></HELP>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <PROPERTY><![CDATA[name]]></PROPERTY>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <SORT><![CDATA[Y]]></SORT>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <FILTER><![CDATA[Y]]></FILTER>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  
<SEARCHINSUGGESTIONBOX><![CDATA[N]]></SEARCHINSUGGESTIONBOX>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <SHOWINGRID><![CDATA[Y]]></SHOWINGRID>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <SORTNO><![CDATA[0]]></SORTNO>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  <ISOUTFIELD><![CDATA[N]]></ISOUTFIELD>
+<!--6232D2B8EECC499EB2CFB853A184F3AB-->  
<SHOWINPICKLIST><![CDATA[N]]></SHOWINPICKLIST>
+<!--6232D2B8EECC499EB2CFB853A184F3AB--></OBUISEL_SELECTOR_FIELD>
+
 <!--63324DD1917043AE9753C7C57EA13F79--><OBUISEL_SELECTOR_FIELD>
 <!--63324DD1917043AE9753C7C57EA13F79-->  
<OBUISEL_SELECTOR_FIELD_ID><![CDATA[63324DD1917043AE9753C7C57EA13F79]]></OBUISEL_SELECTOR_FIELD_ID>
 <!--63324DD1917043AE9753C7C57EA13F79-->  
<OBUISEL_SELECTOR_ID><![CDATA[4D3AD61E57AF460EAB4D36A4E1476667]]></OBUISEL_SELECTOR_ID>
@@ -2367,6 +2389,28 @@
 <!--7A814E72DF9240E280BA6B2AEFF9405A-->  
<SHOWINPICKLIST><![CDATA[N]]></SHOWINPICKLIST>
 <!--7A814E72DF9240E280BA6B2AEFF9405A--></OBUISEL_SELECTOR_FIELD>
 
+<!--7ABFC9B0D2414825957A3A1E48BFD170--><OBUISEL_SELECTOR_FIELD>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  
<OBUISEL_SELECTOR_FIELD_ID><![CDATA[7ABFC9B0D2414825957A3A1E48BFD170]]></OBUISEL_SELECTOR_FIELD_ID>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  
<OBUISEL_SELECTOR_ID><![CDATA[1DB80A7D4BC244F0BE5615702D3BF91C]]></OBUISEL_SELECTOR_ID>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  
<AD_COLUMN_ID><![CDATA[522]]></AD_COLUMN_ID>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <NAME><![CDATA[Name]]></NAME>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <DESCRIPTION><![CDATA[A non-unique 
identifier for a record/document often used as a search tool.]]></DESCRIPTION>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <HELP><![CDATA[A more descriptive 
identifier (that does need to be unique) of a record/document that is used as a 
default search option along with the search key (that is unique and mostly 
shorter). It is up to 60 characters in length.]]></HELP>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <PROPERTY><![CDATA[name]]></PROPERTY>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <SORT><![CDATA[Y]]></SORT>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <FILTER><![CDATA[Y]]></FILTER>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  
<SEARCHINSUGGESTIONBOX><![CDATA[N]]></SEARCHINSUGGESTIONBOX>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <SHOWINGRID><![CDATA[Y]]></SHOWINGRID>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <SORTNO><![CDATA[0]]></SORTNO>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  <ISOUTFIELD><![CDATA[N]]></ISOUTFIELD>
+<!--7ABFC9B0D2414825957A3A1E48BFD170-->  
<SHOWINPICKLIST><![CDATA[N]]></SHOWINPICKLIST>
+<!--7ABFC9B0D2414825957A3A1E48BFD170--></OBUISEL_SELECTOR_FIELD>
+
 <!--7C3CB01F518E4D4CB08CE432C9B878FC--><OBUISEL_SELECTOR_FIELD>
 <!--7C3CB01F518E4D4CB08CE432C9B878FC-->  
<OBUISEL_SELECTOR_FIELD_ID><![CDATA[7C3CB01F518E4D4CB08CE432C9B878FC]]></OBUISEL_SELECTOR_FIELD_ID>
 <!--7C3CB01F518E4D4CB08CE432C9B878FC-->  
<OBUISEL_SELECTOR_ID><![CDATA[B06B003BD6E34FDDAF5DFD5A9ECD14E2]]></OBUISEL_SELECTOR_ID>
diff -r 414e75b699ca -r 2711fe8a20bc 
src/org/openbravo/financial/ResetAccounting.java
--- a/src/org/openbravo/financial/ResetAccounting.java  Tue Jun 28 14:03:32 
2016 +0000
+++ b/src/org/openbravo/financial/ResetAccounting.java  Wed Jun 29 12:40:27 
2016 +0200
@@ -91,8 +91,9 @@
     String client = adClientId;
     List<String> tables = getTables(adTableId);
     try {
-      Set<String> orgIds = StringUtils.equals(adOrgId, "0") ? 
getLegalOrBusinessOrgsChilds(client)
-          : new OrganizationStructureProvider().getChildTree(adOrgId, true);
+      Organization org = OBDal.getInstance().get(Organization.class, adOrgId);
+      Set<String> orgIds = 
StringUtils.equals(org.getOrganizationType().getName(), "Organization") ? 
getLegalOrBusinessOrgsChilds(
+          client, adOrgId) : new 
OrganizationStructureProvider().getChildTree(adOrgId, true);
       for (String table : tables) {
         List<String> docbasetypes = getDocbasetypes(client, table, 
localRecordId);
         String myQuery = "select distinct e.recordID from 
FinancialMgmtAccountingFact e where e.organization.id in (:orgIds) and 
e.client.id = :clientId and e.table.id = :tableId";
@@ -628,21 +629,20 @@
   }
 
   @SuppressWarnings("unchecked")
-  private static Set<String> getLegalOrBusinessOrgsChilds(String clientId) {
+  private static Set<String> getLegalOrBusinessOrgsChilds(String clientId, 
String orgId) {
     StringBuffer hql = new StringBuffer();
     hql = new StringBuffer();
     hql.append(" select o1." + Organization.PROPERTY_ID);
     hql.append(" from " + Organization.ENTITY_NAME + " as o1");
     hql.append(" , " + Organization.ENTITY_NAME + " as o2");
     hql.append(" join o2." + Organization.PROPERTY_ORGANIZATIONTYPE + " as 
ot");
-    hql.append(" where o1." + Organization.PROPERTY_CLIENT + ".id = 
:clientId");
-    hql.append(" and o2." + Organization.PROPERTY_CLIENT + ".id = :clientId");
+    hql.append(" where o2." + Organization.PROPERTY_CLIENT + ".id = 
:clientId");
+    hql.append(" and ad_isorgincluded(o2." + Organization.PROPERTY_ID + ", 
:orgId, o2."
+        + Organization.PROPERTY_CLIENT + ".id) <> -1");
     hql.append(" and ad_isorgincluded(o1." + Organization.PROPERTY_ID + ", o2."
         + Organization.PROPERTY_ID + ", o1." + Organization.PROPERTY_CLIENT + 
".id) <> -1");
     hql.append(" and (ot." + OrganizationType.PROPERTY_LEGALENTITY + " = 
true");
     hql.append(" or ot." + OrganizationType.PROPERTY_BUSINESSUNIT + " = 
true)");
-    hql.append(" and o1." + Organization.PROPERTY_ACTIVE + " = true");
-    hql.append(" and o1." + Organization.PROPERTY_READY + " = true");
     hql.append(" and o2." + Organization.PROPERTY_ACTIVE + " = true");
     hql.append(" and o2." + Organization.PROPERTY_READY + " = true");
     hql.append(" order by o2." + Organization.PROPERTY_NAME);
@@ -651,6 +651,7 @@
     hql.append(" , o1." + Organization.PROPERTY_NAME);
     Query query = OBDal.getInstance().getSession().createQuery(hql.toString());
     query.setParameter("clientId", clientId);
+    query.setParameter("orgId", orgId);
     return new HashSet<String>(query.list());
   }
 }

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to