public Resuldt <uditPdProductStock> ImportExcel(System.IO.Stream stream, int SysNo) { DataTable dt = null; var cols = DicColsMapping.Select(p => p.Value).ToArray(); try { dt = ExcelUtil.ImportExcel(stream, cols); } catch (Exception ex) { return(new Resuldt <uditPdProductStock> { Message = string.Format("数据导入错误,请选择正确的excel文件"), Status = false }); } if (dt == null) { //not all the cols mapped return(new Resuldt <uditPdProductStock> { Message = string.Format("请选择正确的excel文件!"), Status = false }); } if (dt.Rows.Count == 0) { return(new Resuldt <uditPdProductStock> { Message = "导入的数据为空!", Status = false }); } Resuldt <uditPdProductStock> run = new Resuldt <uditPdProductStock>(); List <uditPdProductStock> listModel = new List <uditPdProductStock>(); int fail = 0; //失败记录数 int success = 0; //成功记录数 string failstr = ""; //失败条数记录 for (int i = 0; i < dt.Rows.Count; i++) { uditPdProductStock model = IWhInventoryDao.Instance.GetuditPdProductStockTo(dt.Rows[i]["商品代码"].ToString().Trim(), dt.Rows[i]["仓库Erp编号"].ToString().Trim()); if (model == null) { model = new uditPdProductStock(); var product = PdProductBo.Instance.GetProductErpCode(dt.Rows[i]["商品代码"].ToString().Trim(), null); var ware = Hyt.BLL.Web.WhWarehouseBo.Instance.GetModelErpCode(dt.Rows[i]["仓库Erp编号"].ToString().Trim()); if (product == null || ware == null) { fail++; failstr += (i + 2) + "、"; dt.Rows.Remove(dt.Rows[i]); } else { #region 将商品插入至商品库存表 // WhInventoryBo PdProductStock stockModel = new PdProductStock() { WarehouseSysNo = ware.SysNo, PdProductSysNo = product.SysNo, StockQuantity = 0, LockStockQuantity = 0, CreatedDate = DateTime.Now, Barcode = product.Barcode, CostPrice = 0, CustomsNo = "", InStockTime = "", Remark = "库存盘点自动入库" }; var r = PdProductStockBo.Instance.SaveProductStock(stockModel, 0); #endregion if (r > 0) { model = IWhInventoryDao.Instance.GetuditPdProductStockTo(dt.Rows[i]["商品代码"].ToString().Trim(), dt.Rows[i]["仓库Erp编号"].ToString().Trim()); success++; model.BeiZhu = dt.Rows[i]["备注"] == null ? "" : dt.Rows[i]["备注"].ToString().Trim(); model.ShiQuantity = dt.Rows[i]["实存数"] == null ? 0 : Convert.ToDecimal(dt.Rows[i]["实存数"].ToString().Trim()); model.WhCostPrice = dt.Rows[i]["单价"] == null ? 0 : Convert.ToDecimal(dt.Rows[i]["单价"].ToString().Trim()); listModel.Add(model); } else { fail++; failstr += (i + 2) + "、"; dt.Rows.Remove(dt.Rows[i]); } } } else { success++; model.BeiZhu = dt.Rows[i]["备注"] == null ? "" : dt.Rows[i]["备注"].ToString().Trim(); model.ShiQuantity = dt.Rows[i]["实存数"] == null ? 0 : Convert.ToDecimal(dt.Rows[i]["实存数"].ToString().Trim()); model.WhCostPrice = dt.Rows[i]["单价"] == null ? 0 : Convert.ToDecimal(dt.Rows[i]["单价"].ToString().Trim()); listModel.Add(model); } } if (success > 0 && dt.Rows.Count > 0) { run.Data = dt; } if (success > 0 && listModel != null) { run.listModel = listModel; } run.Message = "导入成功" + success + "件商品,失败" + fail + "件商品;"; if (fail > 0) { run.Message += "失败原因为:产品编码或仓库erp编码有误,不存在此件商品。失败条数为第" + failstr.Trim('、') + "条。"; } run.Status = true; return(run); }
/// <summary> /// 套装商品数据导入Excel /// </summary> /// <param name="stream"></param> /// <param name="SysNo"></param> /// <returns></returns> /// 2017-08-25 吴琨 创建 public Resuldt <PdPackagedGoodsEntry> ImportExcel(System.IO.Stream stream, int SysNo) { DataTable dt = null; var cols = DicColsMapping.Select(p => p.Value).ToArray(); #region 基础验证 try { dt = ExcelUtil.ImportExcel(stream, cols); } catch (Exception ex) { return(new Resuldt <PdPackagedGoodsEntry> { Message = string.Format("数据导入错误,请选择正确的excel文件"), Status = false }); } if (dt == null) { //not all the cols mapped return(new Resuldt <PdPackagedGoodsEntry> { Message = string.Format("请选择正确的excel文件!"), Status = false }); } if (dt.Rows.Count == 0) { return(new Resuldt <PdPackagedGoodsEntry> { Message = "导入的数据为空!", Status = false }); } #endregion Resuldt <PdPackagedGoodsEntry> run = new Resuldt <PdPackagedGoodsEntry>(); List <PdPackagedGoodsEntry> listModel = new List <PdPackagedGoodsEntry>(); int fail = 0; //失败记录数 int success = 0; //成功记录数 string failstr = ""; //失败条数记录 for (int i = 0; i < dt.Rows.Count; i++) { success++; PdPackagedGoodsEntry model = new PdPackagedGoodsEntry(); model.PdCode = dt.Rows[i]["商品代码"].ToString(); if (!string.IsNullOrEmpty(model.PdCode)) { var product = PdProductBo.Instance.GetProductErpCode(dt.Rows[i]["商品代码"].ToString().Trim(), null); if (product != null) { model.PdSysNo = product.SysNo; model.PdName = product.EasName; } else { fail++; failstr += (i + 2) + "、"; dt.Rows.Remove(dt.Rows[i]); continue; } } model.Company = dt.Rows[i]["单位"].ToString(); model.UnitPrice = Convert.ToDecimal(dt.Rows[i]["单价"]); model.Count = Convert.ToDecimal(dt.Rows[i]["用量"]); #region 发料仓库信息 model.WarehouseCode = dt.Rows[i]["发料仓库"].ToString(); if (!string.IsNullOrEmpty(model.WarehouseCode)) { var WhWarehouse = Hyt.BLL.Web.WhWarehouseBo.Instance.GetModelErpCode(model.WarehouseCode); if (WhWarehouse != null) { model.WarehouseSysNo = WhWarehouse.SysNo; model.WarehouseName = WhWarehouse.BackWarehouseName; } else { fail++; failstr += (i + 2) + "、"; dt.Rows.Remove(dt.Rows[i]); continue; } } #endregion model.Remarks = dt.Rows[i]["备注"].ToString(); if (model.PdSysNo > 0 && model.WarehouseSysNo > 0) { listModel.Add(model); } } if (success > 0 && dt.Rows.Count > 0) { run.Data = null; } if (success > 0 && listModel != null) { run.listModel = listModel; } run.Message = "导入成功" + success + "件商品,失败" + fail + "件商品;"; if (fail > 0) { run.Message += "失败原因为:产品编码或仓库erp编码有误,不存在此件商品。失败条数为第" + failstr.Trim('、') + "条。"; } run.Status = true; return(run); }
public Resuldt ImportExcel(System.IO.Stream stream, int SysNo) { DataTable dt = null; var cols = DicColsMapping.Select(p => p.Value).ToArray(); try { dt = ExcelUtil.ImportExcel(stream, cols); } catch (Exception ex) { return(new Resuldt { Message = string.Format("数据导入错误,请选择正确的excel文件"), Status = false }); } if (dt == null) { //not all the cols mapped return(new Resuldt { Message = string.Format("请选择正确的excel文件!"), Status = false }); } if (dt.Rows.Count == 0) { return(new Resuldt { Message = "导入的数据为空!", Status = false }); } Resuldt run = new Resuldt(); List <CBSimplePdProduct> listModel = new List <CBSimplePdProduct>(); int fail = 0; //失败记录数 int success = 0; //成功记录数 string failstr = ""; //失败条数记录 for (int i = 0; i < dt.Rows.Count; i++) { CBSimplePdProduct model = PdProductBo.Instance.GetProductErpCode(dt.Rows[i]["产品编码"].ToString(), dt.Rows[i]["条形码"].ToString()); if (model == null) { fail++; failstr += (i + 2) + "、"; dt.Rows.Remove(dt.Rows[i]); } else { success++; listModel.Add(model); } } if (success > 0 && dt.Rows.Count > 0) { run.Data = dt; } if (success > 0 && listModel != null) { run.listModel = listModel; } run.Message = "导入成功" + success + "件商品,失败" + fail + "件商品;"; if (fail > 0) { run.Message += "失败原因为:产品编码有误,不存在此件商品。失败条数为第" + failstr.Trim('、') + "条。"; } run.Status = true; return(run); }