209 lines
6.3 KiB
C#
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,
|
|
});
|
|
|
|
}
|
|
}
|
|
}
|