Esempio n. 1
0
        /// <summary>
        /// 修改订单商品信息
        /// </summary>
        /// <param name="purchasingProducts"></param>
        /// <returns></returns>
        public IActionResult UpdatePurchasingOrderProducts(PurchasingProducts purchasingProducts)
        {
            //权限
            if (!_permissionService.Authorize("AddPurchasingOrderProducts"))
            {
                return(Error("没有此权限!"));
            }
            var oldPurchasingProduct = _omsAccessor.GetById <PurchasingProducts>(purchasingProducts.Id);

            if (oldPurchasingProduct == null)
            {
                return(Error("修改商品失败,为找到商品信息!"));
            }

            oldPurchasingProduct.Quantity = purchasingProducts.Quantity;
            oldPurchasingProduct.Price    = purchasingProducts.Price;
            try
            {
                _purchasingService.UpdatePurchasingOrderProduct(oldPurchasingProduct);
                //日志
                #region 修改商品
                var data        = _purchasingService.GetPurchasingById(purchasingProducts.PurchasingId);
                var productData = _productService.GetProductById(purchasingProducts.ProductId);
                var mark        = "修改商品:【" + productData.Name + "】 数量:【" + purchasingProducts.Quantity + "】 单价:【" + purchasingProducts.Price + "】";
                _logService.InsertOrderTableLog("PurchasingProducts", purchasingProducts.PurchasingId, "修改商品", Convert.ToInt32(data.State), mark);
                #endregion

                return(Success());
            }
            catch (Exception ex)
            {
                _logService.Error("修改采购订单商品发生错误:" + ex.Message);
                return(Error("修改商品发生错误,请联系管理员!"));
            }
        }
Esempio n. 2
0
        public IActionResult AddPurchasingOrderProducts(PurchasingProducts purchasingProducts)
        {
            //权限
            if (!_permissionService.Authorize("AddPurchasingOrderProducts"))
            {
                return(Error("没有此权限!"));
            }

            if (!_purchasingService.ConfirmPurchasingOrderProductIsExist(purchasingProducts))
            {
                _purchasingService.AddPurchasingOrderProduct(purchasingProducts);


                //日志
                #region 新增商品
                var data        = _purchasingService.GetPurchasingById(purchasingProducts.PurchasingId);
                var productData = _productService.GetProductById(purchasingProducts.ProductId);
                var mark        = "新增商品:【" + productData.Name + "】 数量:【" + purchasingProducts.Quantity + "】 单价:【" + purchasingProducts.Price + "】";
                _logService.InsertOrderTableLog("PurchasingProducts", purchasingProducts.PurchasingId, "添加商品", Convert.ToInt32(data.State), mark);
                #endregion

                return(Success());
            }
            else
            {
                return(Error("添加失败,查看是否已添加!"));
            }
        }
Esempio n. 3
0
 public PurchasingProducts AddPurchasingOrderProduct(PurchasingProducts purchasingProducts)
 {
     purchasingProducts.CreatedBy   = _workContext.CurrentUser.Id;
     purchasingProducts.CreatedTime = DateTime.Now;
     _omsAccessor.Insert <PurchasingProducts>(purchasingProducts);
     _omsAccessor.SaveChanges();
     return(purchasingProducts);
 }
Esempio n. 4
0
 /// <summary>
 /// 修改采购订单商品信息
 /// </summary>
 /// <param name="purchasingProducts"></param>
 /// <returns></returns>
 public PurchasingProducts UpdatePurchasingOrderProduct(PurchasingProducts purchasingProducts)
 {
     if (_workContext.CurrentUser != null)
     {
         purchasingProducts.ModifiedBy = _workContext.CurrentUser.Id;
     }
     purchasingProducts.ModifiedTime = DateTime.Now;
     _omsAccessor.Update <PurchasingProducts>(purchasingProducts);
     _omsAccessor.SaveChanges();
     return(purchasingProducts);
 }
