public static void actualizarStock(DetallePlanProduccion detPlan, SqlConnection con, SqlTransaction trans, PlanMaestroProduccion plan, List<Producto> ProductosConPocaMP) { DataTable ProductosIntermedio; DataTable MateriaPrima; int idProductoFinal = 0; double cantidad = 0; idProductoFinal = detPlan.producto.idProducto;//OBTENEMOS EL ID DEL PRODUCTO FINAL cantidad = detPlan.cantidadPedido + detPlan.cantidadPLan;//OBTENEMOS LA CANTIDAD DE PRODUCTOS 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,ProductosConPocaMP); }
public static List<PlanMaestroProduccion> GetAll() { Acceso ac = new Acceso(); List<PlanMaestroProduccion> planes = new List<PlanMaestroProduccion>(); string sql = "SELECT * from CONSULTA_PLAN_PRODUCCION order by fechainicio desc"; SqlCommand cmd = new SqlCommand(); SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); try { conexion.Open(); cmd.Connection = conexion; cmd.CommandText = sql; cmd.CommandType = CommandType.Text; SqlDataReader dr = cmd.ExecuteReader(); PlanMaestroProduccion p; Estado e; while (dr.Read()) { p = new PlanMaestroProduccion(); e = new Estado(); e.idEstado = Convert.ToInt32(dr["idEstado"]); e.Nombre = dr["nombre"].ToString(); p.IDPlanProduccion = Convert.ToInt32(dr["idPlanProduccion"]); p.fechaCreacion = Convert.ToDateTime(dr["fechaCreacion"]); p.fechaInicio = Convert.ToDateTime(dr["fechaInicio"]); p.fechaFin = Convert.ToDateTime(dr["fechaFin"]); p.observaciones = dr["observaciones"].ToString(); p.fechaCancelacion = Convert.ToDateTime(dr["fechaCancelacion"]); p.motivoCancelacion = dr["motivoCancelacion"].ToString(); p.estado = e; planes.Add(p); } } catch (InvalidOperationException ex) { throw new ApplicationException(ex.Message); } catch (SqlException ex) { throw new ApplicationException("Error en BD: " + ex.Message); } finally { conexion.Close(); } return planes; }
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(); } }
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 List<PlanMaestroProduccion> GetByFiltros(int est, DateTime? fInicioDesde, DateTime? fFinHasta) { Acceso ac = new Acceso(); List<PlanMaestroProduccion> planes = new List<PlanMaestroProduccion>(); string sql = "SELECT * from CONSULTA_PLAN_PRODUCCION where 1=1"; SqlCommand cmd = new SqlCommand(); SqlConnection conexion = new SqlConnection(ac.getCadenaConexion()); if (est != -1 && est != 0) { sql += " and idEstado = @est"; cmd.Parameters.AddWithValue("@est", est); } if (fInicioDesde.HasValue) { sql += " and fechaInicio >= @fInicioDesde"; cmd.Parameters.AddWithValue("@fInicioDesde", fInicioDesde.Value); } //if (fInicioHasta.HasValue) //{ // sql += " and fechaInicio <= @fInicioHasta"; // cmd.Parameters.AddWithValue("@fInicioHasta", fInicioHasta.Value); //} //if (fFinDesde.HasValue) //{ // sql += " and fechaFin >= @fFinDesde"; // cmd.Parameters.AddWithValue("@fFinDesde", fFinDesde.Value); //} if (fFinHasta.HasValue) { sql += " and fechaFin <= @fFinHasta"; cmd.Parameters.AddWithValue("@fFinHasta", fFinHasta.Value); } try { conexion.Open(); cmd.Connection = conexion; cmd.CommandText = sql; cmd.CommandType = CommandType.Text; SqlDataReader dr = cmd.ExecuteReader(); PlanMaestroProduccion p; Estado e; while (dr.Read()) { p = new PlanMaestroProduccion(); e = new Estado(); e.idEstado = Convert.ToInt32(dr["idEstado"]); e.Nombre = dr["nombre"].ToString(); p.IDPlanProduccion = Convert.ToInt32(dr["idPlanProduccion"]); p.fechaCreacion = Convert.ToDateTime(dr["fechaCreacion"]); p.fechaInicio = Convert.ToDateTime(dr["fechaInicio"]); p.fechaFin = Convert.ToDateTime(dr["fechaFin"]); p.observaciones = dr["observaciones"].ToString(); p.fechaCancelacion = Convert.ToDateTime(dr["fechaCancelacion"]); p.motivoCancelacion = dr["motivoCancelacion"].ToString(); p.estado = e; planes.Add(p); } } catch (InvalidOperationException ex) { throw new ApplicationException(ex.Message); } catch (SqlException ex) { throw new ApplicationException("Error en BD: " + ex.Message); } finally { conexion.Close(); } return planes; }
private void btn_guardar_Click(object sender, EventArgs e) { if (estadoFormulario == estados.nuevo) { if (PlanMaestroProduccionDAO.verificarExistenciaPlanParaPeriodo(dtp_fecha_inicio.Value.Date, dtp_fecha_final.Value.Date)==false) { PlanMaestroProduccion plan = new PlanMaestroProduccion() { detallePlan = crearDetalle(), fechaCreacion = dtp_creacion_plan.Value.Date, fechaInicio = dtp_fecha_inicio.Value.Date, fechaFin = dtp_fecha_final.Value.Date, observaciones = txt_observaciones.Text, estado = new Estado() { idEstado = 17 } }; try { List<Producto> productosConPocaMP = new List<Producto>(); PlanMaestroProduccionDAO.Insert(plan, productosConPocaMP); ////////////// MOSTRAR LOS PRODUCTOS CON BAJO STOCK if (productosConPocaMP.Count > 0) { string mensaje = ""; List<Producto> prodConPocoStock = new List<Producto>(); Boolean MPRepetida = false; foreach (Producto Prod in productosConPocaMP) { foreach (Producto P in prodConPocoStock) { if (P.idProducto == Prod.idProducto) { MPRepetida = true; break; } } if (MPRepetida == false) { mensaje += Environment.NewLine + Prod.Nombre.ToString(); prodConPocoStock.Add(Prod); } } MessageBox.Show("Los siguientes productos estan con bajo stock: " + mensaje, "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Information); } ///////////////////////////////////////////////////////////// MessageBox.Show("Registrado con Exito", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); limpiar(); _estado = estados.guardado; } catch (ApplicationException ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } else { MessageBox.Show("Ya Existe un Plan Para ese Periodo", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } } else { PlanMaestroProduccion plan = new PlanMaestroProduccion() { IDPlanProduccion = planModificar.IDPlanProduccion, detallePlan = crearDetalle(), fechaCreacion = dtp_creacion_plan.Value.Date, fechaInicio = dtp_fecha_inicio.Value.Date, fechaFin = dtp_fecha_final.Value.Date, observaciones = txt_observaciones.Text, estado = new Estado() { idEstado = 17 } }; if (estadoFormulario == estados.modificar) { try { List<Producto> productosConPocaMP = new List<Producto>(); PlanMaestroProduccionDAO.Update(plan,desreservar, productosConPocaMP); ////////////// MOSTRAR LOS PRODUCTOS CON BAJO STOCK if (productosConPocaMP.Count > 0) { string mensaje = ""; List<Producto> prodConPocoStock = new List<Producto>(); Boolean MPRepetida = false; foreach (Producto Prod in productosConPocaMP) { foreach (Producto P in prodConPocoStock) { if (P.idProducto == Prod.idProducto) { MPRepetida = true; break; } } if (MPRepetida == false) { mensaje += Environment.NewLine + Prod.Nombre.ToString(); prodConPocoStock.Add(Prod); } } MessageBox.Show("Los siguientes productos estan con bajo stock: " + mensaje, "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Information); } ///////////////////////////////////////////////////////////// MessageBox.Show("Registrado con Exito", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); limpiar(); _estado = estados.guardado; dtp_fecha_inicio.Enabled = true; } catch (ApplicationException ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } } }
private void dgv_planes_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { String estado = dgv_planes.Rows[dgv_planes.CurrentRow.Index].Cells["Estado"].Value.ToString(); if (estado == "Pendiente de fabricación") { PlanMaestroProduccion plan = new PlanMaestroProduccion(); plan.IDPlanProduccion = (int)dgv_planes.Rows[dgv_planes.CurrentRow.Index].Cells["nroPlan"].Value; GestionPlanMaestroProduccion gestPlan = new GestionPlanMaestroProduccion(); gestPlan._estado = estados.modificar; gestPlan._planModificar = plan; gestPlan.ShowDialog(); cargarGrilla(); dgv_detalle_plan.Rows.Clear(); } }