Files
SIG/GPS/RepPasajero.aspx.cs
JORGE LUIS CAUDILLO ESPARZA c35cf91883 Commit inicial Ventas Productivo
2019-08-14 16:40:54 -07:00

1061 lines
39 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Newtonsoft;
using Newtonsoft.Json.Linq;
using Extensiones;
using System.Text.RegularExpressions;
//using Microsoft.Office.Interop.Excel;
//using Excel = Microsoft.Office.Interop.Excel;
//using Microsoft.Office.Core;
using System.IO;
using GemBox.Spreadsheet;
public partial class GPS_RepPasajero : ClsPaginas
{
#region "P R O P I E D A D E S"
private DataTable DtVueltas
{
get
{
return ((DataTable)(ViewState["DtVueltas"]));
}
set
{
ViewState["DtVueltas"] = value;
}
}
private DataTable DtVueltasCostos
{
get
{
return ((DataTable)(ViewState["DtCostos"]));
}
set
{
ViewState["DtCostos"] = value;
}
}
private DataTable DtKilometros
{
get
{
return ((DataTable)(ViewState["DtKilometros"]));
}
set
{
ViewState["DtKilometros"] = value;
}
}
private DataTable DtKilometrosCostos
{
get
{
return ((DataTable)(ViewState["DtKilometrosCostos"]));
}
set
{
ViewState["DtKilometrosCostos"] = value;
}
}
private DataTable DtDriving
{
get
{
return ((DataTable)(ViewState["DtDriving"]));
}
set
{
ViewState["DtDriving"] = value;
}
}
#endregion
//protected override void Page_PreInit(object sender, EventArgs e)
//{
// MasterPageFile = "~/Masters/SiteGPS2.master";
//}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargaGrupos();
CargaFecha();
UPFiltros.Update();
}
}
private void CargaGrupos()
{
ClsGPS ObjGPS = new ClsGPS();
if (ObjGPS.GruposGet(-1, UsuarioActual.CveCliente))
{
DdlGrupo.DataSource = ObjGPS.DtResultados;
}
ObjGPS.Dispose();
DdlGrupo.DataBind();
}
private void CargaFecha()
{
txtFechaI.Text = $"01/{DateTime.Now.ToString("MM")}/{DateTime.Now.Year} 00:00";
txtFechaF.Text = $"{DateTime.Now.ToString("dd/MM/yyyy")} 23:59";
}
protected void BtnConsultar_Click(object sender, EventArgs e)
{
CargaDatos();
}
private void CargaDatos()
{
int CveGrupo = DdlGrupo.SelectedValue.ToEntero();
if (CveGrupo > -2)
{
DateTime FechaI = txtFechaI.Text.ToDateTime();
DateTime FechaF = txtFechaF.Text.ToDateTime();
if (FechaF > FechaI)
{
using (ClsGPS ObjGPS = new ClsGPS())
{
if (ObjGPS.GetRepPasajeros(CveGrupo, FechaI, FechaF, UsuarioActual.CveCliente))
{
if (ObjGPS.DtSetResultados.Tables.Count > 0)
{
DtVueltas = ObjGPS.DtSetResultados.Tables[0];
DtVueltasCostos = ObjGPS.DtSetResultados.Tables[1];
DtKilometros = ObjGPS.DtSetResultados.Tables[2];
DtKilometrosCostos = ObjGPS.DtSetResultados.Tables[3];
DtDriving = ObjGPS.DtSetResultados.Tables[4];
CreaPlantillaVueltas(DtVueltas);
CreaPlantillaCostos(DtVueltasCostos);
CreaPlantillaKilometros(DtKilometros);
CreaPlantillaKilometrosCostos(DtKilometrosCostos);
CreaPlantillaDriving(DtDriving);
GvVueltas.DataSource = DtVueltas;
GvCostos.DataSource = DtVueltasCostos;
GvKilometros.DataSource = DtKilometros;
GvKilometrosCosto.DataSource = DtKilometrosCostos;
GvDriving.DataSource = DtDriving;
GvModalEditar.DataSource = DtVueltas.FiltraParametros("CveDispositivo > 0", "", new string[] { "CveDispositivo", "NoEconomico" });
GvModalKilometros.DataSource = DtKilometros.FiltraParametros("CveDispositivo > 0", "", new string[] { "CveDispositivo", "NoEconomico" });
GvVueltas.DataBind();
GvCostos.DataBind();
GvKilometros.DataBind();
GvKilometrosCosto.DataBind();
GvDriving.DataBind();
GvModalEditar.DataBind();
GvModalKilometros.DataBind();
CargaGraficaKilometros();
//CargaGrafica();
divContenido.Visible = true;
//HpGrafica.Visible = true;
LnkExportaExcel.Visible = true;
}
}
}
CargaGraficaEventos();
}
else
{
GvVueltas.DataSource = null;
GvCostos.DataSource = null;
GvKilometros.DataSource = null;
GvKilometrosCosto.DataSource = null;
GvDriving.DataSource = null;
GvVueltas.DataBind();
GvCostos.DataBind();
GvKilometros.DataBind();
GvKilometrosCosto.DataBind();
GvDriving.DataBind();
Alert("La 'Fecha Fin' debe ser mayor a la 'Fecha Inicio'.Favor de corregirlo.", ModExtensiones.TipoMensaje.MsgAdvertencia);
}
}
else
{
Alert("Debe seleccionar un grupo.", ModExtensiones.TipoMensaje.MsgAdvertencia);
}
UpDatos.Update();
UpModalEditar.Update();
UpModalKilometros.Update();
UpModalGraficaKilometros.Update();
UpGraficaEventos.Update();
}
//private void CargaGrafica()
//{
// if (DtVueltas != null && DtVueltasCostos != null && DtKilometros != null && DtKilometrosCostos != null)
// {
// var DtVuelta = GenerateTransposedTable(DtVueltas.FiltraParametros("CveDispositivo IS NULL ")).FiltraParametros("CveDispositivo NOT IN('NoEconomico','PROMEDIO')");
// var DtCosto = GenerateTransposedTable(DtVueltasCostos.FiltraParametros("CveDispositivo IS NULL ")).FiltraParametros("CveDispositivo NOT IN('NoEconomico','PROMEDIO')");
// var DtKilo = GenerateTransposedTable(DtKilometros.FiltraParametros("CveDispositivo IS NULL ")).FiltraParametros("CveDispositivo NOT IN('NoEconomico','PROMEDIO')");
// var DtKiloCosto = GenerateTransposedTable(DtKilometrosCostos.FiltraParametros("CveDispositivo IS NULL ")).FiltraParametros("CveDispositivo NOT IN('NoEconomico','PROMEDIO')");
// var datosVueltas = new JArray()
// {
// from d in DtVuelta.AsEnumerable()
// select d["Column1"].ToString().ToDecimal()
// };
// var datosCostos = new JArray()
// {
// from d in DtCosto.AsEnumerable()
// select d["Column1"].ToString().ToDecimal()
// };
// var datosKilo = new JArray()
// {
// from d in DtKilo.AsEnumerable()
// select d["Column1"].ToString().ToDecimal()
// };
// var datosKiloCosto = new JArray()
// {
// from d in DtKiloCosto.AsEnumerable()
// select d["Column1"].ToString().ToDecimal()
// };
// var series = new JArray()
// {
// new JObject()
// {
// new JProperty("name","KILOMETROS RECORRIDOS (KM)"),
// new JProperty("data",datosKilo),
// new JProperty("color","#F10D0D")
// },
// new JObject()
// {
// new JProperty("name","COSTO DE VUELTAS (MXN)"),
// new JProperty("data",datosCostos),
// new JProperty("color","#A4A4A4")
// },
// new JObject()
// {
// new JProperty("name","NUMERO DE VUELTAS"),
// new JProperty("data",datosVueltas),
// new JProperty("color","#2E64FE")
// },
// new JObject()
// {
// new JProperty("name","COSTO DE KILOMETROS RECORRIDOS (MXN)"),
// new JProperty("data",datosKiloCosto),
// new JProperty("color","#1BBC9B")
// }
// };
// var categories = new JArray()
// {
// from d in DtKilo.AsEnumerable()
// select d["CveDispositivo"].ToString()
// };
// var jsonGrafica = new JObject()
// {
// new JProperty("categories",categories),
// new JProperty("series",series)
// };
// HdnGraficaValores.Value = jsonGrafica.ToString();
// }
//}
private void CargaGraficaKilometros()
{
if (DtKilometros != null)
{
var DtKilo = DtKilometros.FiltraParametros("CveDispositivo IS NOT NULL");
var datosKilo = new JArray();
var categories = new JArray();
foreach (DataColumn dc in DtKilo.Columns)
{
if (!dc.ColumnName.Contiene("CveDispositivo", "NoEconomico", "PROMEDIO"))
{
categories.Add(dc.ColumnName);
datosKilo.Add(DtKilo.SUM($"[{dc.ColumnName}]"));
}
}
var series = new JArray()
{
new JObject()
{
new JProperty("name","KILOMETROS RECORRIDOS (KM)"),
new JProperty("data",datosKilo),
new JProperty("color","#4B77BE")
}
};
var jsonGrafica = new JObject()
{
new JProperty("categories",categories),
new JProperty("series",series)
};
HdnGraficaKilometros.Value = jsonGrafica.ToString();
}
}
private void CargaGraficaEventos()
{
using (var ObjGPS = new ClsGPS())
{
if (ObjGPS.GetRepEventosDetalle(DdlGrupo.SelectedValue.ToEntero(), -1, txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveCliente, 5))
{
var DtEventos = ObjGPS.DtResultados.FiltraParametros("CveEvento IS NOT NULL");
var datosKilo = new JArray();
var categories = new JArray();
foreach (DataRow Row in DtEventos.Rows)
{
categories.Add(Row["Evento"].ToString());
datosKilo.Add(Row["Total"].ToString().ToEntero());
}
var series = new JArray()
{
new JObject()
{
new JProperty("name","Eventos Ocurridos"),
new JProperty("data",datosKilo),
new JProperty("color","#4B77BE")
}
};
var jsonGrafica = new JObject()
{
new JProperty("categories",categories),
new JProperty("series",series)
};
HdnGraficaEventos.Value = jsonGrafica.ToString();
}
}
}
#region "P L A N T I L L A S - G R I D V I E W S"
private void CreaPlantillaVueltas(DataTable DtVueltas)
{
int max = GvVueltas.Columns.Count - 1;
for (int i = max; i > 0; i--)
{
GvVueltas.Columns.RemoveAt(i);
}
foreach (DataColumn DcVuelta in DtVueltas.Columns)
{
if (!DcVuelta.ColumnName.Contiene("CveDispositivo", "NoEconomico"))
{
BoundField bfield = new BoundField();
bfield.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
bfield.NullDisplayText = "-";
bfield.DataFormatString = "{0:N2}";
bfield.HeaderText = DcVuelta.ColumnName;
bfield.DataField = DcVuelta.ColumnName;
var existe = GvVueltas.Columns.Cast<DataControlField>().Any(c => c.HeaderText == DcVuelta.ColumnName);
if (!existe)
{
GvVueltas.Columns.Add(bfield);
}
}
}
}
private void CreaPlantillaCostos(DataTable DtCostos)
{
int max = GvCostos.Columns.Count - 1;
for (int i = max; i > 0; i--)
{
GvCostos.Columns.RemoveAt(i);
}
foreach (DataColumn DcCosto in DtCostos.Columns)
{
if (!DcCosto.ColumnName.Contiene("CveDispositivo", "NoEconomico"))
{
var arrayNames = DcCosto.ColumnName.Split('-');
BoundField bfield = new BoundField();
bfield.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
bfield.HeaderText = arrayNames[1];
bfield.NullDisplayText = "-";
bfield.DataFormatString = "{0:N2}";
bfield.DataField = DcCosto.ColumnName;
var existe = GvCostos.Columns.Cast<DataControlField>().Any(c => c.HeaderText == DcCosto.ColumnName);
if (!existe)
{
GvCostos.Columns.Add(bfield);
}
}
}
GvCostos.ViewStateMode = ViewStateMode.Enabled;
GvCostos.EnableViewState = true;
}
private void CreaPlantillaKilometros(DataTable DtKilom)
{
int max = GvKilometros.Columns.Count - 1;
for (int i = max; i > 0; i--)
{
GvKilometros.Columns.RemoveAt(i);
}
foreach (DataColumn DcKilo in DtKilom.Columns)
{
if (!DcKilo.ColumnName.Contiene("CveDispositivo", "NoEconomico"))
{
BoundField bfield = new BoundField();
bfield.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
bfield.HeaderText = DcKilo.ColumnName;
bfield.NullDisplayText = "-";
bfield.DataFormatString = "{0:N2}";
bfield.DataField = DcKilo.ColumnName;
var existe = GvKilometros.Columns.Cast<DataControlField>().Any(c => c.HeaderText == DcKilo.ColumnName);
if (!existe)
{
GvKilometros.Columns.Add(bfield);
}
}
}
}
private void CreaPlantillaKilometrosCostos(DataTable DtKilom)
{
int max = GvKilometrosCosto.Columns.Count - 1;
for (int i = max; i > 0; i--)
{
GvKilometrosCosto.Columns.RemoveAt(i);
}
foreach (DataColumn DcCosto in DtKilom.Columns)
{
if (!DcCosto.ColumnName.Contiene("CveDispositivo", "NoEconomico"))
{
var arrayNames = DcCosto.ColumnName.Split('-');
BoundField bfield = new BoundField();
bfield.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
bfield.HeaderText = arrayNames[1];
bfield.NullDisplayText = "-";
bfield.DataFormatString = "{0:N2}";
bfield.DataField = DcCosto.ColumnName;
var existe = GvKilometrosCosto.Columns.Cast<DataControlField>().Any(c => c.HeaderText == DcCosto.ColumnName);
if (!existe)
{
GvKilometrosCosto.Columns.Add(bfield);
}
}
}
}
private void CreaPlantillaDriving(DataTable DtDriving)
{
int max = GvDriving.Columns.Count - 1;
for (int i = max; i > 0; i--)
{
GvDriving.Columns.RemoveAt(i);
}
foreach (DataColumn DcEvento in DtDriving.Columns)
{
if (!DcEvento.ColumnName.Contiene("CveDispositivo", "NoEconomico"))
{
TemplateField TField = new TemplateField();
TField.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
//TField.ItemTemplate = new LinkTemplate(DcEvento.ColumnName);
TField.HeaderText = DcEvento.ColumnName;
var existe = GvDriving.Columns.Cast<DataControlField>().Any(c => c.HeaderText == DcEvento.ColumnName);
if (!existe)
{
GvDriving.Columns.Add(TField);
}
}
}
}
protected void GvVueltas_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
switch (e.Row.DBCampo("NoEconomico"))
{
case "PROMEDIO":
e.Row.CssClass = "Totales";
break;
}
}
}
protected void GvCostos_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
switch (e.Row.DBCampo("NoEconomico"))
{
case "PROMEDIO":
e.Row.CssClass = "Totales";
break;
}
}
}
protected void GvKilometros_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
switch (e.Row.DBCampo("NoEconomico"))
{
case "PROMEDIO":
e.Row.CssClass = "Totales";
break;
}
}
}
protected void GvKilometrosCosto_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
switch (e.Row.DBCampo("NoEconomico"))
{
case "PROMEDIO":
e.Row.CssClass = "Totales";
break;
}
}
}
protected void GvDriving_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
switch (e.Row.DBCampo("NoEconomico"))
{
case "PROMEDIO":
e.Row.CssClass = "Totales";
break;
}
for (int i = 0; i < DtDriving.Columns.Count; i++)
{
var DcDriving = DtDriving.Columns[i];
if (!DcDriving.ColumnName.Contiene("CveDispositivo", "NoEconomico"))
{
HyperLink hp = new HyperLink();
hp.ID = $"HpCosto{i}_{e.Row.RowIndex}";
hp.Text = e.Row.DBCampo(DcDriving.ColumnName).FormatoNumero();
if (string.IsNullOrEmpty(e.Row.DBCampo("CveDispositivo")))
{
if (DcDriving.ColumnName.Contains("PROMEDIO"))
{
hp.NavigateUrl = $"javascript:CargaDetalleEventos({-1},'{DcDriving.ColumnName}',4);";
}
else
{
hp.NavigateUrl = $"javascript:CargaDetalleEventos({-1},'{DcDriving.ColumnName}',2);"; ;
}
}
else
{
if (DcDriving.ColumnName.Contains("PROMEDIO"))
{
hp.NavigateUrl = $"javascript:CargaDetalleEventos({e.Row.DBCampo("CveDispositivo")},'{DcDriving.ColumnName}',3);";
}
else
{
hp.NavigateUrl = $"javascript:CargaDetalleEventos({e.Row.DBCampo("CveDispositivo")},'{DcDriving.ColumnName}',1);"; ;
}
hp.Style.Add("color", "black");
}
e.Row.Cells[i - 1].Controls.Add(hp);
}
}
}
}
protected void GvCostos_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
GridView Gv = (GridView)sender;
GridViewRow HeaderRow = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
HeaderRow.Width = new Unit($"100%");
decimal TotalRecorrer = (DtVueltasCostos.Columns.Count.ToString().ToDecimal() - 2m) / 3m;
decimal porcentaje = (87.5m / TotalRecorrer);
var EmptyCell = new TableCell();
EmptyCell.Text = "";
EmptyCell.HorizontalAlign = HorizontalAlign.Center;
EmptyCell.Width = new Unit($"12.5%");
EmptyCell.Style.Add("border-right", "3px solid white");
EmptyCell.Style.Add("border-bottom", "3px solid white");
EmptyCell.Style.Add("border-top", "3px solid white");
EmptyCell.Style.Add("background-color", "white");
HeaderRow.Cells.Add(EmptyCell);
for (int i = 2; i < DtVueltasCostos.Columns.Count; i += 3)
{
var DcCosto = DtVueltasCostos.Columns[i];
if (!DcCosto.ColumnName.Contains("PROMEDIO"))
{
var array = DcCosto.ColumnName.Split('-');
var FechaCell = new TableCell();
FechaCell.HorizontalAlign = HorizontalAlign.Center;
FechaCell.ColumnSpan = 3;
FechaCell.CssClass = "dataTables_scrollHead text-center bold";
FechaCell.Style.Add("border-right", "3px solid white");
FechaCell.Style.Add("background-color", "#95A5A6");
FechaCell.Style.Add("background-color", "#95A5A6");
FechaCell.Width = new Unit($"{porcentaje}%");
HyperLink hp = new HyperLink();
hp.NavigateUrl = $"javascript:CargaModal('{array[0]}')";
hp.Text = array[0];
FechaCell.Controls.Add(hp);
HeaderRow.Cells.Add(FechaCell);
}
else
{
var array = DcCosto.ColumnName.Split('-');
var FechaCell = new TableCell();
FechaCell.Text = array[0];
FechaCell.ColumnSpan = 3;
FechaCell.CssClass = "dataTables_scrollHead text-center bold";
FechaCell.Style.Add("border-right", "3px solid white");
FechaCell.Style.Add("background-color", "#95A5A6");
FechaCell.Style.Add("background-color", "#95A5A6");
FechaCell.Style.Add("color", "white");
FechaCell.Width = new Unit($"{porcentaje}%");
HeaderRow.Cells.Add(FechaCell);
}
}
Gv.Controls[0].Controls.Add(HeaderRow);
}
}
protected void GvKilometrosCosto_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
GridView Gv = (GridView)sender;
//Table TableHeader = new Table();
//TableRow HeaderRow = new TableRow();
GridViewRow HeaderRow = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
HeaderRow.Width = new Unit($"100%");
decimal TotalRecorrer = (DtVueltasCostos.Columns.Count.ToString().ToDecimal() - 2m) / 3m;
decimal porcentaje = (87.5m / TotalRecorrer);
var EmptyCell = new TableCell();
EmptyCell.Text = "";
EmptyCell.HorizontalAlign = HorizontalAlign.Center;
EmptyCell.Width = new Unit($"12.5%");
EmptyCell.Style.Add("border-right", "3px solid white");
EmptyCell.Style.Add("border-bottom", "3px solid white");
EmptyCell.Style.Add("border-top", "3px solid white");
EmptyCell.Style.Add("background-color", "white");
HeaderRow.Cells.Add(EmptyCell);
for (int i = 2; i < DtVueltasCostos.Columns.Count; i += 3)
{
var DcCosto = DtVueltasCostos.Columns[i];
if (!DcCosto.ColumnName.Contains("PROMEDIO"))
{
var array = DcCosto.ColumnName.Split('-');
var FechaCell = new TableCell();
FechaCell.HorizontalAlign = HorizontalAlign.Center;
FechaCell.ColumnSpan = 3;
FechaCell.CssClass = "dataTables_scrollHead text-center bold";
FechaCell.Style.Add("border-right", "3px solid white");
FechaCell.Style.Add("background-color", "#95A5A6");
FechaCell.Style.Add("background-color", "#95A5A6");
FechaCell.Width = new Unit($"{porcentaje}%");
HyperLink hp = new HyperLink();
hp.NavigateUrl = $"javascript:CargaModalKilometros('{array[0]}')";
hp.Text = array[0];
FechaCell.Controls.Add(hp);
HeaderRow.Cells.Add(FechaCell);
}
else
{
var array = DcCosto.ColumnName.Split('-');
var FechaCell = new TableCell();
FechaCell.Text = array[0];
FechaCell.ColumnSpan = 3;
FechaCell.CssClass = "dataTables_scrollHead text-center bold";
FechaCell.Style.Add("border-right", "3px solid white");
FechaCell.Style.Add("background-color", "#95A5A6");
FechaCell.Style.Add("background-color", "#95A5A6");
FechaCell.Style.Add("color", "white");
FechaCell.Width = new Unit($"{porcentaje}%");
HeaderRow.Cells.Add(FechaCell);
}
}
Gv.Controls[0].Controls.Add(HeaderRow);
//TableHeader.Rows.Add(HeaderRow);
//// Create writers to render contents of controls into
//StringWriter theStringWriter = new StringWriter();
//HtmlTextWriter theHtmlTextWriter = new HtmlTextWriter(theStringWriter);
//// Render the table row control into the writer
//TableHeader.RenderControl(theHtmlTextWriter);
//HdnHeaderKMCosto.Value = theStringWriter.ToString();
}
}
#endregion
protected void BtnGuardarCostos_Click1(object sender, EventArgs e)
{
bool TieneError = false;
ClsGPS ObjGPS = new ClsGPS();
ObjGPS.IniciaTransacSQL();
try
{
if (ObjGPS.GetCortesChofer(-1, -1, -1))
{
DataTable DtCortes = ObjGPS.DtResultados.Copy();
DateTime FechaOffset = HdnFechaValue.Value.ToDate();
foreach (GridViewRow GvRow in GvModalEditar.Rows)
{
if (GvRow.RowType == DataControlRowType.DataRow)
{
int CveDispositivo = GvRow.DataKey("CveDispositivo").ToEntero();
decimal Importe = GvRow.FCTextBox("TxtImporte").Text.ToDecimal();
DataRow DrCorte = DtCortes.FiltroPrimero($"CveDispositivo = {CveDispositivo} AND FechaOffset = '{FechaOffset}'");
if (DrCorte != null)
{
int CveCorteChofer = DrCorte["CveCorteChofer"].ToString().ToEntero();
TieneError = !ObjGPS.UpdateCorteChofer(CveCorteChofer, Importe);
}
else
{
TieneError = !ObjGPS.AddCorteChofer(CveDispositivo, FechaOffset, Importe, UsuarioActual.CveUsuario);
}
}
}
}
}
catch (Exception ex)
{
TieneError = true;
this.OnError("Ocurrió un error al guardar los datos.", ex);
}
if (TieneError)
{
ObjGPS.RollBack();
Alert("Ocurrió un error al guardar los datos.", ModExtensiones.TipoMensaje.MsgError);
}
else
{
ObjGPS.Commit();
Alert("Los datos fueron guardados correctamente.");
}
ObjGPS.Dispose();
CargaDatos();
RegistraScript(" $('#DivModalVueltas').modal('hide');");
}
private DataTable GenerateTransposedTable(DataTable inputTable)
{
DataTable outputTable = new DataTable();
// Add columns by looping rows
// Header row's first column is same as in inputTable
outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString());
// Header row's second column onwards, 'inputTable's first column taken
foreach (DataRow inRow in inputTable.Rows)
{
string newColName = inRow[0].ToString();
outputTable.Columns.Add(newColName);
}
// Add rows by looping columns
for (int rCount = 1; rCount <= inputTable.Columns.Count - 1; rCount++)
{
DataRow newRow = outputTable.NewRow();
// First column is inputTable's Header row's second column
newRow[0] = inputTable.Columns[rCount].ColumnName.ToString();
for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++)
{
string colValue = inputTable.Rows[cCount][rCount].ToString();
newRow[cCount + 1] = colValue;
}
outputTable.Rows.Add(newRow);
}
return outputTable;
}
protected void LnkExportaExcel_Click(object sender, EventArgs e)
{
ExportarExcel("ReportePasajeros");
}
public void ExportarExcel(string NombreArchivoXLSX)
{
NombreArchivoXLSX = Regex.Replace(NombreArchivoXLSX.Replace("[", "").Replace("]", ""), "[:\\/?*]", string.Empty);
var DtVuetasExcel = DtVueltas.Copy();
DtVuetasExcel.Columns.RemoveAt(0);
DtVuetasExcel.Columns[0].ColumnName = "Vehículo";
DtVuetasExcel.TableName = "NUMERO DE VUELTAS";
var DtKilometrosExcel = DtKilometros.Copy();
DtKilometrosExcel.Columns.RemoveAt(0);
DtKilometrosExcel.Columns[0].ColumnName = "Vehículo";
DtKilometrosExcel.TableName = "KILOMETROS RECORRIDOS";
var DtCostosExcel = DtVueltasCostos.Copy();
DtCostosExcel.Columns.RemoveAt(0);
DtCostosExcel.Columns[0].ColumnName = "Vehículo";
DtCostosExcel.TableName = "COSTO DE VUELTAS (MXN)";
var DtCostoskmExcel = DtKilometrosCostos.Copy();
DtCostoskmExcel.Columns.RemoveAt(0);
DtCostoskmExcel.Columns[0].ColumnName = "Vehículo";
DtCostoskmExcel.TableName = "COSTO DE KM RECORRIDOS (MXN)";
var DtEventosExcel = DtDriving.Copy();
DtEventosExcel.Columns.RemoveAt(0);
DtEventosExcel.Columns[0].ColumnName = "Vehículo";
DtEventosExcel.TableName = "Driving";
// If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet());
ExcelFile FileExcel = new ExcelFile();
FileExcel.Worksheets.Add("NUMERO DE VUELTAS").InsertDataTable(DtVuetasExcel, new InsertDataTableOptions()
{
ColumnHeaders = true,
StartRow = 0,
StartColumn = 0
});
ExcelWorksheet WSKM = FileExcel.Worksheets.Add("KILOMETROS RECORRIDOS");
var Base64ChartKM = HdnGraficaKilometros64.Value.Replace("data:image/png;base64,", "");
var ChartStreamKM = new MemoryStream(Convert.FromBase64String(Base64ChartKM));
WSKM.Pictures.Add(ChartStreamKM, ExcelPictureFormat.Png, new AnchorCell(WSKM.Columns[9], WSKM.Rows[21], 100000, 100000), 800d, 500d, LengthUnit.Pixel);
WSKM.InsertDataTable(DtKilometrosExcel, new InsertDataTableOptions()
{
ColumnHeaders = true,
StartRow = 0,
StartColumn = 0
});
FileExcel.Worksheets.Add("COSTO DE VUELTAS (MXN)").InsertDataTable(DtCostosExcel, new InsertDataTableOptions()
{
ColumnHeaders = true,
StartRow = 0,
StartColumn = 0
});
FileExcel.Worksheets.Add("COSTO DE KM RECORRIDOS (MXN)").InsertDataTable(DtCostoskmExcel, new InsertDataTableOptions()
{
ColumnHeaders = true,
StartRow = 0,
StartColumn = 0
});
ExcelWorksheet WSDriving = FileExcel.Worksheets.Add("DRIVING");
WSDriving.InsertDataTable(DtEventosExcel, new InsertDataTableOptions()
{
ColumnHeaders = true,
StartRow = 0,
StartColumn = 0
});
var Base64ChartEventos = HdnGraficaEventos64.Value.Replace("data:image/png;base64,", "");
var ChartStreamEventos = new MemoryStream(Convert.FromBase64String(Base64ChartEventos));
WSDriving.Pictures.Add(ChartStreamEventos,ExcelPictureFormat.Png, new AnchorCell(WSDriving.Columns[9], WSDriving.Rows[21], 100000, 100000), 800d, 500d, LengthUnit.Pixel);
foreach (ExcelWorksheet item in FileExcel.Worksheets)
{
item.Rows[0].Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255));
item.Rows[0].Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255);
foreach (var col in item.Columns)
{
col.AutoFit(1, item.Rows[1], item.Rows[item.Rows.Count - 1]);
}
}
FileExcel.Save(this.Response, $"{NombreArchivoXLSX}.xlsx");
}
protected void BtnGuardarCostosKilometros_Click(object sender, EventArgs e)
{
bool TieneError = false;
ClsGPS ObjGPS = new ClsGPS();
ObjGPS.IniciaTransacSQL();
try
{
if (ObjGPS.GetCostosKilometros(-1, -1, -1))
{
DataTable DtCortes = ObjGPS.DtResultados.Copy();
DateTime FechaOffset = HdnFechaKilometrosValue.Value.ToDate();
foreach (GridViewRow GvRow in GvModalKilometros.Rows)
{
if (GvRow.RowType == DataControlRowType.DataRow)
{
int CveDispositivo = GvRow.DataKey("CveDispositivo").ToEntero();
decimal Importe = GvRow.FCTextBox("TxtImporte").Text.ToDecimal();
DataRow DrCorte = DtCortes.FiltroPrimero($"CveDispositivo = {CveDispositivo} AND FechaOffset = '{FechaOffset}'");
if (DrCorte != null)
{
int CveCostoKilometro = DrCorte["CveCostoKilometro"].ToString().ToEntero();
TieneError = !ObjGPS.UpdateCostoKilometro(CveCostoKilometro, Importe);
}
else
{
TieneError = !ObjGPS.AddCostoKilometro(CveDispositivo, FechaOffset, Importe, UsuarioActual.CveUsuario);
}
}
}
}
}
catch (Exception ex)
{
TieneError = true;
this.OnError("Ocurrió un error al guardar los datos.", ex);
}
if (TieneError)
{
ObjGPS.RollBack();
Alert("Ocurrió un error al guardar los datos.", ModExtensiones.TipoMensaje.MsgError);
}
else
{
ObjGPS.Commit();
Alert("Los datos fueron guardados correctamente.");
}
ObjGPS.Dispose();
CargaDatos();
RegistraScript(" $('#DivModalKilometros').modal('hide');");
}
protected void LnkEventosDetalle_Click(object sender, EventArgs e)
{
using (var ObjGPS = new ClsGPS())
{
switch (HdnOpcion.Value)
{
case "1":
var FechaI = HdnFechaDetalle.Value.ToDateTime();
var FechaF = FechaI.AddDays(1);
if (ObjGPS.GetRepEventosDetalle(-1, HdnDispositivo.Value.ToEntero(), FechaI, FechaF, UsuarioActual.CveCliente, 1))
{
GvEventosDetalle.DataSource = ObjGPS.DtResultados;
GvEventosDetalle.DataBind();
ModalTituloEventos.InnerText = $"Eventos ocurridos en el día {HdnFechaDetalle.Value}";
}
break;
case "2":
var FechaI2 = HdnFechaDetalle.Value.ToDateTime();
var FechaF2 = FechaI2.AddDays(1);
if (ObjGPS.GetRepEventosDetalle(DdlGrupo.SelectedValue.ToEntero(), -1, FechaI2, FechaF2, UsuarioActual.CveCliente, 2))
{
GvEventosDetalle.DataSource = ObjGPS.DtResultados;
GvEventosDetalle.DataBind();
ModalTituloEventos.InnerText = $"Eventos ocurridos en el día {HdnFechaDetalle.Value}";
}
break;
case "3":
if (ObjGPS.GetRepEventosDetalle(-1, HdnDispositivo.Value.ToEntero(), txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveCliente, 3))
{
GvEventosDetalle.DataSource = ObjGPS.DtResultados;
GvEventosDetalle.DataBind();
ModalTituloEventos.InnerText = $"Eventos ocurridos desde {txtFechaI.Text} hasta {txtFechaF.Text}";
}
break;
case "4":
if (ObjGPS.GetRepEventosDetalle(DdlGrupo.SelectedValue.ToEntero(), -1, txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveCliente, 4))
{
GvEventosDetalle.DataSource = ObjGPS.DtResultados;
GvEventosDetalle.DataBind();
ModalTituloEventos.InnerText = $"Eventos ocurridos desde {txtFechaI.Text} hasta {txtFechaF.Text}";
}
break;
}
}
UpEventos.Update();
UpGvEventos.Update();
RegistraScript("$('#DvEventos').modal('show');");
}
protected void GvEventosDetalle_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (string.IsNullOrEmpty(e.Row.DBCampo("CveDispositivo")))
{
e.Row.CssClass = "Totales";
}
}
}
}
public class LinkTemplate : ITemplate
{
public string Columna { get; set; }
public LinkTemplate(string Columna)
{
this.Columna = Columna;
}
public void InstantiateIn(Control container)
{
DataControlFieldCell GVRow = (DataControlFieldCell)container;
HyperLink hp = new HyperLink();
hp.DataBinding += Lnk_DataBinding;
container.Controls.Add(hp);
}
private void Lnk_DataBinding(object sender, EventArgs e)
{
HyperLink l = (HyperLink)sender;
GridViewRow container = (GridViewRow)l.NamingContainer;
DataRowView Row = ((DataRowView)container.DataItem);
l.Text = Row[Columna].ToString();
}
private void Ltl_DataBinding(object sender, EventArgs e)
{
Literal l = (Literal)sender;
GridViewRow container = (GridViewRow)l.NamingContainer;
DataRowView Row = ((DataRowView)container.DataItem);
l.Text = Row[Columna].ToString();
}
}