public void AddItem(ProductSkuInfo productSkuInfo, decimal quantity, decimal weight, decimal price, string productNumber, Guid positionID, string remark = "", Guid?purchaseOrderItemID = null) { if (productNumber == null) { productNumber = string.Empty; } MaterialRequisitionItem newMaterialRequisitionItem = new MaterialRequisitionItem(); newMaterialRequisitionItem.MaterialRequisition = this; newMaterialRequisitionItem.MaterialRequisitionID = this.ID; newMaterialRequisitionItem.Remark = remark; newMaterialRequisitionItem.ProductSkuInfo = productSkuInfo; newMaterialRequisitionItem.Quantity = quantity; newMaterialRequisitionItem.Weight = weight; newMaterialRequisitionItem.Price = price; if (productSkuInfo.PricingMethod == PricingMethod.PricingByQuantity) { newMaterialRequisitionItem.Amount = quantity * price; } else { newMaterialRequisitionItem.Amount = weight * price; } newMaterialRequisitionItem.ProductNumber = productNumber; newMaterialRequisitionItem.PositionID = positionID; RefreshAmount(newMaterialRequisitionItem); Items.Add(newMaterialRequisitionItem); }
public void UpdateItem(Guid itemID, ProductSkuInfo productSkuInfo, decimal quantity, decimal weight, decimal price, string productNumber, Guid positionID, string remark = "") { MaterialRequisitionItem item = this.Items.FirstOrDefault(p => p.ID == itemID); if (item != null) { if (productNumber == null) { productNumber = string.Empty; } //item.Product = product; item.ProductSkuInfo = productSkuInfo; item.Remark = remark; item.Quantity = quantity; item.Weight = weight; item.ProductNumber = productNumber; item.PositionID = positionID; item.Price = price; RefreshAmount(item); } else { throw new DomainException("无此ID"); } }
public void RemoveItem(Guid itemID) { MaterialRequisitionItem item = Items.FirstOrDefault(p => p.ID == itemID); if (item == null) { throw new DomainException("无此ID"); } Items.Remove(item); }
private void RefreshAmount(MaterialRequisitionItem item) { this.TotalAmount = this.TotalAmount - item.Amount; if (item.ProductSkuInfo.PricingMethod == PricingMethod.PricingByQuantity) { item.Amount = item.Quantity * item.Price; } else { item.Amount = item.Weight * item.Price; } this.TotalAmount = this.TotalAmount + item.Amount; }