Files
Backend-Api/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/_ModalGroupSettingPartials/FineAbsenceDeduction.cshtml
2024-12-03 15:40:11 +03:30

215 lines
9.3 KiB
Plaintext

@using _0_Framework.Domain.CustomizeCheckoutShared.Enums
@model CompanyManagment.App.Contracts.CustomizeWorkshopSettings.EditCustomizeWorkshopSettings
@{
var dayViewModels = Model.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels;
<style>
.weeks-days {
display: flex;
}
@@media screen and (max-width: 630px) {
.weeks-days {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}
</style>
}
<div class="row my-2">
<div class="col-12 mb-2">
<div class="rollCallInfo">
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="16" cy="16" r="12" fill="#2FC1C1" />
<path d="M17.3333 9.33333C17.3333 10.0697 16.7363 10.6667 16 10.6667C15.2636 10.6667 14.6666 10.0697 14.6666 9.33333C14.6666 8.59695 15.2636 8 16 8C16.7363 8 17.3333 8.59695 17.3333 9.33333Z" fill="#FFE2E2" />
<path d="M16 22.0013V15.3346C16 14.2416 16 13.695 15.7288 13.3076C15.6284 13.1643 15.5037 13.0396 15.3604 12.9392C14.973 12.668 14.4265 12.668 13.3334 12.668V12.668M16 22.0013H18M16 22.0013H14" stroke="#FFE2E2" />
</svg>
<span>این تنظیمات در محاسبات فیش حقوق قانونی اداره کار تاثیری نخواهد داشت.</span>
</div>
</div>
<div class="col-12 group-container">
<div class="titleSettingRollCall">جریمه غیبت</div>
<div class="group form-group my-1">
<input type="radio" name="Command.FineAbsenceDeduction.FineAbsenceDeductionType" id="AbsentFine1" class="form-check-input Main-Radio" @(!Model.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels.Any() && Model.FineAbsenceDeduction.FineAbsenceDeductionType == FineAbsenceDeductionType.None ? "checked" : "") value="@((int)(FineAbsenceDeductionType.None))" />
<label for="AbsentFine1">جریمه غیبت پرداخت نمیگردد و در فیش حقوقی محاسبه نگردد.</label>
</div>
<div class="group form-group my-1">
<input type="radio" name="Command.FineAbsenceDeduction.FineAbsenceDeductionType" id="AbsentFine2" class="form-check-input Main-Radio main-checkbox WeekDayRadio" @(Model.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels.Any() ? "checked" : "") value="@((int)(FineAbsenceDeductionType.None))" />
<label for="AbsentFine2">روزهایی که پرسنل اقدام به غیبت نماید جرائم ذیل شامل محاسبه می‌گردد.</label>
<div class="sub-group weeks-days AbsentFineDaysDisable @(Model.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels.Any() ? "" : "disable")">
<input type="checkbox" id="AbsentFineAll" class="checkBox form-check-input"/>
<label class="labelDays" for="AbsentFineAll">همه روزه</label>
<input type="checkbox"
value="Saturday"
id="AbsentFineSat"
class="checkBox form-check-input"
data-day="Saturday"
data-index="6" />
<label class="labelDays" for="AbsentFineSat">شنبه</label>
<input type="checkbox"
value="Sunday"
id="AbsentFineSun"
class="checkBox form-check-input"
data-day="Sunday"
data-index="0"/>
<label class="labelDays" for="AbsentFineSun">یکشنبه</label>
<input type="checkbox"
value="Monday"
id="AbsentFineMon"
class="checkBox form-check-input"
data-day="Monday"
data-index="1"/>
<label class="labelDays" for="AbsentFineMon">دوشنبه</label>
<input type="checkbox"
value="Tuesday"
id="AbsentFineTue"
class="checkBox form-check-input"
data-day="Tuesday"
data-index="2"/>
<label class="labelDays" for="AbsentFineTue">سه شنبه</label>
<input type="checkbox"
value="Wednesday"
id="AbsentFineWed"
class="checkBox form-check-input"
data-day="Wednesday"
data-index="3"/>
<label class="labelDays" for="AbsentFineWed">چهارشنبه</label>
<input type="checkbox"
value="Thursday"
id="AbsentFineThu"
class="checkBox form-check-input"
data-day="Thursday"
data-index="4"/>
<label class="labelDays" for="AbsentFineThu">پنجشنبه</label>
<input type="checkbox"
value="Friday"
id="AbsentFineFri"
class="checkBox form-check-input"
data-day="Friday"
data-index="5"/>
<label class="labelDays" for="AbsentFineFri">جمعه</label>
<div id="dynamicInputsContainer"></div>
</div>
</div>
<div class="group form-group">
<input type="checkbox" name="Command.FineAbsenceDeductionType" id="AbsentFine3" class="form-check-input Main-Radio main-checkbox"
@((Model.FineAbsenceDeduction.FineAbsenceDeductionType == FineAbsenceDeductionType.MultipleTimesOfDailyWage ||
Model.FineAbsenceDeduction.FineAbsenceDeductionType == FineAbsenceDeductionType.Money) ? "checked" : "") />
<label for="AbsentFine3">در صورت غیبت پرسنل موارد به شرح ذیل در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 AbsentFine3SubDisable">
<div>
<input type="radio" name="Command.FineAbsenceDeduction.FineAbsenceDeductionType" id="AbsentFine3Sub1" class="form-check-input Sub-Radio"
@(Model.FineAbsenceDeduction.FineAbsenceDeductionType == FineAbsenceDeductionType.MultipleTimesOfDailyWage ? "checked" : "disabled")
value="@((int)(FineAbsenceDeductionType.MultipleTimesOfDailyWage))" />
<label for="AbsentFine3Sub1">به ازای هر روز غیبت </label>
<select class="form-control-select sub-input" name="Command.FineAbsenceDeduction.Value"
@(Model.FineAbsenceDeduction.FineAbsenceDeductionType == FineAbsenceDeductionType.MultipleTimesOfDailyWage ? "asp-for='Model.FineAbsenceDeduction.Value'" : "disabled")>
<option value="1" >1</option>
<option value="2" >2</option>
</select>
<label for="AbsentFine3Sub1">برابر فرد از روزانه از حقوق پرسنل کسر گردد.</label>
</div>
<div>
<input type="radio" name="Command.FineAbsenceDeduction.FineAbsenceDeductionType" id="AbsentFine3Sub2" class="form-check-input Sub-Radio"
@(Model.FineAbsenceDeduction.FineAbsenceDeductionType == FineAbsenceDeductionType.Money ? "checked" : "")
value="@((int)(FineAbsenceDeductionType.Money))" />
<label for="AbsentFine3Sub2">به ازای هر روز غیبت </label>
<input type="text" class="form-control-currency sub-input" name="Command.FineAbsenceDeduction.Value"
value="@(Model.FineAbsenceDeduction.FineAbsenceDeductionType == FineAbsenceDeductionType.Money ? Model.FineAbsenceDeduction.Value : "")"
@((Model.FineAbsenceDeduction.Value != 0 && Model.FineAbsenceDeduction.FineAbsenceDeductionType == FineAbsenceDeductionType.Money) ? "" : "disabled") />
<label for="AbsentFine3Sub2">ریال از حقوق پرسنل کسر گردد.</label>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
//----------------------- WeekDays -----------------------
$('.Main-Radio').on('change', function () {
if ($(this).hasClass('WeekDayRadio')) {
$('.AbsentFineDaysDisable').removeClass('disable');
} else {
$('.AbsentFineDaysDisable').addClass('disable');
}
});
var JsonWeekDays = @Html.Raw(Json.Serialize(Model.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels));
$('#AbsentFineAll').on('change', function () {
var isChecked = $(this).is(':checked');
$('#dynamicInputsContainer').empty();
$('.AbsentFineDaysDisable input[type="checkbox"]').not('#AbsentFineAll').prop('checked', isChecked).trigger('change');
});
$('.AbsentFineDaysDisable input[type="checkbox"]').not('#AbsentFineAll').on('change', function () {
var allChecked = $('.AbsentFineDaysDisable input[type="checkbox"]').not('#AbsentFineAll').length === $('.AbsentFineDaysDisable input[type="checkbox"]:checked').not('#AbsentFineAll').length;
$('#AbsentFineAll').prop('checked', allChecked);
});
JsonWeekDays.forEach(function (item) {
var dayOfWeekIndex = item.dayOfWeek;
var checkbox = $(`.checkBox[data-index='${dayOfWeekIndex}']`);
checkbox.prop('checked', true).trigger('change');
appendInput(dayOfWeekIndex, checkbox.data("day"));
});
$(".checkBox").not('#AbsentFineAll').on("change", function () {
const day = $(this).data("day");
const indexDay = $(this).data("index");
if ($(this).is(":checked")) {
appendInput(indexDay, day);
} else {
$(`#input-FineAbsenceDayOfWeekViewModels-${indexDay}`).remove();
updateInputIndices();
}
});
function appendInput(indexDay, day) {
const container = $("#dynamicInputsContainer");
const newInput = $('<input>')
.attr("type", "hidden")
.attr("name", `Command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels[${indexDay}].DayOfWeek`)
.attr("id", `input-FineAbsenceDayOfWeekViewModels-${indexDay}`)
.attr("class", "numbers")
.attr("value", `${day}`);
container.append(newInput);
updateInputIndices();
}
function updateInputIndices() {
$("#dynamicInputsContainer .numbers").each(function (index) {
$(this).attr("name", `Command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels[${index}].DayOfWeek`);
});
}
});
</script>