public void Delete(Model.StockCheck StockCheck) { foreach (Model.StockCheckDetail item in StockCheck.Details) { Model.Product product = item.Product; Model.Stock stock = stockManager.GetStockByProductIdAndDepotPositionId(item.ProductId, item.DepotPositionId); if (stock != null) { stock.StockQuantity1 = Convert.ToDouble(stock.StockQuantity1) + Convert.ToDouble(item.StockCheckQuantityDiff); stock.IsNotUpdate = true; stockManager.Update(stock); } else { stock = new Book.Model.Stock(); stock.StockCheckDate = StockCheck.StockCheckDate; stock.StockId = Guid.NewGuid().ToString(); stock.DepotPositionId = item.DepotPositionId; stock.DepotId = StockCheck.DepotId; stock.ProductId = item.ProductId; stock.StockQuantityOld = 0; stock.StockQuantity1 = Convert.ToDouble(item.StockCheckQuantityDiff); stock.IsNotUpdate = true; stockManager.Insert(stock); } productmanager.UpdateProduct_Stock(item.Product); } accessor.Delete(StockCheck.StockCheckId); }
/// <summary> /// Update a StockCheck. /// </summary> public void Update(Model.StockCheck stockCheck) { try { BL.V.BeginTransaction(); stockCheck.UpdateTime = DateTime.Now; if (stockCheck.Employee0 != null) { stockCheck.Employee0Id = stockCheck.Employee0.EmployeeId; } accessor.Update(stockCheck); //13.10.10曹瑞修改:校正不直接修改库存为校正数量,而是当前库存加上差异数量 IList <Model.StockCheckDetail> detailList = stockCheckDetailAccessor.Select(stockCheck); foreach (Model.StockCheckDetail item in detailList) { Model.Stock stock = new Book.Model.Stock(); stock = stockManager.GetStockByProductIdAndDepotPositionId(item.ProductId, item.DepotPositionId); if (stock != null) { stock.StockQuantity1 = (stock.StockQuantity1 == null ? 0 : stock.StockQuantity1) + (item.StockCheckQuantityDiff == null ? 0 : item.StockCheckQuantityDiff); stock.IsNotUpdate = true; stockManager.Update(stock); } productmanager.UpdateProduct_Stock(item.Product); stockCheckDetailAccessor.Delete(item.StockCheckDetailId); } foreach (Model.StockCheckDetail details in stockCheck.Details) { if (details.Product == null || string.IsNullOrEmpty(details.Product.ProductId)) { continue; } stockCheckDetailAccessor.Insert(details); Model.Stock stock = stockManager.GetStockByProductIdAndDepotPositionId(details.ProductId, details.DepotPositionId); if (stock == null) { stock = new Book.Model.Stock(); stock.StockCheckDate = stockCheck.StockCheckDate; stock.StockId = Guid.NewGuid().ToString(); stock.DepotPositionId = details.DepotPositionId; stock.DepotId = stockCheck.DepotId; stock.ProductId = details.ProductId; stock.StockQuantityOld = 0; stock.StockQuantity1 = details.StockCheckQuantity; stock.IsNotUpdate = true; stockManager.Insert(stock); } else { stock.StockCheckDate = stockCheck.StockCheckDate; stock.DepotPositionId = details.DepotPositionId; stock.StockQuantityOld = stock.StockQuantity1 == null ? 0 : stock.StockQuantity1; stock.StockQuantity1 = (stock.StockQuantity1 == null ? 0 : stock.StockQuantity1) - (details.StockCheckQuantityDiff == null ? 0 : details.StockCheckQuantityDiff); stock.IsNotUpdate = true; stockManager.Update(stock); } // product.StocksQuantity = stockManager.GetTheCount1OfProductByProductId(product, dic[productId].Depot); //details.Product.StocksQuantity = details.StockCheckQuantity; //修改產品 //productmanager.UpdateProduct_Stock(details.Product); details.Product.StocksQuantity = stockManager.GetTheCountByProduct(details.Product); details.Product.LastStockTakeTime = DateTime.Now; productmanager.update(details.Product); } BL.V.CommitTransaction(); } catch { BL.V.RollbackTransaction(); throw; } }