示例#1
0
        public int guardarInformeMantenimiento([FromBody] InformeMatenimientoAF oInformeMantenimientoAF)
        {
            int respuesta = 0;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext())
                {
                    InformeMantenimiento oInformeMantenimiento = new InformeMantenimiento();
                    oInformeMantenimiento.IdInformeMantenimiento = oInformeMantenimientoAF.idinformematenimiento;
                    oInformeMantenimiento.IdMantenimiento        = oInformeMantenimientoAF.idmantenimiento;
                    oInformeMantenimiento.IdTecnico       = oInformeMantenimientoAF.idtecnico;
                    oInformeMantenimiento.Fecha           = oInformeMantenimientoAF.fechainforme;
                    oInformeMantenimiento.Descripcion     = oInformeMantenimientoAF.descripcion;
                    oInformeMantenimiento.CostoMateriales = oInformeMantenimientoAF.costomateriales;
                    oInformeMantenimiento.CostoMo         = oInformeMantenimientoAF.costomo;
                    oInformeMantenimiento.CostoTotal      = oInformeMantenimientoAF.costomateriales + oInformeMantenimientoAF.costomo;
                    bd.InformeMantenimiento.Add(oInformeMantenimiento);
                    oInformeMantenimiento.Estado = 1;

                    bd.SaveChanges();
                    respuesta = 1;
                }
            }
            catch (Exception ex)
            {
                respuesta = 0;
            }
            return(respuesta);
        }