Esempio n. 5
0
        public bool ConfirmPurchasingOrderProductIsExist(PurchasingProducts purchasingProducts)
        {
            var result = _omsAccessor.Get <PurchasingProducts>().Where(p => p.Isvalid && p.PurchasingId == purchasingProducts.PurchasingId && p.ProductId == purchasingProducts.ProductId && p.Price == purchasingProducts.Price).FirstOrDefault();

            return(result == null ? false : true);
        }
Esempio n. 6
0
        public IActionResult ImportPuchasingOrderFromExcel(IFormFile formFile)
        {
            IWorkbook workbook = null;

            if (formFile == null)
            {
                return(Error("请添加要导入文件"));
            }
            else
            {
                string fileName = ContentDispositionHeaderValue.Parse(formFile.ContentDisposition).FileName.Trim('"');
                fileName = _hostingEnvironment.WebRootPath + @"\CacheFile\" + fileName;
                using (FileStream fs = System.IO.File.Create(fileName))
                {
                    formFile.CopyTo(fs);
                    fs.Flush();
                    fs.Close();
                }
                FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                if (fileName.IndexOf(".xlsx") > 0)
                {
                    workbook = new XSSFWorkbook(fileStream);
                }
                else if (fileName.IndexOf(".xls") > 0)
                {
                    workbook = new HSSFWorkbook(fileStream);
                }
                ISheet sheet = workbook.GetSheetAt(0);
                IRow   row;

                Purchasing purchasing = new Purchasing();
                purchasing.PurchasingNumber      = _commonService.GetOrderSerialNumber("JR");
                purchasing.State                 = PurchasingState.InitialStatus;
                purchasing.PurchasingOrderNumber = sheet.GetRow(0).GetCell(1)?.ToString().Trim();
                //暂时不用读取时间
                //purchasing.CreatedTime = Convert.ToDateTime(sheet.GetRow(1).GetCell(1).ToString().Trim());
                var supplier = _purchasingService.GetSupplierByName(sheet.GetRow(2).GetCell(1).ToString().Trim());
                if (supplier == null)
                {
                    return(Error(string.Format("不存在名为:{0}的供应商", sheet.GetRow(2).GetCell(1).ToString().Trim())));
                }
                else
                {
                    purchasing.SupplierId = supplier.Id;
                }
                var wareHouse = _wareHouseService.GetWareHouseByName(sheet.GetRow(3).GetCell(1).ToString().Trim());
                if (wareHouse == null)
                {
                    return(Error(string.Format("不存在名为:{0}的仓库", sheet.GetRow(3).GetCell(1).ToString().Trim())));
                }
                else
                {
                    purchasing.WareHouseId = wareHouse.Id;
                }

                purchasing.Mark = sheet.GetRow(4).GetCell(1).ToString().Trim();
                _purchasingService.AddPurchasing(purchasing);


                //日志
                #region 新增采购订单
                var mark = "新增采购订单:[" + purchasing.PurchasingNumber + "]";
                _logService.InsertOrderTableLog("Purchasing", purchasing.Id, "新增采购订单", Convert.ToInt32(purchasing.State), mark);
                #endregion

                StringBuilder errStr     = new StringBuilder();
                int           errorCount = 0;
                int           succCount  = 0;
                if (sheet.LastRowNum >= 5)
                {
                    for (int i = 5; i <= sheet.LastRowNum; i++)
                    {
                        row = sheet.GetRow(i);
                        var productCode = row.GetCell(0).ToString().Trim();
                        try
                        {
                            var product = _productService.GetProductByCode(productCode);
                            if (product == null)
                            {
                                errorCount++;
                                errStr.Append(string.Format("不存在编码为{0}的商品;", productCode));
                            }
                            var purchasProduct = new PurchasingProducts();
                            purchasProduct.PurchasingId = purchasing.Id;
                            purchasProduct.ProductId    = product.Id;
                            purchasProduct.Quantity     = Convert.ToInt32(row.GetCell(1).ToString().Trim());
                            purchasProduct.Price        = Convert.ToDecimal(row.GetCell(3).ToString().Trim()) * Convert.ToInt32(row.GetCell(2).ToString().Trim());

                            _purchasingService.AddPurchasingOrderProduct(purchasProduct);
                            succCount++;
                        }

                        catch (Exception ex)
                        {
                            errorCount++;
                            errStr.Append(string.Format("采购订单添加编码为{0}的商品时出现异常;", productCode));
                            _logService.Error("采购订单" + purchasing.PurchasingNumber + "商品" + productCode + "导入错误:" + ex.Message);
                        }
                    }
                    System.IO.File.Delete(fileName);
                    fileStream.Close();
                }

                if (errorCount > 0)
                {
                    string err = "Excel导入采购订单商品时出现错误,错误信息:" + errStr.ToString();
                    _logService.Error(err);
                    return(Error(err));
                }
                else
                {
                    return(Success("导入成功"));
                }
            }
        }
