public List<DeliverDetailQuery> GetDeliverDetail(DeliverDetailQuery dd) { try { return _IDeliverDetailDao.GetDeliverDetail(dd); } catch (Exception ex) { throw new Exception("DeliverDetailMgr-->GetDeliverDetail-->" + ex.Message, ex); } }
public List<DeliverDetailQuery> OrderDetailRestructuring(List<DeliverDetailQuery> ddq, string type = "0", bool since = false) { Dictionary<uint, List<DeliverDetailQuery>> OneProduct = new Dictionary<uint, List<DeliverDetailQuery>>();//單一商品 Dictionary<uint, List<DeliverDetailQuery>> Combination = new Dictionary<uint, List<DeliverDetailQuery>>();//組合商品 ArrayList CombinationHead = new ArrayList();//組合商品名稱 ArrayList CombinationTail = new ArrayList();//組合商品中子商品名稱 // ArrayList NewOrderDetail = new ArrayList();//新商品資料 ArrayList SinceOrder = new ArrayList();//自出商品 Dictionary<uint, uint> ProductFreightSet = new Dictionary<uint, uint> { { 1, 1 }, { 2, 2 }, { 3, 1 }, { 4, 2 }, { 5, 5 }, { 6, 5 } }; Dictionary<uint, string> FreightSet = new Dictionary<uint, string> { { 1, "常溫" }, { 2, "冷凍" }, { 5, "冷藏" } }; List<DeliverDetailQuery> newStore = new List<DeliverDetailQuery>();//新商品資料 List<DeliverDetailQuery> ndd = new List<DeliverDetailQuery>(); foreach (var item in ddq) { if (item.combined_mode > 1)//order_detail.combined_mode 組合商品 0:一般 1:組合 2:子商品 { if (item.item_mode == 1)//order_detail.item_mode 0:單一商品, 1:父商品, 2:子商品 { CombinationHead.Add(item); } else { CombinationTail.Add(item); } } else { if (since) { if (type == "2")//deliver_master.type 出貨類別,1:統倉出貨,2:供應商自行出貨,3:供應商調度出貨,4:退貨,5:退貨瑕疵,6:瑕疵(目前數據中只有1和2兩種) { SinceOrder.Add(item); } } uint fset = 0; ndd.Add(item); if (ProductFreightSet.TryGetValue(item.product_freight_set, out fset)) { } if (OneProduct.ContainsKey(fset)) { OneProduct[fset] = ndd; } else { OneProduct.Add(fset, ndd); } } } uint freightset = 0; ndd = new List<DeliverDetailQuery>(); foreach (var item in CombinationHead) { DeliverDetailQuery dq = new DeliverDetailQuery(); dq = (DeliverDetailQuery)item; if (ProductFreightSet.TryGetValue(dq.product_freight_set, out freightset)) { } ndd.Add(dq); if (Combination.ContainsKey(freightset)) { Combination[freightset] = ndd; } else { Combination.Add(freightset, ndd); } //Combination.Add(freightset,ndd); foreach (var i in CombinationTail) { DeliverDetailQuery dqt = new DeliverDetailQuery(); dqt = (DeliverDetailQuery)i; //如果子商品是此父商品下的子商品 if (dq.parent_id == dqt.parent_id && dq.pack_id == dqt.pack_id) { dqt.buy_num = dqt.buy_num * dqt.parent_num; ndd.Add(dqt); if (Combination.ContainsKey(freightset)) { Combination[freightset] = ndd; } else { Combination.Add(freightset, ndd); } } } } foreach (var item in FreightSet) { if (OneProduct.ContainsKey(item.Key)) { newStore.AddRange(OneProduct[item.Key]); } if (Combination.ContainsKey(item.Key)) { newStore.AddRange(Combination[item.Key]); } } foreach (var item in SinceOrder) { DeliverDetailQuery sddq = new DeliverDetailQuery(); sddq = (DeliverDetailQuery)item; newStore.Add(sddq); } return newStore; }
/// <summary> /// 獲取grid的數據 /// </summary> /// <returns></returns> public HttpResponseBase GetDeliverDetail() { string json = String.Empty; StringBuilder sb = new StringBuilder(); List<DeliverDetailQuery> store = new List<DeliverDetailQuery>(); List<DeliverDetailQuery> cancel = new List<DeliverDetailQuery>();//取消狀態列表 List<DeliverDetailQuery> newstore = new List<DeliverDetailQuery>();//去掉組合商品中的父商品 DeliverDetailQuery query = new DeliverDetailQuery(); try { query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量 query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25");//用於分頁的變量 _DeliverDetailMgr = new DeliverDetailMgr(mySqlConnectionString); if (!string.IsNullOrEmpty(Request.Params["deliver_id"])) { query.deliver_id = uint.Parse(Request.Params["deliver_id"]); } store = _DeliverDetailMgr.GetDeliverDetail(query); uint[] cancelstatus = { 5, 89, 90, 91, 92 };//取消 IList cstatus = (IList)cancelstatus; foreach (var item in store) { if (item.item_mode != 1) { newstore.Add(item); if (cstatus.Contains(item.detail_status)) { cancel.Add(item); } } } IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd"; json = "{success:true,normaldata:" + JsonConvert.SerializeObject(newstore, Formatting.Indented, timeConverter) + ",canceldata:" + JsonConvert.SerializeObject(cancel, Formatting.Indented, timeConverter) + "}";//返回json數據 } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }