public static void renovarStock(DetallePedido detPedido, SqlConnection con, SqlTransaction trans, Pedido pedido, List <Producto> productosConPocaMP) { DataTable ProductosIntermedio; DataTable MateriaPrima; DataTable DetallePlan; int idProductoFinal = 0; int idProductoIntermedio = 0; double cantidad = 0; idProductoFinal = detPedido.producto.idProducto; //OBTENEMOS EL ID DEL PRODUCTO FINAL cantidad = detPedido.cantidad; //OBTENEMOS LA CANTIDAD DE PRODUCTOS if (ProductoDAO.verificarProductoPlanificado(pedido.fechaNecesidad.Date, idProductoFinal, con, trans) == true) //PREGUNTAMOS SI PARA ESE PRODUCTO YA HAY UN DETALLE DEL PLAN PARA ESA FECHA Y ES TRUE { DetallePlan = DetallePlanProduccionDAO.GetDetallePlanXProducto(idProductoFinal, pedido.fechaNecesidad.Date, con, trans); //OBTENEMOS LOS DATOS DEL DETALLE DEL PLAN renovarDetallePlanYPedidoXPlan(DetallePlan, pedido.idPedido, con, trans, cantidad); MateriaPrima = ProductoDAO.GetMateriaPrima(idProductoFinal, trans, con); //CARGAMOS EN LA TABLA LOS DATOS DE LAS MATERIAS PRIMAS DataTable MateriaPrimaXIntermedio = new DataTable(); ProductosIntermedio = ProductoDAO.GetProductoIntermedio(idProductoFinal, con, trans); //CARGAMOS EN LA TABLA LOS DATOS DE LOS PRODUCTOS INTERMEDIO renovarMateriasPrimas(MateriaPrima, MateriaPrimaXIntermedio, ProductosIntermedio, cantidad, idProductoFinal, con, trans, productosConPocaMP); } //else //{ // if (ProductoDAO.verificarPlanSinProducto(pedido.fechaNecesidad.Date, idProductoFinal, con, trans) == true)//PREGUNTAMOS SI PARA ESE PRODUCTO YA HAY UN DETALLE DEL PLAN PARA ESA FECHA Y ES TRUE // { // Producto prodNuevo = new Producto(); // prodNuevo.idProducto = idProductoFinal; // DetallePlanProduccion detallePlanProduccion = new DetallePlanProduccion() // { // fechaProduccion = pedido.fechaNecesidad, // idPlan = PlanMaestroProduccionDAO.obtenerIdPlan(pedido.fechaNecesidad.Date), // cantidadPLan = 0, // producto = prodNuevo, // cantidadPedido = double.Parse(cantidad.ToString()) // }; // cargarNuevoDetallePlanYPedidoXPlan(detallePlanProduccion, con, trans, pedido); // MateriaPrima = ProductoDAO.GetMateriaPrima(idProductoFinal, trans, con);//CARGAMOS EN LA TABLA LOS DATOS DE LAS MATERIAS PRIMAS // DataTable MateriaPrimaXIntermedio = new DataTable(); // ProductosIntermedio = ProductoDAO.GetProductoIntermedio(idProductoFinal, con, trans);//CARGAMOS EN LA TABLA LOS DATOS DE LOS PRODUCTOS INTERMEDIO // obtenerMateriasPrimas(MateriaPrima, MateriaPrimaXIntermedio, ProductosIntermedio, cantidad, idProductoFinal, con, trans); // } //} }
public static void UpdateStockReservadoYActualdePedidoEntregado(DetallePedido det, int idPedido, int estadoHasta) { Acceso ac = new Acceso(); SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); SqlTransaction tran = null; SqlCommand cmd = new SqlCommand("UPDATE [Luiggi].[dbo].[Producto] SET [stockActual] = stockActual - @cantidad, [stockReservado] = stockReservado - @cantidad WHERE idProducto = @idProducto", conexion); cmd.Parameters.AddWithValue("@idProducto", det.producto.idProducto); cmd.Parameters.AddWithValue("@cantidad", det.cantidad); try { conexion.Open(); tran = conexion.BeginTransaction(); cmd.Connection = conexion; cmd.Transaction = tran; cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); PedidoDAO.UpdateEstados(idPedido, estadoHasta); tran.Commit(); } catch (ArgumentException ex) { tran.Rollback(); throw new ApplicationException(ex.Message); } catch (SqlException ex) { tran.Rollback(); throw new ApplicationException("Error en BD: " + ex.Message); } finally { conexion.Close(); } }
public static List <DetallePedido> getCantidadPedidaxProducto(DateTime fecha) { Acceso ac = new Acceso(); List <DetallePedido> detalles = new List <DetallePedido>(); SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); SqlCommand cmd = new SqlCommand("sp_buscar_cantidad_pedido_fecha"); cmd.Parameters.AddWithValue("@fecha", fecha); try { conexion.Open(); cmd.Connection = conexion; cmd.CommandType = CommandType.StoredProcedure; SqlDataReader dr = cmd.ExecuteReader(); DetallePedido d; Producto p; UnidadMedida u; while (dr.Read()) { u = new UnidadMedida(); u.Nombre = dr["Unidad"].ToString(); p = new Producto(); p.Nombre = dr["nombre"].ToString(); p.Unidad = u; p.idProducto = Convert.ToInt16(dr["idProducto"]); d = new DetallePedido(); d.cantidad = Convert.ToInt32(dr["cantidad"]); d.producto = p; detalles.Add(d); } } catch (InvalidOperationException ex) { throw new ApplicationException(ex.Message); } catch (SqlException ex) { throw new ApplicationException("Error en BD: " + ex.Message); } finally { conexion.Close(); } return(detalles); }
public static List <DetallePedido> GetDetalleXPedido(int ped) { Acceso ac = new Acceso(); List <DetallePedido> detalles = new List <DetallePedido>(); string sql = "SELECT * from CONSULTA_DETALLE_PEDIDO where idPedido = @ped"; SqlCommand cmd = new SqlCommand(); cmd.Parameters.AddWithValue("@ped", ped); SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); try { conexion.Open(); cmd.Connection = conexion; cmd.CommandText = sql; cmd.CommandType = CommandType.Text; SqlDataReader dr = cmd.ExecuteReader(); DetallePedido d; Producto p; UnidadMedida u; Estado e; while (dr.Read()) { e = new Estado(); e.idEstado = Convert.ToInt32(dr["idEstado"]); u = new UnidadMedida(); u.IDUnidad = Convert.ToInt32(dr["idUnidad"]); u.Nombre = dr["UnidadMedida"].ToString(); p = new Producto(); p.CODProducto = Convert.ToInt32(dr["codProducto"]); p.Nombre = dr["nombre"].ToString(); p.Unidad = u; p.idProducto = Convert.ToInt16(dr["idProducto"]); d = new DetallePedido(); d.cantidad = Convert.ToDouble(dr["cantidad"]); d.producto = p; d.precio = Convert.ToDouble(dr["precio"]); d.subTotal = Convert.ToDouble(dr["subTotal"]); d.reservado = Convert.ToBoolean(dr["reservado"]); d.Estado = e; detalles.Add(d); } } catch (InvalidOperationException ex) { throw new ApplicationException(ex.Message); } catch (SqlException ex) { throw new ApplicationException("Error en BD: " + ex.Message); } finally { conexion.Close(); } return(detalles); }