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

This commit is contained in:
MahanCh
2025-08-27 12:04:08 +03:30
6 changed files with 10598 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);

View File

@@ -0,0 +1,51 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class AddmissingplanservicesinworkshopDetails : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "HasContractPlanInPerson",
table: "InstitutionContractWorkshopDetail",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "HasInsurancePlan",
table: "InstitutionContractWorkshopDetail",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "HasInsurancePlanInPerson",
table: "InstitutionContractWorkshopDetail",
type: "bit",
nullable: false,
defaultValue: false);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "HasContractPlanInPerson",
table: "InstitutionContractWorkshopDetail");
migrationBuilder.DropColumn(
name: "HasInsurancePlan",
table: "InstitutionContractWorkshopDetail");
migrationBuilder.DropColumn(
name: "HasInsurancePlanInPerson",
table: "InstitutionContractWorkshopDetail");
}
}
}

View File

@@ -3190,9 +3190,18 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<bool>("HasContractPlan")
.HasColumnType("bit");
b.Property<bool>("HasContractPlanInPerson")
.HasColumnType("bit");
b.Property<bool>("HasCustomizeCheckoutPlan")
.HasColumnType("bit");
b.Property<bool>("HasInsurancePlan")
.HasColumnType("bit");
b.Property<bool>("HasInsurancePlanInPerson")
.HasColumnType("bit");
b.Property<bool>("HasRollCallPlan")
.HasColumnType("bit");