using System; using Ease.Core.Model; using Ease.Core.DataAccess; using Ease.Core.Utility; using System.Collections.Generic; using HRM.BO; using System.Data; using Ease.Core; namespace HRM.DA { #region Asset Service public class ArrearProcessService : ServiceTemplate { #region Private constructor and declaration public ArrearProcessService() { } #endregion #region MapObject For Arrear private void MapObject(ArrearProcess oItem, DataReader oReader) { // base.SetObjectID(oItem, oReader.GetID("ArrearProcessID")); base.SetObjectID(oItem, oReader.GetInt32("ArrearProcessID").Value); oItem.ProcessDescription = oReader.GetString("ProcessDescription"); oItem.ProcessMonth = oReader.GetDateTime("ProcessMonth").Value; oItem.ProcessDate = oReader.GetDateTime("ProcessDate").Value; oItem.IsApproved = oReader.GetBoolean("IsApproved").Value; oItem.ApprovedBy = oReader.GetInt32("ApprovedBy", 0); oItem.PayrollTypeID = oReader.GetInt32("PayrollTypeID", 0); oItem.CreatedBy = oReader.GetInt32("CreatedBy", 0); oItem.CreatedDate = oReader.GetDateTime("CreationDate").Value; oItem.ModifiedBy = oReader.GetInt32("ModifiedBy", 0); oItem.ModifiedDate = oReader.GetDateTime("ModifiedDate"); this.SetObjectState(oItem, Ease.Core.ObjectState.Saved); } private void MapAPDetailObject(ArrearProcessDetail oItem, DataReader oReader) { //base.SetObjectID(oItem, oReader.GetID("ArrearProcessDetailID")); base.SetObjectID(oItem, oReader.GetInt32("ArrearProcessDetailID").Value); oItem.ArrearProcessID = oReader.GetInt32("ArrearProcessID", 0); oItem.EmployeeID = oReader.GetInt32("EmployeeID", 0); oItem.ProcessMonth = oReader.GetDateTime("ProcessMonth").Value; oItem.DepartmentID = oReader.GetInt32("DepartmentID").Value; oItem.DesingnationID = oReader.GetInt32("DesingnationID").Value; oItem.LocationID = oReader.GetInt32("LocationID").Value; oItem.BranchID = oReader.GetInt32("BranchID").Value; oItem.AccountNo = oReader.GetString("AccountNo"); oItem.GradeID = oReader.GetInt32("GradeID").Value; oItem.ScaleID = oReader.GetInt32("ScaleID").Value; oItem.BasicSalary = oReader.GetDouble("BasicSalary").Value; oItem.GrossSalary = oReader.GetDouble("GrossSalary").Value; oItem.IncrementPercent = oReader.GetDouble("IncrementPercent").Value; oItem.ArrearEffectFromDate = oReader.GetDateTime("ArrearEffectFromDate").Value; this.SetObjectState(oItem, Ease.Core.ObjectState.Saved); } private void MapAPDetailItemObject(ArrearProcessDetailItem oItem, DataReader oReader) { //base.SetObjectID(oItem, oReader.GetID("ArrearProcessDetailItemID")); base.SetObjectID(oItem, oReader.GetInt32("ArrearProcessDetailItemID").Value); oItem.ArrearProcessDetailID = oReader.GetInt32("ArrearprocessDetailID", 0); oItem.ItemType = oReader.GetInt32("ItemType").HasValue ? (enumPayrollComponentType)oReader.GetInt32("ItemType").Value : enumPayrollComponentType.Allowance; oItem.ItemID = oReader.GetInt32("ItemID").HasValue ? oReader.GetInt32("ItemID").Value : 0; oItem.Side = oReader.GetInt32("Side").HasValue ? (EnumArearTranSide)oReader.GetInt32("Side").Value : EnumArearTranSide.None; oItem.Description = oReader.GetString("Description"); oItem.CalculatedAmount = oReader.GetDouble("CalculatedAmount").Value; oItem.ChangedAmount = oReader.GetDouble("ChangedAmount").Value; oItem.SeriialNo = oReader.GetInt32("SerialNo").Value; oItem.IsUploaded = oReader.GetBoolean("IsUploaded").Value; this.SetObjectState(oItem, Ease.Core.ObjectState.Saved); } private void MapAPDetailItemMonthlyObject(ArrearProcessDetailItemMonthly oItem, DataReader oReader) { //base.SetObjectID(oItem, oReader.GetID("ArrearProcessDetailItemID")); base.SetObjectID(oItem, oReader.GetInt32("ARRPROSDETAILITEMMONTHLYID").Value); oItem.ArrearProcessDetailItemID = oReader.GetInt32("ArrearProcessDetailItemID", 0); oItem.ItemType = oReader.GetInt32("ItemType").HasValue ? (enumPayrollComponentType)oReader.GetInt32("ItemType").Value : enumPayrollComponentType.Allowance; oItem.ItemID = oReader.GetInt32("ItemID").HasValue ? oReader.GetInt32("ItemID").Value : 0; oItem.Side = oReader.GetInt32("Side").HasValue ? (EnumArearTranSide)oReader.GetInt32("Side").Value : EnumArearTranSide.None; oItem.Description = oReader.GetString("Description"); oItem.CalculatedAmount = oReader.GetDouble("CalculatedAmount").Value; oItem.ChangedAmount = oReader.GetDouble("ChangedAmount").Value; oItem.SeriialNo = oReader.GetInt32("SerialNo").Value; oItem.SalaryMonth = oReader.GetDateTime("SalaryMonth").Value; oItem.IsUploaded = oReader.GetBoolean("IsUploaded").Value; this.SetObjectState(oItem, Ease.Core.ObjectState.Saved); } private void MapAPCostDistObject(ArrearProcessCostDist oItem, DataReader oReader) { // base.SetObjectID(oItem, oReader.GetID("ArrearProcessCostDistID")); base.SetObjectID(oItem, oReader.GetInt32("ArrearProcessCostDistID").Value); oItem.ArrearProcessDetailID = oReader.GetInt32("ArrearprocessDetailID", 0); oItem.CostcenterID = oReader.GetInt32("CostcenterID", 0); oItem.InvolvementPercent = oReader.GetDouble("InvolvementPercent").Value; oItem.Amount = oReader.GetDouble("Amount").Value; this.SetObjectState(oItem, Ease.Core.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { ArrearProcess oArrear = new ArrearProcess(); MapObject(oArrear, oReader); return oArrear as T; } private List CreateAPDetailObjects(DataReader dr) { List oAPDetails = new List(); while (dr.Read()) { ArrearProcessDetail oAPDetail = new ArrearProcessDetail(); oAPDetail = CreateAPDetailObject(dr); oAPDetails.Add(oAPDetail); } return oAPDetails; } private ArrearProcessDetail CreateAPDetailObject(DataReader dr) { ArrearProcessDetail oAPDetail = new ArrearProcessDetail(); MapAPDetailObject(oAPDetail, dr); return oAPDetail; } private List CreateAPDetailItemObjects(DataReader dr) { List oAPDetailItems = new List(); while (dr.Read()) { ArrearProcessDetailItem oAPDetailItem = new ArrearProcessDetailItem(); oAPDetailItem = CreateAPDetailItemObject(dr); oAPDetailItems.Add(oAPDetailItem); } return oAPDetailItems; } private List CreateAPDetailItemMonthlyObjects(DataReader dr) { List oAPDetailItemMonthlys = new List(); while (dr.Read()) { ArrearProcessDetailItemMonthly oAPDetailItemMonthly = new ArrearProcessDetailItemMonthly(); oAPDetailItemMonthly = CreateAPDetailItemMonthlyObject(dr); oAPDetailItemMonthlys.Add(oAPDetailItemMonthly); } return oAPDetailItemMonthlys; } private ArrearProcessDetailItem CreateAPDetailItemObject(DataReader dr) { ArrearProcessDetailItem oAPDetailItem = new ArrearProcessDetailItem(); MapAPDetailItemObject(oAPDetailItem, dr); return oAPDetailItem; } private ArrearProcessDetailItemMonthly CreateAPDetailItemMonthlyObject(DataReader dr) { ArrearProcessDetailItemMonthly oAPDetailItemMonthly = new ArrearProcessDetailItemMonthly(); MapAPDetailItemMonthlyObject(oAPDetailItemMonthly, dr); return oAPDetailItemMonthly; } private List CreateAPCostDistObjects(DataReader dr) { List oAPCostDists = new List(); while (dr.Read()) { ArrearProcessCostDist oAPCostDist = new ArrearProcessCostDist(); oAPCostDist = CreateAPCostDistObject(dr); oAPCostDists.Add(oAPCostDist); } return oAPCostDists; } private ArrearProcessCostDist CreateAPCostDistObject(DataReader dr) { ArrearProcessCostDist oAPCostDist = new ArrearProcessCostDist(); MapAPCostDistObject(oAPCostDist, dr); return oAPCostDist; } #endregion #region IArrearProcessService Members public ArrearProcess Get(int ArrearProcessID) { ArrearProcess oArrearProcess = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(ArrearProcessDA.Get(tc, ArrearProcessID)); if (oreader.Read()) { oArrearProcess = 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 oArrearProcess; } public List GetWithPayrollType(int payrollTypeID) { List ArrearProcesses = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetWithPayrollType(tc, payrollTypeID)); ArrearProcesses = this.CreateObjects(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 } return ArrearProcesses; } public List Get(DateTime processMonth, int payrollTypeID) { List ArrearProcesses = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.Get(tc, processMonth, payrollTypeID)); ArrearProcesses = this.CreateObjects(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 } return ArrearProcesses; } public List GetDetailItems(int nEmpID, DateTime processMonth, int payrollTypeID) { List ArrearProcesses = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetDetailItems(tc, nEmpID, processMonth, payrollTypeID)); ArrearProcesses = this.CreateAPDetailItemObjects(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 } return ArrearProcesses; } public DataSet GetDetailItems(string sEmpIDs, DateTime processMonth, int ItemType, int ItemID, int payrollTypeID) { DataSet ds = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); ds = ArrearProcessDA.GetDetailItems(tc, sEmpIDs, processMonth, ItemType, ItemID, payrollTypeID); tc.End(); } catch (Exception e) { throw new Exception(e.Message, e); } return ds; } public List GetDetailItems(int arrearProcessId, int nEmpID) { List ArrearProcesses = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetDetailItems(tc, arrearProcessId, nEmpID)); ArrearProcesses = this.CreateAPDetailItemObjects(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 } return ArrearProcesses; } public List GetDetails(int arrearProcessId, string nEmpIDs) { List ArrearProcesses = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetDetails(tc, arrearProcessId, nEmpIDs)); ArrearProcesses = this.CreateAPDetailObjects(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 } return ArrearProcesses; } public List GetDetails(int arrearProcessId, int nEmpID) { List ArrearProcesses = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetDetails(tc, arrearProcessId, nEmpID)); ArrearProcesses = this.CreateAPDetailObjects(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 } return ArrearProcesses; } public int Save(ArrearProcess oArrearProcess) { TransactionContext tc = null; string savingItem = ""; try { tc = TransactionContext.Begin(true); if (oArrearProcess.IsNew) { int id = tc.GenerateID("ArrearProcess", "ArrearProcessID"); base.SetObjectID(oArrearProcess, (id)); ArrearProcessDA.Insert(tc, oArrearProcess); } else { ArrearProcessDA.Update(tc, oArrearProcess); } int ProcessDetailID = tc.GenerateID("ArrearProcessDetail", "ArrearProcessDetailID"); int ProcessDetailItemID = tc.GenerateID("ArrearProcessDetailItem", "ArrearProcessDetailItemID"); int ProcessDetailItemMonthlyID = tc.GenerateID("ARRPROSDETAILITEMMONTHLY", "ARRPROSDETAILITEMMONTHLYID"); //int ProcessCostDistID = tc.GenerateID("ArrearProcessCostDist", "ArrearProcessCostDistID"); foreach (ArrearProcessDetail apd in oArrearProcess.ArrearProcessDetails) { savingItem = "Process Detail"; ProcessDetailID = ProcessDetailID + 1; base.SetObjectID(apd, (ProcessDetailID)); apd.ArrearProcessID = oArrearProcess.ID; ArrearProcessDA.Insert(tc, apd); IncomeTaxService osvr = new IncomeTaxService(); foreach (IncomeTax item in apd.IncomeTaxcoll) { IncomeTaxService iis = new IncomeTaxService(); this.SetObjectState(item, ObjectState.New); iis.Save(tc, item, EnumIncomeTaxDataFrom.SalaryITTempData); } //if (apd.IncomeTaxcoll != null && apd.IncomeTaxcoll.Count > 0) osvr.Insert(tc, apd.IncomeTaxcoll, EnumIncomeTaxDataFrom.SalaryITTempData); foreach (ArrearProcessDetailItem apdi in apd.ArrearProcessDetailItems) { savingItem = "Process Detail Item"; ProcessDetailItemID = ProcessDetailItemID + 1; base.SetObjectID(apdi, (ProcessDetailItemID)); apdi.ArrearProcessDetailID = apd.ID; // Need to Discuss with Boss if (oArrearProcess.IsNew) { ArrearProcessDA.Insert(tc, apdi); } else { if (apdi.ItemType == enumPayrollComponentType.IncomeTax) { ArrearProcessDA.DeleteTaxDetailItem(tc, apdi.ID, enumPayrollComponentType.IncomeTax); ArrearProcessDA.Insert(tc, apdi); } } foreach (ArrearProcessDetailItemMonthly apdim in apdi.ArrearProcessDetailItemMonthlys) { savingItem = "Process Detail Item Monthly"; ProcessDetailItemMonthlyID = ProcessDetailItemMonthlyID + 1; base.SetObjectID(apdim, (ProcessDetailItemMonthlyID)); apdim.ArrearProcessDetailItemID = apdi.ID; ArrearProcessDA.Insert(tc, apdim); } } //foreach (ArrearProcessCostDist apcd in apd.ArrearProcessCostDists) //{ // ProcessCostDistID = ProcessCostDistID +1; // base.SetObjectID(apcd, (ProcessCostDistID)); // apcd.ArrearProcessDetailID = apd.ID; // ArrearProcessDA.Insert(tc, apcd); //} } return oArrearProcess.ID; } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message + " Error From " + savingItem, e); #endregion } finally { tc.End(); } } public int SaveDetailItem(List ArrearProcessDetailItems) { TransactionContext tc = null; try { foreach (ArrearProcessDetailItem apdi in ArrearProcessDetailItems) { List pim = apdi.ArrearProcessDetailItemMonthlys; } tc = TransactionContext.Begin(true); foreach (ArrearProcessDetailItem apdi in ArrearProcessDetailItems) { if (apdi.IsNew) { int id = tc.GenerateID("ArrearProcessDetailItem", "ArrearProcessDetailItemID"); base.SetObjectID(apdi, (id)); ArrearProcessDA.DeleteDetailItemMonthlyByDetailID(tc, apdi.ArrearProcessDetailID, apdi.ItemType, apdi.ItemID); ArrearProcessDA.DeleteDetailItemByDetailID(tc, apdi.ArrearProcessDetailID, apdi.ItemType, apdi.ItemID); ArrearProcessDA.Insert(tc, apdi); } else { ArrearProcessDA.UpdateDetailItem(tc, apdi); ArrearProcessDA.DeleteDetailItemMonthly(tc, apdi.ID); } foreach (ArrearProcessDetailItemMonthly apdim in apdi.ArrearProcessDetailItemMonthlys) { int id2 = tc.GenerateID("ARRPROSDETAILITEMMONTHLY", "ARRPROSDETAILITEMMONTHLYID"); base.SetObjectID(apdim, (id2)); apdim.ArrearProcessDetailItemID = apdi.ID; ArrearProcessDA.Insert(tc, apdim); } } return (1); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } finally { tc.End(); } } public void Delete(ArrearProcess oAP) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); ArrearProcessDA.Delete(tc, oAP); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } finally { tc.End(); } } public List GetArrearProcessDetails(int ArrearProcessID) { List ArrearProcessDetails = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetArrearProcessDetails(tc, ArrearProcessID)); ArrearProcessDetails = this.CreateAPDetailObjects(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 } return ArrearProcessDetails; } public List GetArrearProcessDetails(string sEmpID, DateTime startDate, DateTime endDate, int payrollTypeID) { List ArrearProcessDetails = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader( ArrearProcessDA.GetArrearProcessDetails(tc, sEmpID, startDate, endDate, payrollTypeID)); ArrearProcessDetails = this.CreateAPDetailObjects(dr); dr.Close(); foreach (ArrearProcessDetail item in ArrearProcessDetails) { dr = new DataReader(ArrearProcessDA.GetArrearProcessDetailItems(tc, item.ID)); item.ArrearProcessDetailItems = this.CreateAPDetailItemObjects(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 } return ArrearProcessDetails; } public DataSet GetArrearProcessDetailsByCCID(string sCCID, DateTime startDate, DateTime endDate, int payrollTypeID) { DataSet ds = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); ds = ArrearProcessDA.GetArrearProcessDetailsByCCID(tc, sCCID, startDate, endDate, payrollTypeID); tc.End(); } catch (Exception e) { throw new Exception(e.Message, e); } return ds; } public DataSet GetArrearProcessDetailsByCCIDAndEmpID2(string sCCID, DateTime startDate, DateTime endDate, string sEmpIDs) { DataSet ds = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); ds = ArrearProcessDA.GetArrearProcessDetailsByCCIDAndEmpID2(tc, sCCID, startDate, endDate, sEmpIDs); tc.End(); } catch (Exception e) { throw new Exception(e.Message, e); } return ds; } public DataSet GetArrearProcessDetailsByCCIDAndEmpID3(string sCCID, DateTime startDate, DateTime endDate, string sEmpIDs) { DataSet ds = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); ds = ArrearProcessDA.GetArrearProcessDetailsByCCIDAndEmpID3(tc, sCCID, startDate, endDate, sEmpIDs); tc.End(); } catch (Exception e) { throw new Exception(e.Message, e); } return ds; } public DataSet GetArrPrssDetailsByCstIDEmpIDLocAndDeptWise(string sCCID, DateTime startDate, DateTime endDate, string sEmpIDs) { DataSet ds = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); ds = ArrearProcessDA.GetArrPrssDetailsByCstIDEmpIDLocAndDeptWise(tc, sCCID, startDate, endDate, sEmpIDs); tc.End(); } catch (Exception e) { throw new Exception(e.Message, e); } return ds; } public DataSet GetArrearProcessDetailsByCCIDAndEmpID(string sCCID, DateTime startDate, DateTime endDate, string sEmpIDs, int payrollTypeID) { DataSet ds = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); ds = ArrearProcessDA.GetArrearProcessDetailsByCCIDAndEmpID(tc, sCCID, startDate, endDate, sEmpIDs, payrollTypeID); tc.End(); } catch (Exception e) { throw new Exception(e.Message, e); } return ds; } public List GetArrearProcessDetailItems(int ArrearProcessDetailID) { List ArrearProcessDetailItems = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetArrearProcessDetailItems(tc, ArrearProcessDetailID)); ArrearProcessDetailItems = this.CreateAPDetailItemObjects(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 } return ArrearProcessDetailItems; } public List GetArrearProcessDetailItemMonthlys(int ArrearProcessDetailItemID) { List ArrearProcessDetailItemMonthlys = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetArrearProcessDetailItemMonthlys(tc, ArrearProcessDetailItemID)); ArrearProcessDetailItemMonthlys = this.CreateAPDetailItemMonthlyObjects(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 } return ArrearProcessDetailItemMonthlys; } public List GetArrearProcessCostDists(int ArrearProcessDetailID) { List ArrearProcessCostDists = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(ArrearProcessDA.GetArrearProcessCostDists(tc, ArrearProcessDetailID)); ArrearProcessCostDists = this.CreateAPCostDistObjects(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 } return ArrearProcessCostDists; } public bool IsExist(DateTime dt, int payrollTypeID) { bool isExist = false; TransactionContext tc = null; try { tc = TransactionContext.Begin(); isExist = ArrearProcessDA.IsExist(tc, dt, payrollTypeID); //accessCards = this.CreateObjects(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 } return isExist; } public void Approve(ArrearProcess prc, int payrollTypeID, DateTime nextPayProcessDate) { TransactionContext tc = null; try { tc = TransactionContext.Begin(); ArrearProcessDA.Approve(tc, prc, payrollTypeID, nextPayProcessDate); 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 }