/// <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("修改商品发生错误,请联系管理员!")); } }
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("添加失败,查看是否已添加!")); } }
public PurchasingProducts AddPurchasingOrderProduct(PurchasingProducts purchasingProducts) { purchasingProducts.CreatedBy = _workContext.CurrentUser.Id; purchasingProducts.CreatedTime = DateTime.Now; _omsAccessor.Insert <PurchasingProducts>(purchasingProducts); _omsAccessor.SaveChanges(); return(purchasingProducts); }
/// <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); }
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); }
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("导入成功")); } } }
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 = "生成退单失败" })); } } }