Example #1
0
        /// <summary>
        /// Genera una fabrica con tres productos válidos para utilizarse en las pruebas de fabricación
        /// </summary>
        /// <returns></returns>
        public Fabrica getFabricaCompleta()
        {
            Fabrica fabrica = Fabrica.Instance;

            fabrica.ResetearFabrica();

            Insumo maderaUno        = new Madera(ETipoMadera.Mdf, EForma.Tablon, 100);
            Insumo maderaDos        = new Madera(ETipoMadera.Pino, EForma.Tablon, 200);
            Insumo maderaSecundaria = new Madera(ETipoMadera.Mdf, EForma.Tubo, 100);
            Insumo telaUno          = new Tela(EColor.Bordo, ETipoTela.Alfombra, 100);
            Insumo telaDos          = new Tela(EColor.Rosa, ETipoTela.Corderito, 200);

            Insumo adicionalUno  = new InsumoAccesorio(ETipoAccesorio.Barniz, 300);
            Insumo adicionalDos  = new InsumoAccesorio(ETipoAccesorio.Tornillo, 300);
            Insumo adicionalTres = new InsumoAccesorio(ETipoAccesorio.Pegamento, 300);

            List <Insumo> insumosAgregar = new List <Insumo>();

            insumosAgregar.Add(adicionalUno);
            insumosAgregar.Add(adicionalDos);
            insumosAgregar.Add(adicionalTres);
            insumosAgregar.Add(maderaUno);
            insumosAgregar.Add(maderaDos);

            insumosAgregar.Add(maderaSecundaria);
            insumosAgregar.Add(telaUno);
            insumosAgregar.Add(telaDos);

            Madera maderaProductoUno        = new Madera(ETipoMadera.Mdf, EForma.Tablon, 4);
            Madera maderaSecundariaProducto = new Madera(ETipoMadera.Mdf, EForma.Tubo, 3);
            Tela   telaProducto             = new Tela(EColor.Bordo, ETipoTela.Alfombra, 3);


            List <Insumo> faltantes    = new List <Insumo>();
            Producto      productoUno  = new Torre(new Madera(ETipoMadera.Mdf, EForma.Tablon, Fabrica.CANTIDAD_MADERA_TORRE_PRINCIPAL), new Tela(EColor.Bordo, ETipoTela.Alfombra, Fabrica.CANTIDAD_TELA_TORRE), Torre.EModeloTorre.King, new Madera(ETipoMadera.Mdf, EForma.Tubo, Fabrica.CANTIDAD_MADERA_TORRE_COLUMNA));
            Producto      productoDos  = new Torre(new Madera(ETipoMadera.Pino, EForma.Tablon, Fabrica.CANTIDAD_MADERA_TORRE_PRINCIPAL), new Tela(EColor.Rosa, ETipoTela.Corderito, Fabrica.CANTIDAD_TELA_TORRE), Torre.EModeloTorre.King, new Madera(ETipoMadera.Mdf, EForma.Tubo, Fabrica.CANTIDAD_MADERA_TORRE_COLUMNA));
            Producto      productoTres = new Estante(new Madera(ETipoMadera.Mdf, EForma.Tablon, Fabrica.CANTIDAD_MADERA_ESTANTE), new Tela(EColor.Rosa, ETipoTela.Corderito, Fabrica.CANTIDAD_TELA_ESTANTE), 3);

            fabrica.AgregarInsumosAStock(insumosAgregar);


            fabrica.AgregarProductoLineaProduccion(productoUno, out faltantes);
            fabrica.AgregarProductoLineaProduccion(productoDos, out faltantes);
            fabrica.AgregarProductoLineaProduccion(productoTres, out faltantes);

            return(fabrica);
        }
