Subversion Repositories SmartDukaan

Rev

Rev 10177 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * 
 */
package in.shop2020.inventory.controllers;

import in.shop2020.model.v1.inventory.Warehouse;
import in.shop2020.thrift.clients.CatalogClient;
import in.shop2020.thrift.clients.InventoryClient;
import in.shop2020.thrift.clients.WarehouseClient;
import in.shop2020.utils.ModelUtils;
import in.shop2020.warehouse.InventoryItem;
import in.shop2020.warehouse.Scan;
import in.shop2020.warehouse.ScanType;
import in.shop2020.warehouse.WarehouseService.Client;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @author mandeep
 *
 */
public class DoaInController extends BaseController {
    private Log logger = LogFactory.getLog(DoaInController.class);
    private List<InventoryItem> inventoryItems;
    private String id;
    private String output;

    public String index() {
        try {
                List<InventoryItem> tobeRemovedInventoryItems = new ArrayList<InventoryItem>();
            Client warehouseClient = new WarehouseClient().getClient();
            inventoryItems = warehouseClient.getInventoryItemsFromLastScanType(ScanType.DOA_IN);
            for(InventoryItem inventoryItem:inventoryItems) {
                if(inventoryItem.getId()<47129 ||  
                                inventoryItem.getCurrentWarehouseId() == 1 || 
                                inventoryItem.getCurrentWarehouseId() == 9) {//removing doa_in entries before 2013 and all hotspot entries
                        tobeRemovedInventoryItems.add(inventoryItem);
                }
            }
            for(InventoryItem inventoryItem:tobeRemovedInventoryItems) {
                inventoryItems.remove(inventoryItem);
            }
        } catch (Exception e) {
            logger.error("Could not fetch inventory items", e);
        }

        return INDEX;
    }

    public String update() {
        try {
            Client warehouseClient = new WarehouseClient().getClient();
            InventoryItem inventoryItem = warehouseClient.getInventoryItemFromId(Long.valueOf(id));
            in.shop2020.model.v1.inventory.InventoryService.Client inventoryClient = new InventoryClient().getClient();
            Warehouse warehouse = inventoryClient.getWarehouse(inventoryItem.getCurrentWarehouseId());
            warehouseClient.scan(inventoryItem, ScanType.DOA_OUT, 1, warehouse.getBillingWarehouseId(), 0);
        } catch (Exception e) {
            logger.error("Could not fetch inventory items", e);
        }

        return index();
    }

    public String getWarehouseDisplayName(long warehouseId) {
        try {
            in.shop2020.model.v1.inventory.InventoryService.Client inventoryClient = new InventoryClient().getClient();
            return inventoryClient.getWarehouse(warehouseId).getDisplayName();
        } catch (Exception e) {
            return "N/A";
        }
    }
    
    public String getModelName(long itemId) {
        try {
            in.shop2020.model.v1.catalog.CatalogService.Client catalogClient = new CatalogClient()
                    .getClient();
            return ModelUtils.extractProductNameFromItem(catalogClient
                    .getItem(itemId));
        } catch (Exception e) {
            return "N/A";
        }
    }
    
    public String getOrderIdDOAInItem(){
        try{
                Client warehouseClient = new WarehouseClient().getClient();
                List<Scan> scanList = warehouseClient.getScansForInventoryItem(Long.valueOf(id), ScanType.DOA_IN);
                Scan lastScan = scanList.get(scanList.size()-1);
                SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String doaInOrderIdDiv = "<div id = 'doa-in-order-id-div' align='center'><table id = 'doa-in-order-id-table'><tr><th>OrderId</th><th>DOA-In Time</th></tr>";
                doaInOrderIdDiv = doaInOrderIdDiv + "<tr><td>" + lastScan.getOrderId()+ "</td><td>" + df.format(new Date(lastScan.getScannedAt())) +"</td></tr></table></div>";
                setOutput(doaInOrderIdDiv);
        } catch(Exception e){
                logger.error("Error while getting order Id for DOA In item", e);
        }
        return OUTPUT;
    }

    public Log getLogger() {
        return logger;
    }

    public void setLogger(Log logger) {
        this.logger = logger;
    }

    public List<InventoryItem> getInventoryItems() {
        return inventoryItems;
    }

    public void setInventoryItems(List<InventoryItem> inventoryItems) {
        this.inventoryItems = inventoryItems;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

        public String getOutput() {
                return output;
        }

        public void setOutput(String output) {
                this.output = output;
        }
}