Merge branch 'Feature/contracting-party/modify-apis' into Main

This commit is contained in:
2025-10-01 12:20:40 +03:30
13 changed files with 71 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

@@ -57,4 +57,12 @@ public class ContractingPartyGetListViewModel
/// </summary>
public ActivationStatus Status { get; set; }
public string Address { get; set; }
public string PhoneNumber { get; set; }
public string NationalId { get; set; }
public string RepresentativeName { 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

@@ -36,17 +36,10 @@ 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 pc = new PersianCalendar();
var customizeCheckouts = (await _companyContext.CheckoutSet
.Where(x => x.WorkshopId == loan.WorkshopId && x.EmployeeId == loan.EmployeeId &&
startDate<=x.ContractEnd && endDate>=x.ContractEnd)
.Select(x => x.ContractStart).ToListAsync())
.Select(x =>
{
var year = pc.GetYear(x);
var month = pc.GetMonth(x);
return new { Month = month, Year = year };
});
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()
{
@@ -60,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.Month.ToString("00") == x.Month && c.Year.ToString() == x.Year),
IsPaid = checkouts.Any(c => c.EntityId == x.Id),
}).ToList()
};

View File

@@ -567,7 +567,11 @@ public class PersonalContractingPartyRepository : RepositoryBase<long, PersonalC
IsBlock = x.contractingParty.IsBlock == "true",
HasInstitutionContract = x.institution.Any(i => i.IsActiveString == "true"),
NationalIdOrNationalCode = x.contractingParty.IsLegal == "حقیقی" ? x.contractingParty.Nationalcode : x.contractingParty.NationalId,
Status = x.contractingParty.IsActiveString == "true" ? ActivationStatus.Active : ActivationStatus.DeActive
Status = x.contractingParty.IsActiveString == "true" ? ActivationStatus.Active : ActivationStatus.DeActive,
Address = x.contractingParty.Address,
NationalId = x.contractingParty.NationalId,
PhoneNumber = x.contractingParty.Phone,
RepresentativeName = x.contractingParty.RepresentativeFullName
}).ToListAsync();
return result;
}

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

@@ -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>