/
ImprimirFichaDePago.aspx.cs
88 lines (72 loc) · 2.89 KB
/
ImprimirFichaDePago.aspx.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DBEscolar;
using CrystalDecisions.CrystalReports.Engine;
using System.IO;
using System.Collections;
public partial class ImprimirFichaDePago : System.Web.UI.Page
{
public int AlumnoID
{
get
{
object AlumnoID = Session["AlumnoID"] ?? 0;
return (int)AlumnoID;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (this.AlumnoID == 0)
Response.Redirect("Default.aspx");
//TODO1: Que redireccione a insc o reinsc segun sea el caso
this.Imprimir(this.AlumnoID);
}
private void Imprimir(int AlumnoID)
{
DBEscolarDataContext db = new DBEscolarDataContext();
var Pago = (from P in db.vwRPTPagosEncabezados join D in db.vwRPTPagosDetalles on P.PagoID equals D.PagoID
where P.AlumnoID == AlumnoID && P.Ciclo == Utils.CicloActual && (P.Estatus != 0)
&& D.Clave == "A01"
select P).FirstOrDefault();
if (Pago == null)
{
this.lblMensaje.Text = "No se ha encontrado la ficha de pago.<br />Nota: Para poder generar la Ficha de Pago, debes de estar validado.";
return;
}
else if (Pago.Estatus == 3) {
Alumno Alumno = (from A in db.Alumnos
where A.AlumnoID == AlumnoID
select A).FirstOrDefault();
this.lblMensaje.Text = "Felicidades. Tú ficha ha sido pagada y ya te encuentras inscrito con matrícula: " + Alumno.Matricula;
return;
}
var Detalle = (from D in db.vwRPTPagosDetalles
where D.PagoID == Pago.PagoID
select D).ToList();
//Actualiza el estatus del pago a 2:Impreso
db.spEXEPagosCambiaEstatus(AlumnoID, Pago.PagoID, 2, Utils.CicloActual);
ArrayList col = new ArrayList();
col.Add(Pago);
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(Server.MapPath("Reportes/rptFichaDePago.rpt"));
//set dataset to the report viewer.
rptDoc.SetDataSource(col);
rptDoc.Subreports["Detalle"].SetDataSource(Detalle);
rptDoc.Subreports["Detalle2"].SetDataSource(Detalle);
MemoryStream stream = (MemoryStream)rptDoc.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
rptDoc.Close();
rptDoc.Dispose();
Response.Clear();
Response.ContentType = @"Application/pdf";
Response.AddHeader("Content-Disposition", "inline; filename=FichaDePago.pdf");
Response.AddHeader("content-length", stream.Length.ToString());
Response.BinaryWrite(stream.ToArray());
Response.Flush();
stream.Close();
stream.Dispose();
}
}