R
I solved it by adding the amount of quotas to the query: public List<Certificados> cargarDatosPDF(string sol)
{
List<Certificados> salida = new List<Certificados>();
//string con = "cadena";
using (SqlConnection conexion = new SqlConnection(con))
{
conexion.Open();
string sql = "SELECT apellido " + " + ', ' + " + " nombre AS Persona," +
" domicilio, numero, dpto, piso, localidad, barrio, " +
"provincia, dninumero," +
"solicitud, DATENAME(M,vencimiento) " + " + '/ ' + " + "CAST(DATEPART(yyyy,vencimiento) AS VARCHAR) AS Emision," +
"codigo, monto, " +
"descplanactual, valnom," +
"telefono, barras, " +
"ancantcuoplan " +
" FROM V_CuetaWeb " +
" WHERE solicitud = @sol " +
" AND DATEPART(mm, vencimiento) = DATEPART(mm, GETDATE()) ";
SqlCommand cmd = new SqlCommand(sql, conexion);
cmd.Parameters.AddWithValue("@sol", sol);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
try
{
string person = dr["persona"]?.ToString();
string domicilio = dr["domicilio"]?.ToString();
string numero = dr["numero"]?.ToString();
string dpto = dr["dpto"]?.ToString();
string piso = dr["piso"]?.ToString();
string localidad = dr["localidad"]?.ToString();
string barrio = dr["barrio"]?.ToString();
string provincia = dr["provincia"]?.ToString();
double dni = Convert.ToDouble(dr["dninumero"]?.ToString());
string soli = dr["solicitud"]?.ToString();
DateTime em = Convert.ToDateTime(dr["Emision"]?.ToString());
string codigo = dr["codigo"]?.ToString();
decimal? monto = Convert.ToDecimal(dr["monto"]?.ToString());
string desc = dr["descplanactual"]?.ToString();
double? valnom = Convert.ToDouble(dr["valnom"]?.ToString());
string tel = dr["telefono"]?.ToString();
string barras = dr["barras"]?.ToString();
int cantidadCuotas = Convert.ToInt32(dr["ancantcuoplan"]?.ToString());
Certificados p = new Certificados(person, domicilio, numero, dpto, piso, localidad, barrio, provincia, dni, soli, em, codigo, monto,
desc, valnom, tel, barras, cantidadCuotas);
salida.Add(p);
}
catch (Exception ex)
{
throw ex;
}
}
conexion.Close();
return salida;
}
}
And from the driver, I do the query: public ActionResult Pdf(string solicitud)
{
try
{
ConexionSQL c = new ConexionSQL();
// usar inlinne para ver online - attachment para descarga automática
Response.AppendHeader("Content-Disposition", "inline; filename=\"" + solicitud + ".pdf\"");
var suscriptor = c.cargarDatosPDF(solicitud);
var caracteres = Convert.ToString(solicitud).Length;
if (suscriptor[0].cantCuo == 48)
{
var reporte = new PartialViewAsPdf("Pdf48", c.cargarDatosPDF(solicitud));
return reporte;
}
else if (suscriptor[0].cantCuo == 60)
{
var reporte = new PartialViewAsPdf("Pdf60", c.cargarDatosPDF(solicitud));
return reporte;
}
else if (suscriptor[0].cantCuo == 90)
{
var reporte = new PartialViewAsPdf("Pdf90", c.cargarDatosPDF(solicitud));
return reporte;
}
else if (suscriptor[0].cantCuo == 120)
{
var reporte = new PartialViewAsPdf("Pdf120", c.cargarDatosPDF(solicitud));
return reporte;
}
else if (suscriptor[0].cantCuo == 180)
{
var reporte = new PartialViewAsPdf("Pdf180", c.cargarDatosPDF(solicitud));
return reporte;
}
else if (suscriptor[0].cantCuo == 300)
{
var reporte = new PartialViewAsPdf("Pdf300", c.cargarDatosPDF(solicitud));
return reporte;
}
else if (suscriptor[0].cantCuo == 330)
{
var reporte = new PartialViewAsPdf("Pdf330", c.cargarDatosPDF(solicitud));
return reporte;
}
else
{
ViewData["Mensaje"] = "Lo sentimos, no existe un plan de cuotas para esta solicitud.";
return View("Index");
}
//if (caracteres <= 4 || caracteres > 7)
//{
// ViewData["Mensaje"] = "La cantidad de caracteres no puede ser menor a 5 (cinco) ni mayor a 7 (siete).";
// return View("Index");
//}
//if (suscriptor.Count <= 0)
//{
// ViewData["Mensaje"] = "Lo sentimos, la solicitud no existe.";
// return View("Index");
//}
//if ((caracteres >= 5 && caracteres <= 7) && suscriptor.Count > 0)
//{
// var reporte = new PartialViewAsPdf("Pdf330", c.cargarDatosPDF(solicitud));
// return reporte;
//}
//else
//{
// return View("Index");
//}
}
catch (Exception ex)
{
return Content(ex.Message);
}
}