Author: pgil
Date: Fri Sep  6 14:44:01 2019
New Revision: 1866511

URL: http://svn.apache.org/viewvc?rev=1866511&view=rev
Log:
Improved: Get correct information history for Company Header in pdf document
(OFBIZ-11177)

CompanyHeader.groovy now use the rendered document date 
as a reference to retrieve company data.

Thanks Carl Demus for your contribution

Modified:
    
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/order/CompanyHeader.groovy

Modified: 
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/order/CompanyHeader.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/order/CompanyHeader.groovy?rev=1866511&r1=1866510&r2=1866511&view=diff
==============================================================================
--- 
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/order/CompanyHeader.groovy
 (original)
+++ 
ofbiz/ofbiz-framework/trunk/applications/order/groovyScripts/order/CompanyHeader.groovy
 Fri Sep  6 14:44:01 2019
@@ -27,6 +27,8 @@ import org.apache.ofbiz.order.order.Orde
 import org.apache.ofbiz.party.content.PartyContentWrapper
 import org.apache.ofbiz.entity.util.EntityUtilProperties
 
+import java.sql.Timestamp
+
 orderHeader = parameters.orderHeader
 orderId = parameters.orderId
 invoice = parameters.invoice
@@ -74,10 +76,12 @@ if (quoteId) {
 // defaults:
 def logoImageUrl = null // the default value, "/images/ofbiz_powered.gif", is 
set in the screen decorators
 def partyId = null
-
+// reference date for filtering
+Timestamp referenceDate = null
 // get the logo partyId from order or invoice - note that it is better to do 
comparisons this way in case the there are null values
 if (orderHeader) {
     orh = new OrderReadHelper(orderHeader)
+    referenceDate = orderHeader.orderDate
     // for sales order, the logo party is the "BILL_FROM_VENDOR" of the order. 
 If that's not available, we'll use the OrderHeader's ProductStore's 
payToPartyId
     if ("SALES_ORDER".equals(orderHeader.orderTypeId)) {
         if (orh.getBillFromParty()) {
@@ -101,6 +105,7 @@ if (orderHeader) {
         }
     }
 } else if (invoice) {
+    referenceDate = invoice.invoiceDate
     if ("SALES_INVOICE".equals(invoice.invoiceTypeId) && invoice.partyIdFrom) {
         partyId = invoice.partyIdFrom
     }
@@ -157,7 +162,7 @@ context.companyName = companyName
 // the address
 addresses = from("PartyContactWithPurpose")
                 .where("partyId", partyId, "contactMechPurposeTypeId", 
"GENERAL_LOCATION")
-                .filterByDate("contactFromDate", "contactThruDate", 
"purposeFromDate", "purposeThruDate")
+                .filterByDate(referenceDate, "contactFromDate", 
"contactThruDate", "purposeFromDate", "purposeThruDate")
                 .queryList()
 address = null
 if (addresses) {
@@ -179,7 +184,7 @@ context.postalAddress = address
 //telephone
 phones = from("PartyContactWithPurpose")
              .where("partyId", partyId, "contactMechPurposeTypeId", 
"PRIMARY_PHONE")
-             .filterByDate("contactFromDate", "contactThruDate", 
"purposeFromDate", "purposeThruDate")
+             .filterByDate(referenceDate, "contactFromDate", 
"contactThruDate", "purposeFromDate", "purposeThruDate")
              .queryList()
 if (phones) {
     context.phone = from("TelecomNumber").where("contactMechId", 
phones[0].contactMechId).queryOne()
@@ -188,7 +193,7 @@ if (phones) {
 // Fax
 faxNumbers = from("PartyContactWithPurpose")
                  .where("partyId", partyId, "contactMechPurposeTypeId", 
"FAX_NUMBER")
-                 .filterByDate("contactFromDate", "contactThruDate", 
"purposeFromDate", "purposeThruDate")
+                 .filterByDate(referenceDate, "contactFromDate", 
"contactThruDate", "purposeFromDate", "purposeThruDate")
                  .queryList()
 if (faxNumbers) {
     context.fax = from("TelecomNumber").where("contactMechId", 
faxNumbers[0].contactMechId).queryOne()
@@ -197,13 +202,13 @@ if (faxNumbers) {
 //Email
 emails = from("PartyContactWithPurpose")
              .where("partyId", partyId, "contactMechPurposeTypeId", 
"PRIMARY_EMAIL")
-             .filterByDate("contactFromDate", "contactThruDate", 
"purposeFromDate", "purposeThruDate")
+             .filterByDate(referenceDate, "contactFromDate", 
"contactThruDate", "purposeFromDate", "purposeThruDate")
              .queryList()
 if (emails) {
     context.email = from("ContactMech").where("contactMechId", 
emails[0].contactMechId).queryOne()
 } else {    //get email address from party contact mech
     selContacts = from("PartyContactMech")
-                      .where("partyId", partyId).filterByDate(nowTimestamp, 
"fromDate", "thruDate")
+                      .where("partyId", partyId).filterByDate(referenceDate, 
"fromDate", "thruDate")
                       .queryList()
     if (selContacts) {
         i = selContacts.iterator()
@@ -220,7 +225,7 @@ if (emails) {
 // website
 websiteUrls = from("PartyContactWithPurpose")
                   .where("partyId", partyId, "contactMechPurposeTypeId", 
"PRIMARY_WEB_URL")
-                  .filterByDate("contactFromDate", "contactThruDate", 
"purposeFromDate", "purposeThruDate")
+                  .filterByDate(referenceDate, "contactFromDate", 
"contactThruDate", "purposeFromDate", "purposeThruDate")
                   .queryList()
 if (websiteUrls) {
     websiteUrl = EntityUtil.getFirst(websiteUrls)
@@ -228,7 +233,7 @@ if (websiteUrls) {
 } else { //get web address from party contact mech
     selContacts = from("PartyContactMech")
                       .where("partyId", partyId)
-                      .filterByDate(nowTimestamp, "fromDate", "thruDate")
+                      .filterByDate(referenceDate, "fromDate", "thruDate")
                       .queryList()
     if (selContacts) {
         Iterator i = selContacts.iterator()
@@ -245,7 +250,7 @@ if (websiteUrls) {
 //Bank account
 selPayments = from("PaymentMethod")
               .where("partyId", partyId, "paymentMethodTypeId", "EFT_ACCOUNT")
-              .filterByDate(nowTimestamp, "fromDate", "thruDate")
+              .filterByDate(referenceDate, "fromDate", "thruDate")
               .queryList()
 if (selPayments) {
     context.eftAccount = from("EftAccount").where("paymentMethodId", 
selPayments[0].paymentMethodId).queryOne()
@@ -253,7 +258,7 @@ if (selPayments) {
 
 // Tax ID Info
 partyTaxAuthInfoList = from("PartyTaxAuthInfo").where("partyId", partyId)
-                        .filterByDate(nowTimestamp, "fromDate", "thruDate")
+                        .filterByDate(referenceDate, "fromDate", "thruDate")
                         .queryList()
 if (partyTaxAuthInfoList) {
     if (address?.countryGeoId) {


Reply via email to