ClientCreateEmployee change merged

This commit is contained in:
SamSys
2025-06-22 15:11:51 +03:30
8 changed files with 127 additions and 26 deletions

View File

@@ -28,6 +28,8 @@ public class CreateEmployeeByClient
public List<AddEmployeeDocumentItem> EmployeeDocumentItems { get; set; }
public bool HasEmployeeDocument { get; set; }
public bool HasRollCallService { get; set; }
public bool CanceledAuthorize { get; set; }
public string BirthDate { get; set; }
}

View File

@@ -17,6 +17,7 @@ public record EmployeeByNationalCodeInWorkshopViewModel
public long PersonnelCode { get; set; }
public List<EmployeeByNationalCodeEmployeeBankInfoViewModel> EmployeeBankInfos { get; set; }
public EmployeeByNationalCodeEmployeeDocumentViewModel EmployeeDocument { get; set; }
public bool AuthorizedCanceled { get; set; }
}

View File

@@ -996,10 +996,24 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
//{
// return op.Failed("این پرسنل قبلا افزوده شده است و در انتظار تایید میباشد");
//}
var employee = _EmployeeRepository.GetByNationalCodeIgnoreQueryFilter(command.NationalCode);
var workshop = _WorkShopRepository.GetDetails(command.WorkshopId);
if (employee == null)
if (employee == null && command.CanceledAuthorize)
{
var birthDate = command.BirthDate.ToGeorgianDateTime();
var dateOfIssue = new DateTime(1922, 1, 1);
employee = new Employee(command.FirstName, command.LastName, null, birthDate,
dateOfIssue, null, command.NationalCode, null, command.Gender, "ایرانی", null, null);
_EmployeeRepository.Create(employee);
_EmployeeRepository.SaveChanges();
}
if (employee == null)
{
return op.Failed("خطای سیستمی. لطفا دوباره تلاش کنید . درصورت تکرار این مشکل با تیم پشتیبان تماس بگیرید");
}
@@ -1242,6 +1256,11 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
if (employee == null)
{
var personalInfo = await _uidService.GetPersonalInfo(nationalCode, birthDate);
if (personalInfo.ResponseContext.Status.Code == 14)
{
return op.Failed("سامانه احراز هویت در دسترس نمیباشد لطفا اطلاعات پرسنل را به صورت دستی وارد کنید",new EmployeeByNationalCodeInWorkshopViewModel(){AuthorizedCanceled = true});
}
if (personalInfo.ResponseContext.Status.Code != 0)
{
return op.Failed("کد ملی و تاریخ تولد با هم همخانی ندارند");

View File

@@ -33,8 +33,8 @@
</div>
</div>
<div class="col-6 col-md-12 pe-1 custom-pe-md-3 form-personal my-1">
<div class="input-group shadow-none disable">
<div class="col-6 col-md-12 pe-1 custom-pe-md-3 form-personal my-1">
<div id="nationalCodeS2Section" class="input-group shadow-none disable">
<label class="input-group-text d-flex justify-content-center align-items-center" for="nationalCodeStep2">کد ملی</label>
<input class="form-control text-center" name="Command.NationalCode" pattern="[0-9]*" inputmode="numeric" id="nationalCodeStep2" style="direction: ltr">
</div>
@@ -45,7 +45,7 @@
<div class="col-6 col-md-12 ps-1 custom-ps-md-3 form-personal my-1">
<div class="input-group shadow-none disable">
<div id="birthDateS2Section" class="input-group shadow-none disable">
<label class="input-group-text d-flex justify-content-center align-items-center" for="birthDateStep2">تاریخ تولد</label>
<input class="form-control text-center" name="Command.BirthDate" pattern="[0-9]*" inputmode="numeric" id="birthDateStep2" style="direction: ltr">
</div>
@@ -70,8 +70,8 @@
</div>
</div>
<div class="col-lg-6 col-6 form-personal checkByNationalCode disable mightBeNullDB2 my-1">
<div class="input-group">
<div id="genderS2Section" class="col-lg-6 col-6 form-personal checkByNationalCode disable mightBeNullDB2 my-1">
<div class="input-group validGender">
<label class="input-group-text d-flex justify-content-center align-items-center">جنسیت</label>
<div class="inputGroup-sizing-marriage d-flex align-items-center justify-content-center">
<input class="form-check-input genderStatus" type="radio" id="gender1" name="Command.Gender" value="مرد" required>
@@ -89,7 +89,7 @@
</div>
</div>
<div class="col-lg-6 col-6 checkByNationalCode disable mightBeNullDB3 form-personal my-1" style="padding-right: 0;">
<div id="marriageS2Section" class="col-lg-6 col-6 checkByNationalCode disable mightBeNullDB3 form-personal my-1" style="padding-right: 0;">
<div class="input-group validMariage">
<label class="input-group-text d-flex justify-content-center align-items-center">وضیعت تاهل</label>
<div class="inputGroup-sizing-marriage d-flex align-items-center justify-content-center">
@@ -111,28 +111,28 @@
</div>
</div>
<div class="col-6 col-md-12 pe-1 custom-pe-md-3 checkByNationalCode mightBeNullDB4 disable">
<div id="nameS2Section" class="col-6 col-md-12 pe-1 custom-pe-md-3 checkByNationalCode mightBeNullDB4 disable">
<div class="col-12 my-1">
<span class="spanTitleText">نام پرسنل</span>
<input type="text" class="form-control" id="firstName" name="Command.FirstName" />
</div>
</div>
<div class="col-6 col-md-12 ps-1 custom-ps-md-3 checkByNationalCode mightBeNullDB5 disable">
<div id="fNameS2Section" class="col-6 col-md-12 ps-1 custom-ps-md-3 checkByNationalCode mightBeNullDB5 disable">
<div class="col-12 my-1">
<span class="spanTitleText">نام خانوادگی پرسنل</span>
<input type="text" id="lastName" class="form-control" name="Command.LastName" />
</div>
</div>
<div class="col-6 col-md-12 pe-1 custom-pe-md-3 checkByNationalCode checkByHistoryCode2 mightBeNullDB6 disable">
<div id="startworkS2Section" class="col-6 col-md-12 pe-1 custom-pe-md-3 checkByNationalCode checkByHistoryCode2 mightBeNullDB6 disable">
<div class="col-12 my-1">
<span class="spanTitleText">تاریخ شروع بکار</span>
<input type="text" class="form-control startLeftWorkDate text-center" pattern="[0-9]*" inputmode="numeric" id="startWork" name="Command.StartLeftWork" style="direction: ltr" />
</div>
</div>
<div class="col-6 col-md-12 ps-1 custom-ps-md-3 checkByNationalCode checkByHistoryCode2 mightBeNullDB6 disable">
<div id="jobS2Section" class="col-6 col-md-12 ps-1 custom-ps-md-3 checkByNationalCode checkByHistoryCode2 mightBeNullDB6 disable">
<div class="col-12 my-1">
<span class="spanTitleText">انتخاب سمت</span>
<div class="sematValid" style="border-radius: 7px;">
@@ -142,7 +142,7 @@
</div>
</div>
</div>
<input type="checkbox" id="canceledAuthorizedStep2" name="Command.CanceledAuthorize" style="display: none;" value="false" />
<div class="spinner-loading loading" style="display: none;">
<span class="spinner-border spinner-border-sm text-white" role="status" aria-hidden="true"></span>

View File

@@ -38,13 +38,19 @@
</div>
<div class="col-12 form-personal my-1">
<div class="input-group shadow-none">
<label class="input-group-text d-flex justify-content-center align-items-center custom-size" for="birthDate">تاریخ تولد</label>
<input class="form-control text-center" id="birthDate" pattern="[0-9]*" inputmode="numeric" style="direction: ltr">
</div>
<div class="valid-feedback">
تاریخ تولد را وارد کنید
</div>
<div class="input-group shadow-none">
<label class="input-group-text d-flex justify-content-center align-items-center custom-size" for="birthDate">تاریخ تولد</label>
<input class="form-control text-center" id="birthDate" pattern="[0-9]*" inputmode="numeric" style="direction: ltr">
</div>
<div class="valid-feedback">
تاریخ تولد را وارد کنید
</div>
</div>
<div id="AuthorizedCanceled" class="col-12 p-2 disable">
<input id="authorizedCheckboxInput" type="checkbox"/>
<label>ثبت مشخصات پرسنل بدون احراز هویت</label>
</div>
</div>

View File

@@ -381,7 +381,6 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
}
}
result = _rollCallEmployeeApplication.UploadedImage(employeeId, workshopId);
if (result.IsSuccedded == false)
{

View File

@@ -5,7 +5,7 @@ $(document).ready(function () {
language: "fa",
dir: "rtl"
});
var jobsLoadAjaxURL = '';
var jobsLoadAjaxURL = '';
if (currentUrl.includes("/Client#showmodal=/Client?handler=CreateEmployee")) {
jobsLoadAjaxURL = jobsLoadHomeAjaxUrl;
} else if (currentUrl.includes("/Client/Company/Employees/EmployeeList")) {
@@ -76,7 +76,7 @@ function checkInputs() {
const startWork = $("#startWork").val().trim();
const startWorkIsValidDate = /^\d{4}[-\/]\d{2}[-\/]\d{2}$/.test(startWork);
const semat = $("#sematSelect").val();
debugger;
let isEmpty = false;
if (!genderSelected || !maritalStatusSelected || !nationality || !fName || !lName || !startWork || !startWorkIsValidDate || semat === "0") {
@@ -88,7 +88,18 @@ function checkInputs() {
validateField(".validMariage", "لطفا وضعیت تاهل را مشخص کنید.");
return false;
}
if (!$("input[name='Command.Gender']:checked").val()) {
validateField(".validGender", "لطفا جنسیت را مشخص کنید.");
return false;
}
if (fName === "") {
validateField("#firstName", "لطفا نام پرسنل را وارد کنید.");
return false;
}
if (lName === "") {
validateField("#lastName", "لطفا نام خانوادگی پرسنل را وارد کنید.");
return false;
}
if (startWork === "") {
validateField("#startWork", "لطفا تاریخ شروع بکار را مشخص کنید");
return false;

View File

@@ -44,6 +44,8 @@ $(document).ready(function () {
lastNationalCode = "";
}
});
});
function checkNationalCodeAndBirthday() {
@@ -82,7 +84,7 @@ function checkNationalCode(nationalCode, birthDate) {
$("#IdentityLoading").show();
$.ajax({
async: false,
//async: false,
url: checkNationalUrl,
method: "GET",
data: { nationalCode: nationalCode, birthDate: birthDate },
@@ -180,7 +182,24 @@ function checkNationalCode(nationalCode, birthDate) {
$("#IdentityLoading").hide();
}
} else {
}
else if (response.data.authorizedCanceled) {
$(".checkByHistoryCode2").removeClass("disable");
$("#AuthorizedCanceled").removeClass("disable");
$("#canceledAuthorizedStep2").prop("checked", true);
$("#canceledAuthorizedStep2").val("true");
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text(response.message);
}, 3500);
$("#IdentityLoading").hide();
}
else {
//$(".saveData").prop("disabled", true);
$(".checkByNationalCode").each(function () {
$(this).addClass("disable");
@@ -213,4 +232,48 @@ function checkNationalCode(nationalCode, birthDate) {
goToStep2 = false;
}
});
}
$('#authorizedCheckboxInput').change(function () {
if ($(this).is(':checked')) {
let nationalCode = $("#nationalCode").val().trim();
let birthDate = $("#birthDate").val().trim();
if (nationalCode === "") {
validateField("#nationalCode", "لطفا شماره ملی پرسنل را وارد کنید.");
$("#authorizedCheckboxInput").prop("checked", false);
return;
} else if (!/^\d{10}$/.test(nationalCode)) {
validateField("#nationalCode", "شماره ملی باید ۱۰ رقم باشد.");
$("#authorizedCheckboxInput").prop("checked", false);
return;
}
if (birthDate === "") {
validateField("#birthDate", "لطفا تاریخ تولد پرسنل را وارد کنید.");
$("#authorizedCheckboxInput").prop("checked", false);
return;
} else if (!/^\d{4}[-\/]\d{2}[-\/]\d{2}$/.test(birthDate) || birthDate.length !== 10) {
validateField("#birthDate", "تاریخ تولد را به درستی وارد کنید.");
$("#authorizedCheckboxInput").prop("checked", false);
return;
}
$("#nationalCodeS2Section").removeClass("disable");
$("#birthDateS2Section").removeClass("disable");
$("#genderS2Section").removeClass("disable");
$("#marriageS2Section").removeClass("disable");
$("#nameS2Section").removeClass("disable");
$("#fNameS2Section").removeClass("disable");
$("#startworkS2Section").removeClass("disable");
$("#jobS2Section").removeClass("disable");
$("#nationalCodeStep2").val(nationalCode);
$("#birthDateStep2").val(birthDate);
goToStep2 = true;
$("#nextStep1").click();
}
});
}