changes of rollcall

This commit is contained in:
SamSys
2024-12-03 15:40:11 +03:30
parent db1b729717
commit 623d599ebd
52 changed files with 2661 additions and 2033 deletions

View File

@@ -2,18 +2,18 @@
public enum EarlyExitType
{
/// <summary>
/// محاسبه نمیشود
/// </summary>
None,
/// <summary>
/// محاسبه نمیشود
/// </summary>
None,
/// <summary>
/// هر دقیقه تاخیر به تناسب حقوق مزد روزانه کسر گردد
/// </summary>
DeductEveryMinuteAccordingToDailyWage,
/// <summary>
/// به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از حقوق پرسنل کسر میگردد
/// </summary>
Default,
/// <summary>
/// هر دقیقه تاخیر مبلغی کسر میگردد
/// </summary>
MoneyPerMinute
/// <summary>
/// در صورت تعجیل به ازای هر دقیقه مبلغی از مزد روزانه کسر میشود
/// </summary>
MoneyPerMinute
}

View File

@@ -2,18 +2,18 @@
public enum LateToWorkType
{
/// <summary>
/// محاسبه نمیشود
/// </summary>
None,
/// <summary>
/// محاسبه نمیشود
/// </summary>
None,
/// <summary>
/// هر دقیقه تاخیر به تناسب حقوق مزد روزانه کسر گردد
/// </summary>
DeductEveryMinuteAccordingToDailyWage,
/// <summary>
/// به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از حقوق پرسنل کسر میگردد
/// </summary>
Default,
/// <summary>
/// هر دقیقه تاخیر چند برابر از حقوق کسر میگردد
/// </summary>
MultiTimesPerMinute
/// <summary>
/// در صورت تاخیر به ازای هر دقیقه مبلغی از مزد روزانه کسر میشود
/// </summary>
MoneyPerMinute
}

View File

@@ -36,5 +36,6 @@ public interface ILeftWorkRepository : IRepository<long, LeftWork>
OperationResult CheckEditLeftWork(long workshopId, long employeeId, DateTime date, int type);
#region Pooya
List<LeftWorkViewModel> GetByWorkshopIdInDates(long workshopId, DateTime startDateGr, DateTime endDateGr);
#endregion
LeftWorkViewModel GetByWorkshopIdEmployeeIdInDates(long workshopId, long employeeId, DateTime start, DateTime end);
#endregion
}

View File

@@ -20,6 +20,6 @@ public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
CustomizeCheckoutMandatoryViewModel CustomizeCheckoutMandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd);
(double lateToWorkSapn, double earlyExit) LateToWorkEarlyExit(List<GroupedRollCalls> groupedRollCall,
List<LateToWorkEarlyExistSpannig> LateToWorkEarlyExit(List<GroupedRollCalls> groupedRollCall,
ICollection<CustomizeWorkshopEmployeeSettingsShift> shiftSettings, List<LeaveViewModel> leavList);
}

View File

@@ -0,0 +1,12 @@
using System;
namespace CompanyManagment.App.Contracts.CustomizeCheckout;
public class LateToWorkEarlyExistSpannig
{
public DateTime StartSpan { get; set; }
public DateTime EndSpan { get; set; }
public TimeSpan Spanning { get; set; }
public string TypeOfSapn { get; set; }
}

View File

@@ -568,4 +568,17 @@ public class LeftWorkRepository : RepositoryBase<long, LeftWork>, ILeftWorkRepos
EmployeeId = x.EmployeeId
}).ToList();
}
public LeftWorkViewModel GetByWorkshopIdEmployeeIdInDates(long workshopId, long employeeId, DateTime start, DateTime end)
{
var entity = _context.LeftWorkList.FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId && x.LeftWorkDate.AddDays(-1) >= start.Date &&
x.StartWorkDate <= end.Date);
return new LeftWorkViewModel()
{
StartWorkDateGr = entity.StartWorkDate.Date,
LeftWorkDateGr = entity.LeftWorkDate.Date,
EmployeeId = entity.EmployeeId,
HasLeft = entity.HasLeft
};
}
}

View File

@@ -5,196 +5,10 @@
<meta name="viewport" content="width=100vw">
} *@
@{
<style>
.modal .modal-dialog .modal-content {
background-color: white !important;
font-family: IranSans !important;
}
.btn-text-disable {
color: #627a62 !important;
background-color: #cdcdcd !important;
border-color: #585757 !important;
}
.btncounter-text-disable {
color: #bdc7bd !important;
background-color: #727272 !important;
border-color: #585757 !important;
}
.container2 {
height: 297mm;
padding-top: 15px;
}
.container2:last-of-type {
height: 280mm;
}
.modal-dialog {
max-width: 100%;
width: 22.4cm;
}
/* @@page {
size: 7in 9.25in;
margin: 27mm 16mm 27mm 16mm;
}*/
@@page {
size: A4;
margin: 0mm;
page-break-after: auto;
}
@@media screen {
#printSection {
display: none;
}
}
.print *,
.print p,
.print .h1, .print .h2, .print .h3, .print .h4, .print .h5, .print .h6, .print h1, .print h2, .print h3, .print h4, .print h5, .print h6 {
font-family: IranSans !important;
}
.print:last-child {
page-break-after: auto !important;
}
@@media print {
body * {
visibility: hidden !important;
page-break-after: auto !important;
}
html, body {
height: 100% !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
}
#printSection, #printSection * {
visibility: visible !important;
page-break-after: auto !important;
}
footer {
page-break-after: auto !important;
display: none !important;
}
header {
display: none !important;
}
#printSection {
position: absolute !important;
right: 0 !important;
page-break-after: auto !important;
top: 0 !important;
}
.head {
background-color: #cccccc !important;
-webkit-print-color-adjust: exact !important;
print-color-adjust: exact !important;
}
.radio-info input[type="radio"]:checked + label::after {
background-color: black !important;
-webkit-print-color-adjust: exact !important;
print-color-adjust: exact !important;
}
.mt-30 {
margin: 30px 0 0 0 !important;
}
}
.col-4, .col-3, .col-9,
.col-2, .col-10, .col-6,
.col-8, .col-5, .col-7,
.col-offset-1 {
float: right !important;
}
h1, h2, h3, h4, h5, h6 {
color: #505458 !important;
}
.h4, h4 {
font-size: 18px !important;
}
h5, h6 {
font-size: 14px !important;
margin: 5px 0px !important;
}
body {
font-size: 11px;
}
.radio {
display: inline-block;
margin-top: -10px !important;
}
.radio input[type=radio] {
position: unset !important;
}
textarea.form-control {
height: 100px !important;
}
.fontBold {
font-family: IranSans !important;
// font-family: 'IRANYekanX', serif !important;
}
.fontNumber {
font-family: IranText !important;
// font-family: 'IRANYekanX', serif !important;
}
.modal-body {
height: 99%;
}
.row {
margin-right: -10px !important;
margin-left: -10px !important;
}
.print-card {
position: fixed;
top: 130px;
width: auto;
z-index: 20;
box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}
@@media screen and (max-width: 992px) {
.wrapper {
visibility: hidden;
}
.print-card {
position: relative;
top: 0;
width: 100%;
z-index: 20;
}
}
</style>
int i = 0;
<link href="~/assetsclient/pages/contracts/css/contractprintall.css" rel="stylesheet" />
}
<div class="content-container">
<div class="container-fluid">
<div class="row p-2">
@@ -277,7 +91,7 @@
@foreach (var item in @Model.GroupPrintList)
{
<div class="container">
<div class="container2">
<div class="row">
<div class="col-md-12">
<fieldset style="border: 1px solid black;
@@ -415,13 +229,13 @@
<span class="radio-info">
@if (@item.ContractType == "دائم")
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" checked="checked" disabled="disabled">
<label for="inlineRadio3"> دائم </label>
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" checked="checked" disabled="disabled">
<label for="inlineRadio3@(i)"> دائم </label>
}
else
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" disabled="disabled">
<label for="inlineRadio3"> دائم </label>
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" disabled="disabled">
<label for="inlineRadio3@(i)"> دائم </label>
}
@@ -429,12 +243,12 @@
<span class="radio-info">
@if (@item.ContractType == "موقت")
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" checked="checked" disabled="disabled">
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" checked="checked" disabled="disabled">
<label for="inlineRadio3"> موقت </label>
}
else
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" disabled="disabled">
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" disabled="disabled">
<label for="inlineRadio3"> موقت </label>
}
@@ -442,18 +256,18 @@
<span class="radio-info">
@if (@item.ContractType == "معین")
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" checked="checked" disabled="disabled">
<label for="inlineRadio3"> معین </label>
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" checked="checked" disabled="disabled">
<label for="inlineRadio3@(i)"> معین </label>
}
else
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" disabled="disabled">
<label for="inlineRadio3"> معین </label>
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" disabled="disabled">
<label for="inlineRadio3@(i)"> معین </label>
}
</span>
@{ i++; }
</div>
<div class="col-8" style="margin-top: 3px;">
<span class="fontBold">نوع کار یا حرفه یا حجم کار یا وظیفه ای که کارگر به آن اشتغال می یابد</span> :

View File

