/// <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"); } }