public ActionResult Details(long?id, int page = 1)
        {
            OrdenesPagoCabDetVM opvm = new OrdenesPagoCabDetVM();

            opvm            = _repo.GetOrdenPagoCab(id);
            opvm.pagingInfo = new PagingInfo
            {
                CurrentPage  = page,
                ItemsPerPage = _pageSize,
                TotalItems   = opvm.list.Count()
            };
            return(View(opvm));
        }
        public void ExportPDF([Bind(Include = "id")] long id)
        {
            OrdenesPagoCabDetVM OP       = _repo.GetOrdenPagoCab(id);
            Document            document = new Document();

            document.Open();
            Font fontTitle   = FontFactory.GetFont(FontFactory.COURIER_BOLD, 25);
            Font font9       = FontFactory.GetFont(FontFactory.TIMES, 9);
            Font tituloTabla = FontFactory.GetFont(FontFactory.TIMES_BOLD, 9);

            //Cabecera
            Paragraph title = new Paragraph(20, "Orden de Pago", fontTitle);

            title.Alignment = Element.ALIGN_CENTER;
            document.Add(title);
            document.Add(new Paragraph(23, "Nro de Orden: " + OP.id, font9));
            document.Add(new Paragraph(24, "Fecha: " + OP.Fecha.ToShortDateString(), font9));
            document.Add(new Paragraph(25, "Profesional: " + OP.Profesional, font9));
            document.Add(new Paragraph(26, "Importe Total: " + OP.Importe, font9));
            document.Add(new Chunk("\n"));

            //Detalle
            DataTable dt = CreateDetalleDataTable();

            foreach (var item in OP.list)
            {
                DataRow row = dt.NewRow();
                row["Factura"]       = item.factura_proveedor_id;
                row["Paga Total"]    = item.PagaTotal;
                row["Forma Pago"]    = item.FormaPago;
                row["Banco"]         = item.Banco;
                row["Nro Cheque"]    = item.NroCheque;
                row["Nro Cta Cte"]   = item.NroCtaCte;
                row["Observaciones"] = item.Observaciones;
                row["Importe"]       = item.Importe;
                dt.Rows.Add(row);
            }
            PdfPTable table = new PdfPTable(dt.Columns.Count);

            float[] widths = new float[dt.Columns.Count];
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                widths[i] = 4f;
            }

            table.SetWidths(widths);
            table.WidthPercentage     = 100;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            foreach (DataColumn c in dt.Columns)
            {
                PdfPCell  cell = new PdfPCell();
                Paragraph p    = new Paragraph(c.ColumnName, tituloTabla);
                p.Alignment = Element.ALIGN_CENTER;
                cell.AddElement(p);
                table.AddCell(cell);
            }
            foreach (DataRow r in dt.Rows)
            {
                if (dt.Rows.Count > 0)
                {
                    for (int h = 0; h < dt.Columns.Count; h++)
                    {
                        PdfPCell  cell = new PdfPCell();
                        Paragraph p    = new Paragraph(r[h].ToString(), font9);
                        p.Alignment = Element.ALIGN_CENTER;
                        cell.AddElement(p);
                        table.AddCell(cell);
                    }
                }
            }
            document.Add(table);
            document.Close();
            Response.ContentType = "application/pdf";
            Response.AddHeader("content-disposition", "attachment;filename=Orden de Pago - Nro " + OP.id + ".pdf");
            HttpContext.Response.Write(document);
            Response.Flush();
            Response.End();
        }