Files
Backend-Api/ServiceHost/Areas/AdminNew/Pages/Company/RollCall/CaseHistory.cshtml.cs

209 lines
6.3 KiB
C#

using _0_Framework.Application;
using CompanyManagment.App.Contracts.Error;
using CompanyManagment.App.Contracts.Leave;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.RollCallEmployee;
using CompanyManagment.App.Contracts.Workshop;
using CompanyManagment.App.Contracts.YearlySalary;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Security.Claims;
namespace ServiceHost.Areas.AdminNew.Pages.Company.RollCall
{
public class CaseHistoryModel : PageModel
{
private readonly IAuthHelper _authHelper;
private readonly IPasswordHasher _passwordHasher;
private readonly IWorkshopApplication _workshopApplication;
private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication;
private readonly IRollCallApplication _rollCallApplication;
private readonly IYearlySalaryApplication _yearlySalaryApplication;
private readonly ILeaveApplication _leaveApplication;
public long WorkshopId;
public RollCallsByDateViewModel RollCallViewModels { get; set; }
public EmployeeRollCallsByMonthViewModel RollCallEmployeeViewModels { get; set; }
public string WorkshopFullName { get; set; }
public List<RollCallEmployeeViewModel> RollCallEmployeeList;
public RollCallSearchModel SearchModel { get; set; } = new();
public List<string> YearlyList { get; set; }
public CaseHistoryModel(IAuthHelper authHelper, IPasswordHasher passwordHasher, IRollCallEmployeeApplication rollCallEmployeeApplication, IWorkshopApplication workshopApplication, IRollCallApplication rollCallApplication, IYearlySalaryApplication yearlySalaryApplication, ILeaveApplication leaveApplication)
{
_authHelper = authHelper;
_passwordHasher = passwordHasher;
_rollCallEmployeeApplication = rollCallEmployeeApplication;
_workshopApplication = workshopApplication;
_rollCallApplication = rollCallApplication;
_yearlySalaryApplication = yearlySalaryApplication;
_leaveApplication = leaveApplication;
}
public IActionResult OnGet(long workshopId)
{
WorkshopId = workshopId;
if (_rollCallEmployeeApplication.GetByWorkshopId(workshopId).Any())
{
RollCallEmployeeList = _rollCallEmployeeApplication.GetEmployeeRollCalls(workshopId);
WorkshopFullName = _workshopApplication.GetDetails(workshopId).WorkshopFullName;
var searchModel = new RollCallSearchModel()
{
WorkshopId = workshopId
};
RollCallViewModels = _rollCallApplication.GetWorkshopRollCallHistory(searchModel);
YearlyList = _yearlySalaryApplication.GetYears();
return Page();
}
else
{
return Redirect("/AdminNew/Company/RollCall");
}
}
public IActionResult OnGetCaseHistoryRollCallAjax(int dateIndex, string exactDateFa, string startDate, string endDate, long employeeId, string dateEmployeeIndex, long workshopId)
{
if (employeeId > 0)
{
RollCallEmployeeViewModels = _rollCallApplication.GetEmployeeRollCallsHistory(employeeId, workshopId, startDate, endDate, exactDateFa, dateEmployeeIndex);
if (RollCallEmployeeViewModels == null)
return new JsonResult(new
{
IsSuccedded = false,
message = "داده ای یافت نشد!",
});
}
else
{
var searchModel = new RollCallSearchModel()
{
WorkshopId = workshopId,
DateIndex = dateIndex,
ExactDateFa = exactDateFa,
StarDateFa = startDate,
EndDateFa = endDate,
EmployeeId = employeeId
};
RollCallViewModels = _rollCallApplication.GetWorkshopRollCallHistory(searchModel);
}
return new JsonResult(new
{
IsSuccedded = true,
data = RollCallViewModels,
dataEmployee = RollCallEmployeeViewModels,
});
}
public IActionResult OnGetEmployeeList(long workshopId)
{
var resultData = _rollCallEmployeeApplication.GetRollCallEmployeesByWorkshopId(workshopId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public IActionResult OnGetCreate(long workshopId)
{
var command = new CreateOrEditEmployeeRollCall();
command.WorkshopId = workshopId;
return Partial("ModalAddRollCall", command);
}
public IActionResult OnGetCheckEmployeeData(long employeeId, string date, long workshopId)
{
bool isSuccess = false;
List<RollCallViewModel> resultData = new List<RollCallViewModel>();
if (!string.IsNullOrWhiteSpace(date))
{
resultData = _rollCallApplication.GetWorkshopEmployeeRollCallsForDate(workshopId, employeeId, date);
isSuccess = resultData.Any();
}
var result = _leaveApplication.HasLeave(workshopId, employeeId, date);
var isLeave = result.IsSuccedded ? result.Data : false;
var isNullEndDate = resultData.Any(x => x.EndDate == null);
return new JsonResult(new
{
success = isSuccess,
data = resultData,
hasLeave = isLeave,
hasNullEndDate = isNullEndDate
});
}
public IActionResult OnGetEdit(long employeeId, string date, long workshopId)
{
if (workshopId < 1)
{
var resultError = new ErrorViewModel()
{
Message = "کارگاه شما یافت نشده است."
};
return Partial("../Error/_ErrorModal", resultError);
}
var result = _rollCallApplication.GetWorkshopEmployeeRollCallsForDate(workshopId, employeeId, date);
var name = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, workshopId);
var command = new EmployeeRollCallsViewModel()
{
EmployeeFullName = name.EmployeeFullName,
EmployeeId = employeeId,
DateFa = date,
RollCalls = result
};
return Partial("ModalEditRollCall", command);
}
public IActionResult OnPostManualCreateOrEdit(CreateOrEditEmployeeRollCall command, long workshopId)
{
command.WorkshopId = workshopId;
var result = _rollCallApplication.ManualEdit(command);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnPostRemoveEmployeeRollCallsInDate(long employeeId, string date, long workshopId)
{
if (workshopId < 1)
return new JsonResult(new
{
success = false,
message = "هیچ کارگاهی یافت نشده است!",
});
var result = _rollCallApplication.RemoveEmployeeRollCallsInDate(workshopId, employeeId, date);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
});
}
}
}