CEL_Payroll/Payroll.Service/OverTime/Service/OTProcessService.cs
2024-09-17 14:30:13 +06:00

498 lines
14 KiB
C#

using System;
using System.Data;
using System.Linq;
using Ease.CoreV35;
using Ease.CoreV35.Model;
using Ease.CoreV35.DataAccess;
using System.Collections.Generic;
using Payroll.BO;
using Ease.CoreV35.Caching;
namespace Payroll.Service
{
#region OTProcess Service
[Serializable]
public class OTProcessService : ServiceTemplate, IOTProcessService
{
#region Private functions and declaration
Cache _cache = new Cache(typeof(OTProcess));
#endregion
public OTProcessService() { }
private void MapObject(OTProcess oOTProcess, DataReader oReader)
{
base.SetObjectID(oOTProcess, oReader.GetID("ProcessId"));
oOTProcess.MonthDate = oReader.GetDateTime("ProcessMonth").Value;
oOTProcess.EmployeeID = oReader.GetID("empID");
oOTProcess.Amount = oReader.GetDouble("amount").Value;
oOTProcess.ArrearAmount = oReader.GetDouble("ArrearAmount").Value;
oOTProcess.TermID = oReader.GetID("termID");
oOTProcess.TermParameterID = oReader.GetID("TermParameterID");
oOTProcess.EmpOverTimeID = oReader.GetID("EmpOverTimeID");
oOTProcess.TotalHour = oReader.GetDouble("Hours").Value;
oOTProcess.CreatedBy = oReader.GetID("CreatedBy");
oOTProcess.CreatedDate = oReader.GetDateTime("CreationDate").Value;
oOTProcess.ModifiedBy = oReader.GetID("ModifiedBy");
oOTProcess.ModifiedDate = oReader.GetDateTime("ModifiedDate");
oOTProcess.OTMonth = oReader.GetDateTime("OTMonth").Value;
this.SetObjectState(oOTProcess, Ease.CoreV35.ObjectState.Saved);
}
protected override T CreateObject<T>(DataReader oReader)
{
OTProcess oOTProcess = new OTProcess();
MapObject(oOTProcess, oReader);
return oOTProcess as T;
}
protected OTProcess CreateObject(DataReader oReader)
{
OTProcess oOTProcess = new OTProcess();
MapObject(oOTProcess, oReader);
return oOTProcess;
}
#region Service implementation
public ObjectsTemplate<OTProcess> Get(DateTime dMonthDate)
{
#region Cache Header
ObjectsTemplate<OTProcess> oTProcess = _cache["Get", dMonthDate] as ObjectsTemplate<OTProcess>;
if (oTProcess != null)
return oTProcess;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OTProcessDA.Get(tc, dMonthDate));
oTProcess = this.CreateObjects<OTProcess>(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
_cache.Add(oTProcess, "Get", dMonthDate);
#endregion
return oTProcess;
}
public OTProcess Get(ID id)
{
OTProcess oOTProcess = new OTProcess();
#region Cache Header
oOTProcess = _cache["Get", id] as OTProcess;
if (oOTProcess != null)
return oOTProcess;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(OTProcessDA.Get(tc, id));
if (oreader.Read())
{
oOTProcess = this.CreateObject<OTProcess>(oreader);
}
oreader.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
_cache.Add(oOTProcess, "Get", id);
#endregion
return oOTProcess;
}
public bool IsProcessed(DateTime dMonthDate, ID PayrollTypeID)
{
bool isProcessed = false;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OTProcessDA.IsProcessed(tc, dMonthDate, PayrollTypeID));
if (dr.Read())
{
isProcessed = Convert.ToBoolean(dr.GetInt32(0));
}
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return isProcessed;
}
public ObjectsTemplate<OTProcess> Get()
{
#region Cache Header
ObjectsTemplate<OTProcess> oTProcess = _cache["Get"] as ObjectsTemplate<OTProcess>;
if (oTProcess != null)
return oTProcess;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OTProcessDA.Get(tc));
oTProcess = this.CreateObjects<OTProcess>(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
_cache.Add(oTProcess, "Get");
#endregion
return oTProcess;
}
public DataSet GetOTProcessData(DateTime Month,string sEmpID)
{
DataSet oTProcess = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
oTProcess = OTProcessDA.GetOTProcessData(tc,Month,sEmpID);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return oTProcess;
}
public DataSet GetOTMonthRangeData(DateTime FDate,DateTime TDate)
{
DataSet oTProcess = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
oTProcess = OTProcessDA.GetOTMonthRangeData(tc,FDate,TDate);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return oTProcess;
}
public DataSet GetBranchWiseOT(DateTime Month)
{
DataSet oTProcess = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
oTProcess = OTProcessDA.GetBranchWiseOT(tc, Month);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return oTProcess;
}
public DataSet GetCostCenterWiseOT(DateTime dateTime, string sEmpID)
{
DataSet oTProcess = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
oTProcess = OTProcessDA.GetCostCenterWiseOT(tc, dateTime, sEmpID);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return oTProcess;
}
public DataSet GetLocationWiseOT(DateTime FDate, DateTime TDate)
{
DataSet oTProcess = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
oTProcess = OTProcessDA.GetLocationWiseOT(tc, FDate, TDate);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return oTProcess;
}
public ObjectsTemplate<OTProcess> GetbyOtMonth(string sEmpIDs, string sMonths)
{
#region Cache Header
ObjectsTemplate<OTProcess> oTProcess = _cache["Get", sEmpIDs,sMonths] as ObjectsTemplate<OTProcess>;
if (oTProcess != null)
return oTProcess;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OTProcessDA.GetbyOtMonth(tc, sEmpIDs, sMonths));
oTProcess = this.CreateObjects<OTProcess>(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
_cache.Add(oTProcess, "Get", sEmpIDs, sMonths);
#endregion
return oTProcess;
}
public ID Save(OTProcess oOTProcess)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
if (oOTProcess.IsNew)
{
int id = tc.GenerateID("OTProcess", "ProcessId");
base.SetObjectID(oOTProcess, ID.FromInteger(id));
OTProcessDA.Insert(tc, oOTProcess);
}
else
{
OTProcessDA.Update(tc, oOTProcess);
}
tc.End();
return oOTProcess.ID;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public ID Save(TransactionContext tc,OTProcess oOTProcess)
{
try
{
if (oOTProcess.IsNew)
{
int id = tc.GenerateID("OTProcess", "ProcessId");
base.SetObjectID(oOTProcess, ID.FromInteger(id));
OTProcessDA.Insert(tc, oOTProcess);
}
else
{
OTProcessDA.Update(tc, oOTProcess);
}
return oOTProcess.ID;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public void Save(ObjectsTemplate<OTProcess> oOTProcesss)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
foreach (OTProcess process in oOTProcesss)
{
Save(tc, process);
}
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public void Delete(DateTime dMonthDate,ID nPayrollTypeID)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
OTProcessDA.Delete(tc, dMonthDate,nPayrollTypeID);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public void Delete(ID id)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
OTProcessDA.Delete(tc, id);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
#endregion
}
#endregion
}