Option Explicit On Option Strict On Imports System.Data Imports ADSNetLibrary.Helpers Imports ADSNetLibrary.SIGAPI.Helpers Imports Extensiones.ModExtensiones Partial Class ListadoBoletos Inherits ClsPaginas #Region "Propiedades" 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 #End Region #Region "Carga Página" 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 #End Region 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(0, 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.CancelarViaje(CveViajePasajero) 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 End Class