487 lines
15 KiB
C#
487 lines
15 KiB
C#
using Ease.Core.Model;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
|
|
namespace HRM.BO
|
|
{
|
|
public class Objective : BasicBaseObject
|
|
{
|
|
#region Constructor
|
|
|
|
public Objective()
|
|
{
|
|
this.Description = string.Empty;
|
|
this.Title = string.Empty;
|
|
this.Activities = string.Empty;
|
|
this.MeasuresOfSuccess = string.Empty;
|
|
this.Weightages = 0.0;
|
|
this.ObjectiveDate = DateTime.MinValue;
|
|
this.RagingDate = DateTime.MinValue;
|
|
this.YEEmployeeComments = string.Empty;
|
|
this.MYEmployeeComments = string.Empty;
|
|
this.YELMComments = string.Empty;
|
|
this.MYLMComments = string.Empty;
|
|
this.LMRatingID = 0;
|
|
MYLMAssessRating = EnumAssessment.None;
|
|
MYAssessRating = EnumAssessment.None;
|
|
YEStatus = EnumObjectiveStatus.No_Change;
|
|
MYStatus = EnumObjectiveStatus.No_Change;
|
|
this.IsOldObjective = false;
|
|
this.PriorityPercent = 0;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Properties
|
|
|
|
public int ObjectiveSetID { get; set; }
|
|
|
|
public int GroupID { get; set; }
|
|
|
|
public string Tier { get; set; }
|
|
|
|
public int PMPYearID { get; set; }
|
|
|
|
public string Title { get; set; }
|
|
|
|
public string Description { get; set; }
|
|
|
|
public string Activities { get; set; }
|
|
|
|
public string MeasuresOfSuccess { get; set; } // target
|
|
|
|
public string MeasuresOfSuccess2 { get; set; } // target
|
|
|
|
public double Weightages { get; set; } // percentage
|
|
public int EmployeeID { get; set; }
|
|
|
|
public int EmployeeNodeID { get; set; }
|
|
|
|
public DateTime ObjectiveDate { get; set; }
|
|
|
|
public int LMID { get; set; }
|
|
|
|
public int LMNodeID { get; set; }
|
|
|
|
public int LMRatingID { get; set; }
|
|
|
|
public double YEEmpMark { get; set; }
|
|
|
|
public double YELMMark { get; set; }
|
|
public double? YEAssessRating { get; set; }
|
|
|
|
public double? YELMAssessRating { get; set; }
|
|
|
|
public DateTime YEEmpMarkDate { get; set; }
|
|
|
|
public DateTime YELMMarkDate { get; set; }
|
|
|
|
public DateTime RagingDate { get; set; }
|
|
|
|
public string MYEmployeeComments { get; set; }
|
|
|
|
public string YEEmployeeComments { get; set; }
|
|
|
|
public string MYLMComments { get; set; }
|
|
|
|
public string YELMComments { get; set; }
|
|
|
|
public EnumAssessment MYAssessRating { get; set; }
|
|
|
|
public EnumAssessment MYLMAssessRating { get; set; }
|
|
|
|
public string ObjComment { get; set; }
|
|
|
|
public DateTime StartDate { get; set; }
|
|
|
|
public DateTime EndDate { get; set; }
|
|
|
|
public bool IsDraft { get; set; }
|
|
|
|
public bool IsOldObjective { get; set; }
|
|
|
|
public EnumObjectiveStatus MYStatus { get; set; }
|
|
|
|
public EnumObjectiveStatus YEStatus { get; set; }
|
|
|
|
//#region Property DevelopmentPlans : DevelopmentPlan
|
|
|
|
//private List<DevelopmentPlan> _developmentPlans;
|
|
|
|
//public List<DevelopmentPlan> DevelopmentPlans
|
|
//{
|
|
// get
|
|
// {
|
|
// if (_developmentPlans == null && !this.ID.IsUnassigned && this.ID.Integer > 0)
|
|
// {
|
|
// _developmentPlans = Service.GetDevelopmentPlans(this.ID);
|
|
|
|
// }
|
|
// return _developmentPlans;
|
|
// }
|
|
// set
|
|
// {
|
|
// _developmentPlans = value;
|
|
// }
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
//#region Property LMObjectives : LMObjective
|
|
|
|
//private List<LMObjective> _lMObjectives;
|
|
|
|
//public List<LMObjective> LMObjectives
|
|
//{
|
|
// get
|
|
// {
|
|
// if (_lMObjectives == null && !this.ID.IsUnassigned && this.ID.Integer > 0)
|
|
// {
|
|
// _lMObjectives = Service.GetLMObjectives(this.ID);
|
|
|
|
// }
|
|
// else if (_lMObjectives == null)
|
|
// {
|
|
// _lMObjectives = new List<LMObjective>();
|
|
// }
|
|
// return _lMObjectives;
|
|
// }
|
|
// set
|
|
// {
|
|
// _lMObjectives = value;
|
|
// }
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
public List<ObjectiveEmployees> ObjectiveEmployees { get; set; }
|
|
public List<LMObjective> LMObjectives { get; set; }
|
|
public List<DevelopmentPlan> DevelopmentPlans { get; set; }
|
|
|
|
//#region Property ObjectiveEmployeess : ObjectiveEmployees
|
|
|
|
//private List<ObjectiveEmployees> _objectiveEmployees;
|
|
|
|
//public List<ObjectiveEmployees> ObjectiveEmployees
|
|
//{
|
|
// get
|
|
// {
|
|
// if (_objectiveEmployees == null && !this.ID.IsUnassigned && this.ID.Integer > 0)
|
|
// {
|
|
// _objectiveEmployees = Service.GetObjectiveEmployees(this.ID);
|
|
|
|
// }
|
|
// return _objectiveEmployees;
|
|
// }
|
|
// set
|
|
// {
|
|
// _objectiveEmployees = value;
|
|
// }
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
public int ObjectiveType { get; set; }
|
|
|
|
public double PriorityPercent { get; set; }
|
|
|
|
public int KPIType { get; set; }
|
|
public int MasterKpiId { get; set; }
|
|
|
|
public double LMAchivementPercentage { get; set; }
|
|
|
|
public double EmpAchivementPercentage { get; set; }
|
|
|
|
public double EmpPARating { get; set; }
|
|
|
|
public double LMPARating { get; set; }
|
|
|
|
public string ObjSecondLMComment { get; set; }
|
|
|
|
public string MYSecondLMComment { get; set; }
|
|
|
|
public string YESecondLMComment { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region Old
|
|
//#region Function
|
|
|
|
//#region Get All
|
|
|
|
//public static List<Objective> Get()
|
|
//{
|
|
// return Objective.Service.Get();
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
//#region Get By ID
|
|
|
|
//public static Objective Get(int id)
|
|
//{
|
|
// return Objective.Service.Get(id);
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
//#region Get By Employee ID
|
|
|
|
//public static List<Objective> GetByEmployeeID(int Empid, int PMPYID, bool IsDrafted)
|
|
//{
|
|
// return Objective.Service.GetByEmployeeID(Empid, PMPYID, IsDrafted);
|
|
//}
|
|
//public static List<Objective> GetLMObjs(int Empid, int PMPYID, int nLMID)
|
|
//{
|
|
// return Objective.Service.GetLMObjs(Empid, PMPYID, nLMID);
|
|
//}
|
|
//public static List<Objective> GetByEmployeeID(string sEmpids, int PMPYID, bool IsDrafted)
|
|
//{
|
|
// return Objective.Service.GetByEmployeeID(sEmpids, PMPYID, IsDrafted);
|
|
//}
|
|
//public static List<Objective> GetByPMPYearID(int id, string InEmpSQL)
|
|
//{
|
|
// return Objective.Service.GetByPMPYearID(id, InEmpSQL);
|
|
//}
|
|
//public static List<Objective> GetByStatus(EnumPMPStatus estatus, bool IsFinalized)
|
|
//{
|
|
// return Objective.Service.GetByStatus(estatus, IsFinalized);
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
//#region Get Draft Objective
|
|
|
|
//public static List<Objective> GetObjectives(int id, int draft)
|
|
//{
|
|
// return Objective.Service.GetObjectives(id, draft);
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
//#region Get By Line Manager ID
|
|
|
|
//public static Objective GetByLMID(int id)
|
|
//{
|
|
// return Objective.Service.GetByLMID(id);
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
//#region Get Line Manager Obj
|
|
//public static Objective GetLineManager(int id)
|
|
//{
|
|
// return Objective.Service.GetLineManager(id);
|
|
//}
|
|
//#endregion
|
|
|
|
//#region Save
|
|
|
|
//public static void Update(List<Objective> objectives)
|
|
//{
|
|
|
|
// //this.SetAuditTrailProperties();
|
|
// Objective.Service.Update(objectives);
|
|
//}
|
|
//public int Save()
|
|
//{
|
|
|
|
// this.SetAuditTrailProperties();
|
|
// return Objective.Service.Save(this);
|
|
//}
|
|
//public static void Save(List<Objective> items)
|
|
//{
|
|
// foreach (Objective item in items)
|
|
// {
|
|
// item.SetAuditTrailProperties();
|
|
// }
|
|
|
|
// Objective.Service.Save(items);
|
|
//}
|
|
//public static void SaveForUpload(List<Objective> items)
|
|
//{
|
|
// foreach (Objective item in items)
|
|
// {
|
|
// item.SetAuditTrailProperties();
|
|
// }
|
|
|
|
// Objective.Service.SaveForUpload(items);
|
|
//}
|
|
//public static void SaveForSalesUpload(List<Objective> items)
|
|
//{
|
|
// foreach (Objective item in items)
|
|
// {
|
|
// item.SetAuditTrailProperties();
|
|
// }
|
|
|
|
// Objective.Service.SaveForSalesUpload(items);
|
|
//}
|
|
|
|
////public string Save2(List<PMSUpdateHistory> UpdateHistory)
|
|
////{
|
|
|
|
//// this.SetAuditTrailProperties();
|
|
//// return Objective.Service.Save2(this, UpdateHistory);
|
|
////}
|
|
|
|
//#endregion
|
|
|
|
//#region Delete
|
|
|
|
//public void Delete()
|
|
//{
|
|
// Objective.Service.Delete(this.ID);
|
|
//}
|
|
//public static void DeleteAllCompanyObj(int yearID)
|
|
//{
|
|
// Objective.Service.DeleteAllCompanyObj(yearID);
|
|
//}
|
|
//#endregion
|
|
|
|
//public static DataSet GetComObjAssignedEmpID(int PMPYearID)
|
|
//{
|
|
// DataSet oDataSet = new DataSet();
|
|
// oDataSet = Objective.Service.GetComObjAssignedEmpID(PMPYearID);
|
|
// return oDataSet;
|
|
//}
|
|
|
|
//public static DataSet GetEmpObjectiveData(int year)
|
|
//{
|
|
// DataSet oDataSet = new DataSet();
|
|
// oDataSet = Objective.Service.GetEmpObjectiveData(year);
|
|
// return oDataSet;
|
|
//}
|
|
|
|
//public static DataSet GetEmpFreezedObjectiveData()
|
|
//{
|
|
// DataSet oDataSet = new DataSet();
|
|
// oDataSet = Objective.Service.GetEmpFreezedObjectiveData();
|
|
// return oDataSet;
|
|
//}
|
|
|
|
//public bool IsValid(out string errorMessage)
|
|
//{
|
|
// errorMessage = string.Empty;
|
|
// StringBuilder sb = new StringBuilder();
|
|
// bool isValid = true;
|
|
|
|
// ValidationContext context = new ValidationContext(this);
|
|
|
|
// var result = new List<ValidationResult>();
|
|
|
|
// isValid = isValid && Validator.TryValidateObject(this, context, result, true);
|
|
|
|
// foreach (var item in result)
|
|
// {
|
|
// sb.Append(item.ErrorMessage + Environment.NewLine);
|
|
// }
|
|
// double availablePercent;
|
|
|
|
// if(this.EmployeeID == null || this.EmployeeID.IsUnassigned)
|
|
// {
|
|
// isValid = isValid && false;
|
|
// sb.Append("Please Select an Employee." + Environment.NewLine);
|
|
// }
|
|
// if (!IsValidPercent(out availablePercent))
|
|
// {
|
|
// isValid = isValid && false;
|
|
// sb.Append("Total percent cannot greater than assigned percent. Available percent= " + availablePercent+ "% " + Environment.NewLine);
|
|
// }
|
|
|
|
// errorMessage = sb.ToString().Trim();
|
|
// return isValid;
|
|
|
|
//}
|
|
//private bool IsValidPercent(out double availablePercent)
|
|
//{
|
|
// bool sts = true;
|
|
// availablePercent = 0;
|
|
|
|
// if (this.PriorityPercent > 0 && this.PriorityPercent <= 100)
|
|
// {
|
|
// List<ObjectiveCategoryGrades> _ObjectiveCategoryGrades = ObjectiveCategoryGrades.GetByPMPYear(this.PMPYearID);
|
|
|
|
// Employee oEmp = Employee.Get(this.EmployeeID);
|
|
|
|
// List<ObjectiveCategoryGrades> _ObjectiveGrades = _ObjectiveCategoryGrades.Where(obj => obj.GradeID == oEmp.GradeID && obj.Percent > 0).ToList();
|
|
|
|
// ObjectiveCategoryGrades oObjectiveType = _ObjectiveGrades.FirstOrDefault(item => item.ObjectiveType == this.ObjectiveType);
|
|
|
|
// double nValidPercent = 0;
|
|
|
|
// if (oObjectiveType != null)
|
|
// nValidPercent = oObjectiveType.Percent;
|
|
|
|
// double nTotalPercent = Objective.GetByEmployeeID(this.EmployeeID, this.PMPYearID, false)
|
|
// .Where(x => x.ObjectiveType == this.ObjectiveType)
|
|
// .Sum(x => x.PriorityPercent);
|
|
|
|
// availablePercent = nValidPercent - nTotalPercent;
|
|
|
|
// if (nTotalPercent + this.PriorityPercent > nValidPercent)
|
|
// {
|
|
// //MessageBox.Show("Total percent cannot greater than assigned percent. Available percent= " + (nValidPercent - nTotalPercent).ToString(), "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
// sts = false;
|
|
// }
|
|
// }
|
|
// return sts;
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
//#region Service Factory IObjective : IObjective
|
|
|
|
//internal static IObjectiveService Service
|
|
//{
|
|
// get { return Services.Factory.CreateService<IObjectiveService>(typeof(IObjectiveService)); }
|
|
//}
|
|
|
|
//#endregion
|
|
|
|
#endregion
|
|
}
|
|
|
|
#region IObjectiveService Service
|
|
|
|
public interface IObjectiveService
|
|
{
|
|
List<Objective> Get();
|
|
Objective Get(int id);
|
|
Objective GetByLMID(int id);
|
|
List<Objective> GetByEmployeeID(int Empid, int PMPID, bool IsDrafted);
|
|
List<Objective> GetForValidation(int empId, int pmpYearId, int objectTypeId);
|
|
List<Objective> GetByEmployeeID(string Empids, int PMPID, bool IsDrafted);
|
|
List<Objective> GetByStatus(EnumPMPStatus estatus, bool IsFinalized);
|
|
List<Objective> GetObjectives(int id, int draft);
|
|
int Save(Objective item);
|
|
|
|
void Save(List<Objective> items);
|
|
|
|
//string Save2(Objective item, List<PMSUpdateHistory> UpdateHistory);
|
|
void Delete(int id);
|
|
List<DevelopmentPlan> GetDevelopmentPlans(int iD);
|
|
List<LMObjective> GetLMObjectives(int iD);
|
|
List<ObjectiveEmployees> GetObjectiveEmployees(int iD);
|
|
Objective GetLineManager(int id);
|
|
List<Objective> GetByPMPYearID(int id, string InEmpSQL);
|
|
void Update(List<Objective> objectives);
|
|
List<Objective> GetLMObjs(int Empid, int PMPYID, int nLMID);
|
|
|
|
DataSet GetComObjAssignedEmpID(int PMPYearID);
|
|
|
|
void DeleteAllCompanyObj(int yearID);
|
|
|
|
void SaveForUpload(List<Objective> items);
|
|
|
|
void SaveForSalesUpload(List<Objective> items);
|
|
DataSet GetEmpObjectiveData(int year);
|
|
DataSet GetEmpFreezedObjectiveData();
|
|
DataSet GetPmsDataEmployeeWise(int pmpYearId, string empIds);
|
|
DataSet GetPmsLmGoalReport(int pmpYearId, int empId);
|
|
DataSet GetPmsIndividualGoalData(int pmpYearId, int empId);
|
|
}
|
|
|
|
#endregion
|
|
} |