/// <summary>
        /// 供應商出貨單
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase OrderWaitDeliverList()
        {
            string jsonStr = String.Empty;
            StringBuilder sb = new StringBuilder();
            HashEncrypt hmd5 = new HashEncrypt();
            _IOrderSlaveMgr = new OrderSlaveMgr(mySqlConnectionString);
            _OrderPaymentNcccMgr = new OrderPaymentNcccMgr(mySqlConnectionString);
            _SinopacMgr = new SinopacDetailMgr(mySqlConnectionString);
            _vendorImp = new VendorMgr(mySqlConnectionString);
            try
            {
                #region 前提查詢條件
                if (!string.IsNullOrEmpty(Request.Params["search_type"]))//查詢條件
                {
                    int search_type = int.Parse(Request.Params["search_type"]);
                    string searchcontent = "";
                    if (!string.IsNullOrEmpty(Request.Params["searchcontent"]))
                    {
                        searchcontent = Request.Params["searchcontent"];
                    }
                    switch (search_type)
                    {
                        case 1:
                            sb.AppendFormat(" and om.order_id LIKE '%{0}%' ", searchcontent);
                            break;
                        case 2:
                            sb.AppendFormat(" AND om.order_name LIKE '%{0}%' ", searchcontent);
                            break;
                        case 3:
                            sb.AppendFormat(" AND u.user_email LIKE '%{0}%' ", searchcontent);
                            break;
                        case 4:
                            sb.AppendFormat(" AND om.delivery_name LIKE '%{0}%' ", searchcontent);
                            break;
                        case 5:
                            sb.AppendFormat(" AND om.source_trace LIKE '%{0}%' ", searchcontent);
                            break;
                        default:
                            sb.Append(" ");
                            break;
                    }
                }
                if (!string.IsNullOrEmpty(Request.Params["search_vendor"]))//供應商條件
                {
                    if (int.Parse(Request.Params["search_vendor"]) != 0)
                    {
                        sb.AppendFormat("  AND os.vendor_id = '{0}' ", Request.Params["search_vendor"]);
                    }
                }
                #endregion
                List<OrderSlaveQuery> store = new List<OrderSlaveQuery>();
                OrderSlaveQuery query = new OrderSlaveQuery();
                query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量
                query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25");//用於分頁的變量

                int totalCount = 0;
                store = _IOrderSlaveMgr.GetOrderWaitDeliver(query, sb.ToString(), out totalCount);//查询出供應商出貨單

                int vendor_id = 0;
                string loginIdStr = string.Empty;
                string mdlogin_id = string.Empty;

                StringBuilder Order_id_store = new StringBuilder();
                foreach (var item in store)
                {
                    Order_id_store.AppendFormat("{0},", item.order_id);
                }
                string dtSql = "and order_id in(" + Order_id_store.ToString().TrimEnd(',') + ") ";//去查詢DataTable
                DataTable _dtNccc = _OrderPaymentNcccMgr.OrderPaymentNccc(null, dtSql);
                DataTable _dtSino = _SinopacMgr.GetSinopacDetai(null, dtSql);
                // String Sql = "123"; 
                foreach (var item in store)
                {
                    //組裝用於登錄到供應商後臺的金鑰
                    vendor_id = Convert.ToInt32(item.vendor_id);
                    loginIdStr = _vendorImp.GetLoginId(vendor_id);
                    mdlogin_id = hmd5.Md5Encrypt(loginIdStr, "MD5");
                    //http://localhost:32088/?vendor_id=2&key=f32bef1b57de24330d8bf900cee4ba5e
                    item.key = vendorServerPath + "?vendor_id=" + item.vendor_id + "&key=" + hmd5.Md5Encrypt(mdlogin_id + loginIdStr, "MD5");

                    item.status = "待出貨";
                    if (item.order_payment == 1)//付款方式为ATM
                    {
                        DataRow[] rows = _dtSino.Select("order_id='" + item.order_id + "'");
                        if (rows.Count() != 0)
                        {
                            item.pay_time = DateTime.Parse(rows[0]["pay_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                        }
                        else { item.pay_time = ""; }
                    }
                    else
                    {
                        DataRow[] rows = _dtNccc.Select("order_id='" + item.order_id + "'");
                        if (rows.Count() != 0)
                        {
                            item.pay_time = DateTime.Parse(rows[0]["pay_time"].ToString()).ToString("yyyy/MM/dd HH:mm:ss");
                        }
                        else { item.pay_time = ""; }
                    }
                }
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd";
                jsonStr = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(store, 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);
                jsonStr = "{success:false,msg:0}";
            }
            this.Response.Clear();
            this.Response.Write(jsonStr.ToString());
            this.Response.End();
            return this.Response;
        }
        /// <summary>
        /// 匯出供應商出貨單
        /// </summary>
        public void OrderWaitDeliverExport()
        {
            string json = string.Empty;
            StringBuilder sb = new StringBuilder();
            try
            {
                #region 前提查詢條件

                string type = Request.Params["search_type"];
                if (!string.IsNullOrEmpty(type.Trim()) && !type.Equals("null"))//查詢條件 || 
                {

                    int search_type = int.Parse(Request.Params["search_type"]);
                    string searchcontent = "";
                    if (!string.IsNullOrEmpty(Request.Params["search_type"]))
                    {
                        searchcontent = Request.Params["searchcontent"];
                    }
                    switch (search_type)
                    {
                        case 1:
                            sb.AppendFormat(" and om.order_id LIKE '%{0}%' ", searchcontent);
                            break;
                        case 2:
                            sb.AppendFormat(" AND om.order_name LIKE '%{0}%' ", searchcontent);
                            break;
                        case 3:
                            sb.AppendFormat(" AND u.user_email LIKE '%{0}%' ", searchcontent);
                            break;
                        case 4:
                            sb.AppendFormat(" AND om.delivery_name LIKE '%{0}%' ", searchcontent);
                            break;
                        case 5:
                            sb.AppendFormat(" AND om.source_trace LIKE '%{0}%' ", searchcontent);
                            break;
                        default:
                            sb.Append(" ");
                            break;
                    }
                }
                type = Request.Params["search_vendor"];
                if (!string.IsNullOrEmpty(Request.Params["search_vendor"]) && !type.Equals("null"))//供應商條件
                {
                    if (int.Parse(Request.Params["search_vendor"]) != 0)
                    {
                        sb.AppendFormat("  AND os.vendor_id = '{0}' ", Request.Params["search_vendor"]);
                    }
                }
                #endregion
                string fileName = "order_deliver" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
                List<OrderSlaveQuery> store = new List<OrderSlaveQuery>();
                DataTable _dtZip = new DataTable();
                _zipMgr = new ZipMgr(mySqlConnectionString);
                _dtZip = _zipMgr.ZipTable(null, null);
                OrderSlaveQuery query = new OrderSlaveQuery();
                int totalCount = 0;
                _IOrderSlaveMgr = new OrderSlaveMgr(mySqlConnectionString);
                query.IsPage = false;
                store = _IOrderSlaveMgr.GetOrderWaitDeliver(query, sb.ToString(), out totalCount);//匯出出供應商出貨單
                DataTable dtHZ = new DataTable();
                string newExcelName = string.Empty;
                dtHZ.Columns.Add("付款單號", typeof(String));
                dtHZ.Columns.Add("轉單時間", typeof(String));
                dtHZ.Columns.Add("供應商", typeof(String));
                dtHZ.Columns.Add("收貨人", typeof(String));
                // dtHZ.Columns.Add("收貨人手機", typeof(String));
                //dtHZ.Columns.Add("收貨人地址", typeof(String));
                dtHZ.Columns.Add("備註", typeof(String));

                for (int i = 0; i < store.Count; i++)
                {
                    DataRow dr = dtHZ.NewRow();
                    dr[0] = store[i].order_id;
                    dr[1] = store[i].order_date_pay;
                    dr[2] = store[i].vendor_name_simple;
                    dr[3] = store[i].delivery_name;
                    //dr[4] = store[i].delivery_mobile;
                    //DataRow[] rows = _dtZip.Select("zipcode='" + store[i].delivery_zip + "'");
                    //StringBuilder sbaddress = new StringBuilder();
                    //if (rows.Count() != 0)
                    //{
                    //    dr[5] = sbaddress.Append(rows[0]["middle"].ToString() + rows[0]["small"].ToString());
                    //}
                    //sbaddress.Append(store[i].delivery_address);
                    //string address = sbaddress.ToString();
                    //address = address.Replace(',', ',');
                    //address = address.Replace("\n", "");
                    //dr[5] = address;
                    store[i].note_order = store[i].note_order.Replace(',', ',');
                    store[i].note_order = store[i].note_order.Replace("\n", "");
                    dr[4] = store[i].note_order;
                    dtHZ.Rows.Add(dr);
                }

                if (!System.IO.Directory.Exists(Server.MapPath(excelPath)))
                {
                    System.IO.Directory.CreateDirectory(Server.MapPath(excelPath));
                }
                string newName = string.Empty;
                newName = Server.MapPath(excelPath) + fileName;

                if (System.IO.File.Exists(newName))
                {
                    //設置文件的屬性,以防刪除文件的時候因為文件的屬性造成無法刪除
                    System.IO.File.SetAttributes(newName, FileAttributes.Normal);
                    System.IO.File.Delete(newName);
                }
                StringWriter sw = ExcelHelperXhf.SetCsvFromData(dtHZ, fileName);
                Response.Clear();
                Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
                Response.ContentType = "application/ms-excel";
                Response.ContentEncoding = Encoding.Default;
                Response.Write(sw);
                Response.End();


                //StringWriter sw = ExcelHelperXhf.SetCsvFromData(dtHZ, fileName);
                //Response.Clear();
                //Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(fileName));
                //Response.ContentType = "application/ms-excel";
                //Response.ContentEncoding = Encoding.Default;
                //Response.Write(sw);
                //Response.End();

                //MemoryStream ms = ExcelHelperXhf.ExportDT(dtHZ, "order_deliver" + "_" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
                //Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
                //Response.BinaryWrite(ms.ToArray());
            }
            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(jsonStr.ToString());
            //this.Response.End();
            //return this.Response;
        }
        /// <summary>
        /// 供應商後台:訂單管理>供應商調度出貨>要出的貨物信息
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase AllOrderDeliver()
        {
            uint Normal_Subtotal = 0;//常溫商品總額--
            uint Hypothermia_Subtotal = 0;//低溫商品總額---
            uint All_Normal_Subtotal = 0;//當日常溫運費總額
            uint All_Hypothermia_Subtotal = 0;//當日低溫運費總額
            uint Order_Freight_Normal = 0;//常溫運費
            uint Order_Freight_Low = 0;//低溫運費
            uint All_Order_Freight_Normal = 0;//當日常溫運費--
            uint All_Order_Freight_Low = 0;//當日低溫運費--

            string json = string.Empty;
            try
            {
                string detail_id = "";
                if (!string.IsNullOrEmpty(Request.Params["rowIDs"]))
                {
                    detail_id = Request.Params["rowIDs"];
                }
                detail_id = detail_id.TrimEnd(',');//去掉最後一個分割符號
                string[] Sid_Row = detail_id.Split(',');//拆分
                string Sid = Sid_Row[Sid_Row.Length - 1];//獲取最後一個計算出出貨時間
                //通過sid去order_slave查詢order_id;
                //通過order_id查詢在order_master中order_date_pay。
                OrderSlaveQuery query = new OrderSlaveQuery();
                query.Slave_Id = uint.Parse(Sid);
                _IOrderSlaveMgr = new OrderSlaveMgr(mySqlConnectionString);
                DateTime time = _IOrderSlaveMgr.GetOrderDatePay(query).order_date_pay;
                long endtime = CommonFunction.GetPHPTime(time.ToString("yyyy/MM/dd 23:59:59"));
                uint vendor_id = (Session["vendor"] as BLL.gigade.Model.Vendor).vendor_id;
                //(計算這些數據參照自vendor.gigade100.com/order/all_order_deliver.php 第209~266行)
                #region 計算供應商當天的常溫和冷凍的總運費
                List<OrderDetailQuery> query1 = new List<OrderDetailQuery>();
                _OrderDetailMgr = new OrderDetailMgr(mySqlConnectionString);
                query1 = _OrderDetailMgr.GetOrderDetailToSum(vendor_id, endtime);

                foreach (var item in query1)
                {
                    if (item.item_mode == 1)
                        continue;
                    if (item.Product_Freight_Set == PRODUCT_FREIGHT_NORMAL || item.Product_Freight_Set == PRODUCT_FREIGHT_NO_NORMAL)//常溫,常溫免運
                    {
                        if (item.item_mode == 2)//組合商品
                        {
                            All_Normal_Subtotal += item.Single_Price * item.parent_num;
                        }
                        else
                        {
                            All_Normal_Subtotal += item.Single_Price * item.Buy_Num;
                        }
                    }
                    else if (item.Product_Freight_Set == PRODUCT_FREIGHT_LOW || item.Product_Freight_Set == PRODUCT_FREIGHT_NO_LOW) //冷凍,冷凍免運
                    {
                        if (item.item_mode == 2)//組合商品
                        {
                            All_Hypothermia_Subtotal += item.Single_Price * item.parent_num;
                        }
                        else
                        {
                            All_Hypothermia_Subtotal += item.Single_Price * item.Buy_Num;
                        }
                    }
                }
                #endregion

                #region 計算運費


                OrderDetailQuery oddquery = new OrderDetailQuery();
                oddquery.Vendor_Id = vendor_id;
                _OrderDetailMgr = new OrderDetailMgr(mySqlConnectionString);
                int total = 0;

                string sq = string.Format(" AND os.slave_id in ({0}) ORDER BY od.slave_id ASC ,od. combined_mode ASC , od.item_mode ASC ", detail_id);
                List<OrderDetailQuery> query2 = new List<OrderDetailQuery>();
                oddquery.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量
                oddquery.Limit = Convert.ToInt32(Request.Params["limit"] ?? "10");//用於分頁的變量
                query1 = _OrderDetailMgr.AllOrderDeliver(oddquery, out total, sq);

                //uint Normal_Subtotal = 0;//常溫商品總額--
                //uint Hypothermia_Subtotal = 0;//低溫商品總額---
                //uint All_Normal_Subtotal = 0;//當日常溫運費總額
                //uint All_Hypothermia_Subtotal = 0;//當日低溫運費總額
                //uint Order_Freight_Normal = 0;//常溫運費
                //uint Order_Freight_Low = 0;//低溫運費
                //uint All_Order_Freight_Normal = 0;//當日常溫運費--
                //uint All_Order_Freight_Low = 0;//當日低溫運費--


                foreach (var item in query1)
                {
                    if (item.item_mode == 1)
                        continue;
                    //商品總額計算(當下出貨金額與運費)
                    if (item.Product_Freight_Set == PRODUCT_FREIGHT_NORMAL || item.Product_Freight_Set == PRODUCT_FREIGHT_NO_NORMAL)//常溫,常溫免運
                    {
                        if (item.item_mode == 2)
                        {

                            Normal_Subtotal += item.Single_Price * item.parent_num;
                            item.Buy_Num = item.Buy_Num * item.parent_num;
                            item.Single_Price = item.Single_Price * item.parent_num;

                            //Normal_Subtotal += item.Single_Price * item.parent_num;//---
                            //item.Buy_Num = item.Buy_Num * item.parent_num;//-------
                            //item.Single_Money = item.Single_Price * item.Buy_Num;//---------
                        }
                        else
                        {
                            Normal_Subtotal += item.Single_Price * item.Buy_Num;
                            item.Single_Money = item.Single_Price * item.Buy_Num;
                        }
                    }
                    else if (item.Product_Freight_Set == PRODUCT_FREIGHT_LOW || item.Product_Freight_Set == PRODUCT_FREIGHT_NO_LOW)//低溫,低溫免運
                    {
                        if (item.item_mode == 2)
                        {
                            Hypothermia_Subtotal += item.Single_Price * item.parent_num;
                            item.Buy_Num = item.Buy_Num * item.parent_num;
                            item.Single_Price = item.Single_Price * item.parent_num;
                            //Hypothermia_Subtotal += item.Single_Price * item.parent_num;//--------
                            //item.Buy_Num = item.Buy_Num * item.parent_num;//------------
                            //item.Single_Money = item.Single_Price * item.Buy_Num;//---------
                        }
                        else
                        {
                            Hypothermia_Subtotal += item.Single_Price * item.Buy_Num;
                            item.Single_Money = item.Single_Price * item.Buy_Num;
                        }
                    }
                    query2.Add(item);
                }
                _VendorMgr = new VendorMgr(mySqlConnectionString);
                BLL.gigade.Model.Vendor vendor = new BLL.gigade.Model.Vendor();
                vendor.vendor_id = vendor_id;
                vendor = _VendorMgr.GetSingle(vendor);
                //當下運費計算
                if (Normal_Subtotal != 0)
                {
                    if (vendor.freight_normal_limit > Normal_Subtotal)
                    {
                        Order_Freight_Normal = vendor.freight_normal_money;
                    }
                }
                if (Hypothermia_Subtotal != 0)
                {
                    if (vendor.freight_low_limit > Hypothermia_Subtotal && Hypothermia_Subtotal > 0)
                    {
                        Order_Freight_Low = vendor.freight_low_money;
                    }
                }
                //批次單總額運費
                if (All_Normal_Subtotal != 0)
                {
                    if (vendor.freight_normal_limit > All_Normal_Subtotal)
                    {
                        All_Order_Freight_Normal = vendor.freight_normal_money;
                    }
                }
                if (All_Hypothermia_Subtotal != 0)
                {
                    if (vendor.freight_low_limit > All_Order_Freight_Low)
                    {
                        All_Order_Freight_Low = vendor.freight_low_money;
                    }
                }

                #endregion
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd";
                json = "{success:true,Normal_Subtotal:" + Normal_Subtotal + ",Hypothermia_Subtotal:" + Hypothermia_Subtotal + ",Order_Freight_Normal:" + Order_Freight_Normal + ",Order_Freight_Low:" + Order_Freight_Low;
                json += ",All_Order_Freight_Normal:" + All_Order_Freight_Normal + ",All_Order_Freight_Low:" + All_Order_Freight_Low + ",data:" + JsonConvert.SerializeObject(query2, 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,msg:0}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
        /// <summary>
        /// 供應商後台:訂單管理>供應商調度出貨
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase GetDeliverList()
        {
            BLL.gigade.Model.Vendor vendor = Session["vendor"] as BLL.gigade.Model.Vendor;
            uint vendor_id = vendor.vendor_id;
            string json = String.Empty;
            StringBuilder sb = new StringBuilder();
            List<OrderSlaveQuery> store = new List<OrderSlaveQuery>();
            OrderSlaveQuery query = new OrderSlaveQuery();

            string jsonStr = String.Empty;
            try
            {
                if (!string.IsNullOrEmpty(Request.Params["Search"]))
                {
                    sb.AppendFormat(" AND ( om.order_id = '{0}')", Request.Params["Search"]);
                }
                if (!string.IsNullOrEmpty(vendor_id.ToString()))
                {
                    query.vendor_id = vendor_id;
                }
                query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量
                query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "20");//用於分頁的變量
                _IOrderSlaveMgr = new OrderSlaveMgr(mySqlConnectionString);
                int totalCount = 0;
                store = _IOrderSlaveMgr.GetAllOrderWait(query, sb.ToString(), out totalCount);//查询出供應商出貨單
                for (int i = 0; i < store.Count; i++)
                {
                    store[i].pay_time = store[i].order_date_pay.ToString("yyyy/MM/dd HH:mm:ss");//轉單日期
                    store[i].status = "待出貨";
                    store[i].code = store[i].order_date_pay.AddDays(1).ToString("yyyyMMdd");//批次編號  (參照php:/vendor.gigade100.com/order/all_order_deliver.php第67行)
                    store[i].order_createdate = store[i].code;
                    if (i > 0)
                    {
                        for (int j = 0; j < i; j++)
                        {
                            if (store[j].code == store[i].code)
                            {
                                store[i].code = "—";
                                break;
                            }
                        }
                    }
                }
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd";
                jsonStr = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(store, 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);
                jsonStr = "{success:false,msg:0}";
            }
            this.Response.Clear();
            this.Response.Write(jsonStr);
            this.Response.End();
            return this.Response;
        }
        /// <summary>
        /// 自出商品列表
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase VendorWaitDeliverList()
        {
            string jsonStr = String.Empty;
            StringBuilder sb = new StringBuilder();
            _IOrderSlaveMgr = new OrderSlaveMgr(mySqlConnectionString);

            try
            {
                List<OrderSlaveQuery> store = new List<OrderSlaveQuery>();
                OrderSlaveQuery query = new OrderSlaveQuery();
                query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量
                query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25");//用於分頁的變量
                query.vendor_id = ((BLL.gigade.Model.Vendor)Session["vendor"]).vendor_id;//Convert.ToUInt32((System.Web.HttpContext.Current.Session["caller"] as Caller).user_id);
                int totalCount = 0;
                store = _IOrderSlaveMgr.GetVendorWaitDeliver(query, sb.ToString(), out totalCount);//查询出供應商出貨單Vendor delivery
                int[] map = { 4, 1, 2, 3 };
                Dictionary<int, int[]> delivery_store_arrival_period = new Dictionary<int, int[]>();//參考路径:vendor.gigade100.com/order/order_wait_deliver.php第100行
                delivery_store_arrival_period.Add(1, map);
                delivery_store_arrival_period.Add(10, map);
                delivery_store_arrival_period.Add(16, map);
                delivery_store_arrival_period.Add(17, map);
                #region 到貨時段//0,不限時1,12:00以前
                List<Parametersrc> paramentTime = new List<Parametersrc>();//到貨時段
                _ptersrc = new ParameterMgr(mySqlConnectionString);
                paramentTime = _ptersrc.GetAllKindType("Estimated_Arrival_Period");//物流業者
                DataTable _dtDelivery = new DataTable();
                _dtDelivery.Columns.Add("parametercode", typeof(String));
                _dtDelivery.Columns.Add("parameterName", typeof(String));
                _dtDelivery.Columns.Add("remark", typeof(String));
                foreach (var item in paramentTime)
                {
                    DataRow dr = _dtDelivery.NewRow();
                    dr[0] = item.ParameterCode;
                    dr[1] = item.parameterName;
                    dr[2] = item.remark;
                    _dtDelivery.Rows.Add(dr);
                }
                #endregion
                #region 台灣地區的參數
                DataTable _dtZip = new DataTable();
                _zipMgr = new ZipMgr(mySqlConnectionString);
                _dtZip = _zipMgr.ZipTable(null, null);
                #endregion

                foreach (var item in store)//為什麼是待出貨能,因為查詢的條件就是狀態為待出貨的
                {

                    item.status = "待出貨";
                    item.delivery = "";
                    item.pay_time = item.order_date_pay.ToString("yyyy/MM/dd HH:mm:ss");
                    if (delivery_store_arrival_period.Keys.Contains(item.delivery_store))
                    {
                        DataRow[] rows = _dtDelivery.Select("ParameterCode='" + item.estimated_arrival_period + "'");
                        foreach (DataRow row in rows)//篩選出的最多只有一條數據,
                        {
                            item.delivery = "";
                            if (!string.IsNullOrEmpty(row["ParameterCode"].ToString()))
                            {
                                item.delivery = row["ParameterName"].ToString();//---送貨時段
                            }
                        }
                    }
                    DataRow[] ziprows = _dtZip.Select("zipcode='" + item.delivery_zip + "'");
                    foreach (var ziprow in ziprows)
                    {
                        if (!string.IsNullOrEmpty(ziprow["zipcode"].ToString()))
                        {
                            item.delivery_address = item.delivery_zip + "  " + ziprow["middle"].ToString() + ziprow["small"].ToString() + item.delivery_address;
                        }
                    }
                }

                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd";
                jsonStr = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(store, 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);
                jsonStr = "{success:false,msg:0}";
            }
            this.Response.Clear();
            this.Response.Write(jsonStr.ToString());
            this.Response.End();
            return this.Response;
        }
        public HttpResponseBase GetOrderDeliverDetailList()
        {
            StringBuilder addsql = new StringBuilder();
            string json = string.Empty;
            string startTime = Request.Params["start_time"];
            string endTime = Request.Params["end_time"];

            if (!string.IsNullOrEmpty(startTime))
            {
                addsql.AppendFormat(" and om.order_date_pay>='{0}' ", CommonFunction.GetPHPTime(DateTime.Parse(startTime).ToString("yyyy/MM/dd 00:00:00")));
            }
            if (!string.IsNullOrEmpty(endTime))
            {
                addsql.AppendFormat(" and om.order_date_pay<='{0}' ", CommonFunction.GetPHPTime(DateTime.Parse(endTime).ToString("yyyy/MM/dd 23:59:59")));
            }
            addsql.Append(" 	AND od.detail_status = 2	AND product_mode = 1 ");

            BLL.gigade.Model.Vendor modelVendor = Session["vendor"] as BLL.gigade.Model.Vendor;
            StringBuilder sbHtml = new StringBuilder();
            
            try
            {
                //OrderSlave
                OrderSlaveQuery orderSlaveQuery = new OrderSlaveQuery()
                {
                    vendor_id = modelVendor.vendor_id,
                    Slave_Status = 2,//待出貨
                    IsPage = false
                };
                OrderSlaveQuery orderSlave = new OrderSlaveQuery();
                DataTable dtOrderSlave = new DataTable();
                _OrderSlaveMgr = new OrderSlaveMgr(mySqlConnectionString);

                //OrderDetail
                OrderDetailQuery orderDetailQuery = new OrderDetailQuery();

                List<OrderDetailQuery> list = new List<OrderDetailQuery>();
                _OrderDetailMgr = new OrderDetailMgr(mySqlConnectionString);
                int totalCount_OrderDetail = 0;
                Dictionary<OrderDetailQuery, List<OrderDetailQuery>> product_freight_set_mapping = new Dictionary<OrderDetailQuery, List<OrderDetailQuery>>();

                //根據時間搜索order_id
                dtOrderSlave = _OrderSlaveMgr.GetListPrint(orderSlaveQuery, addsql.ToString());
                if (dtOrderSlave.Rows.Count > 0)
                {
                    //循環order_id
                    foreach (DataRow item in dtOrderSlave.Rows)
                    {
                        //orderSlave
                        orderSlave.order_id = Convert.ToUInt32(item["order_id"]);
                        orderSlave.order_createdate = Convert.ToDateTime(item["order_createdate"]).ToString("yyyy-MM-dd HH:mm:ss");
                        orderSlave.pay_time = Convert.ToDateTime(item["order_date_pay"]).ToString("yyyy-MM-dd HH:mm:ss");
                        orderSlave.order_name = item["order_name"].ToString();
                        orderSlave.delivery_name = item["delivery_name"].ToString();
                        orderSlave.estimated_arrival_period = Convert.ToInt32(item["estimated_arrival_period"]);
                        orderSlave.note_order = item["note_order"].ToString();
                        orderSlave.dispatch = 0;
                        orderSlave.delivery_zip = Convert.ToUInt32(item["delivery_zip"]);
                        orderSlave.delivery_address = item["delivery_address"].ToString();
                        orderSlave.delivery_mobile = item["delivery_mobile"].ToString();

                        //供查詢列表使用
                        orderDetailQuery.Slave_Id = Convert.ToUInt32(item["slave_id"]);
                        list = _OrderDetailMgr.GetOrderDetailList(orderDetailQuery, out totalCount_OrderDetail);
                        sbHtml.Append(GetOrderDeliverDetailHtml(orderSlave, list));
                    }
                }
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd";
                //json = "{success:true,data:" + JsonConvert.SerializeObject(store, Formatting.Indented, timeConverter) + "}";//返回json數據
                json = "{success:true,msg:\"" + sbHtml.ToString() + "\"}";
            }
            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,msg:0}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
        public HttpResponseBase GetOrderDeliverDetail()
        {
            string json = string.Empty;
            string order_id = Request.Params["oid"];
            string p_mode = Request.Params["p_mode"];
            BLL.gigade.Model.Vendor modelVendor = Session["vendor"] as BLL.gigade.Model.Vendor;
            //OrderSlave
            OrderSlaveQuery orderSlaveQuery = new OrderSlaveQuery()
            {
                order_id = Convert.ToUInt32(order_id),
                vendor_id = modelVendor.vendor_id,
                Slave_Status = 2,//待出貨
                IsPage = false
            };
            OrderSlaveQuery orderSlave = new OrderSlaveQuery();
            DataTable dtOrderSlave = new DataTable();
            _OrderSlaveMgr = new OrderSlaveMgr(mySqlConnectionString);
            int totalCount_OrderSlave = 0;

            //OrderDetail
            OrderDetailQuery orderDetailQuery = new OrderDetailQuery();
            //orderDetailQuery.Order_Id = uint.Parse(order_id);
            List<OrderDetailQuery> list = new List<OrderDetailQuery>();
            _OrderDetailMgr = new OrderDetailMgr(mySqlConnectionString);
            int totalCount_OrderDetail = 0;

            try
            {
                dtOrderSlave = _OrderSlaveMgr.GetList(orderSlaveQuery, out totalCount_OrderSlave);
                if (dtOrderSlave.Rows.Count > 0)
                {
                    //orderSlave
                    orderSlave.order_id = Convert.ToUInt32(dtOrderSlave.Rows[0]["order_id"]);
                    orderSlave.order_createdate = dtOrderSlave.Rows[0]["order_createdate"].ToString();
                    orderSlave.pay_time = dtOrderSlave.Rows[0]["order_date_pay"].ToString();
                    orderSlave.order_name = dtOrderSlave.Rows[0]["order_name"].ToString();
                    orderSlave.delivery_name = dtOrderSlave.Rows[0]["delivery_name"].ToString();
                    orderSlave.estimated_arrival_period = Convert.ToInt32(dtOrderSlave.Rows[0]["estimated_arrival_period"]);
                    orderSlave.note_order = dtOrderSlave.Rows[0]["note_order"].ToString();
                    orderSlave.dispatch = modelVendor.dispatch;
                    orderSlave.delivery_zip = Convert.ToUInt32(dtOrderSlave.Rows[0]["delivery_zip"]);
                    orderSlave.delivery_address = dtOrderSlave.Rows[0]["delivery_address"].ToString();
                    orderSlave.delivery_mobile = dtOrderSlave.Rows[0]["delivery_mobile"].ToString();

                    //供查詢列表使用
                    orderDetailQuery.Slave_Id = Convert.ToUInt32(dtOrderSlave.Rows[0]["slave_id"]);
                }

                list = _OrderDetailMgr.GetOrderDetailList(orderDetailQuery, out totalCount_OrderDetail);
                List<OrderDetailQuery> stroes = new List<OrderDetailQuery>();
                stroes = getList(list);
                string html = GetOrderDeliverDetailHtml(orderSlave, stroes);
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd";
                //json = "{success:true,data:" + JsonConvert.SerializeObject(store, Formatting.Indented, timeConverter) + "}";//返回json數據
                json = "{success:true,msg:\"" + html + "\"}";
            }
            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,msg:0}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }