Subversion Repositories SmartDukaan

Rev

Rev 966 | Rev 2209 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.hotspot.dashbaord.server;

import in.shop2020.hotspot.dashbaord.shared.actions.Order;
import in.shop2020.hotspot.dashbaord.shared.actions.OrderType;
import in.shop2020.model.v1.order.Alert;
import in.shop2020.model.v1.order.LineItem;
import in.shop2020.model.v1.order.OrderStatus;
import in.shop2020.model.v1.order.TransactionService.Client;
import in.shop2020.thrift.clients.TransactionServiceClient;

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

public class TransactionUtils {
        public static List<Order> getOrders(OrderType type, long warehouseId){
                List<OrderStatus> statuses = new ArrayList<OrderStatus>();
                
                switch (type) {
                case ACCEPTED:
                        statuses.add(OrderStatus.ACCEPTED);
                        break;

                case ALL:
                        break;

                case NEW:
                        statuses.add(OrderStatus.SUBMITTED_FOR_PROCESSING);
                        statuses.add(OrderStatus.INVENTORY_LOW);
                        break;

                case BILLED:
                        statuses.add(OrderStatus.BILLED);
                        break;

                case NO_STOCK:
                        statuses.add(OrderStatus.INVENTORY_LOW);
                        break;
                        
                case REJECTED:
                        statuses.add(OrderStatus.REJECTED);
                        break;
                
                case SHIPPED:
                        statuses.add(OrderStatus.SHIPPED_FROM_WH);
                        statuses.add(OrderStatus.SHIPPED_TO_LOGST);
                        break;

                default:
                        break;
                }
                
                
                List<Order> orders = new ArrayList<Order>();
                try{
                        TransactionServiceClient client = new TransactionServiceClient();
                        Client c = client.getClient();
                        
                        List<in.shop2020.model.v1.order.Order> t_orders = new ArrayList<in.shop2020.model.v1.order.Order>();
                        if(statuses.isEmpty()){
                                t_orders.addAll(c.getAllOrders(null, 0L, new Date().getTime(), warehouseId));
                        }
                        else {
                                for(OrderStatus status: statuses){
                                        t_orders.addAll(c.getAllOrders(status, 0L, new Date().getTime(), warehouseId));
                                }
                        }
                        
                        for (in.shop2020.model.v1.order.Order t_order: t_orders){
                                Order o = getOrderFromThriftOrder(t_order);

                                orders.add(o);
                                //check if it has an associated alert
                                List<Alert> alerts = c.getAlerts(t_order.getId(), true);
                                if(alerts != null){
                                        if (alerts.size() != 0){
                                                o.setAlert(true);
                                                o.setStatusMessage(alerts.iterator().next().getComment());
                                        }
                                }else{
                                        o.setAlert(false);
                                }
                        }
                }catch(Exception e){
                        System.out.println(e);
                }
                return orders;
        }

        public static boolean markOrdersAsManifested(long warehouseId, String providerId){
                try {
                        long provider_id = Long.parseLong(providerId);
                        TransactionServiceClient client = new TransactionServiceClient();
                        Client c = client.getClient();
                        return c.markOrdersAsManifested(warehouseId, provider_id);
                }catch(Exception e){
                        e.printStackTrace();
                        return false;
                }
        }
        
        /**
         * @param t_order
         * @return
         */
        public static Order getOrderFromThriftOrder(in.shop2020.model.v1.order.Order t_order) {
                LineItem lineItem = t_order.getLineitems().get(0);
                Order order = new Order(t_order.getId(),
                                t_order.getCustomer_id(),
                                t_order.getCustomer_name(),
                                t_order.getCustomer_mobilenumber(),
                                t_order.getCustomer_pincode(),
                                t_order.getCustomer_address1(),
                                t_order.getCustomer_address2(),
                                t_order.getCustomer_city(),
                                t_order.getCustomer_state(),
                                t_order.getCustomer_email(),
                                t_order.getCreated_timestamp(),
                                t_order.getExpected_delivery_time(),
                                t_order.getStatus().getValue(),
                                t_order.getStatusDescription(),
                                lineItem.getItem_id(),
                                lineItem.getProductGroup(),
                                lineItem.getBrand(),
                                lineItem.getModel_name(),
                                lineItem.getModel_number(),
                                lineItem.getColor(),
                                lineItem.getExtra_info(),
                                t_order.getTotal_amount(), t_order.getTotal_weight(), t_order.getAirwaybill_no(),
                                t_order.getBilled_by(), t_order.getInvoice_number(), t_order.getJacket_number(),
                                t_order.getBatchNo(), t_order.getSerialNo(),
                                false);
                return order;
        }

}