Rev 33432 | Rev 34317 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.spice.profitmandi.service.scheme;import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;import com.spice.profitmandi.common.model.SchemeModel;import com.spice.profitmandi.dao.entity.catalog.Scheme;import com.spice.profitmandi.dao.entity.fofo.InventoryItem;import com.spice.profitmandi.dao.entity.fofo.PartnerType;import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;import com.spice.profitmandi.dao.model.CreateSchemeRequest;import org.springframework.stereotype.Service;import java.time.LocalDate;import java.time.LocalDateTime;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.Set;@Servicepublic interface SchemeService {public void saveScheme(int creatorId, CreateSchemeRequest createSchemeRequest) throws ProfitMandiBusinessException;public Scheme getSchemeById(int schemeId) throws ProfitMandiBusinessException;public List<SchemeModel> getAllSchemeModels(LocalDateTime startDateTime, LocalDateTime endDateTime) throws ProfitMandiBusinessException;public void activeSchemeById(int schemeId) throws ProfitMandiBusinessException;public void expireSchemeById(int schemeId, LocalDateTime expiryDate) throws ProfitMandiBusinessException;public void processSchemeIn(int purchaseId, int retailerId) throws ProfitMandiBusinessException;public float processSchemeOut(int fofoOrderId, int retailerId) throws ProfitMandiBusinessException;float getSpecialSupportAmount(float supportAmount, PartnerType partnerType, LocalDate onDate, int catalogId) throws ProfitMandiBusinessException;float getSpecialSupportAmount(float supportAmount, PartnerType partnerType, LocalDate onDate, int catalogId, float taxRate) throws ProfitMandiBusinessException;// public void rollbackSchemeForInventoryItemId(int inventoryItemId);public void rollbackSchemes(List<Integer> inventoryItemIds, String rollbackReason)throws Exception;public Map<String, Object> getSchemes(Set<Integer> roleIds, int offset, int limit)throws ProfitMandiBusinessException;public List<Scheme> getPaginatedSchemes(Set<Integer> roleIds, int offset, int limit)throws ProfitMandiBusinessException;void reverseSchemes(List<InventoryItem> inventoryItems, int reversalReference, String reversalReason)throws ProfitMandiBusinessException;void reverseSchemes(List<InventoryItem> inventoryItems, int reversalReference, String reversalReason,List<SchemeType> schemeTypes) throws ProfitMandiBusinessException;public double getTotalMargin(int itemId, PartnerType partnerType, LocalDateTime localDateTime);Scheme getStaticScheme(int fofoId) throws ProfitMandiBusinessException;public List<Scheme> selectSchemeByPartnerType(PartnerType partnerType, LocalDate onDate, int itemId, boolean isAdmin, int offset,int limit) throws ProfitMandiBusinessException;List<Scheme> selectPercentageScheme(PartnerType partnerType, LocalDate onDate, int catalogId,boolean isAdmin, int offset, int limit) throws ProfitMandiBusinessException;void processActivation() throws ProfitMandiBusinessException;public static List<SchemeType> OUT_SCHEME_TYPES = Arrays.asList(SchemeType.CATEGORY, SchemeType.HYGEINE, SchemeType.OUT, SchemeType.TERTIARY);void processActivatedImeisForSchemes() throws ProfitMandiBusinessException;Map<Integer, Float> getCatalogSchemeCashBack(int fofoId, List<Integer> catalogIds) throws ProfitMandiBusinessException;List<Scheme> selectSchemeByPartnerTypeFofoId(PartnerType partnerType, LocalDate onDate, int catalogId,int fofoId, int offset, int limit) throws ProfitMandiBusinessException;void processSchemeIn(List<InventoryItem> approvedList) throws ProfitMandiBusinessException;}