Merge branch 'master' into WorskhopClassifiedPlan

This commit is contained in:
SamSys
2025-09-30 00:15:53 +03:30
15 changed files with 83 additions and 33 deletions

View File

@@ -160,4 +160,6 @@ public class CreateCheckout
public TimeSpan TotalPaidLeave { get; set; }
public TimeSpan TotalSickLeave { get; set; }
public bool HasLeft { get; set; }
}

View File

@@ -200,11 +200,11 @@ public class CheckoutApplication : ICheckoutApplication
.Select(x => new CheckoutSalaryAid(x.Amount, x.SalaryAidDateTimeGe, x.SalaryAidDateTimeFa, x.CalculationDateTimeGe, x.CalculationDateTimeFa, x.Id)).ToList();
command.SalaryAidDeduction = salaryAids.Sum(x => x.Amount.MoneyToDouble());
var loanInstallments = _rollCallMandatoryRepository.LoanInstallmentForCheckout(command.EmployeeId,
command.WorkshopId, command.ContractStartGr, command.ContractEndGr)
.Select(x => new CheckoutLoanInstallment(x.Amount, x.Month, x.Year, x.IsActive, x.RemainingAmount, x.LoanAmount, x.Id)).ToList();
command.WorkshopId, command.ContractStartGr, command.HasLeft ? DateTime.MaxValue : command.ContractEndGr)
.Select(x =>
new CheckoutLoanInstallment(x.Amount, x.Month, x.Year, x.IsActive, x.RemainingAmount, x.LoanAmount, x.Id)).ToList();
command.InstallmentDeduction = loanInstallments.Sum(x => x.AmountForMonth.MoneyToDouble());

View File

