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 OPIPayment Service [Serializable] public class OPIPaymentService : ServiceTemplate, IOPIPaymentService { #region Private functions and declaration Cache _cache = new Cache(typeof(OPIPayment)); public OPIPaymentService() { } private void MapObject(OPIPayment oOPIPayment, DataReader oReader) { base.SetObjectID(oOPIPayment, oReader.GetID("OPIPaymentID")); oOPIPayment.OPIItemID = oReader.GetID("OPIItemID"); oOPIPayment.EmployeeID = oReader.GetID("EmployeeID"); oOPIPayment.PaymentDate = oReader.GetDateTime("PaymentDate").Value; oOPIPayment.Amount = oReader.GetDouble("Amount").Value; oOPIPayment.TaxAmount = oReader.GetDouble("TaxAmount").Value; oOPIPayment.Remarks = oReader.GetString("Remarks"); oOPIPayment.CreatedBy = oReader.GetID("CreatedBy"); oOPIPayment.CreatedDate = oReader.GetDateTime("CreationDate").Value; oOPIPayment.ModifiedBy = oReader.GetID("ModifiedBy"); oOPIPayment.ModifiedDate = oReader.GetDateTime("ModifiedDate"); this.SetObjectState(oOPIPayment, Ease.CoreV35.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { OPIPayment oOPIPayment = new OPIPayment(); MapObject(oOPIPayment, oReader); return oOPIPayment as T; } protected OPIPayment CreateObject(DataReader oReader) { OPIPayment oOPIPayment = new OPIPayment(); MapObject(oOPIPayment, oReader); return oOPIPayment; } #endregion #region Service implementation public OPIPayment Get(ID id) { OPIPayment oOPIPayment = new OPIPayment(); #region Cache Header oOPIPayment = (OPIPayment)_cache["Get", id] as OPIPayment; if (oOPIPayment != null) return oOPIPayment; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oReader = new DataReader(OPIPaymentDA.Get(tc, id)); if (oReader.Read()) { oOPIPayment = 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 } #region Cache Footer _cache.Add(oOPIPayment, "Get", id); #endregion return oOPIPayment; } public string GetNextCode() { TransactionContext tc = null; string _code = ""; try { tc = TransactionContext.Begin(); _code = GlobalFunctionService.GetMaxCode(tc, "opipaymentitem", "codeautogenerate", "OPIPayment", "Code"); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return _code; } public ObjectsTemplate Get() { #region Cache Header ObjectsTemplate oOPIPayments = _cache["Get"] as ObjectsTemplate; if (oOPIPayments != null) return oOPIPayments; #endregion TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(OPIPaymentDA.Get(tc)); oOPIPayments = 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 } #region Cache Footer _cache.Add(oOPIPayments, "Get"); #endregion return oOPIPayments; } public DataSet GetDataSetOfPaymentEmployees(ID nOpiItemID, EnumOpiType nOpiType) { DataSet dsEmployees = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(true); dsEmployees = OPIPaymentDA.GetDataSetOfPaymentEmployees(tc, nOpiItemID, nOpiType); tc.End(); } catch (Exception e) { throw new ServiceException("Failed to Get Employee ", e); } return dsEmployees; } public ID Save(OPIPayment oOPIPayment) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); if (oOPIPayment.IsNew) { int id = tc.GenerateID("OPIPayment", "OPIPaymentID"); base.SetObjectID(oOPIPayment, ID.FromInteger(id)); OPIPaymentDA.Insert(tc, oOPIPayment); } else { OPIPaymentDA.Update(tc, oOPIPayment); } tc.End(); return oOPIPayment.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 opiPayments) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); foreach (OPIPayment oPayment in opiPayments) { int id = tc.GenerateID("OPIPayment", "OPIPaymentID"); base.SetObjectID(oPayment, ID.FromInteger(id)); oPayment.CreatedBy = User.CurrentUser.ID; oPayment.CreatedDate = DateTime.Now; OPIPaymentDA.Insert(tc, oPayment); } 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); OPIPaymentDA.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 }