@@ -1,5 +1,6 @@
@model CompanyManagment.App.Contracts.Contract.GroupPrintViewModel
@{
int i = 0;
<style>
.modal .modal-dialog .modal-content {
background-color: white !important;
@@ -309,47 +310,47 @@
<span class="fontBold"> نوع قرارداد </span> : <span>&nbsp;</span><span>&nbsp;</span>
<span class="radio-info">
@if (@item.ContractType == "دائم")
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" checked="checked" disabled="disabled">
<label for="inlineRadio3"> دائم </label>
}
else
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" disabled="disabled">
<label for="inlineRadio3"> دائم </label>
}
@if (@item.ContractType == "دائم")
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" checked="checked" disabled="disabled">
<label for="inlineRadio3@(i)"> دائم </label>
}
else
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" disabled="disabled">
<label for="inlineRadio3@(i)"> دائم </label>
}
</span><span>&nbsp;</span><span>&nbsp;</span>
<span class="radio-info">
@if (@item.ContractType == "موقت")
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" checked="checked" disabled="disabled">
<label for="inlineRadio3"> موقت </label>
}
else
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" disabled="disabled">
<label for="inlineRadio3"> موقت </label>
}
@if (@item.ContractType == "موقت")
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" checked="checked" disabled="disabled">
<label for="inlineRadio3@(i)"> موقت </label>
}
else
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" disabled="disabled">
<label for="inlineRadio3@(i)"> موقت </label>
}
</span><span>&nbsp;</span><span>&nbsp;</span>
<span class="radio-info">
@if (@item.ContractType == "معین")
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" checked="checked" disabled="disabled">
<label for="inlineRadio3"> معین </label>
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" checked="checked" disabled="disabled">
<label for="inlineRadio3@(i)"> معین </label>
}
else
{
<input style="vertical-align: sub;" type="radio" id="inlineRadio3" name="a" disabled="disabled">
<label for="inlineRadio3"> معین </label>
<input style="vertical-align: sub;" type="radio" id="inlineRadio3@(i)" name="a@(i)" disabled="disabled">
<label for="inlineRadio3@(i)"> معین </label>
}
</span>
@{ i++; }
</div>
<div class="col-8" style="margin-top: 3px;">
<span class="fontBold">نوع کار یا حرفه یا حجم کار یا وظیفه ای که کارگر به آن اشتغال می یابد</span> :
@@ -502,13 +503,19 @@
</div>
<script src="~/assetsclient/libs/html2pdf/html2pdf.bundle.min.js"></script>
<script>
$(document).ready(function () {
printElement(document.getElementById("printThis"));
if (window.matchMedia('(max-width: 767px)').matches) {
setTimeout(function () {
PDFElement();
}, 500);
} else {
printElement(document.getElementById("printThis"));
}
// printElement(document.getElementById("printThis"));
});
function printElement(elem) {
@@ -526,4 +533,47 @@
$printSection.appendChild(domClone);
window.print();
}
function PDFElement() {
var elem = document.getElementById("printThis");
elem.style.float = "right";
elem.style.direction = "rtl";
elem.style.textAlign = "right";
elem.style.height = "100%";
// var opt ={
// margin: 0,
// filename: `contract_selected.pdf`,
// image: { type: 'jpeg', quality: 0.98 },
// html2canvas: { scale: 2 },
// jsPDF: { unit: 'pt', format: 'a4', orientation: 'portrait' },
// pagebreak: { mode: ['avoid-all'] }
// };
// html2pdf().set(opt).from(elem).save();
var opt = {
margin: 0,
filename: `contract_selected.pdf`,
image: { type: 'jpeg', quality: 0.98 },
html2canvas: {
scale: 2,
useCORS: true // اگر تصاویر خارجی دارید، این فعال باشد
},
jsPDF: {
unit: 'mm',
format: 'a4',
orientation: 'portrait'
},
pagebreak: {
mode: ['avoid-all', 'css', 'legacy'],
before: ['.break-before'],
after: ['.break-after'],
avoid: ['.avoid-break']
}
};
html2pdf().set(opt).from(elem).save();
}
</script>

View File

@@ -1,5 +1,5 @@
@using _0_Framework.Domain.CustomizeCheckoutShared.Enums
@model CompanyManagment.App.Contracts.CustomizeWorkshopSettings.EditCustomizeEmployeeSettings
@model CompanyManagment.App.Contracts.CustomizeWorkshopSettings.EditCustomizeWorkshopSettings
<div class="row my-2">
<div class="col-12 mb-2">
@@ -28,21 +28,21 @@
<div class="form-group sub-group my-1 ms-4 BonusesPay2SubDisable">
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub1" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.Money ? "checked" : "") value="@((int)(BonusesType.Money))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub1" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.Money ? "checked" : "") value="@((int)(BonusesType.Money))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub1">مبلغ عیدی </label>
<input type="text" class="sub-input form-control-currency" name="Command.BonusesPay.Value" value="@(Model.BonusesPay.BonusesPayType == BonusesType.Money ? Model.BonusesPay.Value : "")" @((Model.BonusesPay.Value != 0 && Model.BonusesPay.BonusesPayType == BonusesType.Money) ? "" : "disabled") />
<label for="BonusesPay2Sub1">ریال در سال</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub2" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.OneTimeOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub2" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.OneTimeOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub2">مبلغ عیدی یک پایه حقوق پرداختی پرسنل محاسبه گردد.</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub3" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.TwoTimeOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub3" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.TwoTimeOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub3">مبلغ عیدی 2 برابر پایه حقوق پرداختی پرسنل محاسبه گردد.</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub4" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? "checked" : "") value="@((int)(BonusesType.PercentageOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub4" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? "checked" : "") value="@((int)(BonusesType.PercentageOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub4">مبلغ عیدی </label>
<input type="text" class="sub-input form-control-percent" maxlength="3" name="Command.BonusesPay.Value" value="@(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? Model.BonusesPay.Value : "")" @((Model.BonusesPay.Value != 0 && Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub4">درصد از حقوق، ماهیانه پرسنل محاسبه گردد.</label>

View File

@@ -1,6 +1,21 @@
@using _0_Framework.Domain.CustomizeCheckoutShared.Enums
@model CompanyManagment.App.Contracts.CustomizeWorkshopSettings.EditCustomizeEmployeeSettings
@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">
@@ -26,17 +41,17 @@
<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 d-flex AbsentFineDaysDisable @(Model.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels.Any() ? "" : "disable")">
<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="0" />
value="Saturday"
id="AbsentFineSat"
class="checkBox form-check-input"
data-day="Saturday"
data-index="6" />
<label class="labelDays" for="AbsentFineSat">شنبه</label>
<input type="checkbox"
@@ -44,37 +59,31 @@
id="AbsentFineSun"
class="checkBox form-check-input"
data-day="Sunday"
data-index="1"/>
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="2"/>
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="3"/>
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="4"/>
data-index="3"/>
<label class="labelDays" for="AbsentFineWed">چهارشنبه</label>
<input type="checkbox"
@@ -82,15 +91,15 @@
id="AbsentFineThu"
class="checkBox form-check-input"
data-day="Thursday"
data-index="5"/>
data-index="4"/>
<label class="labelDays" for="AbsentFineThu">پنجشنبه</label>
<input type="checkbox"6
<input type="checkbox"
value="Friday"
id="AbsentFineFri"
class="checkBox form-check-input"
data-day="Friday"
data-index="6"/>
data-index="5"/>
<label class="labelDays" for="AbsentFineFri">جمعه</label>
@@ -178,6 +187,7 @@
appendInput(indexDay, day);
} else {
$(`#input-FineAbsenceDayOfWeekViewModels-${indexDay}`).remove();
updateInputIndices();
}
});
@@ -193,7 +203,6 @@
.attr("value", `${day}`);
container.append(newInput);
updateInputIndices();
}
@@ -202,6 +211,5 @@
$(this).attr("name", `Command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels[${index}].DayOfWeek`);
});
}
});
</script>

View File

@@ -21,20 +21,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "checked" : "")/>
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default || Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "checked" : "")/>
<label for="ArrivalDelay2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 ArrivalDelay2SubDisable">
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MultiTimesPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="sub-input form-control-percent" maxlength="3" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MoneyPerMinute))" @((Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر مبلغ </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(LateToWorkType.DeductEveryMinuteAccordingToDailyWage))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.Default ? "checked" : "") value="@((int)(LateToWorkType.Default))" @((Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -118,21 +117,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" />
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default || Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "checked" : "")/>
<label for="DepartureHaste2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 DepartureHaste2SubDisable">
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="form-control-percent sub-input" maxlength="3" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute || Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل  مبلغ </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(EarlyExitType.DeductEveryMinuteAccordingToDailyWage))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.Default ? "checked" : "") value="@((int)(EarlyExitType.Default))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute || Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled") />
<label for="DepartureHaste2Sub1">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
</div>
</div>

View File

@@ -1,5 +1,5 @@
@using _0_Framework.Domain.CustomizeCheckoutShared.Enums
@model CompanyManagment.App.Contracts.CustomizeWorkshopSettings.EditCustomizeWorkshopGroupSettings
@model CompanyManagment.App.Contracts.CustomizeWorkshopSettings.EditCustomizeWorkshopSettings
<div class="row my-2">
<div class="col-12 mb-2">
@@ -28,21 +28,21 @@
<div class="form-group sub-group my-1 ms-4 BonusesPay2SubDisable">
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub1" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.Money ? "checked" : "") value="@((int)(BonusesType.Money))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub1" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.Money ? "checked" : "") value="@((int)(BonusesType.Money))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub1">مبلغ عیدی </label>
<input type="text" class="sub-input form-control-currency" name="Command.BonusesPay.Value" value="@(Model.BonusesPay.BonusesPayType == BonusesType.Money ? Model.BonusesPay.Value : "")" @((Model.BonusesPay.Value != 0 && Model.BonusesPay.BonusesPayType == BonusesType.Money) ? "" : "disabled") />
<label for="BonusesPay2Sub1">ریال در سال</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub2" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.OneTimeOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub2" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.OneTimeOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub2">مبلغ عیدی یک پایه حقوق پرداختی پرسنل محاسبه گردد.</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub3" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.TwoTimeOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub3" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.TwoTimeOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub3">مبلغ عیدی 2 برابر پایه حقوق پرداختی پرسنل محاسبه گردد.</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub4" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? "checked" : "") value="@((int)(BonusesType.PercentageOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub4" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? "checked" : "") value="@((int)(BonusesType.PercentageOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub4">مبلغ عیدی </label>
<input type="text" class="sub-input form-control-percent" maxlength="3" name="Command.BonusesPay.Value" value="@(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? Model.BonusesPay.Value : "")" @((Model.BonusesPay.Value != 0 && Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub4">درصد از حقوق، ماهیانه پرسنل محاسبه گردد.</label>

View File

@@ -1,5 +1,21 @@
@using _0_Framework.Domain.CustomizeCheckoutShared.Enums
@model CompanyManagment.App.Contracts.CustomizeWorkshopSettings.EditCustomizeWorkshopGroupSettings
@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">
@@ -25,17 +41,17 @@
<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 d-flex AbsentFineDaysDisable @(Model.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels.Any() ? "" : "disable")">
<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="0" />
value="Saturday"
id="AbsentFineSat"
class="checkBox form-check-input"
data-day="Saturday"
data-index="6" />
<label class="labelDays" for="AbsentFineSat">شنبه</label>
<input type="checkbox"
@@ -43,37 +59,31 @@
id="AbsentFineSun"
class="checkBox form-check-input"
data-day="Sunday"
data-index="1"/>
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="2"/>
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="3"/>
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="4"/>
data-index="3"/>
<label class="labelDays" for="AbsentFineWed">چهارشنبه</label>
<input type="checkbox"
@@ -81,15 +91,15 @@
id="AbsentFineThu"
class="checkBox form-check-input"
data-day="Thursday"
data-index="5"/>
data-index="4"/>
<label class="labelDays" for="AbsentFineThu">پنجشنبه</label>
<input type="checkbox"6
<input type="checkbox"
value="Friday"
id="AbsentFineFri"
class="checkBox form-check-input"
data-day="Friday"
data-index="6"/>
data-index="5"/>
<label class="labelDays" for="AbsentFineFri">جمعه</label>
@@ -177,6 +187,7 @@
appendInput(indexDay, day);
} else {
$(`#input-FineAbsenceDayOfWeekViewModels-${indexDay}`).remove();
updateInputIndices();
}
});
@@ -192,7 +203,6 @@
.attr("value", `${day}`);
container.append(newInput);
updateInputIndices();
}
@@ -201,6 +211,5 @@
$(this).attr("name", `Command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels[${index}].DayOfWeek`);
});
}
});
</script>

