Package com.jada.myaccount.order

Source Code of com.jada.myaccount.order.MyAccountOrderAction

/*
* Copyright 2007-2010 JadaSite.

* This file is part of JadaSite.
* JadaSite is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.

* JadaSite is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.

* You should have received a copy of the GNU General Public License
* along with JadaSite.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.jada.myaccount.order;

import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.util.MessageResources;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;

import com.jada.admin.inventory.OrderItemAttributeBean;
import com.jada.content.ContentBean;
import com.jada.content.ContentLookupDispatchAction;
import com.jada.content.Formatter;
import com.jada.dao.OrderHeaderDAO;
import com.jada.jpa.entity.Coupon;
import com.jada.jpa.entity.CouponLanguage;
import com.jada.jpa.entity.CreditDetail;
import com.jada.jpa.entity.CreditHeader;
import com.jada.jpa.entity.CustomAttribute;
import com.jada.jpa.entity.CustomAttributeLanguage;
import com.jada.jpa.entity.CustomAttributeOption;
import com.jada.jpa.entity.CustomAttributeOptionLanguage;
import com.jada.jpa.entity.InvoiceDetail;
import com.jada.jpa.entity.Item;
import com.jada.jpa.entity.ItemAttributeDetail;
import com.jada.jpa.entity.ItemImage;
import com.jada.jpa.entity.ItemLanguage;
import com.jada.jpa.entity.OrderAddress;
import com.jada.jpa.entity.OrderAttributeDetail;
import com.jada.jpa.entity.OrderDetailTax;
import com.jada.jpa.entity.OrderHeader;
import com.jada.jpa.entity.OrderItemDetail;
import com.jada.jpa.entity.OrderOtherDetail;
import com.jada.jpa.entity.OrderTracking;
import com.jada.jpa.entity.PaymentTran;
import com.jada.jpa.entity.ShipHeader;
import com.jada.jpa.entity.Site;
import com.jada.jpa.entity.SiteCurrency;
import com.jada.jpa.entity.SiteProfile;
import com.jada.order.document.OrderEngine;
import com.jada.order.payment.gateway.PayPalEngine;
import com.jada.util.AESEncoder;
import com.jada.util.Constants;
import com.jada.util.Format;
import com.jada.util.Utility;

public class MyAccountOrderAction
    extends ContentLookupDispatchAction {
 
    public ActionForward start(ActionMapping actionMapping,
            ActionForm actionForm,
            HttpServletRequest request,
            HttpServletResponse response)
        throws Throwable {
        MyAccountOrderStatusActionForm form = (MyAccountOrderStatusActionForm) actionForm;
        Site site = getContentBean(request).getContentSessionBean().getSiteDomain().getSite();
    String orderHeaderId = request.getParameter("orderHeaderId");
    OrderHeader header = new OrderHeader();
    header = OrderHeaderDAO.load(site.getSiteId(), Format.getLong(orderHeaderId));
    OrderEngine orderEngine = new OrderEngine(header, null);
    SiteProfile siteProfile = getContentBean(request).getContentSessionBean().getSiteProfile();
    SiteCurrency siteCurrency = header.getSiteCurrency();
    Formatter numberFormatter = new Formatter(siteProfile, siteCurrency);
    ContentBean contentBean = getContentBean(request);

    MessageResources resources = this.getResources(request);
    form.setOrderNum(header.getOrderNum());
   
    OrderAddress address = header.getCustAddress();
    String name = Format.formatCustomerName("", address.getCustFirstName(), address.getCustMiddleName(), address.getCustLastName(), "");
    form.setCustName(name);
    form.setCustEmail(header.getCustEmail());
    form.setCustPrefix(address.getCustPrefix());
    form.setCustFirstName(address.getCustFirstName());
    form.setCustMiddleName(address.getCustMiddleName());
    form.setCustLastName(address.getCustLastName());
    form.setCustSuffix(address.getCustSuffix());
    form.setCustAddressLine1(address.getCustAddressLine1());
    form.setCustAddressLine2(address.getCustAddressLine2());
    form.setCustCityName(address.getCustCityName());
    form.setCustStateName(address.getCustStateName());
    form.setCustStateCode(address.getCustStateCode());
    form.setCustCountryName(address.getCustCountryName());
    form.setCustCountryCode(address.getCustCountryCode());
    form.setCustZipCode(address.getCustZipCode());
    form.setCustPhoneNum(address.getCustPhoneNum());
    form.setCustFaxNum(address.getCustFaxNum());

    address = header.getBillingAddress();
    form.setBillingCustUseAddress(address.getCustUseAddress());
    if (address.getCustUseAddress().equals(Constants.CUST_ADDRESS_USE_OWN)) {
      name = Format.formatCustomerName("", address.getCustFirstName(), address.getCustMiddleName(), address.getCustLastName(), "");
      form.setBillingCustName(name);
      form.setBillingCustPrefix(address.getCustPrefix());
      form.setBillingCustFirstName(address.getCustFirstName());
      form.setBillingCustMiddleName(address.getCustMiddleName());
      form.setBillingCustLastName(address.getCustLastName());
      form.setBillingCustSuffix(address.getCustSuffix());
      form.setBillingCustAddressLine1(address.getCustAddressLine1());
      form.setBillingCustAddressLine2(address.getCustAddressLine2());
      form.setBillingCustCityName(address.getCustCityName());
      form.setBillingCustStateName(address.getCustStateName());
      form.setBillingCustStateCode(address.getCustStateCode());
      form.setBillingCustCountryName(address.getCustCountryName());
      form.setBillingCustCountryCode(address.getCustCountryCode());
      form.setBillingCustZipCode(address.getCustZipCode());
      form.setBillingCustPhoneNum(address.getCustPhoneNum());
      form.setBillingCustFaxNum(address.getCustFaxNum());
    }
   
    address = header.getShippingAddress();
    form.setShippingCustUseAddress(address.getCustUseAddress());
    if (address.getCustUseAddress().equals(Constants.CUST_ADDRESS_USE_OWN)) {
      name = Format.formatCustomerName("", address.getCustFirstName(), address.getCustMiddleName(), address.getCustLastName(), "");
      form.setShippingCustName(name);
      form.setShippingCustPrefix(address.getCustPrefix());
      form.setShippingCustFirstName(address.getCustFirstName());
      form.setShippingCustMiddleName(address.getCustMiddleName());
      form.setShippingCustLastName(address.getCustLastName());
      form.setShippingCustSuffix(address.getCustSuffix());
      form.setShippingCustAddressLine1(address.getCustAddressLine1());
      form.setShippingCustAddressLine2(address.getCustAddressLine2());
      form.setShippingCustCityName(address.getCustCityName());
      form.setShippingCustStateName(address.getCustStateName());
      form.setShippingCustStateCode(address.getCustStateCode());
      form.setShippingCustCountryName(address.getCustCountryName());
      form.setShippingCustCountryCode(address.getCustCountryCode());
      form.setShippingCustZipCode(address.getCustZipCode());
      form.setShippingCustPhoneNum(address.getCustPhoneNum());
      form.setShippingCustFaxNum(address.getCustFaxNum());
    }
   
    form.setPriceTotal(numberFormatter.formatCurrency(orderEngine.getOrderSubTotal()));
    form.setShippingTotal(numberFormatter.formatCurrency(orderEngine.getOrderShippingTotal()));
    form.setTaxTotal(numberFormatter.formatCurrency(orderEngine.getOrderTaxTotal()));
    form.setOrderTotal(numberFormatter.formatCurrency(header.getOrderTotal()));
    if (header.getPaymentGatewayProvider() != null) {
      form.setPaymentGateway(header.getPaymentGatewayProvider());
      if (header.getPaymentGatewayProvider().equals(PayPalEngine.class.getSimpleName())) {
        form.setPayPal(true);
      }
    }
   
    form.setCreditCardDesc(header.getCreditCardDesc());
    if (header.getCustCreditCardNum() != null) {
      String custCreditCardNum = AESEncoder.getInstance().decode(header.getCustCreditCardNum());
      custCreditCardNum = Utility.maskCreditCardNumber(custCreditCardNum);
      form.setCustCreditCardNum(custCreditCardNum);
    }
    form.setShippingMethodName(header.getShippingMethodName());
   
    Date shipDate = null;
    for (ShipHeader shipHeader : header.getShipHeaders()) {
      if (shipDate == null || shipDate.before(shipHeader.getShipDate())) {
        shipDate = shipHeader.getShipDate();
      }
    }
    if (shipDate != null) {
      form.setShipDate(numberFormatter.formatDate(shipDate));
    }
    form.setOrderStatus(header.getOrderStatus());
    form.setOrderStatusDesc(resources.getMessage("order.status." + header.getOrderStatus()));
    form.setOrderDatetime(numberFormatter.formatDate(header.getOrderDate()));
   
    PaymentTran paymentTran = header.getPaymentTran();
    if (paymentTran != null) {
      form.setAuthCode(paymentTran.getAuthCode());
      form.setPaymentReference1(paymentTran.getPaymentReference1());
    }
   
    Iterator<?> iterator = orderEngine.getOrderTaxes().iterator();
    Vector<OrderTaxForm> orderTaxes = new Vector<OrderTaxForm>();
    while (iterator.hasNext()) {
      OrderDetailTax orderDetailTax = (OrderDetailTax) iterator.next();
      OrderTaxForm orderTaxForm = new OrderTaxForm();
      orderTaxForm.setTaxName(orderDetailTax.getTaxName());
      orderTaxForm.setTaxAmount(numberFormatter.formatCurrency(orderDetailTax.getTaxAmount()));
      orderTaxes.add(orderTaxForm);
    }
    form.setOrderTaxes(orderTaxes);
   
   
    iterator = header.getOrderItemDetails().iterator();
    Vector<OrderDetailDisplayForm> details = new Vector<OrderDetailDisplayForm>();
    while (iterator.hasNext()) {
      OrderItemDetail detail = (OrderItemDetail) iterator.next();
      OrderDetailDisplayForm dform = new OrderDetailDisplayForm();
      dform.setItemShortDesc(detail.getItemShortDesc());
     
      Item item = detail.getItem();
      if (item != null) {
        Item master = detail.getItem();
        if (item.getItemTypeCd().equals(Constants.ITEM_TYPE_SKU)) {
          master = item.getItemSkuParent();
        }
         
        ItemImage itemImage = master.getItemLanguage().getImage();
        if (itemImage != null) {
          dform.setImageId(itemImage.getImageId().toString());
        }
        dform.setItemShortDesc(master.getItemLanguage().getItemShortDesc());
        if (!contentBean.getContentSessionKey().isSiteProfileClassDefault()) {
          for (ItemLanguage itemLanguage : master.getItemLanguages()) {
            if (itemLanguage.getSiteProfileClass().getSiteProfileClassId().equals(contentBean.getContentSessionKey().getSiteProfileClassId())) {
              if (itemLanguage.getImage() != null) {
                itemImage = itemLanguage.getImage();
              }
              if (itemLanguage.getItemShortDesc() != null) {
                dform.setItemShortDesc(itemLanguage.getItemShortDesc());
              }
              break;
            }
          }
        }
      }
     
      dform.setItemNum(detail.getItemNum());
      dform.setItemUpcCd(detail.getItemUpcCd());
      dform.setItemTierQty(numberFormatter.formatNumber(detail.getItemTierQty()));
      dform.setItemTierPrice(numberFormatter.formatCurrency(detail.getItemTierPrice()));

      String priceDisplay = numberFormatter.formatCurrency(detail.getItemTierPrice());
      if (detail.getItemTierQty() > 1) {
        priceDisplay = numberFormatter.formatNumber(detail.getItemTierQty()) + " / " + numberFormatter.formatCurrency(detail.getItemTierPrice());
      }
      dform.setPriceDisplay(priceDisplay);
     
      dform.setItemOrderQty(numberFormatter.formatNumber(detail.getItemOrderQty()));
      dform.setItemSubTotal(numberFormatter.formatCurrency(detail.getItemDetailAmount()));
     
      int itemInvoiceQty = 0;
      for (InvoiceDetail invoiceDetail : detail.getInvoiceDetails()) {
        itemInvoiceQty += invoiceDetail.getItemInvoiceQty();
      }
      dform.setItemInvoiceQty(numberFormatter.formatNumber(itemInvoiceQty));
      int itemCreditQty = 0;
      for (CreditDetail creditDetail : detail.getCreditDetails()) {
        itemCreditQty += creditDetail.getItemCreditQty();
      }
      dform.setItemCreditQty(numberFormatter.formatNumber(itemCreditQty));
     
      Vector<OrderItemAttributeBean> orderItemAttributes = new Vector<OrderItemAttributeBean>();
        if (item != null && item.getItemTypeCd().equals(Constants.ITEM_TYPE_SKU)) {
          for (ItemAttributeDetail itemAttributeDetail : item.getItemAttributeDetails()) {
            CustomAttribute customAttribute = itemAttributeDetail.getCustomAttributeDetail().getCustomAttribute();
            if (customAttribute.getCustomAttribTypeCode() != Constants.CUSTOM_ATTRIBUTE_TYPE_SKU_MAKEUP) {
              continue;
            }
            OrderItemAttributeBean orderItemAttributeBean = new OrderItemAttributeBean();
           
            orderItemAttributeBean.setCustomAttribDesc(customAttribute.getCustomAttributeLanguage().getCustomAttribDesc());
              if (!contentBean.getContentSessionKey().isSiteProfileClassDefault()) {
                for (CustomAttributeLanguage language : customAttribute.getCustomAttributeLanguages()) {
                  if (language.getSiteProfileClass().getSiteProfileClassId().equals(contentBean.getContentSessionKey().getSiteProfileClassId())) {
                    if (language.getCustomAttribDesc() != null) {
                      orderItemAttributeBean.setCustomAttribDesc(language.getCustomAttribDesc());
                    }
                    break;
                  }
                }
              }

              CustomAttributeOption customAttributeOption = itemAttributeDetail.getCustomAttributeOption();
              orderItemAttributeBean.setCustomAttribValue(customAttributeOption.getCustomAttributeOptionLanguage().getCustomAttribValue());
              if (!contentBean.getContentSessionKey().isSiteProfileClassDefault()) {
                for (CustomAttributeOptionLanguage language : customAttributeOption.getCustomAttributeOptionLanguages()) {
                  if (language.getSiteProfileClass().getSiteProfileClassId().equals(contentBean.getContentSessionKey().getSiteProfileClassId())) {
                    if (language.getCustomAttribValue() != null) {
                      orderItemAttributeBean.setCustomAttribValue(language.getCustomAttribValue());
                    }
                    break;
                  }
                }
              }
              orderItemAttributes.add(orderItemAttributeBean);
          }
        }
       
        for (OrderAttributeDetail orderAttributeDetail : detail.getOrderAttributeDetails()) {
          OrderItemAttributeBean orderItemAttributeBean = new OrderItemAttributeBean();
          CustomAttribute customAttribute = orderAttributeDetail.getCustomAttributeDetail().getCustomAttribute();
          orderItemAttributeBean.setCustomAttribDesc(customAttribute.getCustomAttributeLanguage().getCustomAttribDesc());
            if (!contentBean.getContentSessionKey().isSiteProfileClassDefault()) {
              for (CustomAttributeLanguage language : customAttribute.getCustomAttributeLanguages()) {
                if (language.getSiteProfileClass().getSiteProfileClassId().equals(contentBean.getContentSessionKey().getSiteProfileClassId())) {
                  if (language.getCustomAttribDesc() != null) {
                    orderItemAttributeBean.setCustomAttribDesc(language.getCustomAttribDesc());
                  }
                  break;
                }
              }
            }
           
            if (customAttribute.getCustomAttribTypeCode() == Constants.CUSTOM_ATTRIBUTE_TYPE_CUST_INPUT) {
              orderItemAttributeBean.setCustomAttribValue(orderAttributeDetail.getOrderAttribValue());
            }
            else {
              CustomAttributeOption customAttributeOption = orderAttributeDetail.getCustomAttributeOption();
              orderItemAttributeBean.setCustomAttribValue(customAttributeOption.getCustomAttributeOptionLanguage().getCustomAttribValue());
              if (!contentBean.getContentSessionKey().isSiteProfileClassDefault()) {
                for (CustomAttributeOptionLanguage language : customAttributeOption.getCustomAttributeOptionLanguages()) {
                  if (language.getSiteProfileClass().getSiteProfileClassId().equals(contentBean.getContentSessionKey().getSiteProfileClassId())) {
                    if (language.getCustomAttribValue() != null) {
                      orderItemAttributeBean.setCustomAttribValue(language.getCustomAttribValue());
                    }
                    break;
                  }
                }
              }
            }
            orderItemAttributes.add(orderItemAttributeBean);
        }
        dform.setOrderItemAttributes(orderItemAttributes);
     
      details.add(dform);
    }
    form.setOrderDetails(details);
   
      Vector<OrderDetailDisplayForm> otherVector = new Vector<OrderDetailDisplayForm>();
      iterator = header.getOrderOtherDetails().iterator();
       while (iterator.hasNext()) {
        OrderOtherDetail orderOtherDetail = (OrderOtherDetail) iterator.next();
        Coupon coupon = orderOtherDetail.getCoupon();
        OrderDetailDisplayForm bean = new OrderDetailDisplayForm();
        bean.setItemShortDesc(coupon.getCouponCode() + " " + coupon.getCouponLanguage().getCouponName());
        if (!contentBean.getContentSessionKey().isSiteProfileClassDefault()) {
          for (CouponLanguage language : coupon.getCouponLanguages()) {
            if (language.getSiteProfileClass().getSiteProfileClassId().equals(contentBean.getContentSessionKey().getSiteProfileClassId())) {
              if (language.getCouponName() != null) {
                bean.setItemShortDesc(coupon.getCouponCode() + " " + language.getCouponName());
              }
              break;
            }
          }
        }
        bean.setItemSubTotal(Format.getFloat(orderOtherDetail.getOrderOtherDetailAmount()));
        otherVector.add(bean);
      }
      form.setOrderOtherDetails(otherVector);
   
    Vector<TrackingDisplayForm> vector = new Vector<TrackingDisplayForm>();
    iterator = header.getOrderTrackings().iterator();
    while (iterator.hasNext()) {
      OrderTracking orderTracking = (OrderTracking) iterator.next();
      TrackingDisplayForm displayForm = new TrackingDisplayForm();
      displayForm.setOrderTrackingId(Format.getLong(orderTracking.getOrderTrackingId()));
      displayForm.setOrderTrackingCode(resources.getMessage("order.tracking." + orderTracking.getOrderTrackingCode()));
      displayForm.setOrderTrackingMessage(orderTracking.getOrderTrackingMessage());
      displayForm.setOrderTrackingDatetime(numberFormatter.formatDate(orderTracking.getRecUpdateDatetime()));
      displayForm.setOrderTrackingInternal(orderTracking.getOrderTrackingInternal());
      vector.add(displayForm);
    }
    TrackingDisplayForm orderTrackings[] = new TrackingDisplayForm[vector.size()];
    vector.copyInto(orderTrackings);
    form.setOrderTrackings(orderTrackings);
   
    Vector<CreditDetailDisplayForm> creditVector = new Vector<CreditDetailDisplayForm>();
    iterator = header.getCreditHeaders().iterator();
    while (iterator.hasNext()) {
      CreditHeader creditHeader = (CreditHeader) iterator.next();
      CreditDetailDisplayForm creditDisplayForm = new CreditDetailDisplayForm();
      creditDisplayForm.setCreditNum(creditHeader.getCreditNum());
      creditDisplayForm.setCreditTotal(numberFormatter.formatCurrency(creditHeader.getCreditTotal()));
      creditDisplayForm.setCreditStatusDesc(resources.getMessage("order.status." + creditHeader.getCreditStatus()));
      creditDisplayForm.setCreditDatetime(numberFormatter.formatDate(creditHeader.getCreditDate()));
      creditVector.add(creditDisplayForm);
    }
    form.setCreditDetails(creditVector);
   
    createEmptySecureTemplateInfo(request);
        ActionForward actionForward = actionMapping.findForward("success");
        return actionForward;
    }

    protected java.util.Map<String, String> getKeyMethodMap()  {
        Map<String, String> map = new HashMap<String, String>();
        map.put("list", "list");
        map.put("start", "start");
        return map;
    }
}
TOP

Related Classes of com.jada.myaccount.order.MyAccountOrderAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.