Ejemplo n.º 1
0
        public string UpdateERP_ID() {
            string connString = Request.Params["connString"];
            int resut = 0;
            int total_count = 0;
            try
            {
                proItem_Dao = new ProductItemDao(connString);
                pro_Dao = new ProductDao(connString);

                List<Product> proList = pro_Dao.Query(new Product());
                total_count = proList.Count;
                foreach (Product p in proList)
                {
                    try
                    {
                        proItem_Dao.UpdateErpId(p.Product_Id.ToString());
                        resut++;
                    } catch
                    {
                    }
                }
            } catch (Exception ex)
            {
                return string.Format("error:{0}", ex.Message);
            }
            return string.Format("total:{0},updated:{1}", total_count, resut);
        }
Ejemplo n.º 2
0
        public List<ProdDeliverySetImport> Save(string filePath,out string resultPath,ProductDeliverySet deliverySet)
        {
            try
            {
                _productDao = new ProductDao(connectionString);
                List<ProdDeliverySetImport> productAll = ExcelHelperXhf.ReadExcel<ProdDeliverySetImport>(filePath);
                //查詢已經存在的
                List<ProductDeliverySet> existProds = ds.Query(productAll.Select(p => uint.Parse(p.ProductId)).Distinct().ToArray(), deliverySet);

                foreach (var prod in productAll)
                {
                    if (existProds.Find(p => p.Product_id == uint.Parse(prod.ProductId)) != null)
                        prod.Status = 2;//2為存在
                }
                
                List<Product> products = _productDao.Query((from p in productAll where p.Status == 0 select uint.Parse(p.ProductId)).Distinct().ToArray());

                foreach (var prod in productAll.FindAll(p => p.Status == 0))
                {
                    var findProd = products.Find(p => p.Product_Id == uint.Parse(prod.ProductId));
                    if (findProd == null)
                    {
                        prod.Status = 4;//該商品不存在
                    }
                    else if (!findProd.CheckdStoreFreight())
                    {
                        prod.Status = 3;//3為不符合条件
                    }
                }

                //符合條件的
                var fitPords = (from p in productAll
                               where p.Status == 0
                               select new ProductDeliverySet
                                      {
                                          Product_id = int.Parse(p.ProductId),
                                          Freight_big_area = deliverySet.Freight_big_area,
                                          Freight_type = deliverySet.Freight_type
                                      }).Distinct();
                if (fitPords.Count()>0&&Save(fitPords.ToList(), 0))
                {
                    productAll.FindAll(p=>p.Status==0).ForEach(p => p.Status = 1);//1保存成功
                }

                #region 將結果保存到excel
                Dictionary<string, string> columns = new Dictionary<string, string>();
                columns.Add("ProductId", "商品ID");
                columns.Add("BrandName", "品牌名稱");
                columns.Add("ProductName", "商品名稱");
                columns.Add("Msg", "結果");
                
                MemoryStream ms = ExcelHelperXhf.ExportExcel(productAll, columns);
                resultPath=Path.GetDirectoryName(filePath)+"\\result.xls";
                FileStream fs = new FileStream(resultPath, FileMode.Create);
                byte[] data = ms.ToArray();
                fs.Write(data, 0, data.Length);
                fs.Dispose(); 
                #endregion

                return productAll;
            }
            catch (Exception ex)
            {

                throw new Exception("ProductDeliverySetMgr-->Save-->" + ex.Message, ex);
            }
        }