508 lines
13 KiB
C#
508 lines
13 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data;
|
|
using Ease.CoreV35;
|
|
using Ease.CoreV35.Model;
|
|
using Ease.CoreV35.Caching;
|
|
using System.Data.Linq.Mapping;
|
|
using System.Collections;
|
|
|
|
namespace Payroll.BO
|
|
{
|
|
#region OTProcess
|
|
|
|
[Serializable]
|
|
public class OTProcess : AuditTrailBase
|
|
{
|
|
#region Cache Store
|
|
|
|
private static Cache _cache = new Cache(typeof(OTProcess));
|
|
|
|
#endregion
|
|
|
|
#region Constructor
|
|
|
|
public OTProcess()
|
|
{
|
|
_monthDate = DateTime.MinValue;
|
|
_employeeID = null;
|
|
_amount = 0;
|
|
_termID = null;
|
|
_termParameterID = null;
|
|
_empOverTimeID = null;
|
|
_totalHour = 0;
|
|
_arrearAmount = 0;
|
|
_oTMonth = DateTime.MinValue;
|
|
_empOverTime = null;
|
|
_PayrollTypeID = null;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Properties
|
|
|
|
#region monthDate : DateTime
|
|
|
|
private DateTime _monthDate;
|
|
public DateTime MonthDate
|
|
{
|
|
get { return _monthDate; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<DateTime>("monthDate", _monthDate, value);
|
|
_monthDate = 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 amount : double
|
|
|
|
private double _amount;
|
|
public double Amount
|
|
{
|
|
get { return _amount; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<double>("amount", _amount, value);
|
|
_amount = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region termID : ID
|
|
|
|
private ID _termID;
|
|
public ID TermID
|
|
{
|
|
get { return _termID; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<ID>("termID", _termID, value);
|
|
_termID = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Term : ID
|
|
|
|
private Term _term;
|
|
public Term TermObj
|
|
{
|
|
get
|
|
{
|
|
if (_term == null && !this.TermID.IsUnassigned && this.TermID.Integer > 0)
|
|
{
|
|
_term = Term.Get(this.TermID);
|
|
}
|
|
return _term;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region TermParameter : ID
|
|
|
|
private TermParameter _termParameter;
|
|
public TermParameter TermParam
|
|
{
|
|
get
|
|
{
|
|
if (_termParameter == null && !this.TermParameterID.IsUnassigned && this.ID.Integer > 0)
|
|
{
|
|
_termParameter = TermParameter.Get(this.TermParameterID);
|
|
}
|
|
return _termParameter;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region TermParameterID : ID
|
|
|
|
private ID _termParameterID;
|
|
public ID TermParameterID
|
|
{
|
|
get { return _termParameterID; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<ID>("TermParameterID", _termParameterID, value);
|
|
_termParameterID = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region EmpOverTimeID : ID
|
|
|
|
private ID _empOverTimeID;
|
|
public ID EmpOverTimeID
|
|
{
|
|
get { return _empOverTimeID; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<ID>("EmpOverTimeID", _empOverTimeID, value);
|
|
_empOverTimeID = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region totalHour : double
|
|
|
|
private double _totalHour;
|
|
public double TotalHour
|
|
{
|
|
get { return _totalHour; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<double>("totalHour", _totalHour, value);
|
|
_totalHour = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region EmpOverTime : EmpOverTime
|
|
|
|
private EmployeeOverTime _empOverTime;
|
|
public EmployeeOverTime EmpOverTime
|
|
{
|
|
get
|
|
{
|
|
if (_empOverTime == null && !_empOverTimeID.IsUnassigned && _empOverTimeID.Integer>0)
|
|
{
|
|
_empOverTime = EmployeeOverTime.Get(_empOverTimeID);
|
|
}
|
|
return _empOverTime;
|
|
}
|
|
set
|
|
{
|
|
_empOverTime = value;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region ArrearAmount : double
|
|
|
|
private double _arrearAmount;
|
|
public double ArrearAmount
|
|
{
|
|
get { return _arrearAmount; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<double>("ArrearAmount", _arrearAmount, value);
|
|
_arrearAmount = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region OTMonth : DateTime
|
|
|
|
private DateTime _oTMonth;
|
|
public DateTime OTMonth
|
|
{
|
|
get { return _oTMonth; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<DateTime>("OTMonth", _oTMonth, value);
|
|
_oTMonth = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region PayrollTypeID : ID
|
|
|
|
private ID _PayrollTypeID;
|
|
public ID PayrollTypeID
|
|
{
|
|
get { return _PayrollTypeID; }
|
|
set
|
|
{
|
|
base.OnPropertyChange<ID>("PayrollTypeID", _PayrollTypeID, value);
|
|
_PayrollTypeID = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Service Factory IOTProcessService : IOTProcessService
|
|
|
|
internal static IOTProcessService Service
|
|
{
|
|
get { return Services.Factory.CreateService<IOTProcessService>(typeof(IOTProcessService)); }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Functions
|
|
|
|
public static OTProcess Get(ID nID)
|
|
{
|
|
OTProcess oOTProcess = null;
|
|
#region Cache Header
|
|
oOTProcess = (OTProcess)_cache["Get", nID];
|
|
if (oOTProcess != null)
|
|
return oOTProcess;
|
|
#endregion
|
|
oOTProcess = OTProcess.Service.Get(nID);
|
|
#region Cache Footer
|
|
_cache.Add(oOTProcess, "Get", nID);
|
|
#endregion
|
|
return oOTProcess;
|
|
}
|
|
|
|
public static ObjectsTemplate<OTProcess> Get()
|
|
{
|
|
#region Cache Header
|
|
|
|
ObjectsTemplate<OTProcess> oTProcess = _cache["Get"] as ObjectsTemplate<OTProcess>;
|
|
if (oTProcess != null)
|
|
return oTProcess;
|
|
|
|
#endregion
|
|
|
|
try
|
|
{
|
|
oTProcess = Service.Get();
|
|
}
|
|
catch (ServiceException e)
|
|
{
|
|
throw new Exception(e.Message, e);
|
|
}
|
|
|
|
#region Cache Footer
|
|
|
|
_cache.Add(oTProcess, "Get");
|
|
|
|
#endregion
|
|
|
|
return oTProcess;
|
|
}
|
|
|
|
public static DataSet GetOTProcessData(DateTime Month,string sEmpID)
|
|
{
|
|
|
|
DataSet oTProcess = null;
|
|
try
|
|
{
|
|
oTProcess = Service.GetOTProcessData(Month,sEmpID);
|
|
}
|
|
catch (ServiceException e)
|
|
{
|
|
throw new Exception(e.Message, e);
|
|
}
|
|
|
|
return oTProcess;
|
|
}
|
|
|
|
public static DataSet GetOTMonthRangeData(DateTime FDate,DateTime TDate)
|
|
{
|
|
|
|
DataSet oTProcess = null;
|
|
try
|
|
{
|
|
oTProcess = Service.GetOTMonthRangeData(FDate,TDate);
|
|
}
|
|
catch (ServiceException e)
|
|
{
|
|
throw new Exception(e.Message, e);
|
|
}
|
|
|
|
return oTProcess;
|
|
}
|
|
|
|
public static DataSet GetBranchWiseOT(DateTime Month)
|
|
{
|
|
|
|
DataSet oTProcess = null;
|
|
try
|
|
{
|
|
oTProcess = Service.GetBranchWiseOT(Month);
|
|
}
|
|
catch (ServiceException e)
|
|
{
|
|
throw new Exception(e.Message, e);
|
|
}
|
|
|
|
return oTProcess;
|
|
}
|
|
|
|
public static DataSet GetLocationWiseOT(DateTime FDate, DateTime TDate)
|
|
{
|
|
|
|
DataSet oTProcess = null;
|
|
try
|
|
{
|
|
oTProcess = Service.GetLocationWiseOT(FDate, TDate);
|
|
}
|
|
catch (ServiceException e)
|
|
{
|
|
throw new Exception(e.Message, e);
|
|
}
|
|
|
|
return oTProcess;
|
|
}
|
|
|
|
|
|
public static ObjectsTemplate<OTProcess> Get(DateTime dMonthDate)
|
|
{
|
|
#region Cache Header
|
|
|
|
ObjectsTemplate<OTProcess> oTProcess = _cache["Get", dMonthDate] as ObjectsTemplate<OTProcess>;
|
|
if (oTProcess != null)
|
|
return oTProcess;
|
|
|
|
#endregion
|
|
|
|
try
|
|
{
|
|
oTProcess = Service.Get(dMonthDate);
|
|
}
|
|
catch (ServiceException e)
|
|
{
|
|
throw new Exception(e.Message, e);
|
|
}
|
|
|
|
#region Cache Footer
|
|
|
|
_cache.Add(oTProcess, "Get", dMonthDate);
|
|
|
|
#endregion
|
|
|
|
return oTProcess;
|
|
}
|
|
|
|
public static ObjectsTemplate<OTProcess> GetbyOtMonth(Hashtable empList,Hashtable monthDate )
|
|
{
|
|
ObjectsTemplate<OTProcess> oTProcess = null;
|
|
string sEmpIDs = string.Empty, sDates = string.Empty;
|
|
|
|
foreach (int nKey in empList.Keys)
|
|
{
|
|
sEmpIDs = sEmpIDs + empList[nKey].ToString() + ",";
|
|
}
|
|
if (sEmpIDs.Length > 0)
|
|
{
|
|
sEmpIDs = sEmpIDs.Substring(0, sEmpIDs.Length - 1);
|
|
}
|
|
|
|
foreach (DateTime dKey in monthDate.Keys)
|
|
{
|
|
sDates = sDates + "'" + Convert.ToDateTime(monthDate[dKey].ToString()).ToString("dd MMM yyyy") + "'" + ",";
|
|
}
|
|
if (sDates.Length > 0)
|
|
{
|
|
sDates = sDates.Substring(0, sDates.Length - 1);
|
|
}
|
|
|
|
try
|
|
{
|
|
if (sEmpIDs.Length > 0 && sDates.Length > 0)
|
|
{
|
|
oTProcess = Service.GetbyOtMonth(sEmpIDs, sDates);
|
|
}
|
|
}
|
|
catch (ServiceException e)
|
|
{
|
|
throw new Exception(e.Message, e);
|
|
}
|
|
|
|
return oTProcess;
|
|
}
|
|
|
|
public ID Save()
|
|
{
|
|
return OTProcess.Service.Save(this);
|
|
}
|
|
|
|
public static void Save(ObjectsTemplate<OTProcess> otProcesses)
|
|
{
|
|
foreach (OTProcess process in otProcesses)
|
|
{
|
|
process.SetAuditTrailProperties();
|
|
}
|
|
OTProcess.Service.Save(otProcesses);
|
|
}
|
|
|
|
public void Delete()
|
|
{
|
|
OTProcess.Service.Delete(ID);
|
|
}
|
|
|
|
public static bool IsProcessed(DateTime dMonthDate)
|
|
{
|
|
return OTProcess.Service.IsProcessed(dMonthDate, SystemInformation.CurrentSysInfo.PayrollTypeID);
|
|
}
|
|
|
|
public static void UndoProcess(DateTime dMonthDate,ID nPayrollTypeID)
|
|
{
|
|
OTProcess.Service.Delete(dMonthDate,nPayrollTypeID);
|
|
}
|
|
|
|
public static DataSet GetCostCenterWiseOT(DateTime dateTime, string sEmpID)
|
|
{
|
|
DataSet oTProcess = null;
|
|
try
|
|
{
|
|
oTProcess = Service.GetCostCenterWiseOT(dateTime, sEmpID);
|
|
}
|
|
catch (ServiceException e)
|
|
{
|
|
throw new Exception(e.Message, e);
|
|
}
|
|
|
|
return oTProcess;
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region IOTProcess Service
|
|
|
|
public interface IOTProcessService
|
|
{
|
|
OTProcess Get(ID id);
|
|
ObjectsTemplate<OTProcess> Get();
|
|
ID Save(OTProcess item);
|
|
void Delete(ID id);
|
|
void Save(ObjectsTemplate<OTProcess> otProcesses);
|
|
bool IsProcessed(DateTime dMonthDate, ID PayrollTypeID);
|
|
void Delete(DateTime dMonthDate,ID nPayrollTypeID);
|
|
ObjectsTemplate<OTProcess> Get(DateTime dMonthDate);
|
|
ObjectsTemplate<OTProcess> GetbyOtMonth(string sEmpIDs, string sMonths);
|
|
DataSet GetOTProcessData(DateTime Month,string sEmpID);
|
|
DataSet GetOTMonthRangeData(DateTime FDate,DateTime TDate);
|
|
DataSet GetBranchWiseOT(DateTime Month);
|
|
DataSet GetLocationWiseOT(DateTime FDate, DateTime TDate);
|
|
|
|
DataSet GetCostCenterWiseOT(DateTime dateTime, string sEmpID);
|
|
}
|
|
|
|
#endregion
|
|
}
|