KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cms > product > action > ReviewOrderAction


1 package com.dotmarketing.cms.product.action;
2
3
4 import java.util.List JavaDoc;
5
6 import javax.servlet.http.HttpServletRequest JavaDoc;
7 import javax.servlet.http.HttpServletResponse JavaDoc;
8 import javax.servlet.http.HttpSession JavaDoc;
9
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping;
13 import org.apache.struts.actions.DispatchAction;
14
15 import com.dotmarketing.cms.product.model.Holder;
16 import com.dotmarketing.cms.product.model.ShoppingCart;
17 import com.dotmarketing.portlets.discountcode.model.DiscountCode;
18 import com.dotmarketing.portlets.order_manager.struts.OrderForm;
19 import com.dotmarketing.portlets.product.model.ProductFormat;
20 import com.dotmarketing.portlets.product.model.ProductPrice;
21 import com.dotmarketing.util.CalculateShippingAndHandling;
22 import com.dotmarketing.util.Config;
23 import com.dotmarketing.util.UtilMethods;
24 import com.dotmarketing.util.WebKeys;
25 import com.dotmarketing.viewtools.ProductWebAPI;
26
27 public class ReviewOrderAction extends DispatchAction
28 {
29     protected ActionForward unspecified(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc
30     {
31         ActionForward af = mapping.findForward("reviewOrder");
32         return af;
33     }
34     
35     public ActionForward loadAmounts(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc
36     {
37         HttpSession JavaDoc session = request.getSession();
38         //Is Partner
39
boolean isPartner = false;
40         if (session.getAttribute("isPartner") != null &&
41             session.getAttribute("isPartner").equals("true"))
42         {
43             isPartner = true;
44         }
45         
46         OrderForm orderForm =(OrderForm) lf;
47         
48         ShoppingCart shoppingCart = (ShoppingCart)session.getAttribute(WebKeys.SHOPPING_CART);
49         if (shoppingCart == null)
50         {
51             shoppingCart = new ShoppingCart();
52             session.setAttribute(WebKeys.SHOPPING_CART,shoppingCart);
53         }
54         List JavaDoc<Holder> holders = shoppingCart.getHolders();
55         List JavaDoc<DiscountCode> discounts = shoppingCart.getDiscountCodes();
56         //Calculate the price each and the subTotals by holder
57
float orderSubTotal = 0F;
58         for(Holder holder : holders)
59         {
60             ProductFormat format = holder.getFormat();
61             int quantity = holder.getQuantity();
62             ProductPrice productPrice = format.getQuantityPrice(quantity,discounts);
63             float price = (isPartner) ? productPrice.getPartnerPrice() : productPrice.getRetailPrice();
64             //float price = (isPartner) ? productPrice.getPartnerPriceWithDiscount() : productPrice.getRetailPriceWithDiscount();
65
holder.setPrice(price);
66             float lineTotal = quantity * price;
67             orderSubTotal += lineTotal;
68             holder.setLineTotal(lineTotal);
69         }
70         orderForm.setOrderSubTotal(orderSubTotal);
71         String JavaDoc discountCodes = "";
72         for(DiscountCode discount : discounts)
73         {
74             discountCodes += discount.getCodeId() + ":";
75         }
76         if (UtilMethods.isSet(discountCodes))
77         {
78             discountCodes = discountCodes.substring(0,discountCodes.lastIndexOf(":"));
79         }
80         
81         orderForm.setDiscountCodes(discountCodes);
82         
83         //Discount
84
float orderDiscount = 0;
85         ProductWebAPI pwa = new ProductWebAPI();
86         orderDiscount = pwa.getTotalApplicableDiscount(holders,discounts,isPartner);
87         orderForm.setOrderDiscount(orderDiscount);
88         
89         //SubTotal - Discount
90
float orderSubTotalDiscount = orderSubTotal - orderDiscount;
91         orderSubTotalDiscount = (orderSubTotalDiscount < 0 ? 0 : orderSubTotalDiscount);
92         orderForm.setOrderSubTotalDiscount(orderSubTotalDiscount);
93         //float orderSubTotalDiscount = orderSubTotal;
94
orderForm.setOrderSubTotalDiscount(orderSubTotalDiscount);
95         //Tax
96
float orderTax = 0;
97         if (orderForm.getBillingState() != null){
98         if (orderForm.getBillingState().equals("FL") && !UtilMethods.isSet(orderForm.getTaxExemptNumber()))
99         {
100             orderTax = ((float) Math.round(orderSubTotalDiscount * 6.5)) / ((float) 100);
101         }
102         }
103         orderForm.setOrderTax(orderTax);
104         
105         //Shipping
106
float orderShippingValue = _shippingValue(mapping,lf,request,response);
107         orderForm.setOrderShipping(orderShippingValue);
108
109         // is shiping ZERO!
110
if (orderForm.getShippingCountry() != null){
111                 if (!(orderForm.getShippingCountry().equals(Config.getStringProperty("DEFAULT_COUNTRY_CODE")))){
112                     orderForm.setIsShippingZero(true);
113                 }
114         }
115         else
116             orderForm.setIsShippingZero(_calculateShipping(mapping,lf,request,response));
117         
118         //Total
119
float orderTotal = orderSubTotalDiscount + orderTax + orderShippingValue;
120         orderForm.setOrderTotal(orderTotal);
121         
122         //Generate the Token
123
generateToken(request);
124         saveToken(request);
125         
126         ActionForward af = mapping.findForward("reviewOrder");
127         return af;
128     }
129     
130     public ActionForward validate(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc
131     {
132         return loadAmounts(mapping,lf,request,response);
133     }
134     
135     
136     private float _shippingValue(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc
137     {
138         OrderForm orderForm = (OrderForm) lf;
139         float shippingValue = 0;
140         
141         ShoppingCart shoppingCart = (ShoppingCart) request.getSession().getAttribute(WebKeys.SHOPPING_CART);
142         if (orderForm.getShippingCountry() != null){
143             if (orderForm.getShippingCountry().equals(Config.getStringProperty("DEFAULT_COUNTRY_CODE")))
144                 shippingValue = CalculateShippingAndHandling.calculateShippingAndHandling(shoppingCart, orderForm.getOrderShipType(),orderForm.getShippingZip());
145             else
146             {
147                 shippingValue = CalculateShippingAndHandling.calculateHandling(shoppingCart);
148                 orderForm.setIsShippingZero(true);
149             }
150         }
151         else
152             shippingValue = CalculateShippingAndHandling.calculateShippingAndHandling(shoppingCart, orderForm.getOrderShipType(), orderForm.getShippingZip());
153         
154         return shippingValue;
155     }
156     
157     private boolean _calculateShipping(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc
158     {
159         OrderForm orderForm = (OrderForm) lf;
160         float shippingValue = 0;
161         boolean retVal = false;
162         
163         ShoppingCart shoppingCart = (ShoppingCart) request.getSession().getAttribute(WebKeys.SHOPPING_CART);
164         shippingValue = CalculateShippingAndHandling.calculateShipping(shoppingCart, orderForm.getOrderShipType(), orderForm.getShippingZip());
165         
166         if (shippingValue == 0.0)
167             retVal = true;
168         return retVal;
169     }
170 }
171
Popular Tags