153 lines
5.3 KiB
C#
153 lines
5.3 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.Contract;
|
||
|
||
namespace CompanyManagment.App.Contracts.Leave;
|
||
|
||
public interface ILeaveApplication
|
||
{
|
||
OperationResult Create(CreateLeave command);
|
||
OperationResult Edit(EditLeave command);
|
||
EditLeave GetDetails(long id);
|
||
List<LeaveViewModel> search(LeaveSearchModel searchModel);
|
||
LeavePrintViewModel PrintOne(long id);
|
||
List<LeavePrintViewModel> PrintAll(List<long> id);
|
||
GroupLeavePrintViewModel PrintPersonnelLeaveList(List<long> id);
|
||
|
||
OperationResult RemoveLeave(long id);
|
||
Task<OperationResult> RemoveLeaveAsync(long id);
|
||
LeaveViewModel LeavOnChekout(DateTime starContract, DateTime endContract, long employeeId, long workshopId);
|
||
List<LeaveMainViewModel> searchClient(LeaveSearchModel search);
|
||
|
||
#region Vafa
|
||
|
||
List<LeaveViewModel> LastLeaveMain(LeaveSearchModel searchModel);
|
||
|
||
#endregion
|
||
bool CheckIfValidToEdit(long id);
|
||
OperationResult<bool> HasDailyLeave(long workshopId, long employeeId, string dateFa);
|
||
|
||
#region Pooya
|
||
OperationResult ValidateNewLeaveWithExistingRollCalls(long workshopId, long employeeId, string paidLeaveType, DateTime start, DateTime end);
|
||
|
||
TimeSpan GetEmployeeLeaveTimeSpanInDates(long workshopId, long employeeId, string startFa, string endFa,
|
||
string type);
|
||
|
||
#endregion
|
||
|
||
|
||
/// <summary>
|
||
/// دریافت لیست مرخصی ها در کلاینت
|
||
/// Api
|
||
/// </summary>
|
||
/// <param name="searchModel"></param>
|
||
/// <returns></returns>
|
||
Task<PagedResult<leaveListDto>> GetList(
|
||
LeaveListSearchModel searchModel);
|
||
|
||
/// <summary>
|
||
/// دریافت لیست گروه بندی شده
|
||
/// </summary>
|
||
/// <param name="searchModel"></param>
|
||
/// <returns></returns>
|
||
Task<List<GroupLeaveListDto>> GetGroupList(LeaveListSearchModel searchModel);
|
||
|
||
/// <summary>
|
||
/// دریافت مجکوع مرخصی پرسنل
|
||
/// اگر آی دی پرسنل، سال و ماه خالی نباشد
|
||
/// </summary>
|
||
/// <param name="workshopId"></param>
|
||
/// <param name="employeeId"></param>
|
||
/// <param name="yearStr"></param>
|
||
/// <param name="monthStr"></param>
|
||
/// <param name="leaveType"></param>
|
||
/// <returns></returns>
|
||
TimeSpan SumOfEmployeeLeaveTimeSpanInDates(long workshopId, long employeeId, string yearStr, string monthStr,
|
||
LeaveType leaveType);
|
||
|
||
Task<List<LeavePrintResponseViewModel>> PrintAllAsync(List<long> ids, long workshopId);
|
||
Task<LeavePrintResponseViewModel> PrintOneAsync(long id, long workshopId);
|
||
|
||
/// <summary>
|
||
/// چک میکند که تاریخ وارد شده در شروع مرخصی تعطیل است یا خیر
|
||
/// دارای/فاقد اعتبار فیش غیررسمی را چک میکند
|
||
/// </summary>
|
||
/// <param name="startLeaveDate"></param>
|
||
/// <param name="workshopId"></param>
|
||
/// <returns></returns>
|
||
Task<OperationResult<CheckIsInvalidLeaveDto>> CheckIsInvalidLeave(string startLeaveDate, long workshopId);
|
||
|
||
/// <summary>
|
||
/// ایجاد مرخصی از ای پی آی
|
||
/// </summary>
|
||
/// <param name="command"></param>
|
||
/// <returns></returns>
|
||
Task<OperationResult> CreateLeave(CreateLeaveDto command);
|
||
|
||
/// <summary>
|
||
/// چک میکند که آیا پرسنل حضور غیاب دارای شیفت گردشی دارد یا خیر
|
||
/// اگر داشت دریافت شیف گردشی
|
||
/// </summary>
|
||
/// <param name="workshopId"></param>
|
||
/// <param name="employeeId"></param>
|
||
/// <param name="startLeaveDate"></param>
|
||
/// <returns></returns>
|
||
Task<OperationResult<RotatingShiftDto>> HasRotatingShift(long workshopId, long employeeId, string startLeaveDate);
|
||
|
||
/// <summary>
|
||
/// پرینت لیستی
|
||
/// </summary>
|
||
/// <param name="ids"></param>
|
||
/// <returns></returns>
|
||
Task<LeaveListPrintDto> ListPrint(List<long> ids);
|
||
|
||
|
||
/// <summary>
|
||
/// محاسبه مدت مرخصی ساعتی
|
||
/// </summary>
|
||
/// <param name="startHours"></param>
|
||
/// <param name="endHours"></param>
|
||
/// <returns></returns>
|
||
Task<string> GetHourlyLeaveDuration(string startHours, string endHours);
|
||
|
||
/// <summary>
|
||
/// محاسبه مدت مرخصی روزانه
|
||
/// </summary>
|
||
/// <param name="startDate"></param>
|
||
/// <param name="endDate"></param>
|
||
/// <returns></returns>
|
||
Task<string> GetDailyLeaveDuration(string startDate, string endDate);
|
||
|
||
}
|
||
|
||
public class LeavePrintResponseViewModel
|
||
{
|
||
public string FullName { get; set; }
|
||
public string NationalCode { get; set; }
|
||
public string WorkshopName { get; set; }
|
||
public List<string> EmployerNames { get; set; }
|
||
public string PaidLeaveType { get; set; }
|
||
public string ContractNo { get; set; }
|
||
public LeavePrintHourlyResponseViewModel HourlyLeave { get; set; }
|
||
public LeavePrintDailyResponseViewModel DailyLeave { get; set; }
|
||
|
||
}
|
||
|
||
public class LeavePrintDailyResponseViewModel
|
||
{
|
||
public string StartLeave { get; set; }
|
||
public string EndLeave { get; set; }
|
||
public string TotalDay { get; set; }
|
||
}
|
||
|
||
public class LeavePrintHourlyResponseViewModel
|
||
{
|
||
public string LeaveDate { get; set; }
|
||
public string StartHour { get; set; }
|
||
public string EndHour { get; set; }
|
||
public string TotalHour { get; set; }
|
||
} |