Files
SIG/Transportes/RepViajes.aspx.vb
2024-02-20 17:32:56 -07:00

211 lines
9.6 KiB
VB.net

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'
DdlRutas.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("CveSubProyecto in (12699,12700)")
DdlRutas.DataBind()
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
'DdlRutas.DataSource = ObjRutas.DtResultados
' DdlRutas.DataBind()
' DdlRutas.Items.Insert(0, New ListItem("Seleccione Ruta", ""))
'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.GetContratosReporte(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, -1, CveEstatus:=-1, CveTipoContrato:=35) Then
GvContratos.DataSource = ObjContratos.DtResultados
End If
ObjContratos.Dispose()
GvContratos.DataBind()
'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
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 = DdlRutas.SelectedValue.ToEntero 'GlobalDTSubProyectos(-1, -1, CveEmpresa:=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, "", "", CveSubProyecto, -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
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
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, "", "", CveSubProyecto, -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, "", "", CveSubProyecto, -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
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