using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using MMDAL.DTO.StockReservation; using System.Data; using System.Data.Common; namespace MMDAL.CustomCode.StockReservation; public interface IStockReservationDAL { Task GetReservationAsync( int stockReservationId, LoginDTO loginDTO); Task> GetReservationListAsync( int ouId, byte? statusFilter, int? itemId, int page, int size, LoginDTO loginDTO, CancellationToken ct); Task GetReservationDtoAsync( int stockReservationId, LoginDTO loginDTO, CancellationToken ct); Task> GetReservationsByMrpRunAsync( int mrpRunId, LoginDTO loginDTO, CancellationToken ct); Task> GetStockAvailabilityAsync( int ouId, int itemId, int skuId, LoginDTO loginDTO, CancellationToken ct); Task CheckDuplicateActiveAsync( int forObjectHeaderId, int forObjectId, int itemId, int skuId, LoginDTO loginDTO, CancellationToken ct); Task InsertReservationAsync( StockReservationDTO dto, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task UpdateReservationNumberAsync( int stockReservationId, string reservationNumber, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task IncrementStockReservedAsync( int ouId, int itemId, int skuId, int storeId, decimal quantity, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task DecrementStockReservedAsync( int ouId, int itemId, int skuId, int storeId, decimal quantity, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task DecrementPipelinePendingAsync( int fromAllotedAllocationId, decimal quantity, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task IncrementPipelinePendingAsync( int fromAllotedAllocationId, decimal quantity, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task ReleaseReservationAsync( int stockReservationId, short version, string reason, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task ReduceReservedQuantityAsync( int stockReservationId, short version, decimal releaseQuantity, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task SaveFreeTrackAsync( int newId, string reservationNumber, StockReservationFreeTrackDTO dto, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task MarkReassignedAsync( int stockReservationId, short version, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task ConfirmTentativeByMrpRunAsync( int mrpRunId, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task ConfirmOneTentativeAsync( int stockReservationId, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task UpdateIssuedQuantityAsync( int stockReservationId, decimal issuedQty, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task MarkSubconOutAsync( StockReservationSubconDTO dto, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task MarkSubconReturnedAsync( int stockReservationId, short version, decimal actualReturnedQty, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task InsertReassignmentLogAsync( ReassignmentLogDTO dto, int newLogId, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task> GetReassignmentLogAsync( int stockReservationId, LoginDTO loginDTO, CancellationToken ct); Task> GetSubconTrackingAsync( int ouId, LoginDTO loginDTO, CancellationToken ct); Task BulkInsertReservationsAsync( IEnumerable reservations, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task GetSelectListStockReservation( int FirstNumber, int MaxResult, CriteriaDTO criteriaDTO, LoginDTO loginDTO, bool IsCount = false); }