public static void AgregarPedido(Pedido pedido) { SqlConnection conexion = null; try { conexion = new SqlConnection(Conexion.CadenaConexion); SqlCommand cmdAgregarPedido = new SqlCommand("AgregarPedido", conexion); cmdAgregarPedido.CommandType = CommandType.StoredProcedure; cmdAgregarPedido.Parameters.AddWithValue("@fecha", pedido.Fecha); cmdAgregarPedido.Parameters.AddWithValue("@precioTotal", pedido.PrecioTotal); cmdAgregarPedido.Parameters.AddWithValue("@enviado", pedido.Enviado); cmdAgregarPedido.Parameters.AddWithValue("@cedulaUsuario", pedido.Registrado.Cedula); SqlParameter numeroPedido = new SqlParameter("@numeroPedido", SqlDbType.Int); numeroPedido.Direction = ParameterDirection.Output; cmdAgregarPedido.Parameters.Add(numeroPedido); conexion.Open(); int filasAfectadas = cmdAgregarPedido.ExecuteNonQuery(); int numeroPedidoAgregado = Convert.ToInt32(numeroPedido.Value); List <LineaPedido> lineasPedido = pedido.LineasPedidos; foreach (LineaPedido lp in lineasPedido) { PersistenciaPedido.AgregarLineasDePedido(lp, numeroPedidoAgregado); Articulo artciulo = PersistenciaArticulo.Buscar(lp.PArticulo.CodigoBarras, false); artciulo.Stock = artciulo.Stock - lp.Cantidad; PersistenciaArticulo.Modificar(artciulo); } if (filasAfectadas < 1) { throw new ExcepcionPersistencia("Ocurrio un error al agregar el Pedido."); } } finally { if (conexion != null) { conexion.Close(); } } }
public static void EliminarPedido(Pedido pedido) { SqlConnection conexion = null; try { conexion = new SqlConnection(Conexion.CadenaConexion); SqlCommand cmdEliminarPedido = new SqlCommand("EliminarPedido", conexion); cmdEliminarPedido.CommandType = CommandType.StoredProcedure; cmdEliminarPedido.Parameters.AddWithValue("@numero", pedido.Numero); SqlParameter retorno = new SqlParameter("@valorRetorno", SqlDbType.Int); retorno.Direction = ParameterDirection.ReturnValue; cmdEliminarPedido.Parameters.Add(retorno); conexion.Open(); int filasAfectadas = cmdEliminarPedido.ExecuteNonQuery(); switch ((int)retorno.Value) { case 1: throw new ExcepcionPersistencia("No existe un pedido con el número: " + pedido.Numero); break; case 2: throw new ExcepcionPersistencia("El pedido no puede eliminarse porque ya fue enviado al usuario."); break; case 3: throw new ExcepcionPersistencia("Ocurrio un error al eliminar las lineas del pedido."); break; case 4: throw new ExcepcionPersistencia("No se pudo Eliminar el pedido."); break; } if (filasAfectadas < 1) { throw new ExcepcionPersistencia("Error al eliminar el Pedido con el número: " + pedido.Numero); } else { foreach (LineaPedido lp in pedido.LineasPedidos) { if (lp.PArticulo.Eliminado == false) { Articulo artciulo = PersistenciaArticulo.Buscar(lp.PArticulo.CodigoBarras, false); artciulo.Stock = artciulo.Stock + lp.Cantidad; PersistenciaArticulo.Modificar(artciulo); } } } } finally { if (conexion != null) { conexion.Close(); } } }