Beispiel #1
0
        /// <summary>
        /// Actualiza un pedido
        /// </summary>
        /// <param name="id"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public int actualizarPedido(int id, PedidoConLineaPedido value)
        {
            int affectedRows = 0;

            try
            {
                Conexion      conexion  = new Conexion();
                SqlConnection conection = conexion.connection;
                conexion.openConnection();

                SqlCommand comando = new SqlCommand("EXECUTE BorraLineasPedido @ID_Pedido", conection);
                comando.Parameters.Add("@ID_Pedido", SqlDbType.Int).Value = value.ID;

                affectedRows += comando.ExecuteNonQuery();

                comando = new SqlCommand("EXECUTE InsertarLineaPedido @ID_Pedido,@ID_Producto,@Cantidad,@PrecioVenta", conection);
                foreach (LineaPedido lp in value.LineasPedido)
                {
                    comando.Parameters.Add("@ID_Pedido", SqlDbType.Int).Value     = value.ID;
                    comando.Parameters.Add("@ID_Producto", SqlDbType.Int).Value   = lp.IDProducto;
                    comando.Parameters.Add("@Cantidad", SqlDbType.Int).Value      = lp.Cantidad;
                    comando.Parameters.Add("@PrecioVenta", SqlDbType.Money).Value = lp.PrecioVenta;

                    affectedRows += comando.ExecuteNonQuery();
                }

                conection.Close();
            }
            catch (SqlException e)
            {
                Console.WriteLine(e.Message);
            }
            return(affectedRows);
        }
