135 lines
5.8 KiB
C#
135 lines
5.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using _0_Framework.Application;
|
|
|
|
namespace CompanyManagment.App.Contracts.RollCall
|
|
{
|
|
public interface IRollCallApplication
|
|
{
|
|
OperationResult Create(CreateRollCall command);
|
|
OperationResult Edit(long id);
|
|
|
|
EditRollCall GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);
|
|
|
|
|
|
|
|
EditRollCall GetById(long id);
|
|
|
|
/// <summary>
|
|
/// برای دریافت سوابق حضور و غیاب پرسنل در بازه خاص (کمتر از یک ماه) برای پرینت
|
|
/// </summary>
|
|
/// <param name="firstRollCallDateFa">تاریخ اولین رکورد</param>
|
|
/// <param name="lastRollCallDateFa">تاریخ آخرین رکرود</param>
|
|
/// <returns></returns>
|
|
EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistoryForPrint(long employeeId, long workshopId, string firstRollCallDateFa, string lastRollCallDateFa);
|
|
|
|
|
|
long Flag(long employeeId, long workshopId);
|
|
/// <summary>
|
|
/// چک می کند که اگر کارگر به تازگی خروج یا ورود زده است اجازه ثبت مجدد ندهد
|
|
/// </summary>
|
|
/// <param name="employeeId"></param>
|
|
/// <param name="workshopId"></param>
|
|
/// <returns></returns>
|
|
string CheckRepeat(long employeeId, long workshopId);
|
|
|
|
|
|
#region Pooya
|
|
List<OverlappedRollCallWithLeave> GetOverlappedRollCallsWithLeaveInDates(long workshopId, DateTime start,
|
|
DateTime end);
|
|
|
|
List<RollCallsByDateViewModel> GetUndefinedRollCallWorkFlowsService(long workshopId, DateTime durationStart, DateTime durationEnd);
|
|
|
|
|
|
|
|
OperationResult RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, string dateFa);
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// برای محسابه ساعت کارکرد هنگام جستجوی پرسنل در بازه زمانی در صفحه سوابق
|
|
/// </summary>
|
|
TimeSpan GetEmployeeRollCallTimeSpanForDuration(long employeeId, long workshopId, string startFa, string endFa);
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// برای صدور فیش حقوقی
|
|
/// </summary>
|
|
List<CheckoutDailyRollCallViewModel> GetActiveEmployeeRollCallsForDuration(long employeeId, long workshopId,
|
|
string startDate, string endDate);
|
|
|
|
|
|
/// <summary>
|
|
/// برای دریافت سوابق حضور غیاب پرسنل انتخاب شده بر اساس ماه
|
|
/// </summary>
|
|
/// <param name="employeeId">پرسنل مورد نظر</param>
|
|
/// <param name="workshopId">کارگاه مورد نظر</param>
|
|
/// <param name="startDateTime">شروع بازه جستجو، می تواند خالی باشد</param>
|
|
/// <param name="endDateTime">پایان بازه جستجو، می تواند خالی باشد</param>
|
|
/// <param name="exactDateTime">جستجو بر اساس مقطع زمانی، میتواند خالی باشد</param>
|
|
/// <param name="dateIndex">با اسکرول کاربر این مقدار افزایش پیدا می کند</param>
|
|
EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistory(long employeeId, long workshopId,
|
|
string startDateTime, string endDateTime, string exactDateTime, string dateIndex);
|
|
|
|
|
|
/// <summary>
|
|
/// گزارش آنلاین حضور غیاب
|
|
/// </summary>
|
|
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
|
|
|
|
/// <summary>
|
|
/// گزارش آفلاین حضور غیاب کارگاه
|
|
/// </summary>
|
|
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
|
|
|
|
/// <summary>
|
|
/// دریافت لیست حضور غیاب کارمند در تاریخ مشخص
|
|
/// </summary>
|
|
List<RollCallViewModel> GetWorkshopEmployeeRollCallsForDate(long workshopId, long employeeId, string date);
|
|
|
|
/// <summary>
|
|
/// اضافه کردن یا ویرایش دستی حضور غیاب
|
|
/// </summary>
|
|
OperationResult ManualEdit(CreateOrEditEmployeeRollCall command);
|
|
|
|
OperationResult ManualEditForUndefined(CreateOrEditEmployeeRollCall command);
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// این متد تمام حضور غیاب های کات شده توسط بک گراند سرویس را به صورت تعداد روزانه برمیگرداند
|
|
/// </summary>
|
|
/// <param name="workshopId"></param>
|
|
/// <returns> لیستی از تعداد و روز آن</returns>
|
|
List<RollCallsByDateViewModel> GetRollCallWorkFlowsCutByBgService(long workshopId, DateTime start, DateTime end);
|
|
|
|
IEnumerable<RollCallViewModel> GetNotSlicedRollCallsByWorkshopId(long workshopId, DateTime durationStart, DateTime durationEnd);
|
|
RollCallViewModel GetDetails(long rollCallId);
|
|
#endregion
|
|
|
|
List<RollCallsByDateViewModel> GetWorkshopAbsentHistory(long workshopId, DateTime startSearch,
|
|
DateTime endSearch);
|
|
OperationResult SetModifyTypeToNone(long rollCallId);
|
|
|
|
OperationResult SetModifyTypeToEditByEmployerForRollCallsInDate(long workshopId, long employeeId, string absenceDate);
|
|
List<RollCallViewModel> GetWorkshopEmployeeRollCallsWithUndefinedForDate(long workshopId, long employeeId, string date);
|
|
|
|
/// <summary>
|
|
/// محاسبه مجدد مقادیر حضور غیاب
|
|
/// </summary>
|
|
/// <param name="workshopId"></param>
|
|
/// <param name="command"></param>
|
|
/// <returns></returns>
|
|
OperationResult RecalculateValues(long workshopId, List<ReCalculateRollCallValues> command);
|
|
}
|
|
public class ReCalculateRollCallValues
|
|
{
|
|
public long EmployeeId { get; set; }
|
|
public string FromDate { get; set; }
|
|
}
|
|
}
|