public static void DisposeContext() { // Read current context DBERP db = CallContext.GetData(DBContextName) as DBERP; // If there's a context if (db != null) { // Dispose it.. freeing any connection and resources used db.Dispose(); // Remove context instance from the thread's bag CallContext.SetData(DBContextName, null); } }
/// <summary> /// 取得訂單的發票號碼 /// </summary> /// <param name="orderNo"></param> /// <returns></returns> public string GetEinvoiceNoByOrderNo(string orderNo) { string einvoiceNo = string.Empty; DBERP db = new DBERP(); var order = db.Rinnai_Service_Ledger_Entry.Where(o => o.Service_Order_No_ == orderNo && o.Document_Type == 2).FirstOrDefault(); if (order == null) { throw new Exception("[系統]無法取得該訂單相關資料"); } var orderDealis = db.Rinnai_Sales_Invoice_Line.Where(o => o.Document_No_ == order.Document_No_ && o.VAT_Transaction_Number != "").FirstOrDefault(); if (orderDealis == null) { throw new Exception("[系統]無法取得該訂單相關資料"); } einvoiceNo = orderDealis.VAT_Transaction_Number; return(einvoiceNo); }
/// <summary> /// 取得其他資訊資訊(包含開立部門) 並依開立部門分類 近來為日期分類,出去為部門分類 /// </summary> /// <param name="data"></param> private void GetDeatilsInfo(ref Dictionary <string, List <EinvoiceDataModel> > data) { DBERP erpDB = new DBERP(); HRISDB smartmanDB = new HRISDB(); PORTALDB portalDB = new PORTALDB(); foreach (var d in data) { var model = d.Value; foreach (var inv in model) { string invNo = inv.Data.MInvoiceNumber; #region 依照發票號碼取出訂單號以及開立單位代碼 inv.Detalis = erpDB.Rinnai_Sales_Invoice_Line .Where(o => o.VAT_Transaction_Number == invNo) .Select(o => new DetalisInfo() { OrderNo = o.Shipment_No_, DepartmentCode = o.Shortcut_Dimension_1_Code }) .FirstOrDefault(); #endregion 依照發票號碼取出訂單號以及開立單位代碼 #region 找出單位主管以及單位名稱 if (inv.Detalis != null) { var detalis = smartmanDB.CODEDTL .Where(s => s.TYPECD == "UNIT" && s.CODECD == inv.Detalis.DepartmentCode).First(); inv.Detalis.DepartmentName = detalis.CODENAME; //var mailObj = portalDB.Employee.Where(o => o.EmployeeID == detalis.Remark).FirstOrDefault(); //inv.Detalis.MailToObject = mailObj == null ? "" : mailObj.ADAccount; } else { inv.Detalis = new DetalisInfo() { OrderNo = "查無資料", DepartmentName = "查無資料", DepartmentCode = "查無資料", MailToObject = new List <string>() { PublicRepository.AdminEmail } }; } #endregion 找出單位主管以及單位名稱 } #region 依照開立單位分類群組 List <EinvoiceDataModel> preGroup = new List <EinvoiceDataModel>(); foreach (var da in data) { foreach (var item in da.Value) { preGroup.Add(item); } } Dictionary <string, List <EinvoiceDataModel> > groupDepInv = preGroup .GroupBy(o => o.Detalis.DepartmentCode) .ToDictionary(g => g.Key, g => g.ToList()); data = groupDepInv; #endregion 依照開立單位分類群組 } }