Beispiel #2
0
        /*public Object Get() {
         *  throw new HttpResponseException(HttpStatusCode.BadRequest);
         * }*/

        // POST: api/Pedido
        public void Post([FromBody] PedidoConLineaPedido value)
        {
            GestoraPedidosBL gestoraPedidosBL = new GestoraPedidosBL();

            try
            {
                gestoraPedidosBL.insertPedido(value);
            }catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #3
0
        //POST De Testeo

        /* public void Post()
         * {
         *   GestoraPedidosBL gestoraPedidosBL = new GestoraPedidosBL();
         *   PedidoConLineaPedido pedidoConLinea = new PedidoConLineaPedido();
         *   LineaPedido lineaPedido = new LineaPedido();
         *   lineaPedido.IDProducto = 73;
         *   lineaPedido.Cantidad = 10;
         *   lineaPedido.PrecioVenta = 50;
         *
         *   LineaPedido lineaPedido2 = new LineaPedido();
         *   lineaPedido2.IDProducto = 74;
         *   lineaPedido2.Cantidad = 10;
         *   lineaPedido2.PrecioVenta = 50;
         *
         *   pedidoConLinea.IDCliente = 1;
         *   pedidoConLinea.LineasPedido.Add(lineaPedido);
         *   pedidoConLinea.LineasPedido.Add(lineaPedido2);
         *   try
         *   {
         *       gestoraPedidosBL.insertPedido(pedidoConLinea);
         *   }
         *   catch (Exception e)
         *   {
         *       throw e;
         *   }
         * }*/

        // PUT: api/Pedido/5
        public void Put(int id, [FromBody] PedidoConLineaPedido value)
        {
            GestoraPedidosBL gestoraPedidosBL = new GestoraPedidosBL();

            try
            {
                gestoraPedidosBL.actualizarPedido(id, value);
            }catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Devuelve un pedido concreto y todas sus lineas de pedido
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public PedidoConLineaPedido getPedido(int id)
        {
            PedidoConLineaPedido pedidoConLineaPedido = null;
            SqlConnection        conexion             = new SqlConnection();
            Conexion             miConexion           = new Conexion();
            SqlCommand           miComando            = new SqlCommand();
            SqlDataReader        miLector;

            //Buscamos el pedido
            try
            {
                miConexion.openConnection();
                conexion = miConexion.connection;
                miComando.CommandText = "SELECT * FROM Pedidos WHERE id = @id";
                SqlParameter param;
                param = new System.Data.SqlClient.SqlParameter();
                param.ParameterName = "@id";
                param.SqlDbType     = System.Data.SqlDbType.Int;
                param.Value         = id;

                miComando.Parameters.Add(param);

                miComando.Connection = conexion;
                miLector             = miComando.ExecuteReader();
                //Si hay lineas en el lector
                if (miLector.HasRows)
                {
                    pedidoConLineaPedido = new PedidoConLineaPedido();
                    miLector.Read();
                    pedidoConLineaPedido             = new PedidoConLineaPedido();
                    pedidoConLineaPedido.ID          = (int)miLector["ID"];
                    pedidoConLineaPedido.Fecha       = (DateTime)miLector["Fecha"];
                    pedidoConLineaPedido.IDCliente   = (int)miLector["ID_Cliente"];
                    pedidoConLineaPedido.PrecioTotal = (decimal)miLector["PrecioTotal"];

                    miLector.Close();

                    //Se insertan sus lineas de pedido
                    pedidoConLineaPedido.LineasPedido = getLineasPedido(id, conexion);

                    //Se insertan los productos
                    //pedidoConLineaPedidoYProductos.Productos = getProductos(conexion); //Ya no es necesario
                }
                miConexion.connection.Close();
            }
            catch (Exception e)
            {
                throw e;
            }
            return(pedidoConLineaPedido);
        }
Beispiel #5
0
        // GET: api/Pedido/5
        public PedidoConLineaPedido Get(int id)
        {
            PedidoConLineaPedido pedidoConLineaPedido = new PedidoConLineaPedido();
            GestoraPedidosBL     gestoraPedidosBL     = new GestoraPedidosBL();

            try
            {
                pedidoConLineaPedido = gestoraPedidosBL.getPedidoBL(id);
            }catch (Exception e)
            {
                throw e;
            }
            return(pedidoConLineaPedido);
        }
Beispiel #6
0
        /// <summary>
        /// Devuelve un pedido concreto y todas sus lineas de pedido
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public PedidoConLineaPedido getPedidoBL(int id)
        {
            GestoraPedidosDAL    gestoraPedidosDAL = new GestoraPedidosDAL();
            PedidoConLineaPedido p = new PedidoConLineaPedido();

            try
            {
                p = gestoraPedidosDAL.getPedido(id);
            }
            catch (Exception e)
            {
                throw e;
            }
            return(p);
        }
Beispiel #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        private bool pedidoValido(PedidoConLineaPedido p)
        {
            bool b = true;

            //Revisamos que ninguna linea tiene una cantidad inferior a 1
            for (int i = 0; i < p.LineasPedido.Count; i++)
            {
                if (p.LineasPedido[i].Cantidad < 1)
                {
                    b = false;
                }
            }

            return(b);
        }
Beispiel #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="p"></param>
        /// <returns></returns>
        public int actualizarPedido(int id, PedidoConLineaPedido p)
        {
            GestoraPedidosDAL gestoraPedidosDAL = new GestoraPedidosDAL();
            int r = 0;

            if (pedidoValido(p))
            {
                try
                {
                    r = gestoraPedidosDAL.actualizarPedido(id, p);
                }catch (Exception e)
                {
                    throw e;
                }
            }
            return(r);
        }
Beispiel #9
0
        /// <summary>
        /// Inserta un nuevo pedido en la base de datos y todas sus Lineas de pedido
        /// </summary>
        /// <param name="pedidoConLineaPedido"></param>
        /// <returns>Un entero con las filas afectadas</returns>
        public int insertPedido(PedidoConLineaPedido pedidoConLineaPedido)
        {
            int affectedRows = 0;
            GestoraPedidosDAL gestoraPedidoDAL = new GestoraPedidosDAL();

            if (pedidoValido(pedidoConLineaPedido))
            {
                try
                {
                    affectedRows = gestoraPedidoDAL.insertPedido(pedidoConLineaPedido);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            return(affectedRows);
        }
Beispiel #10
0
        /// <summary>
        /// Inserta un nuevo pedido en la base de datos y todas sus Lineas de pedido
        /// </summary>
        /// <param name="pedidoConLineaPedido"></param>
        /// <returns>Un entero con las filas afectadas</returns>
        public int insertPedido(PedidoConLineaPedido pedidoConLineaPedido)
        {
            int          affectedRows      = 0;
            int          idPedidoInsertado = -1;
            SqlCommand   sqlCommandInsertPedido;
            SqlCommand   sqlCommandInsertLineaPedido;
            Conexion     conexion             = new Conexion();
            SqlParameter parameterIdCliente   = new SqlParameter();
            SqlParameter parameterCantidad    = new SqlParameter();
            SqlParameter parameterPrecioVenta = new SqlParameter();
            SqlParameter parameterIdProducto  = new SqlParameter();
            SqlParameter parameterIdPedido    = new SqlParameter();
            SqlParameter parameterOutPut      = new SqlParameter();

            try
            {
                conexion.openConnection();
                sqlCommandInsertPedido             = new SqlCommand("InsertarPedido", conexion.connection);
                sqlCommandInsertPedido.CommandType = System.Data.CommandType.StoredProcedure;

                parameterIdCliente.ParameterName = "@ID_Cliente";
                parameterIdCliente.SqlDbType     = System.Data.SqlDbType.Int;
                parameterIdCliente.Value         = pedidoConLineaPedido.IDCliente;

                parameterOutPut.ParameterName = "@ID_Pedido";
                parameterOutPut.SqlDbType     = System.Data.SqlDbType.Int;
                parameterOutPut.Direction     = System.Data.ParameterDirection.Output;

                sqlCommandInsertPedido.Parameters.Add(parameterIdCliente);
                sqlCommandInsertPedido.Parameters.Add(parameterOutPut);

                //Llamada a procedimento para insertar pedido
                affectedRows      = sqlCommandInsertPedido.ExecuteNonQuery();
                idPedidoInsertado = Convert.ToInt32(sqlCommandInsertPedido.Parameters["@ID_Pedido"].Value);

                //Parametros para llamada a aprocedimiento para insertar lineas de pedido
                sqlCommandInsertLineaPedido             = new SqlCommand("InsertarLineaPedido", conexion.connection);//Nombre
                sqlCommandInsertLineaPedido.CommandType = System.Data.CommandType.StoredProcedure;

                parameterCantidad.ParameterName = "@Cantidad";
                parameterCantidad.SqlDbType     = System.Data.SqlDbType.Int;

                parameterPrecioVenta.ParameterName = "@PrecioVenta";
                parameterPrecioVenta.SqlDbType     = System.Data.SqlDbType.Decimal;

                parameterIdProducto.ParameterName = "@ID_Producto";
                parameterIdProducto.SqlDbType     = System.Data.SqlDbType.Int;

                parameterIdPedido.ParameterName = "@ID_Pedido";
                parameterIdPedido.SqlDbType     = System.Data.SqlDbType.Int;
                parameterIdPedido.Value         = idPedidoInsertado;

                //Bucle para insertar las distintas lineas del pedido
                for (int i = 0; i < pedidoConLineaPedido.LineasPedido.Count; i++)
                {
                    //Llamada a procedimiento para insertar cada linea de pedido
                    //IdPedido, idProducto, Cantidad, PrecioVenta
                    parameterIdProducto.Value  = pedidoConLineaPedido.LineasPedido.ElementAt(i).IDProducto;
                    parameterPrecioVenta.Value = Math.Round(pedidoConLineaPedido.LineasPedido.ElementAt(i).PrecioVenta, 2);
                    parameterCantidad.Value    = pedidoConLineaPedido.LineasPedido.ElementAt(i).Cantidad;

                    sqlCommandInsertLineaPedido.Parameters.Add(parameterIdPedido);
                    sqlCommandInsertLineaPedido.Parameters.Add(parameterIdProducto);
                    sqlCommandInsertLineaPedido.Parameters.Add(parameterCantidad);
                    sqlCommandInsertLineaPedido.Parameters.Add(parameterPrecioVenta);

                    affectedRows = affectedRows + sqlCommandInsertLineaPedido.ExecuteNonQuery();

                    sqlCommandInsertLineaPedido.Parameters.Clear();
                }
            }
            catch (SqlException e)
            {
                throw e;
            }
            finally
            {
                conexion.connection.Close();
            }
            return(affectedRows);
        }