Subversion Repositories SmartDukaan

Rev

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

package in.shop2020.warehouse.persistence;

import in.shop2020.warehouse.DoaOutInventoryItem;
import in.shop2020.warehouse.InTransitInventory;
import in.shop2020.warehouse.ScanType;
import in.shop2020.warehouse.domain.InventoryItem;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;


public interface InventoryItemMapper {

    /**
     * @param inventoryItem
     */
    void insertInventoryItem(InventoryItem inventoryItem);

    /**
     * @param inventoryItemId
     * @return
     */
    InventoryItem getInventoryItem(long inventoryItemId);

    /**
     * @param serialNumber
     * @return
     */
    InventoryItem getInventoryItemFromSerialNumber(String serialNumber);

    /**
     * @param serialNumber
     * @param serialNumber
     * @return
     */
    InventoryItem getInventoryItemFromSerialNumberWarehouse(@Param("serialNumber") String serialNumber, @Param("physicalWarehouseId") long billingWarehouseId);

    List<InventoryItem> getInventoryItemsFromLastScanType(ScanType scanType);

    /**
     * @param inventoryItemId
     * @return
     */
    InventoryItem getInventoryItemsFromId(long inventoryItemId);

    /**
     * @param inventoryItem
     */
    void update(InventoryItem inventoryItem);

    /**
     * @param itemId
     * @param warehouseId
     * @return
     */
    InventoryItem getNonSerializedInventoryItem(@Param("itemNumber")String itemNumber, @Param("itemId")long itemId, 
                @Param("warehouseId")long warehouseId, @Param("physicalWarehouseId")long physicalWarehouseId);

        Long getCurrentQuantityForNonSerializedItem(@Param("itemId")long itemId, @Param("warehouseId")long warehouseId, @Param("physicalWarehouseId")long physicalWarehouseId, @Param("purchaseId")long purchaseId);

        void markPurchaseReturnIdForItem(@Param("id")long id, @Param("currentQuantity")long currentQuantity, @Param("purchaseReturnId")long purchaseReturnId);
        
        void markPurchaseReturnIdForBadItem(@Param("id")long id, @Param("currentQuantity")long currentQuantity, @Param("purchaseReturnId")long purchaseReturnId);

        List<InventoryItem> getCurrentNonSerializedItemsByItemId(@Param("itemId")long itemId, @Param("warehouseId")long warehouseId, 
                        @Param("physicalWarehouseId")long physicalWarehouseId, @Param("purchaseId")long purchaseId);
        
        List<InventoryItem> getNonSerializedItemsForBadInventory(@Param("itemId")long itemId, @Param("currentWarehouseId")long currentWarehouseId, 
                        @Param("physicalWarehouseId")long physicalWarehouseId);
        
        List<Map<String, Integer>> getCurrentSerializedInventory();

        List<Map<String, Integer>> getCurrentNonSerializedInventory();

        void markItemAsLost(@Param("id")long id, @Param("currentQuantity")long currentQuantity);

        //void markTransferLotAsRecieved(long id);

        List<InventoryItem> getInventoryItemsForTransferLot(long id);

        long getCurrentQuantityForNonSerializedItemInPhysicalWarehouse(@Param("itemId")long itemId,
                        @Param("physicalWarehouseId")long physicalWarehouseId);

        List<InventoryItem> getCurrentNonSerializedItemsByItemIdInPhysicalWarehouse(
                        @Param("itemId")long itemId, @Param("physicalWarehouseId")long physicalWarehouseId);

        long getCurrentQuantityForNonSerializedInTransitItemInPhysicalWarehouse(
                        @Param("itemId")long itemId, @Param("physicalWarehouseId")long physicalWarehouseId);

        List<in.shop2020.warehouse.domain.InTransitInventory> getInTransitInventory(long originWarehouseId);

        List<InventoryItem> getCurrentInTransitInventoryInPhysicalWarehouse(
                        @Param("itemId")long itemId, @Param("originWarehouseId")long originWarehouseId);

        /*InventoryItem getNonSeralizedInventoryItemForPhysicalWarehouse(
                        @Param("itemNumber")String itemNumber, @Param("itemId")long itemId, @Param("physicalWarehouseId")long physicalWarehouseId);*/
        
        List<InventoryItem> getTransferLotItemsForMarkReceive(
                        @Param("transferLotId")long transferLotId,@Param("type")ScanType scanType);

        List<Long> getNonEmptyGrnsByDate(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
        
        List<Long> getAllGrnsByDate(@Param("startDate") Date startDate, @Param("endDate") Date endDate);

        InventoryItem getSellableBadNonSerializedItem(@Param("itemId") long itemId, @Param("itemNumber") String itemNumber, 
                        @Param("physicalWarehouseId") long physicalWarehouseId);
        
        List<InventoryItem> getInventoryItemScannedInForPO(@Param("itemId") long itemId,@Param("purchaseIds") List<Long> purchaseIds);

        List<InventoryItem> getInventoryItemsBySerailNumbers(@Param("serialNumbers") List<String> serialNumbers);

        Long getCurrentBadQuantityForItem(@Param("itemId") long itemId,@Param("currentWarehouseId") long currentWarehouseId, @Param("physicalWarehouseId") long physicalWarehouseId);

        @MapKey("itemId")
        Map<Integer, Integer> getItemsInPurchaseReturn(@Param("purchaseReturnId")long purchaseReturnId, @Param("type")ScanType type, @Param("returnTime")String returnTime);
        
        List<InventoryItem> getDoaOutInventoryItems(@Param("offset")long offset, @Param("limit")long limit);
        
        List<InventoryItem> getDoaOutSearchedItems(@Param("searchTerm")String searchTerm, @Param("offset")long offset, @Param("limit")long limit);
        
        long getCountForDoaOutInventoryItems();
        
        long getDoaOutInventoryItemsResultCount(@Param("searchTerm")String searchTerm);
        
        List<DoaOutInventoryItem> getAllDoaOutInventoryItems();
}