Exemple #1
0
        /// <summary>
        /// Método encargado actualizar todos los controles que muestran los insumos cargados.
        /// </summary>
        private void ActualizarListaInsumos()
        {
            int cantidadPegamento = Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Pegamento);
            int cantidadBarniz    = Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Barniz);
            int cantidadTornillos = Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Tornillo);
            int cantidadYute      = Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Yute);

            lblPegamento.Text = $"Stock Pegamento: {cantidadPegamento}";
            lblBarniz.Text    = $"Stock Barniz: {cantidadBarniz}";
            lblTornillos.Text = $"Stock Tornillos: {cantidadTornillos}";
            lblYute.Text      = $"Stock Yute: {cantidadYute}";

            if (Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Madera) > 0)
            {
                dgStockMaderas.Rows.Clear();
                dgStockMaderas.Columns.Clear();
                dgStockMaderas.Columns.Add("tipoMadera", "Material");
                dgStockMaderas.Columns.Add("formaMadera", "Forma");
                dgStockMaderas.Columns.Add("cantidad", "Cantidad");
                dgStockMaderas.Columns.Add("fechaIngreso", "Fecha");

                foreach (Insumo i in fabrica.StockInsumos)
                {
                    if (i is Madera)
                    {
                        dgStockMaderas.Rows.Add(((Madera)i).TipoMadera, ((Madera)i).Forma, i.Cantidad, i.FechaIngreso.Date.ToString("MM/dd/yyyy"));
                    }
                }
                dgStockMaderas.Visible      = true;
                lblListaVaciaMadera.Visible = false;
            }
            else
            {
                dgStockMaderas.Visible      = false;
                lblListaVaciaMadera.Visible = true;
            }

            if (Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Tela) > 0)
            {
                dgStockTelas.Rows.Clear();
                dgStockTelas.Columns.Clear();
                dgStockTelas.Columns.Add("tipoTela", "Material");
                dgStockTelas.Columns.Add("colorTela", "Color");
                dgStockTelas.Columns.Add("cantidad", "Cantidad");
                dgStockTelas.Columns.Add("fechaIngreso", "Fecha");

                foreach (Insumo i in fabrica.StockInsumos)
                {
                    if (i is Tela)
                    {
                        dgStockTelas.Rows.Add(((Tela)i).TipoTela, ((Tela)i).Color, i.Cantidad, i.FechaIngreso.Date.ToString("MM/dd/yyyy"));
                    }
                }
                dgStockTelas.Visible      = true;
                lblListaVaciaTela.Visible = false;
            }
            else
            {
                dgStockTelas.Visible      = false;
                lblListaVaciaTela.Visible = true;
            }
        }
        /// <summary>
        /// Método encargado de crear en un archivo PDF válido en el directorio proporcionado y extraer la información que obtiene cada atributo
        /// de la clase fábrica.
        /// Incluye conceptos de la clase 19 Archivos
        /// </summary>
        /// <param name="path">ruta que incluye el nombre del archivo pdf a crear</param>
        /// <param name="fabrica"></param>
        public void CrearReporte(string path, Fabrica fabrica)
        {
            try
            {
                FileStream fs  = new FileStream(path, FileMode.Create);
                Document   doc = new Document(PageSize.LETTER, 10, 10, 14, 14);
                PdfWriter  PW  = PdfWriter.GetInstance(doc, fs);



                doc.Open();
                doc.AddAuthor("Marcos Seghesio");
                doc.AddTitle("Reporte");

                Paragraph parrafoTitulo = new Paragraph();
                //Fuente
                Font standarFont = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 8, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);

                doc.Add(new Paragraph($"Reporte de Fábrica del {DateTime.Now}"));
                doc.Add(Chunk.NEWLINE);
                doc.Add(Chunk.NEWLINE);


                if (fabrica.LineaProduccion.Count > 0)
                {
                    doc.Add(new Paragraph("Informe linea de Producción"));
                    doc.Add(Chunk.NEWLINE);
                    PdfPTable tblLineaProduccion = crearTablaProductos(fabrica.LineaProduccion, standarFont, true);
                    doc.Add(tblLineaProduccion);
                }
                else
                {
                    doc.Add(new Paragraph("Informe linea de Producción: no productos en Linea de Producción"));
                }
                doc.Add(Chunk.NEWLINE);
                doc.Add(Chunk.NEWLINE);

                if (fabrica.StockProductosTerminados.Count > 0)
                {
                    doc.Add(new Paragraph("Informe stock de Productos terminados"));
                    doc.Add(Chunk.NEWLINE);
                    PdfPTable tblLineaProduccion = crearTablaProductos(fabrica.StockProductosTerminados, standarFont, false);
                    doc.Add(tblLineaProduccion);
                }
                else
                {
                    doc.Add(new Paragraph("Informe stock de Productos terminados: no productos en inventario"));
                }
                doc.Add(Chunk.NEWLINE);
                doc.Add(Chunk.NEWLINE);

                if (Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Madera) > 0)
                {
                    parrafoTitulo           = new Paragraph("Informe maderas");
                    parrafoTitulo.Alignment = Element.ALIGN_CENTER;
                    doc.Add(parrafoTitulo);
                    doc.Add(Chunk.NEWLINE);
                    PdfPTable tblMadera = crearTablaInsumos(fabrica.StockInsumos, ETipoInforme.Madera, standarFont);
                    doc.Add(tblMadera);
                }
                else
                {
                    doc.Add(new Paragraph("Informe maderas: no hay maderas cargadas"));
                }
                doc.Add(Chunk.NEWLINE);
                doc.Add(Chunk.NEWLINE);

                if (Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Tela) > 0)
                {
                    parrafoTitulo           = new Paragraph("Informe Telas");
                    parrafoTitulo.Alignment = Element.ALIGN_CENTER;
                    doc.Add(parrafoTitulo);
                    doc.Add(Chunk.NEWLINE);
                    PdfPTable tblTela = crearTablaInsumos(fabrica.StockInsumos, ETipoInforme.Tela, standarFont);
                    doc.Add(tblTela);
                }
                else
                {
                    doc.Add(new Paragraph("Informe Telas: no hay telas cargadas"));
                }
                doc.Add(Chunk.NEWLINE);
                doc.Add(Chunk.NEWLINE);

                doc.Add(new Paragraph("Otros Insumos"));
                doc.Add(Chunk.NEWLINE);
                doc.Add(new Paragraph($"Cantidad de Yute disponible: {Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Yute)}"));
                doc.Add(new Paragraph($"Cantidad de Tornillos disponibles: {Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Tornillo)}"));
                doc.Add(new Paragraph($"Cantidad de Barniz disponibles: {Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Barniz)}"));
                doc.Add(new Paragraph($"Cantidad de Pegamento disponibles: {Insumo.CountInsumoType(fabrica.StockInsumos, ETipoInsumo.Pegamento)}"));

                doc.Close();
                PW.Close();
            }
            catch (IOException e)
            {
                throw new SavePdfException("Error al crear el reporte");
            }
        }