using System; using Ease.CoreV35.Caching; using Ease.CoreV35.Model; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; namespace Payroll.BO { #region Class EmployeeRequisition [Serializable] public class EmployeeRequisition : AuditTrailBase { #region Cache Store private static Cache _cache = new Cache(typeof(EmployeeRequisition)); #endregion #region Constructor public EmployeeRequisition() { DepartmentID = null; RequisitionDate = DateTime.Now; Position = string.Empty; GradeID = null; MaxEmployee = 0; BasicPay = string.Empty; JobDescription = string.Empty; Justification = string.Empty; Academic = string.Empty; Technical = string.Empty; Age = string.Empty; Experience = string.Empty; Gender = EnumGender.Male; Areas = string.Empty; OtherRequirements = string.Empty; Status = EnumEmpReqStatus.RM; IsCompleted = false; IsHeadCount = true; _requisitionUsers = null; } #endregion #region Properties #region Property DepartmentID : ID private ID _departmentID; public ID DepartmentID { get { return _departmentID; } set { _departmentID = value; } } #endregion #region Property RequisitionDate : DateTime private DateTime _requisitionDate; public DateTime RequisitionDate { get { return _requisitionDate; } set { _requisitionDate = value; } } #endregion #region Property Position : string private string _position; public string Position { get { return _position; } set { _position = value; } } #endregion #region Property GradeID : ID private ID _gradeID; public ID GradeID { get { return _gradeID; } set { _gradeID = value; } } #endregion #region Property MaxEmployee : Decimal private Decimal _maxEmployee; public Decimal MaxEmployee { get { return _maxEmployee; } set { _maxEmployee = value; } } #endregion #region Property BasicPay : string private string _basicPay; public string BasicPay { get { return _basicPay; } set { _basicPay = value; } } #endregion #region Property JobDescription : string private string _jobDescription; public string JobDescription { get { return _jobDescription; } set { _jobDescription = value; } } #endregion #region Property Justification : string private string _justification; public string Justification { get { return _justification; } set { _justification = value; } } #endregion #region Property Academic : string private string _academic; public string Academic { get { return _academic; } set { _academic = value; } } #endregion #region Property Technical : string private string _technical; public string Technical { get { return _technical; } set { _technical = value; } } #endregion #region Property Age : string private string _age; public string Age { get { return _age; } set { _age = value; } } #endregion #region Property Experience : string private string _experience; public string Experience { get { return _experience; } set { _experience = value; } } #endregion #region Property Gender : EnumGender private EnumGender _gender; public EnumGender Gender { get { return _gender; } set { _gender = value; } } #endregion #region Property Areas : string private string _areas; public string Areas { get { return _areas; } set { _areas = value; } } #endregion #region Property OtherRequirements : string private string _otherRequirements; public string OtherRequirements { get { return _otherRequirements; } set { _otherRequirements = value; } } #endregion #region Property Status : EnumEmpReqStatus private EnumEmpReqStatus _status; public EnumEmpReqStatus Status { get { return _status; } set { _status = value; } } #endregion #region Property IsCompleted : bool private bool _isCompleted; public bool IsCompleted { get { return _isCompleted; } set { _isCompleted = value; } } #endregion #region Property IsHeadCount : bool private bool _isHeadCount; public bool IsHeadCount { get { return _isHeadCount; } set { _isHeadCount = value; } } #endregion #region Property RequisitionUsers : ObjectsTemplate private ObjectsTemplate _requisitionUsers; public ObjectsTemplate RequisitionUsers { get { if (_requisitionUsers == null && !this.ID.IsUnassigned && this.ID.Integer > 0) { _requisitionUsers = Service.GetRequisitionUserByEmpRequisitionID(this.ID.Integer); } return _requisitionUsers; } set { _requisitionUsers = value; } } #endregion #endregion #region Functions public static EmployeeRequisition Get(int empReqID) { EmployeeRequisition oEmployeeRequisition; #region Cache Header oEmployeeRequisition = (EmployeeRequisition)_cache["Get", empReqID]; if (oEmployeeRequisition != null) return oEmployeeRequisition; #endregion oEmployeeRequisition = Service.Get(empReqID); #region Cache Footer _cache.Add(oEmployeeRequisition, "Get", empReqID); #endregion return oEmployeeRequisition; } public void RequisitionDeclinedByHR() { Service.RequisitionDeclinedByHR(this); } public static ObjectsTemplate Get() { ObjectsTemplate oEmployeeRequisitions = null; #region Cache Header oEmployeeRequisitions = (ObjectsTemplate)_cache["Get"]; if (oEmployeeRequisitions != null) return oEmployeeRequisitions; #endregion oEmployeeRequisitions = Service.Get(); #region Cache Footer _cache.Add(oEmployeeRequisitions, "Get"); #endregion return oEmployeeRequisitions; } public static ObjectsTemplate GetByDepartment(int departmentID) { ObjectsTemplate oEmployeeRequisitions = null; #region Cache Header oEmployeeRequisitions = (ObjectsTemplate)_cache["GetByDepartment", departmentID]; if (oEmployeeRequisitions != null) return oEmployeeRequisitions; #endregion oEmployeeRequisitions = Service.GetByDepartment(departmentID); #region Cache Footer _cache.Add(oEmployeeRequisitions, "GetByDepartment", departmentID); #endregion return oEmployeeRequisitions; } public static DataTable GetEmployeeRequisitionsByDepartmentID(ID departmentID,EnumEmpReqStatus reqStatus) { DataTable oDesignationDt = null; oDesignationDt = Service.GetEmployeeRequisitionsByDepartmentID(departmentID,reqStatus); return oDesignationDt; } public static DataTable GetEmployeeRequisitionsForCEO() { DataTable oDesignationDt = null; oDesignationDt = Service.GetEmployeeRequisitionsForCEO(); return oDesignationDt; } public void RequisitionDeclinedByCEO() { Service.RequisitionDeclinedByCEO(this); } public ID Save() { this.SetAuditTrailProperties(); return Service.Save(this); } public void ChangeStatus(int empID, EnumEmpReqStatus enumEmpReqStatus) { Service.ChangeStatus(this, empID, enumEmpReqStatus); } public void Delete() { Service.Delete(this.ID.Integer); } public static DataTable GetEmployeeRequisitionsForHR() { DataTable oDesignationDt = null; oDesignationDt = Service.GetEmployeeRequisitionsForHR(); return oDesignationDt; } #endregion #region Service Factory internal static IEmployeeRequisitionService Service { get { return Services.Factory.CreateService(typeof(IEmployeeRequisitionService)); } } #endregion } #endregion #region Child Classes [Serializable] public class RequisitionUser : BasicBaseObject { #region Cache Store private static Cache _cache = new Cache(typeof(RequisitionUser)); #endregion #region Constructor public RequisitionUser() { EmpRequisitionID = null; EmployeeID = null; Status = EnumEmpReqStatus.RM; ChangeDate = DateTime.Now; ChangeString = string.Empty; Remarks = string.Empty; } #endregion #region Properties #region Property EmpRequisitionID :ID private ID _empRequisitionID; public ID EmpRequisitionID { get { return _empRequisitionID; } set { _empRequisitionID = value; } } #endregion #region Property EmployeeID : ID private ID _employeeID; public ID EmployeeID { get { return _employeeID; } set { _employeeID = value; } } #endregion #region Property Status : EnumEmpReqStatus private EnumEmpReqStatus _status; public EnumEmpReqStatus Status { get { return _status; } set { _status = value; } } #endregion #region Property ChangeDate : dateTime private DateTime _changeDate; public DateTime ChangeDate { get { return _changeDate; } set { _changeDate = value; } } #endregion #region Property ChangeString : string private string _changeString; public string ChangeString { get { return _changeString; } set { _changeString = value; } } #endregion #region Property Remarks : string private string _remarks; public string Remarks { get { return _remarks; } set { _remarks = value; } } #endregion #endregion } #endregion #region IEmployeeRequisitionService Service public interface IEmployeeRequisitionService { EmployeeRequisition Get(int empReqID); ObjectsTemplate Get(); ObjectsTemplate GetByDepartment(int departmentID); ID Save(EmployeeRequisition oEmployeeRequisition); void Delete(int ID); ObjectsTemplate GetRequisitionUserByEmpRequisitionID(int reqID); void ChangeStatus(EmployeeRequisition employeeRequisition, int empID, EnumEmpReqStatus enumEmpReqStatus); DataTable GetEmployeeRequisitionsByDepartmentID(ID departmentID, EnumEmpReqStatus reqStatus); DataTable GetEmployeeRequisitionsForCEO(); DataTable GetEmployeeRequisitionsForHR(); void RequisitionDeclinedByCEO(EmployeeRequisition employeeRequisition); void RequisitionDeclinedByHR(EmployeeRequisition employeeRequisition); } #endregion }