diff --git a/CompanyManagment.Application/LeftWorkTempApplication.cs b/CompanyManagment.Application/LeftWorkTempApplication.cs index 5444bf5c..37681395 100644 --- a/CompanyManagment.Application/LeftWorkTempApplication.cs +++ b/CompanyManagment.Application/LeftWorkTempApplication.cs @@ -49,40 +49,51 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication _rollCallEmployeeRepository = rollCallEmployeeRepository; } - public async Task Create(CreateLeftWorkTemp command) - { - var op = new OperationResult(); + public async Task Create(CreateLeftWorkTemp command) + { + var op = new OperationResult(); - foreach (var employee in command.EmployeeIds) - { - #region Validation + foreach (var employeeId in command.EmployeeIds) + { + #region Validation - if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false) - { - return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است"); - } - if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingDateGr) == false) - { - return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است"); - } - var leftWork = _leftWorkRepository.GetByDateAndWorkshopIdAndEmployeeId(command.WorkshopId, employee, lastDayStandingDateGr); + if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false) + { + return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است"); + } + if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingDateGr) == false) + { + return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است"); + } + + var leftWork = await _leftWorkRepository.GetLastLeftWork(employeeId, command.WorkshopId); if (lastDayStandingDateGr.AddDays(1).Date != leftWorkDateGr) - { - return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند"); - } - - if (leftWork == null) - { - return op.Failed("شروع به کار پرسنل یافت نشد"); - } + { + return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند"); + } + + if (leftWork == null) + { + return op.Failed("شروع به کار پرسنل یافت نشد"); + } + + if (leftWork.HasLeft) + { + return op.Failed("پرسنل وارد شده قبلا ترک کار ثبت شده است"); + } + + if (leftWork.StartWorkDate > lastDayStandingDateGr) + { + return op.Failed("تاریخ ثبت شده قبل از شروع به کار است"); + } + + if (leftWork.WorkshopId != command.WorkshopId || leftWork.EmployeeId != employeeId) + { + return op.Failed("اطلاعات وارد شده نامعتبر است"); + } - if (leftWork.WorkshopId != command.WorkshopId || leftWork.EmployeeId != employee) - { - return op.Failed("اطلاعات وارد شده نامعتبر است"); - } - //if (leftWork.StartWorkDate >= leftWorkDateGr) //{ @@ -106,17 +117,17 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication #endregion - var leftWorkTemp = LeftWorkTemp.CreateLeftWork(leftWork.Id, leftWork.StartWorkDateGr, leftWorkDateGr, lastDayStandingDateGr, - command.WorkshopId, employee, leftWork.JobId); + var leftWorkTemp = LeftWorkTemp.CreateLeftWork(leftWork.id, leftWork.StartWorkDate, leftWorkDateGr, lastDayStandingDateGr, + command.WorkshopId, employeeId, leftWork.JobId); - await _leftWorkTempRepository.CreateAsync(leftWorkTemp); - } + await _leftWorkTempRepository.CreateAsync(leftWorkTemp); + } - await _leftWorkTempRepository.SaveChangesAsync(); - return op.Succcedded(); - } + await _leftWorkTempRepository.SaveChangesAsync(); + return op.Succcedded(); + } - public Task GetStartAndLeftWorkDetails(long employeeId, long workshopId) + public Task GetStartAndLeftWorkDetails(long employeeId, long workshopId) { return _leftWorkTempRepository.GetStartAndLeftWorkDetails(employeeId, workshopId); } diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/CreateEmployeeForm.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/CreateEmployeeForm.cshtml index 035e1372..2d64b133 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/CreateEmployeeForm.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/CreateEmployeeForm.cshtml @@ -155,12 +155,8 @@ \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml index eb419e5d..062c0253 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml @@ -49,13 +49,9 @@ \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Index.cshtml.cs b/ServiceHost/Areas/Client/Pages/Index.cshtml.cs index 6f831172..7a2e4ea5 100644 --- a/ServiceHost/Areas/Client/Pages/Index.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Index.cshtml.cs @@ -16,6 +16,7 @@ using System.Security.Claims; using _0_Framework.Infrastructure; using CompanyManagment.App.Contracts.Bank; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; +using CompanyManagment.App.Contracts.Job; using CompanyManagment.App.Contracts.PersonnleCode; using CompanyManagment.App.Contracts.LeftWorkTemp; @@ -39,6 +40,7 @@ namespace ServiceHost.Areas.Client.Pages private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopSettingsApplication; private readonly IBankApplication _bankApplication; private readonly ILeftWorkTempApplication _leftWorkTempApplication; + private readonly IJobApplication _jobApplication; public string profilePicture { get; set; } public string AccountFullName { get; set; } @@ -59,7 +61,7 @@ namespace ServiceHost.Areas.Client.Pages public bool HasApkToDownload { get; set; } #endregion - public IndexModel(IAuthHelper authHelper, IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ILeaveApplication leaveApplication, IEmployeeApplication employeeApplication, IPaymentToEmployeeItemApplication paymentToEmployeeItemApplication, IPaymentToEmployeeApplication paymentToEmployeeApplication, IHolidayItemApplication holidayItemApplication, IInsuranceListApplication insuranceListApplication, IAndroidApkVersionApplication androidApkVersionApplication, IRollCallServiceApplication rollCallServiceApplication, IPersonnelCodeApplication personnelCodeApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IBankApplication bankApplication, ILeftWorkTempApplication leftWorkTempApplication) + public IndexModel(IAuthHelper authHelper, IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ILeaveApplication leaveApplication, IEmployeeApplication employeeApplication, IPaymentToEmployeeItemApplication paymentToEmployeeItemApplication, IPaymentToEmployeeApplication paymentToEmployeeApplication, IHolidayItemApplication holidayItemApplication, IInsuranceListApplication insuranceListApplication, IAndroidApkVersionApplication androidApkVersionApplication, IRollCallServiceApplication rollCallServiceApplication, IPersonnelCodeApplication personnelCodeApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IBankApplication bankApplication, ILeftWorkTempApplication leftWorkTempApplication, IJobApplication jobApplication) { _workshopApplication = workshopApplication; _employeeApplication = employeeApplication; @@ -73,6 +75,7 @@ namespace ServiceHost.Areas.Client.Pages _customizeWorkshopSettingsApplication = customizeWorkshopSettingsApplication; _bankApplication = bankApplication; _leftWorkTempApplication = leftWorkTempApplication; + _jobApplication = jobApplication; _leaveApplication = leaveApplication; _authHelper = authHelper; _passwordHasher = passwordHasher; @@ -496,7 +499,22 @@ namespace ServiceHost.Areas.Client.Pages }); } - public IActionResult OnGetCreateEmployee() + public IActionResult OnGetJobSearch(string jobName) + { + var jobViewModels = _jobApplication.GetJobListByText(jobName); + + return new JsonResult(jobViewModels); + } + + public async Task OnGetEmployeeDetailsWithNationalCode(string nationalCode, string birthDate) + { + var workshopSlug = User.FindFirst("WorkshopSlug")?.Value; + long workshopIDecrypt = _passwordHasher.SlugDecrypt(workshopSlug); + var result = await _employeeApplication.ValidateCreateEmployeeClientByNationalCodeAndWorkshopId(nationalCode, birthDate, workshopIDecrypt); + return new JsonResult(result); + } + + public IActionResult OnGetCreateEmployee() { var workshopSlug = User.FindFirst("WorkshopSlug")?.Value; long workshopIDecrypt = _passwordHasher.SlugDecrypt(workshopSlug); diff --git a/ServiceHost/Areas/Client/Pages/Shared/_headerAndFooter.cshtml b/ServiceHost/Areas/Client/Pages/Shared/_headerAndFooter.cshtml index c70dbce1..a97cbd07 100644 --- a/ServiceHost/Areas/Client/Pages/Shared/_headerAndFooter.cshtml +++ b/ServiceHost/Areas/Client/Pages/Shared/_headerAndFooter.cshtml @@ -254,22 +254,21 @@ @*
diff --git a/ServiceHost/wwwroot/AssetsClient/css/responsive.css b/ServiceHost/wwwroot/AssetsClient/css/responsive.css index 19d2c6b9..1249cc74 100644 --- a/ServiceHost/wwwroot/AssetsClient/css/responsive.css +++ b/ServiceHost/wwwroot/AssetsClient/css/responsive.css @@ -519,7 +519,7 @@ color: #fff; font-weight: 600; padding: 2px 0 0 0; - top: -12px; + top: -4px; left: -4px; } diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeForm.js b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeForm.js index d68ae870..e3f99787 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeForm.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeForm.js @@ -6,7 +6,9 @@ $(document).ready(function () { dir: "rtl" }); var jobsLoadAjaxURL = ''; - if (currentUrl.includes("/Client/Company/Employees/EmployeeList")) { + if (currentUrl.includes("/Client#showmodal=/Client?handler=CreateEmployee")) { + jobsLoadAjaxURL = jobsLoadHomeAjaxUrl; + } else if (currentUrl.includes("/Client/Company/Employees/EmployeeList")) { jobsLoadAjaxURL = jobsLoadEmployeeAjaxUrl; } else { jobsLoadAjaxURL = jobsLoadRollCallAjaxUrl; diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeModal.js b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeModal.js index 95b84185..13b7bb96 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeModal.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeModal.js @@ -427,7 +427,7 @@ function saveFullData() { if (pic1) formData.append("Command.RollCallUploadEmployeePicture.Picture1", pic1); if (pic2) formData.append("Command.RollCallUploadEmployeePicture.Picture2", pic2); - if (currentUrl.includes("/Client/Company/Employees/EmployeeList")) { + if (currentUrl.includes("/Client/Company/Employees/EmployeeList") || currentUrl.includes("/Client#showmodal=/Client?handler=CreateEmployee")) { employeeBankInfos.forEach((item, index) => { formData.append(`Command.EmployeeBankInfos[${index}].BankId`, item.BankId); formData.append(`Command.EmployeeBankInfos[${index}].BankAccountNumber`, item.BankAccountNumber); diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/IdentityInformationModal.js b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/IdentityInformationModal.js index ab5dc1a1..59453d6c 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/IdentityInformationModal.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/IdentityInformationModal.js @@ -66,7 +66,10 @@ function checkNationalCodeAndBirthday() { function checkNationalCode(nationalCode, birthDate) { let checkNationalUrl = ''; - if (currentUrl.includes("/Client/Company/RollCall/EmployeeUploadPicture")) { + + if (currentUrl.includes("/Client#showmodal=/Client?handler=CreateEmployee")) { + checkNationalUrl = getHomeDataByNationalCodeUrl; + } else if (currentUrl.includes("/Client/Company/RollCall/EmployeeUploadPicture")) { checkNationalUrl = getRollCallDataByNationalCodeUrl; } else { checkNationalUrl = getEmployeeDataByNationalCodeUrl; diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/WorkshopSettingGrouping.js b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/WorkshopSettingGrouping.js index 391a785b..167c2288 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/WorkshopSettingGrouping.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/WorkshopSettingGrouping.js @@ -1,4 +1,6 @@ -$(document).ready(function () { +let currentUrlGroup = window.location.href; + +$(document).ready(function () { $(document).on("click", ".btn-cancel2", function () { $('#MainModal').modal('toggle'); }); @@ -696,12 +698,10 @@ $(document).ready(function () { }); function loadWorkshopSettingList() { - let currentUrl = window.location.href; // Get the full URL let workshopSettingListUrl = ''; - - if (currentUrl.includes("/Client#showmodal=/Client?handler=CreateEmployee")) { + if (currentUrlGroup.includes("/Client#showmodal=/Client?handler=CreateEmployee")) { workshopSettingListUrl = workshopSettingListAjaxHome; - } else if (currentUrl.includes("/Client/Company/RollCall/EmployeeUploadPicture")) { + } else if (currentUrlGroup.includes("/Client/Company/RollCall/EmployeeUploadPicture")) { workshopSettingListUrl = workshopSettingListAjaxRollCall; } else { workshopSettingListUrl = workshopSettingListAjax; @@ -785,11 +785,21 @@ $('#workshopSettingSelect').on('change', function () { $('#next-step').removeClass('disable'); } + + let workshopSettingListUrl = ''; + if (currentUrlGroup.includes("/Client#showmodal=/Client?handler=CreateEmployee")) { + workshopSettingListUrl = workshopSettingListAjaxHome; + } else if (currentUrlGroup.includes("/Client/Company/RollCall/EmployeeUploadPicture")) { + workshopSettingListUrl = workshopSettingListAjaxRollCall; + } else { + workshopSettingListUrl = workshopSettingListAjax; + } + $.ajax({ async: false, dataType: 'json', type: 'GET', - url: workshopSettingListAjax, + url: workshopSettingListUrl, headers: { "RequestVerificationToken": antiForgeryToken }, success: function (response) { const workshopSettingGroupSelecting = response.data;