You are right, I was confused by the changes I made for R13.07 at 
r1645954+r1645977

I have reverted the change related to EntityQuery in trunk at r1646546

Thanks

Jacques

Le 18/12/2014 20:55, Scott Gray a écrit :
I'm sorry Jacques, your response is very confusing and I'm not really sure
what you're trying to say.  Let me try and clarify what I asked.

My question was why changes were made to usages of
EntityQuery...filterByDate(String...) such as:
          List<GenericValue> values = EntityQuery.use(delegator).
from("PartyContactWithPurpose")
                  .where("partyId", partyId, "contactMechId", contactMechId,
"contactMechPurposeTypeId", contactMechPurposeTypeId)
-                .filterByDate("contactFromDate", "contactThruDate",
"purposeFromDate", "purposeThruDate")
+                .filterByDate(UtilDateTime.nowTimestamp(),
"contactFromDate", "contactThruDate", "purposeFromDate", "purposeThruDate")
                  .queryList();

As far as I can tell, this and all of Leon's other changes to
EntityQuery.filterByDate calls are unnecessary.  The internal EntityQuery
code never passes a null timestamp to any of the
EntityUtil.filterByDate(...) methods.  In fact the code only uses
EntityUtil.getFilterByDateExpr(...)  and even then it never passes a null
timestamp to those methods either.  Have a look at
EntityQuery.makeDateCondition() to see what I mean.  The changes to
EntityQuery calls weren't needed, and should be undone.



On Fri, Dec 19, 2014 at 12:24 AM, Jacques Le Roux <
jacques.le.r...@les7arts.com> wrote:

Even if I much trust and appreciate Leon's work, like for other
contributors, I always checks his proposed changes.

In these cases calling the last variant of EntityUtil.filterByDate()
http://ci.apache.org/projects/ofbiz/site/javadocs/org/ofbiz/
entity/util/EntityUtil.html#filterByDate%28java.util.List,
%20java.util.Date%29
like in
EntityUtil.filterByDate(locations, now, "contactFromDate",
"contactThruDate", true);
in InvoiceWorker.java with null instead of now had an impact on the
desired results because the 1st variant of EntityUtil.filterByDate() uses
UtilDateTime.nowTimestamp() and not null
see http://svn.apache.org/viewvc/ofbiz/trunk/applications/
accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java?r1=1626462&
r2=1626461&pathrev=1626462 for an example

I think you mixed things. The changes in r1626462 and r1626463 are not
related to yours for EntityQuery later at r1628288
http://svn.apache.org/viewvc/ofbiz/trunk/applications/
accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java?r1=1628288&
r2=1628287&pathrev=1628288

BTW a better solution would be to use the last variant of
EntityQuery.html.filterByDate()
http://ci.apache.org/projects/ofbiz/site/javadocs/org/ofbiz/
entity/util/EntityQuery.html#filterByDate()
But I guess Leon tried to introduce as less as possible entropy. You could
still do it if you want...

Jacques

Le 17/12/2014 06:29, Scott Gray a écrit :

  The changes to the code using EntityQuery shouldn't be necessary.  Could
you undo them or otherwise explain why it was needed?

Thanks
Scott

On Wed, Dec 17, 2014 at 2:45 AM, <jler...@apache.org> wrote:

  Author: jleroux
Date: Tue Dec 16 13:45:54 2014
New Revision: 1645950

URL: http://svn.apache.org/r1645950
Log:
A patch from Leon for "correction to changeset r1626462  and r1626463  "
https://issues.apache.org/jira/browse/OFBIZ-5869

Uses now timestamp to replace "null" value.

Modified:

ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/
InvoiceWorker.java

ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/
PaymentMethodServices.java

ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/
PaymentWorker.java

ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/
actions/order/CompanyHeader.groovy

ofbiz/trunk/applications/party/src/org/ofbiz/party/
contact/ContactMechServices.java

ofbiz/trunk/specialpurpose/googlecheckout/src/org/ofbiz/googlecheckout/
GoogleCheckoutHelper.java

