finish create employee bug

This commit is contained in:
MahanCh
2025-03-17 20:42:36 +03:30
parent ebb1d3dd61
commit be9051d8b0
10 changed files with 113 additions and 78 deletions

View File

@@ -49,40 +49,51 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
_rollCallEmployeeRepository = rollCallEmployeeRepository;
}
public async Task<OperationResult> Create(CreateLeftWorkTemp command)
{
var op = new OperationResult();
public async Task<OperationResult> 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<GetStartWorkTempDetails> GetStartAndLeftWorkDetails(long employeeId, long workshopId)
public Task<GetStartWorkTempDetails> GetStartAndLeftWorkDetails(long employeeId, long workshopId)
{
return _leftWorkTempRepository.GetStartAndLeftWorkDetails(employeeId, workshopId);
}

View File

@@ -155,12 +155,8 @@
<script>
//Job Load
var jobsLoadEmployeeAjaxUrl = `@Url.Page("/Company/Employees/EmployeeList", "JobSearch")`;
var jobsLoadRollCallAjaxUrl = `@Url.Page("/Company/RollCall/EmployeeUploadPicture", "JobSearch")`;
//get Employee Data By NationalCode
var getEmployeeDataByNationalCodeUrl = `@Url.Page("/Company/Employees/EmployeeList", "EmployeeDetailsWithNationalCode")`;
var getRollCallDataByNationalCodeUrl = `@Url.Page("/Company/RollCall/EmployeeUploadPicture", "EmployeeDetailsWithNationalCode")`;
var jobsLoadEmployeeAjaxUrl = `@Url.Page("/Company/Employees/EmployeeList", "JobSearch")`; // EmployeeList Handler
var jobsLoadRollCallAjaxUrl = `@Url.Page("/Company/RollCall/EmployeeUploadPicture", "JobSearch")`; // RollCall Handler
var jobsLoadHomeAjaxUrl = `@Url.Page("/Index", "JobSearch")`; // Home Handler
</script>
<script src="~/assetsclient/pages/employees/js/createemployeeform.js?ver=@clientVersion"></script>

View File

@@ -49,13 +49,9 @@
</div>
<script>
//Job Load
var jobsLoadEmployeeAjaxUrl = `@Url.Page("/Company/Employees/EmployeeList", "JobSearch")`;
var jobsLoadRollCallAjaxUrl = `@Url.Page("/Company/RollCall/EmployeeUploadPicture", "JobSearch")`;
//get Employee Data By NationalCode
var getEmployeeDataByNationalCodeUrl = `@Url.Page("/Company/Employees/EmployeeList", "EmployeeDetailsWithNationalCode")`;
var getRollCallDataByNationalCodeUrl = `@Url.Page("/Company/RollCall/EmployeeUploadPicture", "EmployeeDetailsWithNationalCode")`;
var getEmployeeDataByNationalCodeUrl = `@Url.Page("/Company/Employees/EmployeeList", "EmployeeDetailsWithNationalCode")`; // EmployeeList Handler
var getRollCallDataByNationalCodeUrl = `@Url.Page("/Company/RollCall/EmployeeUploadPicture", "EmployeeDetailsWithNationalCode")`; // RollCall Handler
var getHomeDataByNationalCodeUrl = `@Url.Page("/Index", "EmployeeDetailsWithNationalCode")`; // Home Handler
</script>
<script src="~/assetsclient/pages/employees/js/identityinformationmodal.js?ver=@clientVersion"></script>

View File

@@ -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<IActionResult> 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);

View File

@@ -254,22 +254,21 @@
</div>
<div class="col" Permission="@SubAccountPermissionHelper.WorkFlowOperationsPermissionCode">
<a class="bg-transparent position-relative" asp-page="/Company/WorkFlow/Index">
<svg width="42" height="42" viewBox="-4.08 -4.08 32.16 32.16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="SVGRepo_bgCarrier" stroke-width="0"></g>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
<g id="SVGRepo_iconCarrier">
<circle cx="19" cy="5" r="3" stroke="#14B8A6" stroke-width="1.8"></circle>
<path d="M7 14H16" stroke="#14B8A6" stroke-width="1.8" stroke-linecap="round"></path>
<path d="M7 17.5H13" stroke="#14B8A6" stroke-width="1.8" stroke-linecap="round"></path>
<path d="M2 12C2 16.714 2 19.0711 3.46447 20.5355C4.92893 22 7.28595 22 12 22C16.714 22 19.0711 22 20.5355 20.5355C22 19.0711 22 16.714 22 12V10.5M13.5 2H12C7.28595 2 4.92893 2 3.46447 3.46447C2.49073 4.43821 2.16444 5.80655 2.0551 8" stroke="#14B8A6" stroke-width="1.8" stroke-linecap="round"></path>
</g>
</svg>
<span id="_countWorkFlowMenuMobile" class="alert-number">
@* @(ViewData["countWorkFlow"] != null && (int)ViewData["countWorkFlow"] > 99 ? "+99" : ViewData["countWorkFlow"]) *@
</span>
@* <span id="_countWorkFlowMenuMobile" class="alert-number @((int)ViewData["countWorkFlow"] == 0 ? "d-none" : "")">@ViewData["countWorkFlow"]</span> *@
<span>کارپوشه</span>
<a class="bg-transparent position-relative d-flex align-items-center justify-content-center flex-column" asp-page="/Company/WorkFlow/Index">
<div style="width: 45px;display: flex;align-items: center;justify-content: center;position: relative;height: 40px;">
<svg width="42" height="42" viewBox="-4.08 -4.08 32.16 32.16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="SVGRepo_bgCarrier" stroke-width="0"></g>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
<g id="SVGRepo_iconCarrier">
<circle cx="19" cy="5" r="3" stroke="#14B8A6" stroke-width="1.8"></circle>
<path d="M7 14H16" stroke="#14B8A6" stroke-width="1.8" stroke-linecap="round"></path>
<path d="M7 17.5H13" stroke="#14B8A6" stroke-width="1.8" stroke-linecap="round"></path>
<path d="M2 12C2 16.714 2 19.0711 3.46447 20.5355C4.92893 22 7.28595 22 12 22C16.714 22 19.0711 22 20.5355 20.5355C22 19.0711 22 16.714 22 12V10.5M13.5 2H12C7.28595 2 4.92893 2 3.46447 3.46447C2.49073 4.43821 2.16444 5.80655 2.0551 8" stroke="#14B8A6" stroke-width="1.8" stroke-linecap="round"></path>
</g>
</svg>
<span id="_countWorkFlowMenuMobile" class="alert-number"></span>
</div>
<span>کارپوشه</span>
</a>
</div>
@* <div class="col">

View File

@@ -519,7 +519,7 @@
color: #fff;
font-weight: 600;
padding: 2px 0 0 0;
top: -12px;
top: -4px;
left: -4px;
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;