Example #2
0
        /// <summary>
        /// Verifica los datos ingresados en el formulario y agrega un nuevo Insumo al stock de Insumos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAgregarInsumo_Click(object sender, EventArgs e)
        {
            if (rbMadera.Checked)
            {
                EForma formaMadera;
                if (rbTablon.Checked)
                {
                    formaMadera = EForma.Tablon;
                }
                else
                {
                    formaMadera = EForma.Tubo;
                }
                bufferInsumo = new Madera((ETipoMadera)cmbTipoMadera.SelectedItem, formaMadera, (int)nudCantidad.Value, dtpIngreso.Value.Date);
            }
            else if (rbTela.Checked)
            {
                bufferInsumo = new Tela((EColor)cmbColorTela.SelectedItem, (ETipoTela)cmbTipoTela.SelectedItem, (int)nudCantidad.Value, dtpIngreso.Value.Date);
            }
            else if (rbInsumoAccesorio.Checked)
            {
                ETipoAccesorio tipoInsumoAccesorio;
                if (rbBarniz.Checked)
                {
                    tipoInsumoAccesorio = ETipoAccesorio.Barniz;
                }
                else if (rbPegamento.Checked)
                {
                    tipoInsumoAccesorio = ETipoAccesorio.Pegamento;
                }
                else if (rbYute.Checked)
                {
                    tipoInsumoAccesorio = ETipoAccesorio.Yute;
                }
                else
                {
                    tipoInsumoAccesorio = ETipoAccesorio.Tornillo;
                }
                bufferInsumo = new InsumoAccesorio(tipoInsumoAccesorio, (int)nudCantidad.Value, dtpIngreso.Value.Date);
            }


            fabrica.AgregarInsumosAStock(bufferInsumo);
            ActualizarListaInsumos();
            MessageBox.Show("Insumo agregado con éxito", "Agregar insumo", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Example #3
0
        /// <summary>
        /// Solicita los insumos faltantes
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSolicitarFaltantes_Click(object sender, EventArgs e)
        {
            List <Insumo> listaFaltantes = new List <Insumo>();
            Producto      producto       = bufferProducto.ClonarNuevoProducto();

            foreach (Insumo insumo in insumosFaltantes)
            {
                insumo.Cantidad *= (int)nudInsumos.Value;
            }
            fabrica.AgregarInsumosAStock(insumosFaltantes);
            insumosFaltantes.Clear();
            CambiarVisibilidadControlesFaltantes(false);
            DialogResult result = MessageBox.Show("Pedido de insumos faltantes realizado correctamente. ¿Desea dar de alta el producto ahora que hay insumos suficientes?", "Solicitar faltantes", MessageBoxButtons.YesNo, MessageBoxIcon.Information);

            if (result == DialogResult.Yes)
            {
                fabrica.AgregarProductoLineaProduccion(producto, out listaFaltantes);

                MessageBox.Show("Producto agregado a linea de Producción con éxito", "Agregar producto", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Example #4
0
        /// <summary>
        /// Este método es utilizado para preparar una fabrica para los test de dar de alta un producto, con la variable si stockPegamentoCompleto es true, habrá
        /// suficiente stock para dar de alta una torre, en el caso de que sea false no lo habrá
        /// </summary>
        /// <param name="stockPegamentoCompleto"></param>
        /// <returns></returns>
        public Fabrica getFabricaTest(bool stockPegamentoCompleto)
        {
            Fabrica fabrica = Fabrica.Instance;

            fabrica.LanzarEventos = false;
            fabrica.ResetearFabrica();
            Insumo adicionalTres;
            Insumo maderaUno        = new Madera(ETipoMadera.Mdf, EForma.Tablon, 10);
            Insumo maderaSecundaria = new Madera(ETipoMadera.Mdf, EForma.Tubo, 5);
            Insumo telaUno          = new Tela(EColor.Bordo, ETipoTela.Alfombra, 15);

            Insumo adicionalUno = new InsumoAccesorio(ETipoAccesorio.Barniz, 6);
            Insumo adicionalDos = new InsumoAccesorio(ETipoAccesorio.Tornillo, 24);

            if (stockPegamentoCompleto)
            {
                adicionalTres = new InsumoAccesorio(ETipoAccesorio.Pegamento, 6);
            }
            else
            {
                adicionalTres = new InsumoAccesorio(ETipoAccesorio.Pegamento, 1);
            }


            List <Insumo> insumosAgregar = new List <Insumo>();

            insumosAgregar.Add(adicionalUno);
            insumosAgregar.Add(adicionalDos);
            insumosAgregar.Add(adicionalTres);
            insumosAgregar.Add(maderaUno);
            insumosAgregar.Add(maderaSecundaria);
            insumosAgregar.Add(telaUno);

            fabrica.AgregarInsumosAStock(insumosAgregar);

            return(fabrica);
        }
Example #5
0
        static void Main(string[] args)
        {
            Console.Title = "Seghesio, Marcos Daniel TP3 2D";


            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("----------Fabrica de Productos para Gatos: demostración Consola--------");
            Console.WriteLine("-----------------------------------------------------------------------");


            Console.WriteLine("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();


            // Declarar los objetos necesarios para leer archivos XML

            FabricaXmlService serviceXmlFabrica = new FabricaXmlService($"{AppDomain.CurrentDomain.BaseDirectory}Origen\\");
            Fabrica           fabrica           = serviceXmlFabrica.ReadXmlFabrica();

            Console.WriteLine("\n-----------------------------------------------------------------------");
            Console.WriteLine("------------Atributos asignados a fabrica correctamente----------------");
            Console.WriteLine("-----------------------------------------------------------------------");


            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("---------------------Iterar lista de insumos --------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");


            foreach (Insumo i in fabrica.StockInsumos)
            {
                Console.WriteLine(i.Mostrar());
            }

            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();

            //1- Usuario Ingresa insumos a fabrica existente

            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("---------------------Agregar nuevos Insumos----------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");

            List <Insumo> insumosAgregar = new List <Insumo>();

            Insumo maderaUno        = new Madera(ETipoMadera.Pino, EForma.Tablon, 10);
            Insumo maderaSecundaria = new Madera(ETipoMadera.Pino, EForma.Tubo, 5);
            Insumo telaUno          = new Tela(EColor.Rosa, ETipoTela.Alfombra, 15);


            Insumo adicionalUno    = new InsumoAccesorio(ETipoAccesorio.Barniz, 10);
            Insumo adicionalDos    = new InsumoAccesorio(ETipoAccesorio.Tornillo, 24);
            Insumo adicionalTres   = new InsumoAccesorio(ETipoAccesorio.Pegamento, 10);
            Insumo adicionalCuatro = new InsumoAccesorio(ETipoAccesorio.Yute, 10);



            insumosAgregar += maderaUno;
            insumosAgregar += maderaUno;
            insumosAgregar += maderaSecundaria;
            insumosAgregar += telaUno;
            insumosAgregar += adicionalUno;
            insumosAgregar += adicionalDos;
            insumosAgregar += adicionalTres;
            insumosAgregar += adicionalCuatro;

            insumosAgregar += maderaUno;

            fabrica.AgregarInsumosAStock(insumosAgregar);

            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("-------Insumos agregados con éxito-------------------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");

            Console.WriteLine("--Se itera de nuevo el stock de insumos----------------------------");
            foreach (Insumo i in fabrica.StockInsumos)
            {
                Console.WriteLine(i.Mostrar());
            }

            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.WriteLine("\n-----------------------------------------------------------------------");
            Console.ReadKey();
            Console.Clear();


            //2- Usuario da de alta un producto para agregar a la linea de producción

            Console.WriteLine("\n-----------------------------------------------------------------------");
            Console.WriteLine("--------Se van a cargar dos nuevos productos---------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");

            Producto      productoTorre   = new Torre(new Madera(ETipoMadera.Mdf, EForma.Tablon, Fabrica.CANTIDAD_MADERA_TORRE_PRINCIPAL), new Tela(EColor.Bordo, ETipoTela.Alfombra, Fabrica.CANTIDAD_TELA_TORRE), Torre.EModeloTorre.Queen, new Madera(ETipoMadera.Pino, EForma.Tubo, Fabrica.CANTIDAD_MADERA_TORRE_COLUMNA), 3);
            Producto      productoEstante = new Estante(new Madera(ETipoMadera.Pino, EForma.Tablon, Fabrica.CANTIDAD_MADERA_ESTANTE), new Tela(EColor.Rosa, ETipoTela.Alfombra, Fabrica.CANTIDAD_TELA_ESTANTE), 5);
            List <Insumo> faltantes       = new List <Insumo>();

            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("-----Productos cargados, se procedera a iterar-------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");

            fabrica.AgregarProductoLineaProduccion(productoTorre, out faltantes);
            fabrica.AgregarProductoLineaProduccion(productoEstante, out faltantes);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");

            Console.ReadKey();
            Console.Clear();


            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("---Se van a ejecutar los procesos de la fábrica en orden---------------");
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();


            Console.WriteLine("\n-----------------------------------------------------------------------");


            Console.WriteLine("----------------Lijar Maderas------------------------------------------");

            //3- Ejecutar procesos de linea de Producción

            fabrica.EjecutarProcesoLineaProduccion(EProceso.Lijar);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("\n----------------Barnizar---------------------------------------------");

            fabrica.EjecutarProcesoLineaProduccion(EProceso.Barnizar);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("\n----------------Alfombrar--------------------------------------------");

            fabrica.EjecutarProcesoLineaProduccion(EProceso.Alfombrar);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();

            Console.WriteLine("\n----------------Agregar Yute-----------------------------------------");
            fabrica.EjecutarProcesoLineaProduccion(EProceso.AgregarYute);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");

            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("\n----------------Ensamblar--------------------------------------------");
            fabrica.EjecutarProcesoLineaProduccion(EProceso.Ensamblar);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();



            // 4 - Mudar productos terminados de la linea de producción al stock de productos terminados

            Console.WriteLine("-------------------------------------------------------------------------");
            Console.WriteLine("--Mudar productos terminados  al stock de productos terminados-----------");
            Console.WriteLine("-------------------------------------------------------------------------");


            fabrica.MudarProductosAStockTerminado();
            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("--------Iterar lista de productos terminados de la fabrica-------------");
            Console.WriteLine("-----------------------------------------------------------------------");


            foreach (Producto p in fabrica.StockProductosTerminados)
            {
                Console.WriteLine(p.Mostrar());
            }

            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();


            // 5 - Guardar datos de fábrica en archivos XML
            Console.WriteLine("\n-----------------------------------------------------------------------");
            Console.WriteLine("----------------Persistir atributos de fábrica en archivos XML---------");
            Console.WriteLine("-----------------------------------------------------------------------");


            try
            {
                serviceXmlFabrica.Path = $"{AppDomain.CurrentDomain.BaseDirectory}Destino\\";
                serviceXmlFabrica.SaveXmlFabrica(fabrica);
                Console.WriteLine("-----------------------------------------------------------------------");
                Console.WriteLine("----------------Datos guardados correctamente -------------------------");
                Console.WriteLine("-----------------------------------------------------------------------");
            }
            catch (SaveFactoryException e)
            {
                Console.WriteLine("-----------------------------------------------------------------------");
                Console.WriteLine("----------------Errores al guardar los datos --------------------------");
                Console.WriteLine("-----------------------------------------------------------------------");
            }
        }