viernes, 21 de agosto de 2020

Class Principal Gestion de Devolucion

 Public Class Principal

#Region "Declaraciones"

    Private LABASE As String

    Private SERVIDOR As String

    Private mDtResultado As New DataTable

    Private ConeccionExitosa As Boolean

    Private ResuBoolean As Boolean = False

    Private LogueoExitoso As Boolean

    Private AvisarAlSalir As Boolean

    Private sUsuario As String

    Private FrmGestiondeDevolucion As GestiondeDevolucion

    Private FrmAuditoria As AuditoriaCorreos

#End Region


#Region "Eventos"


    Private Sub Principal_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Try

            IniciarAplicacion()

            OperacionesControles()

        Catch ex As Exception

            GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Errores, "#ERROR: al intentar abrir la aplicación. " & vbCrLf & ex.Message.ToString).ShowDialog()

        End Try

    End Sub

#End Region


#Region "Funciones"


    Private Sub OperacionesControles()

        RegistroControles()

        EjecutarPermisos()

    End Sub

    Private Sub RegistroControles()

        ControlesPermisos.RegistrarControles(Me)

    End Sub


    Private Sub EjecutarPermisos()

        ControlesPermisos.DesactivarControlesAplicacion(Me)

        ControlesPermisos.ActivarControlesPorPefil(Me, My.Application.IDAPLICACION, My.Application.IDPERFIL)

        ControlesPermisos.ActivarControlesPorUsuario(Me, My.Application.IDAPLICACION, My.Application.IDUSUARIO)

    End Sub


    Private Sub IniciarAplicacion()

        InfoUsuario()

        InfoBD()

        ValidarVersiones(My.Application.IDAPLICACION)

        If ConectarUsuarioAAplicacionSinSeguridad(My.Application.IDUSUARIO, My.Application.IDAPLICACION, My.Computer.Name.ToString, My.Application.Info.Version.ToString) = False Then

            Me.Close()

        Else

            LogueoExitoso = True

        End If



    End Sub

    Private Function ConectarUsuarioAAplicacionSinSeguridad(ByVal unUsuario As Integer, ByVal unaAplicacion As Integer, ByVal unaPC As String,

                                         ByVal unaVersion As String) As Boolean

        mDtResultado = New DataTable

        ResuBoolean = False

        mDtResultado = AccesoBase.SetSP("SP_HERRAMIENTAS_SIGMA_CONECTAR_USUARIO_A_APLICACION_SIN_BLOQUEO").SetParam(unUsuario, unaAplicacion, unaPC, unaVersion)

        If mDtResultado IsNot Nothing Then

            ' 1 - INSERTO CORRECTAMENTE

            '-1 - FALLO EL INSERT

            ' 2 - HIZO EL UPDATE DEL ESTADO CORRECTAMENTE

            '-2 - FALLO EL UPDATE DEL ESTADO 

            Select Case mDtResultado.Rows(0).Item(0)

                Case 1

                    ResuBoolean = True

                Case -1

                    GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Errores, "Falló el ingreso del dato en la tabla 'HERRAMIENTAS_SIGMA_USUARIOS_CONECTADOS'").ShowDialog()

                Case 2

                    ResuBoolean = True

                Case -2

                    GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Errores, "Falló la actualización del dato en la tabla 'HERRAMIENTAS_SIGMA_USUARIOS_CONECTADOS'").ShowDialog()

            End Select

        Else

            ResuBoolean = False

        End If


        Return ResuBoolean

    End Function

    Private Sub ValidarVersiones(ByVal unIdAplicacion As Integer)

        Try

            mDtResultado = New DataTable

            mDtResultado = AccesoBase.SetSP("SP_MAESTRO_VERSIONES_LEER").SetParam(unIdAplicacion)

            If mDtResultado IsNot Nothing Then

                If mDtResultado.Rows(0).Item("VERSIONACTUAL") = My.Application.Info.Version.ToString Then

                    'Ok tiene la version actual

                Else

                    If mDtResultado.Rows(0).Item("VERSIONANTERIOR") = My.Application.Info.Version.ToString Then

                        'Tiene la versión anterior

                        If mDtResultado.Rows(0).Item("URGENTE") = 0 Then

                            'No es urgente

                        Else

                            'La actualización debe ser inmediatamente

                            GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Adveretencia, "Su versión está desactualizada, por favor salga del Sigma y vuelva a ingresar.").ShowDialog()


                            Application.ExitThread()

                        End If

                    Else

                        'Tiene una versión no registrada - mail a sistemas


                        'EnviarMail("desarrollo@mimo.com.ar", "Sigma - Versión no registrada", "URGENTE. La computadora " & My.Computer.Name & " (usuario " & My.Application.IDUSUARIO & ") posee una versión no registrada de la aplicación: " & My.Application.Info.AssemblyName & " (" & VVidaplic & "). version: " & My.Application.Info.Version.ToString)


                        GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Adveretencia, "Su versión no está registrada. Envío de email automático a Sistemas.").ShowDialog()

                        Application.ExitThread()

                    End If

                End If

            Else

                GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Adveretencia, "Ocurrio un error al validar la versión, se cerrará la aplicación. ").ShowDialog()

                Application.ExitThread()

            End If

        Catch ex As Exception

            GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Adveretencia, "Ocurrio un error al validar la versión, se cerrará la aplicación. " & vbCrLf & ex.Message.ToString).ShowDialog()

            Application.ExitThread()

        End Try

    End Sub

    Public Sub InfoBD()


        If AccesoBase.ObtenerBase <> "SIGMA" Then

            LABASE = " | Base: " & UCase(AccesoBase.ObtenerBase)

            SERVIDOR = " | Servidor: " & IIf(UCase(AccesoBase.ObtenerServidor) = "SR01SIG01" Or UCase(AccesoBase.ObtenerServidor) = "192.168.1.20", "PRODUCCIÓN", "TESTING")

        Else

            LABASE = ""

            'SERVIDOR = " | Servidor: " & UCase(objRemRN.ppServidor)

            SERVIDOR = " | Servidor: " & IIf(UCase(AccesoBase.ObtenerServidor) = "SR01SIG01" Or UCase(AccesoBase.ObtenerServidor) = "192.168.1.20", "PRODUCCIÓN", "TESTING")

        End If


        Me.Text = Me.Text & SERVIDOR & LABASE & " | Versión  " & My.Application.Info.Version.ToString


        ''Cargo la infro al supertip

        'Dim sTooltip2 As SuperToolTip = New SuperToolTip

        'Dim args As SuperToolTipSetupArgs = New SuperToolTipSetupArgs

        'args.Title.Text = "Mensaje del sistema"

        'args.Contents.Text = "Usted se encuentra en: " & vbCrLf & SERVIDOR & LABASE & vbCrLf & " | Versión  " & My.Application.Info.Version.ToString

        'args.Contents.Image = My.Resources.database_32x32

        ''args.Footer.Text = "Equipo de sistemas"

        'sTooltip2.Setup(args)


        '' Assign the created SuperToolTip to a BarItem.

        ''BarStaticItem_BASE.SuperTip = sTooltip2

    End Sub


    Private Sub InfoUsuario()

        sUsuario = ObtenerUsuarioLogueado(My.Application.IDUSUARIO)


    End Sub


    Private Function ObtenerUsuarioLogueado(ByVal idUsuario As Integer) As String

        mDtResultado = New DataTable

        mDtResultado = AccesoBase.SetSP("SP_ECOMMERCE_DEVOLUCION_OBTENER_USUARIO_LOGUEADO").SetParam(idUsuario)

        If mDtResultado IsNot Nothing Then

            Return mDtResultado.Rows(0).Item(0)

        Else

            Return Nothing

        End If

    End Function


    Private Sub BBI_Devoluciones_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BBI_Devoluciones.ItemClick

        Try


            FrmGestiondeDevolucion = New GestiondeDevolucion

            FrmGestiondeDevolucion.Show()

        Catch ex As Exception

            GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Errores, "#ERROR: al intentar abrir 'Gestión de Devolucion'." & vbCrLf & ex.Message.ToString).ShowDialog()

        End Try

    End Sub


    Private Sub BBI_AuditoriaCorreo_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BBI_AuditoriaCorreo.ItemClick

        Try


            FrmAuditoria = New AuditoriaCorreos

            FrmAuditoria.Show()

        Catch ex As Exception

            GestorMensajes.MensajeDelSistema(MensajeSistema.TipoDeMensaje.Errores, "#ERROR: al intentar abrir 'Gestión Auditoria de Correos'." & vbCrLf & ex.Message.ToString).ShowDialog()

        End Try

    End Sub


