using Ease.Core.DataAccess; using Ease.Core.Model; using Ease.Core.Utility; using System; using System.Collections.Generic; using System.Data; using HRM.BO; namespace HRM.DA { #region OPIProcess Service public class OPIProcessService : ServiceTemplate, IOPIProcessService { #region Private functions and declaration public OPIProcessService() { } #region OPIProcess private void MapObject(OPIProcess oOPIProcess, DataReader oReader) { base.SetObjectID(oOPIProcess, oReader.GetInt32("OPIProcessID").Value); oOPIProcess.OPIMonth = oReader.GetDateTime("OPIMonth").Value; oOPIProcess.ProcessDate = oReader.GetDateTime("ProcessDate").Value; oOPIProcess.ItemCount = oReader.GetInt32("Count", true, 0); oOPIProcess.CreatedBy = oReader.GetString("CreatedBy") == null ? 0 : oReader.GetInt32("CreatedBy").Value; oOPIProcess.CreatedDate = oReader.GetDateTime("CreationDate").Value; oOPIProcess.ModifiedBy = oReader.GetString("ModifiedBy") == null ? 0 : oReader.GetInt32("ModifiedBy").Value; oOPIProcess.ModifiedDate = oReader.GetDateTime("ModifiedDate"); oOPIProcess.IsApproved = oReader.GetBoolean("IsApproved").Value; oOPIProcess.PayrollTypeID = oReader.GetString("PayrollTypeID") == null ? 0 : oReader.GetInt32("PayrollTypeID").Value; this.SetObjectState(oOPIProcess, Ease.Core.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { OPIProcess oOPIProcess = new OPIProcess(); MapObject(oOPIProcess, oReader); return oOPIProcess as T; } protected OPIProcess CreateObject(DataReader oReader) { OPIProcess oOPIProcess = new OPIProcess(); MapObject(oOPIProcess, oReader); return oOPIProcess; } #endregion #region OPIProcessDetail private void MapProcessDetailObject(OPIProcessDetail oProcessDetail, DataReader oReader) { base.SetObjectID(oProcessDetail, oReader.GetInt32("OPIProcessDetailID").Value); oProcessDetail.AccountNo = oReader.GetString("AccountNo"); oProcessDetail.BankID = oReader.GetInt32("BankID").GetValueOrDefault(); oProcessDetail.BranchID = oReader.GetInt32("BranchID").GetValueOrDefault(); oProcessDetail.CategoryID = oReader.GetInt32("CategoryID").Value; oProcessDetail.DepartmentID = oReader.GetInt32("DepartmentID").Value; oProcessDetail.DesignationID = oReader.GetInt32("DesignationID").Value; oProcessDetail.EmployeeID = oReader.GetInt32("EmployeeID").Value; oProcessDetail.Gender = (EnumGender)oReader.GetInt32("Gender"); oProcessDetail.GradeID = oReader.GetInt32("GradeID").Value; oProcessDetail.IsConfirmed = oReader.GetBoolean("IsConfirmed").Value; oProcessDetail.IsFinalize = oReader.GetBoolean("IsFinalize").Value; oProcessDetail.LocationID = oReader.GetInt32("LocationID").Value; oProcessDetail.OPIProcessID = oReader.GetInt32("OPIProcessID").Value; oProcessDetail.PayrollTypeID = oReader.GetInt32("PayrollTypeID").Value; oProcessDetail.PFMemberType = (EnumPFMembershipType)oReader.GetInt32("PFMemberType"); oProcessDetail.ReligionID = oReader.GetInt32("ReligionID").Value; oProcessDetail.Remarks = oReader.GetString("Remarks"); this.SetObjectState(oProcessDetail, Ease.Core.ObjectState.Saved); } protected List CreateProcessDetailObject(DataReader oReader) { List oProcessDetails = new List(); while (oReader.Read()) { OPIProcessDetail oProcessDetail = new OPIProcessDetail(); MapProcessDetailObject(oProcessDetail, oReader); oProcessDetails.Add(oProcessDetail); } return oProcessDetails; } #endregion #region OPIProcessDetailItem private void MapProcessDetailItemObject(OPIProcessDetailItem oOPIProcessDetailItem, DataReader oReader) { base.SetObjectID(oOPIProcessDetailItem, oReader.GetInt32("OPIProcessDetailItemID").Value); oOPIProcessDetailItem.ChangeNetAmount = oReader.GetDouble("ChangeNetAmount").Value; oOPIProcessDetailItem.Description = oReader.GetString("Description"); oOPIProcessDetailItem.NetAmount = oReader.GetDouble("NetAmount").Value; oOPIProcessDetailItem.TaxAmount = oReader.GetDouble("TaxAmount").Value; oOPIProcessDetailItem.OPIItemID = oReader.GetString("OPIItemID") == null ? 0 : oReader.GetInt32("OPIItemID").Value; //; oReader.GetInt32("OPIItemID").Value); oOPIProcessDetailItem.OPIProcessDetailID = oReader.GetString("OPIProcessDetailID") == null ? 0 : oReader.GetInt32("OPIProcessDetailID").Value; // oReader.GetID("OPIProcessDetailID"); oOPIProcessDetailItem.OPIType = (EnumOpiType)oReader.GetInt32("OPIType").Value; oOPIProcessDetailItem.CreatedBy = oReader.GetString("CreatedBy") == null ? 0 : oReader.GetInt32("CreatedBy").Value; //; oReader.GetInt32("CreatedBy").Value); oOPIProcessDetailItem.CreatedDate = oReader.GetDateTime("CreationDate").Value; oOPIProcessDetailItem.ModifiedBy = oReader.GetString("ModifiedBy") == null ? 0 : oReader.GetInt32("ModifiedBy").Value; oOPIProcessDetailItem.ModifiedDate = oReader.GetDateTime("ModifiedDate"); oOPIProcessDetailItem.PayrollTypeID = oReader.GetString("PayrollTypeID") == null ? 0 : oReader.GetInt32("PayrollTypeID").Value; this.SetObjectState(oOPIProcessDetailItem, Ease.Core.ObjectState.Saved); } protected List CreateProcessDetailItemObject(DataReader oReader) { List oProcessDetailItems = new List(); while (oReader.Read()) { OPIProcessDetailItem oProcessDetailItem = new OPIProcessDetailItem(); MapProcessDetailItemObject(oProcessDetailItem, oReader); oProcessDetailItems.Add(oProcessDetailItem); } return oProcessDetailItems; } #endregion #endregion #region Service implementation public OPIProcess Get(int id, int payrollTypeID) { OPIProcess oOPIProcess = new OPIProcess(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oReader = new DataReader(OPIProcessDA.Get(tc, id, payrollTypeID)); if (oReader.Read()) { oOPIProcess = 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 oOPIProcess; } public OPIProcess Get(DateTime fromdate, int empiD) { OPIProcess oOPIProcess = new OPIProcess(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oReader = new DataReader(OPIProcessDA.Get(tc, fromdate, empiD)); if (oReader.Read()) { oOPIProcess = 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 oOPIProcess; } public List Get(int payrollTypeID) { List oOPIProcesss = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(OPIProcessDA.Get(tc, payrollTypeID)); oOPIProcesss = this.CreateObjects(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 oOPIProcesss; } public List GetbyMonthAndPayrollTypeId(DateTime dOPIMonth, int payrollTypeID) { List oProcesss = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(OPIProcessDA.Get(tc, dOPIMonth, payrollTypeID)); oProcesss = 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 oProcesss; } public List GetProcessDetails(int opiProcessID, int payrollTypeID) { List oProcessDetails = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(OPIProcessDA.GetProcessDetails(tc, opiProcessID, payrollTypeID)); oProcessDetails = this.CreateProcessDetailObject(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 oProcessDetails; } public OPIProcessDetail GetDetail(int employeeID, DateTime processMonth, int payrollTypeID) { List oDetails = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oReader = new DataReader(OPIProcessDA.GetDetails(tc, employeeID, processMonth, payrollTypeID)); oDetails = this.CreateProcessDetailObject(oReader); oReader.Close(); tc.End(); foreach (OPIProcessDetail oDetail in oDetails) { List oItems = new List(); oItems = GetProcessDetailItems(oDetail.ID, payrollTypeID); oDetail.opiProcessDetailItems = oItems; } } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } if (oDetails.Count > 0) return oDetails[0]; else return null; } public DataSet GetOPIRegister(string sOPIItemID, DateTime dOPIMonth, DateTime dOPIMonth2, string sEmpID) { DataSet oOPIRegisters = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oOPIRegisters = OPIProcessDA.GetOPIRegister(tc, sOPIItemID, dOPIMonth, dOPIMonth2, 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 oOPIRegisters; } public List GetProcessDetails(DateTime processMonth, int payrollTypeID) { List oProcessDetails; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(OPIProcessDA.GetProcessDetails(tc, processMonth, payrollTypeID)); oProcessDetails = this.CreateProcessDetailObject(dr); dr.Close(); DataReader drItems = new DataReader(OPIProcessDA.GetProcessDetailsItems(tc, processMonth, payrollTypeID)); List detialItems = this.CreateProcessDetailItemObject(drItems); foreach (OPIProcessDetail pro in oProcessDetails) { foreach (OPIProcessDetailItem detail in detialItems) { if (pro.ID == detail.OPIProcessDetailID) { pro.opiProcessDetailItems.Add(detail); } } } tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return oProcessDetails; } public List GetProcessDetailWithItems(int opiProcessID, int payrollTypeID) { List oProcessDetails = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(OPIProcessDA.GetProcessDetails(tc, opiProcessID, payrollTypeID)); oProcessDetails = this.CreateProcessDetailObject(dr); dr.Close(); tc.End(); foreach (OPIProcessDetail oDetail in oProcessDetails) { List oItems = new List(); oItems = GetProcessDetailItems(oDetail.ID, payrollTypeID); oDetail.opiProcessDetailItems = oItems; } } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return oProcessDetails; } public List GetProcessDetailItems(int nProcessDetailID, int payrollTypeID) { List oProcessDetailItems = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(OPIProcessDA.GetProcessDetailItems(tc, nProcessDetailID, payrollTypeID)); oProcessDetailItems = this.CreateProcessDetailItemObject(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 oProcessDetailItems; } public List GetOPiProcessItems(DateTime dateTime, int payrollTypeID) { List oProcessDetailItems = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(OPIProcessDA.GetProcessDetailsItems(tc, dateTime, payrollTypeID)); oProcessDetailItems = this.CreateProcessDetailItemObject(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 oProcessDetailItems; } public double GetProvisionAmountByEmpID(int nEmpID) { double nAmount = 0; TransactionContext tc = null; try { tc = TransactionContext.Begin(true); nAmount = OPIProcessDA.GetProvisionAmountByEmpID(tc, nEmpID); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return nAmount; } public double GetPrevMonthAmount(int nEmpID, int nOPIItemID, DateTime dFromOpiMonth, DateTime dToOpiMonth) { double nAmount = 0; TransactionContext tc = null; try { tc = TransactionContext.Begin(true); nAmount = OPIProcessDA.GetPrevMonthAmount(tc, nEmpID, nOPIItemID, dFromOpiMonth, dToOpiMonth); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return nAmount; } public DataSet GetDataSetOfOPIRegister(string sSearch) { DataSet dsOPIRegister = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(true); dsOPIRegister = OPIProcessDA.GetDataSetOfOPIRegister(tc, sSearch); tc.End(); } catch (Exception e) { throw new ServiceException("Failed to get OPI Register data due to " + e.Message); } return dsOPIRegister; } public DataSet GetOPIRegister(string sOPIItemID, DateTime dOPIMonth, string sEmpID) { DataSet oOPIRegisters = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oOPIRegisters = OPIProcessDA.GetOPIRegister(tc, sOPIItemID, dOPIMonth, 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 oOPIRegisters; } public DataSet GetIDLCOPIRegister(DateTime dOPIMonth, string sEmpID) { DataSet oOPIRegisters = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oOPIRegisters = OPIProcessDA.GetIDLCOPIRegister(tc, dOPIMonth, 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 oOPIRegisters; } public DataSet GetDetailOtherPayrollItems(string sOPIItemID, DateTime dOPIMonth, string sEmpID) { DataSet oOPIRegisters = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oOPIRegisters = OPIProcessDA.GetDetailOtherPayrollItems(tc, sOPIItemID, dOPIMonth, 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 oOPIRegisters; } public DataSet GetOPITotalValueRegister(DateTime dFromOpiMonth, DateTime dToOpiMonth, int nOPIItemID, string sEmpID) { DataSet oOPIRegisters = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oOPIRegisters = OPIProcessDA.GetOPITotalValueRegister(tc, dFromOpiMonth, dToOpiMonth, nOPIItemID, 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 oOPIRegisters; } //public int Save(OPIProcess oProcess) //{ // TransactionContext tc = null; // try // { // tc = TransactionContext.Begin(true); // if (oProcess.IsNew) // { // int id = tc.GenerateID("OPIProcess", "OPIProcessID"); // base.SetObjectID(oProcess, id); // OPIProcessDA.InsertProcess(tc, oProcess); // } // else // { // OPIProcessDA.UpdateProcess(tc, oProcess); // } // tc.End(); // return oProcess.ID; // } // catch (Exception e) // { // #region Handle Exception // if (tc != null) // tc.HandleError(); // ExceptionLog.Write(e); // throw new ServiceException(e.Message, e); // #endregion // } //} public int SaveProcess(TransactionContext tc, OPIProcess oOPIProcess) { string tableName = "OPIProcess"; try { if (oOPIProcess.IsNew) { int id = tc.GenerateID("OPIProcess", "OPIProcessID"); base.SetObjectID(oOPIProcess, id); OPIProcessDA.InsertProcess(tc, oOPIProcess); } else { OPIProcessDA.UpdateProcess(tc, oOPIProcess); } return oOPIProcess.ID; } catch (Exception e) { #region Handle Exception ExceptionLog.Write(e); string smessage = "Faliled to save opi process (table:" + tableName + ") due to : "; throw new ServiceException(smessage + e.Message, e); #endregion } } public void Save(OPIProcess oProcess, List oPDetails) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); int processId = this.SaveProcess(tc, oProcess); int id = tc.GenerateID("OPIProcessDetail", "OPIProcessDetailID"); int opiProcessDetailItemid = tc.GenerateID("OPIProcessDetailItem", "OPIProcessDetailItemID"); foreach (OPIProcessDetail oPDetail in oPDetails) { id = id + 1; base.SetObjectID(oPDetail, id); oPDetail.OPIProcessID = processId; OPIProcessDA.InsertProcessDetail(tc, oPDetail); foreach (OPIProcessDetailItem oPDItem in oPDetail.opiProcessDetailItems) { opiProcessDetailItemid = opiProcessDetailItemid + 1; oPDItem.OPIProcessDetailID = oPDetail.ID; base.SetObjectID(oPDItem, opiProcessDetailItemid); OPIProcessDA.InsertProcessDetailItem(tc, oPDItem); } } 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(int id, int payrollTypeID) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); OPIProcessDA.DeleteProcess(tc, id, payrollTypeID); 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 Undo(DateTime OpiMonth, int payrollTypeID) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); OPIProcessDA.Undo(tc, OpiMonth, payrollTypeID); 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 UpdateDetail(List oOPIDetails) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); foreach (OPIProcessDetailItem odetail in oOPIDetails) { OPIProcessDA.UpdateSalaryDetail(tc, odetail); } tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } public double GetAmountOnRange(Employee employee, DateTime fromDate, DateTime toDate, int opiID, OpiParameter op) { double fractionMonthAmount = 0; double amount = 0; if (Ease.Core.Utility.Global.DateFunctions.DateDiff("m", GlobalFunctions.FirstDateOfMonth(fromDate), GlobalFunctions.LastDateOfMonth(toDate)) > 2) { amount = new OPIProcessService().GetPrevMonthAmount(employee.ID, opiID, GlobalFunctions.FirstDateOfMonth(fromDate.AddMonths(1)), GlobalFunctions.LastDateOfMonth(toDate.AddMonths(-1))); } bool dataNotFound = false; if (fromDate != Global.DateFunctions.FirstDateOfMonth(fromDate)) { EmployeeGradeSalary oge = new EmployeeGradeSalaryService().Get(employee.ID, fromDate, EnumArrearType.NotPresent); if (oge != null) { if (op != null) { oge.FractionofFromTo = GlobalFunctions.GetFractinalOfMonth(fromDate); //PayrollPayrollGlobalFunctions.GetFraction(oge.EffectDate, (DateTime)oge.TillDate); fractionMonthAmount = new OpiParameterService().GetGradeDefinedAmount(employee, oge.BasicSalary, oge.GrossSalary, oge.FractionofFromTo, op); fractionMonthAmount = fractionMonthAmount * GlobalFunctions.GetFractinalOfMonth(fromDate); dataNotFound = true; } } } if (dataNotFound == false) { fractionMonthAmount = new OPIProcessService().GetPrevMonthAmount(employee.ID, opiID, GlobalFunctions.FirstDateOfMonth(fromDate), GlobalFunctions.LastDateOfMonth(fromDate)); } if (Global.DateFunctions.FirstDateOfMonth(fromDate) != GlobalFunctions.FirstDateOfMonth(toDate)) // if cross two month { fractionMonthAmount = fractionMonthAmount + new OPIProcessService().GetPrevMonthAmount(employee.ID, opiID, GlobalFunctions.FirstDateOfMonth(toDate), GlobalFunctions.LastDateOfMonth(toDate)) * GlobalFunctions.GetFractinalOfTillDate(toDate); } return amount = amount + fractionMonthAmount; } public List GetLastMonthItems(int nID, int payrollTypeID) { List oProcessDetailItems = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(OPIProcessDA.GetLastMonthItems(tc, nID, payrollTypeID)); oProcessDetailItems = this.CreateProcessDetailItemObject(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 oProcessDetailItems; } public DataSet GetEmpOPIPaySlip(DateTime dateTime, string sEmpID) { DataSet oOPIProcesses = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oOPIProcesses = OPIProcessDA.GetEmpOPIPaySlip(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 oOPIProcesses; } public DataSet GetItemWiseOPI(DateTime dFromOPIMonth, int opiItemID, string sEmpID) { DataSet oOPIRegisters = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oOPIRegisters = OPIProcessDA.GetItemWiseOPI(tc, dFromOPIMonth, opiItemID, 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 oOPIRegisters; } public DataSet GetManagersOPI(DateTime dtFromOPI, DateTime dtToOPI, int opiItemID, string sEmpID) { DataSet oOPIRegisters = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oOPIRegisters = OPIProcessDA.GetManagersOPI(tc, dtFromOPI, dtToOPI, opiItemID, 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 oOPIRegisters; } public DateTime? GetLastPaidOPIMonth(int nEmpID) { DateTime? dt; TransactionContext tc = null; try { tc = TransactionContext.Begin(); dt = OPIProcessDA.GetLastPaidOPIMonth(tc, nEmpID); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return dt; } #endregion #region IOPIProcessService Members public int UpdateOnlyProcess(OPIProcess oProcess) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); if (!oProcess.IsNew) { OPIProcessDA.UpdateProcess(tc, oProcess); } tc.End(); return oProcess.ID; } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } } List IOPIProcessService.GetUnApprovedProcess(DateTime dOPIMonth, int payrollTypeID) { List oOPIProcesss = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(OPIProcessDA.GetUnApprovedProcess(tc, dOPIMonth, payrollTypeID)); oOPIProcesss = this.CreateObjects(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 oOPIProcesss; } List IOPIProcessService.Get(DateTime dOPIMonth, int payrollTypeID) { throw new NotImplementedException(); } #endregion } #endregion }