296 lines
12 KiB
C#
296 lines
12 KiB
C#
using _0_Framework.Application;
|
|
using CompanyManagment.App.Contracts.Workshop;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using System.Security.Claims;
|
|
using Company.Domain.CustomizeWorkshopGroupSettingsAgg;
|
|
using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
|
|
using CompanyManagment.App.Contracts.Employee;
|
|
using System.Text.RegularExpressions;
|
|
using Microsoft.AspNetCore.Mvc.Formatters;
|
|
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
|
|
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
|
using _0_Framework.Infrastructure;
|
|
using CompanyManagment.App.Contracts.RollCallEmployee;
|
|
using Company.Domain.EmployeeAgg;
|
|
|
|
namespace ServiceHost.Areas.Client.Pages.Company.RollCall
|
|
{
|
|
[Authorize]
|
|
[NeedsPermission(SubAccountPermissionHelper.GroupingOperationsPermissionCode)]
|
|
public class GroupingModel : PageModel
|
|
{
|
|
private readonly IPasswordHasher _passwordHasher;
|
|
private readonly IWorkshopApplication _workshopApplication;
|
|
private readonly IEmployeeApplication _employeeApplication;
|
|
private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication;
|
|
private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopSettingsApplication;
|
|
private readonly IHttpContextAccessor _contextAccessor;
|
|
private readonly IAuthHelper _authHelper;
|
|
public bool GroupedAllEmployees;
|
|
private readonly long _workshopId;
|
|
public string WorkshopFullName;
|
|
public CustomizeWorkshopSettingsViewModel RollCallWorkshopSettings;
|
|
public List<RollCallEmployeeViewModel> RollCallEmployeeList;
|
|
|
|
public GroupingModel(IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ICustomizeWorkshopSettingsApplication rollCallWorkshopSettingsApplication, IEmployeeApplication employeeApplication, IHttpContextAccessor contextAccessor, IAuthHelper authHelper, IRollCallEmployeeApplication rollCallEmployeeApplication)
|
|
{
|
|
_passwordHasher = passwordHasher;
|
|
_workshopApplication = workshopApplication;
|
|
_customizeWorkshopSettingsApplication = rollCallWorkshopSettingsApplication;
|
|
_employeeApplication = employeeApplication;
|
|
_contextAccessor = contextAccessor;
|
|
_authHelper = authHelper;
|
|
_rollCallEmployeeApplication = rollCallEmployeeApplication;
|
|
var workshopHash = _contextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug");
|
|
_workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
|
|
if (_workshopId < 1)
|
|
throw new InvalidDataException("اختلال در کارگاه");
|
|
}
|
|
|
|
public bool IrregularWorkshopHaveGroupedAllPersonnelValidation(long workshopId)
|
|
{
|
|
//var isWorkshopIrregular = _customizeWorkshopSettingsApplication
|
|
// .GetWorkshopSettingsDetails(workshopId).WorkshopShiftStatus == WorkshopShiftStatus.Irregular;
|
|
|
|
//if (isWorkshopIrregular == false)
|
|
// return true;
|
|
var employeesWithoutGroup = _customizeWorkshopSettingsApplication.HasAnyEmployeeWithoutGroup(workshopId);
|
|
if (employeesWithoutGroup)
|
|
return false;
|
|
return true;
|
|
}
|
|
public IActionResult OnGet()
|
|
{
|
|
//if (_workshopId != 11)
|
|
// return Redirect("/Client/Company/RollCall");
|
|
|
|
RollCallEmployeeList = _rollCallEmployeeApplication.GetEmployeeRollCalls(_workshopId);
|
|
|
|
var account = _authHelper.CurrentAccountInfo();
|
|
GroupedAllEmployees = IrregularWorkshopHaveGroupedAllPersonnelValidation(_workshopId);
|
|
|
|
var workshop = _workshopApplication.GetWorkshopInfo(_workshopId);
|
|
WorkshopFullName = workshop.WorkshopFullName;
|
|
|
|
RollCallWorkshopSettings = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(_workshopId, account);
|
|
if (RollCallWorkshopSettings.Id == 0)
|
|
{
|
|
return Redirect("/Client/Company/RollCall");
|
|
}
|
|
|
|
return Page();
|
|
}
|
|
|
|
public IActionResult OnGetWorkshopSettingsDataAjax()
|
|
{
|
|
var account = _authHelper.CurrentAccountInfo();
|
|
|
|
var result = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(_workshopId, account);
|
|
return new JsonResult(new
|
|
{
|
|
isSuccedded = true,
|
|
data = result
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEmployeesGroupAjax(long groupId)
|
|
{
|
|
var result = _customizeWorkshopSettingsApplication.GetEmployeeSettingsByGroupSettingsId(groupId);
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = result
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEmployeesGroupSettingsByEmployeeId(long employeeId)
|
|
{
|
|
var result = _customizeWorkshopSettingsApplication.GetEmployeesGroupSettingsByEmployeeId(employeeId, _workshopId);
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = result
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetCreateGroup(long workshopSettingId)
|
|
{
|
|
var command = new CreateCustomizeWorkshopGroupSettings
|
|
{
|
|
CustomizeWorkshopSettingId = workshopSettingId
|
|
};
|
|
return Partial("ModalCreateGroup", command);
|
|
}
|
|
|
|
public IActionResult OnPostCreateGroup(CreateCustomizeWorkshopGroupSettings command)
|
|
{
|
|
command.Salary = "0";
|
|
OperationResult result = _customizeWorkshopSettingsApplication.CreateGroupSettingsByRollCallWorkshopSettingId(command);
|
|
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEditGroup(long groupId)
|
|
{
|
|
var command = _customizeWorkshopSettingsApplication.GetCustomizeWorkshopGroupSettingsDetails(groupId);
|
|
|
|
command.IsShiftChanged = _customizeWorkshopSettingsApplication
|
|
.GetEmployeeSettingsByGroupSettingsId(groupId)
|
|
.Any(x => x.IsSettingChanged == true);
|
|
return Partial("ModalEditGroup", command);
|
|
}
|
|
|
|
public IActionResult OnPostEditGroup(EditCustomizeWorkshopGroupSettings command)
|
|
{
|
|
var result = _customizeWorkshopSettingsApplication.EditSimpleRollCallGroupSetting(command);
|
|
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEmployeeIsChangeList(long groupId)
|
|
{
|
|
var result = _customizeWorkshopSettingsApplication.GetEmployeeSettingsByGroupSettingsId(groupId)
|
|
.Where(x => x.IsSettingChanged).ToList();
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = result
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostDeleteGroup(long groupId)
|
|
{
|
|
var result = _customizeWorkshopSettingsApplication.RemoveGroupSettings(groupId);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEmployeeGroupAjax(long rollCallWorkshopSettingId)
|
|
{
|
|
var result = _customizeWorkshopSettingsApplication.GetEmployeesWithoutGroup(rollCallWorkshopSettingId);
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = result
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetCreateEmployee(long workshopSettingId, long groupId)
|
|
{
|
|
var command = new CreateCustomizeEmployeeSettings()
|
|
{
|
|
WorkshopSettingId = workshopSettingId,
|
|
GroupId = groupId
|
|
};
|
|
|
|
return Partial("ModalAddEmployeeToGroup", command);
|
|
}
|
|
|
|
public IActionResult OnPostCreateEmployee(CreateCustomizeEmployeeSettings command)
|
|
{
|
|
command.WorkshopId = _workshopId;
|
|
OperationResult result = _customizeWorkshopSettingsApplication.CreateEmployeeSettings(command);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostRemoveEmployee(long employeeId, long groupId)
|
|
{
|
|
OperationResult result = _customizeWorkshopSettingsApplication.RemoveEmployeeFromRollCallWorkshopGroup(employeeId, groupId, _workshopId);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEditEmployee(long groupId, List<long> employeeId)
|
|
{
|
|
var employee = _customizeWorkshopSettingsApplication.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(_workshopId, employeeId.First());
|
|
var command = new EditCustomizeEmployeeSettings()
|
|
{
|
|
Id = employee.Id,
|
|
EmployeeIds = employeeId,
|
|
EmployeeFullName = employee.EmployeeFullName,
|
|
Salary = employee.Salary.ToMoney(),
|
|
NameGroup = employee.Name,
|
|
ShiftViewModel = employee.RollCallWorkshopShifts,
|
|
BreakTime = employee.BreakTime,
|
|
WorkshopShiftStatus = employee.WorkshopShiftStatus,
|
|
IrregularShift = employee.IrregularShift,
|
|
FridayWork = employee.FridayWork,
|
|
HolidayWork = employee.HolidayWork,
|
|
CustomizeRotatingShifts = employee.CustomizeRotatingShiftsViewModels
|
|
};
|
|
return Partial("ModalEditEmployeeFromGroup", command);
|
|
}
|
|
|
|
public IActionResult OnPostChangeEditEmployee(EditCustomizeEmployeeSettings command)
|
|
{
|
|
command.WorkshopId = _workshopId;
|
|
OperationResult result = _customizeWorkshopSettingsApplication.EditSimpleRollCallEmployeeSetting(command);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
// public IActionResult OnGetGroupingSetting(long groupId)
|
|
// {
|
|
// var command = _customizeWorkshopSettingsApplication.GetCustomizeWorkshopGroupSettingsDetails(groupId);
|
|
|
|
// return Partial("ModalSettingGroup", command);
|
|
//}
|
|
|
|
// public IActionResult OnPostGroupingSetting(EditCustomizeWorkshopGroupSettings command)
|
|
// {
|
|
// command.EmployeeIds = _customizeWorkshopSettingsApplication.GetEmployeeSettingsByGroupSettingsId(command.Id).Select(x => x.EmployeeId).ToList();
|
|
// OperationResult result = _customizeWorkshopSettingsApplication.EditRollCallGroupSetting(command);
|
|
|
|
// return new JsonResult(new
|
|
// {
|
|
// isSuccess = result.IsSuccedded,
|
|
// message = result.Message
|
|
// });
|
|
//}
|
|
|
|
//public IActionResult OnGetGroupingEmployeeSetting(long customizeEmployeeId, List<long> employeeId)
|
|
// {
|
|
// var command = _customizeWorkshopSettingsApplication.GetCustomizeEmployeeSettingsDetails(customizeEmployeeId);
|
|
// command.EmployeeIds = employeeId;
|
|
|
|
// return Partial("ModalSettingGroupEmployee", command);
|
|
// }
|
|
|
|
// public IActionResult OnPostGroupingEmployeeSetting(EditCustomizeEmployeeSettings command)
|
|
// {
|
|
// command.WorkshopId = _workshopId;
|
|
// OperationResult result = _customizeWorkshopSettingsApplication.EditRollCallEmployeeSettings(command);
|
|
|
|
// return new JsonResult(new
|
|
// {
|
|
// isSuccess = result.IsSuccedded,
|
|
// message = result.Message
|
|
// });
|
|
//}
|
|
}
|
|
}
|