@@ -319,7 +319,10 @@ namespace CompanyManagment.Application
if (workshopId == 170)
{
var exceptionEmployeeIds = _customizeWorkshopGroupSettingsRepository.GetEmployeeSettingsByGroupSettingsId(117).Select(x => x.EmployeeId).ToList();
var exceptionEmployeeIds = _customizeWorkshopGroupSettingsRepository
.GetEmployeeSettingsByGroupSettingsId(117)
.Select(x => x.EmployeeId)
.Where(x=> workshopLeftWorksInMonth.Select(l=>l.EmployeeId).Contains(x)).ToList();
foreach (var employeesId in exceptionEmployeeIds)
{

View File

@@ -249,7 +249,10 @@ namespace CompanyManagment.Application
if (workshopId == 170)
{
var exceptionEmployeeIds = _customizeWorkshopGroupSettingsRepository.GetEmployeeSettingsByGroupSettingsId(117).Select(x => x.EmployeeId).ToList();
var exceptionEmployeeIds = _customizeWorkshopGroupSettingsRepository
.GetEmployeeSettingsByGroupSettingsId(117)
.Select(x => x.EmployeeId)
.Where(x=> workshopLeftWorksInMonth.Select(l=>l.EmployeeId).Contains(x)).ToList();
foreach (var employeesId in exceptionEmployeeIds)
{

View File

@@ -1345,8 +1345,12 @@ public class InsuranceListRepository : RepositoryBase<long, InsuranceList>, IIns
public List<EmployeeDetailsForInsuranceListViewModel> GetEmployeeInsuranceDataForEdit(long insuranceListId, DateTime startDate, DateTime endDate)
{
var res = _context.EmployeeInsurancListDataSet
var employeeDataQuery = _context.EmployeeInsurancListDataSet
.Where(x => x.InsuranceListId == insuranceListId)
.Join(_context.InsuranceListSet,
employeeInsurancListData => employeeInsurancListData.InsuranceListId,
insuranceList => insuranceList.id,
(employeeInsurancListData, insuranceList) => new{employeeInsurancListData,insuranceList})
.Join(_context.LeftWorkInsuranceList
.Where(x =>
((x.LeftWorkDate != null && x.LeftWorkDate != DateTime.MinValue) &&
@@ -1357,14 +1361,18 @@ public class InsuranceListRepository : RepositoryBase<long, InsuranceList>, IIns
(x.LeftWorkDate == null || x.LeftWorkDate == DateTime.MinValue))
.Where(x => x.StartWorkDate <= endDate)
.Include(x => x.Employee),
employeeData => employeeData.EmployeeId,
leftwork => leftwork.EmployeeId,
(employeeData, leftwork) => new { employeeData, leftwork })
.Join(_context.Jobs,
employeeData =>new { employeeData.employeeInsurancListData.EmployeeId,employeeData.insuranceList.WorkshopId},
leftwork => new {leftwork.EmployeeId,leftwork.WorkshopId},
(employeeData, leftwork)
=> new { employeeData = employeeData.employeeInsurancListData, leftwork });
var employeeJobs =employeeDataQuery.Join(_context.Jobs,
result => result.leftwork.JobId,
job => job.id,
(result, job) => new { result, job })
.GroupJoin(_context.InsuranceEmployeeInformationSet.AsSplitQuery(),
(result, job) => new { result, job });
var res =employeeJobs.GroupJoin(_context.InsuranceEmployeeInformationSet.AsSplitQuery(),
allResult => allResult.result.employeeData.EmployeeId,
employeeInfo => employeeInfo.EmployeeId,
(allResult, employeeInfo) => new

View File

@@ -35,9 +35,11 @@ public class LoanRepository : RepositoryBase<long, Loan>, ILoanRepository
var startDate = loan.LoanInstallments.MinBy(x => x.InstallmentDate).InstallmentDate;
var endDate = loan.LoanInstallments.MaxBy(x => x.InstallmentDate).InstallmentDate;
var customizeCheckouts =await _companyContext.CustomizeCheckouts.Where(x => x.WorkshopId == loan.WorkshopId && x.EmployeeId == loan.EmployeeId &&
x.ContractStart <= endDate && x.ContractEnd >= startDate).Select(x=> new {x.MonthInt, x.YearInt}).ToListAsync();
var pc = new PersianCalendar();
var checkouts = (await _companyContext.CheckoutSet
.Where(x => x.WorkshopId == loan.WorkshopId && x.EmployeeId == loan.EmployeeId &&
startDate <= x.ContractEnd && endDate >= x.ContractEnd).AsNoTracking()
.SelectMany(x => x.LoanInstallments).ToListAsync());
var result = new LoanDetailsViewModel()
{
@@ -51,7 +53,7 @@ public class LoanRepository : RepositoryBase<long, Loan>, ILoanRepository
Id = x.Id,
InstallmentAmount = x.AmountForMonth.ToMoney(),
InstallmentDate = x.InstallmentDate.ToFarsi(),
IsPaid = customizeCheckouts.Any(c => c.MonthInt.ToString() == x.Month && c.YearInt.ToString() == x.Year)
IsPaid = checkouts.Any(c => c.EntityId == x.Id),
}).ToList()
};

View File

@@ -230,9 +230,12 @@
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10327" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> تب امور مالیاتی </span> </label>
</div>
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10328" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> تب طرح طبقه بندی </span> </label>
</div>
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10328" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> تب طرح طبقه بندی </span> </label>
</div>
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10330" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> تب تعیین سطح دسترسی </span> </label>
</div>
<!--پایان مودال-->
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10320" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> محاسبه مزایای پایان کار </span> </label>

View File

@@ -230,9 +230,12 @@
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10327" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> تب امور مالیاتی </span> </label>
</div>
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10328" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> تب طرح طبقه بندی </span> </label>
</div>
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10328" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> تب طرح طبقه بندی </span> </label>
</div>
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10330" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> تب تعیین سطح دسترسی </span> </label>
</div>
<!--پایان مودال-->
<div class="child-check level3">
<label class="btn btn-inverse waves-effect waves-light m-b-5 children"><input type="checkbox" disabled="disabled" value="10320" class="check-btn"> &nbsp;<span style="bottom: 2px;position: relative"> محاسبه مزایای پایان کار </span> </label>

View File

@@ -1076,7 +1076,8 @@ public class IndexModel : PageModel
// ساعت موظفی پرسنل برای این ماه
EmployeeMandatoryHours = mandatoryCompute.EmployeeMandatoryHours,
HasInsuranceChekoutOverTime = workshop.InsuranceCheckoutOvertime
HasInsuranceChekoutOverTime = workshop.InsuranceCheckoutOvertime,
HasLeft = separation.HasLeft
};
_checkoutApplication.Create(command);

View File

@@ -299,10 +299,23 @@
</div>
</div>
</div>
<div class="row" id="formPermissionAccount" style="display: none">
<partial name="_CreateForms/FormPermissionAccount" model="Model.Command" />
@if (Model.Command.PermissionIds != null && Model.Command.PermissionIds.Contains(10330))
{
<partial name="_CreateForms/FormPermissionAccount" model="Model.Command"/>
}
else
{
<div class="flex-box w-100">
<h4 style="margin: auto; margin-top: 10%;" class="text-danger">
شما مجوز دسترسی به این بخش را ندارید.
</h4>
</div>
}
</div>
<div class="row" id="form2" style="display: none">
@if (Model.Command.PermissionIds != null && Model.Command.PermissionIds.Contains(10323))

View File

@@ -312,7 +312,15 @@
</div>
</div>
<div class="row" id="formPermissionAccount" style="display: none">
<partial name="_EditForms/FormPermissionAccount" model="Model.Command" />
<div class="flex-box w-100" style="@(Model.HasPermissionAccount ? "display: none;" : "")">
<h4 style="margin: auto; margin-top: 10%;" class="text-danger">
شما مجوز دسترسی به این بخش را ندارید.
</h4>
</div>
<div style="@(!Model.HasPermissionAccount ? "display: none;" : "")">
<partial name="_EditForms/FormPermissionAccount" model="Model.Command"/>
</div>
</div>
<div class="row" id="form2" style="display: none">
<input type="hidden" id="PermissionContract" asp-for="@Model.HasPermissionContract" value="@Model.HasPermissionContract" />

View File

@@ -32,6 +32,7 @@ namespace ServiceHost.Areas.Admin.Pages.Company.Workshops
public bool HasPermissionWorkshopInfo;
public bool HasPermissionContract;
public bool HasPermissionInsurance;
public bool HasPermissionAccount;
public List<AccountViewModel> DeactivatedAccounts;
public EditWorkshopModel(IWorkshopApplication workshopApplication, IWorkshopRepository workshopRepository, IEmployerApplication employerApplication, IAccountRepository accountRepository, IInsuranceJobApplication insuranceJobApplication, IAuthHelper authHelper, IRollCallServiceApplication rollCallServiceApplication)
@@ -51,6 +52,7 @@ namespace ServiceHost.Areas.Admin.Pages.Company.Workshops
HasPermissionWorkshopInfo = permissions.Any(x => x == 10326);
HasPermissionContract = permissions.Any(x => x == 10323);
HasPermissionInsurance = permissions.Any(x => x == 10324);
HasPermissionAccount = permissions.Any(x => x == 10330);
var permissionIds = _authHelper.GetPermissions();
// var currentAccout = _authHelper.CurrentAccountInfo();

View File

@@ -52,6 +52,7 @@ public class FinancialController : ClientBaseController
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpPost("CreatePay")]
[AllowAnonymous]
public async Task<ActionResult<OperationResult<string>>> CreatePay([FromForm] CreateFinancialPayRequest request, CancellationToken cancellationToken)
{
var op = new OperationResult<string>();

View File

@@ -62,7 +62,8 @@
</div>
<div class="flex items-center gap-3">
<img src="~/assetsmain/images/enamad_icon.png" class="w-24" alt="" srcset="" style="visibility: hidden">
<a referrerpolicy='origin' target='_blank' href='https://trustseal.enamad.ir/?id=653633&Code=i4xawX1zauW7nICGaD0VqxehuTpMHAiC'><img referrerpolicy='origin' src='https://trustseal.enamad.ir/logo.aspx?id=653633&Code=i4xawX1zauW7nICGaD0VqxehuTpMHAiC' alt='' style='cursor:pointer' code='i4xawX1zauW7nICGaD0VqxehuTpMHAiC'></a>
<img src="~/assetsmain/images/enamad_icon.png" class="w-24" alt="" srcset="" style="visibility: hidden">
<img src="~/assetsmain/images/enamed-park.png" class="w-24" alt="" srcset="" style="visibility: hidden">
</div>
</div>

View File

@@ -196,13 +196,13 @@
<div class="w-full" style="z-index: 10;">
<div class="!text-white text-center font-extrabold text-[#1.4rem] md:text-start">نشانی گزارشگیر</div>
<div class="flex flex-col items-center justify-between md:flex-row">
<div class="!text-white font-medium text-center text-[#0.8rem] md:text-start">منطقه آزاد انزلی، مجتمع ونوس طبقه اول، قرفه ۵۵۰</div>
<div class="!text-white font-medium text-center text-[#0.8rem] md:text-start"> رشت - خیابان حاجی آباد - روبروی پارکینگ بزرگ حاجی آباد - ابتدای کوچه سپهدار - ساختمان دادماش - طبقه پنجم - واحد 17 </div>
<div class="text-center">
<div class="!text-white font-medium text-[#0.8rem]">شماره تماس</div>
<div class="!text-white font-medium text-[#0.8rem]"><span class="ss03">۰۱۳۳۲۳۲۸۸۸۶</span></div>
<div class="!text-white font-medium text-[#0.8rem]"><span class="ss03">۰۱۳۳۲۳۲۸۸۸۷</span></div>
<div class="!text-white font-medium text-[#0.8rem]"><span class="ss03">۰۱۳۳۳۲۴۴۹۲۶</span></div>
<div class="!text-white font-medium text-[#0.8rem]"><span class="ss03">۰۱۳۳۳۲۳۸۷۷۷</span></div>
<div class="!text-white font-medium text-[#0.8rem]"><span class="ss03">01333238777</span></div>
<div class="!text-white font-medium text-[#0.8rem]"><span class="ss03">01333328886</span></div>
<div class="!text-white font-medium text-[#0.8rem]"><span class="ss03">01333328887</span></div>
</div>
</div>
</div>