Option Explicit On Option Strict On Imports System.Data Imports Extensiones.ModExtensiones Partial Class ListadoViajes Inherits ClsPaginas #Region "Propiedades" Private Property CveContrato As String Get Return ViewState("CveContrato").ToString() End Get Set(value As String) ViewState("CveContrato") = 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 Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then CargaDatos() InicializaCombos() End If End Sub Private Sub InicializaCombos() 'Lista Rutas' Dim ObjRutas As New ClsTransportes() If ObjRutas.GetRutas(-1, -1, -1, "", True, DateTime.Now) Then If ObjRutas.DtResultados.Rows.Count > 0 Then DdlRutas.DataSource = ObjRutas.DtResultados DdlRutas.DataBind() DdlRutas.Items.Insert(0, New ListItem("Seleccione Ruta", "")) End If End If 'Lista Destinos' If ObjRutas.GetDestinos() Then If ObjRutas.DtResultados.Rows.Count > 0 Then DdlPartida.DataSource = ObjRutas.DtResultados DdlPartida.DataBind() DdlPartida.Items.Insert(0, New ListItem("Seleccione Partida", "")) DdlDestino.DataSource = ObjRutas.DtResultados DdlDestino.DataBind() DdlDestino.Items.Insert(0, New ListItem("Seleccione Destino", "")) End If End If ObjRutas.Dispose() End Sub Private Sub CargaDatos() 'Carga Viajes Dim ObjContratos As New ClsContratos If ObjContratos.GetContratos(-1, UsuarioActual.CveEmpresa, TipoContrato:=35) Then GvContratos.DataSource = ObjContratos.DtResultados GvContratos.DataBind() End If End Sub Private Sub LBAgregarViaje_Click(sender As Object, e As EventArgs) Handles LBAgregarViaje.Click MostrarModal() End Sub Public Sub MostrarModal() 'Generar Folio Dim CveSubProyecto As Integer = GlobalDTSubProyectos(-1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", "TipoSucursal = 1").ToEntero Dim ObjFolio As New ClsGralFolios If ObjFolio.GetFolios("Con", UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyecto) Then If ObjFolio.DtResultados.Rows.Count > 0 Then Dim drr As DataRow = ObjFolio.DtResultados.FiltroPrimero("") LbFolio.Text = $"{drr("Serie").ToString}-{drr("FActual").ToString}" End If End If IsMasivo.Visible = True DdlRutas.Text = "" TxtFechaViaje.Text = "" DdlPartida.Text = "" DdlDestino.SelectedValue = "" BtnGuardar.Text = "Agregar" ModalLabel.InnerHtml = "Agregar Nuevo Viaje" RegistraScript(String.Format("$('#{0}').modal('show');", "ModalAgregar")) End Sub Protected Sub AddViaje(sender As Object, e As EventArgs) 'Generador de Viajes Masivos If IsMasivo.Checked = True Then If TxtFechaInicial.Text = "" Or TxtFrecuencia.Text = "" Then Alert("Es necesario agregar la fecha inicial y la frecuencia", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim CveMasivo As Integer = DateTimeOffset.Now.ToUnixTimeSeconds().ToEntero Dim fechaInicial As DateTime = TxtFechaInicial.Text.ToDate Dim fechasGeneradas As New List(Of DateTime)() While fechaInicial.Year = DateTime.Now.Year fechasGeneradas.Add(fechaInicial) fechaInicial = fechaInicial.AddDays(TxtFrecuencia.Text.ToEntero) End While Try For Each fecha As DateTime In fechasGeneradas Dim ObjFolio As New ClsGralFolios Dim ObjContratos As New ClsContratos 'Generamos folio Dim CveSubProyecto As Integer = GlobalDTSubProyectos(-1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", "TipoSucursal = 1").ToEntero If ObjFolio.GetFolios("Con", UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyecto) Then If ObjFolio.DtResultados.Rows.Count > 0 Then Dim drr As DataRow = ObjFolio.DtResultados.FiltroPrimero("") LbFolio.Text = $"{drr("Serie").ToString}-{drr("FActual").ToString}" End If End If 'Agregamos contrato ObjContratos.IniciaTransacSQL() If ObjContratos.AddContratos(LbFolio.Text, "", "", UsuarioActual.CveProveedor, -1, -1, fecha, fecha, "", "", 10, -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, -1, -1, -1, -1, 0, CveContratoTipo:=35, CveContratosEstatus:=50, CveRuta:=DdlRutas.Text.ToEntero, CvePartida:=DdlPartida.SelectedValue.ToEntero, CveDestino:=DdlDestino.SelectedValue.ToEntero, CveMasivo:=CveMasivo, CveVendedor:=UsuarioActual.CveVendedor) > 0 Then ObjContratos.Commit() End If 'Actualizamos Folio If ObjFolio.UpdateFolioActual(CveSubProyecto, "Con", True, UsuarioActual.CveEmpresa) Then ObjFolio.Dispose() End If Next Alert("Viajes Masivos generados correctamente.") Catch ex As Exception Dim ObjContratos As New ClsContratos ObjContratos.RollBack() Alert("Ocurrió un error al generar viajes masivo", TipoMensaje.MsgError) Finally DdlRutas.Text = "" TxtFechaViaje.Text = "" DdlPartida.Text = "" DdlDestino.SelectedValue = "" Dim ObjContratos As New ClsContratos ObjContratos.Dispose() CargaDatos() End Try Else Dim ObjContratos As New ClsContratos ObjContratos.IniciaTransacSQL() Try 'Agregamos Viaje If BtnGuardar.Text = "Agregar" Then If ObjContratos.AddContratos(LbFolio.Text, "", "", UsuarioActual.CveProveedor, -1, -1, TxtFechaViaje.Text.ToDate, TxtFechaViaje.Text.ToDate, "", "", 10, -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, -1, -1, -1, -1, 0, CveContratoTipo:=35, CveContratosEstatus:=50, CveRuta:=DdlRutas.Text.ToEntero, CvePartida:=DdlPartida.SelectedValue.ToEntero, CveDestino:=DdlDestino.SelectedValue.ToEntero) > 0 Then ObjContratos.Commit() Alert("Viaje agregado correctamente.") End If Else 'Actualizamos Viaje If ObjContratos.UpdateContratos(CveContrato.ToEntero, LbFolio.Text, "", "", UsuarioActual.CveProveedor, -1, -1, TxtFechaInicial.Text.ToDate, TxtFechaInicial.Text.ToDate, "", "", 10, -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, -1, -1, -1, -1, 0, CveContratoTipo:=35, CveContratosEstatus:=50, CveRuta:=DdlRutas.Text.ToEntero, CvePartida:=DdlPartida.SelectedValue.ToEntero, CveDestino:=DdlDestino.SelectedValue.ToEntero) = True Then ObjContratos.Commit() Alert("El viaje se actualizó correctamente.") End If End If Catch ex As Exception Alert("Ocurrió un error al generar viaje", TipoMensaje.MsgError) ObjContratos.RollBack() Finally 'Reiniciamos modal DdlRutas.Text = "" TxtFechaViaje.Text = "" DdlPartida.Text = "" DdlDestino.SelectedValue = "" 'Actualizamos Folio Dim CveSubProyecto As Integer = GlobalDTSubProyectos(-1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", "TipoSucursal = 1").ToEntero Dim ObjFolios As New ClsGralFolios If ObjFolios.UpdateFolioActual(CveSubProyecto, "Con", True, UsuarioActual.CveEmpresa) Then ObjFolios.Dispose() End If ObjContratos.Dispose() CargaDatos() End Try End If End Sub Protected Sub ToggleMasivo(sender As Object, e As EventArgs) DivFechaMasivo.Visible = IsMasivo.Checked RegistraScript(String.Format("$('#{0}').modal('show');", "ModalAgregar")) End Sub Protected Sub GoContratoDetalle(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Response.Redirect($"~/Transportes/RepContratoDetalle.aspx?CveContrato={GvRow.DataKey("CveContrato")}") End Sub Protected Sub GoBoletos(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim CveViaje As String = GvRow.DataKey("CveViaje") Dim Ruta As String = GvRow.DataKey("Ruta") Response.Redirect(String.Format("~/Transportes/RepBoletos.aspx?CveViaje={0}&Ruta={1}", CveViaje, Ruta)) End Sub End Class