Subversion Repositories SmartDukaan

Rev

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

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

import in.shop2020.warehouse.domain.AmazonTransferredSkuDetail;
import in.shop2020.warehouse.DetailedPurchaseScan;
import in.shop2020.warehouse.InvAgeConsiderItems;
import in.shop2020.warehouse.InventoryAge;
import in.shop2020.warehouse.InventoryAvailability;
import in.shop2020.warehouse.InventoryMovement;
import in.shop2020.warehouse.InvoiceScan;
import in.shop2020.warehouse.ScanType;
import in.shop2020.warehouse.domain.InventoryItem;
import in.shop2020.warehouse.domain.Scan;

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

import org.apache.ibatis.annotations.Param;

/**
 * @author mandeep
 *
 */
public interface ScanMapper {

    /**
     * @param scan
     */
    void insert(Scan scan);

    /**
     * @param inventoryItemId
     * @param scanType
     * @return
     */
    List<Scan> get(@Param("inventoryItemId")long inventoryItemId, @Param("scanType")ScanType scanType);

    /**
     * @param orderId
     * @return
     */
    List<Scan> getScansFromOrderId(long orderId);

    /**
     * @param startDate
     * @param endDate
     * @return
     */
    List<DetailedPurchaseScan> getPurchaseScans(@Param("startDate")Date startDate, @Param("endDate")Date endDate);

    /**
     * @param date
     * @return
     */
    List<InvoiceScan> fetchMismatchScansPerInvoiceNumber(Date date);

    /**
     * @return
     */
    List<InventoryAge> getInventoryAge();

        
    List<Scan> getScansForItem(@Param("itemId") Long itemId, @Param("fromDate") Date fromDate, @Param("toDate") Date toDate);

        void genericScan(Scan scan);

        List<InventoryAvailability> getCurrentSerializedInventoryByScans(Long physicalWarehouseId);

        List<InventoryAvailability> getCurrentNonSerializedInventoryByScans(Long physicalWarehouseId);

        List<InventoryAvailability> getHistoricSerializedInventoryByScans(Date date);

        List<InventoryAvailability> getHistoricNonSerializedInventoryByScans(Date date);

        List<InventoryMovement> getMovementSerializedInventoryByScans(
                        @Param("startDate") Date startDate, @Param("endDate") Date endDate);

        List<InventoryMovement> getMovementNonSerializedInventoryByScans(
                        @Param("startDate") Date startDate, @Param("endDate") Date endDate);

        List<Scan> getScansForOrderAndItem(
                        @Param("orderId") Long orderId, @Param("itemId") Long itemId);

        List<DetailedPurchaseScan> getPurchaseScansByGrnDate(@Param("startDate")Date startDate, @Param("endDate")Date endDate);

        List<InventoryMovement> getCompleteMovementSerializedInventoryByScans(
                        @Param("startDate") Date startDate, @Param("endDate") Date endDate);

        List<InventoryMovement> getCompleteMovementNonSerializedInventoryByScans(
                        @Param("startDate") Date startDate, @Param("endDate") Date endDate);

        List<Long> getTransferrableWarehousesFromWarehouse(Long warehouseId);

        List<Scan> getScansForTransferLot(long id);

        List<InventoryAvailability> getHistoricBadInventoryByScans(Date date);
        
        Scan getScansForTransferLotAndInventoryItem(@Param("transferLotId")long transferLotId, @Param("inventoryItemId")long inventoryItemId);

        List<InventoryAvailability> getOurHistoricSerializedInventoryByScans(
                        Date date);

        List<InventoryAvailability> getOurHistoricNonSerializedInventoryByScans(
                        Date date);
        
        List<AmazonTransferredSkuDetail> getAmazonTransferredSkuDetails(@Param("itemIds") List<Long> itemIds);
        
        List<Scan> getScansforPurchase(@Param("purchaseId")Long purchaseId, @Param("scanType")ScanType scanType);
        
        List<InvAgeConsiderItems> getInventoryAgeConsideredItems(@Param("itemId")Long itemId);
        
        List<InventoryMovement> getCompleteMovementForThirdPartyWarehouse(
                        @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}