using System;
using System.Collections.Generic;
using System.Data;


namespace HRM.BO
{
    #region EmployeeHistory
    public class EmployeeHistory : AuditTrailBase
    {

        #region Constructor

        public EmployeeHistory()
        {
            EmployeeID = 0;
            EffectDate = DateTime.MinValue;
            EndDate = DateTime.MinValue;
            EmployeeStatus = EnumEmployeeStatus.Live;
            Remarks = string.Empty;
        }

        #endregion

        #region Properties

        public int EmployeeID { get; set; }
        public DateTime EffectDate { get; set; }
        public DateTime EndDate { get; set; }
        public EnumEmployeeStatus EmployeeStatus { get; set; }
        public string Remarks { get; set; }

        //#region Service Factory IEmployeeHistoryService : IEmployeeHistoryService

        //internal static IEmployeeHistoryService Service
        //{
        //    get { return Services.Factory.CreateService<IEmployeeHistoryService>(typeof(IEmployeeHistoryService)); }
        //}

        //#endregion

        #endregion
    }
    #endregion

    #region IEmployeeHistory Service

    public interface IEmployeeHistoryService
    {
        EmployeeHistory Get(int id);
        EmployeeHistory GetByEmpID(int nEmpID);
        EmployeeHistory GetEmpLastHistory(int nEmpID);
        List<EmployeeHistory> Get();
        int Save(EmployeeHistory item, bool disAfterCurrmonth, bool continuePF);
    //    void SaveConfirm(EmployeeHistory item,bool confirmEmpPF,EnumEmployeeOtherStatus IsConfirm);
        int DoContinue(EmployeeHistory item,bool continuePF);
        void Delete(int id);
        void DeleteByEmpID(int nEmpID);
        DataSet GetEmpHistory(DateTime dEffectDate, DateTime dEffectDate2, int payrollTypeID);
        DateTime GetDate(int nEmpID, EnumEmployeeStatus ParamID);
       
        
    }

    #endregion
}