View File

@@ -22,20 +22,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "checked" : "")/>
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default || Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "checked" : "")/>
<label for="ArrivalDelay2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 ArrivalDelay2SubDisable">
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MultiTimesPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="sub-input form-control-percent" maxlength="3" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MoneyPerMinute))" @((Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر مبلغ </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(LateToWorkType.DeductEveryMinuteAccordingToDailyWage))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.Default ? "checked" : "") value="@((int)(LateToWorkType.Default))" @((Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -119,21 +118,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" />
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default || Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "checked" : "")/>
<label for="DepartureHaste2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 DepartureHaste2SubDisable">
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="form-control-percent sub-input" maxlength="3" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute || Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل  مبلغ </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(EarlyExitType.DeductEveryMinuteAccordingToDailyWage))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.Default ? "checked" : "") value="@((int)(EarlyExitType.Default))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute || Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled") />
<label for="DepartureHaste2Sub1">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
</div>
</div>

View File

@@ -28,21 +28,21 @@
<div class="form-group sub-group my-1 ms-4 BonusesPay2SubDisable">
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub1" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.Money ? "checked" : "") value="@((int)(BonusesType.Money))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub1" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.Money ? "checked" : "") value="@((int)(BonusesType.Money))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub1">مبلغ عیدی </label>
<input type="text" class="sub-input form-control-currency" name="Command.BonusesPay.Value" value="@(Model.BonusesPay.BonusesPayType == BonusesType.Money ? Model.BonusesPay.Value : "")" @((Model.BonusesPay.Value != 0 && Model.BonusesPay.BonusesPayType == BonusesType.Money) ? "" : "disabled") />
<label for="BonusesPay2Sub1">ریال در سال</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub2" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.OneTimeOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub2" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.OneTimeOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub2">مبلغ عیدی یک پایه حقوق پرداختی پرسنل محاسبه گردد.</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub3" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.TwoTimeOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub3" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary ? "checked" : "") value="@((int)(BonusesType.TwoTimeOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub3">مبلغ عیدی 2 برابر پایه حقوق پرداختی پرسنل محاسبه گردد.</label>
</div>
<div>
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub4" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? "checked" : "") value="@((int)(BonusesType.PercentageOfSalary))" />
<input type="radio" name="Command.BonusesPay.BonusesPayType" id="BonusesPay2Sub4" class="form-check-input Sub-Radio" @(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? "checked" : "") value="@((int)(BonusesType.PercentageOfSalary))" @((Model.BonusesPay.BonusesPayType == BonusesType.Money || Model.BonusesPay.BonusesPayType == BonusesType.OneTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.TwoTimeOfSalary || Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub4">مبلغ عیدی </label>
<input type="text" class="sub-input form-control-percent" maxlength="3" name="Command.BonusesPay.Value" value="@(Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary ? Model.BonusesPay.Value : "")" @((Model.BonusesPay.Value != 0 && Model.BonusesPay.BonusesPayType == BonusesType.PercentageOfSalary) ? "" : "disabled") />
<label for="BonusesPay2Sub4">درصد از حقوق، ماهیانه پرسنل محاسبه گردد.</label>

View File

@@ -3,6 +3,18 @@
@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">
@@ -29,17 +41,17 @@
<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 d-flex AbsentFineDaysDisable @(Model.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels.Any() ? "" : "disable")">
<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="0" />
value="Saturday"
id="AbsentFineSat"
class="checkBox form-check-input"
data-day="Saturday"
data-index="6" />
<label class="labelDays" for="AbsentFineSat">شنبه</label>
<input type="checkbox"
@@ -47,37 +59,31 @@
id="AbsentFineSun"
class="checkBox form-check-input"
data-day="Sunday"
data-index="1"/>
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="2"/>
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="3"/>
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="4"/>
data-index="3"/>
<label class="labelDays" for="AbsentFineWed">چهارشنبه</label>
<input type="checkbox"
@@ -85,15 +91,15 @@
id="AbsentFineThu"
class="checkBox form-check-input"
data-day="Thursday"
data-index="5"/>
data-index="4"/>
<label class="labelDays" for="AbsentFineThu">پنجشنبه</label>
<input type="checkbox"6
<input type="checkbox"
value="Friday"
id="AbsentFineFri"
class="checkBox form-check-input"
data-day="Friday"
data-index="6"/>
data-index="5"/>
<label class="labelDays" for="AbsentFineFri">جمعه</label>
@@ -181,6 +187,7 @@
appendInput(indexDay, day);
} else {
$(`#input-FineAbsenceDayOfWeekViewModels-${indexDay}`).remove();
updateInputIndices();
}
});
@@ -196,7 +203,6 @@
.attr("value", `${day}`);
container.append(newInput);
updateInputIndices();
}
@@ -205,6 +211,5 @@
$(this).attr("name", `Command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels[${index}].DayOfWeek`);
});
}
});
</script>

View File

@@ -21,20 +21,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "checked" : "")/>
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default || Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "checked" : "")/>
<label for="ArrivalDelay2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 ArrivalDelay2SubDisable">
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MultiTimesPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="sub-input form-control-percent" maxlength="3" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MoneyPerMinute))" @((Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر مبلغ </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(LateToWorkType.DeductEveryMinuteAccordingToDailyWage))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.Default ? "checked" : "") value="@((int)(LateToWorkType.Default))" @((Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -137,21 +136,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" />
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default || Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "checked" : "")/>
<label for="DepartureHaste2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 DepartureHaste2SubDisable">
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="form-control-percent sub-input" maxlength="3" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute || Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل  مبلغ </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(EarlyExitType.DeductEveryMinuteAccordingToDailyWage))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.Default ? "checked" : "") value="@((int)(EarlyExitType.Default))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute || Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled") />
<label for="DepartureHaste2Sub1">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
</div>
</div>

View File

@@ -47,7 +47,7 @@
<path d="M19.5 10.5C19.5 11.3284 18.8284 12 18 12C17.1716 12 16.5 11.3284 16.5 10.5C16.5 9.67157 17.1716 9 18 9C18.8284 9 19.5 9.67157 19.5 10.5Z" fill="white"></path>
<path stroke-width="1.5" d="M18 24.75V17.25C18 15.8358 18 15.1287 17.5607 14.6893C17.1213 14.25 16.4142 14.25 15 14.25V14.25M18 24.75H20.25M18 24.75H15.75" stroke="white"></path>
</svg>
<p class="m-0 ms-2">تعداد پرسنل سرویس خریداری شده: <span id="maxPersonValid"></span></p>
<p class="m-0 ms-2">تعداد پرسنل سرویس خریداری شده: <span id="maxPersonValid">@Model.MaxPersonValid</span></p>
</div>
</div>
<div class="col-12 col-md-4 text-center text-md-center">

View File

