using CRMDAL.DTO.Action; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.ResponseStandard; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; using STask = System.Threading.Tasks.Task; namespace CRMDAL.CustomCode.Action { public interface IActionDAL { Task> GetAction(LoginDTO loginDTO, string sql, object parameters); Task> GetSelectListAction(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task SaveAction(TActionDTO TActionDTO, LoginDTO LoginDTO, DbTransaction? transaction = null); Task UpdateAction(TActionDTO TActionDTO, LoginDTO LoginDTO, DbTransaction? transaction = null); Task DeleteAction(int TActionId, LoginDTO LoginDTO); Task GetActivityRegisterReport(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task GetReadingEntryReport(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool Count = false); Task GetActivityRegisterWithOutDRLeavePresent(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task UpdateActivity(SelectionActionDTO SelectionActionDTO, LoginDTO LoginDTO); Task CustomerAndLeadPicklist(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task ActionSummary(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task SaveActionDetail(TActionDetailDTO detail, LoginDTO loginDTO, DbTransaction? transaction = null); STask DeleteActionDetails(int actionId, LoginDTO loginDTO, DbTransaction? transaction = null); STask UpdateTaskForAction(int taskId, DateOnly periodFrom, DateOnly periodTo, int actualHours, int actionStatus, int numberOfData, LoginDTO loginDTO, DbTransaction? transaction = null); STask ReverseTaskForAction(int taskId, int actualHours, LoginDTO loginDTO, DbTransaction? transaction = null); STask UpdateParentTaskForActionDetail(int taskId, int actualHours, bool isReverse, LoginDTO loginDTO, DbTransaction? transaction = null); STask UpdateCallStatus(int callId, int callStatus, bool isClosed, DateOnly completedOn, string completedOnTime, int userId, LoginDTO loginDTO, DbTransaction? transaction = null); STask UpdateLead( int leadId, int priorityId, int successStatus, DateOnly expectedDate, DateOnly wonLostDate, double expectedFcRevenue, double orderConfidence, double revenueConfidence, byte leadStatus, string lostRemarks, int leadCycleDetailId, LoginDTO loginDTO, DbTransaction? transaction = null); // ── GB4: Geo-fencing / location tracking ────────────────────────── Task GetBizTransactionTypeIsLocationTrack(int bizTransactionTypeId, LoginDTO loginDTO, DbTransaction? transaction = null); Task GetGeoFencingSetting(LoginDTO loginDTO, DbTransaction? transaction = null); STask PostToLocationTrack(string masterGeoCode, string actualGeoCode, int bizTransactionTypeId, int userId, LoginDTO loginDTO, DbTransaction? transaction = null); // ── GB4: Task completed-percentage recalculation ────────────────── STask UpdateCompletedPercentage(int personId, int taskId, int detailType, LoginDTO loginDTO, DbTransaction? transaction = null); STask UpdateCompletedPercentageSecondTime(int detailType, LoginDTO loginDTO, DbTransaction? transaction = null); STask UpdateCompletedPercentageForResourcePunch(int parentTaskId, LoginDTO loginDTO, DbTransaction? transaction = null); Task GetParentTaskId(int taskId, LoginDTO loginDTO, DbTransaction? transaction = null); } }