Subversion Repositories SmartDukaan

Rev

Rev 484 | Blame | Last modification | View Log | RSS feed

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

import java.util.ArrayList;
import java.util.Date;

import in.shop2020.hotspot.dashbaord.shared.actions.AcceptOrderResponse;
import in.shop2020.hotspot.dashbaord.shared.actions.BillOrderRequest;
import in.shop2020.hotspot.dashbaord.shared.actions.BillOrderResponse;
import in.shop2020.hotspot.dashbaord.shared.actions.Order;
import in.shop2020.model.v1.order.Billing;
import in.shop2020.model.v1.order.BillingInfo;
import in.shop2020.model.v1.order.OrderStatus;
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 BillOrderHandler implements ActionHandler<BillOrderRequest, BillOrderResponse>{

        @Override
        public BillOrderResponse execute(BillOrderRequest request,
                        ExecutionContext context) throws ActionException {
                try{
                        TransactionServiceClient client = new TransactionServiceClient();
                        Client c = client.getClient();
                        
                        in.shop2020.model.v1.order.Order t_order = c.getOrder(request.getOrder().getOrderId());
                                                
                        if(t_order.getStatus() == OrderStatus.BILLED || t_order.getStatus() == OrderStatus.SHIPPED_FROM_WH || t_order.getStatus() == OrderStatus.SHIPPED_TO_LOGST){
                                return new BillOrderResponse(request.getOrder(), false, "Already Billed");
                        }
                        //TODO more checking and update of billing
                        if(!c.addBillingDetails(request.getOrder().getOrderId(), request.getBillNumber(), request.getCreatedBy())){
                                return new BillOrderResponse(request.getOrder(), false, "Not able to do billing. Contact admin.");
                        }
                        
                        c.changeOrderStatus(request.getOrder().getOrderId(), OrderStatus.BILLED, "Billno: "+request.getBillNumber()+" createdby: "+request.getCreatedBy());
                        return new BillOrderResponse(request.getOrder(), true, "Billed sucessfully");
                                                
                }catch(Exception e){
                        System.out.println(e);
                }
                
                return null;
        }

        @Override
        public Class<BillOrderRequest> getActionType() {
                // TODO Auto-generated method stub
                return BillOrderRequest.class;
        }

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

}