using Ease.Core;
using Ease.Core.DataAccess;
using Org.BouncyCastle.Asn1.Cms;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HRM.BO
{
public class ShortLeave : BasicBaseObject
{
#region Constructor
public ShortLeave()
{
}
#endregion
#region Properties
public string TelephoneNo { get; set; }
public string ALTEMPID { get; set; }
public DateTime EntryDate { get; set; }
public double TotalHour { get; set; } = 0;
public TimeSpan DepartureTime { get; set; }
public int? DepartureEntryByID { get; set; }
public TimeSpan? ReturnTime { get; set; }
public int? ReturnEntryByID { get; set; }
public TimeSpan? ActualInTime { get; set; }
public TimeSpan? ActualOutTime { get; set; }
public TimeSpan? ExpectedReturnTime { get; set; }
public EnumGatePassStatus GatePassStatus { get; set; }
public int LineManagerID { get; set; }
public int? ApprovedBy { get; set; }
public DateTime? ApprovedDate { get; set; }
public Employee Employee { get; set; }
public int EmployeeID { get; set; }
public int PayrollTypeID { get; set; }
public string Remarks { get; set; }
public string PlaceOfVisit { get; set; }
public string PurposeOfVisit { get; set; }
///
/// this property is used for work flow, it's a constant value
///
public int SetupID
{
get
{
if (this.GatePassStatus != EnumGatePassStatus.Rejected)
{
return 1;
}
else return 2;
}
}
#endregion
}
#region IShort Service
public interface IShortLeaveService
{
ShortLeave Get(int id);
ShortLeave GetByDate(int empid, DateTime date);
//List Get(int empid, int payrollTypeID, int status, DateTime fromDate, DateTime toDate);
//List Get(EnumStatus status, string code, string name, int payrollTypeID);
//List Get(EnumStatus status, int payrollTypeID);
//List getEmpApplicableShortLeave(int employeeid);
DataTable Get(int empid, int payrollTypeID, EnumGatePassStatus status, DateTime fromDate, DateTime toDate);
DataTable GetAppliedSortLeave(int lmId, EnumGatePassStatus status);
DataTable GetApprovedShortLeave(int lmId, EnumGatePassStatus status, DateTime fromDate, DateTime toDate);
int Save(ShortLeave oShortLeave);
void Delete(int id);
void ApproveOrRejectShortLeave(int shortLeaveid, EnumGatePassStatus status, int approver);
void ApproveMultipleShortLeave(string sID, EnumGatePassStatus status, int approver);
DataTable getGatemanShortLeave(EnumGatePassStatus status, DateTime fromDate, DateTime toDate);
void UpdateInAndOutTime(ShortLeave oShortleave, Employee oEmp);
//bool IsAttachmentAplicable(ShortLeave ShortLeave, decimal totalDays);
}
#endregion
}