@@ -13,204 +13,216 @@ using System.Security.Claims;
namespace ServiceHost.Areas.Client.Pages.Company.RollCall
{
[Authorize]
public class EmployeeUploadPictureModel : PageModel
{
public string WorkshopFullName;
public RollCallEmployeeViewModel Employees;
public RollCallServiceViewModel RollCallService;
public bool HasEmployees;
public int MaxPersonValid;
public long WorkshopId;
public int PageIndex;
[Authorize]
public class EmployeeUploadPictureModel : PageModel
{
public string WorkshopFullName;
public RollCallEmployeeViewModel Employees;
public RollCallServiceViewModel RollCallService;
public bool HasEmployees;
private readonly IWorkshopApplication _workshopApplication;
private readonly IEmployeeApplication _employeeApplication;
private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication;
private readonly IRollCallServiceApplication _rollCallServiceApplication;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IPasswordHasher _passwordHasher;
private readonly IRollCallEmployeeStatusApplication _rollCallEmployeeStatusApplication;
public EmployeeUploadPictureModel(IWorkshopApplication workshopApplication, IPasswordHasher passwordHasher, IRollCallEmployeeApplication rollCallEmployeeApplication, IRollCallServiceApplication rollCallServiceApplication, IWebHostEnvironment webHostEnvironment, IEmployeeApplication employeeApplication, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication)
{
_workshopApplication = workshopApplication;
_passwordHasher = passwordHasher;
_rollCallEmployeeApplication = rollCallEmployeeApplication;
_rollCallServiceApplication = rollCallServiceApplication;
_webHostEnvironment = webHostEnvironment;
_employeeApplication = employeeApplication;
_rollCallEmployeeStatusApplication = rollCallEmployeeStatusApplication;
}
//[BindProperty]
public int MaxPersonValid { get; set; }
public long WorkshopId;
public int PageIndex;
public IActionResult OnGet()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
RollCallService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId);
if (RollCallService == null)
return Redirect("/Client/Company/RollCall");
var workshop = _workshopApplication.GetWorkshopInfo(workshopId);
WorkshopFullName = workshop.WorkshopFullName;
MaxPersonValid = RollCallService.MaxPersonValid;
//var distinctEmployees = _rollCallEmployeeApplication.GetPersonnelRollCallListPaginate(new RollCallEmployeeSearchModel()
//{
//});
WorkshopId = workshopId;
PageIndex = 0;
HasEmployees = _rollCallEmployeeApplication.HasEmployees(workshopId);
return Page();
}
else
{
return NotFound();
}
private readonly IWorkshopApplication _workshopApplication;
private readonly IEmployeeApplication _employeeApplication;
private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication;
private readonly IRollCallServiceApplication _rollCallServiceApplication;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IPasswordHasher _passwordHasher;
private readonly IRollCallEmployeeStatusApplication _rollCallEmployeeStatusApplication;
public EmployeeUploadPictureModel(IWorkshopApplication workshopApplication, IPasswordHasher passwordHasher, IRollCallEmployeeApplication rollCallEmployeeApplication, IRollCallServiceApplication rollCallServiceApplication, IWebHostEnvironment webHostEnvironment, IEmployeeApplication employeeApplication, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication)
{
_workshopApplication = workshopApplication;
_passwordHasher = passwordHasher;
_rollCallEmployeeApplication = rollCallEmployeeApplication;
_rollCallServiceApplication = rollCallServiceApplication;
_webHostEnvironment = webHostEnvironment;
_employeeApplication = employeeApplication;
_rollCallEmployeeStatusApplication = rollCallEmployeeStatusApplication;
}
public IActionResult OnGetEmployeeUploadDataAjax(int pageIndex, string searchName)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
//MaxPersonValid = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId).MaxPersonValid;
var distinctEmployees = _rollCallEmployeeApplication.GetPersonnelRollCallListPaginate(new RollCallEmployeeSearchModel()
{
WorkshopId = workshopId,
PageIndex = pageIndex,
public IActionResult OnGet()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
RollCallService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId);
if (RollCallService == null)
return Redirect("/Client/Company/RollCall");
var workshop = _workshopApplication.GetWorkshopInfo(workshopId);
WorkshopFullName = workshop.WorkshopFullName;
// if (string.IsNullOrEmpty(HttpContext.Session.GetString("MaxPersonValid")))
// {
// MaxPersonValid = RollCallService.MaxPersonValid;
//HttpContext.Session.SetString("MaxPersonValid", MaxPersonValid.ToString());
// }
// else
// {
// MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid"));
// }
MaxPersonValid = RollCallService.MaxPersonValid;
//var distinctEmployees = _rollCallEmployeeApplication.GetPersonnelRollCallListPaginate(new RollCallEmployeeSearchModel()
//{
//});
WorkshopId = workshopId;
PageIndex = 0;
HasEmployees = _rollCallEmployeeApplication.HasEmployees(workshopId);
return Page();
}
else
{
return NotFound();
}
}
public IActionResult OnGetEmployeeUploadDataAjax(int pageIndex, string searchName)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
//MaxPersonValid = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId).MaxPersonValid;
var distinctEmployees = _rollCallEmployeeApplication.GetPersonnelRollCallListPaginate(new RollCallEmployeeSearchModel()
{
WorkshopId = workshopId,
PageIndex = pageIndex,
Name = searchName
});
Employees = new RollCallEmployeeViewModel
{
PersonnelInfoViewModels = distinctEmployees
};
return new JsonResult(new
{
isSuccedded = true,
data = Employees,
pageIndex = Employees.PersonnelInfoViewModels.Count()
});
}
else
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاهی یافت نشد"
});
}
}
Employees = new RollCallEmployeeViewModel
{
PersonnelInfoViewModels = distinctEmployees
};
return new JsonResult(new
{
isSuccedded = true,
data = Employees,
pageIndex = Employees.PersonnelInfoViewModels.Count()
});
}
else
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاهی یافت نشد"
});
}
}
public IActionResult OnGetLoadInfoCount()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاهی یافت نشد"
});
}
//var activeService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId);
//var maxPersonValid = activeService.MaxPersonValid;
public IActionResult OnGetLoadInfoCount()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاهی یافت نشد"
});
}
//MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid"));
var activeService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId);
MaxPersonValid = activeService.MaxPersonValid;
var employeesCount = _rollCallEmployeeApplication.GetActiveAndDeActiveRollCallEmployees(workshopId);
var employeesCount = _rollCallEmployeeApplication.GetActiveAndDeActiveRollCallEmployees(workshopId);
return new JsonResult(new
{
isSuccedded = true,
maxPersonValid = MaxPersonValid == -1 ? "نامحدود" : MaxPersonValid.ToString(),
isTrueActiveCount = employeesCount.activeEmployees,
isFalseActiveCount = employeesCount.deActiveEmployees,
message = "موفق"
});
}
return new JsonResult(new
{
isSuccedded = true,
maxPersonValid = MaxPersonValid == -1 ? "نامحدود" : MaxPersonValid.ToString(),
isTrueActiveCount = employeesCount.activeEmployees,
isFalseActiveCount = employeesCount.deActiveEmployees,
message = "موفق"
});
}
public IActionResult OnGetCheckModalTakeImage()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
public IActionResult OnGetCheckModalTakeImage()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId <= 0)
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاه شما یافت نشده است"
});
}
//MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid"));
var plan = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId);
if (workshopId <= 0)
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاه شما یافت نشده است"
});
}
if (plan == null)
{
return new JsonResult(new
{
isSuccedded = false,
message = "شما سرویس خریداری شده ندارید"
});
}
var plan = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId);
if (plan.IsActiveString != "true")
{
return new JsonResult(new
{
isSuccedded = false,
message = "سرویس شما فعال نیست"
});
}
if (plan == null)
{
return new JsonResult(new
{
isSuccedded = false,
message = "شما سرویس خریداری شده ندارید"
});
}
//var maxValid = RollCallService.MaxPersonValid;
if (plan.IsActiveString != "true")
{
return new JsonResult(new
{
isSuccedded = false,
message = "سرویس شما فعال نیست"
});
}
if (MaxPersonValid == -1 || _rollCallEmployeeApplication.activedPerson(workshopId) < MaxPersonValid)
{
return new JsonResult(new
{
isSuccedded = true,
message = "موفق"
});
}
//var maxValid = RollCallService.MaxPersonValid;
return new JsonResult(new
{
isSuccedded = false,
message = "محدودیت افزودن پرسنل"
});
}
if (plan.MaxPersonValid == -1 || _rollCallEmployeeApplication.activedPerson(workshopId) < plan.MaxPersonValid)
{
return new JsonResult(new
{
isSuccedded = true,
message = "موفق"
});
}
public IActionResult OnGetModalTakeImages(long employeeId)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
return new JsonResult(new
{
isSuccedded = false,
message = "محدودیت افزودن پرسنل"
});
}
var employeeWorkshopInfo = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, workshopId);
public IActionResult OnGetModalTakeImages(long employeeId)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
bool hasPicture = false;
if (employeeWorkshopInfo != null && !string.IsNullOrEmpty(employeeWorkshopInfo.HasUploadedImage))
hasPicture = bool.Parse(employeeWorkshopInfo.HasUploadedImage);
var employeeWorkshopInfo = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, workshopId);
var employeeDetails = _employeeApplication.GetDetails(employeeId);
bool hasPicture = false;
if (employeeWorkshopInfo != null && !string.IsNullOrEmpty(employeeWorkshopInfo.HasUploadedImage))
hasPicture = bool.Parse(employeeWorkshopInfo.HasUploadedImage);
string employeeName = string.Empty;
if (employeeDetails != null)
employeeName = employeeDetails.EmployeeFullName;
var employeeDetails = _employeeApplication.GetDetails(employeeId);
string employeeName = string.Empty;
if (employeeDetails != null)
employeeName = employeeDetails.EmployeeFullName;
string pic1 = "";
string pic2 = "";
@@ -246,23 +258,23 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
Pic1 = pic1,
Pic2 = pic2,
};
return Partial("ModalTakeImages", res);
}
else
{
var resultError = new ErrorViewModel()
{
IsSuccedded = false,
Message = "هیج کارگاهی یافت نشد"
};
return Partial("../Error/_ErrorModal", resultError);
}
}
public IActionResult OnPostTakePicture(string base64pic1, string base64pic2, long workshopId, long employeeId)
{
return Partial("ModalTakeImages", res);
}
else
{
var resultError = new ErrorViewModel()
{
IsSuccedded = false,
Message = "هیج کارگاهی یافت نشد"
};
return Partial("../Error/_ErrorModal", resultError);
}
}
public IActionResult OnPostTakePicture(string base64pic1, string base64pic2, long workshopId, long employeeId)
{
try
{
var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}";
@@ -293,7 +305,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
};
result = _rollCallEmployeeApplication.Create(createCommand);
_rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus()
{ RollCallEmployeeId = result.SendId });
{ RollCallEmployeeId = result.SendId });
}
else
{
@@ -330,116 +342,116 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
}
public void CreateImageFromBase64(string base64, string imagePathWithExtension)
{
var subBase64 = base64.Substring(base64.LastIndexOf(',') + 1);
byte[] bytes = Convert.FromBase64String(subBase64);
System.IO.File.WriteAllBytes(imagePathWithExtension, bytes);
}
public void CreateImageFromBase64(string base64, string imagePathWithExtension)
{
var subBase64 = base64.Substring(base64.LastIndexOf(',') + 1);
byte[] bytes = Convert.FromBase64String(subBase64);
System.IO.File.WriteAllBytes(imagePathWithExtension, bytes);
}
public IActionResult OnPostActivePersonnel(long id)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
var hasRollCallEmployee = _rollCallEmployeeApplication.GetDetails(id);
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
var hasRollCallEmployee = _rollCallEmployeeApplication.GetDetails(id);
if (hasRollCallEmployee == null)
{
return new JsonResult(new
{
isSuccedded = false,
message = "برای این پرسنل، هنوز هیچ عکسی آپلود نشده است. بعد از آپلود عکس بطور خودکار فعال خواهد شد",
});
}
else
{
if (hasRollCallEmployee.HasUploadedImage == "false")
return new JsonResult(new
{
isSuccedded = false,
message = "برای این پرسنل، هنوز هیچ عکسی آپلود نشده است. بعد از آپلود عکس بطور خودکار فعال خواهد شد",
});
if (hasRollCallEmployee == null)
{
return new JsonResult(new
{
isSuccedded = false,
message = "برای این پرسنل، هنوز هیچ عکسی آپلود نشده است. بعد از آپلود عکس بطور خودکار فعال خواهد شد",
});
}
else
{
if (hasRollCallEmployee.HasUploadedImage == "false")
return new JsonResult(new
{
isSuccedded = false,
message = "برای این پرسنل، هنوز هیچ عکسی آپلود نشده است. بعد از آپلود عکس بطور خودکار فعال خواهد شد",
});
var result = _rollCallEmployeeApplication.Active(hasRollCallEmployee.Id);
if (result.IsSuccedded)
{
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
else
{
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
}
return new JsonResult(new
{
isSuccedded = false,
message = "خطایی رخ آمده است",
});
}
else
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاه شما یافت نشد",
});
}
}
var result = _rollCallEmployeeApplication.Active(hasRollCallEmployee.Id);
if (result.IsSuccedded)
{
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
else
{
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
}
return new JsonResult(new
{
isSuccedded = false,
message = "خطایی رخ آمده است",
});
}
else
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاه شما یافت نشد",
});
}
}
public IActionResult OnPostDeActivePersonnel(long id)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
var result = _rollCallEmployeeApplication.DeActive(id);
if (result.IsSuccedded)
{
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnPostDeActivePersonnel(long id)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId > 0)
{
var result = _rollCallEmployeeApplication.DeActive(id);
if (result.IsSuccedded)
{
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
else
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاه شما یافت نشد",
});
}
}
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
else
{
return new JsonResult(new
{
isSuccedded = false,
message = "کارگاه شما یافت نشد",
});
}
}
public IActionResult OnGetLoadFirstImage(long employeeId, long workshopId)
{
var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}";
var imageDir = Path.Combine(directoryPath, "1.jpg");
return PhysicalFile(imageDir, "image/jpeg");
}
public IActionResult OnGetLoadFirstImage(long employeeId, long workshopId)
{
var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}";
var imageDir = Path.Combine(directoryPath, "1.jpg");
return PhysicalFile(imageDir, "image/jpeg");
}
public IActionResult OnGetLoadSecondImage(long employeeId, long workshopId)
{
var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}";
var imageDir = Path.Combine(directoryPath, "2.jpg");
return PhysicalFile(imageDir, "image/jpeg");
}
public IActionResult OnGetLoadSecondImage(long employeeId, long workshopId)
{
var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}";
var imageDir = Path.Combine(directoryPath, "2.jpg");
return PhysicalFile(imageDir, "image/jpeg");
}
public IActionResult OnGetModalChangeName(long employeeId)
{

View File

@@ -99,6 +99,7 @@
var removeEmployeeFromGroupAjax = `@Url.Page("./Grouping", "RemoveEmployee")`;
var workshopSettingId = Number((@Model.RollCallWorkshopSettings.Id));
var isShiftChangedGlobal = false;
var titleOfGroup = "";
</script>
<script src="~/assetsclient/pages/rollcall/js/grouping.js?ver=@clientVersion"></script>
}

