Files
Backend-Api/Company.Domain/RollCallAgg/IRollCallRepository.cs
2024-12-22 18:50:35 +03:30

77 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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<RollCallsByDateViewModel> GetWorkshopAbsentHistory(long workshopId, DateTime startSearch,
DateTime endSearch);
List<RollCallViewModel> GetEmployeeRollCallsHistoryAllByDate(long workshopId, long employeeId, DateTime start, DateTime end);
void RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, DateTime date);
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
List<CheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(long employeeId, long workshopId, DateTime startDate, DateTime endDate);
List<RollCallViewModel> GetEmployeeRollCallsHistoryAll(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);
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);
/// <summary>
/// تمامی حضور غیاب های کات شده توسط بک گراند سرویس را برمیگرداند
/// </summary>
/// <param name="accId"></param>
/// <param name="workshopId"></param>
/// <returns></returns>
int GetCountCutRollCallByBgService(long accId, long workshopId);
IEnumerable<RollCallViewModel> GetNotSlicedRollCallsByWorkshopId(long workshopId, DateTime durationStart, DateTime durationEnd);
RollCallViewModel GetDetails(long rollCallId);
TimeSpan GetEmployeeRollCallTimeSpanForDuration(long employeeId, long workshopId, DateTime start, DateTime end);
#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);
}
}