diff --git a/CompanyManagment.Application/LeaveApplication.cs b/CompanyManagment.Application/LeaveApplication.cs index 490822cd..3757d8c9 100644 --- a/CompanyManagment.Application/LeaveApplication.cs +++ b/CompanyManagment.Application/LeaveApplication.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Globalization; +using System.Text.RegularExpressions; using _0_Framework.Application; using Company.Domain.EmployeeAgg; using Company.Domain.LeaveAgg; @@ -44,6 +45,15 @@ public class LeaveApplication : ILeaveApplication return op.Failed("لطفا تاریخ شروع را وارد کنید"); if (string.IsNullOrWhiteSpace(command.StartHoures) || string.IsNullOrWhiteSpace(command.EndHours)) return op.Failed("ساعت شروع و پایان نمیتواند خالی باشد"); + + string pattern = @"^([01]\d|2[0-3]):[0-5]\d$"; + + if (!Regex.IsMatch(command.StartHoures, pattern)) + return op.Failed("لطفا ساعت شروع را به درستی وارد کنید"); + + if (!Regex.IsMatch(command.EndHours, pattern)) + return op.Failed("لطفا ساعت پایان را به درستی وارد کنید"); + startH = TimeSpan.Parse(command.StartHoures); endH = TimeSpan.Parse(command.EndHours); if (startH == endH) @@ -184,6 +194,14 @@ public class LeaveApplication : ILeaveApplication return op.Failed("لطفا تاریخ شروع را وارد کنید"); if (string.IsNullOrWhiteSpace(command.StartHoures) || string.IsNullOrWhiteSpace(command.EndHours)) return op.Failed("ساعت شروع و پایان نمیتواند خالی باشد"); + + string pattern = @"^([01]\d|2[0-3]):[0-5]\d$"; + if (!Regex.IsMatch(command.StartHoures, pattern)) + return op.Failed("لطفا ساعت شروع را به درستی وارد کنید"); + + if (!Regex.IsMatch(command.EndHours, pattern)) + return op.Failed("لطفا ساعت پایان را به درستی وارد کنید"); + startH = TimeSpan.Parse(command.StartHoures); endH = TimeSpan.Parse(command.EndHours); if (startH == endH) diff --git a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs index f86811d5..85ea4d9d 100644 --- a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs @@ -368,14 +368,44 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll // شبکاری TimeSpan over22 = new TimeSpan(rotatingResultList.Sum(x => x.NightWorkSpan.Ticks)); var RotatingfaName = new List(); - if (moriningCount > 0) - RotatingfaName.Add("صبح"); - if (eveningCount > 0) - RotatingfaName.Add("عصر"); - if (nightCount > 0) - RotatingfaName.Add("شب"); + if (command.ShiftWork != "1" && command.ShiftWork != "2" && command.ShiftWork != "4")//اگر چرخشی بود و منظم نبود + { + if (moriningCount > 0) + RotatingfaName.Add("صبح"); + if (eveningCount > 0) + RotatingfaName.Add("عصر"); + if (nightCount > 0) + RotatingfaName.Add("شب"); + } + else// اگر منظم و شیفتی بود + { + var totalDays = (int)(command.ContractEndGr - command.ContractStartGr).TotalDays + 1; + int validCount = 0; + if (totalDays <= 7) // زیر 7 روز باید حد اقل 2 تغییر شیفت داشته باشد + { + validCount = 2; + } + else if (totalDays >= 28) // بالای 28 روز حد اقل 8 تغییر شیفت + { + validCount = 8; + } + else + { + // تناسب گیری - اگر برای 28 روز 8 تغییر پس برای ایکس روز چند تغییر لازم است + validCount = (int)((totalDays * 8) / 28); + } + + if (moriningCount >= validCount) + RotatingfaName.Add("صبح"); + if (eveningCount >= validCount) + RotatingfaName.Add("عصر"); + if (nightCount >= validCount) + RotatingfaName.Add("شب"); + + } + var rotatingFaResult = ""; - if (RotatingfaName.Count > 1) + if (RotatingfaName.Count > 1)// اگر تعداد شیفت های محاسبه شده بیش از یک بود { shiftOver22Hours = "0"; shiftOver22Minuts = "0"; diff --git a/CompanyManagment.EFCore/Repository/RollCallRepository.cs b/CompanyManagment.EFCore/Repository/RollCallRepository.cs index 6eee4202..40bdd728 100644 --- a/CompanyManagment.EFCore/Repository/RollCallRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallRepository.cs @@ -190,7 +190,7 @@ public class RollCallRepository : RepositoryBase, IRollCallRepos var leavesQuery = _context.LeaveList.Where(x => (x.LeaveType == "استعلاجی" || (x.LeaveType == "استحقاقی" && x.PaidLeaveType == "روزانه")) && x.IsAccepted && - x.EndLeave >= selectedMonthFirstDay && x.StartLeave < nextMonthFirstDay && x.WorkshopId == workshopId); + x.EndLeave >= selectedMonthFirstDay && x.StartLeave < nextMonthFirstDay && x.WorkshopId == workshopId && x.EmployeeId == employeeId); var rollCalls = _context.RollCalls.Where(x => !leavesQuery.Any(y => diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs index 4d9ba35f..5def93f7 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs @@ -511,6 +511,7 @@ public class IndexModel : PageModel dayliWage, bonusesOption, separation.HasLeft, separation.StartWorkDate, contract.ContractStartGr, contract.ContractEndGr, contract.WorkshopIds, contract.EmployeeId, workshop.IsOldContract); + //اگر تصفیه حساب پاک شده برای عیدی یا سنوات وجود داشت if (bunosesPay.NotCompleted || yearsPay.NotCompleted) { List lostCheckoutsDates = new List(); @@ -648,7 +649,8 @@ public class IndexModel : PageModel totalHorsM = totalHoursM, WeeklyTime = mandatoryCompute.weeklyTime, // فوق العاده نوبت کاری - ShiftPay = mandatoryCompute.ShiftPay, + //552 آدی کارگاه + ShiftPay = contract.WorkshopIds == 552 && hasRollCall ? 0 : mandatoryCompute.ShiftPay, //سنوات--> Basic = mandatoryCompute.Basic, FridayStarttoEnd = fridayStartToEnd, diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/PrintDetailsRollCall.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/PrintDetailsRollCall.cshtml index 401e03d7..3d53ef57 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/PrintDetailsRollCall.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/PrintDetailsRollCall.cshtml @@ -301,91 +301,83 @@ - +
-
-
- +
+
+
- - - - - - - - - - @for (int i = 0; i < 15; i++) - { - - - - - - - - } - + + + + + + + + + + @for (int i = 0; i < 15; i++) + { + + + + + + + + } +
تاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@Model.MonthlyRollCall[i].DateTimeGr.ToFarsi() - @Model.MonthlyRollCall[i].DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@Model.MonthlyRollCall[i].StartDate@Model.MonthlyRollCall[i].EndDate - @if (@Model.MonthlyRollCall[i].IsSliced) - { - - - - - } - else - { - @* - - - - *@ - - - } - @Model.MonthlyRollCall[i].TotalWorkingHours
تاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@Model.MonthlyRollCall[i].DateTimeGr.ToFarsi() - @Model.MonthlyRollCall[i].DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@Model.MonthlyRollCall[i].StartDate@Model.MonthlyRollCall[i].EndDate + @if (@Model.MonthlyRollCall[i].IsSliced) + { + + + + + } + else + { + - + } + @Model.MonthlyRollCall[i].TotalWorkingHours
- - - - - - - - - + + + + + + + + + - @{ Model.MonthlyRollCall = Model.MonthlyRollCall.Skip(15).ToList(); } - @foreach (var day in Model.MonthlyRollCall) - { - - - - - + + + + - - - } + } + + + + }
تاریخساعت ورودساعت خروجمنقطعساعت کارکرد
تاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@day.DateTimeGr.ToFarsi() - @day.DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@day.StartDate@day.EndDate - @if(day.IsSliced) - { - - - - - } - else - { - @* - - - - *@ + @{ + Model.MonthlyRollCall = Model.MonthlyRollCall.Skip(15).ToList(); + } + @foreach (var day in Model.MonthlyRollCall) + { +
@day.DateTimeGr.ToFarsi() - @day.DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@day.StartDate@day.EndDate + @if (day.IsSliced) + { + + + + + } + else + { - - } - @day.TotalWorkingHours
@day.TotalWorkingHours
diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/_Partials/PrintDetailsRollCallRaw.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/_Partials/PrintDetailsRollCallRaw.cshtml index 89f79fe0..cfda435e 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/_Partials/PrintDetailsRollCallRaw.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/_Partials/PrintDetailsRollCallRaw.cshtml @@ -300,26 +300,26 @@
-
+
- - - - - + + + + + @for (int i = 0; i < 15; i++) { - - - - - + + + + - + } @@ -347,11 +342,11 @@
تاریخساعت ورودساعت خروجمنقطعساعت کارکردتاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@Model.MonthlyRollCall[i].DateTimeGr.ToFarsi() - @Model.MonthlyRollCall[i].DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@Model.MonthlyRollCall[i].StartDate@Model.MonthlyRollCall[i].EndDate +
@Model.MonthlyRollCall[i].DateTimeGr.ToFarsi() - @Model.MonthlyRollCall[i].DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@Model.MonthlyRollCall[i].StartDate@Model.MonthlyRollCall[i].EndDate @if (@Model.MonthlyRollCall[i].IsSliced) { @@ -329,15 +329,10 @@ } else { - @* - - - - *@ - } @Model.MonthlyRollCall[i].TotalWorkingHours@Model.MonthlyRollCall[i].TotalWorkingHours
- - - - - + + + + + @@ -360,11 +355,11 @@ } @foreach (var day in Model.MonthlyRollCall) { - - - - - + + + + - + } diff --git a/ServiceHost/Areas/Client/Pages/Company/Checkouts/PrintAll.cshtml b/ServiceHost/Areas/Client/Pages/Company/Checkouts/PrintAll.cshtml index 04cddda2..93f465b0 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Checkouts/PrintAll.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Checkouts/PrintAll.cshtml @@ -361,10 +361,10 @@ { @if (items.HasRollCall) { - - } - else - { + + } + else + {
diff --git a/ServiceHost/Areas/Client/Pages/Company/Checkouts/PrintOneRollCall.cshtml b/ServiceHost/Areas/Client/Pages/Company/Checkouts/PrintOneRollCall.cshtml index abbfb4a8..7b5c67ab 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Checkouts/PrintOneRollCall.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Checkouts/PrintOneRollCall.cshtml @@ -325,7 +325,14 @@
@@ -358,7 +365,14 @@ @@ -376,7 +390,7 @@ @{ if (Model.IsLeft) { - + طبق تصفیه حساب نهایی تنظیمی فوق، آخرین روز اشتغال بکار اینجانب  @Model.LastDayOfWork  بوده و قطع همکاری با کارفرما و کارگاه از تاریخ  diff --git a/ServiceHost/Areas/Client/Pages/Company/Checkouts/_Partials/PrintDetailsRollCallRaw.cshtml b/ServiceHost/Areas/Client/Pages/Company/Checkouts/_Partials/PrintDetailsRollCallRaw.cshtml index 173a2640..622a3c59 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Checkouts/_Partials/PrintDetailsRollCallRaw.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Checkouts/_Partials/PrintDetailsRollCallRaw.cshtml @@ -1,431 +1,450 @@ @using _0_Framework.Application @model CompanyManagment.App.Contracts.Checkout.CheckoutViewModel - -
-
-
+
+
+
-
-
@Model.ContractNo
-

بسمه تعالی

فیش حقوقی و رسید پرداخت حقوق

-
-
-
-
- اینجانب   @Model.EmployeeFullName - - نام پدر: - @if (string.IsNullOrWhiteSpace(@Model.FathersName)) - { - "" - } - else - { - @Model.FathersName - - } - - - - به کد ملی:   - @if (string.IsNullOrWhiteSpace(@Model.NationalCode)) - { - - } - else - { - @Model.NationalCode - } - - متولد:   - @if (string.IsNullOrWhiteSpace(@Model.DateOfBirth)) - { - 1401/01/01 - } - else - { - @Model.DateOfBirth - } - - - +
+
@Model.ContractNo
+

بسمه تعالی

فیش حقوقی و رسید پرداخت حقوق

+
-
- - @{ - if (@Model.EmployerList.FirstOrDefault().IsLegal == "حقیقی") - { - پـرسنل کارگاه  @Model.WorkshopName -   - به کارفرمایی   آقای/خانم   - -   - if (@Model.EmployerList.Count > 1) +
+
+ اینجانب   @Model.EmployeeFullName + + نام پدر: + @if (string.IsNullOrWhiteSpace(@Model.FathersName)) { - - @Model.EmployerList[0].EmployerFullName ، -  @Model.EmployerList[1].EmployerFullName - @if (@Model.EmployerList.Count > 2) - { - و غیره - } -
+ "" } else { - - @Model.EmployerList.FirstOrDefault().EmployerFullName - + @Model.FathersName + } +
+ + + به کد ملی:   + @if (string.IsNullOrWhiteSpace(@Model.NationalCode)) + { + + } + else + { + @Model.NationalCode + } + + متولد:   + @if (string.IsNullOrWhiteSpace(@Model.DateOfBirth)) + { + 1401/01/01 + } + else + { + @Model.DateOfBirth + } + + + +
+
+ + @{ + if (@Model.EmployerList.FirstOrDefault().IsLegal == "حقیقی") + { + پـرسنل کارگاه  @Model.WorkshopName +   + به کارفرمایی   آقای/خانم   + +   + if (@Model.EmployerList.Count > 1) + { + + @Model.EmployerList[0].EmployerFullName ، +  @Model.EmployerList[1].EmployerFullName + @if (@Model.EmployerList.Count > 2) + { + و غیره + } +
+ } + else + { + + @Model.EmployerList.FirstOrDefault().EmployerFullName + + +
+ } + + } + else if (@Model.EmployerList.FirstOrDefault().IsLegal == "حقوقی") + { + پـرسنل شرکت/موسسه  @Model.WorkshopName
} } - else if (@Model.EmployerList.FirstOrDefault().IsLegal == "حقوقی") - { - پـرسنل شرکت/موسسه  @Model.WorkshopName -
- } - } + کلیه حق السعی خود اعم از حقوق، کمک هزینه اقلام مصرفی خانوار، کمک هزینه مسکن - کلیه حق السعی خود اعم از حقوق، کمک هزینه اقلام مصرفی خانوار، کمک هزینه مسکن + و همچنین عیدی و پاداش، سنوات و... + @Model.Month ماه + سال @Model.Year + برابر با قرارداد به شماره فوق را از کارفرما بصورت وجه نقد و واریز به حساب دریافت نموده ام. - و همچنین عیدی و پاداش، سنوات و... - @Model.Month ماه - سال @Model.Year - برابر با قرارداد به شماره فوق را از کارفرما بصورت وجه نقد و واریز به حساب دریافت نموده ام. - -
-
- -
-
-
تاریخساعت ورودساعت خروجمنقطعساعت کارکردتاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@day.DateTimeGr.ToFarsi() - @day.DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@day.StartDate@day.EndDate +
@day.DateTimeGr.ToFarsi() - @day.DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@day.StartDate@day.EndDate @if (day.IsSliced) { @@ -374,15 +369,10 @@ } else { - @* - - - - *@ - } @day.TotalWorkingHours@day.TotalWorkingHours
@if (@Model.MonthlyRollCall[i].IsSliced) { - منقطع + + + + + } + else + { + - } @Model.MonthlyRollCall[i].TotalWorkingHours @if (day.IsSliced) { - منقطع + + + + + } + else + { + - } @day.TotalWorkingHours
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
مطالبات کسورات
ردیف شرح ساعت/روز/تعداد مبلغ(ریال) شرح ساعت/روز/تعداد مبلغ(ریال)
1 حقوق و مزد - @(Model.MonthlySalary == "0" ? "-" : Model.MonthlySalary) حق بیمه سهم کارگر - @(Model.InsuranceDeduction == "0" ? "-" : Model.InsuranceDeduction)
2 پایه سنوات - @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) مالیات بر حقوق - @(Model.TaxDeducation == "0" ? "-" : Model.TaxDeducation)
3 کمک هزینه اقلام مصرفی خانوار - @(Model.ConsumableItems == "0" ? "-" : Model.ConsumableItems) قسط تسهیلات - @(Model.InstallmentDeduction == "0" ? "-" : Model.InstallmentDeduction)
4 کمک هزینه مسکن - @(Model.HousingAllowance == "0" ? "-" : Model.HousingAllowance) مساعده - @(Model.SalaryAidDeduction == "0" ? "-" : Model.SalaryAidDeduction)
5 فوق العاده اضافه کاری - @(Model.OvertimePay == "0" ? "-" : Model.OvertimePay) غیبت - @(Model.AbsenceDeduction == "0" ? "-" : Model.AbsenceDeduction)
6 فوق العاده شب کاری - @(Model.NightworkPay == "0" ? "-" : Model.NightworkPay)
7 فوق العاده جمعه کاری - @(Model.FridayPay == "0" ? "-" : Model.FridayPay)
8 فوق العاده ماموریت - @(Model.MissionPay == "0" ? "-" : Model.MissionPay)
9 فوق العاده نوبت کاری - @(Model.ShiftPay == "0" ? "-" : Model.ShiftPay)
10 کمک هزینه عائله مندی - @(Model.FamilyAllowance == "0" ? "-" : Model.FamilyAllowance)
11 حق تاهل - @(Model.MarriedAllowance == "0" ? "-" : Model.MarriedAllowance)
12 پاداش - @(Model.RewardPay == "0" ? "-" : Model.RewardPay)
13 عیدی و پاداش - @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay)
14 سنوات - @(Model.YearsPay == "0" ? "-" : Model.YearsPay)
15 مزد مرخصی - @(Model.LeavePay == "0" ? "-" : Model.LeavePay)
جمع مطالبات - @(Model.TotalClaims == "0" ? "-" : Model.TotalClaims) جمع کسورات - @(Model.TotalDeductions == "0" ? "-" : Model.TotalDeductions)
مبلغ قابل پرداخت @(Model.TotalPayment == "0" ? "-" : Model.TotalPayment)
- -
- -
-
-
- - - - - - - - - - - - @for (int i = 0; i < 15; i++) - { - - - - - - - - } - -
تاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@Model.MonthlyRollCall[i].DateTimeGr.ToFarsi() - @Model.MonthlyRollCall[i].DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@Model.MonthlyRollCall[i].StartDate@Model.MonthlyRollCall[i].EndDate - @if (@Model.MonthlyRollCall[i].IsSliced) - { - منقطع - } - @Model.MonthlyRollCall[i].TotalWorkingHours
-
-
- - - - - - - - - - - - @{ - Model.MonthlyRollCall = Model.MonthlyRollCall.Skip(15).ToList(); - } - @foreach (var day in Model.MonthlyRollCall) - { - - - - - - - - } - -
تاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@day.DateTimeGr.ToFarsi() - @day.DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@day.StartDate@day.EndDate - @if (day.IsSliced) - { - منقطع - } - @day.TotalWorkingHours
-
-
-
-
- @{ - if (Model.IsLeft) - { - - طبق تصفیه حساب نهایی تنظیمی فوق، آخرین روز اشتغال بکار اینجانب  - @Model.LastDayOfWork  - بوده و قطع همکاری با کارفرما و کارگاه از تاریخ  - @Model.LeftWorkDate  - می باشد - - } - } +
+
+ - -
-
- @*
اینجانب     @Model.EmployeeFullName
-
نام پدر:     @Model.FathersName
-
به کد ملی:  @Model.NationalCode
-
متولد:     @Model.DateOfBirth
*@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
مطالبات کسورات
ردیف شرح ساعت/روز/تعداد مبلغ(ریال) شرح ساعت/روز/تعداد مبلغ(ریال)
1 حقوق و مزد - @(Model.MonthlySalary == "0" ? "-" : Model.MonthlySalary) حق بیمه سهم کارگر - @(Model.InsuranceDeduction == "0" ? "-" : Model.InsuranceDeduction)
2 پایه سنوات - @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) مالیات بر حقوق - @(Model.TaxDeducation == "0" ? "-" : Model.TaxDeducation)
3 کمک هزینه اقلام مصرفی خانوار - @(Model.ConsumableItems == "0" ? "-" : Model.ConsumableItems) قسط تسهیلات - @(Model.InstallmentDeduction == "0" ? "-" : Model.InstallmentDeduction)
4 کمک هزینه مسکن - @(Model.HousingAllowance == "0" ? "-" : Model.HousingAllowance) مساعده - @(Model.SalaryAidDeduction == "0" ? "-" : Model.SalaryAidDeduction)
5 فوق العاده اضافه کاری - @(Model.OvertimePay == "0" ? "-" : Model.OvertimePay) غیبت - @(Model.AbsenceDeduction == "0" ? "-" : Model.AbsenceDeduction)
6 فوق العاده شب کاری - @(Model.NightworkPay == "0" ? "-" : Model.NightworkPay)
7 فوق العاده جمعه کاری - @(Model.FridayPay == "0" ? "-" : Model.FridayPay)
8 فوق العاده ماموریت - @(Model.MissionPay == "0" ? "-" : Model.MissionPay)
9 فوق العاده نوبت کاری - @(Model.ShiftPay == "0" ? "-" : Model.ShiftPay)
10 کمک هزینه عائله مندی - @(Model.FamilyAllowance == "0" ? "-" : Model.FamilyAllowance)
11 حق تاهل - @(Model.MarriedAllowance == "0" ? "-" : Model.MarriedAllowance)
12 پاداش - @(Model.RewardPay == "0" ? "-" : Model.RewardPay)
13 عیدی و پاداش - @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay)
14 سنوات - @(Model.YearsPay == "0" ? "-" : Model.YearsPay)
15 مزد مرخصی - @(Model.LeavePay == "0" ? "-" : Model.LeavePay)
جمع مطالبات - @(Model.TotalClaims == "0" ? "-" : Model.TotalClaims) جمع کسورات - @(Model.TotalDeductions == "0" ? "-" : Model.TotalDeductions)
مبلغ قابل پرداخت @(Model.TotalPayment == "0" ? "-" : Model.TotalPayment)
+
+
+ +
+
+
+ + + + + + + + + + + + @for (int i = 0; i < 15; i++) + { + + + + + + + + } + +
تاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@Model.MonthlyRollCall[i].DateTimeGr.ToFarsi() - @Model.MonthlyRollCall[i].DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@Model.MonthlyRollCall[i].StartDate@Model.MonthlyRollCall[i].EndDate + @if (@Model.MonthlyRollCall[i].IsSliced) + { + + + + + } + else + { + - + } + @Model.MonthlyRollCall[i].TotalWorkingHours
-
-
- @* پـرسنل شـرکت  @Model.WorkshopName -   - به کارفرمایی   آقای/خانم/شرکت    - @{ - foreach (var item in @Model.EmployerList) +
+ + + + + + + + + + + + @{ + Model.MonthlyRollCall = Model.MonthlyRollCall.Skip(15).ToList(); + } + @foreach (var day in Model.MonthlyRollCall) + { + + + + + + + + } + +
تاریخساعت ورودساعت خروجمنقطعساعت کارکرد
@day.DateTimeGr.ToFarsi() - @day.DateTimeGr.DayOfWeek.DayOfWeeKToPersian()@day.StartDate@day.EndDate + @if (day.IsSliced) + { + + + + + } + else + { + - + } + @day.TotalWorkingHours
+
+
+
+ +
+
+
+ @{ + if (Model.IsLeft) { - @item.EmployerFullName ، + + طبق تصفیه حساب نهایی تنظیمی فوق، آخرین روز اشتغال بکار اینجانب  + @Model.LastDayOfWork  + بوده و قطع همکاری با کارفرما و کارگاه از تاریخ  + @Model.LeftWorkDate  + می باشد + } + else + { + + } -    - مبلغ ............. ریال را بصورت نقدی از کارفرما دریافت نمودم. *@ + } + +
+
+
+ @*
اینجانب     @Model.EmployeeFullName
+
نام پدر:     @Model.FathersName
+
به کد ملی:  @Model.NationalCode
+
متولد:     @Model.DateOfBirth
*@ +
+
+
+ @* پـرسنل شـرکت  @Model.WorkshopName +   + به کارفرمایی   آقای/خانم/شرکت    + @{ + foreach (var item in @Model.EmployerList) + { + @item.EmployerFullName ، + } + } +    + مبلغ ............. ریال را بصورت نقدی از کارفرما دریافت نمودم. *@ +
+
-
+
-
- -
-
-
- اثر انگشت -
-
- امضاء +
+
+
+ اثر انگشت +
+
+ امضاء +
+
+
+
-
-
-
- - + +
- diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/CreateLeave.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/CreateLeave.cshtml index dd1fc1d4..18019555 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/CreateLeave.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/CreateLeave.cshtml @@ -106,14 +106,14 @@ @@ -169,6 +169,7 @@ + + - + diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/createleave.js b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/createleave.js index ed3ebb9f..ffb4e66b 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/createleave.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/createleave.js @@ -181,32 +181,78 @@ }); /////////////////Time Input Validatet///////////////// - $('#StartHoures').on("keyup", function () { - var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val()); - if (isValid) { - $(this).addClass("validTime"); - $(this).removeClass("invalidTime"); - if ($('#EndHours').hasClass('validTime') && $('#EndHours').val() != null) { - computeHourse(); - } - } else { - $(this).removeClass("validTime"); - $(this).addClass("invalidTime"); - } - }); - $('#EndHours').on("keyup", function () { - var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val()); - if (isValid) { - $(this).addClass("validTime"); - $(this).removeClass("invalidTime"); - if ($('#StartHoures').hasClass('validTime') && $('#StartHoures').val() != null) { - computeHourse(); - } - } else { - $(this).removeClass("validTime"); - $(this).addClass("invalidTime"); - } - }); + + $(".dateTime").each(function () { + new Cleave(this, { + time: true, + timePattern: ['h', 'm'] + }); + }); + + $("#StartHoures, #EndHours").on("keyup", validateTimeOrder); + function parseTimeToMinutes(time) { + const [hours, minutes] = time.split(':').map(Number); + return hours * 60 + minutes; + } + + function validateTimeOrder() { + const startTime = $("#StartHoures").val(); + const endTime = $("#EndHours").val(); + + if (startTime && endTime) { + const startMinutes = parseTimeToMinutes(startTime); + const endMinutes = parseTimeToMinutes(endTime); + + if (startMinutes >= endMinutes) { + $('.alert-msg').show(); + $('.alert-msg p').text('ساعت شروع و پایان نامعتبر است'); + + $("#StartHoures, #EndHours").addClass("invalidTime").removeClass("validTime"); + + return false; + } else { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + + $("#StartHoures, #EndHours").addClass("validTime").removeClass("invalidTime"); + } + + if ($("#StartHoures").val().length === 5 && $("#EndHours").val().length === 5) { + computeHourse(); + } + } else { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + } + return true; + } + + //$('#StartHoures').on("keyup", function () { + // var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val()); + // if (isValid) { + // $(this).addClass("validTime"); + // $(this).removeClass("invalidTime"); + // if ($('#EndHours').hasClass('validTime') && $('#EndHours').val() != null) { + // computeHourse(); + // } + // } else { + // $(this).removeClass("validTime"); + // $(this).addClass("invalidTime"); + // } + // }); + //$('#EndHours').on("keyup", function () { + // var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val()); + // if (isValid) { + // $(this).addClass("validTime"); + // $(this).removeClass("invalidTime"); + // if ($('#StartHoures').hasClass('validTime') && $('#StartHoures').val() != null) { + // computeHourse(); + // } + // } else { + // $(this).removeClass("validTime"); + // $(this).addClass("invalidTime"); + // } + // }); $('#employeeSelect').change(function () { diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Index/js/LeaveCreate.js b/ServiceHost/wwwroot/AssetsClient/pages/Index/js/LeaveCreate.js index b09cecd5..bbab0b7f 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Index/js/LeaveCreate.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Index/js/LeaveCreate.js @@ -176,9 +176,8 @@ $('#printSingle').on('click', function () { var id = $('#printSingleID').val(); - var parametr = '&id=' + id; - var url = printOneMobileUrl; - location.href = url + parametr; + var url = `#showmodal=/Client/Company/Employees/Leave?id=${id}&handler=PrintOneMobile`; + window.location.href = url; }); @@ -461,34 +460,81 @@ }); /////////////////Time Input Validatet///////////////// - $('#StartHoures').on("keyup", - function () { - var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val()); - if (isValid) { - $(this).addClass("validTime"); - $(this).removeClass("invalidTime"); - if ($('#EndHours').hasClass('validTime') && $('#EndHours').val() != null) { - computeHourse(); - } - } else { - $(this).removeClass("validTime"); - $(this).addClass("invalidTime"); - } + $(".dateTime").each(function () { + new Cleave(this, { + time: true, + timePattern: ['h', 'm'] }); - $('#EndHours').on("keyup", - function () { - var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val()); - if (isValid) { - $(this).addClass("validTime"); - $(this).removeClass("invalidTime"); - if ($('#StartHoures').hasClass('validTime') && $('#StartHoures').val() != null) { - computeHourse(); - } + }); + + $("#StartHoures, #EndHours").on("keyup", validateTimeOrder); + function parseTimeToMinutes(time) { + const [hours, minutes] = time.split(':').map(Number); + return hours * 60 + minutes; + } + + function validateTimeOrder() { + const startTime = $("#StartHoures").val(); + const endTime = $("#EndHours").val(); + + if (startTime && endTime) { + const startMinutes = parseTimeToMinutes(startTime); + const endMinutes = parseTimeToMinutes(endTime); + + if (startMinutes >= endMinutes) { + $('.alert-msg').show(); + $('.alert-msg p').text('ساعت شروع و پایان نامعتبر است'); + + $("#StartHoures, #EndHours").addClass("invalidTime").removeClass("validTime"); + + return false; } else { - $(this).removeClass("validTime"); - $(this).addClass("invalidTime"); + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + + $("#StartHoures, #EndHours").addClass("validTime").removeClass("invalidTime"); + } - }); + + if ($("#StartHoures").val().length === 5 && $("#EndHours").val().length === 5) { + computeHourse(); + } + } else { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + } + return true; + } + + + //$('#StartHoures').on("keyup", + // function () { + // var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val()); + // if (isValid) { + // $(this).addClass("validTime"); + // $(this).removeClass("invalidTime"); + // if ($('#EndHours').hasClass('validTime') && $('#EndHours').val() != null) { + // computeHourse(); + // } + // } else { + // $(this).removeClass("validTime"); + // $(this).addClass("invalidTime"); + // } + // }); + //$('#EndHours').on("keyup", + // function () { + // var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val()); + // if (isValid) { + // $(this).addClass("validTime"); + // $(this).removeClass("invalidTime"); + // if ($('#StartHoures').hasClass('validTime') && $('#StartHoures').val() != null) { + // computeHourse(); + // } + // } else { + // $(this).removeClass("validTime"); + // $(this).addClass("invalidTime"); + // } + // }); function computeHourse() { $('.res').remove();