202 lines
6.7 KiB
C#
202 lines
6.7 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using Extensiones;
|
|
using Microsoft.Reporting.WebForms;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
public partial class GPS_RepParardas : ClsPaginas
|
|
{
|
|
#region "P R O P I E D A D E S"
|
|
private DataTable DtParadas
|
|
{
|
|
get
|
|
{
|
|
return ((DataTable)(ViewState["DtParadas"]));
|
|
}
|
|
set
|
|
{
|
|
ViewState["DtParadas"] = value;
|
|
}
|
|
}
|
|
#endregion
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
CargaFecha();
|
|
CargaGrupos();
|
|
}
|
|
}
|
|
private void CargaGrupos()
|
|
{
|
|
ClsGPS ObjGPS = new ClsGPS();
|
|
if (ObjGPS.GruposGet(-1,UsuarioActual.CveCliente))
|
|
{
|
|
DdlGrupo.DataSource = ObjGPS.DtResultados;
|
|
}
|
|
ObjGPS.Dispose();
|
|
DdlGrupo.DataBind();
|
|
UPFiltros.Update();
|
|
}
|
|
private void CargaFecha()
|
|
{
|
|
txtFechaI.Text = DateTime.Now.ToString("dd/MM/yyyy") + " 00:00";
|
|
txtFechaF.Text = DateTime.Now.ToString("dd/MM/yyyy") + " 23:59";
|
|
}
|
|
|
|
protected void BtnConsultar_Click(object sender, EventArgs e)
|
|
{
|
|
int CveGrupo = DdlGrupo.SelectedValue.ToEntero();
|
|
if (CveGrupo > -2)
|
|
{
|
|
DateTime FechaI = txtFechaI.Text.ToDateTime();
|
|
DateTime FechaF = txtFechaF.Text.ToDateTime();
|
|
|
|
ClsGPS ObjGPS = new ClsGPS();
|
|
if (ObjGPS.GetRepParadas(CveGrupo, FechaI, FechaF, UsuarioActual.CveCliente))
|
|
{
|
|
DtParadas = ObjGPS.DtResultados.Copy();
|
|
}
|
|
ObjGPS.Dispose();
|
|
if (DtParadas != null)
|
|
{
|
|
CargaDashboard(DtParadas);
|
|
CargaGrafica(DtParadas);
|
|
GvDatos.DataSource = DtParadas;
|
|
GvDatos.DataBind();
|
|
}
|
|
UpDash.Update();
|
|
UpDatos.Update();
|
|
UpModalGrafica.Update();
|
|
}
|
|
else
|
|
{
|
|
Alert("Debe seleccionar un grupo", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
}
|
|
}
|
|
private void CargaDashboard(DataTable Dt)
|
|
{
|
|
try
|
|
{
|
|
if (Dt != null)
|
|
{
|
|
DataRow Dr = Dt.FiltroPrimero("TipoColumna=1");
|
|
if (Dr != null)
|
|
{
|
|
var Total = Dr["Importe"].ToString().FormatoNumero();
|
|
var NumEventos = Dr["TotalEventos"].ToString();
|
|
var MejorConductor = Dt.FiltroPrimeroValor("Conductor", "CveConductor IS NOT NULL AND TotalEventos IS NOT NULL", "TotalEventos ASC");
|
|
|
|
LtlGrupo.Text = DdlGrupo.SelectedItem.Text;
|
|
LtlTotal.Text = Total;
|
|
LtlNumEventos.Text = NumEventos;
|
|
LtlMejorC.Text = MejorConductor;
|
|
|
|
DivIndicadores.Visible = true;
|
|
|
|
LinkPDF.Visible = true;
|
|
LnkExportar.Visible = true;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ModExtensiones.OnError(this, "Ocurrió un error al cargar los indicadores", ex);
|
|
|
|
}
|
|
|
|
}
|
|
private void CargaGrafica(DataTable Dt)
|
|
{
|
|
try
|
|
{
|
|
var DtTop = Dt.FiltraParametros("CveConductor IS NOT NULL AND TotalEventos IS NOT NULL", "TotalEventos ASC").AsEnumerable().Take<DataRow>(10);
|
|
decimal Total = DtTop.Sum(dr => dr["Importe"].ToString().ToDecimal());
|
|
decimal PorcentajeTotal = 100m;
|
|
|
|
var JsonArray = new JArray()
|
|
{
|
|
from d in DtTop
|
|
select new JObject()
|
|
{
|
|
new JProperty("name",d["NoEconomico"].ToString()),
|
|
new JProperty("Importe",d["Importe"].ToString().ToDecimal()),
|
|
new JProperty("y", (d["Importe"].ToString().ToDecimal()/Total) * PorcentajeTotal)
|
|
}
|
|
};
|
|
|
|
HpGrafica.Visible = true;
|
|
HdnJsonChart.Value = JsonArray.ToString();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
protected void GvDatos_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
if (e.Row.RowType == DataControlRowType.DataRow)
|
|
{
|
|
switch (e.Row.DBCampo("TipoColumna"))
|
|
{
|
|
case "1":
|
|
e.Row.CssClass = "Totales";
|
|
break;
|
|
case "2":
|
|
e.Row.CssClass = "SubTotales";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
private void ImprimirPDFParadas(string TipoDoc = "PDF")
|
|
{
|
|
if (DtParadas != null)
|
|
{
|
|
byte[] retorno;
|
|
string RutaReporte = "Empresas/Grales/ReportesProgramados/RPTParadas.rdlc";
|
|
string NombreReporte = "ReporteRutas";
|
|
try
|
|
{
|
|
var TotalGeneral = LtlTotal.Text;
|
|
var Grupo = LtlGrupo.Text;
|
|
var NumEventos = LtlNumEventos.Text;
|
|
var MejorC = LtlMejorC.Text;
|
|
List<ReportParameter> RptParametro = new List<ReportParameter>();
|
|
RptParametro.Add(new ReportParameter("FechaInicio", txtFechaI.Text.ToString()));
|
|
RptParametro.Add(new ReportParameter("FechaFin", txtFechaF.Text.ToString()));
|
|
RptParametro.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Usuario));
|
|
RptParametro.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToShortDateString()));
|
|
RptParametro.Add(new ReportParameter("Grupo", Grupo));
|
|
RptParametro.Add(new ReportParameter("TotalGeneral", TotalGeneral));
|
|
RptParametro.Add(new ReportParameter("NumEventos", NumEventos));
|
|
RptParametro.Add(new ReportParameter("MejorConductor", MejorC));
|
|
retorno = StreamPDF(RutaReporte, DtParadas, RptParametro, string.Format("{0}{1}", NombreReporte, DateTime.Now.ToShortDateString()), TipoDoc, "DsOC");
|
|
ImprimirbytesPDF(retorno, string.Format("{0}{1}", NombreReporte, DateTime.Now.ToShortDateString()));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ModExtensiones.GuardaLog(string.Format("Ocurrio un error al generar el reporte RLDC {0}", ex));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
protected void LinkPDF_Click(object sender, EventArgs e)
|
|
{
|
|
ImprimirPDFParadas();
|
|
}
|
|
|
|
protected void LnkExportar_Click(object sender, EventArgs e)
|
|
{
|
|
//var table = new System.Web.UI.HtmlControls.HtmlTable();
|
|
// table.InnerHtml = DivIndicadores.InnerHtml;
|
|
GvDatos.ExportToExcelx("ReporteRutas");
|
|
}
|
|
} |