View File

@@ -6,7 +6,7 @@
<div class="modal-content" style="height: 450px;">
<div class="modal-header d-block text-center">
<button type="button" class="btn-close position-absolute text-start" data-bs-dismiss="modal" aria-label="Close"></button>
<h5 class="modal-title" id="createNewGroupLabel">افزودن اعضاء به گروه</h5>
<h5 class="modal-title">افزودن اعضاء به گروه <span id="createNewGroupLabel"></span></h5>
</div>
<div class="modal-body">

View File

@@ -127,7 +127,7 @@
</div>
<div class="d-flex align-items-center justify-content-center w-100 my-2">
<button type="button" class="btnAddTimeWork">
<button type="button" class="btnAddTimeWork @(Model.ShiftViewModel.Count() == 3 ? "d-none" : "")">
<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="M11 13.75L11 8.25" stroke="white" stroke-linecap="round"/>
@@ -137,10 +137,14 @@
{
<div class="mx-1 btnAppendChildTimeWork">افزودن نوبت سوم</div>
}
else
else if (Model.ShiftViewModel.Count() == 1)
{
<div class="mx-1 btnAppendChildTimeWork">افزودن نوبت دوم</div>
}
else
{
<div class="mx-1 btnAppendChildTimeWork"></div>
}
</button>
</div>
<div class="col-12">

View File

@@ -11,7 +11,7 @@
<div class="modal-header d-block text-center mb-2 pb-0">
<button type="button" class="btn-close position-absolute text-start" data-bs-dismiss="modal" aria-label="Close"></button>
<h6>ویرایش گروه</h6>
<h6>ویرایش گروه <span>@Model.Name</span></h6>
</div>
<div class="modal-body">
@@ -51,7 +51,20 @@
<div class="row align-items-center justify-content-between">
<div class="col-3 d-flex align-items-center">
<input type="hidden" name="ShiftViewModel[@indexShiftViewModel].Placement" value="@item.Placement"/>
<div class="timeWorkTitle">نوبت اول</div>
<div class="timeWorkTitle">
@if (indexShiftViewModel == 0)
{
@("نوبت اول")
}
else if (indexShiftViewModel == 1)
{
@("نوبت دوم")
}
else if (indexShiftViewModel == 2)
{
@("نوبت سوم")
}
</div>
</div>
<div class="col-4 d-flex align-items-center">
@@ -115,21 +128,27 @@
}
</div>
<div class="d-flex align-items-center justify-content-center w-100 my-2">
<button type="button" class="btnAddTimeWork">
<button type="button" class="btnAddTimeWork @(Model.ShiftViewModel.Count() == 3 ? "d-none" : "")">
<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="M11 13.75L11 8.25" stroke="white" stroke-linecap="round"/>
<path d="M13.75 11L8.25 11" stroke="white" stroke-linecap="round"/>
<circle cx="11" cy="11" r="8.25" stroke="white" />
<path d="M11 13.75L11 8.25" stroke="white" stroke-linecap="round" />
<path d="M13.75 11L8.25 11" stroke="white" stroke-linecap="round" />
</svg>
@if (Model.ShiftViewModel.Count() == 2)
{
<div class="mx-1 btnAppendChildTimeWork">افزودن نوبت سوم</div>
}
else
else if (Model.ShiftViewModel.Count() == 1)
{
<div class="mx-1 btnAppendChildTimeWork">افزودن نوبت دوم</div>
}
else
{
<div class="mx-1 btnAppendChildTimeWork"></div>
}
</button>
</div>
<div class="col-12">
<p class="m-0" id="ShowSettingMessage"></p>

View File

@@ -21,20 +21,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "checked" : "")/>
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default || Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "checked" : "")/>
<label for="ArrivalDelay2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 ArrivalDelay2SubDisable">
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MultiTimesPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="sub-input form-control-percent" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.Default ? "checked" : "") value="@((int)(LateToWorkType.Default))" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(LateToWorkType.DeductEveryMinuteAccordingToDailyWage))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MoneyPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر مبلغ </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -118,21 +117,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" />
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default || Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "checked" : "")/>
<label for="DepartureHaste2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 DepartureHaste2SubDisable">
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="form-control-percent sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.Default ? "checked" : "") value="@((int)(EarlyExitType.Default))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">در صورت تعجیل  در خروج پرسنل، به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(EarlyExitType.DeductEveryMinuteAccordingToDailyWage))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل  مبلغ </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -204,11 +201,10 @@
<script>
$(document).ready(function () {
// تنظیمات مربوط به تاخیر در ورود
const cb1ArrivalDelay = $('#ArrivalDelay3'); // First checkbox
const cb2ArrivalDelay = $('#ArrivalDelay4'); // Second checkbox
const cb3ArrivalDelay = $('#ArrivalDelay5'); // Third checkbox
const cb1ArrivalDelay = $('#ArrivalDelay3');
const cb2ArrivalDelay = $('#ArrivalDelay4');
const cb3ArrivalDelay = $('#ArrivalDelay5');
// When the third checkbox (3) is checked
cb3ArrivalDelay.change(function () {
if ($(this).is(':checked')) {
cb1ArrivalDelay.prop('checked', true);
@@ -219,10 +215,10 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
// When the second checkbox (2) is checked
cb2ArrivalDelay.change(function () {
if ($(this).is(':checked')) {
cb1ArrivalDelay.prop('checked', true);
} else {
cb3ArrivalDelay.prop('checked', false);
}
toggleInputsArrivalDelay(cb1ArrivalDelay);
@@ -230,7 +226,6 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
// When the first checkbox (1) is unchecked
cb1ArrivalDelay.change(function () {
if (!$(this).is(':checked')) {
cb2ArrivalDelay.prop('checked', false);
@@ -241,10 +236,10 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
function toggleInputsArrivalDelay(checkbox) {
const minuteInput = checkbox.closest('.form-group').find('.ArrivalDelayInput');
const fineMoneyInput = checkbox.closest('.form-group').find('.ArrivalDelayInput');
const formGroup = checkbox.closest('.form-group');
const minuteInput = formGroup.find('[name$=".Minute"]');
const fineMoneyInput = formGroup.find('[name$=".FineMoney"]');
if (checkbox.is(':checked')) {
minuteInput.prop('disabled', false);
@@ -254,40 +249,41 @@
fineMoneyInput.prop('disabled', true).val('');
}
}
// تنظیمات مربوط به تعجیل در خروج
const cb1DepartureHaste = $('#DepartureHaste3'); // First checkbox
const cb2DepartureHaste = $('#DepartureHaste4'); // Second checkbox
const cb3DepartureHaste = $('#DepartureHaste5'); // Third checkbox
// When the third checkbox (3) is checked
// تنظیمات مربوط به تعجیل در خروج
const cb1DepartureHaste = $('#DepartureHaste3');
const cb2DepartureHaste = $('#DepartureHaste4');
const cb3DepartureHaste = $('#DepartureHaste5');
cb3DepartureHaste.change(function () {
if ($(this).is(':checked')) {
cb1DepartureHaste.prop('checked', true); // Check the first checkbox
cb2DepartureHaste.prop('checked', true); // Check the second checkbox
cb1DepartureHaste.prop('checked', true);
cb2DepartureHaste.prop('checked', true);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
toggleInputsDepartureHaste(cb3DepartureHaste);
});
// When the second checkbox (2) is checked
cb2DepartureHaste.change(function () {
if ($(this).is(':checked')) {
cb1DepartureHaste.prop('checked', true); // Check the first checkbox
cb3DepartureHaste.prop('checked', false); // Uncheck the third checkbox
cb1DepartureHaste.prop('checked', true);
} else {
cb3DepartureHaste.prop('checked', false);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
toggleInputsDepartureHaste(cb3DepartureHaste);
});
// When the first checkbox (1) is unchecked
cb1DepartureHaste.change(function () {
if (!$(this).is(':checked')) {
cb2DepartureHaste.prop('checked', false); // Uncheck the second checkbox
cb3DepartureHaste.prop('checked', false); // Uncheck the third checkbox
cb2DepartureHaste.prop('checked', false);
cb3DepartureHaste.prop('checked', false);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
@@ -295,16 +291,16 @@
});
function toggleInputsDepartureHaste(checkbox) {
const minuteInput = checkbox.closest('.form-group').find('.DepartureHasteInput');
const fineMoneyInput = checkbox.closest('.form-group').find('.DepartureHasteInput');
const formGroup = checkbox.closest('.form-group');
const minuteInput = formGroup.find('[name$=".Minute"]');
const fineMoneyInput = formGroup.find('[name$=".FineMoney"]');
if (checkbox.is(':checked')) {
minuteInput.prop('disabled', false);
fineMoneyInput.prop('disabled', false);
} else {
minuteInput.prop('disabled', true).val(''); // Clear minute value
fineMoneyInput.prop('disabled', true).val(''); // Clear fine money value
minuteInput.prop('disabled', true).val('');
fineMoneyInput.prop('disabled', true).val('');
}
}
});

View File

@@ -22,20 +22,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "checked" : "")/>
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default || Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "checked" : "")/>
<label for="ArrivalDelay2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 ArrivalDelay2SubDisable">
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MultiTimesPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="sub-input form-control-percent" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.Default ? "checked" : "") value="@((int)(LateToWorkType.Default))" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(LateToWorkType.DeductEveryMinuteAccordingToDailyWage))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MoneyPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر مبلغ </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -119,21 +118,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" />
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default || Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "checked" : "")/>
<label for="DepartureHaste2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 DepartureHaste2SubDisable">
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="form-control-percent sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.Default ? "checked" : "") value="@((int)(EarlyExitType.Default))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">در صورت تعجیل  در خروج پرسنل، به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(EarlyExitType.DeductEveryMinuteAccordingToDailyWage))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل  مبلغ </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -205,11 +202,10 @@
<script>
$(document).ready(function () {
// تنظیمات مربوط به تاخیر در ورود
const cb1ArrivalDelay = $('#ArrivalDelay3'); // First checkbox
const cb2ArrivalDelay = $('#ArrivalDelay4'); // Second checkbox
const cb3ArrivalDelay = $('#ArrivalDelay5'); // Third checkbox
const cb1ArrivalDelay = $('#ArrivalDelay3');
const cb2ArrivalDelay = $('#ArrivalDelay4');
const cb3ArrivalDelay = $('#ArrivalDelay5');
// When the third checkbox (3) is checked
cb3ArrivalDelay.change(function () {
if ($(this).is(':checked')) {
cb1ArrivalDelay.prop('checked', true);
@@ -220,10 +216,10 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
// When the second checkbox (2) is checked
cb2ArrivalDelay.change(function () {
if ($(this).is(':checked')) {
cb1ArrivalDelay.prop('checked', true);
} else {
cb3ArrivalDelay.prop('checked', false);
}
toggleInputsArrivalDelay(cb1ArrivalDelay);
@@ -231,7 +227,6 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
// When the first checkbox (1) is unchecked
cb1ArrivalDelay.change(function () {
if (!$(this).is(':checked')) {
cb2ArrivalDelay.prop('checked', false);
@@ -242,10 +237,10 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
function toggleInputsArrivalDelay(checkbox) {
const minuteInput = checkbox.closest('.form-group').find('.ArrivalDelayInput');
const fineMoneyInput = checkbox.closest('.form-group').find('.ArrivalDelayInput');
const formGroup = checkbox.closest('.form-group');
const minuteInput = formGroup.find('[name$=".Minute"]');
const fineMoneyInput = formGroup.find('[name$=".FineMoney"]');
if (checkbox.is(':checked')) {
minuteInput.prop('disabled', false);
@@ -255,40 +250,41 @@
fineMoneyInput.prop('disabled', true).val('');
}
}
// تنظیمات مربوط به تعجیل در خروج
const cb1DepartureHaste = $('#DepartureHaste3'); // First checkbox
const cb2DepartureHaste = $('#DepartureHaste4'); // Second checkbox
const cb3DepartureHaste = $('#DepartureHaste5'); // Third checkbox
// When the third checkbox (3) is checked
// تنظیمات مربوط به تعجیل در خروج
const cb1DepartureHaste = $('#DepartureHaste3');
const cb2DepartureHaste = $('#DepartureHaste4');
const cb3DepartureHaste = $('#DepartureHaste5');
cb3DepartureHaste.change(function () {
if ($(this).is(':checked')) {
cb1DepartureHaste.prop('checked', true); // Check the first checkbox
cb2DepartureHaste.prop('checked', true); // Check the second checkbox
cb1DepartureHaste.prop('checked', true);
cb2DepartureHaste.prop('checked', true);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
toggleInputsDepartureHaste(cb3DepartureHaste);
});
// When the second checkbox (2) is checked
cb2DepartureHaste.change(function () {
if ($(this).is(':checked')) {
cb1DepartureHaste.prop('checked', true); // Check the first checkbox
cb3DepartureHaste.prop('checked', false); // Uncheck the third checkbox
cb1DepartureHaste.prop('checked', true);
} else {
cb3DepartureHaste.prop('checked', false);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
toggleInputsDepartureHaste(cb3DepartureHaste);
});
// When the first checkbox (1) is unchecked
cb1DepartureHaste.change(function () {
if (!$(this).is(':checked')) {
cb2DepartureHaste.prop('checked', false); // Uncheck the second checkbox
cb3DepartureHaste.prop('checked', false); // Uncheck the third checkbox
cb2DepartureHaste.prop('checked', false);
cb3DepartureHaste.prop('checked', false);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
@@ -296,16 +292,16 @@
});
function toggleInputsDepartureHaste(checkbox) {
const minuteInput = checkbox.closest('.form-group').find('.DepartureHasteInput');
const fineMoneyInput = checkbox.closest('.form-group').find('.DepartureHasteInput');
const formGroup = checkbox.closest('.form-group');
const minuteInput = formGroup.find('[name$=".Minute"]');
const fineMoneyInput = formGroup.find('[name$=".FineMoney"]');
if (checkbox.is(':checked')) {
minuteInput.prop('disabled', false);
fineMoneyInput.prop('disabled', false);
} else {
minuteInput.prop('disabled', true).val(''); // Clear minute value
fineMoneyInput.prop('disabled', true).val(''); // Clear fine money value
minuteInput.prop('disabled', true).val('');
fineMoneyInput.prop('disabled', true).val('');
}
}
});

View File

@@ -21,20 +21,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute || Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "checked" : "")/>
<input type="checkbox" name="Command.LateToWork.LateToWorkType1" id="ArrivalDelay2" class="form-check-input Main-Radio main-checkbox" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default || Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "checked" : "")/>
<label for="ArrivalDelay2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 ArrivalDelay2SubDisable">
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MultiTimesPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="sub-input form-control-percent" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MultiTimesPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub1" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.Default ? "checked" : "") value="@((int)(LateToWorkType.Default))" @((Model.LateToWork.LateToWorkType == LateToWorkType.Default) ? "" : "disabled") />
<label for="ArrivalDelay2Sub1">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(LateToWorkType.DeductEveryMinuteAccordingToDailyWage))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.LateToWork.LateToWorkType" id="ArrivalDelay2Sub2" class="form-check-input Sub-Radio" @(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? "checked" : "") value="@((int)(LateToWorkType.MoneyPerMinute))" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">در صورت تاخیر در ورود پرسنل، به ازای هر دقیقه تاخیر مبلغ </label>
<input type="text" class="sub-input form-control-currency" name="Command.LateToWork.Value" value="@(Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute ? Model.LateToWork.Value : "")" @((Model.LateToWork.Value != 0 && Model.LateToWork.LateToWorkType == LateToWorkType.MoneyPerMinute) ? "" : "disabled") />
<label for="ArrivalDelay2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -137,21 +136,19 @@
</div>
<div class="form-group my-1 group">
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" />
<input type="checkbox" name="Command.EarlyExit.EarlyExitType1" id="DepartureHaste2" class="form-check-input Main-Radio main-checkbox" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default || Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "checked" : "")/>
<label for="DepartureHaste2">در صورت تاخیر در ورود پرسنل به مجموعه به شرح ذیل درستون کسورات در فیش حقوقی محاسبه گردد.</label>
<div class="sub-group form-group my-1 ms-4 DepartureHaste2SubDisable">
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">به غیبت حقوق و فرد روزانه بر مبنای دقیقه تاخیر از حقوق پرسنل کسر گردد.</label>
<input type="text" class="form-control-percent sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub1" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.Default ? "checked" : "") value="@((int)(EarlyExitType.Default))" @((Model.EarlyExit.EarlyExitType == EarlyExitType.Default) ? "" : "disabled")/>
<label for="DepartureHaste2Sub1">در صورت تعجیل  در خروج پرسنل، به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از فیش حقوق پرسنل کسر می گردد</label>
</div>
<div>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? "checked" : "") value="@((int)(EarlyExitType.DeductEveryMinuteAccordingToDailyWage))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">به غیبت حقوق و فرد روزانه بر مبنای درصد به میزان </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.DeductEveryMinuteAccordingToDailyWage) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">برابر از حقوق پرسنل کسر گردد.</label>
<input type="radio" name="Command.EarlyExit.EarlyExitType" id="DepartureHaste2Sub2" class="form-check-input Sub-Radio" @(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? "checked" : "") value="@((int)(EarlyExitType.MoneyPerMinute))" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">در صورت تعجیل در خروج پرسنل، به ازای هر دقیقه تعجیل  مبلغ </label>
<input type="text" class="form-control-currency sub-input" name="Command.EarlyExit.Value" value="@(Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute ? Model.EarlyExit.Value : "")" @((Model.EarlyExit.Value != 0 && Model.EarlyExit.EarlyExitType == EarlyExitType.MoneyPerMinute) ? "" : "disabled") />
<label for="DepartureHaste2Sub2">ریال از فیش حقوقی پرسنل کسر می گردد</label>
</div>
</div>
</div>
@@ -230,11 +227,10 @@
<script>
$(document).ready(function () {
// تنظیمات مربوط به تاخیر در ورود
const cb1ArrivalDelay = $('#ArrivalDelay3'); // First checkbox
const cb2ArrivalDelay = $('#ArrivalDelay4'); // Second checkbox
const cb3ArrivalDelay = $('#ArrivalDelay5'); // Third checkbox
const cb1ArrivalDelay = $('#ArrivalDelay3');
const cb2ArrivalDelay = $('#ArrivalDelay4');
const cb3ArrivalDelay = $('#ArrivalDelay5');
// When the third checkbox (3) is checked
cb3ArrivalDelay.change(function () {
if ($(this).is(':checked')) {
cb1ArrivalDelay.prop('checked', true);
@@ -245,10 +241,10 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
// When the second checkbox (2) is checked
cb2ArrivalDelay.change(function () {
if ($(this).is(':checked')) {
cb1ArrivalDelay.prop('checked', true);
} else {
cb3ArrivalDelay.prop('checked', false);
}
toggleInputsArrivalDelay(cb1ArrivalDelay);
@@ -256,7 +252,6 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
// When the first checkbox (1) is unchecked
cb1ArrivalDelay.change(function () {
if (!$(this).is(':checked')) {
cb2ArrivalDelay.prop('checked', false);
@@ -267,10 +262,10 @@
toggleInputsArrivalDelay(cb3ArrivalDelay);
});
function toggleInputsArrivalDelay(checkbox) {
const minuteInput = checkbox.closest('.form-group').find('.ArrivalDelayInput');
const fineMoneyInput = checkbox.closest('.form-group').find('.ArrivalDelayInput');
const formGroup = checkbox.closest('.form-group');
const minuteInput = formGroup.find('[name$=".Minute"]');
const fineMoneyInput = formGroup.find('[name$=".FineMoney"]');
if (checkbox.is(':checked')) {
minuteInput.prop('disabled', false);
@@ -280,40 +275,41 @@
fineMoneyInput.prop('disabled', true).val('');
}
}
// تنظیمات مربوط به تعجیل در خروج
const cb1DepartureHaste = $('#DepartureHaste3'); // First checkbox
const cb2DepartureHaste = $('#DepartureHaste4'); // Second checkbox
const cb3DepartureHaste = $('#DepartureHaste5'); // Third checkbox
// When the third checkbox (3) is checked
// تنظیمات مربوط به تعجیل در خروج
const cb1DepartureHaste = $('#DepartureHaste3');
const cb2DepartureHaste = $('#DepartureHaste4');
const cb3DepartureHaste = $('#DepartureHaste5');
cb3DepartureHaste.change(function () {
if ($(this).is(':checked')) {
cb1DepartureHaste.prop('checked', true); // Check the first checkbox
cb2DepartureHaste.prop('checked', true); // Check the second checkbox
cb1DepartureHaste.prop('checked', true);
cb2DepartureHaste.prop('checked', true);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
toggleInputsDepartureHaste(cb3DepartureHaste);
});
// When the second checkbox (2) is checked
cb2DepartureHaste.change(function () {
if ($(this).is(':checked')) {
cb1DepartureHaste.prop('checked', true); // Check the first checkbox
cb3DepartureHaste.prop('checked', false); // Uncheck the third checkbox
cb1DepartureHaste.prop('checked', true);
} else {
cb3DepartureHaste.prop('checked', false);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
toggleInputsDepartureHaste(cb3DepartureHaste);
});
// When the first checkbox (1) is unchecked
cb1DepartureHaste.change(function () {
if (!$(this).is(':checked')) {
cb2DepartureHaste.prop('checked', false); // Uncheck the second checkbox
cb3DepartureHaste.prop('checked', false); // Uncheck the third checkbox
cb2DepartureHaste.prop('checked', false);
cb3DepartureHaste.prop('checked', false);
}
toggleInputsDepartureHaste(cb1DepartureHaste);
toggleInputsDepartureHaste(cb2DepartureHaste);
@@ -321,16 +317,16 @@
});
function toggleInputsDepartureHaste(checkbox) {
const minuteInput = checkbox.closest('.form-group').find('.DepartureHasteInput');
const fineMoneyInput = checkbox.closest('.form-group').find('.DepartureHasteInput');
const formGroup = checkbox.closest('.form-group');
const minuteInput = formGroup.find('[name$=".Minute"]');
const fineMoneyInput = formGroup.find('[name$=".FineMoney"]');
if (checkbox.is(':checked')) {
minuteInput.prop('disabled', false);
fineMoneyInput.prop('disabled', false);
} else {
minuteInput.prop('disabled', true).val(''); // Clear minute value
fineMoneyInput.prop('disabled', true).val(''); // Clear fine money value
minuteInput.prop('disabled', true).val('');
fineMoneyInput.prop('disabled', true).val('');
}
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 KiB

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -12,15 +12,10 @@
//"MesbahDb": "Data Source=DESKTOP-NUE119G\\MSNEW;Initial Catalog=Mesbah_db;Integrated Security=True"
//server
"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;"
//"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;"
//local
//"MesbahDb": "Data Source=.;Initial Catalog=Mesbah_db;Integrated Security=True;TrustServerCertificate=true;"
//teamwork
//"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_dbTeamwork;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;"
"MesbahDb": "Data Source=.;Initial Catalog=Mesbah_db;Integrated Security=True;TrustServerCertificate=true;"
},
"GoogleRecaptchaV3": {
"SiteKey": "6Lfhp_AnAAAAAB79WkrMoHd1k8ir4m8VvfjE7FTH",

View File

@@ -640,6 +640,7 @@
gap: 10px;
margin: 10px 0 0 0;
position: relative;
width: 86%;
}
.actionBtnsection .input-form {

View File

@@ -233,6 +233,12 @@ input:checked + .sliderEUP:before {
background-color: #999;
}
@media screen and (max-width: 1366px) {
.table-rollcall .width5 {
width: 36% !important;
}
}
@media screen and (max-width: 992px) {
.table-rollcall .width3 {
display: none !important;

View File

@@ -3452,7 +3452,7 @@ button.btn-employee-payment {
}
.card-section-btn .btn-group .btn:last-child {
border-radius: 10px 0 0 10px;
border-radius: 10px;
}
.card-section-btn .btn:hover {
@@ -3483,6 +3483,7 @@ button.btn-employee-payment {
font-size: 16px;
border-radius: 5px !important;
transition: all .3s ease-in;
cursor: pointer;
}
.btn-blue:hover {
@@ -3495,6 +3496,7 @@ button.btn-employee-payment {
font-size: 16px;
border-radius: 5px !important;
transition: all .3s ease-in;
cursor: pointer;
}
.btn-gary:hover {

View File

@@ -1647,8 +1647,7 @@ function ajaxPersonals() {
employees.forEach(function (employee) {
employeeOptionsHtml += `<option value="${employee.id}">${employee.employeeFullName}</option>`;
});
$('#employeeSelectIndex').html(employeeOptionsHtml);
$('#employeeSelectIndexMobile').html(employeeOptionsHtml);
$('.getPersonnel').html(employeeOptionsHtml);
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);

View File

@@ -50,40 +50,138 @@
})
$('.btnCreateNew').click(function () {
$('.btnCreateNew').click(function() {
var data = $('#create-form-unofficial').serialize();
if ($("#step-form2").is(":visible")) {
$.ajax({
async: false,
dataType: 'json',
type: 'POST',
url: saveCheckoutUnofficialAjax,
headers: { "RequestVerificationToken": antiForgeryToken },
data: data,
success: function (response) {
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('');
}, 3500);
window.location.reload();
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
},
error: function (err) {
console.log(err);
}
});
} else {
alert("The paragraph is hidden.");
loadEmployeesByYearAndMonthFunction();
}
})
//$.ajax({
// async: false,
// dataType: 'json',
// type: 'POST',
// url: saveCheckoutUnofficialAjax,
// headers: { "RequestVerificationToken": antiForgeryToken },
// data: data,
// success: function (response) {
// 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('');
// }, 3500);
// window.location.reload();
// } else {
// $('.alert-msg').show();
// $('.alert-msg p').text(response.message);
// setTimeout(function () {
// $('.alert-msg').hide();
// $('.alert-msg p').text('');
// }, 3500);
// }
// },
// error: function (err) {
// console.log(err);
// }
//});
});
function loadEmployeesByYearAndMonthFunction()
{
var htmlTable = '';
$.ajax({
async: false,
dataType: 'json',
type: 'GET',
url: loadEmployeesByYearAndMonthAjax,
headers: { "RequestVerificationToken": antiForgeryToken },
data: {
year: $('#year-select').val(),
month: $('#month-select').val()
},
success: function (response) {
if (response.success) {
console.log(response);
if(response.data.length > 0) {
response.data.forEach(function(item, index=1) {
htmlTable += `<div class="Rtable-row align-items-center position-relative openAction">
<div class="Rtable-cell width1">
<div class="Rtable-cell--heading d-none">
ردیف
</div>
<div class="Rtable-cell--content">
<div class="d-flex justify-content-center align-items-center table-number">
${index++}
</div>
</div>
</div>
<div class="Rtable-cell width2">
<div class="Rtable-cell--heading d-none">نام پرسنل</div>
<div class="Rtable-cell--content employee-name">
${item.employeeFullName}
</div>
</div>
<div class="Rtable-cell width3">
<div class="Rtable-cell--content text-center">
<div class="d-md-none d-none">شماره پرسنلی: </div>
<div class="d-flex ms-1">${item.personnelCode}</div>
</div>
</div>
<div class="Rtable-cell width4 position-relative bg-filter">
<div class="Rtable-cell--content text-center">
<div class="d-md-none d-none">تاریخ شروع: </div>
<div class="d-flex ms-1">${item.startContract}</div>
</div>
</div>
<div class="Rtable-cell width4 position-relative bg-filter">
<div class="Rtable-cell--content text-center">
<div class="d-md-none d-none">تاریخ پایان: </div>
<div class="d-flex ms-1">${item.endContract}</div>
</div>
</div>
</div>`;
});
}
else
{
htmlTable += `<div class="container-fluid">
<div class="row p-lg-2 p-auto">
<div class="text-center bg-white d-flex align-items-center justify-content-center w-100">
<div class="">
<img src="~/assetsclient/images/empty.png" alt="" class="img-fluid" />
<h5>اطلاعاتی وجود ندارد.</h5>
</div>
</div>
</div>
</div>`;
}
$('#loadTableCheckout').html(htmlTable);
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
},
error: function (err) {
console.log(err);
}
});
}

View File

@@ -9,12 +9,30 @@
return;
}
const persianNumbers = /[۰-۹]/;
const arabicNumbers = /[٠-٩]/;
if (persianNumbers.test(e.key) || arabicNumbers.test(e.key)) {
e.preventDefault();
const englishDigit = convertPersianNumbersToEnglish(e.key);
const currentValue = $(this).val();
$(this).val(currentValue + englishDigit);
return;
}
if (!/^\d$/.test(e.key)) {
e.preventDefault();
}
});
$(".form-control-currency").each(function () {
let element = $(this);
element.on('input', function () {
let value = convertPersianNumbersToEnglish(element.val());
element.val(value);
});
new Cleave(this, {
numeral: true,
numeralThousandsGroupStyle: 'thousand'
@@ -22,6 +40,13 @@
});
$(".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']

View File

@@ -9,12 +9,30 @@
return;
}
const persianNumbers = /[۰-۹]/;
const arabicNumbers = /[٠-٩]/;
if (persianNumbers.test(e.key) || arabicNumbers.test(e.key)) {
e.preventDefault();
const englishDigit = convertPersianNumbersToEnglish(e.key);
const currentValue = $(this).val();
$(this).val(currentValue + englishDigit);
return;
}
if (!/^\d$/.test(e.key)) {
e.preventDefault();
}
});
$(".form-control-currency").each(function () {
let element = $(this);
element.on('input', function () {
let value = convertPersianNumbersToEnglish(element.val());
element.val(value);
});
new Cleave(this, {
numeral: true,
numeralThousandsGroupStyle: 'thousand'
@@ -22,6 +40,13 @@
});
$(".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']

View File

@@ -9,12 +9,30 @@
return;
}
const persianNumbers = /[۰-۹]/;
const arabicNumbers = /[٠-٩]/;
if (persianNumbers.test(e.key) || arabicNumbers.test(e.key)) {
e.preventDefault();
const englishDigit = convertPersianNumbersToEnglish(e.key);
const currentValue = $(this).val();
$(this).val(currentValue + englishDigit);
return;
}
if (!/^\d$/.test(e.key)) {
e.preventDefault();
}
});
$(".form-control-currency").each(function () {
let element = $(this);
element.on('input', function () {
let value = convertPersianNumbersToEnglish(element.val());
element.val(value);
});
new Cleave(this, {
numeral: true,
numeralThousandsGroupStyle: 'thousand'
@@ -22,6 +40,13 @@
});
$(".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']

View File

@@ -112,8 +112,7 @@
.radio-workTimeOption:checked + .radio-label-workTimeOption {
color: #FFFFFF;
background-color: #1c7474;
border: 1px solid #23A8A8;
background: linear-gradient(93.83deg, #2EBEBE 1.59%, #1E9D9D 47.86%, #0B7878 101.16%);
}
.selectCheckBreakTime {

View File

@@ -221,8 +221,7 @@
.radio-workTimeOption:checked + .radio-label-workTimeOption {
color: #FFFFFF;
background-color: #1c7474;
border: 1px solid #23A8A8;
background: linear-gradient(93.83deg, #2EBEBE 1.59%, #1E9D9D 47.86%, #0B7878 101.16%);
}
.selectCheckBreakTime {

View File

@@ -64,6 +64,13 @@ $(document).ready(function () {
// ----------------------------------------
$(".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']
@@ -133,16 +140,39 @@ $(document).ready(function () {
$('#appendChildTimeWorkHtml').append(timeWorkHtml);
new Cleave(`input[name="shiftViewModels[${currentCount}].StartTime"]`, {
const newStartTimeInput = $(`input[name="shiftViewModels[${currentCount}].StartTime"]`);
const newEndTimeInput = $(`input[name="shiftViewModels[${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(`input[name="shiftViewModels[${currentCount}].EndTime"]`, {
new Cleave(newEndTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
//new Cleave(`input[name="shiftViewModels[${currentCount}].StartTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
//new Cleave(`input[name="shiftViewModels[${currentCount}].EndTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
updateAddButtonText(currentCount + 1);
if (currentCount + 1 === 3) {

View File

@@ -281,7 +281,7 @@ function loadInfoCount() {
type: 'GET',
success: function (response) {
if (response.isSuccedded) {
$('#maxPersonValid').text(response.maxPersonValid);
//$('#maxPersonValid').text(response.maxPersonValid);
$('#isTrueActiveCount').text(response.isTrueActiveCount);
$('#isFalseActiveCount').text(response.isFalseActiveCount);
} else {

View File

@@ -80,7 +80,7 @@ function loadDataAjax() {
html += `</div>
<div class="text-end d-block width5">
<button type="button" class="btn-add" onclick="AddToGroupModal(${responseData.id}, ${item.id})" style="padding: 0 6px;font-weight: 600;color: #65a30d;width: 110px;">
<button type="button" class="btn-add" onclick="AddToGroupModal(${responseData.id}, ${item.id}, '${item.groupName}')" style="padding: 0 6px;font-weight: 600;color: #65a30d;width: 110px;">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="9" cy="9" r="4" fill="#65a30d"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.864 18.8128C14.8851 18.9183 14.9742 19 15.0819 19H16.8672C17.4687 19 17.9213 18.471 17.7202 17.9042C17.3002 16.7199 16.2951 15 14 15C13.8744 15 13.7527 15.0052 13.6347 15.0151C13.2591 15.0467 13.1629 15.5087 13.415 15.7889C14.3198 16.7941 14.6998 17.9918 14.864 18.8128ZM13.5276 17.8332C13.7713 18.4159 13.2918 19 12.6602 19H11.1328C10.5313 19 10.0787 18.4711 10.2798 17.9042C10.4699 17.3683 10.7798 16.7226 11.2749 16.1763C11.5534 15.869 12.022 15.8468 12.3326 16.1214C12.9049 16.6274 13.2808 17.2429 13.5276 17.8332Z" fill="#65a30d"/>
@@ -326,7 +326,8 @@ function removeGroupConfirm(group_id) {
});
}
function AddToGroupModal(id, groupId) {
function AddToGroupModal(id, groupId, groupName) {
titleOfGroup = groupName;
window.location.href = `#showmodal=/Client/Company/RollCall/Grouping?workshopSettingId=${id}&groupId=${groupId}&handler=CreateEmployee`;
}

View File

@@ -1,4 +1,6 @@
$(document).ready(function () {
$('#createNewGroupLabel').text(titleOfGroup);
//******************** انتخاب چک باکس ********************
$('.items').click(function (e) {
if ($(e.target).is('input[type="checkbox"]')) {

View File

@@ -1,5 +1,12 @@
$(document).ready(function () {
$(".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']
@@ -160,16 +167,38 @@
$('#appendChildTimeWorkHtml').append(timeWorkHtml);
new Cleave(`input[name="CreateWorkshopSettings.ShiftsList[${currentCount}].StartTime"]`, {
const newStartTimeInput = $(`input[name="CreateWorkshopSettings.ShiftsList[${currentCount}].StartTime"]`);
const newEndTimeInput = $(`input[name="CreateWorkshopSettings.ShiftsList[${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(`input[name="CreateWorkshopSettings.ShiftsList[${currentCount}].EndTime"]`, {
new Cleave(newEndTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
//new Cleave(`input[name="CreateWorkshopSettings.ShiftsList[${currentCount}].StartTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
//new Cleave(`input[name="CreateWorkshopSettings.ShiftsList[${currentCount}].EndTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
updateAddButtonText(currentCount + 1);

View File

@@ -4,6 +4,13 @@
});
$(".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'
@@ -11,6 +18,13 @@
});
$(".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']
@@ -18,6 +32,13 @@
});
$(".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']
@@ -202,16 +223,39 @@
$('#appendChildTimeWorkHtml').append(timeWorkHtml);
new Cleave(`input[name="Command.ShiftViewModel[${currentCount}].StartTime"]`, {
const newStartTimeInput = $(`input[name="Command.ShiftViewModel[${currentCount}].StartTime"]`);
const newEndTimeInput = $(`input[name="Command.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(`input[name="Command.ShiftViewModel[${currentCount}].EndTime"]`, {
new Cleave(newEndTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
//new Cleave(`input[name="Command.ShiftViewModel[${currentCount}].StartTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
//new Cleave(`input[name="Command.ShiftViewModel[${currentCount}].EndTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
updateAddButtonText(currentCount + 1);
if (currentCount + 1 === 3) {
@@ -224,6 +268,7 @@
});
$(document).on("click", ".btnRemoveTimeWork", function () {
$(".btnAddTimeWork").removeClass('d-none');
$(this).closest(".groupBox").remove();
var currentCount = $('.groupBox').length;

View File

@@ -4,6 +4,13 @@
});
$(".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'
@@ -11,6 +18,13 @@
});
$(".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']
@@ -18,6 +32,13 @@
});
$(".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']
@@ -211,16 +232,39 @@
$('#appendChildTimeWorkHtml').append(timeWorkHtml);
new Cleave(`input[name="ShiftViewModel[${currentCount}].StartTime"]`, {
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(`input[name="ShiftViewModel[${currentCount}].EndTime"]`, {
new Cleave(newEndTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
//new Cleave(`input[name="ShiftViewModel[${currentCount}].StartTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
//new Cleave(`input[name="ShiftViewModel[${currentCount}].EndTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
updateAddButtonText(currentCount + 1);
if (currentCount + 1 === 3) {
@@ -233,6 +277,7 @@
});
$(document).on("click", ".btnRemoveTimeWork", function () {
$(".btnAddTimeWork").removeClass('d-none');
$(this).closest(".groupBox").remove();
var currentCount = $('.groupBox').length;
@@ -495,6 +540,12 @@ function timeValidCheck(value) {
function ajaxEditGroupingSaveData() {
if ($('#Name').val() === "") {
showAlert('لطفا نام گروه را وارد نمایید', $('#Name'));
return;
}
if (isShiftChangedGlobal) {
$('#ConfirmEmployeeModal').show();
} else {
@@ -515,6 +566,7 @@ function ajaxSaveSubmit() {
}
$('#btnSave').addClass('disable');
$('#finalSaveRollCallSetting').addClass('disable');
var data = $('#edit-form').serializeArray();
@@ -558,6 +610,7 @@ function ajaxSaveSubmit() {
}, 2000);
} else {
$('#btnSave').removeClass('disable');
$('#finalSaveRollCallSetting').removeClass('disable');
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
@@ -568,6 +621,7 @@ function ajaxSaveSubmit() {
},
error: function (err) {
$('#btnSave').removeClass('disable');
$('#finalSaveRollCallSetting').removeClass('disable');
console.log(err);
}
});

View File

@@ -12,6 +12,13 @@
});
$(".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'
@@ -19,6 +26,13 @@
});
$(".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']
@@ -26,6 +40,13 @@
});
$(".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']
@@ -183,16 +204,39 @@
$('#appendChildTimeWorkHtml').append(timeWorkHtml);
new Cleave(`input[name="ShiftViewModel[${currentCount}].StartTime"]`, {
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(`input[name="ShiftViewModel[${currentCount}].EndTime"]`, {
new Cleave(newEndTimeInput[0], {
time: true,
timePattern: ['h', 'm']
});
//new Cleave(`input[name="ShiftViewModel[${currentCount}].StartTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
//new Cleave(`input[name="ShiftViewModel[${currentCount}].EndTime"]`, {
// time: true,
// timePattern: ['h', 'm']
//});
updateAddButtonText(currentCount + 1);
if (currentCount + 1 === 3) {