public FormDetalles(FormFabrica formPadre, Fabrica fabrica, EProceso proceso) { this.fabrica = fabrica; this.formPadre = formPadre; this.proceso = proceso; InitializeComponent(); }
/// <summary> /// Unico constructor de esta clase /// </summary> /// <param name="productosAptos"></param> /// <param name="procesoAsociado"></param> /// <param name="labelAsociado"></param> /// <param name="btnDetalles"></param> public Proceso(int productosAptos, EProceso procesoAsociado, IconButton labelAsociado, Button btnDetalles) { this.productosAptos = productosAptos; this.procesoAsociado = procesoAsociado; this.labelAsociado = labelAsociado; this.btnDetalles = btnDetalles; }
/// <summary> /// Filtra la lista de elementos del DataGrid segun el proceso del material /// </summary> /// <param name="dataGridView"></param> /// <param name="proceso"></param> private void FiltrarDataGrid(DataGridView dataGridView, EProceso proceso) { listaFiltro = stock.FiltrarLista(stock.ListaDeMateriales, proceso); if (listaFiltro.Count > 0) { AgregarData(listaFiltro); } }
/// <summary> /// El método recibe una variable del tipo EProceso indicando el proceso a realizar y recorre la lista de linea de produccion para ejecutar dicho proceso /// cuando corresponda, devolviendo la cantidad de productos a los cuales se les aplico el proceso. /// </summary> /// <param name="proceso"></param> /// <returns></returns> public int EjecutarProcesoLineaProduccion(EProceso proceso) { int output = 0; if (proceso != EProceso.Despachar) { foreach (Producto producto in this.ServicioProducto.GetAll()) { bool procesoRealizado = false; switch (proceso) { case EProceso.Lijar: procesoRealizado = producto.LijarMaderaProducto(); ServicioProducto.UpdateEntity(producto); break; case EProceso.Barnizar: if (producto is Estante) { procesoRealizado = ((Estante)producto).BarnizarProducto(); ServicioProducto.UpdateEntity(producto); } break; case EProceso.Alfombrar: procesoRealizado = producto.AlfombrarProducto(); ServicioProducto.UpdateEntity(producto); break; case EProceso.AgregarYute: if (producto is Torre) { procesoRealizado = ((Torre)producto).AgregarYute(); ServicioProducto.UpdateEntity(producto); } break; case EProceso.Ensamblar: procesoRealizado = producto.EnsamblarProducto(); ServicioProducto.UpdateEntity(producto); break; } if (procesoRealizado) { output++; } } EmitirEvento(); } else { output = MudarProductosAStockTerminado(); } return(output); }
/// <summary> /// Constructor de MateriaPrima /// </summary> /// <param name="proceso"></param> /// <param name="material"></param> /// <param name="origen"></param> /// <param name="cantidad"></param> /// <param name="calidad"></param> /// <param name="color"></param> protected MateriaPrima(EProceso proceso, string material, string origen, int cantidad, ECalidad calidad, EColorMaterial color) { this.cantidad = cantidad; this.calidad = calidad; this.color = color; this.proceso = proceso; this.material = material; this.origen = origen; }
/// <summary> /// Filtra la lista de materiales segun el proceso en el que se encuentre el material /// </summary> /// <param name="lista"></param> /// <param name="proceso"></param> /// <returns></returns> public List <MateriaPrima> FiltrarLista(List <MateriaPrima> lista, EProceso proceso) { List <MateriaPrima> listaFiltrada = new List <MateriaPrima>(); foreach (MateriaPrima item in listaDeMateriales) { if (item.Proceso == proceso) { listaFiltrada.Add(item); } } return(listaFiltrada); }
/// <summary> /// Ejecuta el proceso de linea de producción e informa de la cantidad de productos modificados /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void EjecutarProceso(EProceso proceso) { string mensaje = String.Empty; int productosModificados = fabrica.EjecutarProcesoLineaProduccion(proceso); if (productosModificados > 0) { switch (proceso) { case EProceso.Lijar: mensaje = $"Se han lijado {productosModificados} productos"; break; case EProceso.Ensamblar: mensaje = $"Se han completado {productosModificados} productos"; break; case EProceso.Barnizar: mensaje = $"Se han barnizado {productosModificados} productos"; break; case EProceso.Alfombrar: mensaje = $"Se han alfombrado {productosModificados} productos"; break; case EProceso.AgregarYute: mensaje = $"Se ha agregado yute a {productosModificados} torres"; break; case EProceso.Despachar: mensaje = $"Se han despachado {productosModificados} productos"; break; } } else { mensaje = "No se ha modificado ningun producto"; } MessageBox.Show(mensaje, "Realizar operación", MessageBoxButtons.OK, MessageBoxIcon.Information); Cerrar.Invoke(); this.Close(); }
/// <summary> /// Calcula el número de elementos disponibles para aplicarse cierto proceso productivo devolviendo un listado con estos productos aptos /// </summary> /// <param name="proceso"></param> /// <param name="listadoProductos"></param> /// <returns></returns> public int CalcularCantidadDeProductosAptosProceso(EProceso proceso, out List <Producto> listadoProductos) { int output = 0; listadoProductos = new List <Producto>(); foreach (Producto producto in this.productoService.GetAll()) { switch (proceso) { case EProceso.Lijar: if (producto.EstadoProducto == EEstado.Planificado) { output++; listadoProductos.Add(producto); } break; case EProceso.Barnizar: if (producto is Estante && producto.EstadoProducto == EEstado.MaderasLijadas) { output++; listadoProductos.Add(producto); } break; case EProceso.Alfombrar: if ((producto is Torre && producto.EstadoProducto == EEstado.MaderasLijadas) || (producto.EstadoProducto == EEstado.Barnizado)) { output++; listadoProductos.Add(producto); } break; case EProceso.AgregarYute: if (producto is Torre && producto.EstadoProducto == EEstado.Alfombrado && ((Torre)producto).MetrosYute > 0) { output++; listadoProductos.Add(producto); } break; case EProceso.Ensamblar: if (producto is Torre) { if ((producto.EstadoProducto == EEstado.Alfombrado && ((Torre)producto).MetrosYute == 0) || (producto.EstadoProducto == EEstado.AdicionalesAgregados)) { output++; listadoProductos.Add(producto); } } else if (producto.EstadoProducto == EEstado.Alfombrado) { output++; listadoProductos.Add(producto); } break; case EProceso.Despachar: if (producto.EstadoProducto == EEstado.Completo) { output++; listadoProductos.Add(producto); } break; } } return(output); }
/// <summary> /// Constructor de Reciclado con todos los parametros /// </summary> /// <param name="proceso"></param> /// <param name="material"></param> /// <param name="origen"></param> /// <param name="cantidad"></param> /// <param name="calidad"></param> /// <param name="color"></param> public Reciclado(EProceso proceso, string material, string origen, int cantidad, ECalidad calidad, EColorMaterial color) : base(proceso, material, origen, cantidad, calidad, color) { }
public void CargarListadoProductosDataGrid(EProceso proceso) { List <Producto> productos = new List <Producto>(); fabrica.CalcularCantidadDeProductosAptosProceso(proceso, out productos); if (productos.Count > 0) { dgLineaProduccion.Rows.Clear(); dgLineaProduccion.Columns.Clear(); dgLineaProduccion.Columns.Add("tipoProducto", "Tipo de Producto"); dgLineaProduccion.Columns.Add("modelo", "Modelo"); dgLineaProduccion.Columns.Add("maderaPrincipal", "Madera Principal"); dgLineaProduccion.Columns.Add("maderaSecundaria", "Madera Secundaria"); dgLineaProduccion.Columns.Add("tipoTela", "Material Tela"); dgLineaProduccion.Columns.Add("colorTela", "Color Tela"); dgLineaProduccion.Columns.Add("detalles", "Detalles"); dgLineaProduccion.Columns.Add("estado", "Estado"); foreach (Producto p in productos) { string tipoProducto; string maderaPrincipal; string maderaSecundaria; string modelo; string tipoTelaProducto; string colorTelaProducto; string estado; string adicional; maderaPrincipal = p.MaderaPrincipal.TipoMadera.ToString(); tipoTelaProducto = p.TelaProducto.TipoTela.ToString(); colorTelaProducto = p.TelaProducto.Color.ToString(); estado = p.EstadoProducto.ToString(); if (p is Torre) { maderaSecundaria = ((Torre)p).MaderaPrincipal.TipoMadera.ToString(); modelo = ((Torre)p).Modelo.ToString(); tipoProducto = "Torre"; if (((Torre)p).MetrosYute > 0) { adicional = $"Agregado de Yute: {((Torre)p).MetrosYute} metros"; } else { adicional = "Sin adicionales"; } } else { modelo = "Unico"; tipoProducto = "Estante"; maderaSecundaria = "No aplica"; adicional = $"Cantidad: {((Estante)p).CantidadEstantes}"; } dgLineaProduccion.Rows.Add(tipoProducto, modelo, maderaPrincipal, maderaSecundaria, tipoTelaProducto, colorTelaProducto, adicional, estado); } } }
private void MetodoPrueba(int ingreso, EProceso proceso) { MessageBox.Show($"se han modificado {ingreso} productos"); }
public void IniciarProceso(EProceso proceso) { if (!(this.hilo is null) && this.hilo.IsAlive) { throw new Exception("Existe un proceso en ejecución"); }