public HttpResponseBase GetProCage1()
 {
     string resultStr = "{success:false}";
     try
     {
         _paraMgr = new ParameterMgr(connectionString);
         resultStr = "{success:true,data:" + JsonConvert.SerializeObject(_paraMgr.QueryUsed(new Parametersrc { ParameterType = "product_cate" }).Where(p => p.TopValue == "0").ToList()) + "}";
     }
     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);
     }
     this.Response.Clear();
     this.Response.Write(resultStr);
     this.Response.End();
     return this.Response;
 }
 public string QueryPara()
 {
     _paraMgr = new ParameterMgr(connectionString);
     string json = string.Empty;
     try
     {
         if (!string.IsNullOrEmpty(Request.QueryString["paraType"]))
         {
             json = _paraMgr.Query(Request.QueryString["paraType"].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 = "[]";
     }
     return json;
 }
        public HttpResponseBase GetPayMentType()
        {
            List<Parametersrc> stores = new List<Parametersrc>();
            _ptersrc = new ParameterMgr(mySqlConnectionString);

            string json = string.Empty;
            try
            {
                stores = _ptersrc.PayforType("order_status");
                //for (int i = 0; i <stores.Count; i++)
                //{
                //    pc = new Parametersrc();
                //    pc.ParameterCode = stores[i].ParameterCode;
                //    pc.remark = stores[i].ParameterCode;
                //    stores.Add(pc);

                //}
                //pc = new Parametersrc();
                //pc.remark = "所有付款單方式";
                //stores.Insert(9999, pc);
                json = "{success:true,data:" + JsonConvert.SerializeObject(stores) + "}";//返回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:true,totalCount:0,data:[]}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
 //取參數表自取數據
 public HttpResponseBase GetZQ()
 {
     string json = "{success:false}";
     Parametersrc p = new Parametersrc();
     DataTable dt = new DataTable();
     _ptersrc = new ParameterMgr(mySqlConnectionString);
     try
     {
         p.ParameterType = "Deliver_Store";
         p.parameterName = "自取";
         dt = _ptersrc.GetTP(p);
         if (dt.Rows.Count > 0)
         {
             json = "{success:true,data:" + JsonConvert.SerializeObject(dt, Formatting.Indented) + "}";//返回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}";
     }
     this.Response.Clear();
     this.Response.Write(json);
     this.Response.End();
     return this.Response;
 }
 //取參數表數據
 public DataTable GetTP(string type)
 {
     string json = string.Empty;
     Parametersrc p = new Parametersrc();
     DataTable dt = new DataTable();
     _ptersrc = new ParameterMgr(mySqlConnectionString);
     try
     {
         p.ParameterType = type;
         dt = _ptersrc.GetTP(p);
         if (dt.Rows.Count > 0)
         {
             return dt;
         }
         else
         {
             return null;
         }
     }
     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);
         return null;
     }
 }
        public HttpResponseBase GetPromoAmountGiftList()
        {
            List<PromotionsAmountGiftQuery> store = new List<PromotionsAmountGiftQuery>();
            string json = string.Empty;
            try
            {
                PromotionsAmountGiftQuery query = new PromotionsAmountGiftQuery();

                #region 獲取query對象數據
                query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");

                if (!string.IsNullOrEmpty(Request.Form["limit"]))
                {
                    query.Limit = Convert.ToInt32(Request.Params["limit"]);
                }

                if (!string.IsNullOrEmpty(Request.Params["ddlSel"]))
                {
                    query.expired = Convert.ToInt32(Request.Params["ddlSel"]);
                }
                #endregion

                _promoAmountGiftMgr = new PromotionsAmountGiftMgr(mySqlConnectionString);

                int totalCount = 0;

                string type = "'G1','G2'";
                store = _promoAmountGiftMgr.Query(query, out totalCount, type);
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";

                foreach (var item in store)
                {
                    if (item.banner_image != "")
                    {
                        item.banner_image = imgServerPath + promoPath + item.banner_image;
                    }
                    else
                    {
                        item.banner_image = defaultImg;
                    }
                    if (!string.IsNullOrEmpty(item.payment_code))
                    {

                        string[] arryPayment = item.payment_code.Split(',');//將payment_code轉化為payment
                        for (int i = 0; i < arryPayment.Length; i++)
                        {
                            if (arryPayment[i] != "0")
                            {
                                _parasrcMgr = new ParameterMgr(mySqlConnectionString);
                                string nameStr = _parasrcMgr.QueryUsed(new Parametersrc { ParameterType = "payment", Used = 1, ParameterCode = arryPayment[i] }).FirstOrDefault().parameterName;
                                if (!string.IsNullOrEmpty(nameStr))
                                {
                                    item.payment += nameStr;
                                }

                                if (i != arryPayment.Length - 1)
                                {
                                    item.payment += ",";
                                }
                            }

                        }
                    }
                }

                json = "{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);
                json = "{success:true,totalCount:0,data:[]}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;


        }
        public HttpResponseBase GetBannerCateBrand()
        {
            string json = "{success:true}";
            _cateBrandMgr = new ProductCategoryBrandMgr(mySqlConnectionString);
            _productCategoryBannerImplMgr = new ProductCategoryBannerMgr(mySqlConnectionString);
            _parameterMgr = new ParameterMgr(mySqlConnectionString);
            try
            {
                if (!string.IsNullOrEmpty(Request.Params["banner_cateid"].ToString()))
                {
                    uint isTryUint = 0;
                    if (uint.TryParse(Request.Params["banner_cateid"].ToString(), out isTryUint))
                    {
                        int banner_cateid = Convert.ToInt32(Request.Params["banner_cateid"].ToString());

                        //獲取新館類別
                        uint XGCateId = _productCategoryBannerImplMgr.GetXGCate().FirstOrDefault().category_id;//獲取754
                        prodCateMgr = new ProductCategoryMgr(mySqlConnectionString);//實例化對象mgr
                        List<ProductCategory> category = prodCateMgr.QueryAll(new ProductCategory { category_display = 1 });//獲取所有的類別 包括隱藏和顯示的
                        List<ProductCategory> cateXGlist = new List<ProductCategory>();//設定對象保存新館所有類別
                        GetAllCategory_idList(category, XGCateId, ref cateXGlist);//獲取所有新館類別
                        List<Parametersrc> pali = _parameterMgr.GetElementType("banner_cate");

                        List<ProductCategoryBrand> XGCateBrandResult = new List<ProductCategoryBrand>();
                        if (pali.Count != 0)
                        {
                            if (cateXGlist != null)
                            {


                                List<ProductCategory> query = category.FindAll(p => p.category_id == banner_cateid).ToList();//判斷是否是類別專區 
                                List<ProductCategoryBrand> ProList = new List<ProductCategoryBrand>();

                                if (query.Count != 0) //新館專區類別設定
                                {
                                    ProList = _cateBrandMgr.GetSaledProduct(XGCateId, banner_cateid);//獲取所有有效商品 以及對應的品牌和館別
                                }
                                else
                                {
                                    ProList = _cateBrandMgr.GetProductByCondi(XGCateId, banner_cateid);
                                }
                                //ProList = _cateBrandMgr.GetSaledProduct(XGCateId);//獲取所有有效商品

                                foreach (ProductCategoryBrand itemcate in ProList)
                                {
                                    ProductCategory querySingle = cateXGlist.Find(p => p.category_id == itemcate.category_id);
                                    if (querySingle != null)
                                    {
                                        itemcate.category_name = querySingle.category_name;
                                        XGCateBrandResult.Add(itemcate);
                                        GetFatherCateBrand(cateXGlist, XGCateId, itemcate, ref  XGCateBrandResult);
                                    }
                                }
                                json = "{success:true,item:" + JsonConvert.SerializeObject(XGCateBrandResult, Formatting.Indented) + "}";//返回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;
        }
        //add by yafeng0715j 2015-08-20 PM
        public HttpResponseBase GetDeliverMasterList()
        {
            DateTime dt = DateTime.Now.AddDays(-1);
            DateTime dtStart = Convert.ToDateTime(dt.ToString("yyyy-MM-dd 00:00:00"));
            DateTime dtEnd = Convert.ToDateTime(dt.ToString("yyyy-MM-dd 23:59:59"));
            string jsonStr = string.Empty;
            try
            {
                DeliverMasterQuery query = new DeliverMasterQuery();
                DateTime date;
                if (DateTime.TryParse(Request.Params["time_start"], out date))
                {
                    query.time_start = Convert.ToDateTime(date.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                else
                {
                    query.time_start = dtStart;
                }
                if (DateTime.TryParse(Request.Params["time_end"], out date))
                {
                    query.time_end = Convert.ToDateTime(date.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                else
                {
                    query.time_end = dtEnd;
                }
                _ptersrc = new ParameterMgr(mySqlConnectionString);
                List<Parametersrc> parametersrcList = _ptersrc.ReturnParametersrcList();

                int sum2 = 0;
                int sum92 = 0;
                DataTable table = new DataTable();
                table.Columns.Add("物流商", typeof(string));
                table.Columns.Add("統倉包裹數", typeof(string));
                table.Columns.Add("冷凍倉包裹數", typeof(string));
                _DeliverMsterMgr = new DeliverMasterMgr(mySqlConnectionString);

                for (int i = 0; i < parametersrcList.Count; i++)
                {

                    Parametersrc par = parametersrcList[i];
                    query.delivery_store = uint.Parse(par.ParameterCode);
                    query.export_id = 2;
                    int sum1 = 0;
                    sum1 = _DeliverMsterMgr.GetDeliverMasterCount(query);
                    sum2 += sum1;
                    query.export_id = 92;
                    int sum = _DeliverMsterMgr.GetDeliverMasterCount(query);
                    sum92 += sum;
                    DataRow dr = table.NewRow();
                    dr[0] = parametersrcList[i].parameterName;
                    dr[1] = sum1;
                    dr[2] = sum;
                    if (sum1 != 0 || sum != 0)
                    {
                        table.Rows.Add(dr);
                    }
                    if (i == (parametersrcList.Count - 1))
                    {
                        dr[0] = "總計";
                        dr[1] = sum2;
                        dr[2] = sum92;
                        table.Rows.Add(dr);
                    }
                }
                jsonStr = "{success:true,data:" + JsonConvert.SerializeObject(table) + "}";//返回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 GetParameter()
 {
     string json = string.Empty;
     Parametersrc p = new Parametersrc();
     _paraMgr = new ParameterMgr(mySqlConnectionString);
     List<Parametersrc> list = new List<Parametersrc>();
     try
     {
         if (Request.Params["pn"].ToString() == "2")
         {
             if (!string.IsNullOrEmpty(Request.Params["parameterName"].ToString()))
             {
                 p.parameterName = Request.Params["parameterName"].ToString();
             }
         }
         p.ParameterType = "wms_parameter";
         list = _paraMgr.GetParameter(p);
         json = "{success:true,data:" + JsonConvert.SerializeObject(list, Formatting.Indented) + "}";//返回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,totalCount:0,data:[]}";
     }
     this.Response.Clear();
     this.Response.Write(json);
     this.Response.End();
     return this.Response;
 }
        //DeleteTp
        public HttpResponseBase DeleteTp()
        {
            string jsonStr = String.Empty;
            _paraMgr = new ParameterMgr(mySqlConnectionString);
            Parametersrc p = new Parametersrc();

            if (!String.IsNullOrEmpty(Request.Params["rowid"]))
            {
                try
                {
                    foreach (string rid in Request.Params["rowid"].ToString().Split('|'))
                    {
                        if (!string.IsNullOrEmpty(rid))
                        {
                            p.Rowid = Convert.ToInt32(rid);
                            _paraMgr.Delete(p);
                        }
                    }
                    jsonStr = "{success:true}";
                }
                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}";
                }
            }
            this.Response.Clear();
            this.Response.Write(jsonStr);
            this.Response.End();
            return this.Response;
        }
 //編輯
 public HttpResponseBase UpdTP()
 {
     string jsonStr = String.Empty;
     Parametersrc p = new Parametersrc();
     _paraMgr = new ParameterMgr(mySqlConnectionString);
     int id;
     try
     {
         if (int.TryParse(Request.Params["rowid"].ToString(), out id))
         {//新增子參數
             p.Rowid = id;
             if (!string.IsNullOrEmpty(Request.Params["parameterName"]))
             {
                 p.parameterName = Request.Params["parameterName"].ToString();
             }
             if (!string.IsNullOrEmpty(Request.Params["parameterCode"]))
             {
                 p.ParameterCode = Request.Params["parameterCode"].ToString();
             }
             if (!string.IsNullOrEmpty(Request.Params["ParameterType"]))
             {
                 p.ParameterType = Request.Params["ParameterType"].ToString();
             }
             if (!string.IsNullOrEmpty(Request.Params["remark"]))
             {
                 p.remark = Request.Params["remark"].ToString();
             }
             if (_paraMgr.UpdTP(p) > 0)
             {
                 jsonStr = "{success:true,msg:0}";
             }
             else
             {
                 jsonStr = "{success:true,msg:1}";
             }
         }
         else
         {
             jsonStr = "{success:true,msg:1}";
         }
     }
     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}";
     }
     this.Response.Clear();
     this.Response.Write(jsonStr.ToString());
     this.Response.End();
     return this.Response;
 }
 //新增
 public HttpResponseBase InsertTP()
 {
     string jsonStr = String.Empty;
     Parametersrc p = new Parametersrc();
     _paraMgr = new ParameterMgr(mySqlConnectionString);
     int id;
     try
     {
         if (int.TryParse(Request.Params["ParameterType"].ToString(), out id))
         {//新增子參數
             p.TopValue = id.ToString();
             //p.ParameterCode = Request.Params["parameterCode"].ToString();
             p.ParameterType = Request.Params["Parameter_type"].ToString();
             p.parameterName = Request.Params["parameterName"].ToString();
         }
         else
         {//新增父參數
             p.ParameterType = "wms_parameter";
             p.parameterName = Request.Params["ParameterType"].ToString();
         }
         p.ParameterCode = Request.Params["parameterCode"].ToString();
         if (_paraMgr.GetParametercode(p).Rows.Count == 0)
         {//同一類別的code沒有重複則可以新增                    
             p.remark = Request.Params["remark"].ToString();
             p.Kdate = DateTime.Now;
             p.Kuser = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id.ToString();
             p.Used = 1;
             p.Sort = 0;
             if (_paraMgr.InsertTP(p) > 0)
             {
                 jsonStr = "{success:true,msg:0}";
             }
             else
             {
                 jsonStr = "{success:true,msg:1}";//新增失敗
             }
         }
         else
         {
             jsonStr = "{success:true,msg:2}";//code重複
         }
     }
     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}";
     }
     this.Response.Clear();
     this.Response.Write(jsonStr.ToString());
     this.Response.End();
     return this.Response;
 }
 //獲取數據
 public HttpResponseBase GetTPList()
 {
     string json = string.Empty;
     Parametersrc p = new Parametersrc();
     _paraMgr = new ParameterMgr(mySqlConnectionString);
     List<Parametersrc> list = new List<Parametersrc>();
     p.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量
     p.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25");//用於分頁的變量
     p.remark = Request.Params["searchcontent"];
     try
     {
         //p.ParameterType="wms_parameter";
         int totalCount = 0;
         list = _paraMgr.GetIialgParametersrcList(p, out totalCount);
         IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
         //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
         timeConverter.DateTimeFormat = "yyyy-MM-dd";
         json = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(list, 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,totalCount:0,data:[]}";
     }
     this.Response.Clear();
     this.Response.Write(json);
     this.Response.End();
     return this.Response;
 }
        public void UpdownTemplate()
        {
            string json = string.Empty;
            DataTable dtTemplateExcel = new DataTable();
            _IparasrcMgr = new ParameterMgr(mySqlConnectionString);
            StringBuilder codeType = new StringBuilder();
            string codeTypeStr = string.Empty;
            try
            {
                List<BLL.gigade.Model.Parametersrc> codeTypeList = _IparasrcMgr.GetElementType("iupc_type");
                foreach (var codeTypeModel in codeTypeList)
                {
                    codeType.AppendFormat("{0}:{1}, ", codeTypeModel.ParameterCode, codeTypeModel.parameterName);
                }
                codeTypeStr = codeType.ToString().Substring(0, codeType.Length - 2);

                dtTemplateExcel.Columns.Add("商品細項編號", typeof(String));
                dtTemplateExcel.Columns.Add("條碼編號", typeof(String));
                dtTemplateExcel.Columns.Add("條碼類型(" + codeTypeStr + ")", typeof(String));
                DataRow newRow = dtTemplateExcel.NewRow();
                dtTemplateExcel.Rows.Add(newRow);
                string fileName = "BarCodeVindicateImportModel_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";//條碼維護匯入模板
                MemoryStream ms = ExcelHelperXhf.ExportDT(dtTemplateExcel, "");//"條碼維護匯入模板_" + DateTime.Now.ToString("yyyyMMddHHmmss")
                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:" + "" + "}";
            }
        }
        /// <summary>
        /// 料位匯入,通過Excel
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase UploadExcel()
        {
            string newName = string.Empty;
            string json = string.Empty;
            List<IupcQuery> store = new List<IupcQuery>();
            _IparasrcMgr = new ParameterMgr(mySqlConnectionString);
            StringBuilder codeType1 = new StringBuilder();
            string codeTypeStr1 = string.Empty;
            try
            {

                List<BLL.gigade.Model.Parametersrc> codeTypeList = _IparasrcMgr.GetElementType("iupc_type");
                foreach (var codeTypeModel in codeTypeList)
                {
                    codeType1.AppendFormat("{0}:{1}, ", codeTypeModel.ParameterCode, codeTypeModel.parameterName);
                }
                codeTypeStr1 = codeType1.ToString().Substring(0, codeType1.Length - 2);

                DTIupcExcel.Clear();
                DTIupcExcel.Columns.Clear();

                DTIupcExcel.Columns.Add("商品細項編號", typeof(String));
                DTIupcExcel.Columns.Add("條碼編號", typeof(String));
                DTIupcExcel.Columns.Add("條碼類型(" + codeTypeStr1 + ")", typeof(String));
                DTIupcExcel.Columns.Add("不能匯入的原因", typeof(String));
                DTIupcExcel.Columns.Add("匯入失敗數據的行號", typeof(String));

                DataTable DTIupcImportSucceed = new DataTable();
                DTIupcImportSucceed.Columns.Add("商品細項編號", typeof(String));
                DTIupcImportSucceed.Columns.Add("條碼編號", typeof(String));
                DTIupcImportSucceed.Columns.Add("條碼類型", typeof(String));
                DTIupcImportSucceed.Columns.Add("行號", typeof(String));

                int result = 0;
                int count = 0;//總匯入數
                int errorCount = 0;//異常數據數量
                int create_user = (Session["caller"] as Caller).user_id;
                int itemIdNotExistCount = 0;//商品細項編號不存在數量
                //int iupcTypeNotExistCount = 0;//條碼類型不存在數量
                int repeatCount = 0;//商品條碼重複數量
                StringBuilder strsql = new StringBuilder();
                if (Request.Files["ImportExcelFile"] != null && Request.Files["ImportExcelFile"].ContentLength > 0)
                {
                    HttpPostedFileBase excelFile = Request.Files["ImportExcelFile"];
                    //FileManagement fileManagement = new FileManagement();
                    newName = Server.MapPath(excelPath) + excelFile.FileName;
                    excelFile.SaveAs(newName);
                    DataTable dt = new DataTable();
                    NPOI4ExcelHelper helper = new NPOI4ExcelHelper(newName);
                    dt = helper.SheetData();

                    if (dt.Rows.Count > 0)
                    {
                        _IiupcMgr = new IupcMgr(mySqlConnectionString);
                        #region 循環Excel的數據
                        
                        int i = 0;
                        for (int k = 0; k < dt.Rows.Count; k++)
                        {
                            i++;
                            try
                            {
                                bool b0 = string.IsNullOrEmpty(dt.Rows[k][0].ToString().Trim());
                                bool b1 = string.IsNullOrEmpty(dt.Rows[k][1].ToString().Trim());
                                bool b2 = string.IsNullOrEmpty(dt.Rows[k][2].ToString().Trim());

                                if (b0 || b1 || b2)//如果數據有一個欄位為空
                                {
                                    DataRow drtwo = DTIupcExcel.NewRow();
                                    drtwo[0] = dt.Rows[k][0].ToString();
                                    drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                    drtwo[2] = dt.Rows[k][2].ToString();
                                    drtwo[3] = "這條數據有欄位為空,請確認";
                                    drtwo[4] = k + 2;//匯入失敗數據的行號,Excel表行號
                                    DTIupcExcel.Rows.Add(drtwo);
                                    errorCount++;
                                    continue;
                                }
                                if (dt.Rows[k][1].ToString().Trim().Length <= 25)
                                {

                                    int a = Convert.ToInt32(dt.Rows[k][0]);//商品細項編號
                                    string b = dt.Rows[k][1].ToString().Trim();//條碼編號
                                    int c = Convert.ToInt32(dt.Rows[k][2]);//條碼類型
                                    int flag = _IiupcMgr.Yesornoexist(a, b);

                                    if (flag == 1)//等於1表示商品細項表里面沒有此商品細項編號
                                    {
                                        DataRow drtwo = DTIupcExcel.NewRow();
                                        drtwo[0] = dt.Rows[k][0].ToString();
                                        drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                        drtwo[2] = dt.Rows[k][2].ToString();
                                        drtwo[3] = "在數據庫商品表中,不存在此商品細項編號";
                                        drtwo[4] = k + 2;//匯入失敗數據的行號,Excel表行號
                                        DTIupcExcel.Rows.Add(drtwo);
                                        itemIdNotExistCount++;
                                        continue;
                                    }

                                    if (flag == 2)//等於2表示條碼表裡面已存在此條碼
                                    {
                                        DataRow drtwo = DTIupcExcel.NewRow();
                                        drtwo[0] = dt.Rows[k][0].ToString();
                                        drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                        drtwo[2] = dt.Rows[k][2].ToString();
                                        drtwo[3] = "在數據庫中,該條碼已經存在";
                                        drtwo[4] = k + 2;
                                        DTIupcExcel.Rows.Add(drtwo);
                                        repeatCount++;
                                        continue;
                                    }

                                    if (flag == 0)//當存在此商品細項編號並且該條碼不存在時進行添加數據
                                    {

                                        bool xunhuan = true;
                                        for (int j = 0; j < i - 1; j++)
                                        {
                                            if (dt.Rows[j][1].ToString() == dt.Rows[k][1].ToString())//如果匯入的Excel條碼重複
                                            {
                                                xunhuan = false;
                                                DataRow drtwo = DTIupcExcel.NewRow();
                                                drtwo[0] = dt.Rows[k][0].ToString();
                                                drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                                drtwo[2] = dt.Rows[k][2].ToString();
                                                drtwo[3] = "該商品條碼與此表中(行號: " + (j + 2) + " )的商品細項編號:" + dt.Rows[j][0].ToString() + "的條碼重複";
                                                drtwo[4] = k + 2;
                                                DTIupcExcel.Rows.Add(drtwo);
                                                repeatCount++;
                                                break;
                                            }
                                        }
                                        if (xunhuan)
                                        {
                                            string codeTypeStr = string.Empty;
                                            StringBuilder codeType = new StringBuilder();
                                            bool haveCodeType = false;
                                            foreach (var codeTypeModel in codeTypeList)
                                            {
                                                if (Convert.ToString(dt.Rows[k][2]).Trim() == codeTypeModel.ParameterCode)
                                                {
                                                    haveCodeType = true;
                                                }
                                                codeType.AppendFormat("{0}:{1}, ", codeTypeModel.ParameterCode, codeTypeModel.parameterName);
                                            }
                                            codeTypeStr = codeType.ToString().Substring(0, codeType.Length - 2);
                                            if (!haveCodeType)//此條碼類型是否在參數表t_parameterSrc(parameterType="iupc_type")中存在
                                            {
                                                DataRow drtwo = DTIupcExcel.NewRow();
                                                drtwo[0] = dt.Rows[k][0].ToString();
                                                drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                                drtwo[2] = dt.Rows[k][2].ToString();
                                                drtwo[3] = "在數據庫參數表中,此條碼類型不存在(" + codeTypeStr + ")";
                                                drtwo[4] = k + 2;
                                                DTIupcExcel.Rows.Add(drtwo);
                                                errorCount++;
                                                continue;
                                            }
                                            //如果條碼類為 1 時,判斷該商品是否在Iupc表中已經存在國際條碼
                                            if (_IiupcMgr.upc_num(Convert.ToInt32(dt.Rows[k][0])) > 0 && dt.Rows[k][2].ToString() == "1")
                                            {
                                                DataRow drtwo = DTIupcExcel.NewRow();
                                                drtwo[0] = dt.Rows[k][0].ToString();
                                                drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                                drtwo[2] = dt.Rows[k][2].ToString();
                                                drtwo[3] = "在數據庫中,該商品已經存在國際條碼";
                                                drtwo[4] = k + 2;
                                                DTIupcExcel.Rows.Add(drtwo);
                                                repeatCount++;
                                                continue;
                                            }
                                            else
                                            {
                                                bool skip = false;
                                                for (int index = 0; index < DTIupcImportSucceed.Rows.Count; index++)
                                                {
                                                    bool m1 = dt.Rows[k][0].ToString().Trim() == DTIupcImportSucceed.Rows[index][0].ToString().Trim();
                                                    bool m2 = dt.Rows[k][2].ToString().Trim() == "1";
                                                    bool m3 = DTIupcImportSucceed.Rows[index][2].ToString().Trim() == "1";

                                                    if (m1 && m2 && m3)//在已經成功匯入的數據中,判斷該商品是否存在國際條碼 
                                                    {
                                                        skip = true;
                                                        DataRow drtwo1 = DTIupcExcel.NewRow();
                                                        drtwo1[0] = dt.Rows[k][0].ToString();
                                                        drtwo1[1] = " " + dt.Rows[k][1].ToString().Trim();
                                                        drtwo1[2] = dt.Rows[k][2].ToString();
                                                        drtwo1[3] = "在已經成功匯入的數據中(行號: " + DTIupcImportSucceed.Rows[index][3].ToString() + "),該商品已經存在國際條碼";
                                                        drtwo1[4] = k + 2;
                                                        DTIupcExcel.Rows.Add(drtwo1);
                                                        repeatCount++;
                                                        break;
                                                    }
                                                }
                                                if (skip)
                                                {
                                                    continue;
                                                }
                                                DataRow drtwo = DTIupcImportSucceed.NewRow();
                                                drtwo[0] = dt.Rows[k][0].ToString();
                                                drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                                drtwo[2] = dt.Rows[k][2].ToString();
                                                drtwo[3] = k + 2;
                                                DTIupcImportSucceed.Rows.Add(drtwo);


                                                count++;
                                                string dataTimeNow = CommonFunction.DateTimeToString(DateTime.Now);
                                                strsql.AppendFormat(@"insert into iupc(upc_id,item_id,suppr_upc,lst_ship_dte,lst_rct_dte,create_dtim,create_user,upc_type_flg)
                    values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}');", b, a, "", dataTimeNow, dataTimeNow, dataTimeNow, create_user, c);
                                                continue;
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    DataRow drtwo = DTIupcExcel.NewRow();
                                    drtwo[0] = dt.Rows[k][0].ToString();
                                    drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                    drtwo[2] = dt.Rows[k][2].ToString();
                                    drtwo[3] = "條碼不符合格式(0-25位)";
                                    drtwo[4] = k + 2;
                                    DTIupcExcel.Rows.Add(drtwo);
                                    errorCount++;
                                    continue;
                                }
                            }
                            catch
                            {
                                DataRow drtwo = DTIupcExcel.NewRow();
                                drtwo[0] = dt.Rows[k][0].ToString();
                                drtwo[1] = " " + dt.Rows[k][1].ToString().Trim();
                                drtwo[2] = dt.Rows[k][2].ToString();
                                drtwo[3] = "數據異常";
                                drtwo[4] = k + 2;
                                DTIupcExcel.Rows.Add(drtwo);
                                errorCount++;
                                continue;
                            }
                        }
                        #region 註釋的代碼foreach
                        //                        foreach (DataRow dr in dt.Rows)
                        //                        {
                        //                            i++;
                        //                            try
                        //                            {
                        //                                if (!string.IsNullOrEmpty(dr[1].ToString()) && dr[1].ToString().Length >= 8 && dr[1].ToString().Length <= 25)
                        //                                {

                        //                                    int a = Convert.ToInt32(dr[0]);//商品細項編號
                        //                                    string b = dr[1].ToString();//條碼編號
                        //                                    int c = Convert.ToInt32(dr[2]);//條碼類型
                        //                                    int flag = _IiupcMgr.Yesornoexist(a, b);

                        //                                    if (flag == 1)//等於1表示商品細項表里面沒有此商品細項編號
                        //                                    {
                        //                                        DataRow drtwo = DTIupcExcel.NewRow();
                        //                                        drtwo[0] = dr[0].ToString();
                        //                                        drtwo[1] = " " + dr[1].ToString();
                        //                                        drtwo[2] = dr[2].ToString();
                        //                                        drtwo[3] = "商品表不存在此商品細項編號";
                        //                                        DTIupcExcel.Rows.Add(drtwo);
                        //                                        bucunzaicount++;
                        //                                        continue;
                        //                                    }

                        //                                    if (flag == 2)//等於2表示條碼表裡面已存在此條碼
                        //                                    {
                        //                                        DataRow drtwo = DTIupcExcel.NewRow();
                        //                                        drtwo[0] = dr[0].ToString();
                        //                                        drtwo[1] = " " + dr[1].ToString();
                        //                                        drtwo[2] = dr[2].ToString();
                        //                                        drtwo[3] = "該條碼已經存在";
                        //                                        DTIupcExcel.Rows.Add(drtwo);
                        //                                        chongfucount++;
                        //                                        continue;
                        //                                    }

                        //                                    if (flag == 0)//當存在此商品細項編號並且該條碼不存在時進行添加數據
                        //                                    {

                        //                                        bool xunhuan = true;
                        //                                        for (int j = 0; j < i - 1; j++)
                        //                                        {
                        //                                            if (dt.Rows[j][1].ToString() == dr[1].ToString())//如果匯入的Excel條碼重複
                        //                                            {
                        //                                                xunhuan = false;
                        //                                                DataRow drtwo = DTIupcExcel.NewRow();
                        //                                                drtwo[0] = dr[0].ToString();
                        //                                                drtwo[1] = " " + dr[1].ToString();
                        //                                                drtwo[2] = dr[2].ToString();
                        //                                                drtwo[3] = "該商品條碼與在此表中的商品細項編號:" + dt.Rows[j][0].ToString() + "條碼重複";
                        //                                                DTIupcExcel.Rows.Add(drtwo);
                        //                                                chongfucount++;
                        //                                                break;
                        //                                            }
                        //                                        }
                        //                                        if (xunhuan)
                        //                                        {
                        //                                            string codeTypeStr = string.Empty;
                        //                                            StringBuilder codeType = new StringBuilder();
                        //                                            bool haveCodeType = false;
                        //                                            foreach (var codeTypeModel in codeTypeList)
                        //                                            {
                        //                                                if (Convert.ToString(dr[2]) == codeTypeModel.ParameterCode)
                        //                                                {
                        //                                                    haveCodeType = true;                                                  
                        //                                                }
                        //                                                codeType.AppendFormat("{0}:{1}, ", codeTypeModel.ParameterCode, codeTypeModel.parameterName);
                        //                                            }
                        //                                            codeTypeStr = codeType.ToString().Substring(0, codeType.Length - 2);
                        //                                            if (!haveCodeType)
                        //                                            {
                        //                                                DataRow drtwo = DTIupcExcel.NewRow();
                        //                                                drtwo[0] = dr[0].ToString();
                        //                                                drtwo[1] = " " + dr[1].ToString();
                        //                                                drtwo[2] = dr[2].ToString();
                        //                                                drtwo[3] = "此條碼類型不存在(" + codeTypeStr + ")";
                        //                                                DTIupcExcel.Rows.Add(drtwo);
                        //                                                errorcount++;
                        //                                                continue;
                        //                                            }

                        //                                            if (_IiupcMgr.upc_num(Convert.ToInt32(dr[0])) > 0)
                        //                                            {
                        //                                                DataRow drtwo = DTIupcExcel.NewRow();
                        //                                                drtwo[0] = dr[0].ToString();
                        //                                                drtwo[1] = " " + dr[1].ToString();
                        //                                                drtwo[2] = dr[2].ToString();
                        //                                                drtwo[3] = "該商品已經存在國際條碼";
                        //                                                DTIupcExcel.Rows.Add(drtwo);
                        //                                                chongfucount++;
                        //                                                break;
                        //                                            }
                        //                                            else
                        //                                            {
                        //                                                count++;
                        //                                                strsql.AppendFormat(@"insert into iupc(upc_id,item_id,create_dtim,create_user,upc_type_flg)
                        //                    values('{0}','{1}','{2}','{3}','{4}');", b, a, CommonFunction.DateTimeToString(DateTime.Now), create_user,c);//默認匯入 的是國際條碼
                        //                                                continue;
                        //                                            }
                        //                                        }
                        //                                    }
                        //                                }
                        //                                else
                        //                                {
                        //                                    DataRow drtwo = DTIupcExcel.NewRow();
                        //                                    drtwo[0] = dr[0].ToString();
                        //                                    drtwo[1] = " " + dr[1].ToString();
                        //                                    drtwo[2] = dr[2].ToString();
                        //                                    drtwo[3] = "條碼不符合格式";
                        //                                    DTIupcExcel.Rows.Add(drtwo);
                        //                                    errorcount++;
                        //                                    continue;
                        //                                }
                        //                            }
                        //                            catch
                        //                            {
                        //                                DataRow drtwo = DTIupcExcel.NewRow();
                        //                                drtwo[0] = dr[0].ToString();
                        //                                drtwo[1] = " " + dr[1].ToString();
                        //                                drtwo[2] = dr[2].ToString();
                        //                                drtwo[3] = "數據異常";
                        //                                DTIupcExcel.Rows.Add(drtwo);
                        //                                errorcount++;
                        //                                continue;
                        //                            }
                        // 
                        #endregion                        }
                        #endregion
                        if (strsql.ToString().Trim() != "")
                        {
                            result = _IiupcMgr.ExcelImportIupc(strsql.ToString());
                            if (result > 0)
                            {
                                json = "{success:true,total:" + count + ",error:" + errorCount + ",repeat:" + repeatCount + ",NoItem:" + itemIdNotExistCount + "}";
                            }
                            else
                            {
                                json = "{success:false}";
                            }
                        }
                        else
                        {
                            json = "{success:true,total:" + 0 + ",error:" + errorCount + ",repeat:" + repeatCount + ",NoItem:" + itemIdNotExistCount + "}";
                        }
                    }
                    else
                    {
                        json = "{success:true,total:" + 0 + ",error:" + 0 + ",repeat:" + 0 + ",NoItem:" + 0 + ",NoType:" + 0 + "}";
                    }
                }
            }
            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 }";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
        public HttpResponseBase DeliversList()
        {
            string jsonStr = String.Empty;
            StringBuilder sb = new StringBuilder();
            List<DeliverMasterQuery> store = new List<DeliverMasterQuery>();
            DeliverMasterQuery query = new DeliverMasterQuery();
            #region 现在参数表没有的数据,先加进来
            DataTable _dtDeliverCatStatus = new DataTable();
            DataTable _dtLogisticsType = new DataTable();
            #region _dtDeliverCatStatus


            _dtDeliverCatStatus.Columns.Add("ParameterCode", typeof(String));
            _dtDeliverCatStatus.Columns.Add("remark", typeof(String));
            DataRow dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 1;
            dr[1] = "順利送達";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 2;
            dr[1] = "轉運中";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 3;
            dr[1] = "配送中";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 4;
            dr[1] = "配送中(當配下車) (當配上車)";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 5;
            dr[1] = "取件中";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 6;
            dr[1] = "已集貨";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 7;
            dr[1] = "取消取件";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 8;
            dr[1] = "未順利取件,請洽客服中心";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 9;
            dr[1] = "暫置營業所保管中(請聯絡黑貓宅急便)";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 10;
            dr[1] = "調查處理中";
            _dtDeliverCatStatus.Rows.Add(dr);
            dr = _dtDeliverCatStatus.NewRow();
            dr[0] = 11;
            dr[1] = "不在家.公司行號休息";
            _dtDeliverCatStatus.Rows.Add(dr);
            #endregion
            #region _dtLogisticsType
            _dtLogisticsType.Columns.Add("ParameterCode", typeof(String));
            _dtLogisticsType.Columns.Add("remark", typeof(String));
            dr = _dtLogisticsType.NewRow();
            dr[0] = 1;
            dr[1] = "大物流中心";
            _dtLogisticsType.Rows.Add(dr);
            dr = _dtLogisticsType.NewRow();
            dr[0] = 2;
            dr[1] = "配送中";
            _dtLogisticsType.Rows.Add(dr);
            dr = _dtLogisticsType.NewRow();
            dr[0] = 3;
            dr[1] = "大物流退貨";
            _dtLogisticsType.Rows.Add(dr);
            dr = _dtLogisticsType.NewRow();
            dr[0] = 4;
            dr[1] = "進店作業";
            _dtLogisticsType.Rows.Add(dr);
            dr = _dtLogisticsType.NewRow();
            dr[0] = 5;
            dr[1] = "進店退貨";
            dr = _dtLogisticsType.NewRow();
            dr = _dtLogisticsType.NewRow();
            dr[0] = 6;
            dr[1] = "取貨完成";
            _dtLogisticsType.Rows.Add(dr);
            #endregion

            #endregion

            #region 查詢條件
            if (!string.IsNullOrEmpty(Request.Params["type"]))//出貨類別
            {
                query.types = Request.Params["type"];
            }
            if (!string.IsNullOrEmpty(Request.Params["delivery_status"]) && int.Parse(Request.Params["delivery_status"]) != -1)//出貨狀態
            {
                query.status = Request.Params["delivery_status"];
            }
            if (!string.IsNullOrEmpty(Request.Params["export_id"]) && int.Parse(Request.Params["export_id"]) != 0) //出貨方式
            {
                query.vendor_id = uint.Parse(Request.Params["export_id"]);
            }
            query.delivery_store = 0;
            if (!string.IsNullOrEmpty(Request.Params["delivery_store"]) && int.Parse(Request.Params["delivery_store"]) != 0)//物流商
            {
                query.delivery_store = uint.Parse(Request.Params["delivery_store"]);
            }
            query.warehouse_status = -1;
            if (!string.IsNullOrEmpty(Request.Params["warehouse_statu"]) && int.Parse(Request.Params["warehouse_statu"]) != -1) //調度狀態
            {
                query.warehouse_status = int.Parse(Request.Params["warehouse_statu"]);
            }
            query.priority = -1;
            if (!string.IsNullOrEmpty(Request.Params["priority"]) && int.Parse(Request.Params["priority"]) != -1)//出貨篩選
            {
                query.priority = int.Parse(Request.Params["priority"]);
            }
            if (!string.IsNullOrEmpty(Request.Params["datequery"]) && int.Parse(Request.Params["datequery"]) != 0)//日期條件
            {
                if (!string.IsNullOrEmpty(Request.Params["time_start"]))//出貨日期
                {
                    string s = Request.Params["time_start"];
                    query.time_start = DateTime.Parse(Request.Params["time_start"]);
                }
                if (!string.IsNullOrEmpty(Request.Params["time_end"]))//出貨日期
                {
                    query.time_end = DateTime.Parse(Request.Params["time_end"]);
                }
            }
            if (!string.IsNullOrEmpty(Request.Params["search"]))//搜索
            {
                query.vendor_name_simple = Request.Params["search"];
            }
            #endregion
            try
            {
                query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量
                query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25");//用於分頁的變量
                _DeliverMsterMgr = new DeliverMasterMgr(mySqlConnectionString);
                int totalCount = 0;
                store = _DeliverMsterMgr.GetdeliverList(query, out totalCount);
                #region 獲取物流業者列表,訂單狀態列表。然後根據判斷來<數據來自參數表>
                List<Parametersrc> Shipment = new List<Parametersrc>();
                _ptersrc = new ParameterMgr(mySqlConnectionString);
                Shipment = _ptersrc.GetAllKindType("Deliver_Store");//物流業者
                DataTable _dtShipment = new DataTable();
                _dtShipment.Columns.Add("parametercode", typeof(String));
                _dtShipment.Columns.Add("parameterName", typeof(String));
                _dtShipment.Columns.Add("remark", typeof(String));
                foreach (var item in Shipment)
                {
                    dr = _dtShipment.NewRow();//--------------------------------------------------DataRow dr=...
                    dr[0] = item.ParameterCode;
                    dr[1] = item.parameterName;
                    dr[2] = item.remark;
                    _dtShipment.Rows.Add(dr);
                }
                Shipment = _ptersrc.GetAllKindType("order_status");//訂單狀態
                DataTable _dtOrderStatus = new DataTable();
                _dtOrderStatus.Columns.Add("parametercode", typeof(String));
                _dtOrderStatus.Columns.Add("parameterName", typeof(String));
                _dtOrderStatus.Columns.Add("remark", typeof(String));
                foreach (var item in Shipment)
                {
                    dr = _dtOrderStatus.NewRow();//------------------------------------------dr
                    dr[0] = item.ParameterCode;
                    dr[1] = item.parameterName;
                    dr[2] = item.remark;
                    _dtOrderStatus.Rows.Add(dr);
                }
                #endregion
                foreach (var item in store)
                {


                    //(計算數據,參考自admin/View/Delivers/index.ctp 第152~163行)
                    #region 計算逾期天數:(出貨時間-付款單成立日期+1)-4,出貨時間=空值,以當日計算。
                    DateTime Shipmenttime = DateTime.Now;//出貨日期

                    //if (!string.IsNullOrEmpty(item.delivery_date.ToString()))
                    //{
                    //    Shipmenttime = item.delivery_date;
                    //}

                    if (!item.delivery_date.ToString("yyyy-MM-dd").Equals("0001-01-01"))
                    {
                        Shipmenttime = item.delivery_date;
                    }
                    TimeSpan s = DateTime.Parse(Shipmenttime.ToString("yyyy-MM-dd 23:59:59")) - DateTime.Parse(item.order_createtime.ToString("yyyy-MM-dd 23:59:59"));//時間跨度,因為捨棄的不一樣,計算的也不一樣
                    item.overdue_day = s.Days - 3;
                    #endregion
                    #region 把訂單狀態和物流業者提取賦值
                    DataRow[] rows = _dtShipment.Select("ParameterCode='" + item.delivery_store + "'");
                    foreach (DataRow row in rows)//篩選出的最多只有一條數據,如果有,把物流商的名稱傳遞過去,如果沒有,把物流商編號傳遞過去
                    {
                        item.ShipmentName = item.delivery_store.ToString();
                        if (!string.IsNullOrEmpty(row["ParameterCode"].ToString()))
                        {
                            item.ShipmentName = row["ParameterName"].ToString();
                        }
                    }
                    if (item.type == 1 || item.type == 2)//訂單狀態
                    {
                        rows = _dtOrderStatus.Select("ParameterCode='" + item.order_status + "'");
                        foreach (DataRow row in rows)//篩選出的最多只有一條數據,如果有,把物流商的名稱傳遞過去,如果沒有,把物流商編號傳遞過去
                        {
                            item.states = item.order_status.ToString();
                            if (!string.IsNullOrEmpty(row["ParameterCode"].ToString()))
                            {
                                item.states = row["remark"].ToString();
                            }
                        }
                    }
                    #endregion
                    #region 物流状态

                    item.LogisticsStatus = "";
                    if (item.logisticsType != 0)
                    {
                        if (item.delivery_store == 1 || item.delivery_store == 10)
                        {
                            rows = _dtDeliverCatStatus.Select("ParameterCode='" + item.logisticsType + "'");
                            foreach (DataRow row in rows)//篩選出的最多只有一條數據,如果有,把物流商的名稱傳遞過去,如果沒有,把物流商編號傳遞過去
                            {
                                if (!string.IsNullOrEmpty(row["ParameterCode"].ToString()))
                                {
                                    item.LogisticsStatus = row["remark"].ToString();
                                }
                            }
                        }
                        else
                        {
                            rows = _dtLogisticsType.Select("ParameterCode='" + item.logisticsType + "'");
                            foreach (DataRow row in rows)//篩選出的最多只有一條數據,如果有,把物流商的名稱傳遞過去,如果沒有,把物流商編號傳遞過去
                            {
                                if (!string.IsNullOrEmpty(row["ParameterCode"].ToString()))
                                {
                                    item.LogisticsStatus = row["remark"].ToString();
                                }
                            }
                        }
                    }
                    #endregion
                }
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss ";
                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 HuiruPiciAddwuliufei()
        {
            string json = string.Empty;//json字符串
            string shipment = Request.Params["shipment"].ToString();
            //int total = 0;
            try
            {
                if (Request.Files["ImportFileMsg"] != null && Request.Files["ImportFileMsg"].ContentLength > 0)//判斷文件是否為空
                {
                    HttpPostedFileBase excelFile = Request.Files["ImportFileMsg"];//獲取文件流
                    FileManagement fileManagement = new FileManagement();//實例化 FileManagement
                    string fileLastName = excelFile.FileName;
                    string newExcelName = Server.MapPath(excelPath) + "PiCiAddWuliufei" + fileManagement.NewFileName(excelFile.FileName);//處理文件名,獲取新的文件名
                    excelFile.SaveAs(newExcelName);//上傳文件
                    DataTable dt = new DataTable();
                    NPOI4ExcelHelper helper = new NPOI4ExcelHelper(newExcelName);
                    dt = helper.SheetData();
                    DataRow[] dr = dt.Select(); //定义一个DataRow数组,读取ds里面所有行
                    int rowsnum = dt.Rows.Count;
                    if (rowsnum > 0)//判斷是否是這個表
                    {
                        DeliverMasterQuery dmQuery = new DeliverMasterQuery();
                        StringBuilder str = new StringBuilder();
                        DataTable dtMaster = new DataTable();
                        DataTable ExcelDt = new DataTable();
                        string filenameExcel = string.Empty;
                        ExcelDt.Columns.Add("訂單編號", typeof(String));
                        ExcelDt.Columns.Add("物流單號", typeof(String));
                        ExcelDt.Columns.Add("物流費", typeof(String));
                        ExcelDt.Columns.Add("應收帳款", typeof(String));
                        ExcelDt.Columns.Add("異常信息", typeof(String));
                        int i = 0; int j = 0; int x = 0; string y = string.Empty;
                        int successcount = 0;
                        int failcount = 0;
                        string create_dtim = CommonFunction.DateTimeToString(DateTime.Now);       //創建時間
                        int create_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id;
                        _DeliverMsterMgr = new DeliverMasterMgr(mySqlConnectionString);
                        #region 循環excel表中的數據 并判斷是否滿足條件和失敗的個數
                        for (int z = 0; z < dr.Length; z++)
                        {
                            x = Convert.ToInt32(dr[z][0].ToString());//訂單編號
                            y = dr[z][1].ToString();//托運單號
                            i = Convert.ToInt32(dr[z][2].ToString());//運送金額
                            j = Convert.ToInt32(dr[z][3].ToString());//代收金額--也就是購物應該付款總金額
                            dmQuery.delivery_code = y;//托運單號

                            dtMaster = _DeliverMsterMgr.GetMessageByDeliveryCode(dmQuery);
                            string errorstring = string.Empty;
                            bool behavior = true;
                            if (dtMaster.Rows.Count <= 0)
                            {
                                errorstring = "物流單號不存在";
                                behavior = false;
                            }
                            else if (Convert.ToInt32(dtMaster.Rows[0]["delivery_store"]) != Convert.ToInt32(shipment))//如果物流方式不對應
                            {
                                errorstring = "物流廠商不相符,此物流單對應物流為:" + dtMaster.Rows[0]["parameterName"].ToString();
                                behavior = false;
                            }
                            //else if (y != dtMaster.Rows[0]["delivery_code"].ToString())
                            //{
                            //    errorstring = "物流單號不相符";
                            //    behavior = false;
                            //}
                            else if (dtMaster.Rows[0]["order_id"].ToString() != x.ToString())
                            {
                                errorstring = "定單編號不相符,此物流單對應的定單編號為:" + dtMaster.Rows[0]["order_id"].ToString();
                                behavior = false;
                            }
                            else if (dtMaster.Rows.Count > 1)
                            {
                                errorstring = "物流單號重複";
                                behavior = false;
                            }
                            //10表示黑貓貨到付款     order_amount購物應付總金額(加運費,扣除扺用紅利等金額)
                            else if (Convert.ToInt32(dtMaster.Rows[0]["delivery_store"]) == 10 && j != Convert.ToInt32(dtMaster.Rows[0]["order_amount"]))
                            {
                                errorstring = "應收帳款金額不符";
                                behavior = false;
                            }
                            //4表示已出貨 9 表示待取貨
                            else if (Convert.ToInt32(dtMaster.Rows[0]["order_status"]) != 4 && Convert.ToInt32(dtMaster.Rows[0]["order_status"]) != 9)
                            {
                                _ptersrc = new ParameterMgr(mySqlConnectionString);
                                int types = Convert.ToInt32(dtMaster.Rows[0]["order_status"]);
                                string endresult = _ptersrc.GetOrderStatus(types);
                                errorstring = "出貨狀態異常:出貨狀態為" + endresult;
                                behavior = false;
                            }
                            if (behavior == true)//如果數據不存在這些問題   如果failcount大於0就表示匯入信息有不正確的
                            {
                                successcount = successcount + 1;
                                //DataRow Execldr = ExcelDt.NewRow();
                                //Execldr[0] = x;
                                //Execldr[1] = y;
                                //Execldr[2] = i;
                                //Execldr[3] = dtMaster.Rows[0]["order_amount"];
                                //Execldr[4] = "數據正常";
                                //ExcelDt.Rows.Add(Execldr);
                                str.AppendFormat(" set sql_safe_updates = 0;update deliver_master set delivery_freight_cost='{0}',creator='{1}',modified='{2}' where delivery_code='{3}' ;set sql_safe_updates = 1;", i, create_user, create_dtim, y);
                            }
                            else
                            {
                                failcount = failcount + 1;
                                DataRow Execldr = ExcelDt.NewRow();
                                Execldr[0] = x;
                                Execldr[1] = y;
                                Execldr[2] = i;
                                Execldr[3] = j;//dtMaster.Rows[0]["order_amount"];
                                Execldr[4] = errorstring;
                                ExcelDt.Rows.Add(Execldr);
                                //此次上傳資料有異請下載差異檔
                            }
                        }
                        #endregion

                        #region 判斷失敗個數 成功個數 當失敗個數大於0時 直接匯出excel
                        if (failcount > 0)//存在失敗的情況 直接匯出數據
                        {
                            string fileName = DateTime.Now.ToString("匯出批次上傳物流費不規則數據_yyyyMMddHHmm") + ".xls";
                            MemoryStream ms = ExcelHelperXhf.ExportDT(ExcelDt, "匯出批次上傳物流費不規則數據");
                            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
                            Response.BinaryWrite(ms.ToArray());
                            return this.Response;
                        }
                        else if (failcount == 0 && successcount > 0)
                        {
                            if (_DeliverMsterMgr.Updatedeliveryfreightcost(str) > 0)
                            {
                                json = "{success:true,total:" + successcount + ",msg:\"" + "匯入成功" + "\"}";
                                this.Response.Clear();
                                this.Response.Write(json);
                                this.Response.End();
                                return this.Response;
                            }
                            else
                            {
                                json = "{success:false}";
                                this.Response.Clear();
                                this.Response.Write(json);
                                this.Response.End();
                                return this.Response;
                            }
                        }
                        else
                        {
                            json = "{success:true,msg:\"" + "此表內沒有數據或數據有誤,請檢查后再次匯入!" + "\"}";
                            this.Response.Clear();
                            this.Response.Write(json);
                            this.Response.End();
                            return this.Response;
                        }
                        #endregion
                    }
                    else
                    {
                        json = "{success:true,total:0,msg:\"" + "此表內沒有數據或數據有誤,請檢查后再次匯入!" + "\"}";
                        this.Response.Clear();
                        this.Response.Write(json);
                        this.Response.End();
                        return this.Response;
                    }
                }
                else//當直接點擊時會產生,
                {
                    json = "{success:true,msg:\"" + "請匯入批次上傳物流費表" + "\"}";
                    this.Response.Clear();
                    this.Response.Write(json);
                    this.Response.End();
                    return this.Response;
                }
            }
            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:\"" + ex.ToString() + "\"}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
        public void IlocChangeDetailExcelList()
        {
            string json = string.Empty;
            IlocChangeDetailQuery ilocDetailQuery = new IlocChangeDetailQuery();
            DataTable dtExcel = new DataTable();
            try
            {
                if (!string.IsNullOrEmpty(Request.Params["productids"]))
                {
                    ilocDetailQuery.productids = Request.Params["productids"].Replace(',', ',').Replace('|', ',').Replace(' ', ',');
                }

                if (!string.IsNullOrEmpty(Request.Params["oldilocid"]))//model中默認為F
                {
                    ilocDetailQuery.icd_old_loc_id = Request.Params["oldilocid"];
                }

                if (!string.IsNullOrEmpty(Request.Params["newilocid"]))
                {
                    ilocDetailQuery.icd_new_loc_id = Request.Params["newilocid"].ToString();
                }
                DateTime time;

                if (DateTime.TryParse(Request.Params["start_time"].ToString(), out time))
                {
                    ilocDetailQuery.start_time = DateTime.Parse(time.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                if (DateTime.TryParse(Request.Params["end_time"].ToString(), out time))
                {
                    ilocDetailQuery.end_time = DateTime.Parse(time.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                if (!string.IsNullOrEmpty(Request.Params["startloc"]))
                {
                    ilocDetailQuery.startloc = Request.Params["startloc"].ToUpper();
                }
                if (!string.IsNullOrEmpty(Request.Params["endloc"]))
                {
                    ilocDetailQuery.endloc = Request.Params["endloc"].ToUpper() + "Z";
                }
                if (!string.IsNullOrEmpty(Request.Params["icd_status"]) && Request.Params["icd_status"] != "全部")
                {
                    ilocDetailQuery.icd_status = Request.Params["icd_status"];
                }
                DataTable store = new DataTable();
                _ilocDetailMger = new IlocChangeDetailMgr(mySqlConnectionString);
                store = _ilocDetailMger.GetIlocChangeDetailExcelList(ilocDetailQuery);
                dtExcel.Columns.Add("商品編號", typeof(String));
                dtExcel.Columns.Add("商品名稱", typeof(String));
                dtExcel.Columns.Add("規格", typeof(String));
                dtExcel.Columns.Add("是否買斷", typeof(String));
                dtExcel.Columns.Add("原料位編號", typeof(String));
                dtExcel.Columns.Add("新料位編號", typeof(String));
                // dtExcel.Columns.Add("製造日期", typeof(String));
                //dtExcel.Columns.Add("保存期限", typeof(String));
                dtExcel.Columns.Add("搬移日期", typeof(String));
                dtExcel.Columns.Add("庫存", typeof(String));
                dtExcel.Columns.Add("是否有效期控管", typeof(String));
                //dtExcel.Columns.Add("是否即期", typeof(String));
                //dtExcel.Columns.Add("是否過期", typeof(String));
                dtExcel.Columns.Add("允收天數", typeof(String));
                dtExcel.Columns.Add("允出天數", typeof(String));
                dtExcel.Columns.Add("搬移狀態", typeof(String));
                IinvdMgr iinvdMgr = new IinvdMgr(mySqlConnectionString);

                List<Parametersrc> stores = new List<Parametersrc>();
                _ptersrc = new ParameterMgr(mySqlConnectionString);
                stores = _ptersrc.GetElementType("icd_status");
                for (int i = 0; i < store.Rows.Count; i++)
                {
                    Iinvd invd = new Iinvd();
                    invd.item_id = uint.Parse(store.Rows[i]["icd_item_id"].ToString());
                    DataRow newRow = dtExcel.NewRow();
                    newRow[0] = store.Rows[i]["icd_item_id"].ToString();
                    newRow[1] = store.Rows[i]["product_name"].ToString();
                    newRow[2] = GetProductSpec(store.Rows[i]["icd_item_id"].ToString());
                    newRow[3] = store.Rows[i]["prepaid"].ToString() == "1" ? "是" : "否";
                    newRow[4] = store.Rows[i]["icd_old_loc_id"].ToString();
                    newRow[5] = store.Rows[i]["icd_new_loc_id"].ToString();
                    // newRow[6] = store.Rows[i]["made_date"].ToString();
                    newRow[6] = store.Rows[i]["icd_create_time"].ToString();
                    //   newRow[8] = store.Rows[i]["cde_dt"].ToString();
                    newRow[7] = iinvdMgr.SumProd_qty(invd);//store.Rows[i]["prod_qty"].ToString();
                    newRow[8] = store.Rows[i]["pwy_dte_ctl"].ToString();
                    //if (store.Rows[i]["pwy_dte_ctl"].ToString() == "Y")
                    //{
                    //    DateTime made = DateTime.Parse(store.Rows[i]["made_date"].ToString());
                    //    int incr = int.Parse(store.Rows[i]["cde_dt_incr"].ToString());
                    //    int shp = int.Parse(store.Rows[i]["cde_dt_shp"].ToString());
                    //    if (made.AddDays(incr) < DateTime.Now)
                    //    {
                    //        newRow[9] = "是";
                    //    }
                    //    else if (made.AddDays(incr - shp) < DateTime.Now)
                    //    {
                    //        newRow[10] = "是";
                    //    }
                    //    else
                    //    {
                    //        newRow[10] = "否";
                    //        newRow[9] = "否";
                    //    }
                    //}
                    //else
                    //{
                    //    newRow[9] = "";
                    //    newRow[10] = "";
                    //}
                    newRow[9] = store.Rows[i]["cde_dt_var"].ToString();
                    newRow[10] = store.Rows[i]["cde_dt_shp"].ToString();

                    for (int a = 0; a < stores.Count; a++)
                    {
                        if (stores[a].ParameterCode == store.Rows[i]["icd_status"].ToString())
                        {
                            newRow[11] = stores[a].parameterName;
                        }
                    }
                    dtExcel.Rows.Add(newRow);
                }
                if (dtExcel.Rows.Count > 0)
                {
                    string fileName = "料位移動查詢_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                    MemoryStream ms = ExcelHelperXhf.ExportDT(dtExcel, "料位移動查詢_" + DateTime.Now.ToString("yyyyMMddHHmmss"));
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
                    Response.BinaryWrite(ms.ToArray());
                }
                else
                {
                    Response.Write("匯出數據不存在");
                }
            }
            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);
            }
        }
        public void DeliversExport()
        {
            string json = string.Empty;
            StringBuilder sb = new StringBuilder();
            string jsonStr = String.Empty;


            try
            {
                List<DeliverMasterQuery> store = new List<DeliverMasterQuery>();
                DeliverMasterQuery query = new DeliverMasterQuery();
                #region 查詢條件
                if (!string.IsNullOrEmpty(Request.Params["type"]))//出貨類別
                {
                    query.types = Request.Params["type"];
                }
                if (!string.IsNullOrEmpty(Request.Params["delivery_status"]) && int.Parse(Request.Params["delivery_status"]) != -1)//出貨狀態
                {
                    query.status = Request.Params["delivery_status"];
                }
                if (!string.IsNullOrEmpty(Request.Params["export_id"]) && int.Parse(Request.Params["export_id"]) != 0) //出貨方式
                {
                    query.vendor_id = uint.Parse(Request.Params["export_id"]);
                }
                query.delivery_store = 0;
                if (!string.IsNullOrEmpty(Request.Params["delivery_store"]) && int.Parse(Request.Params["delivery_store"]) != 0)//物流商
                {
                    query.delivery_store = uint.Parse(Request.Params["delivery_store"]);
                }
                query.warehouse_status = -1;
                if (!string.IsNullOrEmpty(Request.Params["warehouse_statu"]) && int.Parse(Request.Params["warehouse_statu"]) != -1) //調度狀態
                {
                    query.warehouse_status = int.Parse(Request.Params["warehouse_statu"]);
                }
                query.priority = -1;
                if (!string.IsNullOrEmpty(Request.Params["priority"]) && int.Parse(Request.Params["priority"]) != -1)//出貨篩選
                {
                    query.priority = int.Parse(Request.Params["priority"]);
                }
                if (!string.IsNullOrEmpty(Request.Params["datequery"]) && int.Parse(Request.Params["datequery"]) != 0)//日期條件
                {
                    if (!string.IsNullOrEmpty(Request.Params["time_start"]))//出貨日期
                    {

                        query.time_start = DateTime.Parse(Request.Params["time_start"]);
                    }
                    if (!string.IsNullOrEmpty(Request.Params["time_end"]))//出貨日期
                    {
                        query.time_end = DateTime.Parse(Request.Params["time_end"]);
                    }
                }
                if (!string.IsNullOrEmpty(Request.Params["search"]))//搜索
                {
                    query.vendor_name_simple = Request.Params["search"];
                }
                #endregion
                _DeliverMsterMgr = new DeliverMasterMgr(mySqlConnectionString);

                string fileName = "delivers" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
                store = _DeliverMsterMgr.GetdeliverListCSV(query);
                #region 獲取物流業者列表,訂單狀態列表。然後根據判斷來<數據來自參數表>
                List<Parametersrc> Shipment = new List<Parametersrc>();
                _ptersrc = new ParameterMgr(mySqlConnectionString);
                Shipment = _ptersrc.GetAllKindType("Deliver_Store");//物流業者
                DataTable _dtShipment = new DataTable();
                _dtShipment.Columns.Add("parametercode", typeof(String));
                _dtShipment.Columns.Add("parameterName", typeof(String));
                _dtShipment.Columns.Add("remark", typeof(String));
                foreach (var item in Shipment)
                {
                    DataRow dr = _dtShipment.NewRow();
                    dr[0] = item.ParameterCode;
                    dr[1] = item.parameterName;
                    dr[2] = item.remark;
                    _dtShipment.Rows.Add(dr);
                }
                Shipment = _ptersrc.GetAllKindType("order_status");//訂單狀態
                DataTable _dtOrderStatus = new DataTable();
                _dtOrderStatus.Columns.Add("parametercode", typeof(String));
                _dtOrderStatus.Columns.Add("parameterName", typeof(String));
                _dtOrderStatus.Columns.Add("remark", typeof(String));
                foreach (var item in Shipment)
                {
                    DataRow dr = _dtOrderStatus.NewRow();
                    dr[0] = item.ParameterCode;
                    dr[1] = item.parameterName;
                    dr[2] = item.remark;
                    _dtOrderStatus.Rows.Add(dr);
                }
                #endregion

                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));
                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));
                dtHZ.Columns.Add("物流單號", typeof(String));
                dtHZ.Columns.Add("物流費", typeof(String));
                dtHZ.Columns.Add("可出貨時間", typeof(String));
                dtHZ.Columns.Add("付款時間", typeof(String));


                foreach (var item in store)
                {
                    DataRow dr = dtHZ.NewRow();
                    dr[0] = processingTime(item.delivery_date);
                    dr[1] = processingTime(item.arrival_date);
                    dr[2] = item.order_id;

                    #region 把訂單狀態和物流業者提取賦值
                    DataRow[] rows = _dtShipment.Select("ParameterCode='" + item.delivery_store + "'");
                    foreach (DataRow row in rows)//篩選出的最多只有一條數據,如果有,把物流商的名稱傳遞過去,如果沒有,把物流商編號傳遞過去
                    {
                        item.ShipmentName = item.delivery_store.ToString();
                        if (!string.IsNullOrEmpty(row["ParameterCode"].ToString()))
                        {
                            //  item.ShipmentName = row["ParameterName"].ToString();
                            dr[12] = row["ParameterName"].ToString();//---物流業者
                        }
                    }
                    if (item.type == 1 || item.type == 2)//訂單狀態
                    {
                        rows = _dtOrderStatus.Select("ParameterCode='" + item.order_status + "'");
                        foreach (DataRow row in rows)//篩選出的最多只有一條數據,如果有,把物流商的名稱傳遞過去,如果沒有,把物流商編號傳遞過去
                        {
                            dr[3] = item.order_status.ToString();
                            if (!string.IsNullOrEmpty(row["ParameterCode"].ToString()))
                            {
                                dr[3] = row["remark"].ToString();
                            }
                        }
                    }
                    #endregion

                    dr[4] = item.delivery_name;
                    dr[5] = item.deliver_id;
                    #region 出貨單狀態
                    uint stat = item.delivery_status;//出貨單狀態
                    switch (stat)
                    {
                        case 0:
                            dr[6] = "待出貨";
                            break;
                        case 1:
                            dr[6] = "可出貨";
                            break;
                        case 2:
                            dr[6] = "出貨中";
                            break;
                        case 3:
                            dr[6] = "已出貨";
                            break;
                        case 4:
                            dr[6] = "已到貨";
                            break;
                        case 5:
                            dr[6] = "未到貨";
                            break;
                        case 6:
                            dr[6] = "取消出貨";
                            break;
                        case 7:
                            dr[6] = "待取貨";
                            break;
                        default:
                            dr[6] = "意外數據錯誤";
                            break;
                    }
                    #endregion

                    dr[7] = item.vendor_name_simple;
                    #region 運送方式
                    uint freight_set = item.freight_set;
                    switch (freight_set)
                    {
                        case 1:
                            dr[8] = "常溫";
                            break;
                        case 2:
                            dr[8] = "冷凍";
                            break;
                        case 3:
                            dr[8] = "常溫免運";
                            break;
                        case 4:
                            dr[8] = "冷凍免運";
                            break;
                        case 5:
                            dr[8] = "冷藏";
                            break;
                        case 6:
                            dr[8] = "冷藏免運";
                            break;
                        default:
                            dr[8] = freight_set;
                            break;
                    }
                    #endregion

                    dr[9] = processingTime(item.estimated_delivery_date);
                    dr[10] = processingTime(item.estimated_arrival_date);
                    #region 預計到貨時段
                    switch (item.estimated_arrival_period)
                    {
                        case 0:
                            dr[11] = "不限時";
                            break;
                        case 1:
                            dr[11] = "12:00以前";
                            break;
                        case 2:
                            dr[11] = "12:00-17:00";
                            break;
                        case 3:
                            dr[11] = "17:00-20:00";
                            break;
                        default:
                            dr[11] = item.estimated_arrival_period;
                            break;
                    }
                    #endregion
                    //  dr[11] = item.estimated_arrival_period;//--預計到貨時段
                    //dr[12] = item.delivery_date;
                    dr[13] = "";//--調度
                    if (item.warehouse_status != 0)
                    {
                        dr[13] = "調度";
                    }
                    dr[14] = item.delivery_code;//--物流單號
                    dr[15] = item.delivery_freight_cost;//--物流費
                    dr[16] = processingTime(item.order_pay_date);//--可出貨時間
                    dr[17] = processingTime(item.money_pay_date);//--付款時間

                    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();
            }
            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:[]}";
            }
        }
 public HttpResponseBase Getkutiaowhy()
 {
     string json = string.Empty;
     string types = "adj_code";
     try
     {
         List<Parametersrc> store = new List<Parametersrc>();
         _psrcMgr = new ParameterMgr(mySqlConnectionString);
         store = _psrcMgr.GetKindTypeByStatus(types);
         json = "{success:true,'msg':'user',data:" + JsonConvert.SerializeObject(store) + "}";//返回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,totalCount:0,data:[]}";
     }
     this.Response.Clear();
     this.Response.Write(json);
     this.Response.End();
     return this.Response;
 }
        public HttpResponseBase FirstSaveGift()
        {
            string jsonStr = String.Empty;
            try
            {
                PromotionsAmountGiftQuery model = new PromotionsAmountGiftQuery();

                #region 獲取第一步保存model的數據
                if (!string.IsNullOrEmpty(Request.Params["name"]))
                {
                    model.name = Request.Params["name"].ToString();
                }
                else
                {
                    model.name = string.Empty;
                }
                if (!string.IsNullOrEmpty(Request.Params["desc"]))
                {
                    model.event_desc = Request.Params["desc"].ToString();
                }
                else
                {
                    model.event_desc = string.Empty;
                }
                if (!string.IsNullOrEmpty(Request.Params["vendor_coverage"]))
                {
                    model.vendor_coverage = Convert.ToInt32(Request.Params["vendor_coverage"].ToString());
                }
                else
                {
                    model.vendor_coverage = 0;
                }
                if (!string.IsNullOrEmpty(Request.Params["amount"]))
                {
                    model.amount = Convert.ToInt32(Request.Params["amount"].ToString());
                }
                else
                {
                    model.amount = 0;
                }
                if (!string.IsNullOrEmpty(Request.Params["quantity"]))
                {
                    model.quantity = Convert.ToInt32(Request.Params["quantity"].ToString());
                }
                else
                {
                    model.quantity = 0;
                }
                model.kuser = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id.ToString();
                model.created = DateTime.Now;
                model.status = 0;

                if (!string.IsNullOrEmpty(Request.Params["event_type_name"]))
                {
                    //獲取event_type和category_father_id
                    _parasrcMgr = new ParameterMgr(mySqlConnectionString);
                    List<Parametersrc> fatherIdResult = _parasrcMgr.QueryUsed(new Parametersrc { ParameterType = "event_type", parameterName = Request.Params["event_type_name"].ToString(), Used = 1 });
                    if (fatherIdResult.Count == 1)
                    {
                        model.event_type = fatherIdResult[0].ParameterCode;
                        model.category_father_id = Convert.ToUInt32(fatherIdResult[0].ParameterProperty);
                    }
                }
                else
                {
                    model.event_type = string.Empty;
                    model.category_father_id = 0;
                }
                model.category_ipfrom = Request.UserHostAddress;
                #endregion

                _promoAmountGiftMgr = new PromotionsAmountGiftMgr(mySqlConnectionString);
                int id = _promoAmountGiftMgr.Save(model);
                // DataTable dt = _promoAmountGiftMgr.SelectDt(query);
                PromotionsAmountGift pag = _promoAmountGiftMgr.GetModel(id);

                string event_id = CommonFunction.GetEventId(pag.event_type.ToString(), pag.id.ToString());
                if (pag != null)
                {
                    jsonStr = "{success:true,\"id\":\"" + pag.id + "\",\"cateID\":\"" + pag.category_id + "\",\"event_type\":\"" + pag.event_type + "\",\"event_id\":\"" + event_id + "\"}";
                }
                else
                {
                    jsonStr = "{success:false }";
                }
            }
            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}";
            }


            this.Response.Clear();
            this.Response.Write(jsonStr.ToString());
            this.Response.End();
            return this.Response;

        }
        //條碼列表頁
        public HttpResponseBase GetIupcList()
        {
            string json = string.Empty;

            IupcQuery iupc = new IupcQuery();
            iupc.Start = Convert.ToInt32(Request.Params["start"] ?? "0");//用於分頁的變量
            iupc.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25");//用於分頁的變量
            string content = string.Empty;
            if (!string.IsNullOrEmpty(Request.Params["searchcontent"]))
            {
                content = Request.Params["searchcontent"].Replace(',', ',').Replace('|', ',').Replace(' ', ',');//.Replace(' ',',')
                string[] list = content.Split(',');
                string test = "^[0-9]*$";
                int count = 0;//實現最後一個不加,
                for (int i = 0; i < list.Length; i++)
                {
                    if (!string.IsNullOrEmpty(list[i]))
                    {
                        if (Regex.IsMatch(list[i], test))
                        {
                            count = count + 1;
                            if (count == 1)
                            {
                                iupc.searchcontent = list[i];
                            }
                            else
                            {
                                iupc.searchcontent = iupc.searchcontent + "," + list[i];
                            }
                        }
                        else
                        {
                            iupc.searchcontentstring = iupc.searchcontentstring + list[i] + ",";
                        }
                    }
                }
            }
            if (!string.IsNullOrEmpty(Request.Params["time_start"]))
            {
                iupc.create_time_start = DateTime.Parse(Request.Params["time_start"]).ToString("yyyy-MM-dd HH:mm:ss");
            }
            if (!string.IsNullOrEmpty(Request.Params["time_end"]))
            {
                iupc.create_time_end = DateTime.Parse(Request.Params["time_end"]).ToString("yyyy-MM-dd HH:mm:ss");
            }
            try
            {
                List<IupcQuery> store = new List<IupcQuery>();
                _IiupcMgr = new IupcMgr(mySqlConnectionString);
                int totalCount = 0;
                store = _IiupcMgr.GetIupcList(iupc, out  totalCount);
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                List<Parametersrc> stores = new List<Parametersrc>();
                _ptersrc = new ParameterMgr(mySqlConnectionString);
                stores = _ptersrc.GetElementType("iupc_type");
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
                foreach (var item in store)
                {
                    item.product_name += GetProductSpec(item.item_id.ToString());
                    for (int i = 0; i < stores.Count; i++)
                    {
                        if (item.upc_type_flg == stores[i].ParameterCode)
                        {
                            item.upc_type_flg_string = stores[i].parameterName;
                        }
                    }
                }
                json = "{success:true,'msg':'user',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);
                json = "{success:false,totalCount:0,data:[]}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
 public HttpResponseBase GetGroupType()
 {
     List<Parametersrc> stores = new List<Parametersrc>();
     string json = string.Empty;
     _parametersrc = new ParameterMgr(mySqlConnectionString);
     try
     {
         stores = _parametersrc.GetElementType("group_type");
         //Parametersrc Dmodel = new Parametersrc();
         //Dmodel.ParameterCode = "0";
         //Dmodel.parameterName = "--請選擇--";
         //stores.Insert(0, Dmodel);//使會員群組的第一行為不分
         json = "{success:true,data:" + JsonConvert.SerializeObject(stores) + "}";//返回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:true,totalCount:0,data:[]}";
     }
     this.Response.Clear();
     this.Response.Write(json);
     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 GetPayMentStatus()
 {
     List<Parametersrc> stores = new List<Parametersrc>();
     _ptersrc = new ParameterMgr(mySqlConnectionString);
     string paraType = string.Empty;
     string json = string.Empty;
     try
     {
         if (!string.IsNullOrEmpty(Request.QueryString["paraType"]))
         {
             paraType = Request.QueryString["paraType"].ToString();
             stores = _ptersrc.PayforType(paraType);
             json = "{success:true,data:" + JsonConvert.SerializeObject(stores) + "}";//返回json數據
         }
         else
         {
             json = "{success:true,totalCount:0,data:[]}";
         }
     }
     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:true,totalCount:0,data:[]}";
     }
     this.Response.Clear();
     this.Response.Write(json);
     this.Response.End();
     return this.Response;
 }
        /// <summary>
        /// 供應商自行出貨信息
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase DeliveryInformation()
        {
            string jsonStr = String.Empty;
            StringBuilder sb = new StringBuilder();

            _OrderDetailMgr = new OrderDetailMgr(mySqlConnectionString);
            try
            {
                List<OrderDetailQuery> store = new List<OrderDetailQuery>();

                OrderDetailQuery query = new OrderDetailQuery();
                uint slave_id = 0;
                if (!string.IsNullOrEmpty(Request.Params["sid"]))
                {
                    slave_id = uint.Parse(Request.Params["sid"]);
                }
                query.Slave_Id = slave_id;

                query.Vendor_Id = ((BLL.gigade.Model.Vendor)Session["vendor"]).vendor_id;



                store = _OrderDetailMgr.DeliveryInformation(query, sb.ToString());//查询出供應商出貨單Vendor delivery

                #region 貨運單屬性
                List<Parametersrc> paramentFreight = new List<Parametersrc>();
                DataTable _dtProductFreightSet = new DataTable();
                _ptersrc = new ParameterMgr(mySqlConnectionString);

                paramentFreight = _ptersrc.GetAllKindType("product_freight");//物流業者

                _dtProductFreightSet.Columns.Add("parametercode", typeof(String));
                _dtProductFreightSet.Columns.Add("parameterName", typeof(String));
                _dtProductFreightSet.Columns.Add("remark", typeof(String));
                foreach (var item in paramentFreight)
                {
                    DataRow dr = _dtProductFreightSet.NewRow();
                    dr[0] = item.ParameterCode;
                    dr[1] = item.parameterName;
                    dr[2] = item.remark;
                    _dtProductFreightSet.Rows.Add(dr);
                }
                #endregion

                List<OrderDetailQuery> stores = new List<OrderDetailQuery>();
                foreach (var item in store)
                {
                    if (item.Combined_Mode >= 1 && item.Product_Mode == 1)
                        continue;
                    if (item.item_mode == 2)
                    {
                        item.Buy_Num = item.Buy_Num * item.parent_num;
                        // item.Sub_Total = item.Single_Money * item.parent_num;
                    }
                    //else 
                    //{
                    //    item.Sub_Total = item.Single_Money * item.Buy_Num;
                    //}
                    DataRow[] rows = _dtProductFreightSet.Select("ParameterCode='" + item.Product_Freight_Set + "'");
                    item.Product_Freight_Set_Str = item.Product_Freight_Set.ToString();
                    foreach (DataRow row in rows)//篩選出的最多只有一條數據,
                    {
                        if (!string.IsNullOrEmpty(row["ParameterCode"].ToString()))
                        {
                            item.Product_Freight_Set_Str = row["ParameterName"].ToString();//---送貨時段
                        }
                    }
                    if (!string.IsNullOrEmpty(item.Product_Spec_Name))
                    {
                        item.Product_Name = item.Product_Spec_Name;
                    }
                    stores.Add(item);

                }

                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd";
                jsonStr = "{success:true,data:" + JsonConvert.SerializeObject(stores, 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 Reply()
 {
     string json = string.Empty;
     string response_content = string.Empty;
     OrderCancelResponse ocr = new OrderCancelResponse();
     _ptersrc = new ParameterMgr(mySqlConnectionString);
     int i = 0;
     string cancel_id = string.Empty; ;
     if (!string.IsNullOrEmpty(Request.Params["cancel_id"]))
     {
         cancel_id = Request.Params["cancel_id"];
         ocr.cancel_id = uint.Parse(cancel_id);
     }
     string question_email = string.Empty;
     if (!string.IsNullOrEmpty(Request.Params["question_email"]))
     {
         question_email = Request.Params["question_email"];
     }
     //獲取登錄用戶的user_email
     string user_email = (Session["caller"] as Caller).user_email;
     //獲取登錄用戶的user_id
     string user_id = (Session["caller"] as Caller).user_id.ToString();
     string res;
     try
     {
         res = Request.Params["response"].ToString().Trim();
         res = res.Replace("\n", "");
         if (res.Length > 0)
         {
             response_content = Request.Params["response"] + " ";
             ocr.user_id = uint.Parse(user_id);
             ocr.response_content = response_content;
             System.Net.IPAddress[] addlist = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
             if (addlist.Length > 0)
             {
                 ocr.response_ipfrom = addlist[0].ToString();
             }
             _orderCancelMsgMgr = new OrderCancelMsgMgr(mySqlConnectionString);
             i = _orderCancelMsgMgr.Reply(ocr);
             bool issend = false;
             if (i == 2)
             {
                 MailHelper mail = new MailHelper();
                 string mail1 = _ptersrc.Getmail("TestMail");
                 if (mail1 == "*****@*****.**")
                 {//測試使用上正式機后可變更為gigademail則是讀取會員mail
                     mail1 = question_email;
                 }
                 issend = mail.SendMailAction(mail1, "取消訂單通知信", response_content);
             }
             json = "{success:true,msg:\"" + " 發送郵件成功!" + "\"}";
         }
         else
         {
             json = "{success:false,msg:\"" + "请填写回覆内容!" + "\"}";
         }
     }
     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 = ex.InnerException.Message;
         json = ex.InnerException.Source;
         json = "{success:false,msg:\"" + " 發送郵件失敗!" + "\"}";
     }
     this.Response.Clear();
     this.Response.Write(json);
     this.Response.End();
     return this.Response;
 }
 public int GetVebdorPMGroup()//add by mengjuan0826j 2015/6/8 處理供應商pm設定
 {
     paraMgr = new ParameterMgr(mySqlConnectionString);
     fgMgr = new FgroupMgr(mySqlConnectionString);
     List<Parametersrc> parstore = paraMgr.QueryUsed(new Parametersrc { ParameterType = "vendor_pm" }).ToList();//獲取vendor_pm 群組的設定  群組名稱和群組編碼
     int group_id = 0;
     if (parstore.Count != 0)
     {
         fg.groupCode = parstore[0].ParameterCode;
         fg.groupName = parstore[0].parameterName;
         Fgroup pmfg = fgMgr.GetSingle(fg);//根據群組名稱找到group_id
         if (pmfg != null)
         {
             group_id = pmfg.rowid;
         }
     }
     return group_id;
 }
 public HttpResponseBase GetNewPromoPresentEventType()
 {
     string json=string.Empty;
     try
     {
         string type = "new_promo_present_event_type";
         _IParametersrcMgr = new ParameterMgr(mySqlConnectionString);
         List<Parametersrc> list = _IParametersrcMgr.GetElementType(type);
         Parametersrc src = new Parametersrc();
         src.parameterName = "不分";
         src.ParameterCode = "0";
         list.Insert(0, src);
         json = "{data:" + JsonConvert.SerializeObject(list, Formatting.Indented) + "}";
     }
     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,totalCount:0,data:[]}";
     }
     this.Response.Clear();
     this.Response.Write(json.ToString());
     this.Response.End();
     return this.Response;
 }
        /// <summary>
        /// 出貨管理:檢索>傳票明細
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase SubPoenaDetailList()
        {
            int ticket_id = Convert.ToInt32(Request.Params["ticket_id"]);
            string jsonStr = String.Empty;
            List<OrderDetailQuery> store = new List<OrderDetailQuery>();
            OrderDetailQuery query = new OrderDetailQuery();
            List<OrderDetailQuery> na = new List<OrderDetailQuery>();
            try
            {
                query.Ticket_Id = ticket_id;
                _IOrderDetailMgr = new OrderDetailMgr(mySqlConnectionString);
                int totalCount = 0;
                store = _IOrderDetailMgr.SubPoenaDetail(query);
                #region MyRegion


                // List<OrderDetailQuery> one_product = new List<OrderDetailQuery>();		//單一商品
                // List<OrderDetailQuery> combination = new List<OrderDetailQuery>();			//組合商品
                // List<OrderDetailQuery> combination_head = new List<OrderDetailQuery>();		//組合品名
                // List<OrderDetailQuery> combination_tail = new List<OrderDetailQuery>();		//子商品名
                // List<OrderDetailQuery> new_order_detail = new List<OrderDetailQuery>(); ;    //新商品資料
                // List<OrderDetailQuery> since_order = new List<OrderDetailQuery>();	   //自出商品
                // Dictionary<int, string> freight_set_map = new Dictionary<int, string>();
                // freight_set_map.Add(1, "常溫");
                // freight_set_map.Add(2, "冷凍");
                // freight_set_map.Add(5, "冷藏");
                // Dictionary<int, string> product_freight_set_mapping = new Dictionary<int, string>();
                // product_freight_set_mapping.Add(1, "1");
                // product_freight_set_mapping.Add(2, "2");
                // product_freight_set_mapping.Add(3, "1");
                // product_freight_set_mapping.Add(4, "2");
                // product_freight_set_mapping.Add(5, "5");
                // product_freight_set_mapping.Add(6, "5");

                // foreach (var item in store)
                // {
                //     if (item.Combined_Mode > 1)
                //     {
                //         if (item.item_mode == 1)
                //             combination_head.Add(item);
                //         else
                //             combination_tail.Add(item);
                //     }
                //     else
                //     {
                //         uint freight = item.Product_Freight_Set;
                //         item.Product_Freight_Set =uint.Parse(product_freight_set_mapping[int.Parse(item.Product_Freight_Set.ToString())]);
                //         one_product.Add(item);
                //         item.Product_Freight_Set = freight;
                //     }
                // }
                // foreach (var item in combination_head)
                // {
                //     uint freight = item.Product_Freight_Set;
                //     item.Product_Freight_Set = uint.Parse(product_freight_set_mapping[int.Parse(item.Product_Freight_Set.ToString())]);
                //     combination.Add(item);
                //     item.Product_Freight_Set = freight;
                //     foreach (var items in combination_tail)
                //     {
                //         if (item.Parent_Id == items.Parent_Id && item.pack_id == items.pack_id)
                //         {
                //             items.Buy_Num = items.Buy_Num * items.parent_num;
                //             combination.Add(items);
                //         }
                //     }
                // }
                #endregion

                //(合併數據來自www/Model/Deliver.Php,第1391~1463行)
                #region 測試方法

                List<Parametersrc> Shipment = new List<Parametersrc>();
                _ptersrc = new ParameterMgr(mySqlConnectionString);
                Shipment = _ptersrc.GetAllKindType("order_status");//訂單狀態
                Dictionary<string, string> _dtOrderStatus = new Dictionary<string, string>();
                foreach (var item in Shipment)
                {
                    _dtOrderStatus.Add(item.ParameterCode, item.remark);
                }
                Dictionary<int, string> freight_set_map = new Dictionary<int, string>();
                freight_set_map.Add(1, "常溫");
                freight_set_map.Add(2, "冷凍");
                freight_set_map.Add(5, "冷藏");
                Dictionary<int, string> product_freight_set_mapping = new Dictionary<int, string>();
                product_freight_set_mapping.Add(1, "1");
                product_freight_set_mapping.Add(2, "2");
                product_freight_set_mapping.Add(3, "1");
                product_freight_set_mapping.Add(4, "2");
                product_freight_set_mapping.Add(5, "5");
                product_freight_set_mapping.Add(6, "5");
                Dictionary<string, List<OrderDetailQuery>> one_product = new Dictionary<string, List<OrderDetailQuery>>();		//單一商品
                Dictionary<string, List<OrderDetailQuery>> combination = new Dictionary<string, List<OrderDetailQuery>>();		//組合商品
                List<OrderDetailQuery> combination_head = new List<OrderDetailQuery>();		//組合品名
                List<OrderDetailQuery> combination_tail = new List<OrderDetailQuery>();		//子商品名
                List<OrderDetailQuery> new_order_detail = new List<OrderDetailQuery>(); ;    //新商品資料
                List<OrderDetailQuery> since_order = new List<OrderDetailQuery>();	   //自出商品
                since_order.AddRange(new_order_detail);
                int w = since_order.Count;

                string frest;
                #region 把所有的商品,把單一和組合拆分開
                //把所有的商品,把單一和組合區分開,然後把組合的商品運送方式區分開(常溫冷凍冷藏)
                foreach (var item in store)
                {
                    if (item.Combined_Mode > 1)
                    {
                        if (item.item_mode == 1)
                            combination_head.Add(item);
                        else
                            combination_tail.Add(item);
                    }
                    else
                    {

                        frest = "";
                        frest = product_freight_set_mapping[int.Parse(item.Product_Freight_Set.ToString())];
                        if (!one_product.Keys.Contains(frest))
                        {
                            List<OrderDetailQuery> s = new List<OrderDetailQuery>();
                            one_product.Add(frest, s);
                        }
                        one_product[frest].Add(item);
                        //one_product.Add(frest, item);
                    }
                }
                #endregion

                #region 把組合商品中拆分開子商品和父商品
                //把組合商品拆分開,并計算子商品的數量,把子商品按照運送方式再次拆開
                foreach (var item in combination_head)
                {

                    frest = "";
                    frest = product_freight_set_mapping[int.Parse(item.Product_Freight_Set.ToString())];
                    if (!combination.Keys.Contains(frest))
                    {
                        List<OrderDetailQuery> s = new List<OrderDetailQuery>();
                        combination.Add(frest, s);
                    }
                    //combination.Add(frest, item);
                    combination[frest].Add(item);
                    foreach (var items in combination_tail)
                    {
                        if (item.Parent_Id == items.Parent_Id && item.pack_id == items.pack_id)
                        {
                            items.Buy_Num = items.Buy_Num * items.parent_num;
                            //combination.Add(frest, item);
                            combination[frest].Add(items);
                        }
                    }
                }
                #endregion

                #region 把單一商品,組合商品,子商品 根據運送方式在此組合在一起

                foreach (var item in freight_set_map)
                {
                    ////List<OrderDetailQuery> s = new List<OrderDetailQuery>();
                    ////if (combination.ContainsKey(item.Key.ToString()))
                    ////{
                    ////    s.AddRange(combination[item.Key.ToString()]);
                    ////}
                    ////if (s.Count > 0)
                    ////{
                    ////    new_order_detail.AddRange(combination[item.Key.ToString()]);
                    ////}
                    ////else
                    ////{
                    ////    if (one_product.ContainsKey(item.Key.ToString()))
                    ////    {
                    ////        new_order_detail.AddRange(one_product[item.Key.ToString()]);
                    ////    }
                    ////}
                    if (one_product.ContainsKey(item.Key.ToString()))
                    {
                        new_order_detail.AddRange(one_product[item.Key.ToString()]);
                    }
                    if (combination.ContainsKey(item.Key.ToString()))
                    {
                        //new_order_detail.Add(combination[item.Key.ToString()]);
                        new_order_detail.AddRange(combination[item.Key.ToString()]);
                    }
                    ///--------------------------------------------------
                    //string a = item.Key.ToString();
                    //if (combination[item.Key.ToString()].Count > 0)
                    //{
                    //    new_order_detail.AddRange(combination[item.Key.ToString()]);
                    //}
                    //else if (one_product[item.Key.ToString()].Count > 0)
                    //{
                    //    //new_order_detail.Add(combination[item.Key.ToString()]);
                    //    new_order_detail.AddRange(one_product[item.Key.ToString()]);
                    //}
                }
                #endregion

                #region 這個根據什麼條件篩選出來


                for (int i = 0; i < new_order_detail.Count; i++)
                {
                    new_order_detail[i].Product_Freight_Set_Str = _dtOrderStatus[(new_order_detail[i].Detail_Status).ToString()];
                    if (new_order_detail[i].Combined_Mode >= 1 && new_order_detail[i].item_mode == 1)
                    {
                        continue;
                    }
                    else
                    {
                        na.Add(new_order_detail[i]);
                    }
                }
                #endregion

                #endregion

                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd";
                jsonStr = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(na, 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;
        }