From f0feac9601f1aa2b66a92fadeaa289dcd59ab643 Mon Sep 17 00:00:00 2001 From: mahan Date: Wed, 14 Jan 2026 19:27:23 +0330 Subject: [PATCH 01/12] add salary aid controller --- .../Client/Controllers/SalaryAidController.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 ServiceHost/Areas/Client/Controllers/SalaryAidController.cs diff --git a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs new file mode 100644 index 00000000..cea07f23 --- /dev/null +++ b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs @@ -0,0 +1,23 @@ +using CompanyManagment.App.Contracts.SalaryAid; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Client.Controllers; + +public class SalaryAidController:ClientBaseController +{ + private readonly ISalaryAidApplication _salaryAidApplication; + + public SalaryAidController(ISalaryAidApplication salaryAidApplication) + { + _salaryAidApplication = salaryAidApplication; + } + + [HttpGet] + public ActionResult GetList(SalaryAidSearchViewModel searchModel) + { + var result = _salaryAidApplication.GetSearchListAsGrouped(searchModel); + return Ok(result); + } + +} \ No newline at end of file From b22aa86aea45440b08ba81a92f0bc948b131b29f Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 15 Jan 2026 10:35:43 +0330 Subject: [PATCH 02/12] add create - edit - remove salary aid api controller --- .../SalaryAid/CreateSalaryAidViewModel.cs | 1 - .../Client/Controllers/SalaryAidController.cs | 67 ++++++++++++++++++- 2 files changed, 64 insertions(+), 4 deletions(-) diff --git a/CompanyManagment.App.Contracts/SalaryAid/CreateSalaryAidViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/CreateSalaryAidViewModel.cs index 18d88d02..32112ff5 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/CreateSalaryAidViewModel.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/CreateSalaryAidViewModel.cs @@ -8,7 +8,6 @@ public class CreateSalaryAidViewModel public long WorkshopId { get; set; } public string Amount { get; set; } public string SalaryDateTime { get; set; } - public string CalculationDateTime { get; set; } public string NationalCode { get; set; } public int CalculationMonth { get; set; } public int CalculationYear { get; set; } diff --git a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs index cea07f23..a7641788 100644 --- a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs +++ b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs @@ -1,3 +1,4 @@ +using _0_Framework.Application; using CompanyManagment.App.Contracts.SalaryAid; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; @@ -7,17 +8,77 @@ namespace ServiceHost.Areas.Client.Controllers; public class SalaryAidController:ClientBaseController { private readonly ISalaryAidApplication _salaryAidApplication; + private readonly long _workshopId; - public SalaryAidController(ISalaryAidApplication salaryAidApplication) + public SalaryAidController(ISalaryAidApplication salaryAidApplication,IAuthHelper authHelper) { _salaryAidApplication = salaryAidApplication; + _workshopId = authHelper.GetWorkshopId(); } [HttpGet] - public ActionResult GetList(SalaryAidSearchViewModel searchModel) + public ActionResult GetList([FromQuery]SalaryAidSearchViewModel searchModel) { var result = _salaryAidApplication.GetSearchListAsGrouped(searchModel); return Ok(result); } - + + [HttpPost] + public ActionResult Create([FromBody]CreateSalaryAidRequest request) + { + var command = new CreateSalaryAidViewModel() + { + Amount = request.Amount.ToMoney(), + CalculationMonth = request.CalculationMonth, + CalculationYear = request.CalculationYear, + EmployeeIds = request.EmployeeIds, + WorkshopId = _workshopId, + SalaryDateTime = request.SalaryDateTime, + + }; + var result = _salaryAidApplication.Create(command); + return result; + } + + [HttpPut] + public ActionResult Edit([FromBody]EditSalaryAidRequest request) + { + var command = new EditSalaryAidViewModel() + { + Id = request.Id, + Amount = request.Amount.ToMoney(), + CalculationMonth = request.CalculationMonth, + CalculationYear = request.CalculationYear, + SalaryDateTime = request.SalaryDateTime, + WorkshopId = _workshopId, + }; + var result = _salaryAidApplication.Edit(command); + return result; + } + + [HttpDelete("{id:long}")] + public ActionResult Delete(long id) + { + var result = _salaryAidApplication.Remove(id); + return result; + } +} + +public class EditSalaryAidRequest +{ + public long Id { get; set; } + public long EmployeeId { get; set; } + public double Amount { get; set; } + public string SalaryDateTime { get; set; } + public int CalculationMonth { get; set; } + public int CalculationYear { get; set; } +} + +public class CreateSalaryAidRequest +{ + public List EmployeeIds { get; set; } + public double Amount { get; set; } + public string SalaryDateTime { get; set; } + public int CalculationMonth { get; set; } + public int CalculationYear { get; set; } } \ No newline at end of file From a0d2023a6c2582a6dba97c96c97098f918953b65 Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 10:32:08 +0330 Subject: [PATCH 03/12] add Excel validation for salary aid import and update pagination in salary aid list --- .../SalaryAid/SalaryAidSearchViewModel.cs | 4 +- .../SalaryAid/SalaryAidsGroupedViewModel.cs | 3 +- .../Repository/SalaryAidRepository.cs | 39 +++++++++++-------- .../Client/Controllers/SalaryAidController.cs | 12 +++++- 4 files changed, 37 insertions(+), 21 deletions(-) diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs index c6625186..095a65f6 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs @@ -3,15 +3,15 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using _0_Framework.Application; namespace CompanyManagment.App.Contracts.SalaryAid; -public class SalaryAidSearchViewModel +public class SalaryAidSearchViewModel:PaginationRequest { public string StartDate { get; set; } public string EndDate { get; set; } public long EmployeeId { get; set; } public long WorkshopId { get; set; } - public int PageIndex { get; set; } public bool ShowAsGrouped { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs index 4787c202..a6c16bc9 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Security.Cryptography; +using _0_Framework.Application; namespace CompanyManagment.App.Contracts.SalaryAid; @@ -7,7 +8,7 @@ public class SalaryAidsGroupedViewModel { public List GroupedByEmployee { get; set; } public List GroupedByDate { get; set; } - public List SalaryAidListViewModels { get; set; } + public PagedResult SalaryAidListViewModels { get; set; } } diff --git a/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs b/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs index caf85912..d34cc35f 100644 --- a/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs +++ b/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs @@ -197,23 +197,28 @@ public class SalaryAidRepository : RepositoryBase, ISalaryAidRe query = query.Where(x => x.SalaryAidDateTime >= startDate && x.SalaryAidDateTime <= endDate); } - result.SalaryAidListViewModels = query.OrderByDescending(x => x.SalaryAidDateTime).Skip(searchModel.PageIndex).Take(30).ToList().Select( - x => new SalaryAidViewModel() - { - Amount = x.Amount.ToMoney(), - CreationDate = x.CreationDate.ToFarsi(), - Id = x.id, - EmployeeId = x.EmployeeId, - SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(), - SalaryAidDateTimeGe = x.SalaryAidDateTime, - WorkshopId = x.WorkshopId, - YearFa = x.SalaryAidDateTime.ToFarsi().Substring(0, 4), - MonthFa = x.SalaryAidDateTime.ToFarsi().Substring(5, 2), - PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), - EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, - AmountDouble = x.Amount, - }).ToList(); - + result.SalaryAidListViewModels = new PagedResult() + { + TotalCount = query.Count(), + List = query.OrderByDescending(x => x.SalaryAidDateTime).ApplyPagination(searchModel.PageIndex,searchModel.PageSize).ToList() + .Select(x => new SalaryAidViewModel() + { + Amount = x.Amount.ToMoney(), + CreationDate = x.CreationDate.ToFarsi(), + Id = x.id, + EmployeeId = x.EmployeeId, + SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(), + SalaryAidDateTimeGe = x.SalaryAidDateTime, + WorkshopId = x.WorkshopId, + YearFa = x.SalaryAidDateTime.ToFarsi().Substring(0, 4), + MonthFa = x.SalaryAidDateTime.ToFarsi().Substring(5, 2), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode + .ToString(), + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + AmountDouble = x.Amount, + }).ToList() + }; + return result; } diff --git a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs index a7641788..78d21157 100644 --- a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs +++ b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs @@ -1,4 +1,5 @@ using _0_Framework.Application; +using CompanyManagement.Infrastructure.Excel.SalaryAid; using CompanyManagment.App.Contracts.SalaryAid; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; @@ -9,10 +10,12 @@ public class SalaryAidController:ClientBaseController { private readonly ISalaryAidApplication _salaryAidApplication; private readonly long _workshopId; + private readonly SalaryAidImportExcel _salaryAidImportExcel; - public SalaryAidController(ISalaryAidApplication salaryAidApplication,IAuthHelper authHelper) + public SalaryAidController(ISalaryAidApplication salaryAidApplication,IAuthHelper authHelper, SalaryAidImportExcel salaryAidImportExcel) { _salaryAidApplication = salaryAidApplication; + _salaryAidImportExcel = salaryAidImportExcel; _workshopId = authHelper.GetWorkshopId(); } @@ -62,6 +65,13 @@ public class SalaryAidController:ClientBaseController var result = _salaryAidApplication.Remove(id); return result; } + + public ActionResult> OnPostValidateExcel(IFormFile excel) + { + var validation = _salaryAidImportExcel.ReadAndValidateExcel(excel, _workshopId); + + return validation; + } } public class EditSalaryAidRequest From ffe8fa67e2b18c8f9906cb13296803315ca2d69b Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 10:33:09 +0330 Subject: [PATCH 04/12] refactor salary aid controller to update Excel validation endpoint --- ServiceHost/Areas/Client/Controllers/SalaryAidController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs index 78d21157..5cb85812 100644 --- a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs +++ b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs @@ -65,8 +65,8 @@ public class SalaryAidController:ClientBaseController var result = _salaryAidApplication.Remove(id); return result; } - - public ActionResult> OnPostValidateExcel(IFormFile excel) + [HttpPost("validate-excel")] + public ActionResult> ValidateExcel(IFormFile excel) { var validation = _salaryAidImportExcel.ReadAndValidateExcel(excel, _workshopId); From a8cb226d20c75af9cc3cdf86983af1ad89dca5f2 Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 11:05:54 +0330 Subject: [PATCH 05/12] change list key for salary aid --- .../SalaryAid/SalaryAidsGroupedViewModel.cs | 2 +- CompanyManagment.EFCore/Repository/SalaryAidRepository.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs index a6c16bc9..bbd18412 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs @@ -8,7 +8,7 @@ public class SalaryAidsGroupedViewModel { public List GroupedByEmployee { get; set; } public List GroupedByDate { get; set; } - public PagedResult SalaryAidListViewModels { get; set; } + public PagedResult List { get; set; } } diff --git a/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs b/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs index d34cc35f..fc54189d 100644 --- a/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs +++ b/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs @@ -197,7 +197,7 @@ public class SalaryAidRepository : RepositoryBase, ISalaryAidRe query = query.Where(x => x.SalaryAidDateTime >= startDate && x.SalaryAidDateTime <= endDate); } - result.SalaryAidListViewModels = new PagedResult() + result.List = new PagedResult() { TotalCount = query.Count(), List = query.OrderByDescending(x => x.SalaryAidDateTime).ApplyPagination(searchModel.PageIndex,searchModel.PageSize).ToList() From dddc4b143a248c3ff0534137381b0b518a7cf156 Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 11:29:41 +0330 Subject: [PATCH 06/12] add edit functionality for employee roll call details --- .../RollCall/RollCallCaseHistoryController.cs | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) 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 From 79a9d72b868e515c47a6373af08b8a3bab4b5b03 Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 11:32:16 +0330 Subject: [PATCH 07/12] rename SalaryAidViewModels property to Items in grouped view models --- .../SalaryAid/SalaryAidGroupedByDateViewModel.cs | 2 +- .../SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs | 2 +- CompanyManagment.EFCore/Repository/SalaryAidRepository.cs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs index a725e31f..0b26e5ec 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs @@ -8,7 +8,7 @@ public class SalaryAidGroupedByDateViewModel public string YearFa { get; set; } public int Month { get; set; } public int Year { get; set; } - public List SalaryAidViewModels { get; set; } + public List Items { get; set; } public string TotalAmount { get; set; } } diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs index b3d1d9e0..f3ac6b9d 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs @@ -6,7 +6,7 @@ public class SalaryAidGroupedByEmployeeViewModel { public string EmployeeName { get; set; } public long EmployeeId { get; set; } - public List SalaryAidViewModels { get; set; } + public List Items { get; set; } public string TotalAmount { get; set; } } diff --git a/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs b/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs index fc54189d..c0fcadc1 100644 --- a/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs +++ b/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs @@ -146,7 +146,7 @@ public class SalaryAidRepository : RepositoryBase, ISalaryAidRe { YearFa = x.Key.YearFa, MonthFa = x.Key.MonthFa, - SalaryAidViewModels = x.Select(s => new SalaryAidGroupedByDateViewModelItems() + Items = x.Select(s => new SalaryAidGroupedByDateViewModelItems() { Amount = s.Amount, EmployeeName = s.EmployeeFullName, @@ -175,7 +175,7 @@ public class SalaryAidRepository : RepositoryBase, ISalaryAidRe EmployeeId = x.Key, TotalAmount = x.Sum(s => s.Amount).ToMoney(), EmployeeName = employees.FirstOrDefault(e => e.id == x.Key).FullName, - SalaryAidViewModels = x.Select(s => new SalaryAidGroupedByEmployeeViewModelItems() + Items = x.Select(s => new SalaryAidGroupedByEmployeeViewModelItems() { Amount = s.Amount.ToMoney(), Id = s.id, From db32b1e6eaaabc84cd20c9ceb8685c38efb58845 Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 11:50:23 +0330 Subject: [PATCH 08/12] set WorkshopId in search model for salary aid list retrieval --- ServiceHost/Areas/Client/Controllers/SalaryAidController.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs index 5cb85812..6851acf3 100644 --- a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs +++ b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs @@ -22,6 +22,7 @@ public class SalaryAidController:ClientBaseController [HttpGet] public ActionResult GetList([FromQuery]SalaryAidSearchViewModel searchModel) { + searchModel.WorkshopId = _workshopId; var result = _salaryAidApplication.GetSearchListAsGrouped(searchModel); return Ok(result); } From 9475c786d3ec6220c4b8d901ffce8d50d39845e5 Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 11:58:52 +0330 Subject: [PATCH 09/12] add endpoint to remove employee roll calls by date --- .../RollCall/RollCallCaseHistoryController.cs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/ServiceHost/Areas/Client/Controllers/RollCall/RollCallCaseHistoryController.cs b/ServiceHost/Areas/Client/Controllers/RollCall/RollCallCaseHistoryController.cs index d9928860..e82b436e 100644 --- a/ServiceHost/Areas/Client/Controllers/RollCall/RollCallCaseHistoryController.cs +++ b/ServiceHost/Areas/Client/Controllers/RollCall/RollCallCaseHistoryController.cs @@ -132,7 +132,17 @@ public class RollCallCaseHistoryController : ClientBaseController var result = _rollCallApplication.ManualEdit(command); return result; } - + [HttpDelete("delete")] + public IActionResult OnPostRemoveEmployeeRollCallsInDate(RemoveEmployeeRollCallRequest request) + { + var result = _rollCallApplication.RemoveEmployeeRollCallsInDate(_workshopId, request.EmployeeId, request.Date); + + return new JsonResult(new + { + success = result.IsSuccedded, + message = result.Message, + }); + } // [HttpGet("edit")] // public ActionResult<> GetEditDetails(string date,long employeeId) @@ -181,4 +191,10 @@ public class EditRollCallDetailsResult public string DateFa { get; set; } public string TotalRollCallsDuration { get; set; } public List Records { get; set; } -} \ No newline at end of file +} + +public class RemoveEmployeeRollCallRequest +{ + public long EmployeeId { get; set; } + public string Date { get; set; } +} From 67910d2fa53d9477bf07bff92715947c69baed4b Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 12:50:53 +0330 Subject: [PATCH 10/12] add EditDetails method to SalaryAidController for retrieving salary aid details --- .../Client/Controllers/SalaryAidController.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs index 6851acf3..5af239b4 100644 --- a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs +++ b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs @@ -60,6 +60,20 @@ public class SalaryAidController:ClientBaseController return result; } + public ActionResult EditDetails(long id) + { + var data = _salaryAidApplication.GetDetails(id); + var res = new EditSalaryAidRequest() + { + Id = data.Id, + Amount = data.Amount.MoneyToDouble(), + CalculationMonth = data.CalculationMonth, + CalculationYear = data.CalculationYear, + SalaryDateTime = data.SalaryDateTime, + }; + return res; + } + [HttpDelete("{id:long}")] public ActionResult Delete(long id) { @@ -67,7 +81,7 @@ public class SalaryAidController:ClientBaseController return result; } [HttpPost("validate-excel")] - public ActionResult> ValidateExcel(IFormFile excel) + public ActionResult> ValidateExcel([FromForm]IFormFile excel) { var validation = _salaryAidImportExcel.ReadAndValidateExcel(excel, _workshopId); From bc491eec18de326ea40f41901141e0a04ecdcfec Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 13:55:02 +0330 Subject: [PATCH 11/12] add EditDetails endpoint to SalaryAidController for salary aid detail retrieval --- ServiceHost/Areas/Client/Controllers/SalaryAidController.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs index 5af239b4..c4f3b7f5 100644 --- a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs +++ b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs @@ -60,6 +60,7 @@ public class SalaryAidController:ClientBaseController return result; } + [HttpGet("edit")] public ActionResult EditDetails(long id) { var data = _salaryAidApplication.GetDetails(id); From 779514f5c0710e89a7d359981431fa5869216d17 Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 5 Feb 2026 14:18:18 +0330 Subject: [PATCH 12/12] refactor ValidateExcel method in SalaryAidController to use ValidateExcelRequest model --- .../Areas/Client/Controllers/SalaryAidController.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs index c4f3b7f5..21dc7c74 100644 --- a/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs +++ b/ServiceHost/Areas/Client/Controllers/SalaryAidController.cs @@ -82,14 +82,19 @@ public class SalaryAidController:ClientBaseController return result; } [HttpPost("validate-excel")] - public ActionResult> ValidateExcel([FromForm]IFormFile excel) + public ActionResult> ValidateExcel([FromForm]ValidateExcelRequest request) { - var validation = _salaryAidImportExcel.ReadAndValidateExcel(excel, _workshopId); + var validation = _salaryAidImportExcel.ReadAndValidateExcel(request.Excel, _workshopId); return validation; } } +public class ValidateExcelRequest +{ + public IFormFile Excel { get; set; } +} + public class EditSalaryAidRequest { public long Id { get; set; }