Option Explicit On Option Strict On Imports System.Data Imports ADSNetLibrary.Helpers Imports ADSNetLibrary.SIGAPI.Helpers Imports Extensiones.ModExtensiones Imports Microsoft.Reporting.WebForms Partial Class ListadoBoletos Inherits ClsPaginas Private Property CveViaje As Integer Get Return ViewState("CveViaje").ToString().ToEntero End Get Set(value As Integer) ViewState("CveViaje") = value End Set End Property Private Property Ruta As String Get Return ViewState("Ruta").ToString() End Get Set(value As String) ViewState("Ruta") = value End Set End Property Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then If Request.QueryString("CveViaje") Is Nothing Then Response.Redirect("/Transportes/RepViajes.aspx") End If CveViaje = Request.QueryString("CveViaje").ToEntero Ruta = IfNull(Request("Ruta"), "").ToString LblViaje.Text = Ruta CargaDatos() End If End Sub Private Sub CargaDatos() Dim ObjTransportes As New ClsTransportes If ObjTransportes.GetViajesPasajeros(CveViaje) Then GvBoletos.DataSource = ObjTransportes.DtResultados End If ObjTransportes.Dispose() GvBoletos.DataBind() End Sub Protected Sub ImprimirBoleto(sender As Object, e As EventArgs) Dim dtResult As New DataTable() Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim Fecha As Date = GvRow.DataKey("FechaIng").ToDate Dim Importe As Decimal = GvRow.DataKey("Importe").ToDecimal Dim params As New List(Of ReportParameter) From { New ReportParameter("Ruta", Ruta), New ReportParameter("Origen", GvRow.DataKey("Partida")), New ReportParameter("Destino", GvRow.DataKey("Destino")), New ReportParameter("FechaSalida", Fecha.ToShortDateString()), New ReportParameter("HoraSalida", Fecha.ToString("HH:mm")), New ReportParameter("Nombre", GvRow.DataKey("Nombre")), New ReportParameter("Visa", GvRow.DataKey("Visa")), New ReportParameter("Celular", GvRow.DataKey("Celular")), New ReportParameter("Importe", Importe.FormatoNumero(2)), New ReportParameter("TipoBoleto", "Tipo Boleto"), New ReportParameter("Agencia", GvRow.DataKey("Agencia")), New ReportParameter("TelefonoAgencia", GvRow.DataKey("TelefonoAgencia")), New ReportParameter("Asiento", GvRow.DataKey("Asiento")) } ImprimirPDFStimul($"{UsuarioActual.Empresa.Ruta}Formatos\Boleto.mrt", dtResult, params, NombreArchivo:="Boleto") 'Empresas/Grales/Formatos/EntradaSalida.mrt 'Empresas/188/Formatos/Boleto.mrt End Sub Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim CveViajePasajero As Integer = GvRow.DataKey("CveViajePasajero").ToEntero() Dim Estatus As String = GvRow.DataKey("Estatus") Dim cambiarEstatus As Boolean = Not Estatus.ToBool Dim TieneError As Boolean = False Try Dim DtRem As DataTable = Nothing Dim ObjTran As New ClsTransportes If ObjTran.GetRemisionBoleto(CveViajePasajero.ToEntero, UsuarioActual.CveEmpresa) Then DtRem = ObjTran.DtResultados.Copy() End If ObjTran.Dispose() If DtRem IsNot Nothing Then If DtRem.Rows.Count > 0 Then Dim CveVenta As Integer = DtRem.Rows(0)("CveVenta").ToString().ToEntero() Dim BoletosVigentes As Integer = DtRem.Rows(0)("BoletosVigentes").ToString().ToEntero() If CveVenta > 0 Then Dim ObjRem As New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, VerificaAlmacen:=False) If ObjRem.DtDetalle.Rows.Count > 0 Then 'SI SOLO TIENE UNA PARTIDA CANCELAR LA REMISION If ObjRem.DtDetalle.Rows.Count = 1 OrElse BoletosVigentes <= 1 Then Dim RespCancelacion = ObjRem.CancelarFactura(False, ValidarSAT:=False, CancelarBoletos:=True, ListaRemisionesCancelar:=New List(Of Integer)) If RespCancelacion IsNot Nothing Then TieneError = RespCancelacion.HuboError Else TieneError = True End If Else TieneError = Not ObjRem.CancelarBoleto(CveViajePasajero) End If Else TieneError = True End If End If Else 'SI NO TIENE VENTA, SOLO CANCELAR EL BOLETO Dim ObjTran2 As New ClsTransportes If Not ObjTran2.UpdateViajesPasajeros(CveViajePasajero, Activar:=cambiarEstatus, Estatus:=cambiarEstatus) Then TieneError = True End If ObjTran2.Dispose() End If End If Catch ex As Exception TieneError = True GuardaLog(ex.ToString()) Finally If TieneError Then Alert($"Ocurrió un error al cancelar el boleto.", TipoMensaje.MsgError) Else Alert($"El boleto ha sido cancelado correctamente.") End If CargaDatos() End Try End Sub Protected Sub GvBoletos_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("BtnImprimir")) End If End Sub End Class