feat: update current day roll call API to accept search model for filtering
This commit is contained in:
@@ -25,7 +25,7 @@ namespace Company.Domain.RollCallAgg
|
||||
DateTime endSearch);
|
||||
void RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, DateTime date);
|
||||
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
|
||||
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
|
||||
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId,WorkshopCurrentDayRollCallSearchModel searchModel);
|
||||
List<PersonnelCheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(IEnumerable<long> employeeIds,
|
||||
long workshopId, DateTime start, DateTime end);
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace CompanyManagment.App.Contracts.RollCall
|
||||
/// <summary>
|
||||
/// گزارش آنلاین حضور غیاب
|
||||
/// </summary>
|
||||
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
|
||||
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId,WorkshopCurrentDayRollCallSearchModel searchModel);
|
||||
|
||||
/// <summary>
|
||||
/// گزارش آفلاین حضور غیاب کارگاه
|
||||
@@ -126,6 +126,13 @@ namespace CompanyManagment.App.Contracts.RollCall
|
||||
/// <returns></returns>
|
||||
OperationResult RecalculateValues(long workshopId, List<ReCalculateRollCallValues> command);
|
||||
}
|
||||
|
||||
public class WorkshopCurrentDayRollCallSearchModel
|
||||
{
|
||||
public long WorkshopId { get; set; }
|
||||
public int PersonnelCode { get; set; }
|
||||
}
|
||||
|
||||
public class ReCalculateRollCallValues
|
||||
{
|
||||
public long EmployeeId { get; set; }
|
||||
|
||||
@@ -144,9 +144,9 @@ public class RollCallApplication : IRollCallApplication
|
||||
return _rollCallRepository.GetWorkshopRollCallHistory(searchModel);
|
||||
}
|
||||
|
||||
public CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId)
|
||||
public CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId, WorkshopCurrentDayRollCallSearchModel searchModel)
|
||||
{
|
||||
return _rollCallRepository.GetWorkshopCurrentDayRollCalls(workshopId);
|
||||
return _rollCallRepository.GetWorkshopCurrentDayRollCalls(workshopId, searchModel);
|
||||
}
|
||||
|
||||
public List<CheckoutDailyRollCallViewModel> GetActiveEmployeeRollCallsForDuration(long employeeId, long workshopId, string startDate,
|
||||
|
||||
@@ -1052,11 +1052,11 @@ public class RollCallRepository : RepositoryBase<long, RollCall>, IRollCallRepos
|
||||
|
||||
|
||||
//گزارش آنلاین حضور غیاب کارگاه
|
||||
public CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId)
|
||||
public CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId,
|
||||
WorkshopCurrentDayRollCallSearchModel searchModel)
|
||||
{
|
||||
var date = DateTime.Now.Date;
|
||||
|
||||
|
||||
|
||||
//get active leaves for workshop which are active today and accepted and are either روزانه and استحقاقی or استعلاجی
|
||||
var leaves = _context.LeaveList
|
||||
.Where(x =>
|
||||
@@ -1070,7 +1070,11 @@ public class RollCallRepository : RepositoryBase<long, RollCall>, IRollCallRepos
|
||||
//var workingEmployees =
|
||||
// _context.LeftWorkList.Where(x => x.WorkshopId == workshopId && x.StartWorkDate < date && x.LeftWorkDate.Date > date);
|
||||
|
||||
|
||||
if (searchModel.PersonnelCode>0)
|
||||
{
|
||||
personnelCodes = personnelCodes.Where(x=>x.PersonnelCode == searchModel.PersonnelCode);
|
||||
}
|
||||
|
||||
|
||||
//get activated employees
|
||||
var activeEmployees =
|
||||
@@ -1084,6 +1088,15 @@ public class RollCallRepository : RepositoryBase<long, RollCall>, IRollCallRepos
|
||||
x.WorkshopId == workshopId && (x.ShiftDate.Date == date || x.EndDate == null) && x.RollCallModifyType != RollCallModifyType.Undefined);
|
||||
|
||||
|
||||
if (searchModel.WorkshopId>0)
|
||||
{
|
||||
leaves = leaves.Where(x=>x.WorkshopId == searchModel.WorkshopId);
|
||||
personnelCodes = personnelCodes.Where(x=>x.WorkshopId == searchModel.WorkshopId);
|
||||
activeEmployees = activeEmployees.Where(x=>x.WorkshopId == searchModel.WorkshopId);
|
||||
rollCallsQuery = rollCallsQuery.Where(x=>x.WorkshopId == searchModel.WorkshopId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var mustBePresent = activeEmployees.Where(x => !leaves.Any(y => y.EmployeeId == x.EmployeeId));
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.RollCall
|
||||
WorkshopId = workshopId,
|
||||
};
|
||||
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId, new WorkshopCurrentDayRollCallSearchModel());
|
||||
return Page();
|
||||
}
|
||||
else
|
||||
@@ -56,7 +56,7 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.RollCall
|
||||
|
||||
public IActionResult OnGetCurrentDayAjax(string type, long workshopId)
|
||||
{
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId, new WorkshopCurrentDayRollCallSearchModel());
|
||||
|
||||
List<object> data = new();
|
||||
switch (type)
|
||||
@@ -83,7 +83,7 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.RollCall
|
||||
|
||||
public IActionResult OnGetCurrentAjaxCount(long workshopId)
|
||||
{
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId, new WorkshopCurrentDayRollCallSearchModel());
|
||||
|
||||
var absentEmployeesCount = RollCallViewModels.AbsentEmployees.Count(x => !x.HasLeave);
|
||||
var leaveEmployeesCount = RollCallViewModels.AbsentEmployees.Count(x => x.HasLeave);
|
||||
|
||||
@@ -17,9 +17,9 @@ public class RollCallController:ClientBaseController
|
||||
_workshopId = authHelper.GetWorkshopId();
|
||||
}
|
||||
[HttpGet("current-day")]
|
||||
public ActionResult<CurrentDayRollCall> GetCurrentDay()
|
||||
public ActionResult<CurrentDayRollCall> GetCurrentDay(WorkshopCurrentDayRollCallSearchModel searchModel)
|
||||
{
|
||||
var res = _rollCallApplication.GetWorkshopCurrentDayRollCalls(_workshopId);
|
||||
var res = _rollCallApplication.GetWorkshopCurrentDayRollCalls(_workshopId, searchModel);
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -81,7 +81,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
|
||||
WorkshopId = workshopId,
|
||||
};
|
||||
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId, new WorkshopCurrentDayRollCallSearchModel());
|
||||
return Page();
|
||||
}
|
||||
else
|
||||
@@ -103,7 +103,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
|
||||
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
||||
if (workshopId > 0)
|
||||
{
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId, new WorkshopCurrentDayRollCallSearchModel());
|
||||
|
||||
List<object> data = new();
|
||||
switch (type)
|
||||
@@ -143,7 +143,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
|
||||
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
||||
if (workshopId > 0)
|
||||
{
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
||||
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId, new WorkshopCurrentDayRollCallSearchModel());
|
||||
|
||||
var absentEmployeesCount = RollCallViewModels.AbsentEmployees.Count(x => !x.HasLeave);
|
||||
var leaveEmployeesCount = RollCallViewModels.AbsentEmployees.Count(x => x.HasLeave);
|
||||
|
||||
Reference in New Issue
Block a user