Handle BuyInstitutionContractInstallment items in invoice processing and add GetIdByInstallmentId method

This commit is contained in:
2025-11-27 21:12:52 +03:30
parent f3fa76c292
commit 95891d5bae
6 changed files with 1208 additions and 1170 deletions

View File

@@ -145,4 +145,6 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
#endregion #endregion
Task<long> GetIdByInstallmentId(long installmentId);
} }

View File

@@ -253,6 +253,8 @@ public interface IInstitutionContractApplication
Task<InstitutionContractPrintViewModel> PrintOneAsync(long id); Task<InstitutionContractPrintViewModel> PrintOneAsync(long id);
Task<OperationResult> SetPendingWorkflow(long entityId); Task<OperationResult> SetPendingWorkflow(long entityId);
Task<long> GetIdByInstallmentId(long installmentId);
} }
public class InstitutionContractPrintViewModel public class InstitutionContractPrintViewModel

View File

@@ -1485,12 +1485,12 @@ public class EmployerApplication : IEmployerApplication
return opration.Failed("نام شرکت وارد شده تکراری است"); return opration.Failed("نام شرکت وارد شده تکراری است");
} }
if (_EmployerRepository.Exists(x => // if (_EmployerRepository.Exists(x =>
x.RegisterId == command.RegisterId && !string.IsNullOrWhiteSpace(command.RegisterId) && // x.RegisterId == command.RegisterId && !string.IsNullOrWhiteSpace(command.RegisterId) &&
x.RegisterId != null)) // x.RegisterId != null))
{ // {
return opration.Failed(" شماره ثبت وارد شده تکراری است"); // return opration.Failed(" شماره ثبت وارد شده تکراری است");
} // }
if (!string.IsNullOrEmpty(command.NationalId) && command.NationalId.Length != 11) if (!string.IsNullOrEmpty(command.NationalId) && command.NationalId.Length != 11)
{ {

File diff suppressed because it is too large Load Diff

View File

@@ -1726,6 +1726,9 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
{ {
return await _context.InstitutionContractSet return await _context.InstitutionContractSet
.Include(x => x.WorkshopGroup) .Include(x => x.WorkshopGroup)
.ThenInclude(x=> x.InitialWorkshops)
.Include(x=>x.WorkshopGroup)
.ThenInclude(x=>x.CurrentWorkshops)
.FirstOrDefaultAsync(x => x.id == institutionContractId); .FirstOrDefaultAsync(x => x.id == institutionContractId);
} }
@@ -4201,7 +4204,12 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
} }
public async Task<long> GetIdByInstallmentId(long installmentId)
{
return await _context.InstitutionContractSet.Include(x=>x.Installments)
.Where(x=>x.Installments.Any(i=>i.Id==installmentId))
.Select(x=>x.id).FirstOrDefaultAsync();
}
#endregion #endregion

View File

@@ -150,7 +150,7 @@ public class GeneralController : GeneralBaseController
payResponse.cardnumber, payResponse.issuerbank, payResponse.rrn.ToString(), payResponse.cardnumber, payResponse.issuerbank, payResponse.rrn.ToString(),
payResponse.digitalreceipt); payResponse.digitalreceipt);
if (financialInvoice.Items?.Any(x => x.Type == FinancialInvoiceItemType.BuyInstitutionContract) ?? false) if (financialInvoice.Items?.Any(x => x.Type is FinancialInvoiceItemType.BuyInstitutionContract or FinancialInvoiceItemType.BuyInstitutionContractInstallment) ?? false)
{ {
var financialItems = financialInvoice.Items var financialItems = financialInvoice.Items
.Where(x => x.Type == FinancialInvoiceItemType.BuyInstitutionContract); .Where(x => x.Type == FinancialInvoiceItemType.BuyInstitutionContract);
@@ -158,6 +158,16 @@ public class GeneralController : GeneralBaseController
{ {
await _institutionContractApplication.SetPendingWorkflow(editFinancialInvoiceItem.EntityId); await _institutionContractApplication.SetPendingWorkflow(editFinancialInvoiceItem.EntityId);
} }
var financialInstallmentItems = financialInvoice.Items
.Where(x => x.Type == FinancialInvoiceItemType.BuyInstitutionContractInstallment);
foreach (var editFinancialInvoiceItem in financialInstallmentItems)
{
var institutionContractId =
await _institutionContractApplication.GetIdByInstallmentId(
editFinancialInvoiceItem.Id);
await _institutionContractApplication.SetPendingWorkflow(institutionContractId);
}
} }
if (!setSuccessResult.IsSuccedded) if (!setSuccessResult.IsSuccedded)