public static void finalizarOTPadre(OrdenDeTrabajo ot, double canPed, double canPlan, List <DetalleProducto> tabla) { Acceso ac = new Acceso(); SqlConnection cn = new SqlConnection(ac.getCadenaConexion()); SqlTransaction tran = null; string sql = "UPDATE [Luiggi].[dbo].[OrdenTrabajo] SET [idEstado] = 20, [cantidadProducidaReal]= @cantreal, [observaciones] = @observaciones WHERE idOrdenTrabajo = @idOrdenTrabajo "; SqlCommand cmd = new SqlCommand(); cmd.Parameters.AddWithValue("@idOrdenTrabajo", ot.idOrdenTrabajo); cmd.Parameters.AddWithValue("@cantreal", ot.cantidadReal); cmd.Parameters.AddWithValue("@observaciones", ot.observaciones); try { cn.Open(); tran = cn.BeginTransaction(); cmd.Connection = cn; cmd.Transaction = tran; cmd.CommandText = sql; cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); ProductoDAO.UpdateStockReservadoYDisponibleOTFinalizada(ot.producto.idProducto, canPlan, canPed, cn, tran); foreach (DetalleProducto det in tabla) { ProductoDAO.UpdateStockReservadoYDisponibleMatiaPrimaOTfinalizada(det.idProducto, det.cantidad, det.cantidadProductos, cn, tran); } DetallePedidoDAO.finalizarDetalleDePedido(ot.fechaCreacion, ot.producto.idProducto, tran, cn); tran.Commit(); } catch (ArgumentException ex) { tran.Rollback(); throw new ApplicationException("Error en BD: " + ex.Message); } catch (SqlException ex) { tran.Rollback(); throw new ApplicationException("Error en BD: " + ex.Message); } finally { cn.Close(); } }
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(); } }