Subversion Repositories SmartDukaan

Rev

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

package com.spice.profitmandi.dao.cart;

import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
import com.spice.profitmandi.dao.model.PoAndGrnPendingPartnerStockModel;
import com.spice.profitmandi.dao.model.SoldAllCatalogitemQtyByPartnerModel;
import com.spice.profitmandi.dao.model.SoldFocusedItemPartnerWiseModel;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Set;

@Service
public interface SmartCartService{

    List<SoldFocusedItemPartnerWiseModel> getAllSoldFocusModelByPartner(int fofoId, LocalDateTime orderDate);

    List<PoAndGrnPendingPartnerStockModel> getAllGrnPendingAndPoPartnerStock(int fofoId);

    Set<Integer> getAllItemIdsForSmartCartOfPartner(int fofoId) throws ProfitMandiBusinessException;

    void addOpeningStock(int itemId, int fofoId, int quantity) throws ProfitMandiBusinessException;

    void minusOpeningStock(int itemId, int fofoId, int quantity) throws ProfitMandiBusinessException;

    /**
     * Batch update opening stock for multiple items - reduces N+1 queries to 2 queries
     * @param itemIdQuantityMap map of itemId to quantity to subtract
     * @param fofoId partner ID
     */
    void minusOpeningStockBatch(Map<Integer, Integer> itemIdQuantityMap, int fofoId) throws ProfitMandiBusinessException;

    public List<SoldAllCatalogitemQtyByPartnerModel> getAllSoldCatalogItemByPartner(int fofoId, LocalDateTime startOfday, LocalDateTime endOfDay);


    public Map<Integer, Map<Integer, Integer>> activatedButNotBilledCatalogQtyMap() throws ProfitMandiBusinessException;
}