Merge branch 'Feature/institution-contract/refactor-creation' into Main

This commit is contained in:
2025-12-30 16:44:40 +03:30

View File

@@ -87,7 +87,9 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
ISmsResultRepository smsResultRepository, IFinancialTransactionRepository financialTransactionRepository,
IFinancialStatmentRepository financialStatmentRepository, IHubContext<SendSmsHub> hubContext,
ILogger<InstitutionContractRepository> logger, IUidService uidService,
IContractingPartyTempRepository contractingPartyTempRepository, IPersonalContractingPartyRepository contractingPartyRepository, IRepresentativeRepository representativeRepository, IAccountApplication accountApplication) : base(context)
IContractingPartyTempRepository contractingPartyTempRepository,
IPersonalContractingPartyRepository contractingPartyRepository,
IRepresentativeRepository representativeRepository, IAccountApplication accountApplication) : base(context)
{
_context = context;
_employerRepository = employerRepository;
@@ -5307,6 +5309,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
Gender = contractingParty.Gender,
PhoneNumber = contractingParty.Phone,
IsAuth = true,
BirthDateFa = contractingParty.DateOfBirth.ToFarsi()
};
result.RealParty = realParty;
result.LegalParty = null;
@@ -5502,10 +5505,10 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
personalContractingParty.IdNumberSerial, realCommand.BirthDateFa, realCommand.Gender,
realCommand.PhoneNumber);
}
contractingParty = personalContractingParty;
}
contractingParty = personalContractingParty;
break;
}
@@ -5520,7 +5523,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
throw new BadRequestException("دیتای درخواست شده نامعتبر است");
}
List<WorkshopTempViewModel> workshopDetails=[];
List<WorkshopTempViewModel> workshopDetails = [];
if (contractingParty != null)
{
var employerWorkshopIds = _context.Employers
@@ -5559,18 +5562,17 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
RollCallInPerson = false,
};
}).ToList();
}
creationTemp.SetContractingPartyContactInfo(request.Address, request.City, request.Province,
request.ContactInfos,request.RepresentativeId);
request.ContactInfos, request.RepresentativeId);
await _institutionContractCreationTemp.ReplaceOneAsync(
x => x.Id == creationTemp.Id,
creationTemp
);
var res = new InstitutionContractCreationWorkshopsResponse()
{
TotalAmount = workshopDetails.Sum(x => x.WorkshopServicesAmount).ToMoney(),
@@ -5959,7 +5961,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
Monthly = monthlyPayment
};
}
public async Task<OperationResult> CreationComplete(InstitutionContractExtensionCompleteRequest request)
{
@@ -5989,16 +5991,19 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
}
else
{
OperationResult<PersonalContractingParty> contractingPartyResult = institutionContractTemp.ContractingPartyLegalType switch
{
LegalType.Legal => await CreateLegalContractingPartyEntity(institutionContractTemp.LegalParty, institutionContractTemp.RepresentativeId,
institutionContractTemp.Address,
institutionContractTemp.City, institutionContractTemp.Province),
LegalType.Real => await CreateRealContractingPartyEntity(institutionContractTemp.RealParty, institutionContractTemp.RepresentativeId,
institutionContractTemp.Address,
institutionContractTemp.City, institutionContractTemp.Province),
_ => throw new BadRequestException("نوع طرف قرارداد مشخص نشده است")
};
OperationResult<PersonalContractingParty> contractingPartyResult =
institutionContractTemp.ContractingPartyLegalType switch
{
LegalType.Legal => await CreateLegalContractingPartyEntity(institutionContractTemp.LegalParty,
institutionContractTemp.RepresentativeId,
institutionContractTemp.Address,
institutionContractTemp.City, institutionContractTemp.Province),
LegalType.Real => await CreateRealContractingPartyEntity(institutionContractTemp.RealParty,
institutionContractTemp.RepresentativeId,
institutionContractTemp.Address,
institutionContractTemp.City, institutionContractTemp.Province),
_ => throw new BadRequestException("نوع طرف قرارداد مشخص نشده است")
};
if (!contractingPartyResult.IsSuccedded)
throw new BadRequestException(contractingPartyResult.Message);
contractingParty = contractingPartyResult.Data;
@@ -6021,10 +6026,11 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
var representative = _representativeRepository.Get(institutionContractTemp.RepresentativeId);
if (representative == null)
return opration.Failed("معرف مورد نظر یافت نشد");
if (_context.InstitutionContractSet.Any(x =>
x.ContractingPartyId == contractingPartyId && x.IsActiveString == "true"))
return opration.Failed("برای این طرف قرارداد قبلا قرارداد اصلی ایجاد شده است، شما میتوانید از تمدید استفاده کنید");
return opration.Failed(
"برای این طرف قرارداد قبلا قرارداد اصلی ایجاد شده است، شما میتوانید از تمدید استفاده کنید");
if (string.IsNullOrWhiteSpace(contractStart))
@@ -6048,7 +6054,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
if (dateMessages)
return opration.Failed(dateMaessageResult);
var syear = contractStart.Substring(0, 4);
var smonth = contractStart.Substring(5, 2);
var sday = contractStart.Substring(8, 2);
@@ -6060,7 +6066,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
var contractEndGr = selectedDuration.ContractEnd.ToGeorgianDateTime();
var contractDateGr = contractStart.ToGeorgianDateTime();
if (institutionContractTemp.Address != null && institutionContractTemp.Province == null)
{
@@ -6102,7 +6108,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
var oneMonthPayment = selectedDuration.OneMonthPaymentDiscounted.MoneyToDouble();
var contractingPartyFullName = contractingParty.IsLegal=="حقیقی"
var contractingPartyFullName = contractingParty.IsLegal == "حقیقی"
? contractingParty.FName + " " + contractingParty.LName
: contractingParty.LName;
@@ -6119,8 +6125,8 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
institutionContractTemp.Address, contractStartGr,
contractStart, contractEndGr, selectedDuration.ContractEnd,
oneMonthPayment, selectedDuration.DailyCompenseation.MoneyToDouble(),
selectedDuration.Obligation.MoneyToDouble(), totalAmount,
0, workshopsCount, employeeCount,null,
selectedDuration.Obligation.MoneyToDouble(), totalAmount,
0, workshopsCount, employeeCount, null,
"NotOfficial", "JobRelation", hasValueAddedTax,
payment.Tax.MoneyToDouble(), [],
request.LawId, payment.DiscountPercetage, payment.DiscountedAmount.MoneyToDouble());
@@ -6199,6 +6205,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
_context.InstitutionContractContactInfos.Add(contactinfo);
}
}
var userPass = contractingParty.IsLegal == "حقیقی"
? contractingParty.Nationalcode
: contractingParty.NationalId;
@@ -6225,8 +6232,8 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
return opration.Succcedded();
}
private async Task<OperationResult<PersonalContractingParty>> CreateLegalContractingPartyEntity(
InstitutionContractCreationTempLegalParty request, long representativeId, string address, string city,
private async Task<OperationResult<PersonalContractingParty>> CreateLegalContractingPartyEntity(
InstitutionContractCreationTempLegalParty request, long representativeId, string address, string city,
string state)
{
var opration = new OperationResult<PersonalContractingParty>();
@@ -6318,6 +6325,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
return operation.Succcedded(personalContractingParty);
}
#endregion