Esempio n. 1
0
 public FormDetalles(FormFabrica formPadre, Fabrica fabrica, EProceso proceso)
 {
     this.fabrica   = fabrica;
     this.formPadre = formPadre;
     this.proceso   = proceso;
     InitializeComponent();
 }
Esempio n. 2
0
 /// <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);
     }
 }
Esempio n. 4
0
        /// <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;
 }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 7
0
        /// <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();
        }
Esempio n. 8
0
        /// <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);
        }
Esempio n. 9
0
 /// <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)
 {
 }
Esempio n. 10
0
        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);
                }
            }
        }
Esempio n. 11
0
 private void MetodoPrueba(int ingreso, EProceso proceso)
 {
     MessageBox.Show($"se han modificado {ingreso} productos");
 }
Esempio n. 12
0
 public void IniciarProceso(EProceso proceso)
 {
     if (!(this.hilo is null) && this.hilo.IsAlive)
     {
         throw new Exception("Existe un proceso en ejecución");
     }