Esempio n. 1
0
        public ActionResult ImportExcel()
        {
            if (Request.Files.Count == 0)
            {
                return(View());
            }
            var httpPostedFileBase = Request.Files[0];

            if (httpPostedFileBase != null)
            {
                var result = new Resuldt();
                if (!_starting)
                {
                    _starting = true;
                    try
                    {
                        result = PrPurchaseBo.Instance.ImportExcel(httpPostedFileBase.InputStream,
                                                                   CurrentUser.Base.SysNo);
                    }
                    catch (Exception e)
                    {
                        result.Message = string.Format(e.Message);
                        result.Status  = false;
                    }
                    finally
                    {
                        _starting = false;
                    }
                }
                else
                {
                    result.Message = string.Format("正在导入数据,请稍后再操作");
                    result.Status  = false;
                }

                ViewBag.result = HttpUtility.UrlEncode(JsonConvert.SerializeObject(result).ToString());// HttpUtility.UrlEncode();
            }
            return(View());
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        public Resuldt <OtherOutOfStorageDetailed> OtherImportExcel(System.IO.Stream stream, int SysNo)
        {
            DataTable dt   = null;
            var       cols = OtherDicColsMapping.Select(p => p.Value).ToArray();

            try
            {
                dt = ExcelUtil.ImportExcel(stream, cols);
            }
            catch (Exception ex)
            {
                return(new Resuldt <OtherOutOfStorageDetailed>
                {
                    Message = string.Format("数据导入错误,请选择正确的excel文件"),
                    Status = false
                });
            }
            if (dt == null)
            {
                //not all the cols mapped
                return(new Resuldt <OtherOutOfStorageDetailed>
                {
                    Message = string.Format("请选择正确的excel文件!"),
                    Status = false
                });
            }

            if (dt.Rows.Count == 0)
            {
                return(new Resuldt <OtherOutOfStorageDetailed>
                {
                    Message = "导入的数据为空!",
                    Status = false
                });
            }
            Resuldt <OtherOutOfStorageDetailed> run       = new Resuldt <OtherOutOfStorageDetailed>();
            List <OtherOutOfStorageDetailed>    listModel = new List <OtherOutOfStorageDetailed>();
            int    fail    = 0;  //失败记录数
            int    success = 0;  //成功记录数
            string failstr = ""; //失败条数记录

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                OtherOutOfStorageDetailed model = new OtherOutOfStorageDetailed();
                var product = PdProductBo.Instance.GetProductErpCode(dt.Rows[i]["商品代码"].ToString(), dt.Rows[i]["商品条形码"].ToString());
                var ware    = Hyt.BLL.Web.WhWarehouseBo.Instance.GetModelErpCode(dt.Rows[i][7].ToString());
                if (product == null || ware == null)
                {
                    fail++;
                    failstr += (i + 2) + "、";
                    dt.Rows.Remove(dt.Rows[i]);
                }
                else
                {
                    #region 判断商品是否已入库,若未入库将商品插入至商品库存表
                    var Stock = IWhInventoryDao.Instance.GetuditPdProductStockTo(dt.Rows[i]["商品代码"].ToString().Trim(), dt.Rows[i][7].ToString().Trim());
                    if (Stock == null)
                    {
                        // 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            = "库存盘点自动入库"
                        };
                        PdProductStockBo.Instance.SaveProductStock(stockModel, 0);
                    }
                    #endregion

                    //重新获取商品库存信息
                    Stock = IWhInventoryDao.Instance.GetuditPdProductStockTo(dt.Rows[i]["商品代码"].ToString().Trim(), dt.Rows[i][7].ToString().Trim());
                    success++;
                    model.ProductCode           = product.ErpCode;
                    model.BarCode               = product.Barcode;
                    model.ProductName           = product.EasName;
                    model.Count                 = dt.Rows[i]["实收数量"] != DBNull.Value ? Convert.ToDecimal(dt.Rows[i]["实收数量"]) : Convert.ToDecimal(0.00);
                    model.UnitPrice             = dt.Rows[i]["单价"] != DBNull.Value ? Convert.ToDecimal(dt.Rows[i]["单价"]) : Convert.ToDecimal(0.00);
                    model.Price                 = (model.Count * model.UnitPrice);
                    model.Remarks               = dt.Rows[i]["备注"].ToString();
                    model.ProductSysNo          = product.SysNo;
                    model.CollectWarehouseName  = ware.BackWarehouseName;
                    model.CollectWarehouseCode  = ware.ErpCode;
                    model.CollectWarehouseSysNo = ware.SysNo;
                    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);
        }
Esempio n. 4
0
        public Resuldt <WhInventoryProductDetailOutput> ImportExcelTo(System.IO.Stream stream, int SysNo)
        {
            DataTable dt   = null;
            var       cols = DicColsMappingTo.Select(p => p.Value).ToArray();

            #region 基础验证
            try
            {
                dt = ExcelUtil.ImportExcel(stream, cols);
            }
            catch (Exception ex)
            {
                return(new Resuldt <WhInventoryProductDetailOutput>
                {
                    Message = string.Format("数据导入错误,请选择正确的excel文件"),
                    Status = false
                });
            }
            if (dt == null)
            {
                //not all the cols mapped
                return(new Resuldt <WhInventoryProductDetailOutput>
                {
                    Message = string.Format("请选择正确的excel文件!"),
                    Status = false
                });
            }

            if (dt.Rows.Count == 0)
            {
                return(new Resuldt <WhInventoryProductDetailOutput>
                {
                    Message = "导入的数据为空!",
                    Status = false
                });
            }
            #endregion

            Resuldt <WhInventoryProductDetailOutput> run       = new Resuldt <WhInventoryProductDetailOutput>();
            List <WhInventoryProductDetailOutput>    listModel = new List <WhInventoryProductDetailOutput>();
            int    fail    = 0;  //失败记录数
            int    success = 0;  //成功记录数
            string failstr = ""; //失败条数记录
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                success++;
                WhInventoryProductDetailOutput model = new WhInventoryProductDetailOutput();
                model.WarehouseNameDate = dt.Rows[i]["仓库名称"].ToString();
                model.PrCode            = dt.Rows[i]["商品编号"].ToString();
                model.PrName            = dt.Rows[i]["商品名称"].ToString();
                model.ZhangCunQuantity  = Convert.ToDecimal(dt.Rows[i]["账存数量"]);
                model.InventoryQuantity = Convert.ToDecimal(dt.Rows[i]["盘点数量"]);
                model.Remarks           = dt.Rows[i]["备注"].ToString();
                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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }