From 552560597692d75c3dab049e231c88be2575a200 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 22 Feb 2024 20:45:08 -0700 Subject: [PATCH] -- mejoras --- App_Code/Modelos.vb | 4 + Transportes/Boletos.aspx.vb | 217 +++++++++++-------------- Transportes/RepContratoDetalle.aspx | 2 +- Transportes/RepContratoDetalle.aspx.vb | 60 +++++-- 4 files changed, 145 insertions(+), 138 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 4b82eabb7..b911b743d 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -5233,6 +5233,7 @@ Namespace Modelos Dim ObjVentas As New ClsVentas() Dim ObjTransportes As New ClsTransportes(ObjVentas.IniciaTransacSQL()) Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL()) + Dim ObjEventos As New ClsOIEventos(ObjVentas.IniciaTransacSQL()) Try Dim Row As DataRow = Me.DtDetalle.Select($"CveViajePasajero={CveViajePasajero}").FirstOrDefault() @@ -5258,6 +5259,9 @@ Namespace Modelos TieneError = True End If End If + If Not ObjEventos.AddEventoBitacora("se canceló el boleto:" & Row("Obs").ToString(), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then + ErrorList.Add("Ocurrió un error al agregar la bitacora de cancelación de boleto.") + End If If Not TieneError Then TieneError = Not RegenerarPrePolizas(ObjVentas.IniciaTransacSQL()) diff --git a/Transportes/Boletos.aspx.vb b/Transportes/Boletos.aspx.vb index 124d7ce1e..e77c4569e 100644 --- a/Transportes/Boletos.aspx.vb +++ b/Transportes/Boletos.aspx.vb @@ -31,6 +31,14 @@ Partial Class Boletos ViewState("CveViaje") = value End Set End Property + Private Property CveSubProyecto As Integer + Get + Return ViewState("CveSubProyecto").ToString().ToEntero + End Get + Set(value As Integer) + ViewState("CveSubProyecto") = value + End Set + End Property Private Property Contrato As DataTable Get @@ -66,7 +74,7 @@ Partial Class Boletos Response.Redirect("/Transportes/RepViajes.aspx") End If AsientoSeleccionado = "" - CveViaje = Request.QueryString("CveViaje").ToEntero + CveViaje = IfNull(Request("CveViaje"), "0").ToString.ToEntero If CveViaje > 0 Then CargaDatos() End If @@ -84,6 +92,7 @@ Partial Class Boletos If ObjContratos.DtResultados IsNot Nothing AndAlso ObjContratos.DtResultados.Rows.Count > 0 Then TxtRuta.Text = Contrato.Rows(0)("SubProyecto").ToString TxtFecha.Text = Contrato.Rows(0)("FechaInicial").ToString.ToDate.ToShortDateString + CveSubProyecto = Contrato.Rows(0)("CveSubProyecto").ToString.ToEntero DtPasajeros = New DataTable DtPasajeros.Columns.Add("CveViajePasajero", GetType(Integer)) DtPasajeros.Columns.Add("Numero", GetType(Integer)) @@ -126,15 +135,11 @@ Partial Class Boletos Response.Redirect($"~/Transportes/RepContratos.aspx") End If - - 'Boletos Vendidos End Sub Protected Sub InicializaCombos() - Dim CveSubProyecto As Integer = Contrato.Rows(0)("CveSubProyecto").ToString.ToEntero - 'Lista Destinos''carga específicos Dim ObjDestinos As New ClsTransportes() @@ -144,25 +149,10 @@ Partial Class Boletos DdlPartida.DataSource = DtDestinos.FiltraParametros("", DistinctColumns:={"CveDestinoOrigen", "Partida"}) DdlPartida.DataBind() DdlPartida.Items.Insert(0, New ListItem("Seleccione Partida", "-1")) - - 'DdlDestino.DataSource = DtDestinos - 'DdlDestino.DataBind() - 'DdlDestino.Items.Insert(0, New ListItem("Seleccione Destino", "-1")) End If End If - - 'If ObjDestinos.GetDestinos(CveSubProyecto:=CveSubProyecto) Then - ' If ObjDestinos.DtResultados.Rows.Count > 0 Then - ' DdlPartida.DataSource = ObjDestinos.DtResultados - ' DdlPartida.DataBind() - ' DdlPartida.Items.Insert(0, New ListItem("Seleccione Partida", "-1")) - - ' DdlDestino.DataSource = ObjDestinos.DtResultados - ' DdlDestino.DataBind() - ' DdlDestino.Items.Insert(0, New ListItem("Seleccione Destino", "-1")) - ' End If - 'End If ObjDestinos.Dispose() + End Sub Protected Sub CotizarTarifa() @@ -211,112 +201,99 @@ Partial Class Boletos Dim SbAlert As New StringBuilder() Dim Retorno As New Modelos.Factura.MMensajeFactura() - Dim ObjTransporte As New ClsTransportes() ObjTransporte.IniciaTransacSQL() - Dim TieneError As Boolean = False - Try - For Each dr As DataRow In DtPasajeros.Rows - Dim Nombre, Visa, Celular, Obs, Asiento As String - Dim Sexo As Boolean - Dim Importe As Decimal = 0 - Dim CveDestinoOrigen, CveDestinoFinal As Integer + For Each dr As DataRow In DtPasajeros.Rows + Dim Nombre, Visa, Celular, Obs, Asiento As String + Dim Sexo As Boolean + Dim Importe As Decimal = 0 + Dim CveDestinoOrigen, CveDestinoFinal As Integer - CveDestinoOrigen = dr("CveDestinoOrigen").ToString.ToEntero - CveDestinoFinal = dr("CveDestinoFinal").ToString.ToEntero - Importe = dr("Importe").ToString.ToDecimal - Asiento = dr("Asiento").ToString - Nombre = dr("Nombre").ToString - Visa = dr("Visa").ToString - Celular = dr("Celular").ToString - Sexo = dr("CveSexo").ToString.ToBool - Obs = dr("Observaciones").ToString + CveDestinoOrigen = dr("CveDestinoOrigen").ToString.ToEntero + CveDestinoFinal = dr("CveDestinoFinal").ToString.ToEntero + Importe = dr("Importe").ToString.ToDecimal + Asiento = dr("Asiento").ToString + Nombre = dr("Nombre").ToString + Visa = dr("Visa").ToString + Celular = dr("Celular").ToString + Sexo = dr("CveSexo").ToString.ToBool + Obs = dr("Observaciones").ToString - Dim CveViajePasajero = ObjTransporte.AddViajesPasajeros(CveViaje, CveDestinoOrigen, CveDestinoFinal, Importe, Asiento.ToEntero, Nombre, Visa, Celular, Sexo, Obs, UsuarioActual.CveUsuario, UsuarioActual.CveVendedor) + Dim CveViajePasajero As Integer = ObjTransporte.AddViajesPasajeros(CveViaje, CveDestinoOrigen, CveDestinoFinal, Importe, Asiento.ToEntero, Nombre, Visa, Celular, Sexo, Obs, UsuarioActual.CveUsuario, UsuarioActual.CveVendedor) + If CveViajePasajero < 1 Then + TieneError = True + SbAlert.Append("Ocurrió un error al generar el viaje") + Exit For + End If - If CveViajePasajero < 1 Then - TieneError = True - SbAlert.Append("Ocurrió un error al generar el viaje") - Exit For - End If + dr("CveViajePasajero") = CveViajePasajero + Next - dr("CveViajePasajero") = CveViajePasajero - Next + If Not TieneError Then Retorno = CrearRemision(ObjTransporte) + If Retorno IsNot Nothing Then + TieneError = Retorno.TieneError If Not TieneError Then - Retorno = CrearRemision(ObjTransporte) - End If - If Retorno IsNot Nothing Then - TieneError = Retorno.TieneError - - If Not TieneError Then - - If Not Retorno.TieneError Then - If Retorno.CveVenta <= 0 Then - Retorno.TieneError = True - End If - Else - TieneError = True - SbAlert.Append("Ocurrió un error al generar la factura") - End If - - If Retorno.Mensajes IsNot Nothing AndAlso Retorno.Mensajes.Count > 0 Then - For Each Mensaje As String In Retorno.Mensajes - SbAlert.AppendFormat("{0}
", Mensaje) - Next - Else - TieneError = True + If Not Retorno.TieneError Then + If Retorno.CveVenta <= 0 Then + Retorno.TieneError = True End If Else - If Retorno.Mensajes IsNot Nothing AndAlso Retorno.Mensajes.Count > 0 Then - For Each Mensaje As String In Retorno.Mensajes - SbAlert.AppendFormat("{0}
", Mensaje) - Next - End If + TieneError = True + SbAlert.Append("Ocurrió un error al generar la factura") + End If + + If Retorno.Mensajes IsNot Nothing AndAlso Retorno.Mensajes.Count > 0 Then + For Each Mensaje As String In Retorno.Mensajes + SbAlert.AppendFormat("{0}
", Mensaje) + Next + Else + TieneError = True End If Else - TieneError = True - SbAlert.Append("Ocurrió un error al generar la factura") + If Retorno.Mensajes IsNot Nothing AndAlso Retorno.Mensajes.Count > 0 Then + For Each Mensaje As String In Retorno.Mensajes + SbAlert.AppendFormat("{0}
", Mensaje) + Next + End If End If - - If SbAlert.Length = 0 Then - SbAlert.Append("Ocurrió un error al generar la factura") - End If - - Catch ex As Exception + Else TieneError = True - SbAlert.Append("Ocurrió un error al generar la factura." + ex.ToString()) - GuardaLog(ex.ToString()) - Finally - If TieneError Then - ObjTransporte.RollBack() - ObjTransporte.Dispose() - Else - ObjTransporte.Commit() - ObjTransporte.Dispose() + SbAlert.Append("Ocurrió un error al generar la factura") + End If - SbAlert.Append("El boleto se genero correctamente.") + If SbAlert.Length = 0 Then + SbAlert.Append("Ocurrió un error al generar la factura") + End If - DtPasajeros.Clear() - GvB.DataSource = DtPasajeros - GvB.DataBind() + If TieneError Then + ObjTransporte.RollBack() + ObjTransporte.Dispose() + Else + ObjTransporte.Commit() + ObjTransporte.Dispose() - DdlPartida.SelectedIndex = -1 - 'DdlPartida.SelectedValueExist("-1") + SbAlert.Append("El boleto se genero correctamente.") - DdlDestino.SelectedIndex = -1 - 'DdlDestino.SelectedValueExist("-1") + DtPasajeros.Clear() + GvB.DataSource = DtPasajeros + GvB.DataBind() - AsientoSeleccionado = "" - CargaDatos() - End If + DdlPartida.SelectedIndex = -1 + 'DdlPartida.SelectedValueExist("-1") - Alert(SbAlert.ToString(), If(TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), ShowCloseButton:=False) - End Try + DdlDestino.SelectedIndex = -1 + 'DdlDestino.SelectedValueExist("-1") + + AsientoSeleccionado = "" + CargaDatos() + End If + + Alert(SbAlert.ToString(), If(TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), ShowCloseButton:=False) UpPanel.Update() @@ -394,13 +371,16 @@ Partial Class Boletos End Sub Private Function CrearRemision(ByRef objTrans As ClsTransportes) As Modelos.Factura.MMensajeFactura + Dim Retorno As New Modelos.Factura.MMensajeFactura - - Dim CveCliente As Integer = 1154164 + Dim CveCliente As Integer = 1172306 ' 1154164 Dim CveMoneda As Integer = 2 - Dim CveSubProyecto As Integer = -1 + Dim CvePSBoleto As Integer = 986337 '912720 - Dim CvePSBoleto As Integer = 912720 + If CveSubProyecto <= 0 Then + Retorno.Mensajes.Add("No se pudo cargar el subproyecto") + Return Retorno + End If If EsProduccion Then CvePSBoleto = 986337 @@ -415,14 +395,8 @@ Partial Class Boletos Dim ObjFactura = Modelos.Factura.CrearVentaNueva(UsuarioActual, -1, CveCliente, CveMoneda, "Rem") If ObjFactura IsNot Nothing Then - 'TOMA EL SUBPROYECTO DEL CLIENTE - CveSubProyecto = ObjFactura.Cliente.CveSubProyecto - - If CveSubProyecto <= 0 Then - Retorno.Mensajes.Add("No se pudo cargar el subproyecto") - Return Retorno - End If - + ObjFactura.CveMoneda = CveMoneda + ObjFactura.TipoCambio = GlobalTipoCambio(DateTime.Now).ToDecimal ObjFactura.CveSubProyecto = CveSubProyecto ObjFactura.CveSubProyectoCobranza = CveSubProyecto ObjFactura.CveSubProyectoEjecucion = CveSubProyecto @@ -430,7 +404,7 @@ Partial Class Boletos ObjFactura.SetSubProyectoMatriz() For Each Dr As DataRow In DtPasajeros.Rows - Dim Obs = Dr("Observaciones").ToString + Dim Obs = "Asiento #" & Dr("Asiento").ToString Dim Importe = Dr("Importe").ToString.ToDecimal() If Importe <= 0 Then @@ -439,9 +413,7 @@ Partial Class Boletos End If Dim PorcentajeIVA As Decimal = 0 - - Dim DrPS As DataRow = ClsPaginas.GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSBoleto).FiltroPrimero("") ' Estado = -1 - + Dim DrPS As DataRow = ClsPaginas.GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSBoleto).FiltroPrimero("") ' Estado = -1 If DrPS Is Nothing Then Retorno.Mensajes.Add("No se pudo agregar el producto") Return Retorno @@ -464,7 +436,6 @@ Partial Class Boletos Next ObjFactura.CalculaTotales() - Try Retorno = ObjFactura.EmitirFactura(False, Transac:=objTrans.IniciaTransacSQL()) Catch ex As Exception @@ -482,10 +453,4 @@ Partial Class Boletos Return Retorno End Function - 'Protected Sub TimerActualizar_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles timerActualizar.Tick - ' ScriptManager.RegisterStartupScript(Me, Me.GetType(), "ActualizarTiempo", "actualizarTiempo();", True) - ' UpTimer.Update() - 'End Sub - - End Class diff --git a/Transportes/RepContratoDetalle.aspx b/Transportes/RepContratoDetalle.aspx index c7940de17..d5bf272b1 100644 --- a/Transportes/RepContratoDetalle.aspx +++ b/Transportes/RepContratoDetalle.aspx @@ -264,7 +264,7 @@ + data-sort="true" DataKeyNames="CveViajePasajero, CveContrato, CveDestinoFinal, CveVendedor, Importe, Asiento, Nombre, Visa, Celular, Observacion, Estatus, CveUsuario, FechaIng, Sexo, Partida, Destino"> diff --git a/Transportes/RepContratoDetalle.aspx.vb b/Transportes/RepContratoDetalle.aspx.vb index f9a781a59..c73f3f07e 100644 --- a/Transportes/RepContratoDetalle.aspx.vb +++ b/Transportes/RepContratoDetalle.aspx.vb @@ -99,25 +99,63 @@ Partial Class RepContratoDetalle Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) - Dim CveViajePasajero As String = GvRow.DataKey("CveViajePasajero") + Dim CveViajePasajero As Integer = GvRow.DataKey("CveViajePasajero").ToEntero() Dim Estatus As String = GvRow.DataKey("Estatus") Dim cambiarEstatus As Boolean = Not Estatus.ToBool - Dim ObjTransportes As New ClsTransportes - ObjTransportes.IniciaTransacSQL() + + Dim TieneError As Boolean = False Try - If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero.ToEntero, Activar:=cambiarEstatus, Estatus:=cambiarEstatus) Then - If Not cambiarEstatus Then - Alert($"El boleto ha sido cancelado correctamente.") + 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 - Alert($"El boleto ha sido reactivado correctamente.") + '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 - ObjTransportes.Commit() Catch ex As Exception - ObjTransportes.RollBack() - Alert($"No se pudo cambiar el estatus del boleto {ex}", TipoMensaje.MsgError) + TieneError = True + GuardaLog(ex.ToString()) Finally - ObjTransportes.Dispose() + 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