192 lines
7.6 KiB
C#
192 lines
7.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using _0_Framework.Application;
|
|
using CompanyManagment.App.Contracts.Workshop;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
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>
|
|
Task<OperationResult> RecalculateValues(long workshopId, List<ReCalculateRollCallValues> command);
|
|
|
|
Task<PagedResult<RollCallCaseHistoryTitleDto>> GetCaseHistoryTitles(long workshopId,RollCallCaseHistorySearchModel searchModel);
|
|
Task<List<RollCallCaseHistoryDetail>> GetCaseHistoryDetails(long workshopId, string titleId,
|
|
RollCallCaseHistorySearchModel searchModel);
|
|
|
|
Task<RollCallCaseHistoryExcelDto> DownloadCaseHistoryExcel(long workshopId, string titleId,
|
|
RollCallCaseHistorySearchModel searchModel);
|
|
}
|
|
|
|
public class RollCallCaseHistoryExcelDto
|
|
{
|
|
public byte[] Bytes { get; set; }
|
|
public string FileName { get; set; }
|
|
public string MimeType { get; set; }
|
|
}
|
|
|
|
public class RollCallCaseHistoryDetail
|
|
{
|
|
public string EmployeeFullName { get; set; }
|
|
public string PersonnelCode { get; set; }
|
|
public TimeSpan TotalWorkingTime { get; set; }
|
|
public List<RollCallCaseHistoryDetailRecord> Records { get; set; }
|
|
public RollCallRecordStatus Status { get; set; }
|
|
public long EmployeeId { get; set; }
|
|
}
|
|
|
|
public enum RollCallRecordStatus
|
|
{
|
|
Worked = 0,
|
|
Absent = 1,
|
|
Leaved = 2
|
|
}
|
|
|
|
public class RollCallCaseHistoryDetailRecord
|
|
{
|
|
public TimeSpan EntryTimeDifference { get; set; }
|
|
public string StartTime { get; set; }
|
|
public string EndTime { get; set; }
|
|
public TimeSpan ExitTimeDifference { get; set; }
|
|
|
|
}
|
|
|
|
public class RollCallCaseHistorySearchModel:PaginationRequest
|
|
{
|
|
public string StartDate { get; set; }
|
|
public string EndDate { get; set; }
|
|
public string OneDayDate { get; set; }
|
|
public long? EmployeeId { get; set; }
|
|
}
|
|
|
|
public class RollCallCaseHistoryTitleDto
|
|
{
|
|
public string Id { get; set; }
|
|
public string Title { get; set; }
|
|
}
|
|
|
|
public class ReCalculateRollCallValues
|
|
{
|
|
public long EmployeeId { get; set; }
|
|
public string FromDate { get; set; }
|
|
}
|
|
}
|