Exemplo n.º 1
0
 public List<DeliverDetailQuery> GetDeliverDetail(DeliverDetailQuery dd)
 {
     try
     {
         return _IDeliverDetailDao.GetDeliverDetail(dd);
     }
     catch (Exception ex)
     {
         throw new Exception("DeliverDetailMgr-->GetDeliverDetail-->" + ex.Message, ex);
     }
 }
Exemplo n.º 2
0
        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;

        }
Exemplo n.º 3
0
        /// <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;
        }