Merge branch 'Feature/InstitutionContract/add-registration-style' into Main

This commit is contained in:
2025-09-30 16:18:21 +03:30
7 changed files with 49 additions and 20 deletions

View File

@@ -74,4 +74,5 @@ public interface IPersonalContractingPartyRepository :IRepository<long, Personal
Task<GetRealContractingPartyDetailsViewModel> GetRealDetails(long id);
Task<GetLegalContractingPartyDetailsViewModel> GetLegalDetails(long id);
Task<PersonalContractingParty> GetByNationalCode(string nationalCode);
}

View File

@@ -8,4 +8,8 @@ public class ContractingPartyTempViewModel : CreateContractingPartyTemp
/// </summary>
public string DateOfBirthFa { get; set; }
public string Address { get; set; }
public string City { get; set; }
public long RepresentativeId { get; set; }
}

View File

@@ -930,8 +930,33 @@ public class InstitutionContractApplication : IInstitutionContractApplication
var syear = command.ContractStartFa.Substring(0, 4);
var smonth = command.ContractStartFa.Substring(5, 2);
var sday = command.ContractStartFa.Substring(8, 2);
var transaction = await _contractingPartyRepository.BeginTransactionAsync();
if (command.ContractStartFa.TryToGeorgianDateTime(out var contractStartGr) == false)
return opration.Failed("تاریخ شروع قرارداد معتبر نیست");
contractStartGr.AddMonthsFa((int)command.Duration, out var contractEndGr);
contractEndGr = contractEndGr.ToFarsi().FindeEndOfMonth().ToGeorgianDateTime();
if (command.ContractingPartyLegalType == LegalType.Legal)
{
if (_contractingPartyRepository.Exists(x =>
x.LName == command.LegalParty.CompanyName && x.RegisterId == command.LegalParty.RegisterId) &&
_institutionContractRepository.Exists(x=> x.IsActiveString =="true" &&
x.ContractStartGr < contractEndGr && contractStartGr < x.ContractEndGr))
throw new BadRequestException("امکان ایجاد قرارداد تکراری وجود ندارد");
}
else if(command.ContractingPartyLegalType == LegalType.Real)
{
if (_contractingPartyRepository.Exists(x =>
x.LName == command.RealParty.LName && x.Nationalcode == command.RealParty.NationalCode)&&
_institutionContractRepository.Exists(x=> x.IsActiveString =="true" &&
x.ContractStartGr < contractEndGr && contractStartGr < x.ContractEndGr))
throw new BadRequestException("امکان ثبت رکورد تکراری وجود ندارد");
}
OperationResult<PersonalContractingParty> contractingPartyResult = command.ContractingPartyLegalType switch
{
LegalType.Legal => await CreateLegalContractingPartyEntity(command.LegalParty, command.RepresentativeId),
@@ -949,18 +974,14 @@ public class InstitutionContractApplication : IInstitutionContractApplication
var representative = _representativeRepository.Get(command.RepresentativeId);
if (representative == null)
return opration.Failed("معرف مورد نظر یافت نشد");
if (command.ContractStartFa.TryToGeorgianDateTime(out var contractStartGr) == false)
return opration.Failed("تاریخ شروع قرارداد معتبر نیست");
if (command.IsInstallment &&
!command.Workshops.Any(x => x.HasContractPlanInPerson || x.HasInsurancePlanInPerson))
{
return opration.Failed("برای قراردادهای اقساطی حداقل یک کارگاه باید دارای طرح حضوری باشد");
}
contractStartGr.AddMonthsFa((int)command.Duration, out var contractEndGr);
contractEndGr = contractEndGr.ToFarsi().FindeEndOfMonth().ToGeorgianDateTime();
var today = DateTime.Today;
@@ -1212,10 +1233,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
CreateInstitutionContractLegalPartyRequest request, long representativeId)
{
var opration = new OperationResult<PersonalContractingParty>();
if (_contractingPartyRepository.Exists(x =>
x.LName == request.CompanyName && x.RegisterId == request.RegisterId))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (representativeId < 1)
return opration.Failed("لطفا معرف را انتخاب کنید");
@@ -1257,10 +1275,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
CreateInstitutionContractRealPartyRequest request, long representativeId)
{
var operation = new OperationResult<PersonalContractingParty>();
if (_contractingPartyRepository.Exists(x =>
x.LName == request.LName && x.Nationalcode == request.NationalCode))
return operation.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (representativeId < 1)
return operation.Failed("لطفا معرف را انتخاب کنید");

View File

@@ -94,6 +94,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
var dateOfBirthGr = dateOfBirth.ToGeorgianDateTime();
var contractingParty =await _personalContractingPartyRepository.GetByNationalCode(nationalCode);
//اگر طرف حساب موقت قبلا ایجاد شده دیتای آن را برمیگرداند
if (getExistTemp != null)
@@ -156,6 +157,14 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
result.IdNumberSerial = createTemp.IdNumberSerial;
result.IdNumber = idNumber;
if (contractingParty != null)
{
result.Address = contractingParty.Address;
result.City = contractingParty.City;
result.State = contractingParty.State;
result.RepresentativeId = contractingParty.RepresentativeId;
}
return op.Succcedded(result);
}
}

View File

@@ -738,6 +738,11 @@ public class PersonalContractingPartyRepository : RepositoryBase<long, PersonalC
return res;
}
public async Task<PersonalContractingParty> GetByNationalCode(string nationalCode)
{
return await _context.PersonalContractingParties.FirstOrDefaultAsync(x => x.Nationalcode == nationalCode);
}
#endregion
}

View File

@@ -29,12 +29,6 @@ public class ContractingPartyController : AdminBaseController
Console.WriteLine(watch.Elapsed);
return result.ToList();
}
[HttpGet("t/{name}")]
public async Task<List<string>> TestApi(string name)
{
var res = _contractingPartyApplication.SearchByName(name).Where(x=>x.Contains(name)).ToList();
return res;
}
/// <summary>
/// جزئیات طرف حساب حقیقی

View File

@@ -13,6 +13,7 @@ public class InsuranceJobsController:AdminBaseController
_insuranceJobApplication = insuranceJobApplication;
}
[HttpGet("select-list")]
public async Task<ActionResult<List<InsuranceJobSelectListViewModel>>> GetInsuranceSelectList()
{
var res =await _insuranceJobApplication.GetSelectList();