private void LoadEditQuantityScreen(QuantityAdjustment adjustment) { PushViewModel(new AdjustQuantityViewModel(ViewModelChanger, adjustment) { CurrentUser = CurrentUser }); }
/// <summary> /// To be used when updating quantity adjustment explanation /// </summary> /// <param name="viewModelChanger"></param> /// <param name="adjustment"></param> public AdjustQuantityViewModel(IChangeViewModel viewModelChanger, QuantityAdjustment adjustment) : base(viewModelChanger) { WasAdjustedForStockPurchase = adjustment.WasAdjustedForStockPurchase; Quantity = adjustment.AmountChanged; _isCreating = false; _adjustment = adjustment; Explanation = adjustment.Explanation; Title = "Edit"; }
private void CreateOrSaveItem() { var item = _currentItemBeingEdited != null ? _currentItemBeingEdited : new InventoryItem(); // validate bool didValidate = true; string errorMessage = ""; if (!string.IsNullOrWhiteSpace(BarcodeNumber)) { var loadedItem = InventoryItem.LoadItemByBarcode(BarcodeNumber); if (loadedItem != null && (_isCreating || (!_isCreating && _inventoryItemID != loadedItem.ID))) { didValidate = false; errorMessage = "Barcode already exists for item named " + loadedItem.Name; } } if (didValidate) { // create/save item.Name = Name; item.Description = Description; item.Type = _selectedItemTypeIndex != -1 ? _itemTypes[_selectedItemTypeIndex] : null; decimal cost = 0m; bool didParse = Decimal.TryParse(Cost, out cost); item.Cost = didParse ? cost : 0m; item.CostCurrency = _currencies[_selectedCostCurrencyIndex]; decimal profit = 0m; didParse = Decimal.TryParse(ProfitPerItem, out profit); item.ProfitPerItem = didParse ? profit : 0m; item.ProfitPerItemCurrency = _currencies[_selectedProfitCurrencyIndex]; item.BarcodeNumber = BarcodeNumber; item.PicturePath = ""; if (_isCreating) // any further adjustments have to be made via the adjust quantity screen { item.Quantity = Quantity; } var userID = CurrentUser != null ? CurrentUser.ID : 1; if (_isCreating) { item.CreateNewItem(userID); QuantityAdjustment.UpdateQuantity(Quantity, item.ID, userID, "Initial quantity", false); _createdItemListener?.CreatedInventoryItem(item); } else { item.ID = _inventoryItemID; item.SaveItemUpdates(userID); } PopViewModel(); } else if (!string.IsNullOrWhiteSpace(errorMessage)) { MessageBox.Show(errorMessage, "Error!", MessageBoxButton.OK); } }
private void AdjustQuantity() { if (IsCreating) { var difference = Quantity - _item.Quantity; var userID = CurrentUser != null ? CurrentUser.ID : 1; var wasAdjusted = CanMarkAdjustedForStockPurchase ? WasAdjustedForStockPurchase : false; QuantityAdjustment.UpdateQuantity(difference, _item.ID, userID, Explanation, wasAdjusted); _item.AdjustQuantityByAmount(difference); _item.Quantity = Quantity; ReturnToPreviousScreen(); } else { _adjustment.Explanation = Explanation; _adjustment.WasAdjustedForStockPurchase = WasAdjustedForStockPurchase; _adjustment.SaveUpdates(); ReturnToPreviousScreen(); } }
public ViewQuantityAdjustmentsViewModel(IChangeViewModel viewModelChanger, InventoryItem item) : base(viewModelChanger) { _adjustments = QuantityAdjustment.LoadQuantityAdjustments(item); }