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

205 lines
6.7 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
{
public class PremiumProcessService : ServiceTemplate, IPremiumProcessService
{
private void MapObject(PremiumProcess oPremiumProcess, DataReader oReader)
{
this.SetObjectID(oPremiumProcess, oReader.GetID("PremiumProcessID"));
oPremiumProcess.Month = oReader.GetDateTime("Month").Value;
oPremiumProcess.Factor = oReader.GetDouble("Factor").GetValueOrDefault();
oPremiumProcess.PremierRate = oReader.GetDouble("PremierRate").GetValueOrDefault();
this.SetObjectState(oPremiumProcess, ObjectState.Saved);
}
protected override T CreateObject<T>(DataReader oReader)
{
PremiumProcess oPremiumProcess = new PremiumProcess();
MapObject(oPremiumProcess, oReader);
return oPremiumProcess as T;
}
protected PremiumProcess CreateObject(DataReader oReader)
{
PremiumProcess oPremiumProcess = new PremiumProcess();
MapObject(oPremiumProcess, oReader);
return oPremiumProcess;
}
public PremiumProcess Get(ID id)
{
PremiumProcess oPremiumProcess = new PremiumProcess();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oReader = new DataReader(PremiumProcessDA.Get(tc, id));
if (oReader.Read())
{
oPremiumProcess = this.CreateObject(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
}
return oPremiumProcess;
}
public ObjectsTemplate<PremiumProcess> Get()
{
ObjectsTemplate<PremiumProcess> oPremiumProcesses = new ObjectsTemplate<PremiumProcess>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(PremiumProcessDA.Get(tc));
oPremiumProcesses = this.CreateObjects<PremiumProcess>(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
}
return oPremiumProcesses;
}
public ID Save(PremiumProcess oPremiumProcess)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
//if (oPremiumProcess.IsNew)
//{
int id = tc.GenerateID("PremiumProcess", "PremiumProcessID");
base.SetObjectID(oPremiumProcess, ID.FromInteger(id));
PremiumProcessDA.Insert(tc, oPremiumProcess);
foreach (PremiumProcessDetail detail in oPremiumProcess.PremiumProcessDetails)
{
int id2 = tc.GenerateID("PremiumProcessDetail", "PremiumProcessDetailID");
base.SetObjectID(detail, ID.FromInteger(id2));
detail.PremiumProcessID=ID.FromInteger(id);
PremiumProcessDetailDA.Insert(tc, detail);
}
//}
//else
//{
// PremiumProcessDA.Update(tc, oPremiumProcess);
//}
tc.End();
return oPremiumProcess.ID;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public DataTable GetGroupInsurance(DateTime dtCur)
{
DataTable dataTableOfEmployee = new DataTable("Employee");
new EmployeeService().GetEmployeeCurrentPosition();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataSet dataSet = PremiumProcessDA.GetGroupInsurance(tc, dtCur);
dataTableOfEmployee = dataSet.Tables[0];
dataSet.Dispose();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return dataTableOfEmployee;
}
public void Delete(ID id)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
PremiumProcessDA.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
}
}
public PremiumProcess GetByMonth(DateTime month)
{
PremiumProcess oPremiumProcess = new PremiumProcess();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oReader = new DataReader(PremiumProcessDA.GetByMonth(tc, month));
if (oReader.Read())
{
oPremiumProcess = this.CreateObject(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
}
return oPremiumProcess;
}
}
}