From c60179f2b21155d6caeff562ae0d087ffb38429d Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 26 Sep 2020 16:09:32 -0700 Subject: [PATCH] Cambio entre portales (portal del cliente) --- App_Code/ClsSisUsuarios.vb | 94 +++++++++- Sistemas/PopUpAddUsuario.aspx | 48 ++++-- Sistemas/PopUpAddUsuario.aspx.vb | 16 +- Sistemas/PopUpSeleccionarEmpresa.aspx | 208 ++++++++++++----------- Sistemas/PopUpSeleccionarEmpresa.aspx.vb | 134 ++++++++------- Site.master.vb | 6 +- 6 files changed, 325 insertions(+), 181 deletions(-) diff --git a/App_Code/ClsSisUsuarios.vb b/App_Code/ClsSisUsuarios.vb index 8a7d501e9..298590f13 100644 --- a/App_Code/ClsSisUsuarios.vb +++ b/App_Code/ClsSisUsuarios.vb @@ -413,8 +413,67 @@ Public Class ClsSisUsuarios End Try Return Retorno - End Function + End Function + + + Public Function ValidaUsuarioPortalCliente(Clave As String, Usuario As String, Password As String) As Usuario + Dim Retorno As Usuario = Nothing + DataAdapter("PA_Sis_UsuariosGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveUsuario", SqlDbType.Int).Value = -1 + .Add("@CveRol", SqlDbType.Int).Value = -1 + .Add("@Usuario", SqlDbType.VarChar).Value = Usuario + .Add("@Contraseña", SqlDbType.VarChar).Value = Password + .Add("@EsLogIn", SqlDbType.Bit).Value = 1 + End With + + Try + SqlAdapter.Fill(Data) + If Data.Rows.Count > 0 Then + Retorno = New Usuario + + Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString.ToEntero + Retorno.Usuario = Usuario + Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString + Retorno.Nombre = Data.Rows(0)("Nombre").ToString + Retorno.CveRol = Data.Rows(0)("CveRol").ToString.ToEntero + Retorno.Rol = Data.Rows(0)("Rol").ToString + 'Retorno.NombreEmpresa = Data.Rows(0)("Empresa").ToString + Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero + Retorno.CveCliente = Clave.ToEntero + Retorno.ClienteGPS = False + Retorno.Portal = True + Retorno.Referencia = Data.Rows(0)("Referencia").ToString + Retorno.EsSupervisorRH = If(Data.Rows(0)("EsSupervisorRH").ToString = "1", True, False) + 'Retorno.Liga = Data.Rows(0)("Liga").ToString + 'cargo los modulos del usuario y genero el menú + Dim dttmp As DataTable = GetUsuariosRolesModulos(Retorno.CveUsuario, Retorno.CveCliente) + + Dim UsuariosModulos As New HybridDictionary + For Each Row As DataRow In dttmp.Rows + UsuariosModulos.Add(Convert.ToInt32(Row("CveModulo")), Row("CveModulo").ToString) + Next + Retorno.Modulos = UsuariosModulos + ''cargo los procesos del usuario + dttmp = GetUsuariosRolesProcesos(Retorno.CveUsuario) + Dim UsuariosProcesos As New HybridDictionary + For Each Row As DataRow In dttmp.Rows + UsuariosProcesos.Add(Convert.ToInt32(Row("CveProceso")), Row("CveProceso").ToString) + Next + Retorno.Procesos = UsuariosProcesos + End If + + Catch ex As SqlException + OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) + Retorno = Nothing + End Try + + Return Retorno + End Function + + #Region "U S U A R I O - I N D I C A D O R E S" Public Function getUsuarioIndicadores(_CveUsuario As Integer, _CveEmpresa As Integer, _CveRol As Integer) As DataTable @@ -2671,12 +2730,37 @@ Public Class ClsSisUsuarios End Try Return Retorno - End Function + End Function + + Public Function GetUsuarioCliente(CveUsuario As Integer, CveCliente As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Sis_UsuariosClienteGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCliente", SqlDbType.Int).Value = CveCliente + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2627;") Then + Alert("Ya existe un Usuario con el mismo nombre: " & Usuario & ".", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al guardar el nuevo usuario", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al guardar el nuevo usuario.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #End Region - - + + #Region "U S U A R I O S - PyME" - + Public Function AddUsuariosModulosPyMe(CveUsuario As Integer, Rol As String) As Boolean Dim Retorno As Boolean = False diff --git a/Sistemas/PopUpAddUsuario.aspx b/Sistemas/PopUpAddUsuario.aspx index 631fef59b..9517c20a9 100644 --- a/Sistemas/PopUpAddUsuario.aspx +++ b/Sistemas/PopUpAddUsuario.aspx @@ -21,6 +21,17 @@ #GvPermisosComandos tr td:nth-child(n+3), #GVNotificaciones tr th:nth-child(n+2) { width: 50px; } + .CustomSpinner { + position: fixed; + background-image: url(/Imagenes/Loading.gif); + background-repeat: no-repeat, repeat; + background-size: contain; + top: 60px; + right: 25px; + z-index: 500000; + height: 40px; + width: 40px; + } @@ -430,6 +441,7 @@ + - + + diff --git a/Sistemas/PopUpSeleccionarEmpresa.aspx.vb b/Sistemas/PopUpSeleccionarEmpresa.aspx.vb index c950fc162..04470a006 100644 --- a/Sistemas/PopUpSeleccionarEmpresa.aspx.vb +++ b/Sistemas/PopUpSeleccionarEmpresa.aspx.vb @@ -19,30 +19,31 @@ Partial Class PopUpSeleccionarEmpresa End Sub Private Sub GetEmpresas() - - Dim Dt As Data.DataTable = GlobalDTUsuarios(UsuarioActual.CveUsuario) If Dt IsNot Nothing Then If Dt.Rows.Count > 0 Then LtlTotalRegistros.Text = Dt.Rows.Count.ToString.FormatoNumero(0) - GV.DataSource = Dt.FiltraParametros("CvePlataforma = 1 OR (CvePlataforma = 3 AND CveCliente IS NULL)", "Empresa") - GVCliente.DataSource = Dt.FiltraParametros("CvePlataforma = 3 AND CveCliente IS NOT NULL", "Empresa") + GvEmpresas.DataSource = Dt.FiltraParametros("CvePlataforma = 1 OR (CvePlataforma = 3 AND CveCliente IS NULL)", "Empresa") + GvPortalRastreo.DataSource = Dt.FiltraParametros("CvePlataforma = 3 AND CveCliente IS NOT NULL", "Empresa") + GvPortalCliente.DataSource = Dt.FiltraParametros("CvePlataforma = 6 AND CveCliente IS NOT NULL", "Empresa") Else LtlTotalRegistros.Text = "0" - GV.DataSource = Nothing + GvEmpresas.DataSource = Nothing Alert("No se encontraron registros con los parametros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia) End If End If - GV.DataBind() - GVCliente.DataBind() + GvEmpresas.DataBind() + GvPortalRastreo.DataBind() + GvPortalCliente.DataBind() + UPDatos.Update() TblBusqueda.Visible = True End Sub - Protected Sub GV_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GV.RowCommand + Protected Sub GvEmpresas_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvEmpresas.RowCommand If e.CommandName = "Cambia" Then Dim gvr As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).BindingContainer, GridViewRow) @@ -80,35 +81,7 @@ Partial Class PopUpSeleccionarEmpresa End If End Sub - - Private Sub GuardaLogR(Mensaje As String) - Dim ArchivoW As IO.StreamWriter - Dim MensajeLog As String = "" - Dim continuar As Boolean = True - Try - If Not IsNothing(System.Web.HttpContext.Current) Then - If Not IsNothing(System.Web.HttpContext.Current.Request) Then - - MensajeLog = $"{HttpContext.Current.Request.Url.ToString()}{Environment.NewLine}" - End If - End If - Catch - End Try - MensajeLog = $"{System.Environment.NewLine}'{DateTime.Now:dd/MM/yyyy hh:mm}' -- {MensajeLog}{Mensaje.Trim()}{Environment.NewLine}" - - Try - ArchivoW = New IO.StreamWriter(String.Format("{0}\LogSession.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) - Catch - Exit Sub - End Try - Try - ArchivoW.Write(MensajeLog) - Catch - End Try - ArchivoW.Close() - ArchivoW.Dispose() - End Sub - Protected Sub gvUsuarios_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles GVCliente.RowCommand + Protected Sub GvPortalRastreo_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles GvPortalRastreo.RowCommand If e.CommandName = "Cambia" Then Dim gvr As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).BindingContainer, GridViewRow) @@ -142,32 +115,49 @@ Partial Class PopUpSeleccionarEmpresa End If End If - End Sub + End Sub + + Protected Sub GvPortalCliente_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles GvPortalCliente.RowCommand + If e.CommandName = "Cambia" Then + Dim gvr As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).BindingContainer, GridViewRow) + If gvr IsNot Nothing Then - Protected Sub BtnSetWindows_Click(sender As Object, e As System.EventArgs) Handles BtnSetWindows.Click - RegistraScript(String.Format("$get('tdContenido').style.height='{0}px'; $get('tdContenido').style.width='{1}px'", HdnAlto.Value.ToEntero - 30, HdnAncho.Value.ToEntero - 30)) - End Sub + Dim ObjUsuario As New ClsSisUsuarios + Dim Usuario As Usuario = Nothing + Usuario = ObjUsuario.ValidaUsuarioPortalCliente(gvr.DataKey("CveCliente"), gvr.DataKey("Usuario"), gvr.DataKey("Contraseña")) + + ObjUsuario.Dispose() - Private Sub CreaObjetoEmpresa() - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then - 'Session("Empresa") = ObjEmpresa - If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados + If Usuario IsNot Nothing Then + Dim dt As Data.DataTable = GlobalDTUsuarios(Usuario.CveUsuario) + + Dim ModoSimulacion As Boolean = ADSSession.ADSSessionConfig.sessionUser.ModoSimulacion + Usuario.ModoSimulacion = ModoSimulacion + ADSSession.ADSSessionConfig.sessionUser = Usuario + ADSSession.ADSSessionConfig.sessionDpage = False + + If dt IsNot Nothing Then + If dt.Rows.Count >= 1 Then + If dt.Rows.Count > 1 Then Usuario.MultipleEmpresa = True + Usuario.CvePlataforma = 6 + UsuarioActual.CveEmpresa = gvr.DataKey("CveEmpresa").ToEntero() + ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, UsuarioActual.CveEmpresa) + CreaObjetoEmpresa(Usuario) + 'si la contraseña es la prederminada, pide la nueva contraseña + 'FormsAuthentication.RedirectFromLoginPage(Encripta(Usuario.CveUsuario.ToString), False) + RegistraScript("Ir4();") + End If + End If + dt.Dispose() + End If - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) End If - UsuarioActual.Empresa = ObjEmpresa.Empresa - Else - Session("Empresa") = Nothing End If - ObjEmpresa.Dispose() + End Sub + Protected Sub BtnSetWindows_Click(sender As Object, e As System.EventArgs) Handles BtnSetWindows.Click + RegistraScript(String.Format("$get('tdContenido').style.height='{0}px'; $get('tdContenido').style.width='{1}px'", HdnAlto.Value.ToEntero - 30, HdnAncho.Value.ToEntero - 30)) End Sub Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) @@ -190,9 +180,35 @@ Partial Class PopUpSeleccionarEmpresa Session("Empresa") = Nothing End If ObjEmpresa.Dispose() + End Sub + + + Private Sub GuardaLogR(Mensaje As String) + Dim ArchivoW As IO.StreamWriter + Dim MensajeLog As String = "" + Dim continuar As Boolean = True + Try + If Not IsNothing(System.Web.HttpContext.Current) Then + If Not IsNothing(System.Web.HttpContext.Current.Request) Then + + MensajeLog = $"{HttpContext.Current.Request.Url.ToString()}{Environment.NewLine}" + End If + End If + Catch + End Try + MensajeLog = $"{System.Environment.NewLine}'{DateTime.Now:dd/MM/yyyy hh:mm}' -- {MensajeLog}{Mensaje.Trim()}{Environment.NewLine}" + + Try + ArchivoW = New IO.StreamWriter(String.Format("{0}\LogSession.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) + Catch + Exit Sub + End Try + Try + ArchivoW.Write(MensajeLog) + Catch + End Try + ArchivoW.Close() + ArchivoW.Dispose() End Sub - - - End Class \ No newline at end of file diff --git a/Site.master.vb b/Site.master.vb index a2c4eb732..f9498674c 100644 --- a/Site.master.vb +++ b/Site.master.vb @@ -122,15 +122,11 @@ Partial Class Site '2018.08.14, se movió de la linea 59 a la actual CargaTipoCambio() - + CargaUsuario() If UsuarioActual.Portal = False Then CreaMenu() 'Configuracion() - CargaUsuario() CargaBuscadores() - Else - LtMasterPerfil.Text = UsuarioActual.Rol - LtMasterUsuario.Text = UsuarioActual.Usuario End If End If