public static void Insert(PlanMaestroProduccion plan, List <Producto> productosConPocaMP) { Acceso ac = new Acceso(); SqlTransaction tran = null; SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); SqlCommand cmd = new SqlCommand("sp_PlanProduccion_insert", conexion); cmd.Parameters.AddWithValue("@fechaCreacion", plan.fechaCreacion); cmd.Parameters.AddWithValue("@fechaInicio", plan.fechaInicio); cmd.Parameters.AddWithValue("@fechaFin", plan.fechaFin); cmd.Parameters.AddWithValue("@idEstado", plan.estado.idEstado); cmd.Parameters.AddWithValue("@observaciones", plan.observaciones); try { conexion.Open(); tran = conexion.BeginTransaction(); cmd.CommandType = CommandType.StoredProcedure; cmd.Transaction = tran; cmd.ExecuteNonQuery(); SqlCommand cmdIdentity = new SqlCommand("select @@Identity", conexion, tran); plan.IDPlanProduccion = Convert.ToInt32((cmdIdentity.ExecuteScalar())); foreach (DetallePlanProduccion detPlan in plan.detallePlan) { //detPed.pedido.idPedido = ped.idPedido; DetallePlanProduccionDAO.Insert(detPlan, conexion, tran, plan.IDPlanProduccion); actualizarStock(detPlan, conexion, tran, plan, productosConPocaMP); } tran.Commit(); } catch (ArgumentException ex) { if (conexion.State == ConnectionState.Open) { tran.Rollback(); } throw new ApplicationException(ex.Message); } catch (SqlException ex) { throw new ApplicationException("Error en BD: " + ex.Message); } finally { conexion.Close(); } }
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 renovarDetallePlanYPedidoXPlan(DataTable DetallePlan, int idPedido, SqlConnection con, SqlTransaction trans, double cantidad) { DetallePlanProduccionDAO.ActualizarDetallePlan(int.Parse(DetallePlan.Rows[0]["idProducto"].ToString()), cantidad * -1, DateTime.Parse(DetallePlan.Rows[0]["fechaproduccion"].ToString()), con, trans);//ACTUALIZAMOS LA CANTIDAD DE PRODUCTOS EN PEDIDO EN EL DETALLE PLAN PRODUCCION DetallePlanProduccionDAO.deletePlanXPedidoXidPedido(idPedido, con, trans); }
public static void cargarNuevoDetallePlanYPedidoXPlan(DetallePlanProduccion detallePlanProd, SqlConnection con, SqlTransaction trans, Pedido ped) { DetallePlanProduccionDAO.Insert(detallePlanProd, con, trans, detallePlanProd.idPlan);//ACTUALIZAMOS LA CANTIDAD DE PRODUCTOS EN PEDIDO EN EL DETALLE PLAN PRODUCCION //DetallePlanProduccionDAO.insertarPlanProduccionXPedido(ped.idPedido, detallePlanProd.producto.idProducto, detallePlanProd.idPlan, detallePlanProd.fechaProduccion.Date,trans,con); }
public static void Update(PlanMaestroProduccion ped, List <DetallePlanProduccion> desreservar, List <Producto> productosConPocaMP) { Acceso ac = new Acceso(); SqlTransaction tran = null; SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); SqlCommand cmd = new SqlCommand("UPDATE [Luiggi].[dbo].[PlanMaestroProduccion] SET [fechaInicio] = @fechaInicio, [fechaFin] = @fechaFin, [observaciones] = @observaciones WHERE idPlanProduccion = @idPlanProduccion", conexion); cmd.Parameters.AddWithValue("@fechaInicio", ped.fechaInicio); cmd.Parameters.AddWithValue("@fechaFin", ped.fechaFin); cmd.Parameters.AddWithValue("@observaciones", ped.observaciones); cmd.Parameters.AddWithValue("@idPlanProduccion", ped.IDPlanProduccion); 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())); DetallePlanProduccionDAO.Delete(ped.IDPlanProduccion, conexion, tran); foreach (DetallePlanProduccion det in desreservar) { det.cantidadPedido = det.cantidadPedido * -1; det.cantidadPLan = det.cantidadPLan * -1; actualizarStock(det, conexion, tran, ped, productosConPocaMP); } foreach (DetallePlanProduccion detPed in ped.detallePlan) { //detPed.pedido.idPedido = ped.idPedido; DetallePlanProduccionDAO.Insert(detPed, conexion, tran, ped.IDPlanProduccion); 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(); } }