Modified:
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/
InvoiceWorker.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/
accounting/src/org/ofbiz/accounting/invoice/InvoiceWorker.java?rev=
1645950&r1=1645949&r2=1645950&view=diff

============================================================
==================
---
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/
InvoiceWorker.java
(original)
+++
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/
InvoiceWorker.java
Tue Dec 16 13:45:54 2014
@@ -296,6 +296,7 @@ public class InvoiceWorker {
           if (UtilValidate.isEmpty(locations))    {
               // if no locations found get it from the
PartyAndContactMech
using the from and to party on the invoice
               String destinationPartyId = null;
+            Timestamp now = UtilDateTime.nowTimestamp();
               if
(invoice.getString("invoiceTypeId").equals("SALES_INVOICE"))
                   destinationPartyId = invoice.getString("partyId");
               if
(invoice.getString("invoiceTypeId").equals("PURCHASE_INVOICE"))
@@ -303,8 +304,8 @@ public class InvoiceWorker {
               try {
                   locations =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                           .where("partyId", destinationPartyId,
"contactMechPurposeTypeId", contactMechPurposeTypeId).queryList();
-                locations = EntityUtil.filterByDate(locations, null,
"contactFromDate", "contactThruDate", true);
-                locations = EntityUtil.filterByDate(locations, null,
"purposeFromDate", "purposeThruDate", true);
+                locations = EntityUtil.filterByDate(locations, now,
"contactFromDate", "contactThruDate", true);
+                locations = EntityUtil.filterByDate(locations, now,
"purposeFromDate", "purposeThruDate", true);
               } catch (GenericEntityException e) {
                   Debug.logError("Trouble getting contact party purpose
list", module);
               }
@@ -313,8 +314,8 @@ public class InvoiceWorker {
                   try {
                       locations =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                               .where("partyId", destinationPartyId,
"contactMechPurposeTypeId", "GENERAL_LOCATION").queryList();
-                    locations = EntityUtil.filterByDate(locations,
null,
"contactFromDate", "contactThruDate", true);
-                    locations = EntityUtil.filterByDate(locations,
null,
"purposeFromDate", "purposeThruDate", true);
+                    locations = EntityUtil.filterByDate(locations, now,
"contactFromDate", "contactThruDate", true);
+                    locations = EntityUtil.filterByDate(locations, now,
"purposeFromDate", "purposeThruDate", true);
                   } catch (GenericEntityException e) {
                       Debug.logError("Trouble getting contact party
purpose
list", module);
                   }

Modified:
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/
PaymentMethodServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/
accounting/src/org/ofbiz/accounting/payment/PaymentMethodServices.java?
rev=1645950&r1=1645949&r2=1645950&view=diff

============================================================
==================
---
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/
PaymentMethodServices.java
(original)
+++
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/
PaymentMethodServices.java
Tue Dec 16 13:45:54 2014
@@ -216,8 +216,8 @@ public class PaymentMethodServices {
               try {
                   List<GenericValue> allPCWPs =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                           .where("partyId", partyId, "contactMechId",
contactMechId, "contactMechPurposeTypeId",
contactMechPurposeTypeId).queryList();
-                allPCWPs = EntityUtil.filterByDate(allPCWPs, null,
"contactFromDate", "contactThruDate", true);
-                allPCWPs = EntityUtil.filterByDate(allPCWPs, null,
"purposeFromDate", "purposeThruDate", true);
+                allPCWPs = EntityUtil.filterByDate(allPCWPs, now,
"contactFromDate", "contactThruDate", true);
+                allPCWPs = EntityUtil.filterByDate(allPCWPs, now,
"purposeFromDate", "purposeThruDate", true);
                   tempVal = EntityUtil.getFirst(allPCWPs);
               } catch (GenericEntityException e) {
                   Debug.logWarning(e.getMessage(), module);
@@ -391,8 +391,8 @@ public class PaymentMethodServices {
               try {
                   List<GenericValue> allPCWPs =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                           .where("partyId", partyId, "contactMechId",
contactMechId, "contactMechPurposeTypeId",
contactMechPurposeTypeId).queryList();
-                allPCWPs = EntityUtil.filterByDate(allPCWPs, null,
"contactFromDate", "contactThruDate", true);
-                allPCWPs = EntityUtil.filterByDate(allPCWPs, null,
"purposeFromDate", "purposeThruDate", true);
+                allPCWPs = EntityUtil.filterByDate(allPCWPs, now,
"contactFromDate", "contactThruDate", true);
+                allPCWPs = EntityUtil.filterByDate(allPCWPs, now,
"purposeFromDate", "purposeThruDate", true);

                   tempVal = EntityUtil.getFirst(allPCWPs);
               } catch (GenericEntityException e) {
@@ -732,8 +732,8 @@ public class PaymentMethodServices {
               try {
                   List<GenericValue> allPCWPs =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                           .where("partyId", partyId, "contactMechId",
contactMechId, "contactMechPurposeTypeId",
contactMechPurposeTypeId).queryList();
-                allPCWPs = EntityUtil.filterByDate(allPCWPs, null,
"contactFromDate", "contactThruDate", true);
-                allPCWPs = EntityUtil.filterByDate(allPCWPs, null,
"purposeFromDate", "purposeThruDate", true);
+                allPCWPs = EntityUtil.filterByDate(allPCWPs, now,
"contactFromDate", "contactThruDate", true);
+                allPCWPs = EntityUtil.filterByDate(allPCWPs, now,
"purposeFromDate", "purposeThruDate", true);

                   tempVal = EntityUtil.getFirst(allPCWPs);
               } catch (GenericEntityException e) {
@@ -861,8 +861,8 @@ public class PaymentMethodServices {
               try {
                   List<GenericValue> allPCWPs =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                           .where("partyId", partyId, "contactMechId",
contactMechId, "contactMechPurposeTypeId",
contactMechPurposeTypeId).queryList();
-                allPCWPs = EntityUtil.filterByDate(allPCWPs, null,
"contactFromDate", "contactThruDate", true);
-                allPCWPs = EntityUtil.filterByDate(allPCWPs, null,
"purposeFromDate", "purposeThruDate", true);
+                allPCWPs = EntityUtil.filterByDate(allPCWPs, now,
"contactFromDate", "contactThruDate", true);
+                allPCWPs = EntityUtil.filterByDate(allPCWPs, now,
"purposeFromDate", "purposeThruDate", true);
                   tempVal = EntityUtil.getFirst(allPCWPs);
               } catch (GenericEntityException e) {
                   Debug.logWarning(e.getMessage(), module);

Modified:
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/
PaymentWorker.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/
accounting/src/org/ofbiz/accounting/payment/PaymentWorker.java?rev=
1645950&r1=1645949&r2=1645950&view=diff

============================================================
==================
---
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/
PaymentWorker.java
(original)
+++
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/
PaymentWorker.java
Tue Dec 16 13:45:54 2014
@@ -29,6 +29,7 @@ import javolution.util.FastList;
   import javolution.util.FastMap;

   import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilDateTime;
   import org.ofbiz.base.util.UtilFormatOut;
   import org.ofbiz.base.util.UtilMisc;
   import org.ofbiz.base.util.UtilNumber;
@@ -161,7 +162,7 @@ public class PaymentWorker {
           try {
               purpose =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                       .where("partyId", partyId,
"contactMechPurposeTypeId", "PAYMENT_LOCATION")
-
.orderBy("-purposeFromDate").filterByDate("contactFromDate",
"contactThruDate", "purposeFromDate", "purposeThruDate")
+
.orderBy("-purposeFromDate").filterByDate(UtilDateTime.nowTimestamp(),
"contactFromDate", "contactThruDate", "purposeFromDate",
"purposeThruDate")
                       .queryFirst();
           } catch (GenericEntityException e) {
               Debug.logError(e, "Trouble getting PartyContactWithPurpose
view entity list", module);

Modified:
ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/
actions/order/CompanyHeader.groovy
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/
order/webapp/ordermgr/WEB-INF/actions/order/CompanyHeader.
groovy?rev=1645950&r1=1645949&r2=1645950&view=diff

============================================================
==================
---
ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/
actions/order/CompanyHeader.groovy
(original)
+++
ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/
actions/order/CompanyHeader.groovy
Tue Dec 16 13:45:54 2014
@@ -144,8 +144,8 @@ context.companyName = companyName;

   // the address
   addresses = delegator.findByAnd("PartyContactWithPurpose", [partyId :
partyId, contactMechPurposeTypeId : "GENERAL_LOCATION"], null, false);
-addresses = EntityUtil.filterByDate(addresses, null, "contactFromDate",
"contactThruDate", true);
-addresses = EntityUtil.filterByDate(addresses, null, "purposeFromDate",
"purposeThruDate", true);
+addresses = EntityUtil.filterByDate(addresses, nowTimestamp,
"contactFromDate", "contactThruDate", true);
+addresses = EntityUtil.filterByDate(addresses, nowTimestamp,
"purposeFromDate", "purposeThruDate", true);
   address = null;
   if (addresses) {
       address = delegator.findOne("PostalAddress", [contactMechId :
addresses[0].contactMechId], false);
@@ -165,24 +165,24 @@ context.postalAddress = address;

   //telephone
   phones = delegator.findByAnd("PartyContactWithPurpose", [partyId :
partyId, contactMechPurposeTypeId : "PRIMARY_PHONE"], null, false);
-phones = EntityUtil.filterByDate(phones, null, "contactFromDate",
"contactThruDate", true);
-phones = EntityUtil.filterByDate(phones, null, "purposeFromDate",
"purposeThruDate", true);
+phones = EntityUtil.filterByDate(phones, nowTimestamp,
"contactFromDate",
"contactThruDate", true);
+phones = EntityUtil.filterByDate(phones, nowTimestamp,
"purposeFromDate",
"purposeThruDate", true);
   if (phones) {
       context.phone = delegator.findOne("TelecomNumber", [contactMechId
:
phones[0].contactMechId], false);
   }

   // Fax
   faxNumbers = delegator.findByAnd("PartyContactWithPurpose", [partyId :
partyId, contactMechPurposeTypeId : "FAX_NUMBER"], null, false);
-faxNumbers = EntityUtil.filterByDate(faxNumbers, null,
"contactFromDate",
"contactThruDate", true);
-faxNumbers = EntityUtil.filterByDate(faxNumbers, null,
"purposeFromDate",
"purposeThruDate", true);
+faxNumbers = EntityUtil.filterByDate(faxNumbers, nowTimestamp,
"contactFromDate", "contactThruDate", true);
+faxNumbers = EntityUtil.filterByDate(faxNumbers, nowTimestamp,
"purposeFromDate", "purposeThruDate", true);
   if (faxNumbers) {
       context.fax = delegator.findOne("TelecomNumber", [contactMechId :
faxNumbers[0].contactMechId], false);
   }

   //Email
   emails = delegator.findByAnd("PartyContactWithPurpose", [partyId :
partyId, contactMechPurposeTypeId : "PRIMARY_EMAIL"], null, false);
-emails = EntityUtil.filterByDate(emails, null, "contactFromDate",
"contactThruDate", true);
-emails = EntityUtil.filterByDate(emails, null, "purposeFromDate",
"purposeThruDate", true);
+emails = EntityUtil.filterByDate(emails, nowTimestamp,
"contactFromDate",
"contactThruDate", true);
+emails = EntityUtil.filterByDate(emails, nowTimestamp,
"purposeFromDate",
"purposeThruDate", true);
   if (emails) {
       context.email = delegator.findOne("ContactMech", [contactMechId :
emails[0].contactMechId], false);
   } else {    //get email address from party contact mech
@@ -202,8 +202,8 @@ if (emails) {

   // website
   websiteUrls = delegator.findByAnd("PartyContactWithPurpose", [partyId
:
partyId, contactMechPurposeTypeId : "PRIMARY_WEB_URLs"], null, false);
-websiteUrls = EntityUtil.filterByDate(websiteUrls, null,
"contactFromDate", "contactThruDate", true);
-websiteUrls = EntityUtil.filterByDate(websiteUrls, null,
"purposeFromDate", "purposeThruDate", true);
+websiteUrls = EntityUtil.filterByDate(websiteUrls, nowTimestamp,
"contactFromDate", "contactThruDate", true);
+websiteUrls = EntityUtil.filterByDate(websiteUrls, nowTimestamp,
"purposeFromDate", "purposeThruDate", true);
   if (websiteUrls) {
       websiteUrl = EntityUtil.getFirst(websiteUrls);
       context.website = delegator.findOne("ContactMech", [contactMechId
:
websiteUrl.contactMechId], false);

Modified:
ofbiz/trunk/applications/party/src/org/ofbiz/party/
contact/ContactMechServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/
party/src/org/ofbiz/party/contact/ContactMechServices.
java?rev=1645950&r1=1645949&r2=1645950&view=diff

============================================================
==================
---
ofbiz/trunk/applications/party/src/org/ofbiz/party/
contact/ContactMechServices.java
(original)
+++
ofbiz/trunk/applications/party/src/org/ofbiz/party/
contact/ContactMechServices.java
Tue Dec 16 13:45:54 2014
@@ -821,7 +821,7 @@ public class ContactMechServices {
           try {
               tempVal =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                       .where("partyId", partyId, "contactMechId",
contactMechId, "contactMechPurposeTypeId", contactMechPurposeTypeId)
-                    .filterByDate("contactFromDate", "contactThruDate",
"purposeFromDate", "purposeThruDate")
+                    .filterByDate(UtilDateTime.nowTimestamp(),
"contactFromDate", "contactThruDate", "purposeFromDate",
"purposeThruDate")
                       .queryFirst();
           } catch (GenericEntityException e) {
               Debug.logWarning(e.getMessage(), module);
@@ -881,7 +881,7 @@ public class ContactMechServices {
           try {
               tempVal =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                       .where("partyId", partyId, "contactMechId",
contactMechId, "contactMechPurposeTypeId", contactMechPurposeTypeId)
-                    .filterByDate("contactFromDate", "contactThruDate",
"purposeFromDate", "purposeThruDate")
+                    .filterByDate(UtilDateTime.nowTimestamp(),
"contactFromDate", "contactThruDate", "purposeFromDate",
"purposeThruDate")
                       .queryFirst();
           } catch (GenericEntityException e) {
               Debug.logWarning(e.getMessage(), module);

Modified:
ofbiz/trunk/specialpurpose/googlecheckout/src/org/ofbiz/googlecheckout/
GoogleCheckoutHelper.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/
googlecheckout/src/org/ofbiz/googlecheckout/
GoogleCheckoutHelper.java?rev=1645950&r1=1645949&r2=1645950&view=diff

============================================================
==================
---
ofbiz/trunk/specialpurpose/googlecheckout/src/org/ofbiz/googlecheckout/
GoogleCheckoutHelper.java
(original)
+++
ofbiz/trunk/specialpurpose/googlecheckout/src/org/ofbiz/googlecheckout/
GoogleCheckoutHelper.java
Tue Dec 16 13:45:54 2014
@@ -29,6 +29,7 @@ import javolution.util.FastMap;

   import org.ofbiz.base.util.Debug;
   import org.ofbiz.base.util.GeneralException;
+import org.ofbiz.base.util.UtilDateTime;
   import org.ofbiz.base.util.UtilGenerics;
   import org.ofbiz.base.util.UtilMisc;
   import org.ofbiz.base.util.UtilValidate;
@@ -559,7 +560,7 @@ public class GoogleCheckoutHelper {
           // check to make sure the purpose doesn't already exist
           List<GenericValue> values =
EntityQuery.use(delegator).from("PartyContactWithPurpose")
                   .where("partyId", partyId, "contactMechId",
contactMechId, "contactMechPurposeTypeId", contactMechPurposeTypeId)
-                .filterByDate("contactFromDate", "contactThruDate",
"purposeFromDate", "purposeThruDate")
+                .filterByDate(UtilDateTime.nowTimestamp(),
"contactFromDate", "contactThruDate", "purposeFromDate",
"purposeThruDate")
                   .queryList();

           if (UtilValidate.isEmpty(values)) {




Reply via email to