Subversion Repositories SmartDukaan

Rev

Rev 9429 | Rev 10308 | Go to most recent revision | 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.PurchaseClient;
import in.shop2020.thrift.clients.WarehouseClient;
import in.shop2020.utils.ModelUtils;
import in.shop2020.warehouse.InventoryItem;
import in.shop2020.warehouse.ScanType;
import in.shop2020.warehouse.WarehouseService.Client;

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

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

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

    public String index() {
        try {
                //List<InventoryItem> tobeRemovedInventoryItems = new ArrayList<InventoryItem>();
            Client warehouseClient = new WarehouseClient().getClient();
            inventoryItems = warehouseClient
                    .getInventoryItemsFromLastScanType(ScanType.DOA_OUT);
           /* for(InventoryItem inventoryItem:inventoryItems) {
                if(inventoryItem.getId()<59078 ||  
                                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 catalogClient = new InventoryClient().getClient();
            Warehouse warehouse = catalogClient.getWarehouse(inventoryItem.getCurrentWarehouseId());
            warehouseClient.scan(inventoryItem, ScanType.DOA_REPLACED, inventoryItem.getInitialQuantity(), warehouse.getBillingWarehouseId(), 0);
            in.shop2020.purchase.PurchaseService.Client purchaseClient = new PurchaseClient().getClient();
            purchaseClient.unFulfillPO(inventoryItem.getPurchaseId(), inventoryItem.getItemId(), 1);
        } catch (Exception e) {
            logger.error("Could not fetch inventory items", e);
        }

        return index();
    }

    public String getPONumber(long purchaseId) {
        try {
            in.shop2020.purchase.PurchaseService.Client purchaseClient = new PurchaseClient().getClient();
            return purchaseClient.getPurchaseOrderForPurchase(purchaseId).getPoNumber();
        } catch (Exception e) {
            return "N/A";
        }
    }

    public String getWarehouseDisplayName(long warehouseId) {
        try {
            in.shop2020.model.v1.inventory.InventoryService.Client catalogClient = new InventoryClient().getClient();
            return catalogClient.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 getId() {
        return id;
    }

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

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

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