Esempio n. 7
0
        public IActionResult RefundPurchasingOrder(int purchaingId)
        {
            if (!_permissionService.Authorize("RefundPurchasingOrder"))
            {
                return(Error("没有此权限!"));
            }
            var purcOrder = _purchasingService.GetPurchasingById(purchaingId);

            //使用事务回滚生成采购退单
            using (var tran = _omsAccessor.OMSContext.Database.BeginTransaction())
            {
                try
                {
                    //采购订单改为无效
                    purcOrder.State = PurchasingState.Invalid;
                    _purchasingService.UpdatePurchasingOrder(purcOrder);

                    //日志
                    #region 修改采购订单为退单状态
                    var mark = "生成退单";
                    _logService.InsertOrderTableLog("Purchasing", purchaingId, "生成退单", Convert.ToInt32(purcOrder.State), mark);
                    #endregion

                    //生成新的采购退单
                    var newPurcOrder = new Purchasing()
                    {
                        PurchasingNumber      = _commonService.GetOrderSerialNumber("RF"),
                        PurchasingOrderNumber = purcOrder.PurchasingOrderNumber,
                        OrgionSerialNumber    = purcOrder.PurchasingNumber,
                        SupplierId            = purcOrder.SupplierId,
                        WareHouseId           = purcOrder.WareHouseId,
                        State           = PurchasingState.InitialStatus,
                        Mark            = purcOrder.Mark,
                        OriginalOrderId = purcOrder.Id,
                    };
                    _purchasingService.AddPurchasing(newPurcOrder);

                    //日志
                    #region 创建采购订单
                    var _mark = "创建退单";
                    _logService.InsertOrderTableLog("Purchasing", newPurcOrder.Id, "创建退单", Convert.ToInt32(newPurcOrder.State), _mark);
                    #endregion

                    //添加采购退单商品
                    var purcProducts = _purchasingService.GetPurchasingProductByPurchasingId(purcOrder.Id);
                    foreach (var item in purcProducts)
                    {
                        var purcProduct = new PurchasingProducts()
                        {
                            PurchasingId = newPurcOrder.Id,
                            ProductId    = item.ProductId,
                            Quantity     = item.Quantity,
                            OrginId      = item.Id
                        };
                        _purchasingService.AddPurchasingOrderProduct(purcProduct);
                    }

                    tran.Commit();
                    return(Json(new { refundPurchasingNumber = newPurcOrder.PurchasingNumber, id = newPurcOrder.Id, isSucc = true, msg = "生成退单成功!" }));
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    _logService.Error(string.Format("采购订单号为:{0}的生成退单失败,失败原因:{1}", purcOrder.PurchasingNumber, ex.Message));
                    return(Json(new
                    {
                        isSucc = false,
                        msg = "生成退单失败"
                    }));
                }
            }
        }