using CompanyManagment.App.Contracts.Employer; using CompanyManagment.App.Contracts.RollCall; using System; using System.Collections.Generic; using System.Runtime; using System.Security.AccessControl; using _0_Framework.Application.Enums; using _0_Framework.Domain.CustomizeCheckoutShared.Base; using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; using CompanyManagment.App.Contracts.Fine; using CompanyManagment.App.Contracts.Loan; using CompanyManagment.App.Contracts.Reward; using CompanyManagment.App.Contracts.SalaryAid; namespace CompanyManagment.App.Contracts.CustomizeCheckout; public class CustomizeCheckoutViewModel { public long Id { get; set; } public DateTime CreationDate { get; set; } public string Month { get; set; } public string Year { get; set; } public int PrintCounter { get; set; } public long EmployeeId { get; set; } public string EmployeeFName { get; set; } public string EmployeeLName { get; set; } public string EmployeeFullName => $"{EmployeeFName} {EmployeeLName}"; public string FatherName { get; set; } public string NationalCode { get; set; } public string DateOfBirth { get; set; } public long PersonnelCode { get; set; } public string PersonnelCodeString => PersonnelCode.ToString(); public string WorkshopName { get; set; } public long WorkshopId { get; set; } public long EmployerId { get; set; } public string EmployerName { get; set; } public List EmployerList { get; set; } public long ContractId { get; set; } public string ContractNo { get; set; } public DateTime ContractStartGr { get; set; } public DateTime ContractEndGr { get; set; } public string ContractStartFa { get; set; } public string ContractEndFa { get; set; } //[JsonIgnore] //public string LastDayOfWork => LeftWorkDateGr.AddDays(-1).ToFarsi(); //[JsonIgnore] //public string LeftWorkDateFa => LeftWorkDateGr.ToFarsi(); public DateTime LeftWorkDateGr { get; set; } public string SumOfWorkingDays { get; set; } public string MonthlySalary { get; set; } public string BaseYearsPay { get; set; } public string MarriedAllowance { get; set; } public string OvertimePay { get; set; } public string NightworkPay { get; set; } public string FridayPay { get; set; } public string MissionPay { get; set; } public string ShiftPay { get; set; } public string FamilyAllowance { get; set; } public string BonusesPay { get; set; } public string LeavePay { get; set; } public string RewardPay { get; set; } public bool IsBirthday { get; set; } = true; public string FineDeduction { get; set; } public string InsuranceDeduction { get; set; } public string TaxDeducation { get; set; } public string InstallmentDeduction { get; set; } public string SalaryAidDeduction { get; set; } public string AbsenceDeduction { get; set; } public string EarlyExitDeduction { get; set; } public string LateToWorkDeduction { get; set; } public string TotalClaims { get; set; } public string TotalDeductions { get; set; } public string TotalPayment { get; set; } public List FineViewModelList { get; set; } public List RewardViewModels { get; set; } public List InstallmentViewModels { get; set; } public List SalaryAidViewModels { get; set; } public bool TotalPaymentHide { get; set; } public PersonnelCheckoutDailyRollCallViewModel MonthlyRollCall { get; set; } public double TotalPaymentD { get; set; } public string TotalLateToWorkDeduction { get; set; } public string LateToWorkValue { get; set; } public string SettingSalary { get; set; } public string DailyWage { get; set; } public WorkshopShiftStatus ShiftStatus { get; set; } public string EmployeePicture { get; set; } public IrregularShift IrregularShift { get; set; } public List CustomizeRotatingShifts { get; set; } public List RegularShift { get; set; } public bool HasAmountConflict { get; set; } // New: up to three dynamic deduction items (name, count, amount) public List CheckoutDynamicDeductions { get; set; } = new List(); //public bool HasLeft { get; set; } //public string IsBlockCantracingParty { get; set; } //public string IsActiveString { get; set; } //public long WorkingHoursId { get; set; } //public string ArchiveCode { get; set; } //public string ConsumableItems { get; set; } //public string HousingAllowance { get; set; } //public string YearsPay { get; set; } }