Option Explicit On Option Strict On Imports System.Data Imports Extensiones 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 #Region "Carga Página" 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' DdlRutas.DataSource = GlobalDTSubProyectos(UsuarioActual.CveEmpresa).FiltraParametros("CveSubProyecto in (12699,12700)") DdlRutas.DataBind() Dim ObjRutas As New ClsTransportes() 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.GetContratosReporte(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, -1, CveEstatus:=-1, CveTipoContrato:=35) Then GvContratos.DataSource = ObjContratos.DtResultados End If ObjContratos.Dispose() GvContratos.DataBind() End Sub #End Region 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(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 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 Dim CveSubProyecto As Integer = GlobalDTSubProyectos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", "TipoSucursal = 1").ToEntero 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 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, "", "", DdlRutas.SelectedValue.ToEntero, -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, -1, -1, -1, -1, 0, CveContratoTipo:=35, CveContratosEstatus:=50, CvePartida:=DdlPartida.SelectedValue.ToEntero, CveDestino:=DdlDestino.SelectedValue.ToEntero, CveMasivo:=CveMasivo, CveVendedor:=UsuarioActual.CveVendedor) > 0 Then ObjContratos.Commit() End If 'Actualizamos Folio ObjFolio.IniciaTransacSQL() If ObjFolio.UpdateFolioActual(CveSubProyecto, "Con", True, UsuarioActual.CveEmpresa) Then ObjFolio.Commit() End If ObjFolio.Dispose() 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 TxtFechaViaje.Text = "" DdlPartida.Text = "" DdlDestino.SelectedValue = "" 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, "", "", DdlRutas.SelectedValue.ToEntero, -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, 0, 0, 0, 2, 0, CveContratoTipo:=35, CveContratosEstatus:=50, 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, "", "", DdlRutas.SelectedValue.ToEntero, -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, -1, -1, -1, 2, 0, CveContratoTipo:=35, CveContratosEstatus:=50, 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 TxtFechaViaje.Text = "" 'Actualizamos Folio Dim ObjFolios As New ClsGralFolios ObjFolios.IniciaTransacSQL() If ObjFolios.UpdateFolioActual(CveSubProyecto, "Con", True, UsuarioActual.CveEmpresa) Then ObjFolios.Commit() End If ObjFolios.Dispose() 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