feat: add in-person contract and insurance plan properties to institution contract

This commit is contained in:
MahanCh
2025-08-27 11:47:41 +03:30
parent d37ad552df
commit 701ebaeb96
3 changed files with 42 additions and 6 deletions

View File

@@ -182,13 +182,17 @@ public class InstitutionContract : EntityBase
public class InstitutionContractWorkshopDetail:EntityBase
{
public InstitutionContractWorkshopDetail( string workshopName, bool hasRollCallPlan,
bool hasCustomizeCheckoutPlan, bool hasContractPlan,int personnelCount,double price)
public InstitutionContractWorkshopDetail(string workshopName, bool hasRollCallPlan,
bool hasCustomizeCheckoutPlan, bool hasContractPlan,bool hasContractPlanInPerson,bool hasInsurancePlan,bool hasInsurancePlanInPerson,
int personnelCount, double price)
{
WorkshopName = workshopName;
HasRollCallPlan = hasRollCallPlan;
HasCustomizeCheckoutPlan = hasCustomizeCheckoutPlan;
HasContractPlan = hasContractPlan;
HasContractPlanInPerson = hasContractPlanInPerson;
HasInsurancePlan = hasInsurancePlan;
HasInsurancePlanInPerson = hasInsurancePlanInPerson;
PersonnelCount = personnelCount;
WorkshopCreated = false;
Price = price;
@@ -208,17 +212,31 @@ public class InstitutionContractWorkshopDetail:EntityBase
/// <summary>
/// پلن حضور و غیاب
/// </summary>
public bool HasRollCallPlan { get; private set; }
public bool HasRollCallPlan { get; set; }
/// <summary>
/// پلن فیش غیر رسمی
/// </summary>
public bool HasCustomizeCheckoutPlan { get; private set; }
public bool HasCustomizeCheckoutPlan { get; set; }
/// <summary>
/// پلن قرارداد و تصفیه
/// </summary>
public bool HasContractPlan { get; private set; }
public bool HasContractPlan { get; set; }
/// <summary>
/// پلن قرارداد و تصفیه حضوری
/// </summary>
public bool HasContractPlanInPerson { get; set; }
/// <summary>
/// پلن بیمه
/// </summary>
public bool HasInsurancePlan { get; set; }
/// <summary>
/// پلن بیمه حضوری
/// </summary>
public bool HasInsurancePlanInPerson { get; set; }
public int PersonnelCount { get; private set; }

View File

@@ -155,6 +155,20 @@ public class CreateInstitutionContractWorkshopDetail
/// پلن قرارداد و تصفیه
/// </summary>
public bool HasContractPlan { get; set; }
/// <summary>
/// پلن قرارداد و تصفیه حضوری
/// </summary>
public bool HasContractPlanInPerson { get; set; }
/// <summary>
/// پلن بیمه
/// </summary>
public bool HasInsurancePlan { get; set; }
/// <summary>
/// پلن بیمه حضوری
/// </summary>
public bool HasInsurancePlanInPerson { get; set; }
/// <summary>
/// تعداد پرسنل کارگاه

View File

@@ -949,6 +949,10 @@ public class InstitutionContractApplication : IInstitutionContractApplication
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();
@@ -976,7 +980,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
var workshopDetails = command.Workshops.Select(x =>
new InstitutionContractWorkshopDetail(x.WorkshopName, x.HasRollCallPlan, x.HasCustomizeCheckoutPlan,
x.HasContractPlan, x.PersonnelCount, x.Price)).ToList();
x.HasContractPlan, x.HasContractPlanInPerson,x.HasInsurancePlan,x.HasInsurancePlanInPerson,x.PersonnelCount, x.Price)).ToList();
var financialStatement = new FinancialStatment(contractingParty.id, contractingPartyFullName);