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); }
private void DepotPositionAndNumsForm_Load(object sender, EventArgs e) { IList <Model.DepotPosition> list = depotPositionManager.Select(this._depot); if (list.Count == 0) { return; } foreach (Model.DepotPosition item in list) { Model.Stock stock = new Book.Model.Stock(); stock.StockId = Guid.NewGuid().ToString(); stock.DepotId = this._depot.DepotId; stock.DepotPosition = item; stock.DepotPositionId = item.DepotPositionId; stock.Product = this._product; stock.ProductId = stock.Product.ProductId; if (ListForm.dic.ContainsKey(this._product.ProductId + stock.DepotPositionId)) { stock.StockQuantity0 = ListForm.dic[this._product.ProductId + stock.DepotPositionId].StockQuantity0; stock.OldStock = stock.StockQuantity0; stock.Stock0Date = ListForm.dic[this._product.ProductId + stock.DepotPositionId].Stock0Date; } else { Model.Stock sk = this._stockManager.GetStockByProductIdAndDepotPositionId(this._product.ProductId, item.DepotPositionId); if (sk != null) { stock.StockQuantity0 = sk.StockQuantity0; stock.OldStock = stock.StockQuantity0; stock.Stock0Date = sk.Stock0Date; } else { stock.StockQuantity0 = 0; stock.OldStock = 0; } } this.stockList.Add(stock); } foreach (Model.Stock item in this.stockList) { if (item.StockQuantity0 != 0 && item.StockQuantity0 != null) { nums += item.StockQuantity0.Value; } } this.bindingSourceStock.DataSource = this.stockList; this.gridControl1.RefreshDataSource(); }
public void Delete(Model.StockCheck StockCheck) { foreach (Model.StockCheckDetail item in StockCheck.Details) { 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); } accessor.Delete(StockCheck.StockCheckId); Model.StockEditor stockEditor = stockEditorAccessor.Get(StockCheck.StockEditorId); stockEditor.IsStockCheck = false; stockEditorAccessor.Update(stockEditor); }
public void Decrement(Book.Model.DepotPosition depotPosition, Book.Model.Product product, double quantity) { if (!Exists(depotPosition, product)) { Model.Stock stock = new Book.Model.Stock(); stock.StockId = Guid.NewGuid().ToString(); stock.DepotPositionId = depotPosition.DepotPositionId; stock.DepotId = depotPosition.DepotId; stock.ProductId = product.ProductId; stock.StockQuantity1 = 0 - quantity; this.Insert(stock); } else { Hashtable paras = new Hashtable(); paras.Add("Quantity", quantity); paras.Add("positionId", depotPosition.DepotPositionId); paras.Add("ProductId", product.ProductId); sqlmapper.Update("Stock.decrement", paras); } }
/// <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); // Dictionary<string, Model.StockCheckDetail> dic = new Dictionary<string, Book.Model.StockCheckDetail>(); foreach (Model.StockCheckDetail detail in stockCheck.Details) { if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId)) { continue; } //if (!dic.ContainsKey(detail.ProductId)) // dic.Add(detail.ProductId, detail); stockCheckDetailAccessor.Update(detail); Model.Stock stock = stockManager.GetStockByProductIdAndDepotPositionId(detail.ProductId, detail.DepotPositionId); if (stock == null) { stock = new Book.Model.Stock(); stock.StockCheckDate = stockCheck.StockCheckDate; stock.StockId = Guid.NewGuid().ToString(); stock.DepotPositionId = detail.DepotPositionId; stock.DepotId = stockCheck.DepotId; stock.ProductId = detail.ProductId; stock.StockQuantityOld = 0; stock.StockQuantity1 = detail.StockCheckQuantity; stock.IsNotUpdate = true; stockManager.Insert(stock); } else { stock.StockCheckDate = stockCheck.StockCheckDate; stock.DepotPositionId = detail.DepotPositionId; stock.StockQuantityOld = stock.StockQuantity1 == null ? 0 : stock.StockQuantity1; stock.StockQuantity1 = detail.StockCheckQuantity; stock.IsNotUpdate = true; stockManager.Update(stock); } //修改產品 productmanager.UpdateProduct_Stock(detail.Product); } //foreach (string productId in dic.Keys) //{ // Model.Product product = productmanager.Get(productId); // //產品的庫存是庫存表內所有貨位的此產品的數量總和 // product.StocksQuantity = stockManager.GetTheCount1OfProductByProductId(product, dic[productId].Depot); // //修改產品 // productmanager.update(product); //} BL.V.CommitTransaction(); } catch { BL.V.RollbackTransaction(); throw; } }
public void Insert(Model.StockCheck stockCheck) { // // todo:add other logic here // stockCheck.InsertTime = DateTime.Now; stockCheck.UpdateTime = DateTime.Now; Validate(stockCheck); try { BL.V.BeginTransaction(); string invoiceKind = this.GetInvoiceKind().ToLower(); string sequencekey_y = string.Format("{0}-y-{1}", invoiceKind, stockCheck.InsertTime.Value.Year); string sequencekey_m = string.Format("{0}-m-{1}-{2}", invoiceKind, stockCheck.InsertTime.Value.Year, stockCheck.InsertTime.Value.Month); string sequencekey_d = string.Format("{0}-d-{1}", invoiceKind, stockCheck.InsertTime.Value.ToString("yyyy-MM-dd")); string sequencekey = invoiceKind; SequenceManager.Increment(sequencekey_y); SequenceManager.Increment(sequencekey_m); SequenceManager.Increment(sequencekey_d); SequenceManager.Increment(sequencekey); //设置盘点录入表为已校正 Model.StockEditor stockEditor = stockEditorAccessor.Get(stockCheck.StockEditorId); stockEditor.IsStockCheck = true; stockEditorAccessor.Update(stockEditor); accessor.Insert(stockCheck); //Dictionary<string, Model.StockCheckDetail> dic = new Dictionary<string, Book.Model.StockCheckDetail>(); foreach (Model.StockCheckDetail details in stockCheck.Details) { if (details.Product == null || string.IsNullOrEmpty(details.Product.ProductId)) { continue; } //if (!dic.ContainsKey(details.Product.ProductId)) // dic.Add(details.Product.ProductId, details); 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 = details.StockCheckQuantity; 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); } //foreach (string productId in dic.Keys) //{ // Model.Product product = productmanager.Get(productId); // if (product.ProductImage == null) // product.ProductImage = new byte[] { }; // if (product.ProductImage1 == null) // product.ProductImage1 = new byte[] { }; // if (product.ProductImage2 == null) // product.ProductImage2 = new byte[] { }; // if (product.ProductImage3 == null) // product.ProductImage3 = new byte[] { }; // // product.StocksQuantity = stockManager.GetTheCount1OfProductByProductId(product, dic[productId].Depot); // product.StocksQuantity = dic[productId].StockCheckQuantity; // //修改產品 // productmanager.update(product); //} BL.V.CommitTransaction(); } catch { BL.V.RollbackTransaction(); throw; } }
private void _Insert(Book.Model.InvoicePI invoice) { //往来单位 if (invoice.Department != null) { invoice.DepartmentId = invoice.Department.DepartmentId; } //经手人 if (invoice.Employee0 != null) { invoice.Employee0Id = invoice.Employee0.EmployeeId; } //录单人 if (invoice.Employee1 != null) { invoice.Employee1Id = invoice.Employee1.EmployeeId; } if ((Helper.InvoiceStatus)invoice.InvoiceStatus.Value == Helper.InvoiceStatus.Normal) { //过账人 if (invoice.Employee2 != null) { invoice.Employee2Id = invoice.Employee2.EmployeeId; } //过账时间 invoice.InvoiceGZTime = DateTime.Now; } //插入表单 accessor.Insert(invoice); //插入明细 foreach (Model.InvoicePIDetail detail in invoice.Details) { Model.InvoicePODetail odetail = invoicePODetailAccessor.Get(detail.InvoicePODetailId); if (detail.InvoicePIDetailQuantity > 0) { if (detail.InvoicePIDetailQuantity <= odetail.InvoicePODetailWHQuantity) { detail.InvoiceId = invoice.InvoiceId; invoicePIDetailAccessor.Insert(detail); Model.Product p = detail.Product; p.StocksQuantity += detail.InvoicePIDetailQuantity; productAccessor.Update(detail.Product); if (odetail != null) { odetail.InvoicePODetailWHQuantity -= detail.InvoicePIDetailQuantity; odetail.InvoicePODetailYHQuantity += detail.InvoicePIDetailQuantity; invoicePODetailAccessor.Update(odetail); } Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.PoDepotPositionId); if (stock == null) { stock = new Book.Model.Stock(); stock.StockId = Guid.NewGuid().ToString(); stock.ProductId = p.ProductId; stock.DepotPositionId = detail.PoDepotPositionId; stock.StockQuantity1 = detail.InvoicePIDetailQuantity; stock.StockCurrentJR = stock.StockCurrentJR == null ? detail.InvoicePIDetailQuantity : stock.StockCurrentJR + detail.InvoicePIDetailQuantity; stock.DepotId = invoice.PoDepotId; stock.ProduceUnit = p.ProduceUnit.CnName; stockAccessor.Insert(stock); } else { stockAccessor.IncrementJR(new DepotPositionManager().Get(detail.PoDepotPositionId), p, detail.InvoicePIDetailQuantity.Value); } } else { throw new Helper.InvalidValueException("HaiRuTaiDuo"); } } } }
private void _Insert(Book.Model.InvoiceJR invoice) { //往来单位 //if (invoice.Customer != null) // invoice.CustomerId = invoice.Customer.CustomerId; // 库房 //invoice.DepotId = invoice.Depot.DepotId; //经手人 invoice.Employee0Id = invoice.Employee0.EmployeeId; //录单人 if (invoice.Employee1 != null) { invoice.Employee1Id = invoice.Employee1.EmployeeId; } if ((Helper.InvoiceStatus)invoice.InvoiceStatus.Value == Helper.InvoiceStatus.Normal) { //过账人 if (invoice.Employee2 != null) { invoice.Employee2Id = invoice.Employee2.EmployeeId; } //过账时间 invoice.InvoiceGZTime = DateTime.Now; } //插入表单 accessor.Insert(invoice); //插入明细 foreach (Model.InvoiceJRDetail detail in invoice.Details) { if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId)) { continue; } detail.InvoiceId = invoice.InvoiceId; detail.InvoiceWeiHuaiChuQuantity = detail.InvoiceJRDetailQuantity; detail.InvoiceYiHuaiChuQuantity = 0; invoiceJRDetailAccessor.Insert(detail); Model.Product p = detail.Product; //if (detail.InvoiceProductUnit == p.ProductOuterPackagingUnit) //{ // quantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship * p.ProductInnerUnitRelationship; //} //else if (detail.InvoiceProductUnit == detail.Product.ProductInnerPackagingUnit) //{ // quantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship; //} //else //{ // quantity = detail.InvoiceJRDetailQuantity; //} //byte[] pic = new byte[] { }; //if (p.ProductImage == null) // p.ProductImage = pic; //if (p.ProductImage1 == null) // p.ProductImage1 = pic; //if (p.ProductImage2 == null) // p.ProductImage2 = pic; //if (p.ProductImage3 == null) // p.ProductImage3 = pic; p.StocksQuantity += detail.InvoiceJRDetailQuantity; productAccessor.Update(p); Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.DepotPositionId); if (stock == null) { stock = new Book.Model.Stock(); stock.StockId = Guid.NewGuid().ToString(); stock.ProductId = p.ProductId; stock.DepotPositionId = detail.DepotPositionId; stock.StockQuantity1 = detail.InvoiceJRDetailQuantity; stock.StockCurrentJR = stock.StockCurrentJR == null ? detail.InvoiceJRDetailQuantity : stock.StockCurrentJR + detail.InvoiceJRDetailQuantity; stock.DepotId = invoice.DepotId; stock.ProduceUnit = p.ProduceUnit.CnName; stockAccessor.Insert(stock); } else { stockAccessor.IncrementJR(depotPositionAcccessor.Get(detail.DepotPositionId), p, detail.InvoiceJRDetailQuantity.Value); } } }
private void _Update(Model.InvoiceJR invoice) { invoice.UpdateTime = DateTime.Now;; //if (invoice.Customer != null) // invoice.CustomerId = invoice.Customer.CustomerId; //invoice.DepotId = invoice.Depot.DepotId; invoice.Employee0Id = invoice.Employee0.EmployeeId; Model.InvoiceJR invoiceOriginal = this.Get(invoice.InvoiceId); Helper.InvoiceStatus invoiceStatus = (Helper.InvoiceStatus)invoice.InvoiceStatus.Value; switch ((Helper.InvoiceStatus)invoiceOriginal.InvoiceStatus) { case Helper.InvoiceStatus.Draft: switch (invoiceStatus) { case Helper.InvoiceStatus.Draft: accessor.Update(invoice); invoiceJRDetailAccessor.Delete(invoice); foreach (Model.InvoiceJRDetail detail in invoice.Details) { if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId)) { continue; } detail.InvoiceId = invoice.InvoiceId; detail.InvoiceWeiHuaiChuQuantity = detail.InvoiceJRDetailQuantity; detail.InvoiceYiHuaiChuQuantity = 0; invoiceJRDetailAccessor.Insert(detail); } break; case Helper.InvoiceStatus.Normal: accessor.Delete(invoiceOriginal.InvoiceId); invoice.InsertTime = invoiceOriginal.InsertTime; invoice.UpdateTime = DateTime.Now; _Insert(invoice); break; case Helper.InvoiceStatus.Null: throw new InvalidOperationException(); } break; case Helper.InvoiceStatus.Normal: switch (invoiceStatus) { case Helper.InvoiceStatus.Draft: throw new InvalidOperationException(); case Helper.InvoiceStatus.Normal: invoiceOriginal.InvoiceStatus = (int)Helper.InvoiceStatus.Null; _TurnNull(invoiceOriginal); invoiceJRDetailAccessor.Delete(invoice); foreach (Model.InvoiceJRDetail detail in invoice.Details) { if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId)) { continue; } Model.Product p = detail.Product; //if (detail.InvoiceProductUnit == p.ProductOuterPackagingUnit) //{ // quantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship * p.ProductInnerUnitRelationship; //} //else if (detail.InvoiceProductUnit == detail.Product.ProductInnerPackagingUnit) //{ // quantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship; //} //else //{ // quantity = detail.InvoiceJRDetailQuantity; //} //p.ProductCurrentJRQuantity += quantity; if (detail.InvoiceJRDetailQuantity.Value == 0) { throw new Helper.InvalidValueException(Model.InvoiceJRDetail.PRO_InvoiceJRDetailQuantity); } byte[] pic = new byte[] { }; //if (p.ProductImage == null) // p.ProductImage = pic; //if (p.ProductImage1 == null) // p.ProductImage1 = pic; //if (p.ProductImage2 == null) // p.ProductImage2 = pic; //if (p.ProductImage3 == null) // p.ProductImage3 = pic; p.StocksQuantity += detail.InvoiceJRDetailQuantity.Value; productAccessor.Update(p); detail.InvoiceWeiHuaiChuQuantity = detail.InvoiceJRDetailQuantity - detail.InvoiceYiHuaiChuQuantity; Model.InvoiceJRDetail temp = invoiceJRDetailAccessor.Get(detail.InvoiceJRDetailId); if (temp != null) { temp.InvoiceId = invoice.InvoiceId; temp.InvoiceHCDetailQuantity = detail.InvoiceHCDetailQuantity; invoiceJRDetailAccessor.Update(temp); } else { detail.InvoiceId = invoice.InvoiceId; invoiceJRDetailAccessor.Insert(detail); } Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.DepotPositionId); if (stock == null) { stock = new Book.Model.Stock(); stock.StockId = Guid.NewGuid().ToString(); stock.ProductId = p.ProductId; stock.DepotPositionId = detail.DepotPositionId; stock.StockQuantity1 = detail.InvoiceJRDetailQuantity; stock.StockCurrentJR = stock.StockCurrentJR == null ? detail.InvoiceJRDetailQuantity : stock.StockCurrentJR + detail.InvoiceJRDetailQuantity; stock.DepotId = invoice.DepotId; stock.ProduceUnit = p.ProduceUnit.CnName; stockAccessor.Insert(stock); } else { stockAccessor.IncrementJR(depotPositionAcccessor.Get(detail.DepotPositionId), p, detail.InvoiceJRDetailQuantity.Value); } } accessor.Update(invoice); break; case Helper.InvoiceStatus.Null: foreach (Model.InvoiceJRDetail detail in invoice.Details) { if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId)) { continue; } Model.Product p = detail.Product; //if (detail.InvoiceProductUnit == detail.Product.ProductOuterPackagingUnit) //{ // jrQuantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship * p.ProductInnerUnitRelationship; //} //else if (detail.InvoiceProductUnit == detail.Product.ProductInnerPackagingUnit) //{ // jrQuantity = detail.InvoiceJRDetailQuantity * p.ProductBaseUnitRelationship; //} //else //{ // jrQuantity = detail.InvoiceJRDetailQuantity; //} //p.ProductCurrentJRQuantity -= jrQuantity; p.StocksQuantity -= detail.InvoiceJRDetailQuantity.Value; //byte[] pic = new byte[] { }; //if (p.ProductImage == null) // p.ProductImage = pic; //if (p.ProductImage1 == null) // p.ProductImage1 = pic; //if (p.ProductImage2 == null) // p.ProductImage2 = pic; //if (p.ProductImage3 == null) // p.ProductImage3 = pic; productAccessor.Update(p); stockAccessor.DecrementJR(depotPositionAcccessor.Get(detail.DepotPositionId), p, detail.InvoiceJRDetailQuantity.Value); detail.InvoiceWeiHuaiChuQuantity -= detail.InvoiceJRDetailQuantity; detail.InvoiceJRDetailQuantity -= detail.InvoiceJRDetailQuantity; invoiceJRDetailAccessor.Update(detail); } break; } break; case Helper.InvoiceStatus.Null: throw new InvalidOperationException(); } }
/// <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; } }
private void _Insert(Book.Model.InvoicePO invoice) { //往来单位 if (invoice.Department != null) { invoice.DepartmentId = invoice.Department.DepartmentId; } // 库房 //invoice.DepotId = invoice.Depot.DepotId; //经手人 if (invoice.Employee0 != null) { invoice.Employee0Id = invoice.Employee0.EmployeeId; } //录单人 if (invoice.Employee1 != null) { invoice.Employee1Id = invoice.Employee1.EmployeeId; } if ((Helper.InvoiceStatus)invoice.InvoiceStatus.Value == Helper.InvoiceStatus.Normal) { //过账人 if (invoice.Employee2 != null) { invoice.Employee2Id = invoice.Employee2.EmployeeId; } //过账时间 invoice.InvoiceGZTime = DateTime.Now; } //插入表单 accessor.Insert(invoice); //插入明细 foreach (Model.InvoicePODetail detail in invoice.Details) { if (detail.DepotPosition == null || detail.DepotPositionId == null) { throw new Exception("貨位不為空"); } if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId)) { continue; } detail.InvoiceId = invoice.InvoiceId; detail.InvoicePODetailWHQuantity = detail.InvoicePODetailJCQuantity; detail.InvoicePODetailYHQuantity = 0; invoicePODetailAccessor.Insert(detail); Model.Product p = detail.Product; p.StocksQuantity -= detail.InvoicePODetailJCQuantity; productAccessor.Update(p); Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.DepotPositionId); if (stock == null) { stock = new Book.Model.Stock(); stock.StockId = Guid.NewGuid().ToString(); stock.ProductId = p.ProductId; stock.DepotPositionId = detail.DepotPositionId; stock.StockQuantity1 = detail.InvoicePODetailJCQuantity; stock.StockCurrentJC = stock.StockCurrentJC == null ? detail.InvoicePODetailJCQuantity : stock.StockCurrentJC + detail.InvoicePODetailJCQuantity; stock.DepotId = invoice.PoDepotId; stock.ProduceUnit = p.ProduceUnit.CnName; stockAccessor.Insert(stock); } else { stockAccessor.IncrementJC(new DepotPositionManager().Get(detail.DepotPositionId), p, detail.InvoicePODetailJCQuantity.Value); } } }
private void _Update(Model.InvoicePO invoice) { invoice.UpdateTime = DateTime.Now;; if (invoice.Department != null) { invoice.DepartmentId = invoice.Department.DepartmentId; } //invoice.DepotId = invoice.Depot.DepotId; invoice.Employee0Id = invoice.Employee0.EmployeeId; Model.InvoicePO invoiceOriginal = this.Get(invoice.InvoiceId); Helper.InvoiceStatus invoiceStatus = (Helper.InvoiceStatus)invoice.InvoiceStatus.Value; switch ((Helper.InvoiceStatus)invoiceOriginal.InvoiceStatus) { case Helper.InvoiceStatus.Draft: switch (invoiceStatus) { case Helper.InvoiceStatus.Draft: accessor.Update(invoice); invoicePODetailAccessor.Delete(invoice); foreach (Model.InvoicePODetail detail in invoice.Details) { detail.InvoiceId = invoice.InvoiceId; detail.InvoicePODetailWHQuantity = detail.InvoicePODetailJCQuantity; detail.InvoicePODetailYHQuantity = 0; invoicePODetailAccessor.Insert(detail); } break; case Helper.InvoiceStatus.Normal: accessor.Delete(invoiceOriginal.InvoiceId); invoice.InsertTime = invoiceOriginal.InsertTime; invoice.UpdateTime = DateTime.Now; _Insert(invoice); break; case Helper.InvoiceStatus.Null: throw new InvalidOperationException(); } break; case Helper.InvoiceStatus.Normal: switch (invoiceStatus) { case Helper.InvoiceStatus.Draft: throw new InvalidOperationException(); case Helper.InvoiceStatus.Normal: #region invoiceOriginal.InvoiceStatus = (int)Helper.InvoiceStatus.Null; _TurnNull(invoiceOriginal); invoicePODetailAccessor.Delete(invoice); foreach (Model.InvoicePODetail detail in invoice.Details) { Model.Product p = detail.Product; p.StocksQuantity -= detail.InvoicePODetailJCQuantity; productAccessor.Update(p); detail.InvoicePODetailWHQuantity = detail.InvoicePODetailJCQuantity - detail.InvoicePODetailYHQuantity; invoicePODetailAccessor.Insert(detail); Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.DepotPositionId); if (stock == null) { stock = new Book.Model.Stock(); stock.StockId = Guid.NewGuid().ToString(); stock.ProductId = p.ProductId; stock.DepotPositionId = detail.DepotPositionId; stock.StockQuantity1 = detail.InvoicePODetailYHQuantity; stock.StockCurrentJC = stock.StockCurrentJC == null ? detail.InvoicePODetailJCQuantity : stock.StockCurrentJC - detail.InvoicePODetailJCQuantity; stock.DepotId = invoice.PoDepotId; stock.ProduceUnit = p.ProduceUnit.CnName; stockAccessor.Insert(stock); } else { stockAccessor.IncrementJC(new DepotPositionManager().Get(detail.DepotPositionId), p, detail.InvoicePODetailJCQuantity.Value); } } #endregion break; case Helper.InvoiceStatus.Null: foreach (Model.InvoicePODetail detail in invoice.Details) { Model.Product p = detail.Product; p.StocksQuantity += detail.InvoicePODetailJCQuantity; productAccessor.Update(p); stockAccessor.DecrementJC(new DepotPositionManager().Get(detail.DepotPositionId), p, detail.InvoicePODetailJCQuantity.Value); detail.InvoicePODetailWHQuantity += detail.InvoicePODetailJCQuantity; detail.InvoicePODetailJCQuantity -= detail.InvoicePODetailJCQuantity; invoicePODetailAccessor.Update(detail); } break; } break; case Helper.InvoiceStatus.Null: throw new InvalidOperationException(); } }
private void _Insert(Book.Model.InvoiceHC invoice) { //经手人 if (invoice.Employee0 != null) { invoice.Employee0Id = invoice.Employee0.EmployeeId; } //录单人 if (invoice.Employee1 != null) { invoice.Employee1Id = invoice.Employee1.EmployeeId; } if ((Helper.InvoiceStatus)invoice.InvoiceStatus.Value == Helper.InvoiceStatus.Normal) { //过账人 if (invoice.Employee2 != null) { invoice.Employee2Id = invoice.Employee2.EmployeeId; } //过账时间 invoice.InvoiceGZTime = DateTime.Now; } //插入表单 accessor.Insert(invoice); //插入明细 foreach (Model.InvoiceHCDetail detail in invoice.Details) { Model.InvoiceJRDetail odetail = invoiceJRDetailAccessor.Get(detail.InvoiceJRDetailId); Model.InvoiceHCDetail hcdetail = new Book.Model.InvoiceHCDetail(); if (detail.InvoiceHCDetailQuantity > 0) { if (detail.InvoiceHCDetailQuantity <= odetail.InvoiceWeiHuaiChuQuantity) { hcdetail.InvoiceId = invoice.InvoiceId; hcdetail.InvoiceHCDetailId = Guid.NewGuid().ToString(); hcdetail.InvoiceHCDetailNote = detail.InvoiceHCDetailNote; hcdetail.InvoiceHCDetailQuantity = detail.InvoiceHCDetailQuantity; hcdetail.InvoiceJRDetailId = detail.InvoiceJRDetailId; hcdetail.InvoiceProductUnit = detail.InvoiceProductUnit; hcdetail.DepotPositionId = detail.DepotPositionId; hcdetail.ProductId = detail.ProductId; invoiceHCDetailAccessor.Insert(hcdetail); Model.Product p = productAccessor.Get(detail.ProductId); //if (p.ProductImage == null || p.ProductImage.Length == 0) // p.ProductImage = new byte[] { }; //if (p.ProductImage1 == null || p.ProductImage1.Length == 0) // p.ProductImage1 = new byte[] { }; //if (p.ProductImage2 == null || p.ProductImage2.Length == 0) // p.ProductImage2 = new byte[] { }; //if (p.ProductImage3 == null || p.ProductImage3.Length == 0) // p.ProductImage3 = new byte[] { }; p.StocksQuantity -= detail.InvoiceHCDetailQuantity; productAccessor.Update(p); odetail.InvoiceWeiHuaiChuQuantity -= detail.InvoiceHCDetailQuantity; odetail.InvoiceYiHuaiChuQuantity += detail.InvoiceHCDetailQuantity; invoiceJRDetailAccessor.Update(odetail); Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.DepotPositionId); if (stock == null) { stock = new Book.Model.Stock(); stock.StockId = Guid.NewGuid().ToString(); stock.ProductId = p.ProductId; stock.DepotPositionId = detail.DepotPositionId; stock.StockQuantity1 = detail.InvoiceHCDetailQuantity; stock.StockCurrentJC = stock.StockCurrentJC == null ? detail.InvoiceHCDetailQuantity : stock.StockCurrentJC + detail.InvoiceHCDetailQuantity; stock.DepotId = invoice.DepotId; stock.ProduceUnit = p.ProduceUnit.CnName; stockAccessor.Insert(stock); } else { stockAccessor.IncrementJC(new BL.DepotPositionManager().Get(detail.DepotPositionId), p, detail.InvoiceHCDetailQuantity.Value); } } else { throw new Helper.InvalidValueException("HaiRuTaiDuo"); } } else { throw new Helper.InvalidValueException("Details"); } } }