using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ease.CoreV35; using Ease.CoreV35.Model; using Ease.CoreV35.Caching; using System.Data.Linq.Mapping; namespace Payroll.BO { #region OpiParameterIndividual [Serializable] public class OpiParameterIndividual : BasicBaseObject { #region Cache Store private static Cache _cache = new Cache(typeof(OpiParameterIndividual)); #endregion #region Constructor public OpiParameterIndividual() { _opiParameterID = null; _opiItemId = null; _opiPeriodicity = EnumOpiPeriodicity.OnceOff; _employeeId = null; _fromDate = DateTime.MinValue; _toDate = DateTime.MinValue; _arrearType = EnumArrearType.NotPresent; _employee = null; _individualType = EnumOPIIndivdualType.AppliedToIndividual; _value = 0.0; _valueType = EnumValueType.Amount; } #endregion #region Properties #region ArrearType : EnumArrearType private EnumArrearType _arrearType; public EnumArrearType ArrearType { get { return _arrearType; } set { base.OnPropertyChange("arreartype", (short)_arrearType, (short)value); _arrearType = value; } } #endregion #region EmployeeId : ID private ID _employeeId; public ID EmployeeId { get { return _employeeId; } set { base.OnPropertyChange("employeeid", _employeeId, value); _employeeId = value; } } #endregion #region FromDate : DateTime private DateTime _fromDate; public DateTime FromDate { get { return _fromDate; } set { base.OnPropertyChange("fromdate", _fromDate, value); _fromDate = value; } } #endregion #region ToDate : DateTime private DateTime? _toDate; public DateTime? ToDate { get { return _toDate; } set { base.OnPropertyChange("todate", _toDate, value); _toDate = value; } } #endregion #region IndividualType : EnumOPIIndivdualType private EnumOPIIndivdualType _individualType; public EnumOPIIndivdualType IndividualType { get { return _individualType; } set { base.OnPropertyChange("individualtype", (short)_individualType, (short)value); _individualType = value; } } #endregion #region OpiItemId : ID private ID _opiItemId; public ID OpiItemId { get { return _opiItemId; } set { base.OnPropertyChange("opiitemid", _opiItemId, value); _opiItemId = value; } } #endregion #region OpiParameterID : ID private ID _opiParameterID; public ID OpiParameterID { get { return _opiParameterID; } set { base.OnPropertyChange("opiparameterid", _opiParameterID, value); _opiParameterID = value; } } #endregion #region OpiPeriodicity : EnumOpiPeriodicity private EnumOpiPeriodicity _opiPeriodicity; public EnumOpiPeriodicity OpiPeriodicity { get { return _opiPeriodicity; } set { _opiPeriodicity = value; } } #endregion #region Value : double private double _value; public double Value { get { return _value; } set { base.OnPropertyChange("value", _value, value); _value = value; } } #endregion #region ValueType : EnumValueType private EnumValueType _valueType; public EnumValueType ValueType { get { return _valueType; } set { base.OnPropertyChange("valuetype", (short)_valueType, (short)value); _valueType = value; } } #endregion #region employee : Employee private Employee _employee; public Employee Employee { get { if (_employeeId.Integer > 0 && _employee == null) { _employee = new Employee(); _employee = Employee.Get(_employeeId); } return this._employee; } set { _employee = value; } } #endregion #endregion #region Functions public OpiParameterIndividual Get(ID nOpiParameterIndividualID) { OpiParameterIndividual oOpiParameterIndividual = null; #region Cache Header oOpiParameterIndividual = (OpiParameterIndividual)_cache["Get", nOpiParameterIndividualID]; if (oOpiParameterIndividual != null) return oOpiParameterIndividual; #endregion oOpiParameterIndividual = OpiParameterIndividual.Service.Get(nOpiParameterIndividualID); #region Cache Footer _cache.Add(oOpiParameterIndividual, "Get", nOpiParameterIndividualID); #endregion return oOpiParameterIndividual; } public static ObjectsTemplate Get() { #region Cache Header ObjectsTemplate OpiParameterIndividuals = _cache["Get"] as ObjectsTemplate; if (OpiParameterIndividuals != null) return OpiParameterIndividuals; #endregion try { OpiParameterIndividuals = Service.Get(); } catch (ServiceException e) { throw new Exception(e.Message, e); } #region Cache Footer _cache.Add(OpiParameterIndividuals, "Get"); #endregion return OpiParameterIndividuals; } public static ObjectsTemplate GetByParameterID(ID nParameterID) { #region Cache Header ObjectsTemplate OpiParameterIndividuals = _cache["GetByParameterID"] as ObjectsTemplate; if (OpiParameterIndividuals != null) return OpiParameterIndividuals; #endregion try { OpiParameterIndividuals = Service.GetByParameterID(nParameterID); } catch (ServiceException e) { throw new Exception(e.Message, e); } #region Cache Footer _cache.Add(OpiParameterIndividuals, "GetByParameterID"); #endregion return OpiParameterIndividuals; } public static ObjectsTemplate GetIndividuals(ID nOpiPAramID, EnumOPIIndivdualType type) { #region Cache Header ObjectsTemplate opiParamIndividuals = _cache["GetIndividuals", nOpiPAramID, type] as ObjectsTemplate; if (opiParamIndividuals != null) { return opiParamIndividuals; } #endregion try { opiParamIndividuals = Service.GetIndividuals(nOpiPAramID, type); } catch (ServiceException e) { throw new Exception(e.Message, e); } #region Cache Footer _cache.Add(opiParamIndividuals, "GetIndividuals", nOpiPAramID, type); #endregion return opiParamIndividuals; } public ID Save() { this.SetAuditTrailProperties(); return OpiParameterIndividual.Service.Save(this, SystemInformation.CurrentSysInfo.PayrollTypeID); } public void Delete() { OpiParameterIndividual.Service.Delete(this.ID); } public static void BulkSave(ObjectsTemplate oParams) { foreach (OpiParameterIndividual item in oParams) { item.SetAuditTrailProperties(); } OpiParameterIndividual.Service.BulkSave(oParams, SystemInformation.CurrentSysInfo.PayrollTypeID); } #endregion #region Service Factory internal static IOpiParameterIndividualService Service { get { return Services.Factory.CreateService(typeof(IOpiParameterIndividualService)); } } #endregion public OpiParameterIndividual Clone() { OpiParameterIndividual opiIndividual = new OpiParameterIndividual(); opiIndividual.IndividualType = this.IndividualType; opiIndividual.OpiParameterID = this.OpiParameterID; opiIndividual.OpiItemId = this.OpiItemId; opiIndividual.ArrearType = this.ArrearType; //opiIndividual.DisburseAmount = this.DisburseAmount; opiIndividual.EmployeeId = this.EmployeeId; opiIndividual.FromDate = this.FromDate; opiIndividual.Value = this.Value; opiIndividual.OpiPeriodicity = this.OpiPeriodicity; opiIndividual.SortOrder = this.SortOrder; opiIndividual.ToDate = this.ToDate; //opiIndividual.TotalAmount = this.TotalAmount; opiIndividual.ValueType = this.ValueType; return opiIndividual; } } #endregion #region IOpiParameterIndividual Service public interface IOpiParameterIndividualService { OpiParameterIndividual Get(ID id); ObjectsTemplate Get(); ObjectsTemplate Get(DateTime fromdate, DateTime todate); ObjectsTemplate GetByParameterID(ID nParameterID); ObjectsTemplate GetIndividuals(ID nOpiPAramID, EnumOPIIndivdualType type); ID Save(OpiParameterIndividual oOpiParameterIndividual, ID payrollTypeID); void Delete(ID id); void BulkSave(ObjectsTemplate oParams, ID payrollTypeID); } #endregion }