From f729e7d5fde1803cd7125e228d47692ae7ac12ba Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 29 Nov 2021 15:28:14 -0700 Subject: [PATCH 01/14] =?UTF-8?q?--=20exporta=20excel=20gembox,=20secci?= =?UTF-8?q?=C3=B3n=20filtros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/modExtensiones.vb | 64 +++++++++++++++----------------- Inventarios/RepAnomalias.aspx.vb | 3 +- 2 files changed, 31 insertions(+), 36 deletions(-) diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index 6fc80096c..cfc0baf62 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -2086,7 +2086,7 @@ Namespace Extensiones End Sub - Public Sub ExportToExcelGembox(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, FechaIMes As String, FechaFMes As String, Titulo As String, SubProyecto As String, Divisor As Integer, Optional AlturaImagen As Double = 100, Optional AnchoImagen As Double = 100, Optional DatoTituloExtra As String = "") + Public Sub ExportToExcelGembox(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, Titulo As String, Optional DatoTituloExtra As String = "", Optional DatosFiltros As String = "", Optional AnchoImagen As Integer = 100, Optional AlturaImagen As Integer = 100) Dim sw1 As New StringWriter() Dim htw1 As New HtmlTextWriter(sw1) @@ -2117,7 +2117,7 @@ Namespace Extensiones If Usuario IsNot Nothing Then - Dim TotalRowHeader As Integer = 8 + Dim TotalRowHeader As Integer = 6 Dim TotalRowFooter As Integer = 2 @@ -2143,50 +2143,44 @@ Namespace Extensiones RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center - - If FechaIMes.Trim.Length > 0 And FechaFMes.Trim.Length > 0 Then - Dim RangoFechas = worksheet.Cells.GetSubrangeAbsolute(4, celdasConTexto.FirstColumnIndex, 4, celdasConTexto.LastColumnIndex) - RangoFechas.Merged = True - RangoFechas.Value = $"Fechas: {FechaIMes} a {FechaFMes}" - RangoFechas.Style.Font.Size = 15 * 20 - RangoFechas.Style.Font.Name = "Calibri Light" - RangoFechas.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center - RangoFechas.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center - End If - - - If SubProyecto.Length > 0 Then - Dim RangoSubProyecto = worksheet.Cells.GetSubrangeAbsolute(5, celdasConTexto.FirstColumnIndex, 5, celdasConTexto.LastColumnIndex) - RangoSubProyecto.Merged = True - RangoSubProyecto.Value = SubProyecto - RangoSubProyecto.Style.Font.Size = 20 * 20 - RangoSubProyecto.Style.Font.Name = "Calibri Light" - RangoSubProyecto.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center - RangoSubProyecto.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center - End If - - If DatoTituloExtra.Length > 0 Then - Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(6, celdasConTexto.FirstColumnIndex, 6, celdasConTexto.LastColumnIndex) + Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex) RangoDatoTituloExtra.Merged = True RangoDatoTituloExtra.Value = DatoTituloExtra RangoDatoTituloExtra.Style.Font.Size = 20 * 20 RangoDatoTituloExtra.Style.Font.Name = "Calibri Light" - RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + End If + If DatosFiltros.Length > 0 Then + + Dim Arreglo As String() = DatosFiltros.Split("|"c) + worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count) + For Each TextoFiltro As String In Arreglo + Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex) + RangoDatoTituloExtra.Merged = True + RangoDatoTituloExtra.Value = TextoFiltro + RangoDatoTituloExtra.Style.Font.Size = 12 * 20 + RangoDatoTituloExtra.Style.Font.Name = "Calibri Light" + RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left + RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + TotalRowHeader += 1 + + Next + End If + + TotalRowHeader += 2 For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex - worksheet.Rows(8).Cells(i).Style.Font.Size = 12 * 20 - worksheet.Rows(8).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center - worksheet.Rows(8).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center - - worksheet.Rows(8).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)) - worksheet.Rows(8).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255) - + worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Size = 12 * 20 + worksheet.Rows(TotalRowHeader).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + worksheet.Rows(TotalRowHeader).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)) + worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255) If i > 0 Then Try @@ -2221,7 +2215,7 @@ Namespace Extensiones If I > 0 Then - If Divisor = 1 Then + If 1 = 1 Then worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00" Else worksheet.Columns(I + 1).Style.NumberFormat = "#,##" diff --git a/Inventarios/RepAnomalias.aspx.vb b/Inventarios/RepAnomalias.aspx.vb index ec4945950..f6a8fe83f 100644 --- a/Inventarios/RepAnomalias.aspx.vb +++ b/Inventarios/RepAnomalias.aspx.vb @@ -497,7 +497,8 @@ Partial Class Inventarios_RepAnomalias Private Sub LnkDescarExcelGrupos_Click(sender As Object, e As EventArgs) Handles LnkDescarExcelGrupos.Click - GvGrupos.ExportToExcelGembox("Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "", "", "Inventario:" & lbTitulo.Text, "", 1) + Dim Filtros As String = "Almacenes:aASDSAF|Clasificaciones:sdfasf|Fecha:12/12/2323" + GvGrupos.ExportToExcelGembox("Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "Inventario:" & lbTitulo.Text, "", DatosFiltros:=Filtros) End Sub Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) From bd755e09fa3132c3f661c871bbfba5ca8ad9c995 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:35:41 -0700 Subject: [PATCH 02/14] Correciones Reportes Programados --- App_Code/ClsSisNotificaciones.vb | 536 +++++++++++++++++++++++-------- 1 file changed, 400 insertions(+), 136 deletions(-) diff --git a/App_Code/ClsSisNotificaciones.vb b/App_Code/ClsSisNotificaciones.vb index bcf8af387..c2406c5ee 100644 --- a/App_Code/ClsSisNotificaciones.vb +++ b/App_Code/ClsSisNotificaciones.vb @@ -46,27 +46,45 @@ Public Class ClsSisNotificaciones Private disposedValue As Boolean = False ' Para detectar llamadas redundantes 'PARA REGISTRAR CONEXION - Private CveConexion As Integer = 0 + Private CveConexion As Integer = 0 #End Region - + #Region "P R O P I E D A D E S" - 'Public ReadOnly Property FirebaseWebService As String - ' Get - ' Return ConfigurationManager.AppSettings("FirebaseWebService").ToString() - ' End Get - 'End Property - 'Public ReadOnly Property FirebaseServerKey As String - ' Get - ' Return ConfigurationManager.AppSettings("FirebaseServerKey").ToString() - ' End Get - 'End Property - 'Public ReadOnly Property SenderID As String - ' Get - ' Return ConfigurationManager.AppSettings("SenderID").ToString() - ' End Get - 'End Property - - 'Push Notifications + 'Public ReadOnly Property FirebaseWebService As String + ' Get + ' Return ConfigurationManager.AppSettings("FirebaseWebService").ToString() + ' End Get + 'End Property + 'Public ReadOnly Property FirebaseServerKey As String + ' Get + ' Return ConfigurationManager.AppSettings("FirebaseServerKey").ToString() + ' End Get + 'End Property + 'Public ReadOnly Property SenderID As String + ' Get + ' Return ConfigurationManager.AppSettings("SenderID").ToString() + ' End Get + 'End Property + + 'Push Notifications + ReadOnly Property GlobalDTUsuarios(Optional CveUsuario As Integer = -1, Optional CveEmpresa As Integer = -1, Optional CveCliente As Integer = -1, Optional CveProveedor As Integer = -1) As DataTable + Get + Dim Str As New StringBuilder + If CveUsuario <> -1 Then Str.AppendFormat("CveUsuario = {0}", CveUsuario) + If CveEmpresa <> -1 Then Str.AppendFormat(" {0} CveEmpresa = {1}", If(Str.Length > 0, "AND", ""), CveEmpresa) + If CveCliente <> -1 Then Str.AppendFormat(" {0} CveCliente = {1}", If(Str.Length > 0, "AND", ""), CveCliente) + If CveProveedor <> -1 Then Str.AppendFormat(" {0} CveProveedor = {1}", If(Str.Length > 0, "AND", ""), CveProveedor) + + If CveUsuario <> -1 OrElse CveEmpresa <> -1 Then + Dim Dv As New DataView(DirectCast(HttpContext.Current.Application("GlobalDTUsuarios"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) + GlobalDTUsuarios = Dv.ToTable + Dv.Dispose() + Else + GlobalDTUsuarios = DirectCast(HttpContext.Current.Application("GlobalDTUsuarios"), DataTable) + End If + End Get + End Property + Public Const FirebaseWebService As String = "https://fcm.googleapis.com/fcm/send" Public Const FirebaseServerKey As String = "AAAAqx0xsBA:APA91bHip_JcMGhNQiIzdnodY9ynkHIjX9wEc4TrLkepXK0Lz1QEar5dys6sa3ourPLGiEJD4fGGnSzrk2M_9aJuQo55LjvSJs2c1bU74u-yArMcbI0F_cKzbYAcOMRc8pbRknuWGsXX" Public Const SenderID As String = "734929203216" @@ -141,10 +159,11 @@ Public Class ClsSisNotificaciones End If - End Sub + End Sub #End Region + #Region "N O T I F I C A C I O N E S" - + Public Sub DispararNotificacion(CveNotificacion As Integer, CvesFiltro As List(Of Object), CveEmpresa As Integer) _CveNotificacion = CveNotificacion _CveEmpresa = CveEmpresa @@ -228,12 +247,48 @@ Public Class ClsSisNotificaciones OnError("Ocurrió error al mandar el Mail", ex) End Try ObjNotificacion.Dispose() - End Sub - + End Sub + #End Region + +#Region "V A L I D A - U S U A R I O" + Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario + Dim UsuarioActual As Usuario = Nothing + Dim ObjUsuarios As New ClsSisUsuarios + If ObjUsuarios.GetUsuarios(100) Then + If ObjUsuarios.DtResultados.Rows.Count > 0 Then + Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() + Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() + UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, IMEI, CveEmpresa) + UsuarioActual.CveEmpresa = CveEmpresa + CreaObjetoEmpresa(UsuarioActual) + End If + End If + ObjUsuarios.Dispose() + Return UsuarioActual + End Function + Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) + Dim ObjEmpresa As New ClsSisEmpresas() + If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then + If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then + Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados + + Dim EmpresasFuncionalidades As New HybridDictionary + For Each Row As Data.DataRow In dttmp.Rows + EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) + Next + ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) + End If + + UsuarioActual.Empresa = ObjEmpresa.Empresa + End If + ObjEmpresa.Dispose() + End Sub +#End Region + #Region "N O T I F I C A C I O N E S - M E T O D O S G E N E R A L E S" - + Public Function ObtenerNotificaciones() As Boolean If Not GetNotificacionesBitacoraPendientes(1000) Then @@ -260,21 +315,31 @@ Public Class ClsSisNotificaciones End Function Public Sub ArmarReportesProgramados() - Try + Try + For Each RowReporte As DataRow In DTReportesProgramados.Rows Dim CveReporteProgramado As Integer = RowReporte("CveReporteProgramado").ToString.ToEntero Dim CveNotificacionBitacora As Integer = RowReporte("CveNotificacionBitacora").ToString.ToEntero + Dim Correos As String = RowReporte("Correos").ToString + Dim NombreCliente As String = RowReporte("Cliente").ToString + Dim FechaI As DateTime = RowReporte("FechaI").ToString.ToDateTime Dim FechaF As DateTime = RowReporte("FechaF").ToString.ToDateTime + Dim CveReporte As Integer = RowReporte("CveReporte").ToString.ToEntero Dim CveCliente As Integer = RowReporte("CveCliente").ToString.ToEntero + Dim CveEmpresa As Integer = RowReporte("CveEmpresa").ToString.ToEntero + Dim DtExtras As DataTable = Nothing Dim DtDispositivos As DataTable = Nothing + Dim Formato As String = RowReporte("Formato").ToString + Dim UsuarioActual As Usuario = ValidaUsuarioSistema(CveEmpresa) + Dim ObjGPS As New ClsGPS - If CveReporte.Contiene(1, 2, 3, 4, 5, 6, 7, 8) Then + If CveReporte.Contiene(1, 2, 3, 4, 5, 6, 7, 8, 10) Then If ObjGPS.ReportesProgramadosDispositivosGet(CveReporteProgramado) Then DtDispositivos = ObjGPS.DtResultados.Copy() End If @@ -286,7 +351,7 @@ Public Class ClsSisNotificaciones End If ObjGPS.Dispose() - EnviarReporteProgramado(CveCliente, Formato, Correos, FechaI, FechaF, CveReporte, CveNotificacionBitacora, DtDispositivos, DtExtras) + EnviarReporteProgramado(CveCliente, NombreCliente, Formato, Correos, FechaI, FechaF, CveReporte, CveNotificacionBitacora, DtDispositivos, DtExtras, UsuarioActual) If DtExtras IsNot Nothing Then DtExtras.Clear() @@ -297,6 +362,10 @@ Public Class ClsSisNotificaciones DtDispositivos.Clear() DtDispositivos.Dispose() End If + + If UsuarioActual IsNot Nothing Then + UsuarioActual = Nothing + End If Next Catch ex As Exception OnError("Ocurrió un error al enviar el reporte programado", ex) @@ -311,11 +380,12 @@ Public Class ClsSisNotificaciones ' Return New DataTable() 'End Function - Public Sub EnviarReporteProgramado(CveCliente As Integer, Formato As String, Correos As String, FechaI As DateTime, FechaF As DateTime, CveReporte As Integer, CveNotificacionBitacora As Integer, DtDispositivos As DataTable, DtExtras As DataTable) + Public Sub EnviarReporteProgramado(CveCliente As Integer, NombreCliente As String, Formato As String, Correos As String, FechaI As DateTime, FechaF As DateTime, CveReporte As Integer, CveNotificacionBitacora As Integer, DtDispositivos As DataTable, DtExtras As DataTable, UsuarioActual As Usuario) Dim CveDispositivo As Integer = -1 Dim NombreVehiculo As String = "" Dim RutaReporte As String Dim retorno As Byte() = Nothing + Select Case CveReporte Case 1 'Ultima Posicion Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) @@ -397,7 +467,7 @@ Public Class ClsSisNotificaciones GuardaLog(String.Format("Ocurrio un error al obtener las direcciones {0}", ex)) End Try If Formato = "PDF" Then - retorno = GenerarReporteHistorico(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, NombreReporte) + retorno = GenerarReporteHistorico(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, NombreReporte, NombreCliente, UsuarioActual) ElseIf Formato = "Excel" Then ObjGPS.DtResultados.TableName = NombreVehiculo DataSource.Tables.Add(ObjGPS.DtResultados) @@ -496,7 +566,7 @@ Public Class ClsSisNotificaciones Next Dim NombreArchivo As String = "" If Formato = "Excel" Then - retorno = GenerarReporteEventosExcel(ObjGPS.DtResultados, FechaI, FechaF, Correos) + retorno = GenerarReporteEventosExcel(DtDispositivos, ObjGPS.DtResultados, FechaI, FechaF, Correos) NombreArchivo = "ReporteEventos.xlsx" ElseIf Formato = "PDF" Then retorno = GenerarReporteEventos(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos) @@ -642,96 +712,162 @@ Public Class ClsSisNotificaciones Catch ex As Exception GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) End Try + ObjGPS.Dispose() + 'Case 8 ' Subida/Bajada de Pasajeros + ' Dim PasajerosEntrada, PasajerosSalida, Ascensos, Descensos As Integer + ' PasajerosSalida = 0 + ' PasajerosEntrada = 0 + ' Ascensos = 0 + ' Descensos = 0 + + ' If GetCambioPasajeros(RowNotificacion("Valor").ToString.ToEntero, RowNotificacion("CveDispositivoGPS").ToString.ToEntero, RowNotificacion("CveUsuario")) Then + ' If DtResultados.Rows.Count > 0 Then + ' Dim ObjMail As New ClsSisMail() + ' Dim SBuilder As New StringBuilder + ' SBuilder.Append($"
") + ' SBuilder.Append($"
Reporte de pasajeros del dispositivo {DtResultados(0)("NoEconomico").ToString}.
") + ' SBuilder.Append($"
") + ' For Each row In DtResultados.Rows + ' If row("CveEvento").ToString.ToEntero = 103 Then + ' PasajerosEntrada = row("Pasajeros") + ' Ascensos = row("Ascensos").ToString.ToEntero + ' Descensos = row("Descensos").ToString.ToEntero + ' SBuilder.Append($"") + ' Else + ' PasajerosSalida = row("Pasajeros") + PasajerosEntrada + ' Ascensos = row("Ascensos").ToString.ToEntero + ' Descensos = row("Descensos").ToString.ToEntero + ' SBuilder.Append($"") + ' End If + ' Next + ' If PasajerosEntrada <> PasajerosSalida Then + ' SBuilder.Append($"Hubo un {If(PasajerosSalida > PasajerosEntrada, "aumento", "decremento")} de {PasajerosSalida - PasajerosEntrada} pasajeros ({Ascensos} ascenso(s), {Descensos} descenso(s)) ") + ' Else + ' SBuilder.Append($"No hubo cambios en el número de pasajeros ") + ' End If + ' SBuilder.Append($"
Fecha: {row("FechaEvento").ToString}   {row("Evento").ToString} '{row("GeoReferencia").ToString}'   Pasajeros: {row("Pasajeros")}
Fecha: {row("FechaEvento").ToString}   {row("Evento").ToString} '{row("GeoReferencia").ToString}'   Pasajeros: {PasajerosSalida}
") + + ' Dim ResultadoMail As Integer = 0 + + ' If ObjMail.SendMail(ClsPaginas.EmpresaNotificaciones, DtResultados(0)("Correo").ToString, $"Reporte de pasajeros. Geocerca {DtResultados(0)("GeoReferencia").ToString}", SBuilder.ToString) Then + ' UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1) + ' End If + ' End If + ' End If + 'Case 9 'Reporte de Rutas + ' If ArmarReporteProgramadoParadas(CveNotificacionBitacora) AndAlso DtResultados.Rows.Count > 0 Then + ' RutaReporte = "Empresas/Grales/ReportesProgramados/RPTParadas.rdlc" + ' Dim ObjEmpresa As New ClsSisEmpresas() + ' Dim ObjGPS As New ClsGPS + ' Try + ' Dim RowParada As DataRow = DtResultados.Rows(0) + + ' Dim RptParametro As List(Of ReportParameter) = New List(Of ReportParameter) + + + ' If ObjGPS.GetRepParadas(RowParada("CveGrupo").ToString.ToEntero, RowParada("FechaInicio").ToString.ToDateTime, RowParada("FechaNotificacion").ToString.ToDateTime, RowParada("CveCliente").ToString.ToEntero) Then + ' If ObjGPS.DtResultados.Rows.Count > 0 Then + + ' RptParametro.Add(New ReportParameter("FechaInicio", RowParada("FechaInicio").ToString)) + ' RptParametro.Add(New ReportParameter("FechaFin", RowParada("FechaNotificacion").ToString)) + ' RptParametro.Add(New ReportParameter("UsuarioImprimio", RowParada("UsuarioImprimio").ToString)) + ' RptParametro.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToShortDateString)) + ' RptParametro.Add(New ReportParameter("Grupo", RowParada("Grupo").ToString)) + + ' Dim RowRep As DataRow = ObjGPS.DtResultados.FiltroPrimero("TipoColumna=1") + ' Dim MejorC As String = ObjGPS.DtResultados.FiltroPrimeroValor("Conductor", "CveConductor IS NOT NULL AND TotalEventos IS NOT NULL", "TotalEventos ASC") + ' RptParametro.Add(New ReportParameter("TotalGeneral", RowRep("Importe").ToString.ToDecimal)) + ' RptParametro.Add(New ReportParameter("NumEventos", RowRep("TotalEventos").ToString.ToEntero)) + ' RptParametro.Add(New ReportParameter("MejorConductor", MejorC)) + ' retorno = StreamPDF(RutaReporte, ObjGPS.DtResultados, RptParametro, "ReporteProgramado", "PDF", MR:=Nothing, RDSName:="DsOC") + ' End If + + ' End If + + ' Dim ObjMail As New ClsSisMail() + + ' Dim ResultadoMail As Integer = 0 + ' Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) + ' LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteProgramado.pdf"}) + + ' If ObjMail.SendMail(ClsPaginas.EmpresaNotificaciones, DtResultados(0)("Correos").ToString, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then + ' UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1) + ' End If + + ' Catch ex As Exception + ' GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) + ' End Try + ' ObjGPS.Dispose() + ' End If + Case 10 'Reporte de Ignicion + Dim ObjGPS As New ClsGPS + Try + RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPIgnicion.rdlc" + Dim ObjMail As New ClsSisMail() + Dim ResultadoMail As Integer = 0 + Dim Archivos As New List(Of ClsSisMail.ArchivoMail) + Dim NombreReporte As String = "Reporte" + Dim DataSource As DataSet = Nothing + + If Formato = "Excel" Then + DataSource = New DataSet() + End If + + For Each RowDisp As DataRow In DtDispositivos.Rows + CveDispositivo = RowDisp("CveDispositivo").ToString().ToEntero + NombreVehiculo = RowDisp("NombreVehiculo").ToString() + NombreReporte = $"Reporte_Ignicion_{NombreVehiculo}_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}" + + Dim DireccionesInicial As JArray = Nothing, DireccionesFinal As JArray = Nothing + + If ObjGPS.GetRepIgnicion(CveDispositivo, FechaI, FechaF, CveCliente) Then + Try + DireccionesInicial = ConsultarDireccionesIgnicion(ObjGPS.DtResultados, "CveTramaEncendido", "LatitudInicial", "LongitudInicial") + DireccionesFinal = ConsultarDireccionesIgnicion(ObjGPS.DtResultados, "CveTramaApagado", "LatitudFinal", "LongitudFinal") + + For Each Dir As JObject In DireccionesInicial + ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("DireccionInical") = Dir("Direccion").ToString() + Next + + For Each Dir As JObject In DireccionesFinal + ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("DireccionFinal") = Dir("Direccion").ToString() + Next + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al obtener las direcciones {0}", ex)) + End Try + If Formato = "PDF" Then + retorno = GenerarReporteIgnicion(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, NombreReporte) + ElseIf Formato = "Excel" Then + ObjGPS.DtResultados.TableName = NombreVehiculo + DataSource.Tables.Add(ObjGPS.DtResultados) + End If + End If + + If retorno IsNot Nothing Then + Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.pdf"}) + End If + Next + + If DataSource IsNot Nothing Then + NombreReporte = $"Reporte_Ignicion_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}" + retorno = GenerarReporteIgnicionExcel(DataSource, RutaReporte, FechaI, FechaF, Correos, NombreReporte) + If retorno IsNot Nothing Then + Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.xlsx"}) + End If + End If + + If Archivos.Count > 0 Then + If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", $"Se adjunta el {Formato} en el Reporte Programado.", "", Archivos) Then + UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1) + End If + End If + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) + End Try ObjGPS.Dispose() - 'Case 8 ' Subida/Bajada de Pasajeros - ' Dim PasajerosEntrada, PasajerosSalida, Ascensos, Descensos As Integer - ' PasajerosSalida = 0 - ' PasajerosEntrada = 0 - ' Ascensos = 0 - ' Descensos = 0 - - ' If GetCambioPasajeros(RowNotificacion("Valor").ToString.ToEntero, RowNotificacion("CveDispositivoGPS").ToString.ToEntero, RowNotificacion("CveUsuario")) Then - ' If DtResultados.Rows.Count > 0 Then - ' Dim ObjMail As New ClsSisMail() - ' Dim SBuilder As New StringBuilder - ' SBuilder.Append($"
") - ' SBuilder.Append($"
Reporte de pasajeros del dispositivo {DtResultados(0)("NoEconomico").ToString}.
") - ' SBuilder.Append($"
") - ' For Each row In DtResultados.Rows - ' If row("CveEvento").ToString.ToEntero = 103 Then - ' PasajerosEntrada = row("Pasajeros") - ' Ascensos = row("Ascensos").ToString.ToEntero - ' Descensos = row("Descensos").ToString.ToEntero - ' SBuilder.Append($"") - ' Else - ' PasajerosSalida = row("Pasajeros") + PasajerosEntrada - ' Ascensos = row("Ascensos").ToString.ToEntero - ' Descensos = row("Descensos").ToString.ToEntero - ' SBuilder.Append($"") - ' End If - ' Next - ' If PasajerosEntrada <> PasajerosSalida Then - ' SBuilder.Append($"Hubo un {If(PasajerosSalida > PasajerosEntrada, "aumento", "decremento")} de {PasajerosSalida - PasajerosEntrada} pasajeros ({Ascensos} ascenso(s), {Descensos} descenso(s)) ") - ' Else - ' SBuilder.Append($"No hubo cambios en el número de pasajeros ") - ' End If - ' SBuilder.Append($"
Fecha: {row("FechaEvento").ToString}   {row("Evento").ToString} '{row("GeoReferencia").ToString}'   Pasajeros: {row("Pasajeros")}
Fecha: {row("FechaEvento").ToString}   {row("Evento").ToString} '{row("GeoReferencia").ToString}'   Pasajeros: {PasajerosSalida}
") - - ' Dim ResultadoMail As Integer = 0 - - ' If ObjMail.SendMail(ClsPaginas.EmpresaNotificaciones, DtResultados(0)("Correo").ToString, $"Reporte de pasajeros. Geocerca {DtResultados(0)("GeoReferencia").ToString}", SBuilder.ToString) Then - ' UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1) - ' End If - ' End If - ' End If - 'Case 9 'Reporte de Rutas - ' If ArmarReporteProgramadoParadas(CveNotificacionBitacora) AndAlso DtResultados.Rows.Count > 0 Then - ' RutaReporte = "Empresas/Grales/ReportesProgramados/RPTParadas.rdlc" - ' Dim ObjEmpresa As New ClsSisEmpresas() - ' Dim ObjGPS As New ClsGPS - ' Try - ' Dim RowParada As DataRow = DtResultados.Rows(0) - - ' Dim RptParametro As List(Of ReportParameter) = New List(Of ReportParameter) - - - ' If ObjGPS.GetRepParadas(RowParada("CveGrupo").ToString.ToEntero, RowParada("FechaInicio").ToString.ToDateTime, RowParada("FechaNotificacion").ToString.ToDateTime, RowParada("CveCliente").ToString.ToEntero) Then - ' If ObjGPS.DtResultados.Rows.Count > 0 Then - - ' RptParametro.Add(New ReportParameter("FechaInicio", RowParada("FechaInicio").ToString)) - ' RptParametro.Add(New ReportParameter("FechaFin", RowParada("FechaNotificacion").ToString)) - ' RptParametro.Add(New ReportParameter("UsuarioImprimio", RowParada("UsuarioImprimio").ToString)) - ' RptParametro.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToShortDateString)) - ' RptParametro.Add(New ReportParameter("Grupo", RowParada("Grupo").ToString)) - - ' Dim RowRep As DataRow = ObjGPS.DtResultados.FiltroPrimero("TipoColumna=1") - ' Dim MejorC As String = ObjGPS.DtResultados.FiltroPrimeroValor("Conductor", "CveConductor IS NOT NULL AND TotalEventos IS NOT NULL", "TotalEventos ASC") - ' RptParametro.Add(New ReportParameter("TotalGeneral", RowRep("Importe").ToString.ToDecimal)) - ' RptParametro.Add(New ReportParameter("NumEventos", RowRep("TotalEventos").ToString.ToEntero)) - ' RptParametro.Add(New ReportParameter("MejorConductor", MejorC)) - ' retorno = StreamPDF(RutaReporte, ObjGPS.DtResultados, RptParametro, "ReporteProgramado", "PDF", MR:=Nothing, RDSName:="DsOC") - ' End If - - ' End If - - ' Dim ObjMail As New ClsSisMail() - - ' Dim ResultadoMail As Integer = 0 - ' Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) - ' LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteProgramado.pdf"}) - - ' If ObjMail.SendMail(ClsPaginas.EmpresaNotificaciones, DtResultados(0)("Correos").ToString, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then - ' UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1) - ' End If - - ' Catch ex As Exception - ' GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) - ' End Try - ' ObjGPS.Dispose() - ' End If End Select - End Sub - + End Sub + #Region "G E N E R A R - R E P O R T E" Private Function GenerarReporteUltimaPosicion(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte() Dim Retorno As Byte() = Nothing @@ -785,10 +921,15 @@ Public Class ClsSisNotificaciones Return Retorno.ToArray() End Function - Private Function GenerarReporteHistorico(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte() + Private Function GenerarReporteHistorico(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String, NombreCliente As String, UsuarioActual As Usuario) As Byte() Dim Retorno As Byte() = Nothing Try Dim RptParametro As New List(Of CrystalParametro) + + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + RptParametro.Add(New CrystalParametro("FechaInicio", FechaI.ToString)) RptParametro.Add(New CrystalParametro("FechaFin", FechaF.ToString)) RptParametro.Add(New CrystalParametro("UsuarioImprimio", Correos)) @@ -797,7 +938,16 @@ Public Class ClsSisNotificaciones RptParametro.Add(New CrystalParametro("KMRecorridos", $"{DataSource.Rows(0)("KMRecorridos")} KM")) Else RptParametro.Add(New CrystalParametro("KMRecorridos", "0 KM")) + End If + + RptParametro.Add(New CrystalParametro("NombreEmpresa", NombreCliente)) + + If Imagen.Exists Then + RptParametro.Add(New CrystalParametro("LogoPath", logouri)) + Else + RptParametro.Add(New CrystalParametro("LogoPath", "")) End If + Retorno = StreamPDFCrystal(Liga, DataSource, RptParametro, NombreReporte, "PDF") Catch ex As Exception GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) @@ -855,7 +1005,82 @@ Public Class ClsSisNotificaciones DataSet.Dispose() End If Return Retorno.ToArray() + End Function + + Private Function GenerarReporteIgnicion(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte() + Dim Retorno As Byte() = Nothing + Try + Dim RptParametro As New List(Of ReportParameter) + + RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToString)) + RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToString)) + RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos)) + RptParametro.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToShortDateString)) + + Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteIgnicion", "PDF", MR:=Nothing, RDSName:="DsOC") + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) + End Try + Return Retorno End Function + + Private Function GenerarReporteIgnicionExcel(DataSource As DataSet, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte() + Dim Retorno As New MemoryStream() + SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) + + Dim FileExcel As ExcelFile = New ExcelFile + For Each Dt As DataTable In DataSource.Tables + + Dt.Columns.Remove("CveDispositivo") + Dt.Columns.Remove("CveTramaEncendido") + Dt.Columns.Remove("CveTramaApagado") + + Dt.Columns("Vehiculo").SetOrdinal(0) + Dt.Columns("Vehiculo").ColumnName = "Vehículo" + + Dt.Columns("VMedia").ColumnName = "Velocidad Media" + Dt.Columns("VMax").ColumnName = "Velocidad Maxima" + + Dt.Columns("FechaEncendido").ColumnName = "Fecha Encendido" + Dt.Columns("FechaApagado").ColumnName = "Fecha Apagado" + Dt.Columns("LatitudInicial").ColumnName = "Latitud Inicial" + Dt.Columns("LatitudFinal").ColumnName = "Latitud Final" + + Dt.Columns("LongitudInicial").ColumnName = "Longitud Inicial" + Dt.Columns("LongitudFinal").ColumnName = "Longitud Final" + + Dt.Columns("Duracion").ColumnName = "Duración" + + Dt.Columns("DireccionInical").SetOrdinal(Dt.Columns.Count - 1) + Dt.Columns("DireccionInical").ColumnName = "Dirección Inicial" + + Dt.Columns("DireccionFinal").SetOrdinal(Dt.Columns.Count - 1) + Dt.Columns("DireccionFinal").ColumnName = "Dirección Final" + + Dim item = FileExcel.Worksheets.Add(Dt.TableName) + item.InsertDataTable(Dt, New InsertDataTableOptions() With + { + .ColumnHeaders = True, + .StartRow = 0, + .StartColumn = 0 + }) + 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) + + Dim columnCount = item.CalculateMaxUsedColumns() + For i = 0 To columnCount + item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1)) + Next + + Next + FileExcel.Save(Retorno, SaveOptions.XlsxDefault) + If DataSet IsNot Nothing Then + DataSet.Clear() + DataSet.Dispose() + End If + Return Retorno.ToArray() + End Function + Private Function GenerarReporteTiempoMuerto(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte() Dim Retorno As Byte() = Nothing Try @@ -953,7 +1178,7 @@ Public Class ClsSisNotificaciones End Function Private Function GenerarReporteEventos(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte() Dim Retorno As Byte() = Nothing - If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then + If DataSource IsNot Nothing Then Try Dim RptParametro As New List(Of CrystalParametro) RptParametro.Add(New CrystalParametro("FechaInicio", FechaI.ToString)) @@ -970,15 +1195,16 @@ Public Class ClsSisNotificaciones End If Return Retorno End Function - Private Function GenerarReporteEventosExcel(DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte() + Private Function GenerarReporteEventosExcel(DtDispositivos As DataTable, DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte() Dim Retorno As New MemoryStream() SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) Dim FileExcel As ExcelFile = New ExcelFile - Dim DtDispositivos As DataTable = DataSource.FiltraParametros("", "", {"CveDispositivo", "Unidad"}) + 'Dim DtDispositivos As DataTable = DataSource.FiltraParametros("", "", {"CveDispositivo", "Unidad"}) + For Each Dr As DataRow In DtDispositivos.Rows Dim CveDispositivo As Integer = Dr("CveDispositivo").ToString().ToEntero() - Dim NombreVehiculo = Dr("Unidad").ToString() + Dim NombreVehiculo = Dr("NombreVehiculo").ToString() Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}") Dim Dt = GenerarDTEventos(NombreVehiculo, FilterRows) @@ -1209,18 +1435,21 @@ Public Class ClsSisNotificaciones dt.Columns.Add("Conductor", Type.GetType("System.String")) dt.Columns.Add("Dirección", Type.GetType("System.String")) - For Each Row As DataRow In rows.Rows - Dim dr = dt.NewRow() - dr("Vehículo") = Row("Unidad").ToString() - dr("Fecha") = Row("Fecha").ToString().ToDateTime() - dr("Evento") = Row("Evento").ToString() - dr("Latitud") = Row("Lat").ToString().ToDouble() - dr("Longitud") = Row("Lon").ToString().ToDouble() - dr("Conductor") = Row("Conductor").ToString() - dr("Dirección") = Row("Direccion").ToString() + If rows IsNot Nothing Then + For Each Row As DataRow In rows.Rows + Dim dr = dt.NewRow() + dr("Vehículo") = Row("Unidad").ToString() + dr("Fecha") = Row("Fecha").ToString().ToDateTime() + dr("Evento") = Row("Evento").ToString() + dr("Latitud") = Row("Lat").ToString().ToDouble() + dr("Longitud") = Row("Lon").ToString().ToDouble() + dr("Conductor") = Row("Conductor").ToString() + dr("Dirección") = Row("Direccion").ToString() + + dt.Rows.Add(dr) + Next + End If - dt.Rows.Add(dr) - Next Return dt End Function @@ -2057,10 +2286,45 @@ Public Class ClsSisNotificaciones End Try End Using Return retorno - End Function + End Function + + Public Function ConsultarDireccionesIgnicion(Dt As DataTable, StrCveTrama As String, StrLatitud As String, StrLongitud As String) As JArray + Dim retorno As JArray = Nothing + Dim posicionesArray = New JArray(From Row As DataRow In Dt + Let index = Dt.Rows().IndexOf(Row) + Select New JObject( + New JProperty("indice", index), + New JProperty("cveTrama", Row(StrCveTrama).ToString.ToEntero), + New JProperty("lat", Row(StrLatitud).ToString.ToDouble), + New JProperty("lon", Row(StrLongitud).ToString.ToDouble) + )) + Dim Base64array = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(posicionesArray.ToString())) + + Using wc As New HttpClient() + Try + Dim Url = New Uri(String.Format("{0}nominatim/reverseMultiple.php", ClsPaginas.UrlDirecciones)) + Dim FormStuff = String.Format("formato=json&posiciones={0}", Base64array) + Dim content = New StringContent(FormStuff, Encoding.UTF8, "application/x-www-form-urlencoded") + Dim response = wc.PostAsync(Url, content).Result + Dim result = response.Content.ReadAsStringAsync().Result + retorno = JArray.Parse(result) + response.Dispose() + content = Nothing + Url = Nothing + FormStuff = Nothing + Catch ex As Exception + OnError("Ocurrió un error al obtener las direcciones", ex) + End Try + End Using + Return retorno + End Function + + + + #Region " IDisposable Support " - ' IDisposable + ' IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then From 697c1f67b3bc53ccfebae58f93fec9cc1bfb2cda Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:36:01 -0700 Subject: [PATCH 03/14] Correciones EdoCuenta --- Ashx/TareasProgramadas.ashx | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/Ashx/TareasProgramadas.ashx b/Ashx/TareasProgramadas.ashx index 7ab7d8c50..4b2861f5b 100644 --- a/Ashx/TareasProgramadas.ashx +++ b/Ashx/TareasProgramadas.ashx @@ -77,15 +77,6 @@ Public Class TareasProgramadas : Implements IHttpHandler URLParametros = Parametros(context.Request("var")) metodo = URLParametros("metodo") 'SI TRAE UN JSON COMO PARAMETRO - ElseIf context.Request.Headers("Content-Type") IsNot Nothing AndAlso context.Request.Headers("Content-Type").Contains("json") AndAlso context.Request.InputStream IsNot Nothing AndAlso (context.Request("var") Is Nothing AndAlso context.Request("metodo") IsNot Nothing) Then - context.Response.ContentType = "application/json" - Using reader As New StreamReader(context.Request.InputStream) - Dim json = reader.ReadToEnd() - Dim JsonRequest As JObject = JObject.Parse(json) - If JsonRequest IsNot Nothing Then - metodo = JsonRequest("Metodo").ToString - End If - End Using ElseIf context.Request("metodo") IsNot Nothing Then metodo = context.Request("metodo").ToString() If context.Request("FechaEnvio") IsNot Nothing Then @@ -422,7 +413,7 @@ Public Class TareasProgramadas : Implements IHttpHandler Dim CveVendedor As Integer = -1 Dim Grupo As Integer = 5 Dim TipoCambio As Integer = 1 - Dim TipoDocto As String = "-1" + Dim TipoDocto As String = "Ing" Dim FechaCorte As DateTime = New DateTime(Now.Year, 12, 31) If ObjMov.GetCxC(FechaI, FechaF, CveCliente, CveSubProyecto, CveVendedor, -1, -1, "-1", UsuarioActual.CveEmpresa, Grupo, -1, TipoCambio, TCEspecifico, TipoDocto, FechaVI, FechaVF, FechaCorte:=FechaCorte, @@ -436,7 +427,8 @@ Public Class TareasProgramadas : Implements IHttpHandler If DTClientes IsNot Nothing OrElse EnviarPendientes Then - 'DTClientes = DTClientes.FiltraParametros("CveCliente IN (227289,227429,227733,227838,228181,228544,229176,229481,230029,230432,230860,230911,230918,231197,231576,232173,232185,233055,233295,233357,233588,236379,236460,237161,237635,238285,238530,238622,238724,239033,239099,239865,239895,239903,240202,240235,240236,240238,240303,240340,262404,262517,264765,264806,264825,264848,264930,265063,265180,265213,265214,265236,265344,265492,265555,265669,265797,265952,265963,266156,266182,268346,268396,268488,268535,268539,268558,268562,268706,268726,268787,268868,268889,268910,268925,269023,269081,269089,272066,272070,272657,273080,273084,275627,276259,276587,281115,283110,284664,285392,287653,288711,291374,292444,295578,296375,296598,302728,303936,306897,307183,311007,320060,320685,320800,323520,323772,325237,326996,327801,330630,331741,332118,337105,340502,341796,342807,343858,355862,358123,365794,371524,375391,377122,377948,378267,380167,381210,381878,383098,383250,383339,383650,384472,385321,385585,386630,387114,388987,396341,396405,396541,401995,404175,408306,416386,416819,420275,438732,447566,447636,450284,464150,464376,468051,475172,475932,476984,477997,478426)") + DTClientes = DTClientes.FiltraParametros("CveCliente NOT IN (228080,228565,228910,233126,231465,232730,232697,227338)") + Dim DtNotificaciones As DataTable = Nothing Dim TieneErrorRegistro As Boolean = False @@ -478,7 +470,10 @@ Public Class TareasProgramadas : Implements IHttpHandler End If End If ObjMovimientos.Dispose() - DTClientes.Dispose() + + If DTClientes IsNot Nothing Then + DTClientes.Dispose() + End If Try If DtNotificaciones IsNot Nothing Then @@ -557,7 +552,7 @@ Public Class TareasProgramadas : Implements IHttpHandler Dim ContaAnt As Integer = 0 Dim FechaCorte As Date = ("9999/01/01").ToDate - Dim TipoDocto2 As String = "'Ing','NC','Dev'" + Dim TipoDocto2 As String = "'Ing'" Dim FechaVencimientoI As String = "-1" Dim FechaVencimientoF As String = "-1" Dim FI As String = "-1" From fac0b93c29d90d3ed2b676c1f9c48a884b890748 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:37:25 -0700 Subject: [PATCH 04/14] Correcion conversion de dolares a pesos pago proveedores --- Bancos/ProveedoresAbonar.aspx | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Bancos/ProveedoresAbonar.aspx b/Bancos/ProveedoresAbonar.aspx index 32b656103..e766e9edc 100644 --- a/Bancos/ProveedoresAbonar.aspx +++ b/Bancos/ProveedoresAbonar.aspx @@ -567,7 +567,7 @@ } - function SumaValores() { + function SumaValores(aplicaTC) { var Importe = 0; var Comision = 0.00; @@ -581,7 +581,13 @@ if (textBoxes[i].value != '') { idd = textBoxes[i].id.replace('C_GvCxP_TxtAbonar_', ''); Facturas = Facturas + (Importe == 0 ? '' : ', ') + $get("C_GvCxP_HplF_" + idd).innerText; - Importe = parseFloat(Importe) + parseFloat(textBoxes[i].value.split(',').join('')); + let importeFactura = 0; + if (aplicaTC && $get('TxtTC') != null) { + importeFactura = parseFloat(FormatoNumero(parseFloat(textBoxes[i].value.split(',').join('')) * parseFloat($get('TxtTC').value), 2).split(',').join('')); + } else { + importeFactura = parseFloat(textBoxes[i].value.split(',').join('')); + } + Importe = parseFloat(Importe) + importeFactura; } } if (textBoxes[i].id.indexOf('C_GvCxP_TxtComision') >= 0) { @@ -641,13 +647,15 @@ } function CambiaPesosDolares() { - $get('TxtImporte').value = FormatoNumero(SumaValores(), 2); - $('#LtlTotalMXN').text(FormatoNumero(SumaValores(), 2)) + let ImporteDolares = SumaValores(true); + + $get('TxtImporte').value = FormatoNumero(ImporteDolares, 2); + $('#LtlTotalMXN').text(FormatoNumero(ImporteDolares, 2)) if ($("#LbImporteME").length) { - $get('LbImporteME').innerHTML = '$ ' + $get('TxtImporte').value + ' USD'; - $get('TxtImporte').value = FormatoNumero(ToDouble($get('TxtImporte').value.replace(',', '')) * ToDouble($get('TxtTC').value), 2); - $get('LtlTotalMXN').value = FormatoNumero(ToDouble($get('TxtImporte').value) * ToDouble($get('TxtTC').value), 2); + $get('LbImporteME').innerHTML = '$ ' + FormatoNumero(SumaValores(false),2) + ' USD'; + $get('TxtImporte').value = FormatoNumero(ToDouble(ImporteDolares), 2); + $get('LtlTotalMXN').value = FormatoNumero(ToDouble(ImporteDolares), 2); } if ($get('TxtTotal') != null) { From c30ff59853d69d93e87d52b54bc6a5c3499afa97 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:43:18 -0700 Subject: [PATCH 05/14] Error al guardar prepoliza --- Contabilidad/RegPrePolizaS.aspx.vb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index c24a32347..6439c3dc0 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -1045,8 +1045,9 @@ Partial Class ContabilidadC_RegPrePolizaS Else MsgError = "No se pudo insertar la póliza" End If - Catch ex As Exception - MsgError = "Error" + Catch ex As Exception + MsgError = "Ocurrió un error al guardar la póliza" + OnError("Ocurrió un error al guardar la póliza.", ex) End Try If MsgError = "" Then @@ -1351,6 +1352,8 @@ Partial Class ContabilidadC_RegPrePolizaS Dim dr As DataRow = DtMovimientos.NewRow dr("IdCtaContable") = IdCtaContable dr("CveCuenta") = DdlCuentaContableE.SelectedValue + 'dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta + dr("CodigoNombreCuenta") = DdlCuentaContableE.SelectedItem.Text dr("ConceptoContable") = DdlConceptosContablesE.SelectedItem.Text dr("CveConceptoContable") = DdlConceptosContablesE.SelectedValue dr("Concepto") = TxtConceptoE.Text From 61f8cae7acc1b6ff420bb5edf606497f08d94d43 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:43:39 -0700 Subject: [PATCH 06/14] Carga de cuentas de lineas de telefono --- GPS/WizardDispositivos.aspx.cs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/GPS/WizardDispositivos.aspx.cs b/GPS/WizardDispositivos.aspx.cs index 0c02dfe42..7f08c3690 100644 --- a/GPS/WizardDispositivos.aspx.cs +++ b/GPS/WizardDispositivos.aspx.cs @@ -471,18 +471,29 @@ public partial class GPS_WizardDispositivos : ClsPaginas { ClsGPS ObjGPS = new ClsGPS(); ObjGPS.ProveedoresComunicacionCuentasGet(-1, UsuarioActual.CveEmpresa); - DdlLineaTelefono.SelectedIndex = -1; - DdlLineaTelefono.DataSource = ObjGPS.DtResultados.FiltraParametros($"CveDispositivo is NULL OR CveDispositivo = {CveDispositivo}"); + + DataTable DtProveedores = ObjGPS.DtResultados.FiltraParametros($"CveDispositivo IS NULL OR CveDispositivo = {CveDispositivo}"); + DdlLineaTelefono.DataSource = DtProveedores; + ObjGPS.Dispose(); + DdlLineaTelefono.DataBind(); DdlLineaTelefono.Items.Insert(0, new ListItem("Seleccione", "-1")); - DdlLineaTelefono.SelectedValue = "-1"; - DataRow drow = ObjGPS.DtResultados.FiltroPrimero($"CveDispositivo is NULL OR CveDispositivo = {CveDispositivo}"); + + DataRow drow = DtProveedores.FiltroPrimero($"CveDispositivo IS NULL OR CveDispositivo = {CveDispositivo}"); if (drow != null) { - DdlLineaTelefono.SelectedValue = drow["CveProveedorComunicacionCuenta"].ToString(); + DdlLineaTelefono.SelectedValueExist(drow["CveProveedorComunicacionCuenta"].ToString()); } + + if (DtProveedores != null) + { + DtProveedores.Dispose(); + DtProveedores = null; + } + upLinea.Update(); + UpModelo.Update(); } protected void DdlProveedorComunicacion_SelectedIndexChanged1(object sender, EventArgs e) { From c31c20ce9434f40729e250c0c2a89d24cc73b357 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:44:08 -0700 Subject: [PATCH 07/14] =?UTF-8?q?Tama=C3=B1os=20de=20columnas,=20popup=20e?= =?UTF-8?q?xistencias=20almacen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/PopUpExistenciasAlmacen.aspx | 42 +++++++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx b/Inventarios/PopUpExistenciasAlmacen.aspx index db5dc9c11..a5f1f5d49 100644 --- a/Inventarios/PopUpExistenciasAlmacen.aspx +++ b/Inventarios/PopUpExistenciasAlmacen.aspx @@ -141,16 +141,48 @@
- + - + <%----%> + + + + + + + + - + <%-- --%> + + + + + + + + - - + <%----%> + + + + + + + + + <%----%> + + + + + + + + From 828302a80e3591b087e0e3e7cd8fd39106bd9f42 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:46:44 -0700 Subject: [PATCH 08/14] Error al aceptar/rechazar cancelacion --- Ventas/RepCancelacionesPorAtender.aspx.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Ventas/RepCancelacionesPorAtender.aspx.cs b/Ventas/RepCancelacionesPorAtender.aspx.cs index 98c4074f8..8de594de5 100644 --- a/Ventas/RepCancelacionesPorAtender.aspx.cs +++ b/Ventas/RepCancelacionesPorAtender.aspx.cs @@ -107,6 +107,7 @@ public partial class Ventas_RepCancelacionesPorAtender : ClsPaginas else { Alert("Error en la aceptación: " + resp.Descripcion, ModExtensiones.TipoMensaje.MsgError); + this.GuardaLog(resp.Descripcion); } //} //else @@ -118,7 +119,8 @@ public partial class Ventas_RepCancelacionesPorAtender : ClsPaginas } catch (Exception ex) { - Alert(ex.ToString(), ModExtensiones.TipoMensaje.MsgError); + this.OnError("Ocurrió un error al aceptar la cancelación", ex); + //Alert(ex.ToString(), ModExtensiones.TipoMensaje.MsgError); } } protected void btnRechazar_Click(object sender, EventArgs e) @@ -152,12 +154,14 @@ public partial class Ventas_RepCancelacionesPorAtender : ClsPaginas else { Alert("Error en la aceptación: " + resp.Descripcion, ModExtensiones.TipoMensaje.MsgError); + this.GuardaLog(resp.Descripcion); } } } catch (Exception ex) { - Alert(ex.ToString(), ModExtensiones.TipoMensaje.MsgError); + //Alert(ex.ToString(), ModExtensiones.TipoMensaje.MsgError); + this.OnError("Ocurrió un error al rechazar la cancelación", ex); } } private string DecodeBase64(string strXMLCodificado) From abab73cb74d3a888953ae4b43531b54cc678f48c Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:47:10 -0700 Subject: [PATCH 09/14] Boton cancelar envio --- Ventas/RepCancelacionesPorRespuesta.aspx.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs index 9853c6c1e..f6aba3b50 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs +++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs @@ -89,7 +89,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas var resp = VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCCliente, Total); if (resp.EnviarAcuse) { - Alert(resp.Mensaje,TipoMensaje.MsgConfirmacion,"BtnEnviarMailCancelacion();"); + Alert(resp.Mensaje,TipoMensaje.MsgConfirmacion,"BtnEnviarMailCancelacion();",TextoConfirmacion:"Enviar",TextoSegundoBoton:"Cancelar"); } else { From 439610d8883d694ab0a088fe0ff4b455af4217cc Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 29 Nov 2021 16:59:53 -0700 Subject: [PATCH 10/14] Correciones de restricciones de credito --- Ventas/Ventas.aspx | 23 +----------- Ventas/Ventas.aspx.vb | 81 ++++++++++++++++++++----------------------- 2 files changed, 39 insertions(+), 65 deletions(-) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 7ae3a186d..b74acaff7 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -10,7 +10,7 @@ padding: 0px 5px; } - .nolineheight {line-height: 1; + .nolineheight { line-height: 1; } .claseesconder { @@ -1048,7 +1048,6 @@

- <%-- @@ -6438,9 +6437,6 @@ DataKeyNames="CveVenta,CveMetodoPago33,CveFormaPago33" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" GridLines="None"> - - - @@ -7658,12 +7654,6 @@