using Ease.Core.Model; using System; using System.Collections.Generic; using System.Data; namespace HRM.BO { public class Recognition : BasicBaseObject//, IworkflowInterface { #region Constructor public Recognition() { _nominateBy = (0); _nominateDate = DateTime.MinValue; _justification = string.Empty; _isCash = false; _salaryMonth = DateTime.MinValue; _eWfStatus = EnumwfStatus.Received; _eRequestType = EnumRequestType.Recognition; } #endregion #region Public Properties #region NominateBy : ID private int _nominateBy; public int NominateBy { get { return _nominateBy; } set { _nominateBy = value; } } #endregion public Employee Employee { get; set; } //private Employee _employee; //public Employee Employee //{ // get // { // if (_employee == null && _nominateBy != null) // { // //_employee = new Employee(); // _employee = Employee.Get(_nominateBy); // } // return _employee; // } // set // { // _employee = value; // } //} #region NominateDate : Datetime private DateTime _nominateDate; public DateTime NominateDate { get { return _nominateDate; } set { _nominateDate = value; } } #endregion #region Justification : string private string _justification; public string Justification { get { return _justification; } set { _justification = value; } } #endregion #region IsCash : bool private bool _isCash; public bool IsCash { get { return _isCash; } set { _isCash = value; } } #endregion #region SalaryMonth : DateTime private DateTime _salaryMonth; public DateTime SalaryMonth { get { return _salaryMonth; } set { _salaryMonth = value; } } #endregion #region WfStatus : enumwfStatus private EnumwfStatus _eWfStatus; public EnumwfStatus WfStatus { get { return _eWfStatus; } set { _eWfStatus = value; } } #endregion #region RequestType: EnumRequestType private EnumRequestType _eRequestType; public EnumRequestType RequestType { get { return _eRequestType; } set { _eRequestType = value; } } #endregion public List<RecognitionDetail> RecognitionDetails { get; set; } //#region RecognitionDetail //private List<RecognitionDetail> _recognitionDetails; //public List<RecognitionDetail> RecognitionDetails //{ // get // { // if (this.int != null && _recognitionDetails == null) // { // _recognitionDetails = Recognition.Service.GetRecognitionDetails(this.ID); // } // return _recognitionDetails; // } // set { _recognitionDetails = value; } //} //#endregion //#region Service Factory //internal static IRecognitionService Service //{ // get { return Services.Factory.CreateService<IRecognitionService>(typeof(IRecognitionService)); } //} //#endregion #endregion //#region IworkflowInterface Members ////this property is used for work flow //public int GetStatusbyWf(enumwfStatus wfstatus) //{ // return (int)this.WfStatus; //} //public string WFDesciption() //{ // return this.ObjectDescription; //} //public string ObjectDescription //{ // get // { // string empName = string.Empty; // string tableBody = string.Empty; // string str = string.Empty; // int count = 1; // List<RecognitionDetail> recognitionDetails = this.RecognitionDetails; // List<Employee> employee = Employee.Get(); // int gradeID = employee.Where(e => e.ID.Integer == this.NominateBy.Integer).Select(e => e.GradeID).FirstOrDefault().Integer; // recognitionDetails.ForEach(r => empName = empName + (employee.Where(e => e.ID.Integer == r.EmployeeID.Integer).Select(e => e.Name).FirstOrDefault()) + ", "); // recognitionDetails.ForEach(r => tableBody = tableBody + "<tr>" + "<td align='left' style='border:0.5px solid;'>" + count++ + "</td>" + "<td align='left' style='border:0.5px solid;'>" + employee.Where(e => e.ID.Integer == r.EmployeeID.Integer).Select(e => e.Name).FirstOrDefault() + "</td>" + "<td align='right' style='border:0.5px solid;'>" + r.Amount.ToString("#,###") + "</td>" + "</tr>"); // string tableNominatedEmp = "<table style='border:1px solid; border-collapse: collapse;'>" + // "<thead style='background-color: #ffb113;'>" + // "<tr>" + // "<th style='border:0.5px solid;'>SI</th>" + // "<th style='border:0.5px solid;'>Nominated Employee</th>" + // "<th style='border:0.5px solid;'>Amount</th>" + // "</tr>" + // "</thead>" + // "<tbody>" + // tableBody + // "<tr style='background-color: #ffb113;'>" + // "<td></td><td>Grand Total</td><td align='right'>" + recognitionDetails.Sum(r => r.Amount).ToString("#,###") + "</td>" + // "</tr>" + // "</tbody>" + // "</table><br/><br/>"; // if (this.WfStatus == enumwfStatus.Passed && gradeID != 15 || gradeID != 18 || gradeID != 19 || gradeID != 20 || gradeID != 23) // str = " " + this.Employee.Name + " has nominated the following persons for YES Tier 1 recognition.<br/><br/>" + tableNominatedEmp; // else // str = " " + "Your YES Tier 1 recognition for the following persons has been approved.<br/><br/>" + tableNominatedEmp; // return str; // } //} ////this property is used for work flow //public int SetupID //{ // get // { // return (3); // } //} ////this property is used for work flow //public int ObjectID //{ // get { return this.ID; } //} //public List<PendingJobDetail> GetDetails() //{ // List<PendingJobDetail> opJobsDetail = new List<PendingJobDetail>(); // opJobsDetail.Add(new PendingJobDetail() { Type = "Applier:", Value = this.Employee.Name }); // opJobsDetail.Add(new PendingJobDetail() { Type = "Salary Month:", Value = this.SalaryMonth.ToString("MMM yyyy") }); // opJobsDetail.Add(new PendingJobDetail() { Type = "Justification:", Value = this.Justification }); // opJobsDetail.Add(new PendingJobDetail() { Type = "Cash :", Value = this.IsCash ? "Yes" : "No" }); // opJobsDetail.Add(new PendingJobDetail() { Type = "Nomination Date :", Value = this.NominateDate.ToString("dd MMM yyyy") }); // // add more items as per need // return opJobsDetail; //} //#endregion //#region Public Methods //public static Recognition Get(int iD) //{ // return Recognition.Service.Get(iD); //} //public static List<Recognition> Get() //{ // return Recognition.Service.Get(); //} //public int Save() //{ // this.SetAuditTrailProperties(); // return Recognition.Service.Save(this); //} //public void Delete(int iD) //{ // Recognition.Service.Delete(iD); //} //public static List<RecognitionDetail> GetRecognitionDetails(int recognitionID) //{ // return Recognition.Service.GetRecognitionDetails(recognitionID); //} //public static List<RecognitionDetail> GetHRRequetByWFStatus(enumwfStatus enumwfStatus, DateTime fromDate, DateTime toDate, bool p) //{ // return Recognition.Service.GetRecognitionDetails(enumwfStatus, fromDate, toDate, p); //} //public static void UpdatePaidDate(List<RecognitionDetail> request, List<RecognitionDetail> Uncheckedrequest) //{ // Recognition.Service.UpdatePaidDate(request, Uncheckedrequest); //} //#endregion } public class RecognitionDetail : BasicBaseObject { #region Constructor public RecognitionDetail() { _recognitionID = (0); _employeeID = (0); _amount = 0.0; _salaryMonth = DateTime.MinValue; _paidDate = DateTime.MinValue; } #endregion #region Properties #region RecognitionID : ID private int _recognitionID; public int RecognitionID { get { return _recognitionID; } set { _recognitionID = value; } } #endregion #region EmployeeID : ID private int _employeeID; public int EmployeeID { get { return _employeeID; } set { _employeeID = value; } } #endregion #region Amount : double private double _amount; public double Amount { get { return _amount; } set { _amount = value; } } #endregion #region SalaryMonth : DateTime private DateTime _salaryMonth; public DateTime SalaryMonth { get { return _salaryMonth; } set { _salaryMonth = value; } } #endregion #region PaidDate : DateTime private DateTime _paidDate; public DateTime PaidDate { get { return _paidDate; } set { _paidDate = value; } } #endregion #endregion public DateTime RequestDate { get; set; } } public interface IRecognitionService { Recognition Get(int iD); List<Recognition> Get(); int Save(Recognition recognition); void Delete(int iD); List<RecognitionDetail> GetRecognitionDetails(int recognitionID); List<RecognitionDetail> GetRecognitionDetails(EnumwfStatus enumwfStatus, DateTime fromDate, DateTime toDate, bool p); void UpdatePaidDate(List<RecognitionDetail> request, List<RecognitionDetail> Uncheckedrequest); } }