Files
Backend-Api/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs
2025-05-14 20:42:27 +03:30

68 lines
4.7 KiB
C#

using System;
using System.Collections.Generic;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.LeftWork;
using CompanyManagment.App.Contracts.YearlySalary;
using System.Threading.Tasks;
using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.Holiday;
namespace Company.Domain.YearlySalaryAgg;
public interface IYearlySalaryRepository : IRepository<long, YearlySalary>
{
/// <summary>
/// تست محاسبه مزد پایه
/// </summary>
void TestDayliFeeCompute();
List<string> GetYears();
List<YearlySalaryViewModel> GetYearlySalary();
MontlywageBunosYearsViewModel GetMontlyBunosYears(TimeSpan weeklyTime, DateTime contractStart,DateTime contractEnd, double daylyWage, string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM, string basic, int fridayStartToEnd, double dayliFeeComplete, bool hasRollCall, bool holidaysWorking,string shiftWork);
double GetLeavePay(DateTime contractStart, DateTime contractEnd, double daylyWage, double consumableItem, double housingAllowance, double familyAllowance , string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM);
double GetOverTimeWorking(double dayliWage, string overTimeWorkH, string overTimeWorkM);
double GetOverNightWorking(double dayliWage, string overNightWorkH, string overNightWorkM, string weeklyWorkingTime, int officialholiday, int friday, DateTime contractStart, DateTime contractEnd, string totalHoursH, string totalHorsM);
DayliFeeViewModel DayliFeeComputing(DateTime startDateW,DateTime contractStart, DateTime endDateW, long employeeId, long workshopId,List<LeftWorkViewModel> leftWorkList);
Task<DayliFeeViewModel> DayliFeeComputingAsync(DateTime startDateW, DateTime contractStart, DateTime endDateW, long employeeId, long workshopId, List<LeftWorkViewModel> leftWorkList);
string ConsumableItems(DateTime endDateW);
string HousingAllowance(DateTime endDateW);
string FamilyAllowance(long personelID, DateTime startContract, DateTime endCantract);
string FamilyAllowanceAutoExtention(long personelID, DateTime startContract);
Task<string> ConsumableItemsAsync(DateTime endDateW);
Task<string> HousingAllowanceAsync(DateTime endDateW);
Task<string> FamilyAllowanceAsync(long personelID, DateTime EndCantract);
EditYearlySalary GetDetails(long id);
List<YearlySalaryViewModel> Search(YearlySalarySearchModel searchModel);
int FindConnection();
EditYearlySalary GetDetailsBySearchModel(YearlySalarySearchModel searchModel);
double MarriedAllowance(DateTime endDateW, long employeeId);
#region newComputeOptions
BunosesAndYearsPayStatus Years(DateTime separationStartDate,DateTime leftWorkDate, DateTime separationEndDate, double daylyWage, string yearsOptions,bool hasleft,DateTime startWorkDate,DateTime contractStart, DateTime contractEnd, long workshopId,long employeeId, bool isOldContract);
LeaveAndAbsenceViewModel LeavePay(string startDateFa,DateTime leftWorkDate,DateTime separationStartDate, DateTime separationEndDate, double daylyWage, string computeOptions, bool hasleft, DateTime startWorkDate, DateTime contractStart, DateTime contractEnd, long workshopId, long employeeId,
int fridayStartToEnd,int officialHoliday, string totalHoursH, string totalHorsM, double consumableItem,
double housingAllowance, double familyAllowance,double marriedAllowance, bool isOldContract);
BunosesAndYearsPayStatus Bunoses(string startDateFa, DateTime leftWorkDate, DateTime separationStartDate, DateTime separationEndDate, double daylyWage, string bonusesOptions, bool hasleft, DateTime startWorkDate, DateTime contractStart, DateTime contractEnd, long workshopId, long employeeId, bool isOldContract);
List<ContractsCanToLeave> LeftWorkCantoleaveList(DateTime startDate, DateTime endDate,long workshopId, long employeeId, bool hasleft,DateTime leftWorkDate, int fridayStartToEnd, int officialHoliday, string totalHoursH, string totalHorsM, DateTime separationStartDate);
List<ContractsCanToLeave> EndOfYearCantoleaveList(DateTime startDate, DateTime endDate, long workshopId, long employeeId, bool hasleft, DateTime leftWorkDate, int fridayStartToEnd, int officialHoliday, string totalHoursH, string totalHorsM, DateTime separationStartDate);
ContractsCanToLeave OnCheckoutCantoleaveList(DateTime startDate, DateTime endDate, long workshopId, long employeeId,
double leaveHoursesPerDay, double totalChekoutDays, double hoursePerDay);
Task<HolidayApiVewModel> HolidayGregorian(DateTime gregorianDate);
Task<HolidayApiVewModel> HolidayShamsi(string shamsiDate);
#endregion
#region Insurance
InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year);
#endregion
}