public bool EditPedido(int PedidoID) { var success = false; try { DBInstance = UpdateDBObject(); int index = DBInstance.Pedidos.FindIndex(x => x.id.Equals(PedidoID)); DBInstance.Pedidos[index] = DBInstance.TempPedido; DBInstance.TempPedido = new Pedido(); DBInstance.EditOn = false; SaveDB(DBInstance); var element = (DockPanel) new UIHelper().FindChildByName(Application.Current.MainWindow, "dockpanel", "PanelPedidos"); element.Children.Clear(); UIRuntime runtime = new UIRuntime(); runtime.updateTotals(DBInstance.TempPedido.Total); runtime.DrawSelectedPedido(DBInstance.Pedidos[index]); success = true; } catch (Exception ex) { MessageBox.Show("Error editando pedido."); } return(success); }
/* * // SUMMARY * // Manage the delete of an item on current memory pedido. * // Return: Void */ public void removetemfromPedido(int ItemID, UIRuntime runtime) { Item item = new Item(); //UpdateDBObject the databaseobject to get the most recent data DBInstance = UpdateDBObject(); //se busca el producto que se agregara al pedido item = SearchItembyID(Convert.ToInt32(ItemID)); //Restamos el costo total del item del total del pedido int indexqty = DBInstance.TempPedido.ItemsQuantity.FindIndex(i => i.Id == item.id); DBInstance.TempPedido.Total -= (DBInstance.TempPedido.ItemsQuantity[indexqty].Qty * item.Price); //Elimino el item quantity correspondiente DBInstance.TempPedido.ItemsQuantity.RemoveAt(indexqty); //Se elimina el producto del pedido y tambien su quantity correspondiente DBInstance.TempPedido.Items.RemoveAt(DBInstance.TempPedido.Items.FindIndex(x => x.id == item.id)); runtime.updateTotals(DBInstance.TempPedido.Total); if (DBInstance.TempPedido.Items.Count.Equals(0)) { DBInstance.EditOn = false; } SaveDB(DBInstance); DrawPedido(runtime, DBInstance.TempPedido); }
/* * // SUMMARY * // Decrement the qty of 1 item on the pedido item list. * // Return: Void */ private void decrementItemQty(Pedido pedido, Item itemTarget, UIRuntime runtime) { var index = pedido.Items.FindIndex(x => x.id == itemTarget.id); if (!index.Equals(null) && pedido.ItemsQuantity[index].Id.Equals(itemTarget.id)) { if (pedido.ItemsQuantity[index].Qty <= 1) { //delete pedido removetemfromPedido(itemTarget.id, runtime); } else { pedido.ItemsQuantity[index].Qty--; pedido.Total -= itemTarget.Price; } SaveDB(DBInstance); runtime.updateTotals(DBInstance.TempPedido.Total); } }
/* * // SUMMARY * // Manage the addition of an item to a current on memory pedido. * // Return: Void */ public void addItemtoPedido(int ItemID, UIRuntime runtime) { Item item = new Item(); //UpdateDBObject the databaseobject to get the most recent data DBInstance = UpdateDBObject(); //se busca el producto que se agregara al pedido item = SearchItembyID(Convert.ToInt32(ItemID)); //Hay datos en el objeto en memoria??? Si no existen datos se inicializa el nuevo pedido... if (DBInstance.TempPedido.id.Equals(0)) { GeneratePedidoOnMemory(item, DBInstance, ""); SaveDB(DBInstance); } else // Si existe un pedido en memoria comenzamos las validaciones del producto en la lista { //Si existe en la lista cargada en memoria entonces se actualiza, si no existe se agrega a la lista en memoria if (DBInstance.TempPedido.Items.Find(x => x.id == item.id) != null) //Ya existe el producto { incrementItemQty(DBInstance.TempPedido, DBInstance.TempPedido.Items[DBInstance.TempPedido.Items.FindIndex(x => x.id == item.id)]); DBInstance.TempPedido.Total += item.Price; } else // No existe el producto en la lista lo agregamos { DBInstance.TempPedido.Items.Add(item); DBInstance.TempPedido.ItemsQuantity.Add(new ItemQty { Id = item.id, Price = item.Price, Qty = 0 }); incrementItemQty(DBInstance.TempPedido, DBInstance.TempPedido.Items[DBInstance.TempPedido.Items.FindIndex(x => x.id == item.id)]); DBInstance.TempPedido.Total += item.Price; } SaveDB(DBInstance); } runtime.updateTotals(DBInstance.TempPedido.Total); DrawPedido(runtime, DBInstance.TempPedido); }