Example #1
0
        public void AgregarProducto(producto prod, double cant)
        {
            var     nuevoDetalle = new DetalleOrden();
            Boolean encontrado   = false;

            //Verificar si el producto ya existe en el "DetalleOrden"
            //Busco dentro de la lista de "DetalleOrde" el producto.
            foreach (DetalleOrden detOrden in detalle)
            {
                if (detOrden.producto.nombre == prod.nombre)
                {
                    detOrden.cantidad += cant; //Sumo a la orden la cantidad
                    encontrado         = true;
                    break;
                }
            }

            if (!encontrado)
            {
                //Si no es igual instancio un nuevo objeto de "DetalleOrden"
                nuevoDetalle.producto = prod;
                nuevoDetalle.cantidad = cant;
                detalle.Add(nuevoDetalle);
                this.CalcularTotal();
            }
        }
Example #2
0
        //Recibe un entero que indica el ID de la orden y luego devuelve el objeto orden completo que corresponde
        public static Orden Obtener(int idOrden)
        {
            int    numMsj      = 0;
            String msjExepcion = "ManejadorOrdenes.Obtener()$ No es posible conectarse a la DB.";
            Orden  objOrden    = new Orden();

            try
            {
                DetalleOrden        deto       = new DetalleOrden();
                List <DetalleOrden> lstDetalle = new List <DetalleOrden>();

                using (IDbConnection db = new MySqlConnection(DbConnection.Cadena()))
                {
                    if (db.State == ConnectionState.Closed)
                    {
                        db.Open();
                    }

                    if (idOrden > 0)
                    {
                        string query = "SELECT * FROM orden WHERE idOrden=@idOrde;";
                        objOrden = db.Query <Orden>(query, new { idOrde = idOrden }).SingleOrDefault();

                        query = "SELECT a.idProducto, a.cantidad, b.idProducto, b.nombre, b.precio, b.idCategoria, b.area, c.idCategoria, c.nombre FROM detalleorden AS a " +
                                "INNER JOIN producto AS b ON a.idProducto = b.idProducto INNER JOIN categoria AS c ON b.idCategoria = c.idCategoria WHERE a.idOrden = @idOrde;";
                        lstDetalle = db.Query <DetalleOrden, producto, Categoria, DetalleOrden>(query, (detOrd, prod, cat) => {
                            prod.categoria  = cat;
                            detOrd.producto = prod;
                            return(detOrd);
                        }, new { idOrde = idOrden }, splitOn: "idProducto,idCategoria").Distinct().ToList();

                        objOrden.detalle = new List <DetalleOrden>();
                        for (int i = 0; i < lstDetalle.Count(); i++)
                        {
                            objOrden.detalle.Add(lstDetalle.ElementAt(i));
                        }
                    }
                    else
                    {
                        numMsj = 1; //"ManejadorProductos.Obtener()$id no existe"
                        throw new ErrorAplicationException();
                    }
                }

                return(objOrden);
            }
            catch
            {
                if (numMsj == 1)
                {
                    msjExepcion = "ManejadorProductos.Obtener()$id no existe.";
                }
                throw new ErrorAplicationException(msjExepcion);
            }
        }