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(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 RptParametro = new List(); 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"); } }