public LineItemModifier(OrderLineVM lineitem, Action onDone = null) { _lineitem = lineitem; _line = lineitem._line; IsPopup = true; EnableMask = true; _onDone = onDone; _quantity = _lineitem.Quantity; _size = _line.vLineItemsize; _spice = _line.vLineItemspice; _cooked = _line.vLineItemcooked; _customComments = _line.vCustomComments; if (!string.IsNullOrEmpty(_line.vLineitemaddon)) { var addonpairs = JsonConvert.DeserializeObject <Dictionary <string, decimal> >(_line.vLineitemaddon); foreach (var n in Addons) { if (addonpairs.ContainsKey(n.Key)) { n.IsSelected = true; n.Value = addonpairs[n.Key]; } } } }
public virtual void OnDelete(object sender, EventArgs e) { var mi = ((MenuItem)sender); OrderContainerVM <T, U> vm = this.BindingContext as OrderContainerVM <T, U>; OrderLineVM line = (sender as MenuItem).CommandParameter as OrderLineVM; vm.DisableLine(line); }
public async Task <IActionResult> AddOrderLine([FromBody] OrderLineVM vm) { if (!ModelState.IsValid) { return(BadRequest()); } try { await _orderService.AddOrderLineAsync(vm.OrderId, vm.ProductId, vm.VariantId); } catch (ArgumentException) { return(BadRequest()); } return(Ok()); }
public virtual void OnMoveStart(object sender, EventArgs e) { var mi = ((MenuItem)sender); OrderContainerVM <T, U> vm = this.BindingContext as OrderContainerVM <T, U>; OrderLineVM line = (sender as MenuItem).CommandParameter as OrderLineVM; if (vm != null && line != null && vm.Order.LineForMove == null && line.LineMoveStatus == MoveStatus.Finished) { line.LineMoveStatus = MoveStatus.Started; vm.Order.LineForMove = line; vm.Order.RaiseChanges(); } else if (vm != null && line != null && vm.Order.LineForMove != null && vm.Order.LineForMove.LineMoveStatus == MoveStatus.Started) { int index = line.Index; vm.Order.MoveOutputLine(vm.Order.LineForMove, index, SwipeType.Down); } }
private void AddCustomItem(decimal price, int quantity, string customitemname) { var cat = GConfig.POS_Setup.ItemCategories.FirstOrDefault(n => n.vCategoryCode == "custom-cat"); var catAll = GConfig.POS_Setup.ItemCategories.FirstOrDefault(n => n.vCategoryCode != "custom-cat"); if (cat == null) { DateTime date = DateTime.Now; var item = new POS_ItemMaster() { vItemDesc1 = "Custom Item", dStartDate = date, dEndDate = date }; //added var to give editable custom item name SAA. cat = new POS_ItemCategory { vCategoryCode = "custom-cat", vStatus = "hidden", vCategoryShortDesc = "Custom", dEndDt = date, dStartDt = date, POS_ItemMasters = new List <POS_ItemMaster> { item } }; GConfig.POS_Setup.ItemCategories.Add(cat); GConfig.DAL.SaveChanges(); } var customitem = cat.POS_ItemMasters.FirstOrDefault(); //Get Normal Custom Item //Below code is for custom items can take user defined item description. //Added 5/6/16 // if (customitemname != null && customitemname.Trim() != "") { var customitemSpecial = cat.POS_ItemMasters.Where(n => n.vItemDesc1 == customitemname); //Check if custom name entered is in itemMaster if (customitemSpecial.Count() == 0 && customitem.vItemDesc1 != customitemname) { Int32 customitemid = cat.POS_ItemMasters.Max(p => p.itemID); //get max itemid of custom items. Int32 ItemMasterid = catAll.POS_ItemMasters.Max(p => p.Id); //get max of id from itemMaster. ItemMasterid++; if (customitemid == 0) { customitemid = 9000; } else { customitemid++; } if (customitem.vItemDesc1 != customitemname) { DateTime date = DateTime.Now; var item = new POS_ItemMaster() { Id = ItemMasterid, itemID = customitemid, vItemStatus = "hidden", vItemDesc1 = customitemname, dStartDate = date, dEndDate = date }; //added var to give editable custom item name SAA. cat.POS_ItemMasters.Add(item); GConfig.DAL.SaveChanges(); customitem = item; } } if (customitemSpecial != null) { customitem = customitemSpecial.FirstOrDefault(); } } //Above code is for custom items can take user defined item description. //Added 5/6/16 if (customitem != null) { OrderLineVM line = new OrderLineVM(customitem, Order, new POS_OrderDetails() { POS_OrderHeaderId = Order._orderHeader.Id, POS_ItemMasterId = customitem.Id, fLineItemPrice = price, fOrderQty = quantity, fLineSubTotal = price * quantity }) { ItemCreated = true }; Order.OrderLines.Add(line); Order.RefreshValues(); _scroll.ScrollToBottom(); } }
/// <summary> /// Order page /// </summary> /// <param name="Id"></param> /// <returns></returns> public async Task <IActionResult> Order(int Id) { // Get and check user var user = _dbHelper.GetUser(_context, User.Identity.Name); if (user == null) { return(RedirectToAction("LogOut", "Account")); } // Get and check order var order = _dbHelper.GetExactOrderByIdToVM(_context, Id); if (order == null || order.Lines == null) { return(RedirectToAction(nameof(Index), new { sm = StateMessage.FailedMissingInfo })); } var vm = new ExactOrderVM(); // Check if the order have to be sent or is already sent if (!order.IsStoredInExact) { // Set Exact data ExactOnlineConnect.data.Context = _context; ExactOnlineConnect.data.AccessToken = user.Token; // TODO: Check if active?? // Check if items are int exact and if not it neeeds to be created first if (!order.ItemsAreInExact) { return(RedirectToAction(nameof(ItemsToBeCreatedInExact), new { Id = Id })); } // Get DB values var config = _dbHelper.GetExactConfig(_context, user.ConfigID); // Checks if config is correctly saved if (config.PaymentConditionId == null) { return(RedirectToAction(nameof(Areas.ExactOnline.Controllers.ConfigurationController.Index), new { sm = StateMessage.FailedPaymentConditionMissing })); } if (config.UserId == null) { return(RedirectToAction(nameof(Areas.ExactOnline.Controllers.ConfigurationController.Index), new { sm = StateMessage.FailedOrderCreatorMissing })); } var items = await ExactOnlineConnect.data.GetItems(user.DivisionId); if (items == null) { return(RedirectToAction(nameof(Index), new { sm = StateMessage.FailedNoExactConnection })); } var toBeCreated = new List <Item>(); vm.Id = order.Id; vm.Currency = order.Currency; vm.Description = order.Description; vm.Created = order.Created; vm.CreatorId = user.CreatorId; vm.PaymentConditionId = config.PaymentConditionId.ToString(); vm.Lines = new List <OrderLineVM>(); vm.CreatedItems = toBeCreated.Any() ? toBeCreated .Select(x => x.Description) .ToList() : new List <string>(); vm.HasBeenSend = order.IsStoredInExact; vm.SupplierName = order.SupplierName; // Get alertData var messageItems = order.Lines .Select(y => y.Item) .Where(y => !y.MessageSeen) .ToList(); if (messageItems.Any()) { vm.CreatedItems = messageItems.Select(y => y.Name).ToList(); foreach (var x in messageItems) { var item = _context.ExactItems .FirstOrDefault(y => y.Id == x.Id); item.MessageSeen = true; } await _context.SaveChangesAsync(); } else { vm.CreatedItems = new List <string>(); } foreach (var x in order.Lines) { //var item = listItems.FirstOrDefault(y => y.Description == x.Item.Name); var line = new OrderLineVM { Id = x.Id, AmountDC = x.AmountDC, Description = x.Description, Item = new ItemVM { ExactId = x.Item.ExactId, Name = x.Item.Name, Code = x.Item.Code, Description = x.Item.Description, }, NetPrice = x.NetPrice, Project = x.Project, Quantity = x.Quantity, ReceiptDate = x.ReceiptDate, Unit = x.Unit, VATAmount = x.VATAmount, VATCode = x.VATCode, VATPercentage = x.VATPercentage, }; vm.Lines.Add(line); vm.StateMessage = StateMessage.SuccessAddedItems; } ; } else { vm.Id = order.Id; vm.CreatedItems = new List <string>(); vm.Currency = order.Currency; vm.Description = order.Description; vm.Created = order.Created; vm.Project = order.Project; vm.Document = order.Document; vm.OrderNumber = order.OrderNumber; vm.CreatorId = user.CreatorId; vm.OrderDate = order.OrderDate; vm.PaymentConditionName = ""; vm.Lines = new List <OrderLineVM>(); vm.IsStoredInExact = order.IsStoredInExact; foreach (var x in order.Lines) { var line = new OrderLineVM { Id = x.Id, AmountDC = x.AmountDC, Description = x.Description, Item = new ItemVM { ExactId = x.Item.ExactId, Name = x.Item.Name, Code = x.Item.Code, Description = x.Item.Description, }, NetPrice = x.NetPrice, Project = x.Project, Quantity = x.Quantity, ReceiptDate = x.ReceiptDate, Unit = x.Unit, VATAmount = x.VATAmount, VATCode = x.VATCode, VATPercentage = x.VATPercentage, }; vm.Lines.Add(line); vm.StateMessage = StateMessage.WarningNotCreatedYet; } ; } return(View(vm)); }