Files
Backend-Api/Company.Domain/WorkshopAgg/Workshop.cs

356 lines
13 KiB
C#

using System.Collections.Generic;
using System.Globalization;
using System.Security.AccessControl;
using _0_Framework.Application;
using _0_Framework.Domain;
using Company.Domain.CheckoutAgg;
using Company.Domain.ClientEmployeeWorkshopAgg;
using Company.Domain.ContractAgg;
using Company.Domain.CustomizeCheckoutAgg;
using Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
using Company.Domain.EmployeeInsuranceRecordAgg;
using Company.Domain.empolyerAgg;
using Company.Domain.InsuranceAgg;
using Company.Domain.InsuranceWorkshopAgg;
using Company.Domain.InsurancWorkshopInfoAgg;
using Company.Domain.LeftWorkAgg;
using Company.Domain.LeftWorkInsuranceAgg;
using Company.Domain.PersonnelCodeAgg;
using Company.Domain.RollCallServiceAgg;
using Company.Domain.TaxLeftWorkCategoryAgg;
using Company.Domain.WorkshopAccountAgg;
using Company.Domain.WorkshopEmployerAgg;
using Company.Domain.WorkshopSubAccountAgg;
namespace Company.Domain.WorkshopAgg;
public class Workshop : EntityBase
{
public Workshop(string contractTerm, string agreementNumber, bool fixedSalary, string population, string zoneName, string bonusesOptions, string yearsOptions)
{
ContractTerm = contractTerm;
AgreementNumber = agreementNumber;
FixedSalary = fixedSalary;
Population = population;
ZoneName = zoneName;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
Contracts2 = new List<Contract>();
WorkshopEmployers = new List<WorkshopEmployer>();
LeftWorks = new List<LeftWork>();
LeftWorkInsurances = new List<LeftWorkInsurance>();
EmployersList = new List<Employer>();
TaxLeftWorkCategoryList = new List<TaxLeftWorkCategory>();
}
public Workshop(string agreementNumber, bool fixedSalary, string population, string zoneName, string bonusesOptions, string yearsOptions)
{
AgreementNumber = agreementNumber;
FixedSalary = fixedSalary;
Population = population;
ZoneName = zoneName;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
WorkshopEmployers = new List<WorkshopEmployer>();
EmployersList = new List<Employer>();
}
public Workshop(string zoneName, string bonusesOptions, string yearsOptions)
{
ZoneName = zoneName;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
PersonnelCodeList = new List<PersonnelCodeDomain>();
}
public Workshop(string bonusesOptions, string yearsOptions)
{
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
ClientEmployeeWorkshopList = new List<ClientEmployeeWorkshop>();
}
public Workshop(string workshopName,string workshopSureName, string insuranceCode, string typeOfOwnership, string archiveCode, string agentName, string agentPhone,
string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm,
string agreementNumber, bool fixedSalary, string population,long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay, bool totalPaymentHide,
bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking,
bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance, bool createContract, bool signContract, bool createCheckout, bool signCheckout, IsActive cutContractEndOfYear, bool rotatingShiftCompute, bool isStaticCheckout)
{
WorkshopName = workshopName;
WorkshopSureName = workshopSureName;
if (workshopSureName != null)
{
WorkshopFullName = workshopName + " (" + workshopSureName + ")";
}
else
{
WorkshopFullName = workshopName;
}
InsuranceCode = insuranceCode;
//EmployerId = employerId;
IsActive = true;
IsActiveString = "true";
TypeOfOwnership = typeOfOwnership;
ArchiveCode = archiveCode;
AgentName = agentName;
AgentPhone = agentPhone;
State = state;
City = city;
Address = address;
TypeOfInsuranceSend = typeOfInsuranceSend;
TypeOfContract = typeOfContract;
ContractTerm = contractTerm;
AgreementNumber = agreementNumber;
FixedSalary = fixedSalary;
Population = population;
InsuranceJobId = insuranceJobId;
ZoneName = zoneName;
AddBonusesPay = true;
AddYearsPay = true;
AddLeavePay = true;
TotalPaymentHide = totalPaymentHide;
IsClassified = isClassified;
ComputeOptions = computeOptions;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
HasRollCallFreeVip = hasRollCallFreeVip;
WorkshopHolidayWorking = workshopHolidayWorking;
InsuranceCheckoutOvertime = insuranceCheckoutOvertime;
InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance;
CreateContract = createContract;
SignContract = signContract;
CreateCheckout = createCheckout;
SignCheckout = signCheckout;
CutContractEndOfYear = cutContractEndOfYear;
RotatingShiftCompute = rotatingShiftCompute;
IsStaticCheckout = isStaticCheckout;
}
public string WorkshopName { get; private set; }
public string WorkshopSureName { get; private set; }
public string WorkshopFullName { get; private set; }
public string InsuranceCode { get; private set; }
//public long EmployerId { get; private set; }
public bool IsActive { get; private set; }
public string IsActiveString { get; set; }
public string TypeOfOwnership { get; private set; }
public string ArchiveCode { get; private set; }
public string AgentName { get; private set; }
public string AgentPhone { get; private set; }
public string State { get; private set; }
public string City { get; private set; }
public string Address { get; private set; }
public string TypeOfInsuranceSend { get; private set; }
public string TypeOfContract { get; private set; }
public string ContractTerm { get; private set; }
public string AgreementNumber { get; private set; }
public bool FixedSalary { get; private set; }
public string Population { get; private set; }
public long? InsuranceJobId { get; private set; }
public bool AddBonusesPay { get; private set; }
public bool AddYearsPay { get; private set; }
public bool AddLeavePay { get; private set; }
public string ZoneName { get; private set; }
public bool TotalPaymentHide { get; private set; }
/// <summary>
/// آیا طبقه بندی شده است
/// [کارگاه دارای طرح طبقه بندی می باشد ؟]
/// </summary>
public bool IsClassified { get; private set; }
/// <summary>
/// آیا طرح طبقه بندی تکمیل شده است
/// </summary>
public bool IsClassificationSchemeCompleted { get; private set; }
//نحوه محاسبه مزد مرخصی
public string ComputeOptions { get; private set; }
//نحوه محاسبه عیدی
public string BonusesOptions { get; private set; }
//نحوه محاسبه سنوات
public string YearsOptions { get; private set; }
//نگهدارنده وضعیت قراردادهای گذشته
public bool IsOldContract { get; private set; }
public string HasRollCallFreeVip { get; private set; }
//کارگاه هایی که در تعطیلات رسمی باز هستند
public bool WorkshopHolidayWorking { get; private set; }
/// <summary>
/// محاسبه اضافه کار فیش حقوقی در لیست بیمه
/// </summary>
public bool InsuranceCheckoutOvertime { get; private set; }
/// <summary>
/// محاسبه حق اولاد در لیست بیمه
/// </summary>
public bool InsuranceCheckoutFamilyAllowance { get; private set; }
public bool CreateContract { get; private set; }
public bool SignContract { get; private set; }
public bool CreateCheckout { get; private set; }
public bool SignCheckout { get; private set; }
/// <summary>
/// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد
/// این آیتم
/// True
/// است
/// </summary>
public IsActive CutContractEndOfYear { get; private set; }
//public Employer Employer { get; private set; }
/// <summary>
/// محاسبه نوبت کاری در فیش حقوقی
/// </summary>
public bool RotatingShiftCompute { get; private set; }
/// <summary>
/// تصفیه حساب بصورت استاتیک محاصبه شود
/// </summary>
public bool IsStaticCheckout { get; private set; }
public Workshop()
{
RollCallServicesList = new List<RollCallService>();
CustomizeCheckouts = new List<CustomizeCheckout>();
}
public List<RollCallService> RollCallServicesList { get; set; }
public List<PersonnelCodeDomain> PersonnelCodeList { get; set; }
public List<Contract> Contracts2 { get; set; }
public List<WorkshopEmployer> WorkshopEmployers { get; set; }
public List<LeftWork> LeftWorks { get; set; }
public List<LeftWorkInsurance> LeftWorkInsurances { get; set; }
public List<Employer> EmployersList { get; set; }
public List<Checkout> Checkouts { get; set; }
public List<Insurance> Insurances { get; private set; }
public List<InsuranceListWorkshop> InsuranceListWorkshops { get; set; }
public List<EmployeeInsuranceRecord> EmployeeInsuranceRecords { get; private set; }
public List<ClientEmployeeWorkshop> ClientEmployeeWorkshopList { get; set; }
public InsuranceWorkshopInfo InsuranceWorkshopInfo { get; set; }
public List<TaxLeftWorkCategory> TaxLeftWorkCategoryList { get; set; }
public List<CustomizeCheckout> CustomizeCheckouts { get; set; }
public CustomizeWorkshopSettings CustomizeWorkshopSettings { get; set; }
#region Pooya
public List<WorkshopSubAccount> WorkshopSubAccounts { get; set; } = [];
#endregion
public void Edit(string workshopName, string workshopSureName, string insuranceCode,string typeOfOwnership, string archiveCode, string agentName, string agentPhone,
string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm,
string agreementNumber, bool fixedSalary, string population, long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay,
bool totalPaymentHide, bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking,
bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance, bool createContract, bool signContract, bool createCheckout, bool signCheckout, IsActive cutContractEndOfYear, bool rotatingShiftCompute, bool isStaticCheckout)
{
WorkshopName = workshopName;
WorkshopSureName = workshopSureName;
if (workshopSureName != null)
{
WorkshopFullName = workshopName + " (" + workshopSureName + ")";
}
else
{
WorkshopFullName = workshopName;
}
InsuranceCode = insuranceCode;
//EmployerId = employerId;
TypeOfOwnership = typeOfOwnership;
ArchiveCode = archiveCode;
AgentName = agentName;
AgentPhone = agentPhone;
State = state;
City = city;
Address = address;
TypeOfInsuranceSend = typeOfInsuranceSend;
TypeOfContract = typeOfContract;
ContractTerm = contractTerm;
AgreementNumber = agreementNumber;
FixedSalary = fixedSalary;
Population = population;
InsuranceJobId = insuranceJobId;
ZoneName = zoneName;
AddBonusesPay = true;
AddYearsPay = true;
AddLeavePay = true;
TotalPaymentHide = totalPaymentHide;
IsClassified = isClassified;
ComputeOptions = computeOptions;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
HasRollCallFreeVip = hasRollCallFreeVip;
WorkshopHolidayWorking = workshopHolidayWorking;
InsuranceCheckoutOvertime = insuranceCheckoutOvertime;
InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance;
CreateContract = createContract;
SignContract = signContract;
CreateCheckout = createCheckout;
SignCheckout = signCheckout;
CutContractEndOfYear = cutContractEndOfYear;
RotatingShiftCompute = rotatingShiftCompute;
IsStaticCheckout = isStaticCheckout;
}
public void Active(string archiveCode)
{
this.IsActive = true;
this.IsActiveString= "true";
string a = archiveCode;
string bb = string.Empty;
int convert2 = 0;
for (int x = 0; x < a.Length; x++)
{
if (char.IsDigit(a[x]))
bb += a[x];
}
if (bb.Length > 0)
{
convert2 = int.Parse(bb);
}
var final = convert2.ToString();
ArchiveCode = final;
}
public void DeActive(string archiveCode)
{
this.IsActive = false;
this.IsActiveString = "false";
ArchiveCode = "b-" + archiveCode;
}
}