From 5da523e9a8ea30caae29f8b983ca04250c84110d Mon Sep 17 00:00:00 2001 From: SamSys Date: Mon, 8 Dec 2025 13:24:18 +0330 Subject: [PATCH 1/5] spreating js and css on SmsSettings --- .../Company/SmsResult/SmsSettings.cshtml | 142 +----------------- ServiceHost/ServiceHost.csproj | 2 + .../page/SmsSettings/css/SmsSettings.css | 30 ++++ .../page/SmsSettings/js/SmsSettings.js | 106 +++++++++++++ 4 files changed, 143 insertions(+), 137 deletions(-) create mode 100644 ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/css/SmsSettings.css create mode 100644 ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js diff --git a/ServiceHost/Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml b/ServiceHost/Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml index 781ce582..1929e52e 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml @@ -7,37 +7,8 @@ string adminVersion = _0_Framework.Application.Version.AdminVersion; - + + }
@@ -125,112 +96,9 @@ + + } \ No newline at end of file diff --git a/ServiceHost/ServiceHost.csproj b/ServiceHost/ServiceHost.csproj index 56999321..2c3be2d0 100644 --- a/ServiceHost/ServiceHost.csproj +++ b/ServiceHost/ServiceHost.csproj @@ -60,6 +60,7 @@ + @@ -510,6 +511,7 @@ + diff --git a/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/css/SmsSettings.css b/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/css/SmsSettings.css new file mode 100644 index 00000000..24a65599 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/css/SmsSettings.css @@ -0,0 +1,30 @@ + +body { + background-color: #fefefe; + background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%232ebfbf' fill-opacity='0.1' fill-rule='evenodd'/%3E%3C/svg%3E"); +} + +.hiddenTab { + display: none; +} + +.errored { + animation: shake 300ms; + box-shadow: inset 0 0 2px #eb3434, 0 0 5px #eb3434 !important; + border: 1px solid #eb3434 !important; +} + +.date-input { + text-align: center; +} + +button.rounded-pill { + border-radius: 5px !important; +} + +.instantSendSms { + background-color: #75aea7; + color: white !important; +} + + diff --git a/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js b/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js new file mode 100644 index 00000000..4af2608b --- /dev/null +++ b/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js @@ -0,0 +1,106 @@ +$(document).ready(function () { + + $('.time-input').mask('00:00', { + translation: { + '0': { pattern: /[0-9]/ }, + // برای اولین رقم ساعت فقط 0-2 + 'H': { pattern: /[0-2]/ }, + // اگر اولین رقم 2 باشد دومین رقم فقط 0-3 + 'h': { pattern: /[0-3]/ }, + // برای دقیقه + 'M': { pattern: /[0-5]/ }, + 'm': { pattern: /[0-9]/ }, + } + }); + + + + // پیش‌فرض: لود تب اول با workshopId + loadPartial("/Admin/Company/SmsResult/SmsSettings?handler=InstitutionContractDebtReminderTab"); + $("#institutionContractDebtReminderTab").addClass("active"); + + // کلیک روی تب‌ها + $("#institutionContractDebtReminderTab, #blockContractingPartyTab, #legalActionTab, #warningTab").click(function (e) { + e.preventDefault(); + + + + let url = $(this).data("url"); + + + + switch (this.id) { + case "institutionContractDebtReminderTab": + + loadPartial(url); + + $("#institutionContractDebtReminderTab, #blockContractingPartyTab, #legalActionTab, #warningTab").removeClass("active"); + $(this).addClass("active"); + break; + case "blockContractingPartyTab": + + loadPartial(url); + $("#institutionContractDebtReminderTab, #blockContractingPartyTab, #legalActionTab, #warningTab").removeClass("active"); + $(this).addClass("active"); + + break; + case "legalActionTab": + loadPartial(url); + $("#institutionContractDebtReminderTab, #blockContractingPartyTab, #legalActionTab, #warningTab").removeClass("active"); + $(this).addClass("active"); + break; + case "warningTab": + loadPartial(url); + $("#institutionContractDebtReminderTab, #blockContractingPartyTab, #legalActionTab, #warningTab").removeClass("active"); + $(this).addClass("active"); + break; + + } + + }); + + function loadPartial(url) { + $.get(url, function (data) { + $("#partialContainer").html(data); + }); + } + + + + +}); + + + +function remove(id) { + + + + $.ajax({ + dataType: 'json', + type: 'GET', + url: urlAjaxToRemove, + headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() }, + data: { id: id }, + + success: function (response) { + if (response.isSuccess) { + $.Notification.autoHideNotify('success', 'top center', 'پیام سیستم ', response.message); + + + setTimeout(function () { + $(".li-wizard.step.active").trigger("click"); + + + + }, 500); + } else { + $.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', response.message); + } + + }, + failure: function (response) { + //console.log(5, response); + } + }); +} \ No newline at end of file From 7776dedd2a06d1fdd986daac070209d2c5681c70 Mon Sep 17 00:00:00 2001 From: SamSys Date: Mon, 8 Dec 2025 13:29:09 +0330 Subject: [PATCH 2/5] update SmsSettings js --- .../Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml | 2 +- .../wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ServiceHost/Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml b/ServiceHost/Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml index 1929e52e..ee6275a3 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/SmsResult/SmsSettings.cshtml @@ -97,7 +97,7 @@ diff --git a/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js b/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js index 4af2608b..5b1d5e03 100644 --- a/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js +++ b/ServiceHost/wwwroot/AssetsAdmin/page/SmsSettings/js/SmsSettings.js @@ -80,7 +80,7 @@ function remove(id) { dataType: 'json', type: 'GET', url: urlAjaxToRemove, - headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() }, + headers: { "RequestVerificationToken": antiforgeryToken }, data: { id: id }, success: function (response) { From 0a2815946cebe990b0b2c330a21e04b862a3273b Mon Sep 17 00:00:00 2001 From: SamSys Date: Mon, 8 Dec 2025 14:37:04 +0330 Subject: [PATCH 3/5] change leavComput for staticWorkshop set --- .../Repository/YearlySalaryRepository.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs b/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs index 081ef131..edef4117 100644 --- a/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs +++ b/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs @@ -2860,7 +2860,7 @@ public class YearlySalaryRepository : RepositoryBase, IYearl var allContractsBetween = _context.Contracts.AsSplitQuery().Include(x => x.WorkingHoursList) .Where(x => x.WorkshopIds == workshopId && x.EmployeeId == employeeId && x.ContractEnd >= startDate && x.ContarctStart <= endDate).ToList(); - + var isWorkshopStaticCheckout = _context.Workshops.FirstOrDefault(x => x.id == workshopId)!.IsStaticCheckout; int mandatoryDays = 0; double allCanToLeave = 0; double canToLeave = 0; @@ -2894,7 +2894,8 @@ public class YearlySalaryRepository : RepositoryBase, IYearl var rollCallTotalHoures = GetTotalWorkingHoursIfHasRollCall(employeeId, workshopId, contract.ContarctStart.Date, contract.ContractEnd.Date); - if (rollCallTotalHoures.hasRollCall) + + if (rollCallTotalHoures.hasRollCall && !isWorkshopStaticCheckout) { totalWorkingHours = rollCallTotalHoures.WorkingTotalHours; } @@ -3375,6 +3376,7 @@ public class YearlySalaryRepository : RepositoryBase, IYearl var allContractsBetween = _context.Contracts.AsSplitQuery().Include(x => x.WorkingHoursList) .Where(x => x.WorkshopIds == workshopId && x.EmployeeId == employeeId && x.ContractEnd >= startDate && x.ContarctStart <= endDate).OrderBy(x => x.ContarctStart).ToList(); + var isWorkshopStaticCheckout = _context.Workshops.FirstOrDefault(x => x.id == workshopId)!.IsStaticCheckout; double canToLeave = 0; int contractCounter = 0; foreach (var contract in allContractsBetween) @@ -3407,7 +3409,7 @@ public class YearlySalaryRepository : RepositoryBase, IYearl var rollCallTotalHoures = GetTotalWorkingHoursIfHasRollCall(employeeId, workshopId, contract.ContarctStart.Date, contract.ContractEnd.Date); - if (rollCallTotalHoures.hasRollCall) + if (rollCallTotalHoures.hasRollCall && !isWorkshopStaticCheckout) { totalWorkingHours = rollCallTotalHoures.WorkingTotalHours; } From 5e6033db952aa01b6abb8670fe27b019c1f64472 Mon Sep 17 00:00:00 2001 From: mahan Date: Mon, 8 Dec 2025 16:36:35 +0330 Subject: [PATCH 4/5] change ssologin url --- ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs index 75a2a174..c3881abc 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs @@ -161,7 +161,7 @@ namespace ServiceHost.Areas.AdminNew.Pages var tokenString = new JwtSecurityTokenHandler().WriteToken(token); var domain = _configuration["Domain"] ?? "http://localhost:5000"; // Redirect به SSO-Login با Token - var ssoUrl = $"https://pm{domain}/ssologin?token={Uri.EscapeDataString(tokenString)}"; + var ssoUrl = $"https://pm{domain}/ssoLogin?token={Uri.EscapeDataString(tokenString)}"; // var ssoUrl = $"https://localhost:7032/api/Auth/sso-login?token={Uri.EscapeDataString(tokenString)}"; return Redirect(ssoUrl); } From f42db3d21c8b6a833f59d420a33cee454a48c5c9 Mon Sep 17 00:00:00 2001 From: mahan Date: Sat, 13 Dec 2025 10:28:19 +0330 Subject: [PATCH 5/5] fix: change token expiration time to local time in JWT settings --- ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs index c3881abc..5040be69 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs @@ -154,7 +154,7 @@ namespace ServiceHost.Areas.AdminNew.Pages issuer: _configuration["JwtSettings:Issuer"] ?? "GozareshgirApp", audience: _configuration["JwtSettings:Audience"] ?? "GozareshgirUsers", claims: claims, - expires: DateTime.UtcNow.AddMinutes(int.Parse(_configuration["JwtSettings:ExpirationMinutes"] ?? "30")), + expires: DateTime.Now.AddMinutes(int.Parse(_configuration["JwtSettings:ExpirationMinutes"] ?? "30")), signingCredentials: credentials );