示例#2
0
        public InformeMatenimientoAF datosHistorial(int idbien)
        {
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                InformeMatenimientoAF odatos  = new InformeMatenimientoAF();
                ActivoFijo            oActivo = bd.ActivoFijo.Where(p => p.IdBien == idbien).First();

                odatos.descripcion = oActivo.Desripcion;
                odatos.codigo      = oActivo.CorrelativoBien;
                odatos.idBien      = oActivo.IdBien;
                Empleado      oempleado = bd.Empleado.Where(p => p.IdEmpleado == oActivo.IdResponsable).First();
                AreaDeNegocio oArea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oempleado.IdAreaDeNegocio).First();
                odatos.encargado     = oempleado.Nombres + " " + oempleado.Apellidos;
                odatos.areadenegocio = oArea.Nombre;
                return(odatos);
            }
        }
        public async Task <IActionResult> historialmantenimientopdf(int idbien)
        {
            Document doc = new Document(PageSize.Letter);

            doc.SetMargins(40f, 40f, 40f, 40f);
            MemoryStream ms     = new MemoryStream();
            PdfWriter    writer = PdfWriter.GetInstance(doc, ms);

            //Instanciamos la clase para el paginado y la fecha de impresión
            var pe = new PageEventHelper();

            writer.PageEvent = pe;

            doc.AddAuthor("Asgard");
            doc.AddTitle("Reporte historial mantenimiento");
            doc.Open();

            //Inicia cuerpo del reporte

            //Estilo y fuente personalizada
            BaseFont fuente = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo = new iTextSharp.text.Font(fuente, 12f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente2 = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo2 = new iTextSharp.text.Font(fuente2, 11f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente3  = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo3 = new iTextSharp.text.Font(fuente3, 15f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente4  = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo4 = new iTextSharp.text.Font(fuente4, 11f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));

            //Para las celdas
            BaseFont fuente5 = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, true);

            iTextSharp.text.Font parrafo5 = new iTextSharp.text.Font(fuente5, 10f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));

            //Fuente para tarjeta
            BaseFont fuente6 = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo6 = new iTextSharp.text.Font(fuente2, 9f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente7  = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo7 = new iTextSharp.text.Font(fuente, 9f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));

            BaseFont fuente8 = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo8 = new iTextSharp.text.Font(fuente2, 9f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));


            //Encabezado
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                CooperativaAF oCooperativaAF = new CooperativaAF();
                Cooperativa   oCooperativa   = bd.Cooperativa.Where(p => p.Dhabilitado == 1).First();
                oCooperativaAF.idcooperativa = oCooperativa.IdCooperativa;
                oCooperativaAF.nombre        = oCooperativa.Nombre;
                oCooperativaAF.descripcion   = oCooperativa.Descripcion;

                //Se agrega el encabezado
                var tbl1 = new PdfPTable(new float[] { 11f, 89f })
                {
                    WidthPercentage = 100f
                };
                tbl1.AddCell(new PdfPCell(new Phrase(" ", parrafo2))
                {
                    Border = 0, Rowspan = 2
                });
                tbl1.AddCell(new PdfPCell(new Phrase(oCooperativa.Descripcion.ToUpper(), parrafo2))
                {
                    Border = 0, HorizontalAlignment = 1
                });
                tbl1.AddCell(new PdfPCell(new Phrase(oCooperativa.Nombre.ToUpper(), parrafo3))
                {
                    Border = 0, HorizontalAlignment = 1
                });
                doc.Add(tbl1);
                doc.Add(new Phrase("\n"));
            }
            doc.Add(new Phrase("\n"));
            //Línea separadora
            Chunk linea = new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(1f, 100f, BaseColor.Black, Element.ALIGN_CENTER, 1f));

            doc.Add(linea);
            doc.Add(new Paragraph("REPORTE HISTORIAL DE MANTENIMIENTO ", parrafo)
            {
                Alignment = Element.ALIGN_CENTER
            });

            //Espacio en blanco
            doc.Add(Chunk.Newline);

            //Extraemos de la base y llenamos las celdas
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                InformeMatenimientoAF odatos  = new InformeMatenimientoAF();
                ActivoFijo            oActivo = bd.ActivoFijo.Where(p => p.IdBien == idbien).First();

                odatos.descripcion = oActivo.Desripcion;
                odatos.codigo      = oActivo.CorrelativoBien;
                Empleado      oempleado = bd.Empleado.Where(p => p.IdEmpleado == oActivo.IdResponsable).First();
                AreaDeNegocio oArea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oempleado.IdAreaDeNegocio).First();
                odatos.encargado     = oempleado.Nombres + " " + oempleado.Apellidos;
                odatos.areadenegocio = oArea.Nombre;
                // return odatos;


                //Cuerpo de la tarjeta
                var tbl1 = new PdfPTable(new float[] { 4f, 7f, 5f, 7f })
                {
                    WidthPercentage = 100f
                };
                tbl1.AddCell(new PdfPCell(new Phrase("Correlativo: ", parrafo6))
                {
                    Border = 0, Rowspan = 2
                });
                tbl1.AddCell(new PdfPCell(new Phrase(odatos.codigo, parrafo7))
                {
                    Border = 0
                });
                tbl1.AddCell(new PdfPCell(new Phrase("Descripción de activo: ", parrafo6))
                {
                    Border = 0, Rowspan = 2
                });
                tbl1.AddCell(new PdfPCell(new Phrase(odatos.descripcion, parrafo7))
                {
                    Border = 0
                });


                var tbl2 = new PdfPTable(new float[] { 4f, 7f, 5f, 7f })
                {
                    WidthPercentage = 100f
                };
                tbl2.AddCell(new PdfPCell(new Phrase("Encargado actual: ", parrafo6))
                {
                    Border = 0, Rowspan = 2
                });
                tbl2.AddCell(new PdfPCell(new Phrase(odatos.encargado, parrafo7))
                {
                    Border = 0
                });
                tbl2.AddCell(new PdfPCell(new Phrase("Área de negocio actual: ", parrafo6))
                {
                    Border = 0, Rowspan = 2
                });
                tbl2.AddCell(new PdfPCell(new Phrase(odatos.areadenegocio, parrafo7))
                {
                    Border = 0
                });



                doc.Add(tbl1);
                doc.Add(Chunk.Newline);
                doc.Add(tbl2);
                doc.Add(Chunk.Newline);


                //Tabla de transacciones
                // doc.Add(new Paragraph("TABLA HISTORIAL DE TRASPASOS", parrafo2) { Alignment = Element.ALIGN_CENTER });


                //Agregamos una tabla
                //Agregamos una tabla
                var tbl = new PdfPTable(new float[] { 25f, 30f, 25f, 30f, 20f, 40f })
                {
                    WidthPercentage = 100f
                };
                var c1 = new PdfPCell(new Phrase("FECHA", parrafo2));
                var c2 = new PdfPCell(new Phrase("TÉCNICO", parrafo2));
                var c3 = new PdfPCell(new Phrase("MANO DE OBRA", parrafo2));
                var c4 = new PdfPCell(new Phrase("MATERIALES", parrafo2));
                var c5 = new PdfPCell(new Phrase("COSTO TOTAL", parrafo2));
                var c6 = new PdfPCell(new Phrase("DESCRIPCIÓN", parrafo2));

                //Agregamos a la tabla las celdas
                tbl.AddCell(c1);
                tbl.AddCell(c2);
                tbl.AddCell(c3);
                tbl.AddCell(c4);
                tbl.AddCell(c5);
                tbl.AddCell(c6);


                IEnumerable <InformeMatenimientoAF> lista = (from tecnico in bd.Tecnicos
                                                             join informemante in bd.InformeMantenimiento
                                                             on tecnico.IdTecnico equals informemante.IdTecnico
                                                             join bienmante in bd.BienMantenimiento
                                                             on informemante.IdMantenimiento equals bienmante.IdMantenimiento
                                                             join bienes in bd.ActivoFijo
                                                             on bienmante.IdBien equals bienes.IdBien
                                                             where bienes.IdBien == idbien //&& informemante.Estado == 0 || informemante.Estado == 2 || informemante.Estado == 1
                                                             orderby bienes.CorrelativoBien

                                                             select new InformeMatenimientoAF
                {
                    idinformematenimiento = informemante.IdInformeMantenimiento,
                    idBien = bienes.IdBien,
                    idmantenimiento = (int)informemante.IdMantenimiento,
                    fechacadena = informemante.Fecha == null ? " " : ((DateTime)informemante.Fecha).ToString("dd-MM-yyyy"),
                    nombretecnico = tecnico.Nombre,
                    codigo = bienes.CorrelativoBien,
                    descripcion = informemante.Descripcion,
                    costomateriales = (double)informemante.CostoMateriales,
                    costomo = (double)informemante.CostoMo,
                    costototal = (double)informemante.CostoTotal,
                    bienes = bienes.Desripcion
                }).ToList();

                foreach (var historialmante in lista)
                {
                    c1.Phrase = new Phrase(historialmante.fechacadena, parrafo5);
                    c2.Phrase = new Phrase(historialmante.nombretecnico, parrafo5);
                    c3.Phrase = new Phrase("$" + historialmante.costomo.ToString(), parrafo5);
                    c4.Phrase = new Phrase("$" + historialmante.costomateriales.ToString(), parrafo5);
                    c5.Phrase = new Phrase("$" + historialmante.costototal.ToString(), parrafo5);
                    c6.Phrase = new Phrase(historialmante.descripcion, parrafo5);



                    //Agregamos a la tabla
                    tbl.AddCell(c1);
                    tbl.AddCell(c2);
                    tbl.AddCell(c3);
                    tbl.AddCell(c4);
                    tbl.AddCell(c5);
                    tbl.AddCell(c6);
                }
                doc.Add(tbl);
                //INICIO DE ADICIÓN DE LOGO
                CooperativaAF oCooperativaAF = new CooperativaAF();

                Cooperativa oCooperativa = bd.Cooperativa.Where(p => p.Dhabilitado == 1).First();
                oCooperativaAF.idcooperativa = oCooperativa.IdCooperativa;


                try
                {
                    iTextSharp.text.Image logo = null;
                    logo             = iTextSharp.text.Image.GetInstance(oCooperativa.Logo.ToString());
                    logo.Alignment   = iTextSharp.text.Image.ALIGN_LEFT;
                    logo.Border      = iTextSharp.text.Rectangle.NO_BORDER;
                    logo.BorderColor = iTextSharp.text.BaseColor.White;
                    logo.ScaleToFit(170f, 100f);

                    float ancho      = logo.Width;
                    float alto       = logo.Height;
                    float proporcion = alto / ancho;

                    logo.ScaleAbsoluteWidth(80);
                    logo.ScaleAbsoluteHeight(80 * proporcion);

                    logo.SetAbsolutePosition(40f, 695f);

                    doc.Add(logo);
                }
                catch (DocumentException dex)
                {
                    //log exception here
                }

                //FIN DE ADICIÓN DE LOGO
            }
            writer.Close();
            doc.Close();
            ms.Seek(0, SeekOrigin.Begin);
            return(File(ms, "application/pdf"));
        }