📄 orderreadhelper.java
字号:
/*
* $Id: OrderReadHelper.java,v 1.21 2004/02/24 10:09:02 jonesde Exp $
*
* Copyright (c) 2002 The Open For Business Project - www.ofbiz.org
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
* OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package org.ofbiz.order.order;
import java.sql.Timestamp;
import java.util.*;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilFormatOut;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.common.DataModelConstants;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntity;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.condition.EntityExpr;
import org.ofbiz.entity.condition.EntityOperator;
import org.ofbiz.entity.util.EntityUtil;
import org.ofbiz.product.product.ProductWorker;
import org.ofbiz.security.Security;
/**
* Utility class for easily extracting important information from orders
*
* <p>NOTE: in the current scheme order adjustments are never included in tax or shipping,
* but order item adjustments ARE included in tax and shipping calcs unless they are
* tax or shipping adjustments or the includeInTax or includeInShipping are set to N.</p>
*
* @author <a href="mailto:jaz@ofbiz.org">Andy Zeneski</a>
* @author <a href="mailto:jonesde@ofbiz.org">David E. Jones</a>
* @author Eric Pabst
* @author <a href="mailto:ray.barlow@whatsthe-point.com">Ray Barlow</a>
* @version $Revision: 1.21 $
* @since 2.0
*/
public class OrderReadHelper {
public static final String module = OrderReadHelper.class.getName();
protected GenericValue orderHeader = null;
protected List orderItems = null;
protected List adjustments = null;
protected List paymentPrefs = null;
protected List orderStatuses = null;
protected List orderItemPriceInfos = null;
protected List orderItemInventoryReses = null;
protected List orderItemIssuances = null;
protected Double totalPrice = null;
protected OrderReadHelper() {}
public OrderReadHelper(GenericValue orderHeader, List adjustments, List orderItems) {
this.orderHeader = orderHeader;
this.adjustments = adjustments;
this.orderItems = orderItems;
}
public OrderReadHelper(GenericValue orderHeader) {
this.orderHeader = orderHeader;
}
// ==========================================
// ========== Order Header Methods ==========
// ==========================================
public String getOrderId() {
return orderHeader.getString("orderId");
}
public String getWebSiteId() {
return orderHeader.getString("webSiteId");
}
public String getProductStoreId() {
return orderHeader.getString("productStoreId");
}
public String getOrderTypeId() {
return orderHeader.getString("orderTypeId");
}
public String getCurrency() {
return orderHeader.getString("currencyUom");
}
public List getAdjustments() {
if (adjustments == null) {
try {
adjustments = orderHeader.getRelated("OrderAdjustment");
} catch (GenericEntityException e) {
Debug.logError(e, module);
}
if (adjustments == null)
adjustments = new ArrayList();
}
return (List) adjustments;
}
public List getPaymentPreferences() {
if (paymentPrefs == null) {
try {
paymentPrefs = orderHeader.getRelated("OrderPaymentPreference");
} catch (GenericEntityException e) {
Debug.logError(e, module);
}
}
return paymentPrefs;
}
public List getOrderPayments() {
List orderPayments = new ArrayList();
List prefs = getPaymentPreferences();
if (prefs != null) {
Iterator i = prefs.iterator();
while (i.hasNext()) {
GenericValue payPref = (GenericValue) i.next();
try {
orderPayments.addAll(payPref.getRelated("Payment"));
} catch (GenericEntityException e) {
Debug.logError(e, module);
return null;
}
}
}
return orderPayments;
}
public List getOrderStatuses() {
if (orderStatuses == null) {
try {
orderStatuses = orderHeader.getRelated("OrderStatus");
} catch (GenericEntityException e) {
Debug.logError(e, module);
}
}
return (List) orderStatuses;
}
public String getShippingMethod() {
try {
GenericValue shipmentPreference = null;
Iterator tempIter = UtilMisc.toIterator(orderHeader.getRelated("OrderShipmentPreference"));
if (tempIter != null && tempIter.hasNext()) {
shipmentPreference = (GenericValue) tempIter.next();
}
if (shipmentPreference != null) {
GenericValue carrierShipmentMethod = shipmentPreference.getRelatedOne("CarrierShipmentMethod");
if (carrierShipmentMethod != null) {
GenericValue shipmentMethodType = carrierShipmentMethod.getRelatedOne("ShipmentMethodType");
if (shipmentMethodType != null) {
return UtilFormatOut.checkNull(shipmentPreference.getString("carrierPartyId")) + " " + UtilFormatOut.checkNull(shipmentMethodType.getString("description"));
}
}
return UtilFormatOut.checkNull(shipmentPreference.getString("carrierPartyId"));
}
return "";
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
}
return "";
}
public String getShippingMethodCode() {
try {
GenericValue shipmentPreference = null;
Iterator tempIter = UtilMisc.toIterator(orderHeader.getRelated("OrderShipmentPreference"));
if (tempIter != null && tempIter.hasNext()) {
shipmentPreference = (GenericValue) tempIter.next();
}
if (shipmentPreference != null) {
GenericValue carrierShipmentMethod = shipmentPreference.getRelatedOne("CarrierShipmentMethod");
if (carrierShipmentMethod != null) {
GenericValue shipmentMethodType = carrierShipmentMethod.getRelatedOne("ShipmentMethodType");
if (shipmentMethodType != null) {
return UtilFormatOut.checkNull(shipmentMethodType.getString("shipmentMethodTypeId")) + "@" + UtilFormatOut.checkNull(shipmentPreference.getString("carrierPartyId"));
}
}
return UtilFormatOut.checkNull(shipmentPreference.getString("carrierPartyId"));
}
return "";
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
}
return "";
}
public GenericValue getShippingAddress() {
GenericDelegator delegator = orderHeader.getDelegator();
try {
GenericValue orderContactMech = EntityUtil.getFirst(orderHeader.getRelatedByAnd("OrderContactMech", UtilMisc.toMap(
"contactMechPurposeTypeId", "SHIPPING_LOCATION")));
if (orderContactMech != null) {
GenericValue contactMech = orderContactMech.getRelatedOne("ContactMech");
if (contactMech != null) {
return contactMech.getRelatedOne("PostalAddress");
}
}
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
}
return null;
}
public GenericValue getBillingAddress() {
GenericDelegator delegator = orderHeader.getDelegator();
GenericValue billingAddress = null;
try {
GenericValue orderContactMech = EntityUtil.getFirst(orderHeader.getRelatedByAnd("OrderContactMech", UtilMisc.toMap("contactMechPurposeTypeId", "BILLING_LOCATION")));
if (orderContactMech != null) {
GenericValue contactMech = orderContactMech.getRelatedOne("ContactMech");
if (contactMech != null) {
billingAddress = contactMech.getRelatedOne("PostalAddress");
}
}
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
}
if (billingAddress == null) {
// get the address from the billing account
GenericValue billingAccount = getBillingAccount();
if (billingAccount != null) {
try {
billingAddress = billingAccount.getRelatedOne("PostalAddress");
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
}
} else {
// get the address from the first payment method
GenericValue paymentPreference = EntityUtil.getFirst(getPaymentPreferences());
if (paymentPreference != null) {
try {
GenericValue paymentMethod = paymentPreference.getRelatedOne("PaymentMethod");
if (paymentMethod != null) {
GenericValue creditCard = paymentMethod.getRelatedOne("CreditCard");
if (creditCard != null) {
billingAddress = creditCard.getRelatedOne("PostalAddress");
} else {
GenericValue eftAccount = paymentMethod.getRelatedOne("EftAccount");
if (eftAccount != null) {
billingAddress = eftAccount.getRelatedOne("PostalAddress");
}
}
}
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -