예제 #1
0
        protected void PDFRPE(object sender, EventArgs e)
        {
            if (((FechaFinale.Value != "") && (FechaInicios.Value != "")))
            {
                Buscadores      bus           = new Buscadores();
                DateTime        oDateinicio   = Convert.ToDateTime(FechaInicios.Value);
                DateTime        oDatefin      = Convert.ToDateTime(FechaFinale.Value);
                int             tipodempleado = int.Parse(DropTipodeEmpleados.SelectedValue);
                List <empleado> Lempleados    = bus.Lempleado();
                Lempleados = Lempleados.FindAll(x => (x.id_tipo ?? default(int)) == tipodempleado);
                if (Lempleados.Count != 0)
                {
                    var       doc    = new iTextSharp.text.Document(PageSize.A4);
                    string    path   = Server.MapPath("~");
                    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(path + "/RE.pdf", FileMode.Create));
                    doc.Open();
                    //Cabecera
                    BaseFont             bfntHead   = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
                    iTextSharp.text.Font fntHead    = new iTextSharp.text.Font(bfntHead, 16, 1, iTextSharp.text.BaseColor.GREEN.Darker());
                    Paragraph            prgHeading = new Paragraph();
                    prgHeading.Alignment = 1;
                    prgHeading.Add(new Chunk("Taller de Reparaciones".ToUpper(), fntHead));
                    doc.Add(prgHeading);
                    doc.Add(Chunk.NEWLINE);
                    //Generado By
                    Paragraph            prgGeneratedBY = new Paragraph();
                    BaseFont             btnAuthor      = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
                    iTextSharp.text.Font fntAuthor      = new iTextSharp.text.Font(btnAuthor, 12, 2, iTextSharp.text.BaseColor.BLACK);
                    prgGeneratedBY.Alignment = Element.ALIGN_RIGHT;
                    prgGeneratedBY.Add(new Chunk("Generado por: " + LogEmpleado.nombreyapellido, fntAuthor));  //Agregar LOG Empleado
                    prgGeneratedBY.Add(new Chunk("\nFecha : " + DateTime.Now.ToShortDateString(), fntAuthor));
                    doc.Add(prgGeneratedBY);
                    Paragraph p = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, iTextSharp.text.BaseColor.BLACK, Element.ALIGN_LEFT, 1)));
                    doc.Add(p);
                    //Espacio
                    doc.Add(new Chunk("\n", fntHead));
                    //Datos
                    Paragraph            Datos     = new Paragraph();
                    BaseFont             bfntDatos = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
                    iTextSharp.text.Font fntDatos  = new iTextSharp.text.Font(bfntDatos, 16, 0, iTextSharp.text.BaseColor.BLACK);
                    Datos.Alignment = Element.ALIGN_CENTER;
                    Datos.Add(new Chunk("\nEmpleado tipo: " + DropTipodeEmpleados.SelectedItem.Text, fntDatos));
                    doc.Add(Datos);
                    //Espacio
                    doc.Add(new Chunk("\n", fntHead));
                    int controlprecio;
                    foreach (empleado oempleado in Lempleados)
                    {
                        controlprecio = 0;
                        DataTable dt = new DataTable();
                        dt.Columns.AddRange(new DataColumn[4] {
                            new DataColumn("N°Orden"), new DataColumn("Vehiculo"), new DataColumn("Fecha"), new DataColumn("PrecioTotal")
                        });                                                                                                                                                      //nombre de las columnas
                        List <ordenempleado> Lordenempleado = bus.buscarListOrdenEstadoporempleado(oempleado.id_empleado);
                        List <orden>         Lorden         = bus.buscarordexempleado(Lordenempleado);
                        foreach (orden OrdenActual in Lorden)
                        {
                            int         id          = int.Parse(OrdenActual.id_vehiculo.ToString());
                            vehiculo    ovehiculo   = bus.buscarvehiculoid(id);
                            int         preciototal = 0;
                            ordenestado oestado     = bus.buscarvestadoorden(OrdenActual.id_orden);
                            if ((oestado.fecha_entregado >= oDateinicio) && (oestado.fecha_entregado <= oDatefin))
                            {
                                List <ordenservicio> Lidservidcios = new List <ordenservicio>();
                                Lidservidcios = bus.buscarlistaid(OrdenActual.id_orden);
                                List <servicio> Lservicio = bus.ObtenerServicios(Lidservidcios);
                                foreach (ordenservicio ordenservi in Lidservidcios)
                                {
                                    servicio oservicio = Lservicio.Find(x => x.id_servicios == ordenservi.id_servicio);
                                    int      cantidad  = ordenservi.cantidad ?? default(int);
                                    string   total     = (double.Parse(oservicio.precio) * Convert.ToDouble(cantidad)).ToString();
                                    preciototal = preciototal + int.Parse(total);
                                }
                                string   fecha = oestado.fecha_entregado.ToString();
                                string[] fechasinhora;
                                fechasinhora = fecha.Split(' ');


                                dt.Rows.Add(OrdenActual.id_orden, ovehiculo.patente, fechasinhora[0], preciototal);

                                controlprecio = preciototal;
                            }
                        }
                        //aqui
                        if (dt.Rows.Count != 0)
                        {
                            doc.Add(p);
                            Paragraph Dato = new Paragraph();
                            Dato.Alignment = Element.ALIGN_LEFT;
                            Dato.Add(new Chunk("\nNombre y Apellido: " + oempleado.nombreyapellido + "   Correo: " + oempleado.correo + "  Direccion:  " + oempleado.direccion + "\nDireccion:  " + oempleado.telefono, fntDatos));
                            doc.Add(Dato);
                            //Espacio
                            doc.Add(new Chunk("\n", fntHead));
                            //Tabla
                            PdfPTable table = new PdfPTable(dt.Columns.Count);
                            for (int i = 0; i < dt.Columns.Count; i++)
                            {
                                string   cellText = Server.HtmlDecode(dt.Columns[i].ColumnName);
                                PdfPCell cell     = new PdfPCell();
                                cell.Phrase              = new Phrase(cellText, new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 10, 1, new BaseColor(System.Drawing.ColorTranslator.FromHtml("#000000"))));
                                cell.BackgroundColor     = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#C8C8C8"));
                                cell.HorizontalAlignment = Element.ALIGN_CENTER;
                                cell.PaddingBottom       = 5;

                                table.AddCell(cell);
                            }
                            for (int i = 0; i < dt.Rows.Count; i++)
                            {
                                for (int j = 0; j < dt.Columns.Count; j++)
                                {
                                    table.AddCell(dt.Rows[i][j].ToString());
                                }
                            }
                            table.HorizontalAlignment = Element.ALIGN_CENTER;

                            doc.Add(table);


                            //Espacio
                            doc.Add(new Chunk("\n", fntHead));
                        }
                    }
                    doc.Close();
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenWindow", "window.open('RE.pdf','_newtab');", true);
                }
            }
        }