Files
Backend-Api/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditGroup.js
2025-05-19 17:48:13 +03:30

971 lines
33 KiB
JavaScript

$(document).ready(function () {
$(document).on("click", ".btn-cancel2", function () {
$('#MainModal').modal('toggle');
});
$(".money").each(function () {
let element = $(this);
element.on('input', function () {
let value = convertPersianNumbersToEnglish(element.val());
element.val(value);
});
new Cleave('.money', {
numeral: true,
numeralThousandsGroupStyle: 'thousand'
});
});
$(".dateTime").each(function () {
let element = $(this);
element.on('input', function () {
let value = convertPersianNumbersToEnglish(element.val());
element.val(value);
});
new Cleave(this, {
time: true,
timePattern: ['h', 'm']
});
});
$(".dateTimeRS").each(function () {
let element = $(this);
element.on('input', function () {
let value = convertPersianNumbersToEnglish(element.val());
element.val(value);
});
new Cleave(this, {
time: true,
timePattern: ['h', 'm']
});
});
$(".dateTimeIrregular").each(function () {
let element = $(this);
element.on('input', function () {
let value = convertPersianNumbersToEnglish(element.val());
element.val(value);
});
new Cleave(this, {
time: true,
timePattern: ['h', 'm']
});
});
$("#closeEmployeeIsChange").on("click", function () {
$('.overlay-black-modal').hide();
$('#submitIsChangeForEmployee').hide();
});
$("#organized").on("click", function () {
$('#step_workTimeOption').show();
$('#step_workTimeOptionRotatingShift').hide();
$('#step_workTimeOptionIrregular').hide();
if ($('#step_workTimeOption').is(':visible')) {
var currentCount = $('.groupBox').length;
$('.dateTime').each(function () {
updateAddButtonText(currentCount);
});
}
$('input[name="IrregularShift.WorkshopIrregularShifts"]').prop('checked', false);
$('#irregularShiftsDateTime').addClass('disable');
$('.dateTimeIrregular').val('');
var currentCount = $('.groupBox').length;
if (currentCount >= 2) {
$('#BreakTime').prop('checked', false);
$('#BreakTimeFirst').prop('checked', false);
$('#computeTimeText').text('');
$("#hour").val("0");
$("#min").val("00");
$('#computeTime').addClass('disable');
$("#TimeOnly").val('');
} else {
$('#computeTime').removeClass('disable');
}
});
$("#rotating_shift").on("click", function () {
$('#step_workTimeOption').hide();
$('#step_workTimeOptionRotatingShift').show();
$('#step_workTimeOptionIrregular').hide();
if ($('#step_workTimeOptionRotatingShift').is(':visible')) {
var currentCountRS = $('.groupBoxRS').length;
$('.dateTimeRS').each(function () {
updateAddButtonTextRS(currentCountRS);
});
}
$('input[name="IrregularShift.WorkshopIrregularShifts"]').prop('checked', false);
$('#irregularShiftsDateTime').addClass('disable');
$('.dateTimeIrregular').val('');
});
$("#disorganized").on("click", function () {
$('#step_workTimeOption').hide();
$('#step_workTimeOptionRotatingShift').hide();
$('#step_workTimeOptionIrregular').show();
});
switch (IsRegularWorkshop) {
case 0:
//radio btn
$("#organized").prop('checked', true);
$("#rotating_shift").prop('checked', false);
$("#disorganized").prop('checked', false);
//form
$('#step_workTimeOption').show();
$('#step_workTimeOptionRotatingShift').hide();
$('#step_workTimeOptionIrregular').hide();
// این مرحله هنگام چک کردن تعداد نوبت هستش
updateAddButtonText(indexShiftViewModel);
var currentCount = $('.groupBox').length;
if (currentCount >= 2) {
$('#BreakTime').prop('checked', false);
$('#BreakTimeFirst').prop('checked', false);
$('#computeTimeText').text('');
$("#hour").val("0");
$("#min").val("00");
$('#computeTime').addClass('disable');
$("#TimeOnly").val('');
} else {
$('#computeTime').removeClass('disable');
}
break;
case 1:
//radio btn
$("#organized").prop('checked', false);
$("#rotating_shift").prop('checked', false);
$("#disorganized").prop('checked', true);
//form
$('#step_workTimeOption').hide();
$('#step_workTimeOptionRotatingShift').hide();
$('#step_workTimeOptionIrregular').show();
// این مرحله هنگام چک کردن وضعیت نامنظم بودن ساعت هستش
if ($("#hour").val() === "0" && $("#min").val() === "00") {
$('#computeTimeText').text('');
} else {
$('#computeTimeText').text($("#hour").val() + ' ساعت ' + $("#min").val() + ' دقیقه ');
}
updateIrregularButton();
break;
case 2:
//radio btn
$("#organized").prop('checked', false);
$("#rotating_shift").prop('checked', true);
$("#disorganized").prop('checked', false);
//form
$('#step_workTimeOption').hide();
$('#step_workTimeOptionRotatingShift').show();
$('#step_workTimeOptionIrregular').hide();
// این مرحله هنگام چک کردن تعداد نوبت هستش
updateAddButtonTextRS(indexShiftViewModelRS);
break;
default:
alert("بروز خطا هنگام لود شدن");
}
$('input[name="IrregularShift.WorkshopIrregularShifts"]').on('change', function () {
if ($('input[name="IrregularShift.WorkshopIrregularShifts"]:checked').length > 0) {
$('#irregularShiftsDateTime').removeClass('disable');
$('#irregularShiftsStartDateTime').focus();
} else {
$('#irregularShiftsDateTime').addClass('disable');
}
$('.dateTimeIrregular').val('');
updateIrregularButton();
});
$('#BreakTime, #BreakTimeFirst').on('change', function () {
$('#BreakTime, #BreakTimeFirst').not(this).prop('checked', false);
var currentCount = 0;
if ($("#organized").is(":Checked")) {
currentCount = $('.groupBox').length;
}
//else if ($("#rotating_shift").is(":Checked")) {
// var currentCount = $('.groupBoxRS').length;
//}
if (currentCount >= 2) {
showAlert('به دلیل داشتن 2 یا 3 نوبت، امکان فعال سازی ساعت استراحت ندارید', $('.break-time'));
$(this).prop('checked', false);
$("#hour").val("0");
$("#min").val("00");
$('#computeTimeText').text('');
$('#computeTime').addClass('disable');
return false;
}
if ($('#BreakTime').is(':Checked')) {
$("#hour").val("0");
$("#min").val("00");
$('#computeTimeText').text('');
$('#computeTime').removeClass('disable');
$("#TimeOnly").val('');
} else {
$("#hour").val("0");
$("#min").val("00");
$('#computeTimeText').text('');
$('#computeTime').addClass('disable');
$("#TimeOnly").val('');
}
});
$('select[name="selectCheckBreakTime"]').on('change', function () {
if (parseInt($("#hour").val(), 10) === 3) {
$("#min").val("00");
}
// $('#computeTimeText').text($("#hour").val() + ' ساعت ' + $("#min").val() + ' دقیقه ');
$("#TimeOnly").val($("#hour").val() + ':' + $("#min").val());
});
$(".btnAddTimeWork").on("click", function () {
var currentCount = $('.groupBox').length;
var $inputs = $('.dateTime');
var allFilled = true;
if ($("#BreakTime").is(':Checked') && parseInt($("#hour").val(), 10) === 3) {
showAlert('به دلیل داشتن 3 ساعت استراحت، بیشتر از نوبت اول نمیتوانید ایجاد نمائید.', $(this));
return false;
}
$inputs.each(function () {
if ($(this).val() === '') {
allFilled = false;
showAlert('ابتدا ساعت شروع و پایان را وارد نمائید.', $(this));
}
});
if (!allFilled) {
return false;
}
if (currentCount >= 1) {
$('#BreakTime').prop('checked', false);
$('#BreakTimeFirst').prop('checked', false);
$('#computeTimeText').text('');
$("#hour").val("0");
$("#min").val("00");
$('#computeTime').addClass('disable');
$("#TimeOnly").val('');
} else {
$('#computeTime').removeClass('disable');
}
if (currentCount < 3) {
var namePlacement = "";
var namePlacementPersian = "";
switch (currentCount + 1) {
case 2:
namePlacement = "Second";
namePlacementPersian = "دوم";
break;
case 3:
namePlacement = "Third";
namePlacementPersian = "سوم";
break;
default:
}
var timeWorkHtml = `
<div class="groupBox timeWork">
<div class="row align-items-center justify-content-between">
<div class="col-3 d-flex align-items-center">
<input type="hidden" name="ShiftViewModel[${currentCount}].Placement" value="${namePlacement}" />
<div class="timeWorkTitle">نوبت ${namePlacementPersian}</div>
</div>
<div class="col-4 d-flex align-items-center">
<div class="timeWorkTitle">از</div>
<input type="text" class="form-control text-center dateTime" name="ShiftViewModel[${currentCount}].StartTime" placeholder="00:00" style="direction: ltr;" />
</div>
<div class="col-4 d-flex align-items-center">
<div class="timeWorkTitle">الی</div>
<input type="text" class="form-control text-center dateTime" name="ShiftViewModel[${currentCount}].EndTime" placeholder="00:00" style="direction: ltr;" />
</div>
<div class="col-1 d-flex align-items-center justify-content-end">
<button type="button" class="btnRemoveTimeWork">
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="11" cy="11" r="8.25" stroke="white"/>
<path d="M6.875 11H15.125" stroke="white"/>
</svg>
</button>
</div>
</div>
</div>`;
$('#appendChildTimeWorkHtml').append(timeWorkHtml);
const newStartTimeInput = $(`input[name="ShiftViewModel[${currentCount}].StartTime"]`);
const newEndTimeInput = $(`input[name="ShiftViewModel[${currentCount}].EndTime"]`);
newStartTimeInput.on('input', function () {
const value = convertPersianNumbersToEnglish($(this).val());
$(this).val(value);
});
newEndTimeInput.on('input', function () {
const value = convertPersianNumbersToEnglish($(this).val());
$(this).val(value);
});
new Cleave(newStartTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
new Cleave(newEndTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
updateAddButtonText(currentCount + 1);
if (currentCount + 1 === 3) {
$(".btnAddTimeWork").hide();
}
// Update Remove button enable/disable state
updateRemoveButtons();
}
});
$(".btnAddTimeWorkRS").on("click", function () {
var currentCount = $('.groupBoxRS').length;
var $inputs = $('.dateTimeRS');
var allFilled = true;
if ($("#BreakTime").is(':Checked') && parseInt($("#hour").val(), 10) === 3) {
showAlert('به دلیل داشتن 3 ساعت استراحت، بیشتر از نوبت اول نمیتوانید ایجاد نمائید.', $(this));
return false;
}
$inputs.each(function () {
if ($(this).val() === '') {
allFilled = false;
showAlert('ابتدا ساعت شروع و پایان را وارد نمائید.', $(this));
}
});
if (!allFilled) {
return false;
}
//if (currentCount >= 1) {
// $('#BreakTime').prop('checked', false);
// $('#BreakTimeFirst').prop('checked', false);
// $('#computeTimeText').text('');
// $("#hour").val("0");
// $("#min").val("00");
// $('#computeTime').addClass('disable');
// $("#TimeOnly").val('');
//} else {
// $('#computeTime').removeClass('disable');
//}
if (currentCount < 5) {
var namePlacement = "";
var namePlacementPersian = "";
switch (currentCount + 1) {
case 2:
namePlacement = "Second";
namePlacementPersian = "دوم";
break;
case 3:
namePlacement = "Third";
namePlacementPersian = "سوم";
break;
case 4:
namePlacement = "Third";
namePlacementPersian = "چهارم";
break;
case 5:
namePlacement = "Third";
namePlacementPersian = "پنجم";
break;
default:
}
var timeWorkHtml = `
<div class="groupBoxRS timeWorkRS">
<div class="row align-items-center justify-content-between">
<div class="col-3 d-flex align-items-center">
<div class="timeWorkTitle">نوبت ${namePlacementPersian}</div>
</div>
<div class="col-4 d-flex align-items-center">
<div class="timeWorkTitle">از</div>
<input type="text" class="form-control text-center dateTimeRS" name="CustomizeRotatingShiftsViewModels[${currentCount}].StartTime" placeholder="00:00" style="direction: ltr;">
</div>
<div class="col-4 d-flex align-items-center">
<div class="timeWorkTitle">الی</div>
<input type="text" class="form-control text-center dateTimeRS" name="CustomizeRotatingShiftsViewModels[${currentCount}].EndTime" placeholder="00:00" style="direction: ltr;">
</div>
<div class="col-1 d-flex align-items-center justify-content-end">
<button type="button" class="btnRemoveTimeWorkRS">
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="11" cy="11" r="8.25" stroke="white"/>
<path d="M6.875 11H15.125" stroke="white"/>
</svg>
</button>
</div>
</div>
</div>`;
$('#appendChildTimeWorkHtmlRS').append(timeWorkHtml);
const newStartTimeInput = $(`input[name="CustomizeRotatingShiftsViewModels[${currentCount}].StartTime"]`);
const newEndTimeInput = $(`input[name="CustomizeRotatingShiftsViewModels[${currentCount}].EndTime"]`);
newStartTimeInput.on('input', function () {
const value = convertPersianNumbersToEnglish($(this).val());
$(this).val(value);
});
newEndTimeInput.on('input', function () {
const value = convertPersianNumbersToEnglish($(this).val());
$(this).val(value);
});
new Cleave(newStartTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
new Cleave(newEndTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
updateAddButtonTextRS(currentCount + 1);
if (currentCount + 1 === 4) {
$(".btnAddTimeWorkRS").hide();
}
// Update Remove button enable/disable state
updateRemoveButtonsRS();
}
});
$(document).on("click", ".btnRemoveTimeWork", function () {
$(".btnAddTimeWork").removeClass('d-none');
$(this).closest(".groupBox").remove();
var currentCount = $('.groupBox').length;
updateAddButtonText(currentCount);
if (currentCount < 3) {
$(".btnAddTimeWork").show();
}
// Update Remove button enable/disable state
updateRemoveButtons();
});
$(document).on("click", ".btnRemoveTimeWorkRS", function () {
$(this).closest(".groupBoxRS").remove();
var currentCount = $('.groupBoxRS').length;
updateAddButtonTextRS(currentCount);
if (currentCount < 4) {
$(".btnAddTimeWorkRS").show();
}
// Update Remove button enable/disable state
updateRemoveButtonsRS();
});
updateRemoveButtons();
updateRemoveButtonsRS();
saveDataLocal();
});
function updateRemoveButtons() {
$(".btnRemoveTimeWork").addClass("disable");
$(".btnRemoveTimeWork").last().removeClass("disable");
}
function updateRemoveButtonsRS() {
$(".btnRemoveTimeWorkRS").addClass("disable");
$(".btnRemoveTimeWorkRS").last().removeClass("disable");
}
function updateAddButtonText(currentCount) {
if (currentCount === 1) {
$('.btnAppendChildTimeWork').text('افزودن نوبت دوم');
} else if (currentCount === 2) {
$('.btnAppendChildTimeWork').text('افزودن نوبت سوم');
}
let allFilled = true;
$('.dateTime').each(function () {
const value = $(this).val().trim();
if (value === "" || !timeValidCheck(value)) {
allFilled = false;
return false; // Break the loop
}
});
if (allFilled) {
$('.btn-register').removeClass('disable');
} else {
$('.btn-register').addClass('disable');
}
}
function updateAddButtonTextRS(currentCount) {
if (currentCount === 1) {
$('.btnAppendChildTimeWorkRS').text('افزودن نوبت دوم');
} else if (currentCount === 2) {
$('.btnAppendChildTimeWorkRS').text('افزودن نوبت سوم');
} else if (currentCount === 3) {
$('.btnAppendChildTimeWorkRS').text('افزودن نوبت چهارم');
} else if (currentCount === 4) {
$('.btnAppendChildTimeWorkRS').text('افزودن نوبت پنجم');
}
let allFilled = true;
$('.dateTimeRS').each(function () {
const value = $(this).val().trim();
if (value === "" || !timeValidCheck(value)) {
allFilled = false;
return false;
}
});
if (allFilled) {
$('.btn-register').removeClass('disable');
} else {
$('.btn-register').addClass('disable');
}
}
function updateIrregularButton() {
let allFilled = true;
$('.dateTimeIrregular').each(function () {
const value = $(this).val().trim();
if (value === "" || !timeValidCheck(value)) {
allFilled = false;
return false;
}
});
if (allFilled) {
$('.btn-register').removeClass('disable');
} else {
$('.btn-register').addClass('disable');
}
}
//******************** برای نوشتن تاریخ ********************
$(document).on('keyup', ".dateTime", function () {
let $input = $(this);
let value = $input.val();
let lengthValue = value.length;
let currentCount = $('.groupBox').length;
if (lengthValue >= 5) {
if (!timeValidCheck(value)) {
showAlert('ساعت را به درستی وارد نمائید', $input);
updateAddButtonText(currentCount);
} else {
clearAlert($input);
updateAddButtonText(currentCount);
}
} else {
updateAddButtonText(currentCount);
}
});
$(document).on("keyup", ".dateTimeRS", function () {
let $input = $(this);
let value = $input.val();
let lengthValue = value.length;
let currentCount = $('.groupBoxRS').length;
if (lengthValue >= 5) {
if (!timeValidCheck(value)) {
showAlert('ساعت را به درستی وارد نمائید', $input);
updateAddButtonTextRS(currentCount);
} else {
clearAlert($input);
updateAddButtonTextRS(currentCount);
}
} else {
updateAddButtonTextRS(currentCount);
}
});
$(document).on("keyup", ".dateTimeIrregular", function () {
let $input = $(this);
let value = $input.val();
let lengthValue = value.length;
if (lengthValue >= 5) {
if (!timeValidCheck(value)) {
showAlert('ساعت را به درستی وارد نمائید', $input);
} else {
clearAlert($input);
}
}
updateIrregularButton();
});
$(document).on("keyup", "#irregularShiftsStartDateTime", function () {
let $input = $(this);
let value = $input.val();
let timeRegex = /^([01]\d|2[0-3]):([0-5]\d)$/;
if (!timeRegex.test(value)) {
$("#irregularShiftsEndDateTime").val("");
return;
}
let [hours, minutes] = value.split(":").map(Number);
let hoursToAdd = 0;
if ($("#TwelveTwentyFour").is(":checked")) {
hoursToAdd = 12;
} else if ($("#TwentyFourTwentyFour").is(":checked")) {
hoursToAdd = 24;
} else if ($("#TwelveThirtySix").is(":checked")) {
hoursToAdd = 12;
} else if ($("#TwentyFourFortyEight").is(":checked")) {
hoursToAdd = 24;
}
let endHours = (hours + hoursToAdd) % 24;
let endTime = `${endHours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`;
let maxHours = hours + 12;
if (endHours > maxHours) {
$("#irregularShiftsEndDateTime").val("");
return;
}
$("#irregularShiftsEndDateTime").val(endTime);
updateIrregularButton();
});
$(document).on("keyup", "#irregularShiftsEndDateTime", function () {
if ($("#TwelveTwentyFour").is(":checked") || $("#TwelveThirtySix").is(":checked")) {
let $input = $(this);
let value = $input.val();
let timeRegex = /^([01]\d|2[0-3]):([0-5]\d)$/;
if (!timeRegex.test(value)) {
$('.btn-register').addClass('disable');
showAlert('بیشتر از 12 ساعت را نمی توانید وارد نمائید', $input);
return;
}
let [endHours, endMinutes] = value.split(":").map(Number);
let startValue = $("#irregularShiftsStartDateTime").val();
if (!timeRegex.test(startValue)) {
$('.btn-register').addClass('disable');
showAlert('بیشتر از 12 ساعت را نمی توانید وارد نمائید', $input);
return;
}
let [startHours, startMinutes] = startValue.split(":").map(Number);
let startTotalMinutes = startHours * 60 + startMinutes;
let endTotalMinutes = endHours * 60 + endMinutes;
let maxRangeInMinutes = 0;
if ($("#TwelveTwentyFour").is(":checked") || $("#TwelveThirtySix").is(":checked")) {
maxRangeInMinutes = 12 * 60;
}
//else if ($("#TwentyFourTwentyFour").is(":checked") || $("#TwentyFourFortyEight").is(":checked")) {
// maxRangeInMinutes = 24 * 60;
//}
let maxEndTotalMinutes = (startTotalMinutes + maxRangeInMinutes) % (24 * 60); // Wrap around 24 hours
let isValid = false;
if (startTotalMinutes <= maxEndTotalMinutes) {
isValid = endTotalMinutes >= startTotalMinutes && endTotalMinutes <= maxEndTotalMinutes;
} else {
isValid = endTotalMinutes >= startTotalMinutes || endTotalMinutes <= maxEndTotalMinutes;
}
if (!isValid) {
$('.btn-register').addClass('disable');
showAlert('بیشتر از 12 ساعت را نمی توانید وارد نمائید', $input);
return;
}
$('.btn-register').removeClass('disable');
updateIrregularButton();
}
});
function showAlert(message, inputElement) {
inputElement.addClass("errored");
$('.alert-msg').show().find('p').text(message);
setTimeout(function () {
clearAlert(inputElement);
}, 3500);
}
function clearAlert(inputElement) {
inputElement.removeClass("errored");
$('.alert-msg').hide().find('p').text('');
}
function timeValidCheck(value) {
const timePattern = /^([01]\d|2[0-3]):([0-5]\d)$/; // Validates HH:mm format
return timePattern.test(value);
}
//******************** برای نوشتن تاریخ ********************
async function ajaxEditGroupingSaveData() {
if ($('#Name').val() === "") {
showAlert('لطفا نام گروه را وارد نمایید', $('#Name'));
return;
}
if (isShiftChangedGlobal) {
$('#ConfirmEmployeeModal').show();
} else {
$('#ConfirmModal').show();
saveDataLocal();
employeeList();
}
}
$('#YesConfirm, #NotConfirm').on('change', function () {
$('#finalSaveRollCallSetting').removeClass('disable');
});
async function ajaxSaveSubmit() {
if ($('#BreakTime').prop('checked')) {
if ($('#hour').val() === "0" && $('#min').val() === "00") {
showAlert('لطفا ساعت یا دقیقه استراحت را مشخص نمایید', $('#hour, #min'));
return;
}
}
saveDataLocal();
postChangeEditGroup();
//try {
// const responseCheckCal = await checkEmployeeSettingsHasChangedValue(saveData);
// if (responseCheckCal) {
// $('#ConfirmModal').show();
// } else {
// postChangeEditGroup();
// }
//} catch (err) {
// console.log(err);
//}
}
// save all data
var saveData = {};
function saveDataLocal() {
//$('#btnSave').addClass('disable');
//$('#finalSaveRollCallSetting').addClass('disable');
var hasBreakTime = "false";
if ($('#BreakTime').prop('checked')) {
hasBreakTime = $("#BreakTime").prop("checked") ? "true" : "false";
} else if ($('#BreakTimeFirst').prop('checked')) {
hasBreakTime = $("#BreakTimeFirst").prop("checked") ? "true" : "false";
}
//var hasBreakTime = $("#BreakTime").prop("checked") ? "true" : "false";
var breakTimeValue = $("#TimeOnly").val();
//var isShiftChanged = 'true';
//if ($('#YesConfirm').prop("checked") || $('#NotConfirm').prop("checked")) {
// isShiftChanged = $('#YesConfirm').prop("checked") ? "true" : "false";
//}
var isShiftChanged = $('#YesConfirm').prop("checked") ? "true" : "false";
var FridayWork = "Default";
if ($('#Friday1').prop('checked')) {
FridayWork = "Default";
} else if ($('#Friday2').prop('checked')) {
FridayWork = "WorkInFriday";
}
var HolidayWork = "Default";
if ($('#OffDays1').prop('checked')) {
HolidayWork = "Default";
} else if ($('#OffDays2').prop('checked')) {
HolidayWork = "WorkInHolidays";
}
var formData = $('#edit-form').serializeArray();
formData.forEach(function (item) {
saveData[item.name] = item.value;
});
saveData['BreakTime.HasBreakTimeValue'] = hasBreakTime;
saveData['BreakTime.BreakTimeValue'] = breakTimeValue;
saveData['FridayWork'] = FridayWork;
saveData['HolidayWork'] = HolidayWork;
saveData['IsShiftChanged'] = isShiftChanged;
}
async function postChangeEditGroup() {
$('#ConfirmRecalculationLoading').show();
$('.btn-confirm').addClass('disable');
var command = [];
$('[name="EmployeeId[]"]').each(function (index) {
command.push({
EmployeeId: $(this).val(),
FromDate: $('[name="FromDate[]"]').eq(index).val()
});
});
const responseValid = await $.ajax({
dataType: 'json',
type: 'POST',
url: ajaxValidateGroupEditUrl,
headers: { "RequestVerificationToken": antiForgeryToken },
data: { command }
});
if (responseValid.success) {
const responseEditGroup = await $.ajax({
dataType: 'json',
type: 'POST',
url: ajaxEditGroupSave,
headers: { "RequestVerificationToken": antiForgeryToken },
data: { ...saveData, reCalculateCommand: command }
});
if (responseEditGroup.success) {
isShiftChangedGlobal = true;
$('.alert-success-msg').show();
$('.alert-success-msg p').text(responseEditGroup.message);
setTimeout(function () {
$('.alert-success-msg').hide();
$('.alert-success-msg p').text('');
}, 2000);
loadDataAjax();
$('#btn-register').addClass('disable');
$('#MainModal').modal('hide');
$('#ConfirmRecalculationLoading').hide();
$('.btn-confirm').removeClass('disable');
//}
} else {
$('.alert-msg').show();
$('.alert-msg p').text(responseEditGroup.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
$('#ConfirmRecalculationLoading').hide();
$('.btn-confirm').removeClass('disable');
}
} else {
$('.alert-msg').show();
$('.alert-msg p').text(responseValid.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
// Updating the employees that who has checkout
updateListEmployeeOrderByCheckout(responseValid.data);
$('.btn-confirm').removeClass('disable');
}
}
async function saveReCalculateValues(command) {
var btnConfirm = $('.btn-confirm').addClass('disable');
var btnQuit = $('.btn-quit').addClass('disable');
var loading = $('.btn-confirm .loading').show();
try {
// const response = await ajaxService.post(ajaxReCalculateValuesUrl, { command: command }, true);
const response = await $.ajax({
dataType: 'json',
type: 'POST',
url: ajaxReCalculateValuesUrl,
headers: { "RequestVerificationToken": antiForgeryToken },
data: { command: command },
});
if (response.success) {
$('.alert-success-msg').show();
$('.alert-success-msg p').text(response.message);
setTimeout(function () {
$('.alert-success-msg').hide();
$('.alert-success-msg p').text('');
}, 2000);
btnConfirm.removeClass("disable");
btnQuit.removeClass("disable");
loading.hide();
loadDataAjax();
$('#MainModal').modal('hide');
return true;
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
btnConfirm.removeClass("disable");
btnQuit.removeClass("disable");
loading.hide();
return false;
}
} catch (e) {
console.error('Error:', e);
if (e.responseJSON) console.error('Response JSON:', e.responseJSON);
if (e.responseText) console.error('Response Text:', e.responseText);
return false;
}
}