package com.napa.pulse.dao.interfaces; import com.napa.pulse.dto.*; import com.napa.pulse.entity.pulseui.*; import com.napa.pulse.entity.security.User; import com.napa.pulse.exception.PulseException; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; import java.util.TreeMap; /** * @author TATHA */ public interface SessionDAO { /** * @param statusTypes * @param siteIds * @param siteGroups * @param statusIds * @param createdDates * @param createdByIds * @param user * @param userAccessSites * @param finalizeDateArray * @return * @throws Exception */ List> getSessionList(String[] statusTypes, Integer[] siteIds, Integer[] siteGroups, Integer[] statusIds, String[] createdDates,String[] ExpirationDates, Integer[] createdByIds, User user, String userAccessSites, String[] finalizeDateArray) throws Exception; /** * @param user * @param userAccessSites * @return */ List> getAllSessions(User user, String userAccessSites); /** * @param siteGroupId * @return */ String getSiteGroupName(int siteGroupId); /** * @param siteId * @return */ String getSiteName(int siteId); /** * @param transmissionId * @param type * @param newStatus * @return */ ActionResult updateSessionTransmissionStatusId(Integer transmissionId, String type, String newStatus); /** * @param user * @param sessionId * @return */ List getSessionDetails(User user, Integer sessionId); /** * @param sessionId * @return */ List> getSessionSites(int sessionId); /** * @param user * @param userAccessSites * @return */ Map getSessionTypesAndCount(User user, String userAccessSites); /** * @return */ List> getCreatedUserList(); /** * @param user * @return */ List> getSessionStatusList(User user); /** * @param user * @param userAccessSites * @return */ List> getSessionSiteList(User user, String userAccessSites); /** * @param sessionId * @param siteId * @param user * @return */ Map getHierarchyTreeForSession(int sessionId, int siteId, User user); /** * @param userId * @return */ List> getSessionSiteGroupList(Integer userId); /** * @param userId * @param perCarOrder * @param includeFleets * @param includeSystems * @param includeSpecials * @param includeObsoletes * @param includeOverstocks * @param includeKeylinesOrders * @param includeKeylinesReturns * @param includeLessThanStdPkg * @param useInvestmentCollections * @param provideStoreDepth * @param comment * @param siteGroupObj * @param sitesArray * @param productGroupsArray * @param fleetGroupsIds * @param customProducts * @param savedGroup * @param userAccessSites * @param skuArray * @param productLineIdArray * @param siteProductLines * @param includeOrders * @param includeReturns * @param expirationDate * @param displayQty * @param sessionType * @param applicationPartsOnly * @return * @throws Exception */ BigDecimal createNewSession(User userId, Boolean perCarOrder, Boolean includeFleets, Boolean includeSystems, Boolean includeSpecials, Boolean includeObsoletes, Boolean includeOverstocks,Boolean includeSupersede, Boolean includeKeylinesOrders, Boolean includeKeylinesReturns, Boolean includeLessThanStdPkg,Double includeWeekSupplyOption,String weekSupplyOptionName, Boolean useInvestmentCollections, Boolean provideStoreDepth, Boolean includeSoldNotStocked, Boolean includeNewNumbers, Boolean orderAllSkus, Boolean returnAllSKUs, Integer dollarLimit, String comment, Integer siteGroupObj, Integer[] sitesArray, ProductGroupOrderReturn[] productGroupsArray,ProductGroupOrderReturn[] groupCodeArray, Integer[] fleetGroupsIds, CustomProductGroup customProducts,CustomGroupCodeProductGroup customGroupCodeProductGroupObj,Boolean isGroupCode, String savedGroup, String userAccessSites, Integer[] skuArray, ProductLinesData[] productLineIdArray,ProductLinesData[] allProductLines, ProductLinesData[] siteProductLines, Integer includeOrders, Integer includeReturns, Date expirationDate, String includeDaysCount,Integer perCarMinMaxValue, String salesHistoryValue, String displayQty,String sessionType, String includeHubSpokeOrderOption, String includeHubSpokeReturnOption, Boolean applicationPartsOnly, LeadTimeStatusDTO[] leadTime) throws Exception; /** * @param userId * @param sessionId * @param transmissionArray */ void finalizeSession(Integer userId, Integer sessionId, Transmission[] transmissionArray); /** * @param userId * @param sessionId * @param transmissionArray */ void finalizeACOSession(Integer userId, Integer sessionId, Transmission[] transmissionArray); /** * @param userId * @param sessionId * @param transmissionArray * @param reviewOnly * @param i * @param b */ void finalizeMinMaxSession(Integer userId, Integer sessionId, Transmission[] transmissionArray, Boolean reviewOnly, int i, boolean b); /** * @param user * @param sessionId * @return */ List getSessionTransmissions(User user, Integer sessionId); /** * @param user * @param sessionId * @return */ List getSessionTransmissionsMinMax(User user, Integer sessionId); /** * @param orderReturn * @param transmissionId * @return */ ActionResult resendTransmission(String orderReturn, int transmissionId); /** * @param transmissionId * @return */ ActionResult resendTransmissionMinmax(int transmissionId); /** * @param userId * @param sessionId * @return */ List> getSessionSitesWithOrderReturn(Integer userId, Integer sessionId); /** * @param userId * @param sessionId * @return */ List> getMinMaxSessionSitesWithOrderReturn(Integer userId, Integer sessionId); /** * @param userId * @param sessionId * @return */ List> getACOSessionSitesWithOrderReturn(Integer userId, Integer sessionId); /** * @param userId * @param sessionId * @param transmissions */ void updateSessionTransmissions(Integer userId, Integer sessionId, Transmission[] transmissions); /** * @param sessionId * @param pageNumber * @param numberOfRecordsPerPage * @param sortBy * @param sortingOrder * @param isReturns * @param isOrders * @param isInSession * @param siteId * @param level * @param hierarchyId * @param exportType * @param isUnReviewed * @param aggressiveLeft * @param aggressiveRight * @param dnsCount * @param sjCount * @param highSkuEdit * @param highSkuEditHierarchyId * @param isDeclineOrder * @param isDeclineReturn * @param hierarchyLevel * @param response * @param user * @throws Exception */ void getSessionDashboardData(Integer sessionId, Integer pageNumber, Integer numberOfRecordsPerPage, String sortBy, String sortingOrder, Boolean isReturns, Boolean isOrders, Boolean isInSession, Integer siteId, Integer level, Integer hierarchyId, String exportType, Boolean isUnReviewed, Boolean aggressiveLeft, Boolean aggressiveRight, Boolean dnsCount, Boolean sjCount, Boolean highSkuEdit, Integer highSkuEditHierarchyId, Boolean isDeclineOrder, Boolean isDeclineReturn, Integer hierarchyLevel, HttpServletResponse response, User user) throws Exception; /** * @param sessionId * @param isMinMaxSkus * @param minMaxSiteIds * @param minMaxLineAbbr * @param sortBy * @param sortingOrder * @param pageNumber * @param numberOfRecordsPerPage * @param response * @param user * @throws Exception */ void getMinMaxSessionDashboardData(Integer sessionId, String minMaxSiteIds, String minMaxLineAbbr, String minMaxGroupCode, Boolean minMaxisReviewed,String isMinMaxSkus,String sortBy, String sortingOrder, Integer pageNumber, Integer numberOfRecordsPerPage, String exportType, HttpServletResponse response, User user) throws Exception; /** * @param sessionId * @param dashboardListArr * @return */ ActionResultItem>> updateSkuDashboardTableSetReviewedList(Integer sessionId, DashboardList[] dashboardListArr); /** * @param skuDashboardTableData * @return */ ActionResultItem>> updateSkuDashboardTableSetReviewedFilter(SKUDashboardTableData skuDashboardTableData); /** * @param sessionId * @param isReturns * @param isOrders * @param isInSession * @param siteId * @param level * @param hierarchyId * @param isUnreviewed * @param aggressiveLeft * @param aggressiveRight * @param dnsCount * @param sjCount * @param highSkuEdit * @param highSkuEditHierarchyId * @param isDeclineOrder * @param isDeclineReturn * @param hierarchyLevel * @return */ Integer getSessionDashboardCnt(int sessionId, boolean isReturns, boolean isOrders, Boolean isInSession, Integer siteId, Integer level, Integer hierarchyId, Boolean isUnreviewed, Boolean aggressiveLeft, Boolean aggressiveRight, Boolean dnsCount, Boolean sjCount, Boolean highSkuEdit, Integer highSkuEditHierarchyId, Boolean isDeclineOrder, Boolean isDeclineReturn, Integer hierarchyLevel); /** * @param sessionId * @param minMaxSiteIds * @param minMaxLineAbbr * @param minMaxisReviewed * @param isMinMaxSkus * @return */ Integer getMinMaxSessionDashboardCnt(int sessionId, String minMaxSiteIds, String minMaxLineAbbr, String minMaxGroupCode, Boolean minMaxisReviewed, String isMinMaxSkus); /** * @param sessionType * @param user * @return */ int getSessionTypeCount(String sessionType, User user); /** * @param responsibleUserAccessSites * @return */ int getPendingTransmissions(String responsibleUserAccessSites); /** * @return */ int getActiveUserCount(); /** * @param responsibleUserAccessSites * @return */ int getOverdueReturn(String responsibleUserAccessSites); /** * @param user * @return */ int getPendingApprovals(User user); /** * @param sessionId * @return */ List> getSessionOrderReturnTotals(int sessionId); boolean isSessionFinalized(Integer sessionId); /** * @param sessionId * @return */ List> getMinMaxSessionTotals(int sessionId); /** * @param sessionId * @return */ List> getACOSessionOrderReturnTotals(int sessionId); /** * @param sessionId * @return */ List> getMinMaxSessionOrderReturnTotals(int sessionId,int siteId,boolean onlyForSingleSite); /** * @param user * @param sessionId * @param siteId * @param partNumber * @param minQty * @param maxQty * @param fieldAbbr * @return * @throws PulseException */ ActionResultItem>> saveMinMax(User user, Integer sessionId, Integer siteId, String partNumber, Integer minQty, Integer maxQty, String fieldAbbr) throws PulseException; /** * @param sessionId * @return */ List> getSessionOrderReturnTotalsDetails(int sessionId); /** * @param sessionId * @param isOrders * @param isReturns * @param isInSession * @param siteId * @param hierarchyId * @param hierarchyLevel * @return */ List> getRecommendationChart(int sessionId, boolean isOrders, boolean isReturns, Boolean isInSession, Integer siteId, Integer hierarchyId, Integer hierarchyLevel); /** * Returns the first level only of hierarchical names in a session * * @param sessionId * @param user * @return */ List> getHierarchicalNames(Integer sessionId, User user); /** * Returns the N level of hierarchical (not first) names in a session * * @param sessionId * @param hierarchyId * @param user * @return */ List> getHierarchicalNames(Integer sessionId, Integer hierarchyId, User user); /** * @param siteId * @param hierarchyId * @return */ List> getInventoryHistory(Integer siteId, Integer hierarchyId); /** * @param sessionId * @param isOrders * @param isReturns * @param isInSession * @param siteId * @param hierarchyId * @return */ List> getInventoryHistory(int sessionId, boolean isOrders, boolean isReturns, Boolean isInSession, Integer siteId, Integer hierarchyId); /** * @param sessionId * @param siteId * @param parentId * @return */ List getSessionSiteParameters(Integer sessionId, Integer siteId, Integer parentId); /** * @param sessionId * @param siteId * @param nodeIds * @return */ List getSessionSiteParameters(Integer sessionId, Integer siteId, Integer[] nodeIds); /** * @param sessionId * @param user * @return */ String getSessionState(Integer sessionId, User user); /** * @param sessionId * @param userId * @return */ void deleteSession(Integer sessionId, int userId); /** * @param sessionId * @param userId * @param userAccessSites * @return */ boolean validateUserSessionAccess(Integer sessionId, Integer userId, String userAccessSites); /** * @param siteGroupObj * @param userAccessSites * @return */ boolean checkEmptySiteGroup(Integer siteGroupObj, String userAccessSites); /** * @param sessionId * @return */ List sessionReviewPreferenceSettings(int sessionId); /** * @param sessionId * @param comment * @param expirationDate * @throws Exception */ void updateSessionComment(int sessionId, String comment, String expirationDate) throws Exception; /** * @param sessionId * @param productGroupId * @param user * @return */ TreeMap> getSelectedGroupCodes(Integer sessionId, Integer productGroupId, User user); /** * @param sessionId * @param productGroupId * @param user * @return */ Map getSelectedProductTree(Integer sessionId, Integer productGroupId, User user); /** * @param sessionId * @return */ List> getProductGroupsForSession(Integer sessionId); List> getGroupCodesForSession(Integer sessionId); /** * @param sessionId * @return */ List getFleetGroupsForSession(Integer sessionId); /** * @param skusArray * @return * @throws Exception */ Object[] validateSKUs(SKUValidationDTO[] skusArray,Integer id,Boolean isCustomSelection) throws Exception; /** * @param sessionId * @return */ List> getExecutiveSummaryData(int sessionId); /** * @param sessionId * @return */ List> getCustomSkuSessionProducts(int sessionId); /** * @return */ Map>> getMinMaxSessionProducts(Integer[] siteId); /** * @param sessionId * @param siteIdList * @return */ List> getMinMaxSessionSelectedProducts(int sessionId, String siteIdList); List getMinMaxSessionSelectedProductsAsList(int sessionId); /** * @param sessionId * @return */ String getMinMaxSessionAdditionalSettings(int sessionId); /** * @param sessionId * @return */ List> getMinMaxSessionUnselectedProducts(int sessionId,Integer siteId); /** * @param sessionId * @return */ List> getCubicFeet(int sessionId); /** * @param sessionId * @param requestDatesArr * @param messageText * @param user * @return */ ActionResult requestFinalizeSession(int sessionId, RequestDatesDTO[] requestDatesArr, String messageText, User user); /** * @param sessionId * @param reasonText * @param userId * @return */ ActionResult rejectFinalizeSession(int sessionId, String reasonText, int userId); /** * @param sessionId * @return */ SessionModificationInfoDTO wasSessionModified(int sessionId); /** * @param sessionId * @return * @throws Exception */ void updateSession(int sessionId) throws Exception; /** * @param sessionId * @return */ List getSessionTransmissionStatus(Integer sessionId); /** * @param user * @return */ List getFailedTransmissions(User user); /** * @param sessionId * @param siteId * @param hierarchyId * @throws Exception */ void updateSession(int sessionId, int siteId, int hierarchyId) throws Exception; /** * @param user * @param sessionId * @param userAccessSites * @return * @throws Exception */ BigDecimal recreateSession(User user, Integer sessionId, String userAccessSites) throws Exception; /** * @param user * @return */ List getExpiringSessions(User user); /** * @param user * @param sessionId * @param siteId * @param hierarchyId * @param declineOrder * @param declineReturn * @return * @throws PulseException */ ActionResult declineOrderReturns(User user, Integer sessionId, Integer siteId, Integer hierarchyId, Boolean declineOrder, Boolean declineReturn) throws PulseException; /** * @param sessionId * @return */ boolean revertDeclineOrderReturns(int sessionId); /** * @param sessionId */ void createDeferredSessionImmediately(int sessionId); /** * @param user * @return */ SessionLimit getSessionlimits(User user); /** * @param key * @param type * @return */ String getEasyLink(String key, String type); /** * @param sitesArray * @return */ List getSiteLimits(Integer[] sitesArray); /** * @param siteGroupObj * @return */ Integer[] getGroupSites(int siteGroupObj); /** * @param sessionId * @return */ Boolean isACO(int sessionId); /** * @param sessionId * @return */ Boolean isMinMax(int sessionId); /** * @param sessionId * @return */ List getSitesFromSession(int sessionId); /** * @param sessionId * @return */ Integer getSessionStatus(int sessionId); /** * @param sessionId */ void markSessionStatusExpired(int sessionId); /** * @param sessionId */ void markSessionStatusDeleted(int sessionId); /** * @param sessionId * @param siteId * @param userId */ void insertDeletedSessionLog(int sessionId, int siteId, int userId); ActionResult getMinMaxSafetyStock(); ActionResult getMinMaxOrderCycle(); ActionResult getMinMaxLeadTime(); void reCalculateSessionTotals(Integer sessionId, Integer siteId); List> getDropdownSites(List accessSites); boolean pulseDownTime ( ); }