Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package in.shop2020.hotspot.dashbaord.server.handler;

import java.util.Date;

import in.shop2020.hotspot.dashbaord.shared.actions.BillOrderResponse;
import in.shop2020.hotspot.dashbaord.shared.actions.RejectOrderRequest;
import in.shop2020.hotspot.dashbaord.shared.actions.RejectOrderResponse;
import in.shop2020.hotspot.dashbaord.shared.actions.ShipOrderRequest;
import in.shop2020.hotspot.dashbaord.shared.actions.ShipOrderResponse;
import in.shop2020.model.v1.order.Billing;
import in.shop2020.model.v1.order.Order;
import in.shop2020.model.v1.order.OrderStatus;
import in.shop2020.model.v1.order.Shipment;
import in.shop2020.model.v1.order.ShipmentStatus;
import in.shop2020.model.v1.order.Transaction;
import in.shop2020.model.v1.order.TransactionStatus;
import in.shop2020.model.v1.order.TransactionService.Client;
import in.shop2020.thrift.clients.TransactionServiceClient;
import net.customware.gwt.dispatch.server.ActionHandler;
import net.customware.gwt.dispatch.server.ExecutionContext;
import net.customware.gwt.dispatch.shared.ActionException;

public class RejectOrderHandler implements ActionHandler<RejectOrderRequest, RejectOrderResponse>{

        @Override
        public RejectOrderResponse execute(RejectOrderRequest request,
                        ExecutionContext context) throws ActionException {
                
                if(request.isInfoRequest()){
                        try{
                                TransactionServiceClient client = new TransactionServiceClient();
                                Client c = client.getClient();
                                Order t_order = c.getOrder(request.getOrder().getOrderId());
                                
                                if(t_order.getStatus() == OrderStatus.REJECTED){
                                        return new RejectOrderResponse(request.getOrder(), false, "Already rejected", request.isInfoRequest());
                                }

                                //TODO
                                
                                c.changeOrderStatus(request.getOrder().getOrderId(), OrderStatus.REJECTED, request.getRejectReason());
                                return new RejectOrderResponse(request.getOrder(), true, "Order has been rejected sucessfully", request.isInfoRequest());
                                
                        }catch(Exception e){
                                System.out.println(e);
                        }
                        return null;
                }
                return null;
        }
        
        /*
        @Override
        public ShipOrderResponse execute(ShipOrderRequest request,
                        ExecutionContext context) throws ActionException {
                
                if(request.isInfoRequest()){
                
                        try{
                                TransactionServiceClient client = new TransactionServiceClient();
                                Client c = client.getClient();
                                Transaction t = c.getTransaction(request.getOrder().getTransactionId());
                                
                                
                                if(t.getShipmentInfo() == null){
                                        return new ShipOrderResponse(request.getOrder(), false, "Already shipped", request.isInfoRequest());
                                        
                                }else{
                                        if(t.getShipmentInfo().getShipments() == null){
                                                return new ShipOrderResponse(request.getOrder(), false, "Already shipped", request.isInfoRequest());
                                        }
                                        
                                        if(t.getShipmentInfo().getShipments().size() == 0){
                                                return new ShipOrderResponse(request.getOrder(), false, "Already shipped", request.isInfoRequest());
                                        }
                                }
                                
                                
                                if(t.getTransactionStatus() == TransactionStatus.SHIPPED){
                                        return new ShipOrderResponse(request.getOrder(), false, "Already Shipped", request.isInfoRequest());
                                }
                                
                                if(c.setShippingTracker(request.getOrder().getTransactionId(), t.getShipmentInfo().getShipments().get(0).getId(), request.getTracker(), request.getAirwayBillNo(), request.getProvider())){
                                        return new ShipOrderResponse(request.getOrder(), true, "Added shipping info", request.isInfoRequest());
                                }
                                
                        }catch(Exception e){
                                System.out.println(e);
                        }
                        
                
                        return null;
                }else{
                        try{
                                TransactionServiceClient client = new TransactionServiceClient();
                                Client c = client.getClient();
                                Transaction t = c.getTransaction(request.getOrder().getTransactionId());
                                
                                
                                if(t.getShipmentInfo() == null){
                                        return new ShipOrderResponse(request.getOrder(), false, "Already shipped", request.isInfoRequest());
                                        
                                }else{
                                        if(t.getShipmentInfo().getShipments() == null){
                                                return new ShipOrderResponse(request.getOrder(), false, "Already shipped", request.isInfoRequest());
                                        }
                                        
                                        if(t.getShipmentInfo().getShipments().size() == 0){
                                                return new ShipOrderResponse(request.getOrder(), false, "Already shipped", request.isInfoRequest());
                                        }
                                }
                                
                                
                                if(t.getTransactionStatus() == TransactionStatus.SHIPPED){
                                        return new ShipOrderResponse(request.getOrder(), false, "Already Shipped", request.isInfoRequest());
                                }
                                
                                //change status
                                c.setShippingDate(request.getOrder().getTransactionId(), t.getShipmentInfo().getShipments().get(0).getId(), new Date().getTime());
                                c.changeShippingStatus(request.getOrder().getTransactionId(), t.getShipmentInfo().getShipments().get(0).getId(), ShipmentStatus.SHIPPED, "Shipment has been shipped");
                                c.changeTransactionStatus(request.getOrder().getTransactionId(), TransactionStatus.SHIPPED, "Order has been shipped");
                                return new ShipOrderResponse(request.getOrder(), true, "Order has been shipped sucessfully", request.isInfoRequest());
                                
                        }catch(Exception e){
                                System.out.println(e);
                        }
                        
                
                        return null;
                
                }
        }
*/
        @Override
        public Class<RejectOrderRequest> getActionType() {
                // TODO Auto-generated method stub
                return RejectOrderRequest.class;
        }

        @Override
        public void rollback(RejectOrderRequest arg0, RejectOrderResponse arg1,
                        ExecutionContext arg2) throws ActionException {
                // TODO Auto-generated method stub
                
        }

}