Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /*
         * // 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);
        }
Ejemplo n.º 3
0
        /*
         * // 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);
            }
        }
Ejemplo n.º 4
0
        /*
         * // 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);
        }