Subversion Repositories SmartDukaan

Rev

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

/**
 * 
 */
package in.shop2020.warehouse.handler;

import in.shop2020.warehouse.InTransitInventory;
import in.shop2020.warehouse.ScanType;
import in.shop2020.warehouse.domain.InventoryItem;
import in.shop2020.warehouse.persistence.InventoryItemMapper;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mysql.jdbc.StringUtils;

/**
 * @author mandeep
 *
 */
@Service
public class InventoryItemHandler {
    @Autowired
    private InventoryItemMapper inventoryItemMapper;

    /**
     * @param inventoryItem
     */
    public InventoryItem insertInventoryItem(InventoryItem inventoryItem) {
        inventoryItemMapper.insertInventoryItem(inventoryItem);
        return inventoryItem;
    }

    /**
     * @param inventoryItemId
     * @return
     */
    public InventoryItem getInventoryItem(long inventoryItemId) {
        return inventoryItemMapper.getInventoryItem(inventoryItemId);
    }

    /**
     * @param serialNumber
     * @return
     */
    public InventoryItem getInventoryItem(String serialNumber) {
        return inventoryItemMapper.getInventoryItemFromSerialNumber(serialNumber);
    }

    public List<InventoryItem> getInventoryItemFromLastScanType(ScanType scanType) {
        return inventoryItemMapper.getInventoryItemsFromLastScanType(scanType);
    }

    /**
     * @param inventoryItemId
     * @return
     */
    public InventoryItem getInventoryItemFromId(long inventoryItemId) {
        return inventoryItemMapper.getInventoryItemsFromId(inventoryItemId);
    }

    /**
     * @param inventoryItem
     */
    public void update(InventoryItem inventoryItem) {
        inventoryItemMapper.update(inventoryItem);
    }

    /**
     * @param itemId
     * @param warehouseId
     * @return
     */
    public InventoryItem getInventoryItem(String itemNumber, long itemId, long warehouseId) {
        if (StringUtils.isNullOrEmpty(itemNumber)) {
            itemNumber = null;
        }

        return inventoryItemMapper.getNonSerializedInventoryItem(itemNumber, itemId, warehouseId);
    }

        public Long getCurrentQuantityForNonSerializedItem(long itemId, long warehouseId, long physicalWarehouseId) {
                return inventoryItemMapper.getCurrentQuantityForNonSerializedItem(itemId, warehouseId, physicalWarehouseId);
        }

        public void markPurchaseReturnIdForItem(long id, long currentQuantity, long purchaseReturnId) {
                inventoryItemMapper.markPurchaseReturnIdForItem(id, currentQuantity, purchaseReturnId);
                
        }

        public List<InventoryItem> getCurrentNonSerializedItemsByItemId(long itemId, long warehouseId) {
                return inventoryItemMapper.getCurrentNonSerializedItemsByItemId(itemId, warehouseId);
        }
        
        public List<Map<String, Integer>> getCurrentSerializedInventory() {
                return inventoryItemMapper.getCurrentSerializedInventory();
        }
        
        public List<Map<String, Integer>> getCurrentNonSerializedInventory() {
                return inventoryItemMapper.getCurrentNonSerializedInventory();
        }

        public void markItemAsLost(long id, long currentQuantity) {
                inventoryItemMapper.markItemAsLost(id, currentQuantity);
                
        }

        /*public void markTransferLotAsRecieved(long id) {
                inventoryItemMapper.markTransferLotAsRecieved(id);
        }*/

        public List<InventoryItem> getInventoryItemsForTransferLot(long id) {
                return inventoryItemMapper.getInventoryItemsForTransferLot(id);
        }

        /*public InventoryItem getNonSeralizedInventoryItemForPhysicalWarehouse(
                        String itemNumber, long itemId, long physicalWarehouseId) {
                return  inventoryItemMapper.getNonSeralizedInventoryItemForPhysicalWarehouse(itemNumber, itemId, physicalWarehouseId);
        }*/

        public long getCurrentQuantityForNonSerializedItemInPhysicalWarehouse(
                        long itemId, long physicalWarehouseId) {
                return inventoryItemMapper.getCurrentQuantityForNonSerializedItemInPhysicalWarehouse(itemId, physicalWarehouseId);
        }

        public List<InventoryItem> getCurrentNonSerializedItemsByItemIdInPhysicalWarehouse(
                        long itemId, long physicalWarehouseId) {
                return inventoryItemMapper.getCurrentNonSerializedItemsByItemIdInPhysicalWarehouse(itemId, physicalWarehouseId);
        }

        public long getCurrentQuantityForNonSerializedInTransitItemInPhysicalWarehouse(
                        long itemId, long physicalWarehouseId) {
                return inventoryItemMapper.getCurrentQuantityForNonSerializedInTransitItemInPhysicalWarehouse(
                                itemId, physicalWarehouseId);
        }

        public List<InTransitInventory> getInTransitInventory(long originWarehouseId) {
                List<InTransitInventory> t_InTransitInventories = new ArrayList<InTransitInventory>();
                for(in.shop2020.warehouse.domain.InTransitInventory intransitInventory :inventoryItemMapper.getInTransitInventory(originWarehouseId)) {
                        t_InTransitInventories.add(intransitInventory.toThriftObject());
                }
                return t_InTransitInventories;
        }
        
}