CEL_Payroll/Payroll.BO/Budget/BudgetProcessMonthly.cs

641 lines
16 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.Caching;
using Ease.CoreV35.Model;
using System.Data;
namespace Payroll.BO
{
[Serializable]
public class BudgetProcessMonthly : AuditTrailBase
{
private static Cache _cache = new Cache(typeof(BudgetProcessMonthly));
public BudgetProcessMonthly()
{
_budgetID = null;
_departmentID = null;
_employeeID = null;
_gradeID = null;
_isConfirm = 0;
_locationID = null;
_month = DateTime.MinValue;
_newJoinerID = null;
_newJoinerName = "";
_oBudgetProcessMonthlyDetails = null;
_oBudgetMonthlyCCs = null;
}
private ID _budgetID;
public ID BudgetID
{
get { return _budgetID; }
set { _budgetID = value; }
}
private ID _departmentID;
public ID DepartmentID
{
get { return _departmentID; }
set { _departmentID = value; }
}
private ID _employeeID;
public ID EmployeeID
{
get { return _employeeID; }
set { _employeeID = value; }
}
private ID _gradeID;
public ID GradeID
{
get { return _gradeID; }
set { _gradeID = value; }
}
private int _isConfirm;
public int IsConfirm
{
get { return _isConfirm; }
set { _isConfirm = value; }
}
private ID _locationID;
public ID LocationID
{
get { return _locationID; }
set { _locationID = value; }
}
private DateTime _month;
public DateTime Month
{
get { return _month; }
set { _month = value; }
}
private ID _newJoinerID;
public ID NewJoinerID
{
get { return _newJoinerID; }
set { _newJoinerID = value; }
}
private string _newJoinerName;
public string NewJoinerName
{
get { return _newJoinerName; }
set { _newJoinerName = value; }
}
private ObjectsTemplate<BudgetProcessMonthlyDetail> _oBudgetProcessMonthlyDetails;
public ObjectsTemplate<BudgetProcessMonthlyDetail> OBudgetProcessMonthlyDetails
{
get
{
if(_oBudgetProcessMonthlyDetails==null)
{
_oBudgetProcessMonthlyDetails=new ObjectsTemplate<BudgetProcessMonthlyDetail>();
if (!this.ID.IsUnassigned && _oBudgetProcessMonthlyDetails.Count>0)
_oBudgetProcessMonthlyDetails = BudgetProcessMonthly.Service.GetBudgetDetails(base.ID);
}
return _oBudgetProcessMonthlyDetails;
}
set { _oBudgetProcessMonthlyDetails = value; }
}
private ObjectsTemplate<BudgetMonthlyCC> _oBudgetMonthlyCCs;
public ObjectsTemplate<BudgetMonthlyCC> OBudgetMonthlyCCs
{
get
{
if (_oBudgetMonthlyCCs == null)
{
_oBudgetMonthlyCCs = new ObjectsTemplate<BudgetMonthlyCC>();
if (!this.ID.IsUnassigned && _oBudgetMonthlyCCs.Count>0)
_oBudgetMonthlyCCs = BudgetProcessMonthly.Service.GetBudgetMonthlyCCs(this.ID);
}
return _oBudgetMonthlyCCs;
}
set { _oBudgetMonthlyCCs = value; }
}
public static BudgetProcessMonthly Get(ID nID)
{
BudgetProcessMonthly oBudgetProcessMonthly = null;
oBudgetProcessMonthly = (BudgetProcessMonthly)_cache["Get", nID];
if (oBudgetProcessMonthly != null)
return oBudgetProcessMonthly;
try
{
oBudgetProcessMonthly = Service.Get(nID, SystemInformation.CurrentSysInfo.PayrollTypeID);
}
catch (ServiceException e)
{
throw new Exception(e.Message, e);
}
_cache.Add(oBudgetProcessMonthly, "Get", nID);
return oBudgetProcessMonthly;
}
public static ObjectsTemplate<BudgetProcessMonthly> Get()
{
ObjectsTemplate<BudgetProcessMonthly> oBudgetProcessMonthlies = _cache["Get"] as ObjectsTemplate<BudgetProcessMonthly>;
if (oBudgetProcessMonthlies != null)
return oBudgetProcessMonthlies;
try
{
oBudgetProcessMonthlies = Service.Get(SystemInformation.CurrentSysInfo.PayrollTypeID);
}
catch (ServiceException e)
{
throw new Exception(e.Message, e);
}
_cache.Add(oBudgetProcessMonthlies, "Get");
return oBudgetProcessMonthlies;
}
public static ObjectsTemplate<BudgetProcessMonthly> Get(int nBudID)
{
ObjectsTemplate<BudgetProcessMonthly> oBudgetProcessMonthlies = _cache["Get"] as ObjectsTemplate<BudgetProcessMonthly>;
if (oBudgetProcessMonthlies != null)
return oBudgetProcessMonthlies;
try
{
oBudgetProcessMonthlies = Service.Get(nBudID, SystemInformation.CurrentSysInfo.PayrollTypeID);
}
catch (ServiceException e)
{
throw new Exception(e.Message, e);
}
_cache.Add(oBudgetProcessMonthlies, "Get");
return oBudgetProcessMonthlies;
}
public ID Save()
{
//SetAuditTrailProperties();
return Service.Save(this, SystemInformation.CurrentSysInfo.PayrollTypeID);
}
public void Delete(ID id)
{
Service.Delete(id, SystemInformation.CurrentSysInfo.PayrollTypeID);
}
internal static IBudgetProcessMonthlyService Service
{
get { return Services.Factory.CreateService<IBudgetProcessMonthlyService>(typeof(IBudgetProcessMonthlyService)); }
}
}
[Serializable]
public class BudgetProcessMonthlyDetail : BasicBaseObject
{
private static Cache _cache = new Cache(typeof(BudgetProcessMonthlyDetail));
public BudgetProcessMonthlyDetail()
{
_calculatedamount = 0;
_changedamount = 0;
_budgetComponentID = null;
_budgetProcessMonthlyID = null;
_employeeID = null;
_month = DateTime.MinValue;
_name = "";
_budgetGroup = EnumBudgetGroup.Gross;
_budgetCode = EnumBudgetCode.Allowance;
_position = 0;
_originID = null;
}
private double _calculatedamount;
public double Calculatedamount
{
get { return _calculatedamount; }
set { _calculatedamount = value; }
}
private double _changedamount;
public double Changedamount
{
get { return _changedamount; }
set { _changedamount = value; }
}
private ID _originID;
public ID OriginID
{
get { return _originID; }
set { _originID = value; }
}
private ID _budgetComponentID;
public ID BudgetComponentID
{
get { return _budgetComponentID; }
set { _budgetComponentID = value; }
}
private ID _budgetProcessMonthlyID;
public ID BudgetProcessMonthlyID
{
get { return _budgetProcessMonthlyID; }
set { _budgetProcessMonthlyID = value; }
}
private ID _employeeID;
public ID EmployeeID
{
get { return _employeeID; }
set { _employeeID = value; }
}
private DateTime _month;
public DateTime Month
{
get { return _month; }
set { _month = value; }
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private EnumBudgetGroup _budgetGroup;
public EnumBudgetGroup BudgetGroup
{
get { return _budgetGroup; }
set { _budgetGroup = value; }
}
private EnumBudgetCode _budgetCode;
public EnumBudgetCode BudgetCode
{
get { return _budgetCode; }
set { _budgetCode = value; }
}
private int _position;
public int Position
{
get { return _position; }
set { _position = value; }
}
private Employee _emp;
public Employee Employee
{
get
{
if (_emp == null && _employeeID.IsUnassigned == false && _employeeID.Integer > 0)
{
_emp = new Employee();
_emp = Employee.Get(_employeeID);
}
return this._emp;
}
set
{
_emp = value;
}
}
private ObjectsTemplate<EmployeeCostCenter> _cc;
public ObjectsTemplate<EmployeeCostCenter> CCs
{
get
{
if (_cc == null && _employeeID.IsUnassigned == false && _employeeID.Integer > 0)
{
_cc = new ObjectsTemplate<EmployeeCostCenter>();
_cc = EmployeeCostCenter.GetByEmpID(_employeeID);
}
return this._cc;
}
set
{
_cc = value;
}
}
private BudgetComponent _bugetComponent;
public BudgetComponent BugetComponent
{
get
{
if (_bugetComponent == null && BudgetComponentID!=null)
{
_bugetComponent = BudgetComponent.Service.Get(this.BudgetComponentID);
}
return _bugetComponent;
}
set { _bugetComponent = value; }
}
public static ObjectsTemplate<BudgetProcessMonthlyDetail> Get(DateTime dtFrom,DateTime dtTo, int nBudID)
{
ObjectsTemplate<BudgetProcessMonthlyDetail> oBudgetProcessMonthlieDetails = _cache["Get"] as ObjectsTemplate<BudgetProcessMonthlyDetail>;
if (oBudgetProcessMonthlieDetails != null)
return oBudgetProcessMonthlieDetails;
try
{
oBudgetProcessMonthlieDetails = BudgetProcessMonthly.Service.Get(dtFrom,dtTo, nBudID, SystemInformation.CurrentSysInfo.PayrollTypeID);
}
catch (ServiceException e)
{
throw new Exception(e.Message, e);
}
_cache.Add(oBudgetProcessMonthlieDetails, "Get");
return oBudgetProcessMonthlieDetails;
}
public static ObjectsTemplate<BudgetProcessMonthlyDetail> Get2(DateTime dtFrom, DateTime dtTo, int nBudID)
{
ObjectsTemplate<BudgetProcessMonthlyDetail> oBudgetProcessMonthlieDetails = _cache["Get2"] as ObjectsTemplate<BudgetProcessMonthlyDetail>;
if (oBudgetProcessMonthlieDetails != null)
return oBudgetProcessMonthlieDetails;
try
{
oBudgetProcessMonthlieDetails = BudgetProcessMonthly.Service.Get2(dtFrom, dtTo, nBudID, SystemInformation.CurrentSysInfo.PayrollTypeID);
}
catch (ServiceException e)
{
throw new Exception(e.Message, e);
}
_cache.Add(oBudgetProcessMonthlieDetails, "Get2");
return oBudgetProcessMonthlieDetails;
}
}
[Serializable]
public class BudgetMonthlyCC : BasicBaseObject
{
private static Cache _cache = new Cache(typeof(BudgetMonthlyCC));
public BudgetMonthlyCC()
{
_budgetProcessMonthlyID = null;
_cCID = null;
_employeeID = null;
_month = DateTime.MinValue;
_percentage = 0;
}
private ID _budgetProcessMonthlyID;
public ID BudgetProcessMonthlyID
{
get { return _budgetProcessMonthlyID; }
set { _budgetProcessMonthlyID = value; }
}
private ID _cCID;
public ID CCID
{
get { return _cCID; }
set { _cCID = value; }
}
private ID _employeeID;
public ID EmployeeID
{
get { return _employeeID; }
set { _employeeID = value; }
}
private DateTime _month;
public DateTime Month
{
get { return _month; }
set { _month = value; }
}
private double _percentage;
public double Percentage
{
get { return _percentage; }
set { _percentage = value; }
}
private Costcenter _costcenter;
public Costcenter Costcenter
{
get
{
if (_cCID.Integer > 0 && _costcenter == null)
{
_costcenter = new Costcenter();
_costcenter = Costcenter.Get(_cCID);
}
return this._costcenter;
}
set
{
_costcenter = value;
}
}
private Employee _emp;
public Employee Employee
{
get
{
if (_emp == null && _employeeID.IsUnassigned == false && _employeeID.Integer > 0)
{
_emp = new Employee();
_emp = Employee.Get(_employeeID);
}
return this._emp;
}
set
{
_emp = value;
}
}
}
public interface IBudgetProcessMonthlyService
{
BudgetProcessMonthly Get(ID nID, ID PayrollTypeID);
ObjectsTemplate<BudgetProcessMonthly> Get(ID PayrollTypeID);
ObjectsTemplate<BudgetProcessMonthly> Get(int nBudID, ID PayrollTypeID);
ID Save(BudgetProcessMonthly item, ID payrollTypeID);
void Delete(ID nID, ID PayrollTypeID);
ObjectsTemplate<BudgetProcessMonthlyDetail> GetBudgetDetails(ID id);
ObjectsTemplate<BudgetMonthlyCC> GetBudgetMonthlyCCs(ID id);
ObjectsTemplate<BudgetProcessMonthlyDetail> Get(DateTime dtFrom, DateTime dtTo, int nBudID, ID PayrollTypeID);
ObjectsTemplate<BudgetProcessMonthlyDetail> Get2(DateTime dtFrom, DateTime dtTo, int nBudID, ID PayrollTypeID);
}
}