using System; using Ease.Core.Model; using Ease.Core.DataAccess; using Ease.Core.Utility; using System.Collections.Generic; using HRM.BO; using System.Data; namespace HRM.DA { #region Asset Service public class AssetSerialService : ServiceTemplate, IAssetSerialService { public AssetSerialService() { } #region MapObject For Asset private void MapObject(AssetSerial oAssetSerial, DataReader oReader) { base.SetObjectID(oAssetSerial, oReader.GetInt32("AssetSerialID").Value); oAssetSerial.AssetId = oReader.GetInt32("AssetId").Value; oAssetSerial.ReceivedDate = oReader.GetDateTime("ReceivedDate").Value; oAssetSerial.VendorId = oReader.GetInt32("VendorId",0); oAssetSerial.StoreId = oReader.GetInt32("StoreId",0); oAssetSerial.Specification = oReader.GetString("Specification"); oAssetSerial.UniqueIndentifier = oReader.GetString("UniqueIndentifier"); oAssetSerial.Price = oReader.GetDouble("Price", 0); oAssetSerial.ExpiryDays = oReader.GetInt32("ExpiryDays", 0); oAssetSerial.BatchNo = oReader.GetString("BatchNo",null); oAssetSerial.SerialNo = oReader.GetString("SerialNo"); oAssetSerial.Remarks = oReader.GetString("Remarks",null); oAssetSerial.AssetStatus = (EnumAssetStatus)oReader.GetInt32("AssetStatus",0); oAssetSerial.AssetStatusString = oReader.GetInt32("AssetStatus", 0) == 0 ? null :((EnumAssetStatus)oReader.GetInt32("AssetStatus")).ToString(); oAssetSerial.AssetReceiverType = (EnumAssetReceiverType)oReader.GetInt32("AssetReceiverType",0); oAssetSerial.AssetReceiverId = oReader.GetInt32("AssetReceiverId", 0); oAssetSerial.CreatedBy = oReader.GetInt32("CreatedBy", 0); oAssetSerial.CreatedDate = oReader.GetDateTime("CreatedDate").Value; oAssetSerial.ModifiedBy = oReader.GetInt32("ModifiedBy", 0); oAssetSerial.ModifiedDate = oReader.GetDateTime("ModifiedDate"); oAssetSerial.RepairedDate = oReader.GetDateTime("RepairDate",true,DateTime.MinValue); oAssetSerial.VendorName = oReader.GetString("VendorName", true, null); oAssetSerial.Amount = oReader.GetDouble("Amount", true, 0); oAssetSerial.IsTemporaryItem = oReader.GetBoolean("IsTemporary", true,false); oAssetSerial.TillDate = oReader.GetDateTime("TillDate") == null ? null : oReader.GetDateTime("TillDate"); oAssetSerial.AssignDate = oReader.GetDateTime("AssignDate", DateTime.MinValue); oAssetSerial.EmployeeNo= oReader.GetString("EMPLOYEENO", true, null); oAssetSerial.EmployeeName = oReader.GetString("EmployeeName", true, null); oAssetSerial.Designation = oReader.GetString("Designation", true, null); oAssetSerial.Vendor = oReader.GetString("Vendor", true, null); oAssetSerial.Store = oReader.GetString("Store", true, null); oAssetSerial.EmployeeId = oReader.GetInt32("employeeId", true,0); oAssetSerial.FaultybyEmpID = oReader.GetInt32("FaultybyEmpID"); oAssetSerial.AssetName = oReader.GetString("AssetName",true, null); this.SetObjectState(oAssetSerial, Ease.Core.ObjectState.Saved); } protected override T CreateObject(DataReader oReader) { AssetSerial oAssetSerial = new AssetSerial(); MapObject(oAssetSerial, oReader); return oAssetSerial as T; } #endregion #region Service Implemantation public AssetSerial Get(int id) { AssetSerial oAsset = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(AssetSerialDA.Get(tc, id)); if (oreader.Read()) { oAsset = 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 oAsset; } public List Get() { List AssetSerials = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AssetSerialDA.Get(tc)); AssetSerials = 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 AssetSerials; } public int Save(AssetSerial oAssetSerial) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); if (oAssetSerial.IsNew) { int id = tc.GenerateID("AssetSerial", "AssetSerialID"); base.SetObjectID(oAssetSerial, (id)); AssetSerialDA.Insert(tc, oAssetSerial); } else { AssetSerialDA.Update(tc, oAssetSerial); } return oAssetSerial.ID; } 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 DataSet GetFormData(int serialId) { DataSet oGetFormData = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oGetFormData = AssetSerialDA.GetFormData(tc, serialId); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return oGetFormData; } public DataSet GetFormSerialData(int employeeId) { DataSet oGetFormData = new DataSet(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); oGetFormData = AssetSerialDA.GetFormSerialData(tc, employeeId); tc.End(); } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return oGetFormData; } public void Delete(int id) { TransactionContext tc = null; try { tc = TransactionContext.Begin(true); AssetSerialDA.Delete(tc, id); } 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 SaveAssetSerialList(List Items) { TransactionContext tc = null; try { AssetSerial oAsset = new AssetSerial(); int batchID = 0; tc = TransactionContext.Begin(true); DataReader oreader = new DataReader(AssetSerialDA.GetLastAssetSerialBatch(tc)); if (oreader.Read()) { oAsset = this.CreateObject(oreader); } oreader.Close(); if (oAsset.BatchNo == null) { batchID = 1; } else { if (Convert.ToInt32(oAsset.BatchNo) <= 0) { batchID = 1; } else { batchID = Convert.ToInt32(oAsset.BatchNo) + 1; } } foreach (var oAssetSerial in Items) { int oID = 0; if (oAssetSerial.IsNew) { int id = tc.GenerateID("AssetSerial", "ASSETSERIALID"); oAssetSerial.ID = oID = (id); base.SetObjectID(oAssetSerial, (id)); oAssetSerial.isNewAssetTran = true; //if (oAsset.BatchNo == null) //{ // batchID = 1; //} //else //{ // if (Convert.ToInt32(batchID) <= 0) // { // batchID = 1; // } // else // { // batchID = Convert.ToInt32(batchID) + 1; // } //} oAssetSerial.BatchNo = batchID.ToString(); AssetSerialDA.Insert(tc, oAssetSerial); } else { oID = oAssetSerial.ID; AssetSerialDA.Update(tc, oAssetSerial); } } tc.End(); } catch (Exception ex) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(ex); if (ex.Message.Contains("UC_Asset_SerialNo")) { throw new ServiceException("Cannot insert duplicate serial data", ex); } else { throw new ServiceException(ex.Message, ex); } #endregion } return Items; } public List SaveAssetSerialList(TransactionContext tc,List Items) { //TransactionContext tc = null; try { AssetSerial oAsset = new AssetSerial(); int batchID = 0; //tc = TransactionContext.Begin(true); DataReader oreader = new DataReader(AssetSerialDA.GetLastAssetSerialBatch(tc)); if (oreader.Read()) { oAsset = this.CreateObject(oreader); } oreader.Close(); if (oAsset.BatchNo == null) { batchID = 1; } else { if (Convert.ToInt32(oAsset.BatchNo) <= 0) { batchID = 1; } else { batchID = Convert.ToInt32(oAsset.BatchNo) + 1; } } foreach (var oAssetSerial in Items) { int oID = 0; if (oAssetSerial.IsNew) { int id = tc.GenerateID("AssetSerial", "ASSETSERIALID"); oAssetSerial.ID = oID = (id); base.SetObjectID(oAssetSerial, (id)); oAssetSerial.isNewAssetTran = true; oAssetSerial.BatchNo = batchID.ToString(); AssetSerialDA.Insert(tc, oAssetSerial); } else { oID = oAssetSerial.ID; AssetSerialDA.Update(tc, oAssetSerial); } } // tc.End(); } catch (Exception ex) { #region Handle Exception //if (tc != null) // tc.HandleError(); ExceptionLog.Write(ex); if (ex.Message.Contains("UC_Asset_SerialNo")) { throw new ServiceException("Cannot insert duplicate serial data", ex); } else { throw new ServiceException(ex.Message, ex); } #endregion } return Items; } public AssetSerial GetLastAssetSerial(int assetId) { AssetSerial oAsset = null; TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader oreader = new DataReader(AssetSerialDA.GetLastAssetSerial(tc, assetId)); if (oreader.Read()) { oAsset = new AssetSerial(); oAsset = 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 oAsset; } public List GetAssetSerials(DateTime? fromDate, DateTime? toDate, int assetid, int vendorid, int storid, EnumAssetStatus? status, EnumAssetReceiverType? receiverType, string receiverIds) { List AssetSerials = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AssetSerialDA.GetAssetSerials(tc, fromDate, toDate, assetid, vendorid,storid, status, receiverType, receiverIds)); AssetSerials = this.CreateObjects(dr); dr.Close(); tc.End(); foreach(var item in AssetSerials) { item.TempStatus = item.IsTemporaryItem == true ? "Yes" : "No"; item.ReceivedDateString= item.ReceivedDate.ToString("dd/MM/yyyy"); item.AssignDateString=item.AssignDate==DateTime.MinValue ? null : item.AssignDate.ToString("dd/MM/yyyy"); } } catch (Exception e) { #region Handle Exception if (tc != null) tc.HandleError(); ExceptionLog.Write(e); throw new ServiceException(e.Message, e); #endregion } return AssetSerials; } public List GetReceivedAssetSerials(DateTime? receiveDate, EnumAssetReceiverType? receiverType, int receiverId) { List AssetSerials = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AssetSerialDA.GetReceivedAssetSerials(tc, receiveDate, receiverType, receiverId)); AssetSerials = 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 AssetSerials; } public List GetRepairedAssetSerials() { List AssetSerials = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AssetSerialDA.GetRepairedAssetSerials(tc)); AssetSerials = 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 AssetSerials; } public List GetAssetSerialPicker(int assetid, int categoryid, EnumAssetStatus? status) { List AssetSerials = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AssetSerialDA.GetAssetSerialPicker(tc, assetid, categoryid, status)); AssetSerials = 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 AssetSerials; } public List GetAssignSerialsByEmployeeId(EnumAssetReceiverType? receiverType, int receiverId) { List AssetSerials = new List(); TransactionContext tc = null; try { tc = TransactionContext.Begin(); DataReader dr = new DataReader(AssetSerialDA.GetAssignSerialsByEmployeeId(tc, receiverType, receiverId)); AssetSerials = 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 AssetSerials; } #endregion } #endregion }