using System.Data.Common; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using MMDAL.DTO.Indent; namespace MMDAL.CustomCode.Indent { public interface IIndentDAL { // ── Picklist (existing) ──────────────────────────────────────────────── Task GetSelectListIndent(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task AmendmentSelectList(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); // ── Phase 7: Production.svc parity — combine-indent / report picklists ── Task GetCombineIndentSelectList(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task GetIndentReportSelectList(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); // ── Phase 1: CRUD ───────────────────────────────────────────────────── Task GetIndentHeader(int indentId, LoginDTO login, CancellationToken ct); Task> GetIndentDetails(int indentId, LoginDTO login, CancellationToken ct); Task> GetIndentList(int ouId, int firstNumber, int maxResult, LoginDTO login, CancellationToken ct); Task SaveIndentHeader(IndentSaveDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task UpdateIndentHeader(IndentSaveDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task BulkSaveIndentDetails(IEnumerable rows, LoginDTO login, DbTransaction tx, CancellationToken ct); Task BulkSaveIndentMaterials(IEnumerable rows, LoginDTO login, DbTransaction tx, CancellationToken ct); Task BulkSaveIndentResources(IEnumerable rows, LoginDTO login, DbTransaction tx, CancellationToken ct); Task DeleteIndentDetails(int indentId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task SoftDeleteIndent(int indentId, LoginDTO login, DbTransaction tx, CancellationToken ct); // ── Phase 2: SO line lookup ──────────────────────────────────────────── Task GetSOLineForWO(int mmDetailId, LoginDTO login, CancellationToken ct); // ── Phase 3: Production plan line lookup ────────────────────────────── Task GetProductionPlanLineForWO(int productionPlanDetailId, LoginDTO login, CancellationToken ct); // ── Phase 4: Routing resources ──────────────────────────────────────── Task> GetRoutingDetailResources(IEnumerable routingDetailIds, LoginDTO login, CancellationToken ct); // ── Phase 6: Item default routing ───────────────────────────────────── Task GetItemDefaultRoutingId(int itemId, LoginDTO login, CancellationToken ct); // ── Phase 2 (Production): WO Lifecycle ──────────────────────────────── Task GetIndentDetailById(int indentDetailId, LoginDTO login, CancellationToken ct); Task UpdateIndentDetailQuantity(int indentDetailId, decimal newQuantity, LoginDTO login, DbTransaction tx, CancellationToken ct); Task CloseWorkOrder(int indentDetailId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task ShortCloseWorkOrder(int indentDetailId, decimal closedQuantity, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> GetBOMFeasibility(int indentDetailId, int storeId, LoginDTO login, CancellationToken ct); Task GetSupervisorWorkbenchKPI(int ouId, LoginDTO login, CancellationToken ct); // ── Phase 6 (Supervisor Workbench) ──────────────────────────────────── Task DeleteIndentResources(int indentDetailId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task BulkSaveIndentResourceAssignments(IEnumerable resources, LoginDTO login, DbTransaction tx); Task ReleaseWorkOrder(int indentDetailId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task<(IEnumerable Items, int TotalCount)> GetSupervisorWOList(int ouId, int statusFilter, int firstNumber, int maxResult, LoginDTO login, CancellationToken ct); Task GetIndentById(LoginDTO loginDTO, string sql, object parameters); Task SaveWorkOrder(IndentSaveDTO IndentSaveDTO, LoginDTO loginDTO); Task UpdateWorkOrder(IndentSaveDTO indentDTO, LoginDTO loginDTO); Task> GetListOfIndent(CriteriaDTO criteriaDTO, LoginDTO loginDTO); // ── Phase 7: Project-wise shortage report (GB4 port) ────────────────── Task<(IEnumerable Items, int TotalCount)> GetProjectWiseShortage( int firstNumber, int maxResult, CriteriaDTO criteriaDTO, LoginDTO login, CancellationToken ct); // ── Phase 7: Indent reference-number picklist (GB4 port) ────────────── Task> GetSelectListIndentRefNumber( int firstNumber, int maxResult, LoginDTO login, CancellationToken ct); } }