public static int Insert(Pedido ped, List <Producto> productosConPocaMP) { Acceso ac = new Acceso(); SqlTransaction tran = null; SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); SqlCommand cmd = new SqlCommand("sp_Pedido_insert", conexion); cmd.Parameters.AddWithValue("@idCliente", ped.cliente.idPersona); cmd.Parameters.AddWithValue("@idEstado", ped.estado.idEstado); cmd.Parameters.AddWithValue("@fechaPedido", ped.fechaPedido); cmd.Parameters.AddWithValue("@fechaNecesidad", ped.fechaNecesidad); cmd.Parameters.AddWithValue("@nroPedido", ped.nroPedido); cmd.Parameters.AddWithValue("@direccion", ped.dirEntraga); try { conexion.Open(); tran = conexion.BeginTransaction(); cmd.CommandType = CommandType.StoredProcedure; cmd.Transaction = tran; cmd.ExecuteNonQuery(); SqlCommand cmdIdentity = new SqlCommand("select @@Identity", conexion, tran); ped.idPedido = Convert.ToInt32((cmdIdentity.ExecuteScalar())); foreach (DetallePedido detPed in ped.detallePedido) { //detPed.pedido.idPedido = ped.idPedido; DetallePedidoDAO.Insert(detPed, conexion, tran, ped.idPedido); if (detPed.reservado == true) { ProductoDAO.UpdateStockReservadoYDisponible(detPed, conexion, tran); } if (detPed.reservado == false) { actualizarStock(detPed, conexion, tran, ped, productosConPocaMP); } } tran.Commit(); return(ped.idPedido); } catch (ArgumentException ex) { if (conexion.State == ConnectionState.Open) { tran.Rollback(); } throw new ApplicationException(ex.Message); } catch (SqlException ex) { if (conexion.State == ConnectionState.Open) { tran.Rollback(); } throw new ApplicationException("Error en BD: " + ex.Message); } finally { conexion.Close(); } }
public static void Update(Pedido ped, List <DetallePedido> tablaAModificar, List <Producto> productosConPocaMP) { Acceso ac = new Acceso(); SqlTransaction tran = null; SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); SqlCommand cmd = new SqlCommand("UPDATE [Luiggi].[dbo].[Pedido] SET [fechaNecesidad] = @fechaNecesidad, [direccion] = @direccion, [idEstado] = @idEstado WHERE idPedido = @idPedido", conexion); cmd.Parameters.AddWithValue("@idPedido", ped.idPedido); cmd.Parameters.AddWithValue("@fechaNecesidad", ped.fechaNecesidad); cmd.Parameters.AddWithValue("@direccion", ped.dirEntraga); cmd.Parameters.AddWithValue("@idEstado", ped.estado.idEstado); try { conexion.Open(); tran = conexion.BeginTransaction(); cmd.CommandType = CommandType.Text; cmd.Transaction = tran; cmd.ExecuteNonQuery(); //SqlCommand cmdIdentity = new SqlCommand("select @@Identity", conexion, tran); //ped.idPedido = Convert.ToInt32((cmdIdentity.ExecuteScalar())); foreach (DetallePedido detP in tablaAModificar) { if (detP.reservado == true) { ProductoDAO.UpdateStockReservadoYDisponibleEliminado(detP.producto.idProducto, detP.cantidad, conexion, tran); } else { renovarStock(detP, conexion, tran, ped, productosConPocaMP); } } DetallePedidoDAO.Delete(ped.idPedido, conexion, tran); foreach (DetallePedido detPed in ped.detallePedido) { //detPed.pedido.idPedido = ped.idPedido; DetallePedidoDAO.Insert(detPed, conexion, tran, ped.idPedido); if (detPed.reservado == true) { ProductoDAO.UpdateStockReservadoYDisponible(detPed, conexion, tran); } if (detPed.reservado == false) { actualizarStock(detPed, conexion, tran, ped, productosConPocaMP); } } tran.Commit(); } catch (ArgumentException ex) { if (conexion.State == ConnectionState.Open) { tran.Rollback(); } throw new ApplicationException(ex.Message); } catch (SqlException ex) { if (conexion.State == ConnectionState.Open) { tran.Rollback(); } throw new ApplicationException("Error en BD: " + ex.Message); } finally { conexion.Close(); } }