#End Region


End Class

lunes, 3 de agosto de 2020

ControlesPermisos MENU ITEM


Public Class ControlesPermisos
#Region "DECLARACION"

    Private Shared Menu As System.Windows.Forms.ToolStripMenuItem
    Private Shared SubMenu As System.Windows.Forms.ToolStripDropDownItem
    Private Shared submenu_ As System.Windows.Forms.ToolStripItem
    Public Shared mDtListadoControles = New DataTable
    Private Shared objPedidosRN = New VMPedidosRN.PedidosRN

#End Region

#Region "FUNCIONES"


    Public Shared Sub RegistrarControles(ByRef unform As Form) ' esta registra los controles de la aplicacion seguridad plues nada mas
        Dim nombreControl As String
        Dim descripcionControl As String = "testing-Seguridad"
        Dim descripcionControlRibbon As String = "testing-Ribbon"
        Try
            objPedidosRN = New VMPedidosRN.PedidosRN
            objPedidosRN.InicializarBase()

            'objAdmVentas_RN = New AdmVentas_RN.AdmVentas_RN
            'objAdmVentas_RN.InicializarBase()
            'Solapas = New DevExpress.XtraBars.Ribbon.RibbonPage
            'Grupo = New DevExpress.XtraBars.Ribbon.RibbonPageGroup
            'Category = New DevExpress.XtraBars.Ribbon.RibbonPageCategory
            'Dim sol As String = Category.Name

            Dim Ctrl As Control
            For i As Integer = 0 To unform.Controls.Count - 1
                Ctrl = unform.Controls.Item(i)
                If Ctrl.Name <> "" Then
                    If TypeOf (Ctrl) Is System.Windows.Forms.Control Then 'TypeOf (Ctrl) Is System.Windows.Forms.Form Or
                        nombreControl = Ctrl.Name
                        RegistroItems(Ctrl, unform)
                    Else
                        nombreControl = Ctrl.Name
                        objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, nombreControl, descripcionControl)
                    End If
                End If

            Next
        Catch ex As Exception
            MessageBox.Show("" + ex.ToString)
        End Try
    End Sub


    'registro automatico de los controles ingresados al menu
    Public Shared Sub RegistroItems(ByRef unControl As System.Windows.Forms.Control, ByRef unform As Form)
        Dim Menu As System.Windows.Forms.ToolStripMenuItem
        Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
        Dim submenu_ As System.Windows.Forms.ToolStripItem
        Dim I, H As Integer
        Dim NombreControl, DescripcionControl As String
        Try
            For Each Menu In unform.MainMenuStrip.Items
                NombreControl = Menu.Name
                DescripcionControl = Menu.Text
                If DescripcionControl = "" Then
                    DescripcionControl = Menu.Name
                Else
                    DescripcionControl = Menu.Text
                End If

                objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
                For I = 0 To Menu.DropDownItems.Count - 1
                    If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                        SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
                        NombreControl = SubMenu.Name
                        DescripcionControl = SubMenu.Text
                        If DescripcionControl = "" Then
                            DescripcionControl = Menu.Name + " / " + SubMenu.Name
                        Else
                            DescripcionControl = Menu.Text + " / " + SubMenu.Text
                        End If

                        objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
                        For H = 0 To SubMenu.DropDownItems.Count - 1
                            If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                                submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
                                NombreControl = submenu_.Name
                                DescripcionControl = submenu_.Text
                                If DescripcionControl = "" Then
                                    DescripcionControl = Menu.Name + " / " + SubMenu.Name + " / " + submenu_.Name '"OpcMenu,Sin Definir"
                                Else
                                    DescripcionControl = Menu.Text + " / " + SubMenu.Text + " / " + submenu_.Text '"OpcMenu,Sin Definir"
                                End If
                                objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
                            End If
                        Next
                    End If
                Next
            Next
        Catch ex As Exception
            MessageBox.Show("#ERROR RC002, No se pudo realizar el registro de los controles: " + ex.ToString)
        End Try

    End Sub


    Public Shared Sub DesactivarControlesAplicacion(ByRef unForm As Form) 'se desactivan incialmente los controles para poder controlarlos
        Dim Menu As System.Windows.Forms.ToolStripMenuItem
        Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
        Dim submenu_ As System.Windows.Forms.ToolStripItem
        Dim I, H As Integer
        Dim NombreControl As String

        Try
            For Each Menu In unForm.MainMenuStrip.Items
                NombreControl = Menu.Name
                Menu.Enabled = False
                Menu.Visible = False
                For I = 0 To Menu.DropDownItems.Count - 1
                    If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                        SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
                        NombreControl = SubMenu.Name
                        SubMenu.Enabled = False
                        SubMenu.Visible = False
                        For H = 0 To SubMenu.DropDownItems.Count - 1
                            If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                                submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
                                NombreControl = submenu_.Name
                                submenu_.Enabled = False
                                submenu_.Visible = False
                            End If
                        Next
                    End If
                Next
            Next
        Catch ex As Exception
            MessageBox.Show("#ERROR DC1002, No se pudieron desactivar los controles: " + ex.ToString)
        End Try

    End Sub
    Public Shared Sub ActivarControlesPorPefil(ByRef unForm As Form, ByVal unIdAplicacion As Integer, ByVal unIdPerfil As Integer)
        Dim Menu As System.Windows.Forms.ToolStripMenuItem
        Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
        Dim submenu_ As System.Windows.Forms.ToolStripItem
        Dim I, H As Integer
        Dim NombreControl As String
        Try

            '    ''2) Obtengo el listado de los controles habilitados POR PERFIL desde el sistema de seguridad
            Dim mDtListadoControles = New DataTable

            objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_LISTADO_CONTROLES_POR_PERFIL(My.Application.IDAPLICACION, My.Application.IDPERFIL)
            mDtListadoControles = objPedidosRN.Tabla
            If Not IsNothing(mDtListadoControles) Then

                For Each Menu In unForm.MainMenuStrip.Items
                    NombreControl = Menu.Name
                    'Menu.Enabled = False                    
                    ActivarControlPorSeguridad(Menu, mDtListadoControles)
                    For I = 0 To Menu.DropDownItems.Count - 1
                        If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                            SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
                            NombreControl = SubMenu.Name                           
                            'SubMenu.Enabled = False
                            ActivarControlPorSeguridad(SubMenu, mDtListadoControles)
                            For H = 0 To SubMenu.DropDownItems.Count - 1
                                If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                                    submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
                                    NombreControl = submenu_.Name
                                    ActivarControlPorSeguridad(submenu_, mDtListadoControles)
                                End If
                            Next
                        End If

                    Next
                Next
            End If
        Catch ex As Exception
            MessageBox.Show("#ERROR RC002, No se pudo realizar el activación de los controles: " + ex.ToString)
        End Try

    End Sub
    Public Shared Sub ActivarControlesPorUsuario(ByRef unForm As Form, ByVal unIdAplicacion As Integer, ByVal unIdPerfil As Integer)
        Dim Menu As System.Windows.Forms.ToolStripMenuItem
        Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
        Dim submenu_ As System.Windows.Forms.ToolStripItem
        Dim I, H As Integer
        Dim NombreControl As String
        Try

            ''2) Obtengo el listado de los controles habilitados POR USUARIO desde el sistema de seguridad
            Dim mDtListadoControlesUSu = New DataTable
            objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_LISTADO_CONTROLES_POR_USUARIO(My.Application.IDAPLICACION, My.Application.IDUSUARIO)
            mDtListadoControlesUSu = objPedidosRN.Tabla

            If Not IsNothing(mDtListadoControlesUSu) Then
                For Each Menu In unForm.MainMenuStrip.Items
                    NombreControl = Menu.Name
                    'Menu.Enabled = False
                    ActivarControlPorSeguridad(Menu, mDtListadoControlesUSu)
                    For I = 0 To Menu.DropDownItems.Count - 1
                        If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                            SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
                            NombreControl = SubMenu.Name
                            ' SubMenu.Enabled = False
                            ActivarControlPorSeguridad(SubMenu, mDtListadoControlesUSu)
                            For H = 0 To SubMenu.DropDownItems.Count - 1
                                If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
                                    submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
                                    NombreControl = submenu_.Name
                                    ActivarControlPorSeguridad(submenu_, mDtListadoControlesUSu)
                                End If
                            Next
                        End If
                    Next
                Next
            End If
        Catch ex As Exception
            MessageBox.Show("#ERROR AC0034, No se pudo realizar la activación de los controles por usuario: " + ex.ToString)
        End Try
    End Sub


    Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripMenuItem, ByRef mdtListadocontroles1 As DataTable)

        For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
            If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
                NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
                NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
                Exit For
            End If
        Next
    End Sub
    Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripDropDownItem, ByRef mdtListadocontroles1 As DataTable)

        For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
            If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
                NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
                NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
                Exit For
            End If
        Next
    End Sub


    Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripItem, ByRef mdtListadocontroles1 As DataTable)
        For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
            If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
                NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
                NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
                Exit For
            End If
        Next
    End Sub

#End Region

End Class

Los mail de oulook no se pueden reenviar.

 cuando en el asunto poseen un caracter especial por ejemplo @#$ los correos no salen y no te muestra ningun correo de rebote, especialmente...