Files
Backend-Api/Company.Domain/RollCallAgg/IRollCallRepository.cs
2026-01-13 18:31:10 +03:30

101 lines
4.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.WorkingHoursTemp;
namespace Company.Domain.RollCallAgg
{
public interface IRollCallRepository : IRepository<long, RollCall>
{
EditRollCall GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);
EditRollCall GetById(long id);
#region Pooya
List<OverlappedRollCallWithLeave> GetOverlappedRollCallsWithLeaveInDates(long workshopId, DateTime start,
DateTime end);
List<RollCallsByDateViewModel> GetWorkshopAbsentHistory(long workshopId, DateTime startSearch,
DateTime endSearch);
void RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, DateTime date);
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
List<PersonnelCheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(IEnumerable<long> employeeIds,
long workshopId, DateTime start, DateTime end);
List<CheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(long employeeId, long workshopId, DateTime startDate, DateTime endDate);
List<PersonnelCheckoutDailyRollCallViewModel> GetEmployeeRollCallsInDates(IEnumerable<long> employeeIds,
long workshopId, DateTime start, DateTime end);
List<RollCallViewModel> GetEmployeeRollCallsHistoryAllInDates(long workshopId, long employeeId, DateTime start, DateTime end);
EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistory(long employeeId, long workshopId,
DateTime? startDateTime, DateTime? endDateTime, DateTime? exactDateTime, DateTime? monthIndex);
void AddRange(List<RollCall> rollCalls);
void UpdateRange(List<RollCall> rollCalls);
List<RollCallViewModel> GetWorkshopEmployeeRollCallsForDate(long workshopId, long employeeId, DateTime date);
/// <summary>
/// این متد تمام حضور غیاب های کات شده توسط بک گراند سرویس را به صورت تعداد روزانه برمیگرداند
/// </summary>
/// <param name="accountId"></param>
/// <param name="workshopId"></param>
/// <param name="l"></param>
/// <returns> لیستی از تعداد و روز آن</returns>
List<RollCallsByDateViewModel> GetRollCallWorkFlowsCutByBgService(long workshopId, DateTime start, DateTime end);
IEnumerable<RollCallViewModel> GetNotSlicedRollCallsByWorkshopId(long workshopId, DateTime durationStart, DateTime durationEnd);
List<RollCallViewModel> GetRange(IEnumerable<long> rollCallIds);
List<RollCallsByDateViewModel> GetUndefinedRollCallWorkFlowsInDates(long workshopId, DateTime durationStart, DateTime durationEnd);
TimeSpan GetEmployeeRollCallTimeSpanForDuration(long employeeId, long workshopId, DateTime start, DateTime end);
EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistoryForPrint(long employeeId, long workshopId, DateTime firstRollCallToPrintStartDate, DateTime lastRollCallToPrintStartDate);
#endregion
long Flag(long employeeId, long workshopId);
/// <summary>
/// چک می کند که اگر کارگر به تازگی خروج یا ورود زده است اجازه ثبت مجدد ندهد
/// </summary>
/// <param name="employeeId"></param>
/// <param name="workshopId"></param>
/// <returns></returns>
string CheckRepeat(long employeeId, long workshopId);
RollCallViewModel GetDetails(long rollCallId);
List<RollCall> GetRangeByWorkshopIdEmployeeIdForDate(long workshopId, long employeeId,
DateTime date);
List<RollCallViewModel> GetWorkshopEmployeeRollCallsWithUndefinedForDate(long workshopId, long employeeId, DateTime georgianDateTime);
void RemoveEmployeeRollCallsWithUndefinedInDate(long workshopId, long employeeId, DateTime date);
#region Mahan
List<PersonnelCheckoutDailyRollCallViewModel> GetEmployeeRollCallsForCustomizeCheckoutTemp(IEnumerable<long> customizeCheckoutIds,
long workshopId);
Task<List<RollCall>> GetRollCallsInShiftDate(DateTime rollCallShiftDate, long employeeId, long workshopId);
Task<List<RollCall>> GetRollCallsUntilNowWithWorkshopIdEmployeeIds(long workshopId, List<long> employeeIds,
DateTime fromDate);
#endregion
Task<PagedResult<RollCallCaseHistoryTitleDto>> GetCaseHistoryTitles(long workshopId,RollCallCaseHistorySearchModel searchModel);
Task<List<RollCallCaseHistoryDetail>> GetCaseHistoryDetails(long workshopId,
string titleId, RollCallCaseHistorySearchModel searchModel);
}
}