All pastes #438731 Raw Edit

Untitled

public java v1 · immutable
·published 2007-04-13 20:26 UTC
rendered paste body
package vitalvinyl.inventory.action.order;import org.apache.log4j.Logger;import vitalvinyl.inventory.action.BaseAction;import vitalvinyl.model.order.*;import vitalvinyl.model.media.Media;import vitalvinyl.model.item.Item;import vitalvinyl.model.item.ItemDAOFactory;import vitalvinyl.model.gear.Gear;import vitalvinyl.model.promotion.TicketEvent;import vitalvinyl.model.person.Customer;import vitalvinyl.model.person.PersonDAOFactory;import vitalvinyl.model.usps.USPS;import vitalvinyl.model.usps.USPSRate;import vitalvinyl.model.shoppingcart.ShippingMethod;import vitalvinyl.model.ups.UPS;import vitalvinyl.model.ups.UPSRate;import vitalvinyl.Constants;import vitalvinyl.manager.customer.CustomerManager;import vitalvinyl.manager.customer.CustomerManagerFactory;import vitalvinyl.manager.order.OrderManager;import vitalvinyl.manager.order.OrderManagerFactory;import java.util.*;import webwork.action.ServletActionContext;/** * Created by IntelliJ IDEA. * User: mrblaq * Date: Apr 2, 2007 * Time: 7:37:43 PM * To change this template use File | Settings | File Templates. */public class ViewOrder extends BaseAction {    private static final Logger logger = Logger.getLogger(ViewOrder.class);    private long ID;    private long purchaseItemID;    public Order order = null;    protected List mediaItems;    protected List gearItems;    protected List ticketItems;    public String upsTrackingNumber;    protected Enumeration parameterNames;    public Customer customer;     public String doDefault() {        logger.debug("execute - start");        try {            loadOrder();        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("execute - end");        }        return SUCCESS;     }    public void loadOrder() {        try {            // load up factory implementation            OrderDAO dao = OrderDAOFactory.getDAO();            // set the load object            order = dao.findOrderByID(ID);            mediaItems = new ArrayList();            gearItems = new ArrayList();            ticketItems = new ArrayList();            // loop the item assigned to the order            for (Iterator itr = order.getItems().iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                Item inventoryItem = purchaseItem.getItem();                // put the item into the gear bucket                if (inventoryItem instanceof Gear) {                    gearItems.add(purchaseItem);                }                // put the item into the media bucket                if (inventoryItem instanceof Media) {                    mediaItems.add(purchaseItem);                }                // put the item into the media bucket                if (inventoryItem instanceof TicketEvent) {                    ticketItems.add(purchaseItem);                }            }        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("execute - end");        }    }    public String doShipSelected() {        try {            loadOrder();            parameterNames = ServletActionContext.getRequest().getParameterNames();            double tempWeight = 0.0;            // find each form variable that..            while (parameterNames.hasMoreElements()) {                String parameterName = (String) parameterNames.nextElement();                //.. matches cartLineQuantity                if (parameterName.matches("(itemCheckbox){1}\\d+")) {                    //get the int number of that cartLineQuantity's list ID                    String number = parameterName.substring(("itemCheckbox").length());                    //get the quantity as entered in the UI form                    String checked = ServletActionContext.getRequest().getParameter("itemCheckbox" + number);                    for (Iterator itr = order.getItems().iterator(); itr.hasNext();) {                        PurchaseItem purchaseItem = (PurchaseItem) itr.next();                        // if we've found the right shoppingCartLineItem, set it's shipping Type and quantity.                        if (purchaseItem.getID() == Integer.parseInt(number)) {                            if (purchaseItem.isInstore()) {                                purchaseItem.setOnlineStatus(Constants.ORDER_LINE_ITEM_STATUS_PICK_UP);                            } else {                                purchaseItem.setOnlineStatus(Constants.ORDER_LINE_ITEM_STATUS_SHIPPED);                            }                            tempWeight = tempWeight + purchaseItem.getItem().getWeight();                        }                    }                }            }            Shipment shipment = new Shipment();            shipment.setShippingAddress(order.getShippingAddress());            shipment.setShippingMethod(order.getShippingMethod());            shipment.setConception(new Date());            shipment.setResidential(1);            shipment.setStatus(Constants.ORDER_SHIPMENT_STATUS_TO_BE_SHIPPED);            shipment.setWeight(tempWeight);            order.getShipments().add(shipment);            order.setOnlineStatus(Constants.ORDER_ONLINE_STATUS_PROCESSING);            OrderDAO dao = OrderDAOFactory.getDAO();            dao.update(order);        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("execute - end");        }        return SUCCESS;    }    public String doCancelItem() {        try {            loadOrder();            for (Iterator itr = order.getItems().iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                if (purchaseItem.getID() == purchaseItemID) {                    purchaseItem.setOnlineStatus(Constants.ORDER_LINE_ITEM_STATUS_CANCELLED);                    order.setOnlineStatus(Constants.ORDER_ONLINE_STATUS_PROCESSING);                    OrderDAOFactory.getDAO().update(order);                    refreshShippingPrice();                }            }        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("execute - end");        }        return SUCCESS;    }    public String doRestoreItem() {        try {            loadOrder();            for (Iterator itr = order.getItems().iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                if (purchaseItem.getID() == purchaseItemID) {                    purchaseItem.setOnlineStatus(Constants.ORDER_LINE_ITEM_STATUS_NEW);                    order.setOnlineStatus(Constants.ORDER_ONLINE_STATUS_PROCESSING);                    OrderDAOFactory.getDAO().update(order);                    refreshShippingPrice();                }            }        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("execute - end");        }        return SUCCESS;    }    public String doRequestItem() {        try {            loadOrder();            loadCustomer();            for (Iterator itr = order.getItems().iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                if (purchaseItem.getID() == purchaseItemID) {                    purchaseItem.setOnlineStatus(Constants.ORDER_LINE_ITEM_STATUS_REQUEST);                    customer.getSpecialRequests().add(purchaseItem.getItem());                    PersonDAOFactory.getDAO().update(customer);                    order.setOnlineStatus(Constants.ORDER_ONLINE_STATUS_PROCESSING);                    OrderDAOFactory.getDAO().update(order);                    refreshShippingPrice();                }            }        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("execute - end");        }        return SUCCESS;    }    public String doCloseOrder() {        try {            loadOrder();            //look for any items that havn't been shipped or cancelled,  if so, we need to error back and have the meployee deal with it first            for (Iterator itr = order.getItems().iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                if (purchaseItem.getOnlineStatus() == Constants.ORDER_LINE_ITEM_STATUS_NEW) {                    addErrorMessage("There are still items pending action");                    return ERROR;                }            }            //try to charge previous authorize, if fail, throw error and don't close.            for (Iterator itr = order.getPayments().iterator(); itr.hasNext();) {                Payment payment = (Payment) itr.next();                //only capture credit cards (duh)                if (payment.getCreditAmount() > 0) {                    OrderManager manager = OrderManagerFactory.getManager();                    //process card, if error, it's thrown to the catch. yay?                    manager.captureCreditCard(order, payment);                }            }            //mark shipments as fully processed, set order status to processed, save order.            for (Iterator itr = order.getShipments().iterator(); itr.hasNext();) {                Shipment shipment = (Shipment) itr.next();                shipment.setStatus(Constants.ORDER_SHIPMENT_STATUS_SHIPPED);            }            //order is processed (closed)            order.setOnlineStatus(Constants.ORDER_ONLINE_STATUS_PROCESSED);            if (getHasErrors() || getHasErrorMessages()) {                return ERROR;            }            OrderDAOFactory.getDAO().update(order);            //a little inventory updating here...            for (Iterator itr = order.getItems().iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                Item item = purchaseItem.getItem();                item.setQuantity(item.getQuantity() - 1);                ItemDAOFactory.getDAO().update(item);            }        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());            return ERROR;        } finally {            logger.debug("execute - end");        }        return SUCCESS;    }    public void refreshShippingPrice() {        try {            loadOrder();            order.setEstimatedWeight(order.calculateWeight());            List tempList = new ArrayList(0);            //TODO, these are returning nothing.            tempList.addAll(getUpsShippingQuotes());            tempList.addAll(getUspsShippingQuotes());            boolean newQuoteAvailable = false;            for (Iterator itr = tempList.iterator(); itr.hasNext();) {                ShippingMethod shippingMethod = (ShippingMethod) itr.next();                if (shippingMethod.getShippingMethodTypeID() == order.getShippingMethod().getShippingMethodTypeID()) {                    order.setShippingMethod(shippingMethod);                    OrderDAOFactory.getDAO().update(order);                    newQuoteAvailable = true;                }            }            if (!newQuoteAvailable) {                addErrorMessage("No new shipping quote available");            }        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("setUsername - end");        }    }    protected void loadCustomer() {        logger.debug("setUsername - end");        try {            loadOrder();            CustomerManager customerManager = CustomerManagerFactory.getManager();            customer = customerManager.findCustomerByName(order.getCustomer().getUsername());        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("setUsername - end");        }    }    //Get any applicable UPS and USPS shipping methods, store them to a list and save to the shopping Cart    public List getUspsShippingQuotes() {        logger.debug("getUspsShippingQuotes - start");        List shippingQuotes = new ArrayList(0);        List uspsShippingRates;        boolean doAdd = false;        try {            if (order.getShippingAddress() != null) {                String zipCode = order.getShippingAddress().getZipcode();                String country = order.getShippingAddress().getCountry().getName();                double weight = order.calculateWeight();                int pounds = (int) Math.floor(weight);                int ounces = (int) Math.floor((weight - pounds) * 16);                USPS usps = new USPS();                uspsShippingRates = usps.getUPSRatesV2("55403", zipCode,                    country, pounds, ounces, "1", "0",                    "0", "0", 0);                for (Iterator itr = uspsShippingRates.iterator(); itr.hasNext();) {                    USPSRate uspsRate = (USPSRate) itr.next();                    String tempService = "";                    int tempShippingMethodID = 0;                    if (uspsRate.getName().equals("First-Class Mail")) {                        doAdd = true;                        tempService = getText("SVC_METHOD_USPS_FIRST_CLASS_MAIL");                        tempShippingMethodID = Constants.SHIPPING_METHOD_USPS_FIRST_CLASS_MAIL;                    } else if (uspsRate.getName().equals("Parcel Post")) {                        doAdd = true;                        tempService = getText("SVC_METHOD_USPS_PARCEL_POST");                        tempShippingMethodID = Constants.SHIPPING_METHOD_USPS_PARCEL_POST;                    } else if (uspsRate.getName().equals("Airmail Letter Post")) {                        doAdd = true;                        tempService = getText("SVC_METHOD_USPS_AIRMAIL_LETTER_POST");                        tempShippingMethodID = Constants.SHIPPING_METHOD_USPS_AIRMAIL_LETTER_POST;                    } else if (uspsRate.getName().equals("Airmail Parcel Post")) {                        doAdd = true;                        tempService = getText("SVC_METHOD_USPS_AIRMAIL_PARCEL_POST");                        tempShippingMethodID = Constants.SHIPPING_METHOD_USPS_AIRMAIL_PARCEL_POST;                    }                    if (doAdd) {                        ShippingMethod shippingMethod = new ShippingMethod();                        shippingMethod.setName(tempService);                        shippingMethod.setCost(uspsRate.getPrice());                        shippingMethod.setShippingMethodTypeID(tempShippingMethodID);                        shippingQuotes.add(shippingMethod);                        doAdd = false;                    }                }            }            return shippingQuotes;        } catch (Exception e) {            logger.debug(e.getMessage(), e);        } finally {            logger.debug("getUspsShippingQuotes - end");        }        return shippingQuotes;    }    //Get any applicable UPS and USPS shipping methods, store them to a list and save to the shopping Cart    public List getUpsShippingQuotes() {        logger.debug("getUpsShippingQuotes - start");        List shippingQuotes = new ArrayList(0);        List upsShippingRates = new ArrayList(0);        try {            if (order.getShippingAddress() != null) {                String zipCode = order.getShippingAddress().getZipcode();                String country = order.getShippingAddress().getCountry().getAbbreviation();                double weight = order.calculateWeight();                UPS ups = new UPS();                upsShippingRates = ups.getUPSRates("55403", zipCode,                    country, weight, "1", "0",                    "0", "0", 0);                for (Iterator itr = upsShippingRates.iterator(); itr.hasNext();) {                    UPSRate upsRate = (UPSRate) itr.next();                    String tempService = "";                    int tempShippingMethodID = 0;                    if (upsRate.getServiceType() == Constants.SVC_METHOD_GROUND                            || upsRate.getServiceType() == Constants.SVC_METHOD_SECOND_DAY_AIR                            || upsRate.getServiceType() == Constants.SVC_METHOD_NEXT_DAY_AIR) {                        switch (upsRate.getServiceType()) {                            case Constants.SVC_METHOD_GROUND:                                tempService = getText("SVC_METHOD_GROUND");                                tempShippingMethodID = Constants.SHIPPING_METHOD_UPS_GROUND;                                break;                            case Constants.SVC_METHOD_NEXT_DAY_AIR:                                tempService = getText("SVC_METHOD_NEXT_DAY_AIR");                                tempShippingMethodID = Constants.SHIPPING_METHOD_UPS_NEXT_DAY_AIR;                                break;                            case Constants.SVC_METHOD_SECOND_DAY_AIR:                                tempService = getText("SVC_METHOD_SECOND_DAY_AIR");                                tempShippingMethodID = Constants.SHIPPING_METHOD_UPS_SECOND_DAY_AIR;                                break;                        }                        ShippingMethod shippingMethod = new ShippingMethod();                        shippingMethod.setName(tempService);                        shippingMethod.setEstimatedDeliveryDate(upsRate.getShipDays());                        shippingMethod.setCost(upsRate.getPrice());                        shippingMethod.setShippingMethodTypeID(tempShippingMethodID);                        shippingMethod.setUpsServiceID(upsRate.getServiceType());                        shippingQuotes.add(shippingMethod);                    }                }            }            return shippingQuotes;        } catch (Exception e) {            logger.debug(e.getMessage(), e);        } finally {            logger.debug("getUpsShippingQuotes - end");        }        return shippingQuotes;    }    public Order getOrder() {        return order;    }    public void setOrder(Order order) {        this.order = order;    }    public long getID() {        return ID;    }    public void setID(long ID) {        this.ID = ID;    }    public List getMediaItems() {        if (mediaItems == null) {            mediaItems = new ArrayList(0);        }        return mediaItems;    }    public void setMediaItems(List mediaItems) {        this.mediaItems = mediaItems;    }    public List getGearItems() {        if (gearItems == null) {            gearItems = new ArrayList(0);        }        return gearItems;    }    public void setGearItems(List gearItems) {        this.gearItems = gearItems;    }    public List getTicketItems() {        if (ticketItems == null) {            ticketItems = new ArrayList(0);        }        return ticketItems;    }    public void setTicketItems(List ticketItems) {        this.ticketItems = ticketItems;    }    public String getUpsTrackingNumber() {        return upsTrackingNumber;    }    public void setUpsTrackingNumber(String upsTrackingNumber) {        this.upsTrackingNumber = upsTrackingNumber;    }    public long getPurchaseItemID() {        return purchaseItemID;    }    public void setPurchaseItemID(long purchaseItemID) {        this.purchaseItemID = purchaseItemID;    }    public Customer getCustomer() {        return customer;    }    public void setCustomer(Customer customer) {        this.customer = customer;    }    public Enumeration getParameterNames() {        return parameterNames;    }    public void setParameterNames(Enumeration parameterNames) {        this.parameterNames = parameterNames;    }}