diff --git a/ServiceHost/Areas/Client/Controllers/RollCall/RollCallCaseHistoryController.cs b/ServiceHost/Areas/Client/Controllers/RollCall/RollCallCaseHistoryController.cs index ec8d347d..d9928860 100644 --- a/ServiceHost/Areas/Client/Controllers/RollCall/RollCallCaseHistoryController.cs +++ b/ServiceHost/Areas/Client/Controllers/RollCall/RollCallCaseHistoryController.cs @@ -1,6 +1,7 @@ using _0_Framework.Application; using CompanyManagement.Infrastructure.Excel.RollCall; using CompanyManagment.App.Contracts.RollCall; +using CompanyManagment.App.Contracts.RollCallEmployee; using CompanyManagment.App.Contracts.Workshop; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; @@ -12,11 +13,14 @@ public class RollCallCaseHistoryController : ClientBaseController private readonly IRollCallApplication _rollCallApplication; private readonly long _workshopId; private readonly IWorkshopApplication _workshopApplication; + private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication; public RollCallCaseHistoryController(IRollCallApplication rollCallApplication, - IAuthHelper authHelper, IWorkshopApplication workshopApplication) + IAuthHelper authHelper, IWorkshopApplication workshopApplication, + IRollCallEmployeeApplication rollCallEmployeeApplication) { _rollCallApplication = rollCallApplication; _workshopApplication = workshopApplication; + _rollCallEmployeeApplication = rollCallEmployeeApplication; _workshopId = authHelper.GetWorkshopId(); } @@ -91,6 +95,45 @@ public class RollCallCaseHistoryController : ClientBaseController } + [HttpGet("edit")] + public ActionResult GetEditDetails(string date, long employeeId) + { + var result = _rollCallApplication.GetWorkshopEmployeeRollCallsForDate(_workshopId, employeeId, date); + //var dates = _rollCallApplication.GetEditableDatesForManualEdit(date.ToGeorgianDateTime()); + var name = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); + + var total = new TimeSpan(result.Sum(x => + (x.EndDate!.Value.Ticks - x.StartDate!.Value.Ticks))); + + var res = new EditRollCallDetailsResult() + { + EmployeeFullName = name.EmployeeFullName, + EmployeeId = employeeId, + DateFa = date, + //EditableDates = dates, + Records = result.Select(x=>new EmployeeRollCallRecord() + { + Date = x.DateGr, + EndDate = x.EndDateFa, + EndTime = x.EndTimeString, + RollCallId = x.Id, + StartDate = x.StartDateFa, + StartTime = x.StartTimeString + }).ToList(), + TotalRollCallsDuration = total.ToFarsiHoursAndMinutes("-") + }; + + return res; + } + [HttpPost("edit")] + public ActionResult Edit(CreateOrEditEmployeeRollCall command) + { + command.WorkshopId = _workshopId; + var result = _rollCallApplication.ManualEdit(command); + return result; + } + + // [HttpGet("edit")] // public ActionResult<> GetEditDetails(string date,long employeeId) // { @@ -129,4 +172,13 @@ public class RollCallCaseHistoryController : ClientBaseController return false; } } +} + +public class EditRollCallDetailsResult +{ + public string EmployeeFullName { get; set; } + public long EmployeeId { get; set; } + public string DateFa { get; set; } + public string TotalRollCallsDuration { get; set; } + public List Records { get; set; } } \ No newline at end of file