using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; namespace HRM.BO { #region ESBDefinition public class ESBDefinition : BasicBaseObject { #region Constructor public ESBDefinition() { Description = string.Empty; MaxServiceLength = 0.0; PayrollTypeID = 0; Trading = 0.0; UserID = 0; } #endregion #region Properties public string Description { get; set; } public int PayrollTypeID { get; set; } public double MaxServiceLength { get; set; } public double Trading { get; set; } public int UserID { get; set; } public List ESBSlabs { get; set; } = new List(); //#region ESBSlabs : List //private List _esbSlabs; //public List ESBSlabs //{ // get // { // if (_esbSlabs == null && !this.ID.IsUnassigned && this.ID.Integer > 0) // { // _esbSlabs = ESBSlab.GetSlabs(this.ID.Integer); // } // if (_esbSlabs == null) // { // _esbSlabs = new List(); // } // return _esbSlabs; // } // set // { // _esbSlabs = value; // } //} //#endregion public List ESBGrades { get; set; } = new List(); //#region ESBGrades : List //private List _esbGrades; //public List ESBGrades //{ // get // { // if (_esbGrades == null && !this.ID.IsUnassigned && this.ID.Integer > 0) // { // _esbGrades = ESBGrade.GetESBGrade(this.ID.Integer); // } // if (_esbGrades == null) // { // _esbGrades = new List(); // } // return _esbGrades; // } // set // { // _esbGrades = value; // } //} //#endregion public List ESBElements { get; set; } = new List(); //#region ESBElements : List //private List _esbElements; //public List ESBElements //{ // get // { // if (_esbElements == null && !this.ID.IsUnassigned && this.ID.Integer > 0) // { // _esbElements = ESBElement.GetESBElement(this.ID.Integer); // } // if (_esbElements == null) // { // _esbElements = new List(); // } // return _esbElements; // } // set // { // _esbElements = value; // } //} //#endregion //#region Service Factory IESBDefinitionService : IESBDefinitionService //internal static IESBDefinitionService Service //{ // get { return Services.Factory.CreateService(typeof(IESBDefinitionService)); } //} //#endregion #endregion //#region Functions //public static ESBDefinition Get(ID nID) //{ // ESBDefinition oESBDefinition = null; // #region Cache Header // oESBDefinition = (ESBDefinition)_cache["Get", nID]; // if (oESBDefinition != null) // return oESBDefinition; // #endregion // oESBDefinition = ESBDefinition.Service.Get(nID); // #region Cache Footer // _cache.Add(oESBDefinition, "Get", nID); // #endregion // return oESBDefinition; //} //public static ESBDefinition GetByPayrollID(int nID) //{ // ESBDefinition oESBDefinition = null; // #region Cache Header // oESBDefinition = (ESBDefinition)_cache["GetByPayrollID", nID]; // if (oESBDefinition != null) // return oESBDefinition; // #endregion // oESBDefinition = ESBDefinition.Service.GetByPayrollID(nID); // #region Cache Footer // _cache.Add(oESBDefinition, "GetByPayrollID", nID); // #endregion // return oESBDefinition; //} //public static ESBDefinition Get(int nID) //{ // ESBDefinition oESBDefinition = null; // #region Cache Header // oESBDefinition = (ESBDefinition)_cache["Get", nID]; // if (oESBDefinition != null) // return oESBDefinition; // #endregion // oESBDefinition = ESBDefinition.Service.Get(nID); // #region Cache Footer // _cache.Add(oESBDefinition, "Get", nID); // #endregion // return oESBDefinition; //} //public static ESBDefinition Get(List definations, Employee employee) //{ // ESBDefinition odefinaiton = null; // ESBGrade oESBGrade = null; // odefinaiton = definations.Where(x => x.PayrollTypeID == employee.PayrollTypeID).SingleOrDefault(); // if (odefinaiton != null) // oESBGrade = odefinaiton.ESBGrades.Where(t => t.GradeID == employee.GradeID).SingleOrDefault(); // return odefinaiton; //} //public static List Get() //{ // #region Cache Header // List oESBDefinition = _cache["Get"] as List; // if (oESBDefinition != null) // return oESBDefinition; // #endregion // try // { // oESBDefinition = Service.Get(); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(oESBDefinition, "Get"); // #endregion // return oESBDefinition; //} //public static List GetByPayrollType(int nPayrollTypeID) //{ // #region Cache Header // List oESBDefinition = _cache["GetByPayrollType", nPayrollTypeID] as List; // if (oESBDefinition != null) // return oESBDefinition; // #endregion // try // { // oESBDefinition = Service.GetByPayrollType(nPayrollTypeID); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(oESBDefinition, "GetByPayrollType", nPayrollTypeID); // #endregion // return oESBDefinition; //} //public void CalculateProvisionAmount(Employee oEmployee, List oSalaryMonthlyDetails, ESBProvision oESBProvision, DataSet oDS) //{ // EnumSalaryItemCode nItemCode = EnumSalaryItemCode.Basic_Salary; // double nESBAmount = 0.0; // double nProvisioned = 0.0; // double nToBeProvisioned = 0.0; // double nServiceLength = 0.0; // double nNoOfEntitlement = 0.0; // double nNoRestofMonth = 0; // double nAvgAmount = 0.0; // SalaryMonthlyDetail oSalaryMonthlyDetail = null; // foreach (ESBElement oElement in this.ESBElements) // { // if (oElement.ElementID == ID.FromInteger((int)EnumSalaryItemCode.Basic_Salary)) // nItemCode = EnumSalaryItemCode.Basic_Salary; // else // nItemCode = EnumSalaryItemCode.Allowance; // oSalaryMonthlyDetail = new SalaryMonthlyDetail(); // oSalaryMonthlyDetail = oSalaryMonthlyDetails.Find(delegate (SalaryMonthlyDetail t) { return t.ItemCode == nItemCode && t.ItemID == oElement.ElementID.Integer && t.itemGroupCode == EnumSalaryGroup.Gross; }); // if (oSalaryMonthlyDetail != null) // { // nESBAmount = nESBAmount + oSalaryMonthlyDetail.ChangedAmount; // nAvgAmount = nAvgAmount + oSalaryMonthlyDetail.ChangedAmount; // } // } // nServiceLength = oEmployee.ServiceYears(Ease.CoreV35.Utility.Global.DateFunctions.LastDateOfYear(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate)); // nNoRestofMonth = Ease.CoreV35.Utility.Global.DateFunctions.DateDiff("m", Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate, Ease.CoreV35.Utility.Global.DateFunctions.LastDateOfYear(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate)) + 1; // nProvisioned = 0.0; // //foreach(DataRow oRow in oDS.Tables[0].Rows) // //{ // // if (oEmployee.ID.Integer == Convert.ToInt16(oRow[0].ToString())) // // { // // nProvisioned = Convert.ToDouble(oRow[1].ToString()); // // break; // // } // //} // if (nServiceLength > MaxServiceLength) // nServiceLength = MaxServiceLength; // nNoOfEntitlement = ESBSlab.GetCalcualateNo(nServiceLength, oEmployee.PayrollTypeID.Integer); // if (nNoOfEntitlement <= 0.0) // nNoOfEntitlement = 1; // nToBeProvisioned = (nESBAmount) * nServiceLength * nNoOfEntitlement; // oESBProvision.Provision = Math.Round((nToBeProvisioned - nProvisioned) / nNoRestofMonth); // oESBProvision.Provision = PayrollPayrollGlobalFunctions.Round(oESBProvision.Provision); //} //public ID Save() //{ // this.SetAuditTrailProperties(); // return ESBDefinition.Service.Save(this); //} //public void Delete(ID id) //{ // ESBDefinition.Service.Delete(id); //} //#endregion } #endregion //#region IESBDefinition Service //public interface IESBDefinitionService //{ // ESBDefinition Get(ID id); // ESBDefinition GetByPayrollID(int nID); // ESBDefinition Get(int nID); // List Get(); // List GetByPayrollType(int nPayrollTypeID); // ID Save(ESBDefinition item); // void Delete(ID id); // // // List GetESBElement(int nESBID); // ID SaveESBElement(ESBElement item); // void DeleteESBElement(ID id); // // // List GetESBGrade(int nESBID); // ID SaveESBGrade(ESBGrade item); // void DeleteESBGrade(ID id); // // // List GetSlabs(int nESBID); // ID SaveESBSlab(ESBSlab item); // void DeleteESBSlab(ID id); //} //#endregion #region ESBElement public class ESBElement : BasicBaseObject { #region Constructor public ESBElement() { ElementType = EnumSalaryComponent.Basic; ESBID = 0; ElementID = 0; } #endregion #region Properties public int ESBID { get; set; } public int ElementID { get; set; } public EnumSalaryComponent ElementType { get; set; } #endregion //#region Service Factory IESBDefinitionService : IESBDefinitionService //internal static IESBDefinitionService Service //{ // get { return Services.Factory.CreateService(typeof(IESBDefinitionService)); } //} //#endregion //#region Functions //public static List GetESBElement(int nESBID) //{ // #region Cache Header // List oESBElements = _cache["Get", nESBID] as List; // if (oESBElements != null) // return oESBElements; // #endregion // try // { // oESBElements = Service.GetESBElement(nESBID); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(oESBElements, "Get", nESBID); // #endregion // return oESBElements; //} //public ID SaveESBElement() //{ // return ESBDefinition.Service.SaveESBElement(this); //} //public void DeleteESBElement(ID id) //{ // ESBDefinition.Service.DeleteESBElement(id); //} //#endregion } #endregion #region ESBGrade public class ESBGrade : BasicBaseObject { #region Constructor public ESBGrade() { GradeID = 0; ESBID = 0; } #endregion #region Properties public int GradeID { get; set; } public int ESBID { get; set; } //public Grade Grade { get; set; } //#region grade : Grade //private Grade _grade; //public Grade Grade //{ // get // { // if (_gradeID != null) // { // if (_gradeID.Integer > 0 && _grade == null) // { // _grade = new Grade(); // _grade = Grade.Get(_gradeID); // } // } // return this._grade; // } // set // { // _grade = value; // } //} //#endregion //public static List GetESBGrade(int nESBID) //{ // #region Cache Header // List oESBGrade = _cache["GetESBGrade", nESBID] as List; // if (oESBGrade != null) // return oESBGrade; // #endregion // try // { // oESBGrade = Service.GetESBGrade(nESBID); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // return oESBGrade; //} //#region Service Factory IESBDefinitionService : IESBDefinitionService //internal static IESBDefinitionService Service //{ // get { return Services.Factory.CreateService(typeof(IESBDefinitionService)); } //} //#endregion #endregion //#region Functions //public ID Save() //{ // //this.SetAuditTrailProperties(); // return ESBDefinition.Service.SaveESBGrade(this); //} //public void Delete(ID id) //{ // ESBDefinition.Service.DeleteESBGrade(id); //} //#endregion } #endregion #region ESBSlab public class ESBSlab : BasicBaseObject { #region Constructor public ESBSlab() { CalculateNo = 0.0; DaysToConsider = 0.0; ESBID = 0; ServiceYear = 0.0; UptoServiceYear = 0; } #endregion #region Properties public double CalculateNo { get; set; } public double DaysToConsider { get; set; } public int ESBID { get; set; } public double ServiceYear { get; set; } public ESBDefinition ESBDefinition { get; set; } //#region _esbDefinition : Grade //private ESBDefinition _esbDefinition; //public ESBDefinition ESBDefinition //{ // get // { // if (_esbID != null) // { // if (_esbID.Integer > 0 && _esbDefinition == null) // { // _esbDefinition = new ESBDefinition(); // _esbDefinition = ESBDefinition.Get(_esbID); // } // } // return this._esbDefinition; // } // set // { // _esbDefinition = value; // } //} //#endregion public int UptoServiceYear { get; set; } //#region Service Factory IESBDefinitionService : IESBDefinitionService //internal static IESBDefinitionService Service //{ // get { return Services.Factory.CreateService(typeof(IESBDefinitionService)); } //} //#endregion #endregion //#region Functions //public static List GetSlabs(int nESBID) //{ // #region Cache Header // List ESBSlab = _cache["GetSlabs", nESBID] as List; // if (ESBSlab != null) // return ESBSlab; // #endregion // try // { // ESBSlab = Service.GetSlabs(nESBID); // } // catch (ServiceException e) // { // throw new Exception(e.Message, e); // } // #region Cache Footer // _cache.Add(ESBSlab, "GetSlabs", nESBID); // #endregion // return ESBSlab; //} //public static double GetCalcualateNo(double nServiceYear, int nPID) //{ // ESBDefinition oItem = new ESBDefinition(); // double n = 0.0; // oItem = ESBDefinition.GetByPayrollID(nPID); // List oSlabs = new List(); // oSlabs = ESBSlab.GetSlabs(oItem.ID.Integer); // foreach (ESBSlab oSl in oSlabs) // { // if (oSl.ServiceYear <= nServiceYear) // n = oSl.CalculateNo; // } // return n; //} //public static double GetCalcualateNo(double nServiceYear, ESBDefinition oESBDefinition) //{ // ESBDefinition oItem = new ESBDefinition(); // double n = 0.0; // oItem = ESBDefinition.Get(oESBDefinition.ID); // foreach (ESBSlab oSl in oItem.ESBSlabs) // { // if (oSl.ServiceYear <= nServiceYear) // n = oSl.CalculateNo; // } // return n; //} //public ID SaveESBSlab() //{ // return ESBDefinition.Service.SaveESBSlab(this); //} //public void Delete(ID id) //{ // ESBDefinition.Service.DeleteESBSlab(id); //} //#endregion } #endregion }