Author: jleroux
Date: Tue Oct 13 11:30:11 2015 New Revision: 1708344 URL: http://svn.apache.org/viewvc?rev=1708344&view=rev Log: "Applied fix from trunk for revision: 1708341 " ------------------------------------------------------------------------ r1708341 | jleroux | 2015-10-13 13:24:17 +0200 (mar. 13 oct. 2015) | 88 lignes A patch from Wei for "The filter-by-date="true" of <entity-condition></entity> in view entity PartyExport does not work" https://issues.apache.org/jira/browse/OFBIZ-6495 I changed ViewEntityCondition.getWhereCondition(), ViewConditionExpr.createCondition() and ViewConditionList.createCondition() which will add additional condition of filtering by date to where clause. Please test by following steps. 1. Change the code below in GenericDAO if (queryTotalTime > 150) { Debug.logTiming("Ran query in " + queryTotalTime + " milli-seconds: " + " EntityName: " + modelEntity.getEntityName() + " Sql: " + sql + " where clause:" + whereEntityConditionParams, module); } to {code:title=GenericDAO.java|borderStyle=solid} if (queryTotalTime > 0) { Debug.logTiming("Ran query in " + queryTotalTime + " milli-seconds: " + " EntityName: " + modelEntity.getEntityName() + " Sql: " + sql + " where clause:" + whereEntityConditionParams, module); } It will always log the sql to the log file. 2. Open https://localhost:8443/partymgr/control/ImportExport 2. Enter a valid partyId for export and click SUBMIT 3. Check ofbiz.log file under runtime folder. You should able to see the query below which contains filter data condition SELECT PRT.PARTY_ID, PRT.STATUS_ID, PRT.PREFERRED_CURRENCY_UOM_ID, GRP.GROUP_NAME, PER.FIRST_NAME, PER.MIDDLE_NAME, PER.LAST_NAME, PR.PARTY_ID_FROM, CGRP.GROUP_NAME, PRL.ROLE_TYPE_ID, CM.CONTACT_MECH_TYPE_ID, PCP.CONTACT_MECH_PURPOSE_TYPE_ID, CM.INFO_STRING, TN.COUNTRY_CODE, TN.AREA_CODE, TN.CONTACT_NUMBER, PA.ADDRESS1, PA.ADDRESS2, PA.CITY, PA.STATE_PROVINCE_GEO_ID, PA.POSTAL_CODE, PA.COUNTRY_GEO_ID, PCM.FROM_DATE, PCM.THRU_DATE FROM (((((((((public.PARTY PRT LEFT OUTER JOIN public.PARTY_GROUP GRP ON PRT.PARTY_ID = GRP.PARTY_ID) LEFT OUTER JOIN public.PERSON PER ON PRT.PARTY_ID = PER.PARTY_ID) LEFT OUTER JOIN public.PARTY_RELATIONSHIP PR ON PRT.PARTY_ID = PR.PARTY_ID_TO AND ((PR.ROLE_TYPE_ID_FROM = 'ACCOUNT' AND PR.PARTY_RELATIONSHIP_TYPE_ID = 'EMPLOYMENT'))) LEFT OUTER JOIN public.PARTY_GROUP CGRP ON PR.PARTY_ID_FROM = CGRP.PARTY_ID) LEFT OUTER JOIN public.PARTY_ROLE PRL ON PRT.PARTY_ID = PRL.PARTY_ID) LEFT OUTER JOIN public.PARTY_CONTACT_MECH PCM ON PRT.PARTY_ID = PCM.PARTY_ID AND (((PCM.THRU_DATE IS NULL OR PCM.THRU_DATE > '2015-06-15 13:21:30.157') AND (PCM.FROM_DATE IS NULL OR PCM.FROM_DATE <= '2015-06-15 13:21:30.157')))) LEFT OUTER JOIN public.POSTAL_ADDRESS PA ON PCM.CONTACT_MECH_ID = PA.CONTACT_MECH_ID) LEFT OUTER JOIN public.CONTACT_MECH CM ON PCM.CONTACT_MECH_ID = CM.CONTACT_MECH_ID) LEFT OUTER JOIN public.TELECOM_NUMBER TN ON PCM.CONTACT_MECH_ID = TN.CONTACT_MECH_ID) LEFT OUTER JOIN public.PARTY_CONTACT_MECH_PURPOSE PCP ON PCM.CONTACT_MECH_ID = PCP.CONTACT_MECH_ID AND (((PCM.THRU_DATE IS NULL OR PCM.THRU_DATE > '2015-06-15 13:21:30.157') AND (PCM.FROM_DATE IS NULL OR PCM.FROM_DATE <= '2015-06-15 13:21:30.157'))) AND PCM.PARTY_ID = PCP.PARTY_ID AND (((PCM.THRU_DATE IS NULL OR PCM.THRU_DATE > '2015-06-15 13:21:30.236') AND (PCM.FROM_DATE IS NULL OR PCM.FROM_DATE <= '2015-06-15 13:21:30.236'))) WHERE (((PRL.ROLE_TYPE_ID = ? OR PRL.ROLE_TYPE_ID = ? OR PRL.ROLE_TYPE_ID = ?) AND (PRT.STATUS_ID <> ? OR PRT.STATUS_ID IS NULL) AND PRT.PARTY_ID = ?)) ORDER BY PRT.PARTY_ID ASC ------------------------------------------------------------------------ Modified: ofbiz/branches/release14.12/ (props changed) ofbiz/branches/release14.12/applications/party/entitydef/entitymodel.xml ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java Propchange: ofbiz/branches/release14.12/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Oct 13 11:30:11 2015 @@ -8,4 +8,4 @@ /ofbiz/branches/json-integration-refactoring:1634077-1635900 /ofbiz/branches/multitenant20100310:921280-927264 /ofbiz/branches/release13.07:1547657 -/ofbiz/trunk:1649072,1649083-1649084,1649086,1649090,1649096,1649230,1649238-1649239,1649248,1649272,1649275,1649280-1649281,1649283,1649285-1649286,1649291,1649329,1649331,1649384,1649393,1649666,1649742,1650240,1650348,1650357,1650583,1650642,1650678,1650821,1650882,1650887,1650938,1651593,1652312,1652361,1652638,1652641,1652672,1652688,1652706,1652725,1652731,1652739,1652852,1653248,1653296,1653456,1653597,1653614,1654175,1654273,1654509,1654670,1654672-1654673,1654683-1654684,1654824,1655046,1655668,1655979,1656014,1656185,1656198,1656445,1656983,1657323,1657506-1657507,1657514,1657714,1657790,1657848,1658364,1658662,1658882,1659224,1659965,1660031,1660053,1660389,1660444,1660579,1661303,1661328,1661760,1661778,1661853,1661862,1661873,1661940,1661951,1661977,1662119-1662120,1662361,1662500,1662812,1662919,1663202,1663912,1663979,1664602,1664604,1664696,1665154,1665162,1665535,1666404,1666511,1666633,1666836,1666939,1666949,1666958,1667055,1667253,1667483,1667492,1667774,1668207, 1668214,1668236,1668246,1668258,1668263,1668265,1668270,1668277,1668314,1668657,1669317,1669588,1672427,1672430,1672846,1672853,1672856,1672862,1672873,1673764,1674447,1674464,1674491,1674496,1674908,1676674,1677123,1677597,1677769-1677770,1678294,1678882,1678911,1679689,1679697,1679709,1679720,1679728,1679732,1679957,1680155,1680288,1680304,1680671,1680675,1680733,1680840,1680881,1682272,1682295,1682415,1682633,1683998,1684094,1686360,1686536,1686545,1686566,1686569,1686574,1686583,1686635,1686651,1686970,1687427,1688772,1690086,1690581,1692357,1692458,1692600,1692604,1693393,1693579,1695017,1696018,1696234,1697590,1697647,1697993,1698259,1698261,1698263,1701164,1701441,1701819,1701825,1701936,1702002,1702548,1702704,1703121,1703586,1703945,1703954,1703965,1703971,1703976-1703977,1703981,1704000,1704014,1704018,1704036,1704043,1704052,1704082,1704140,1704230,1705004,1705329,1705405,1705412,1705417,1705427,1705532,1706159,1706162,1706316,1706531,1706549,1706553,1706561,1706569,17065 77,1706591,1706694,1707837,1707857,1708274 +/ofbiz/trunk:1649072,1649083-1649084,1649086,1649090,1649096,1649230,1649238-1649239,1649248,1649272,1649275,1649280-1649281,1649283,1649285-1649286,1649291,1649329,1649331,1649384,1649393,1649666,1649742,1650240,1650348,1650357,1650583,1650642,1650678,1650821,1650882,1650887,1650938,1651593,1652312,1652361,1652638,1652641,1652672,1652688,1652706,1652725,1652731,1652739,1652852,1653248,1653296,1653456,1653597,1653614,1654175,1654273,1654509,1654670,1654672-1654673,1654683-1654684,1654824,1655046,1655668,1655979,1656014,1656185,1656198,1656445,1656983,1657323,1657506-1657507,1657514,1657714,1657790,1657848,1658364,1658662,1658882,1659224,1659965,1660031,1660053,1660389,1660444,1660579,1661303,1661328,1661760,1661778,1661853,1661862,1661873,1661940,1661951,1661977,1662119-1662120,1662361,1662500,1662812,1662919,1663202,1663912,1663979,1664602,1664604,1664696,1665154,1665162,1665535,1666404,1666511,1666633,1666836,1666939,1666949,1666958,1667055,1667253,1667483,1667492,1667774,1668207, 1668214,1668236,1668246,1668258,1668263,1668265,1668270,1668277,1668314,1668657,1669317,1669588,1672427,1672430,1672846,1672853,1672856,1672862,1672873,1673764,1674447,1674464,1674491,1674496,1674908,1676674,1677123,1677597,1677769-1677770,1678294,1678882,1678911,1679689,1679697,1679709,1679720,1679728,1679732,1679957,1680155,1680288,1680304,1680671,1680675,1680733,1680840,1680881,1682272,1682295,1682415,1682633,1683998,1684094,1686360,1686536,1686545,1686566,1686569,1686574,1686583,1686635,1686651,1686970,1687427,1688772,1690086,1690581,1692357,1692458,1692600,1692604,1693393,1693579,1695017,1696018,1696234,1697590,1697647,1697993,1698259,1698261,1698263,1701164,1701441,1701819,1701825,1701936,1702002,1702548,1702704,1703121,1703586,1703945,1703954,1703965,1703971,1703976-1703977,1703981,1704000,1704014,1704018,1704036,1704043,1704052,1704082,1704140,1704230,1705004,1705329,1705405,1705412,1705417,1705427,1705532,1706159,1706162,1706316,1706531,1706549,1706553,1706561,1706569,17065 77,1706591,1706694,1707837,1707857,1708274,1708341 Modified: ofbiz/branches/release14.12/applications/party/entitydef/entitymodel.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/applications/party/entitydef/entitymodel.xml?rev=1708344&r1=1708343&r2=1708344&view=diff ============================================================================== --- ofbiz/branches/release14.12/applications/party/entitydef/entitymodel.xml (original) +++ ofbiz/branches/release14.12/applications/party/entitydef/entitymodel.xml Tue Oct 13 11:30:11 2015 @@ -2916,6 +2916,8 @@ under the License. <alias entity-alias="PA" name="stateProvinceGeoId"/> <alias entity-alias="PA" name="postalCode"/> <alias entity-alias="PA" name="countryGeoId"/> + <alias entity-alias="PCM" name="fromDate"/> + <alias entity-alias="PCM" name="thruDate"/> <view-link entity-alias="PRT" rel-entity-alias="GRP" rel-optional="true"> <key-map field-name="partyId"/> </view-link> Modified: ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java?rev=1708344&r1=1708343&r2=1708344&view=diff ============================================================================== --- ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java (original) +++ ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java Tue Oct 13 11:30:11 2015 @@ -47,7 +47,8 @@ import org.ofbiz.entity.GenericValue; import org.ofbiz.entity.condition.EntityCondition; import org.ofbiz.entity.condition.EntityConditionParam; import org.ofbiz.entity.condition.EntityOperator; -import org.ofbiz.entity.config.model.*; +import org.ofbiz.entity.config.model.Datasource; +import org.ofbiz.entity.config.model.EntityConfig; import org.ofbiz.entity.jdbc.DatabaseUtil; import org.ofbiz.entity.jdbc.SQLProcessor; import org.ofbiz.entity.jdbc.SqlJdbcUtil; Modified: ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java?rev=1708344&r1=1708343&r2=1708344&view=diff ============================================================================== --- ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java (original) +++ ofbiz/branches/release14.12/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java Tue Oct 13 11:30:11 2015 @@ -45,6 +45,7 @@ import org.ofbiz.entity.condition.Entity import org.ofbiz.entity.condition.EntityJoinOperator; import org.ofbiz.entity.condition.EntityOperator; import org.ofbiz.entity.jdbc.SqlJdbcUtil; +import org.ofbiz.entity.util.EntityUtil; import org.w3c.dom.Element; import org.w3c.dom.NodeList; @@ -1297,11 +1298,16 @@ public class ModelViewEntity extends Mod } public EntityCondition getWhereCondition(ModelFieldTypeReader modelFieldTypeReader, List<String> entityAliasStack) { + + List<EntityCondition> conditionList = new LinkedList<EntityCondition>(); + if(this.filterByDate) { + conditionList.add(EntityUtil.getFilterByDateExpr()); + } if (this.whereCondition != null) { - return this.whereCondition.createCondition(modelFieldTypeReader, entityAliasStack); - } else { - return null; + conditionList.add(whereCondition.createCondition(modelFieldTypeReader, entityAliasStack)); } + + return EntityCondition.makeCondition(conditionList, EntityOperator.AND); } public EntityCondition getHavingCondition(ModelFieldTypeReader modelFieldTypeReader, List<String> entityAliasStack) { @@ -1405,30 +1411,42 @@ public class ModelViewEntity extends Mod rhs = EntityFieldValue.makeFieldValue(this.relFieldName, this.relEntityAlias, entityAliasStack, this.viewEntityCondition.modelViewEntity); } + EntityCondition entityCondition; + if (this.operator == EntityOperator.NOT_EQUAL && value != null) { // since some databases don't consider nulls in != comparisons, explicitly include them // this makes more sense logically, but if anyone ever needs it to not behave this way we should add an "or-null" attribute that is true by default if (ignoreCase) { - return EntityCondition.makeCondition( + entityCondition = EntityCondition.makeCondition( EntityCondition.makeCondition(EntityFunction.UPPER(lhs), this.operator, EntityFunction.UPPER(rhs)), EntityOperator.OR, EntityCondition.makeCondition(lhs, EntityOperator.EQUALS, null)); } else { - return EntityCondition.makeCondition( + entityCondition = EntityCondition.makeCondition( EntityCondition.makeCondition(lhs, this.operator, rhs), EntityOperator.OR, EntityCondition.makeCondition(lhs, EntityOperator.EQUALS, null)); } } else if ( value == null && this.relFieldName == null && (this.operator == EntityOperator.EQUALS || this.operator == EntityOperator.NOT_EQUAL)) { - return EntityCondition.makeCondition(lhs, this.operator, null); + entityCondition = EntityCondition.makeCondition(lhs, this.operator, null); } else { if (ignoreCase) { // use the stuff to upper case both sides - return EntityCondition.makeCondition(EntityFunction.UPPER(lhs), this.operator, EntityFunction.UPPER(rhs)); + entityCondition = EntityCondition.makeCondition(EntityFunction.UPPER(lhs), this.operator, EntityFunction.UPPER(rhs)); } else { - return EntityCondition.makeCondition(lhs, this.operator, rhs); + entityCondition = EntityCondition.makeCondition(lhs, this.operator, rhs); } } + + if(this.viewEntityCondition.filterByDate) { + List<EntityCondition> conditionList = new LinkedList<EntityCondition>(); + conditionList.add(entityCondition); + conditionList.add(EntityUtil.getFilterByDateExpr()); + return EntityCondition.makeCondition(conditionList, EntityOperator.AND); + } else { + return entityCondition; + } + } } @@ -1487,6 +1505,14 @@ public class ModelViewEntity extends Mod } } + if(this.viewEntityCondition.filterByDate) { + entityConditionList.add(EntityUtil.getFilterByDateExpr()); + } + + if(this.viewEntityCondition.filterByDate) { + entityConditionList.add(EntityUtil.getFilterByDateExpr()); + } + return EntityCondition.makeCondition(entityConditionList, this.operator); } } |
Free forum by Nabble | Edit this page |