using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HRM.BO
{
    #region SettlmentAdvice
    public class SettlmentAdvice : BasicBaseObject
    {
        #region Constructor

        public SettlmentAdvice()
        {
            TranDate = DateTime.MinValue;
            PaymentDate = DateTime.MinValue;
            SettlmentAdviceStatus = EnumSettlmentAdviceStatus.Prepared;
        }

        #endregion

        public DateTime TranDate { get; set; }
        public DateTime PaymentDate { get; set; }
        public EnumSettlmentAdviceStatus SettlmentAdviceStatus { get; set; }

        public List<SettlmentAdviceItem> Items { get; set; }
        public class SettlmentAdviceItem 
        {
            public int SettlmentAdviceID { get; set; }
            public int EmpResignID { get; set; }
        }

    }
    #endregion

    #region ISettlementClearance Service

    public interface ISettlementAdvanceService
    {
        List<SettlmentAdvice> Get();
        SettlmentAdvice Get(int id);
        List<SettlmentAdvice> GetByTranDate(DateTime tranDate);
        List<SettlmentAdvice> GetByPaymentDate(DateTime paymentDate);
        List<SettlmentAdvice> GetByStatus(EnumSettlmentAdviceStatus saStatus);
        List<SettlmentAdvice> Get(DateTime fromTranDate, DateTime toTranDate);
        List<SettlmentAdvice> GetByPaymentDateRange(DateTime fromPaymentDate, DateTime toPaymentDate);
        int Save(SettlmentAdvice item);
        void Delete(int id);
    }

    #endregion
}