CEL_Payroll/Payroll.BO/OPI/OpiParameterIndividual.cs

368 lines
11 KiB
C#
Raw Permalink Normal View History

2024-09-17 14:30:13 +06:00
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<short>("arreartype", (short)_arrearType, (short)value);
_arrearType = value;
}
}
#endregion
#region EmployeeId : ID
private ID _employeeId;
public ID EmployeeId
{
get
{
return _employeeId;
}
set
{
base.OnPropertyChange<ID>("employeeid", _employeeId, value);
_employeeId = value;
}
}
#endregion
#region FromDate : DateTime
private DateTime _fromDate;
public DateTime FromDate
{
get
{
return _fromDate;
}
set
{
base.OnPropertyChange<DateTime>("fromdate", _fromDate, value);
_fromDate = value;
}
}
#endregion
#region ToDate : DateTime
private DateTime? _toDate;
public DateTime? ToDate
{
get
{
return _toDate;
}
set
{
base.OnPropertyChange<DateTime>("todate", _toDate, value);
_toDate = value;
}
}
#endregion
#region IndividualType : EnumOPIIndivdualType
private EnumOPIIndivdualType _individualType;
public EnumOPIIndivdualType IndividualType
{
get
{
return _individualType;
}
set
{
base.OnPropertyChange<short>("individualtype", (short)_individualType, (short)value);
_individualType = value;
}
}
#endregion
#region OpiItemId : ID
private ID _opiItemId;
public ID OpiItemId
{
get
{
return _opiItemId;
}
set
{
base.OnPropertyChange<ID>("opiitemid", _opiItemId, value);
_opiItemId = value;
}
}
#endregion
#region OpiParameterID : ID
private ID _opiParameterID;
public ID OpiParameterID
{
get
{
return _opiParameterID;
}
set
{
base.OnPropertyChange<ID>("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<double>("value", _value, value);
_value = value;
}
}
#endregion
#region ValueType : EnumValueType
private EnumValueType _valueType;
public EnumValueType ValueType
{
get
{
return _valueType;
}
set
{
base.OnPropertyChange<short>("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<OpiParameterIndividual> Get()
{
#region Cache Header
ObjectsTemplate<OpiParameterIndividual> OpiParameterIndividuals = _cache["Get"] as ObjectsTemplate<OpiParameterIndividual>;
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<OpiParameterIndividual> GetByParameterID(ID nParameterID)
{
#region Cache Header
ObjectsTemplate<OpiParameterIndividual> OpiParameterIndividuals = _cache["GetByParameterID"] as ObjectsTemplate<OpiParameterIndividual>;
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<OpiParameterIndividual> GetIndividuals(ID nOpiPAramID, EnumOPIIndivdualType type)
{
#region Cache Header
ObjectsTemplate<OpiParameterIndividual> opiParamIndividuals = _cache["GetIndividuals", nOpiPAramID, type] as ObjectsTemplate<OpiParameterIndividual>;
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<OpiParameterIndividual> 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<IOpiParameterIndividualService>(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<OpiParameterIndividual> Get();
ObjectsTemplate<OpiParameterIndividual> Get(DateTime fromdate, DateTime todate);
ObjectsTemplate<OpiParameterIndividual> GetByParameterID(ID nParameterID);
ObjectsTemplate<OpiParameterIndividual> GetIndividuals(ID nOpiPAramID, EnumOPIIndivdualType type);
ID Save(OpiParameterIndividual oOpiParameterIndividual, ID payrollTypeID);
void Delete(ID id);
void BulkSave(ObjectsTemplate<OpiParameterIndividual> oParams, ID payrollTypeID);
}
#endregion
}