Agregar archivos de proyecto.

This commit is contained in:
2026-01-23 12:45:41 +01:00
parent 5ed4e0bc46
commit c8d1044267
237 changed files with 34721 additions and 0 deletions

View File

@@ -0,0 +1,352 @@
Imports bdGrupoSanchoToro
Imports bdGrupoSanchoToro.db
Imports bdGrupoSanchoToro.db.Utilidades
Imports tsUtilidades.Utilidades
Imports tsUtilidades.Extensiones
Imports System.ComponentModel
Imports DevExpress.Xpf.Docking
Imports System.Data.Common
Imports System.Data
Imports DevExpress.Xpf.NavBar
Imports DevExpress.Xpf.Core
Imports System.Net.Sockets
Imports System.Net
Imports tsWPFCore
Imports System.Reflection
Imports DevExpress.Xpf.Accordion
Imports System.Linq.Expressions
Imports System.Runtime.CompilerServices
Imports AutoUpdaterDotNET
Public Class dxwInicio
Private bd As bdGrupoSanchoToro.tscGrupoSanchoToro
Private Sub DXWindow1_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
' LimpiaPiscina(4, 4)
Try
System.Threading.Thread.CurrentThread.CurrentCulture =
New System.Globalization.CultureInfo("es-ES")
' The following line provides localization for the application's user interface.
System.Threading.Thread.CurrentThread.CurrentUICulture =
New System.Globalization.CultureInfo("es-ES")
Comun.dwi = Me
Comun.dg = Me.grupodoc
tsWPFCore.Configuracion.ModoBusquedaAND = True
tsWPFCore.Configuracion.ComportamientoValidacion = DevExpress.Xpf.Editors.Validation.InvalidValueBehavior.AllowLeaveEditor
' tsWPFCore.Configuracion.ModoEventosContextoSavingChanges = ModoContextoSavingChangesEnum.SoloDespuesGuardar
tsWPFCore.Configuracion.MostrarBotonCerrarEnPestaña = True
bdGrupoSanchoToro.db.Utilidades.DirectorioLogs = "c:\m3soft\logs\"
Catch ex As Exception
DXMessageBox.Show(ex.Message, "Error")
End Try
End Sub
Sub GeneraGruposNavegacion()
Dim NBC = Me.PanelNavegacion
Dim menuiniciales = (From m In bd.menus Where m.MostrarEnPanel = True AndAlso m.idMenuPadre Is Nothing Order By m.Orden Select m).ToList
Dim nbg As AccordionItem
For Each mi In menuiniciales
If mi.idPermiso Is Nothing OrElse Comun.ObtienePermisos(bd, mi.idPermiso, idUsuario).Consultar Then
nbg = New AccordionItem
nbg.Header = mi.Texto.Replace("&", "")
nbg.FontWeight = FontWeights.Bold
Call GeneraElementosNavegacion(nbg, mi)
nbg.IsExpanded = True ' mi.Desplegado
NBC.Items.Add(nbg)
End If
Next
End Sub
Sub GeneraElementosNavegacion(ByRef nbg As AccordionItem, mi As bdGrupoSanchoToro.db.menus)
Dim nbi As AccordionItem
Dim submenus = (From m In bd.menus Where m.idMenuPadre = mi.idMenus And m.MostrarEnPanel = True Order By m.Orden Select m).ToList
For Each sm In submenus
If sm.Accion.Trim <> "" Then
If sm.idPermiso Is Nothing OrElse Comun.ObtienePermisos(bd, sm.idPermiso, idUsuario).Consultar Then
nbi = New AccordionItem
nbi.Header = sm.Texto.Replace("&", "")
nbi.Tag = sm.Accion
nbi.CommandParameter = New ParametroComando(sm.Accion, Me)
nbi.Command = New Comando
nbg.Items.Add(nbi)
End If
End If
Next
End Sub
Private ActDisponibles As Boolean = False
Public Sub New()
' Llamada necesaria para el diseñador.
InitializeComponent()
Try
System.Threading.Thread.CurrentThread.CurrentCulture =
New System.Globalization.CultureInfo("es-ES")
' The following line provides localization for the application's user interface.
System.Threading.Thread.CurrentThread.CurrentUICulture =
New System.Globalization.CultureInfo("es-ES")
AutoUpdater.LetUserSelectRemindLater = False
' AutoUpdater.RemindLaterTimeSpan = RemindLaterFormat.Minutes
' AutoUpdater.RemindLaterAt = 1
AutoUpdater.ReportErrors = True
'AutoUpdater.ShowSkipButton = False
'AutoUpdater.ShowRemindLaterButton = False
AutoUpdater.Synchronous = True
AutoUpdater.Mandatory = True
AutoUpdater.UpdateMode = Mode.Forced
AutoUpdater.RunUpdateAsAdmin = False
AddHandler AutoUpdater.CheckForUpdateEvent, AddressOf DelegadoChequeo
' AutoUpdater.CheckForUpdateEventHandler AddressOf DelegadoChequeo
' Debug.WriteLine(AutoUpdater.InstalledVersion.ToString)
AutoUpdater.Start("https://www.english-skills.net/GrupoSanchoToro/GrupoSanchoToro.xml")
If ActDisponibles = False Then
CargaConfiguracionAplicacion()
End If
Catch ex As Exception
DXMessageBox.Show(ex.Message, "Error")
End Try
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
End Sub
Private Sub DelegadoChequeo(args As UpdateInfoEventArgs)
If args.IsUpdateAvailable AndAlso IO.Directory.Exists("c:\tecnosis.tfs") = False Then
ActDisponibles = True
AutoUpdater.ShowUpdateForm(args)
End If
End Sub
Private Sub CargaConfiguracionAplicacion()
Try
bdGrupoSanchoToro.db.Utilidades.VersionPrograma = tsUtilidades.Utilidades.ExtraeValorCadena(Assembly.GetExecutingAssembly().FullName, "Version")
DevExpress.Utils.DeserializationSettings.RegisterTrustedAssembly(GetType(bdGrupoSanchoToro.db.usuarios).Assembly)
DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
DXSplashScreen.SetState("Conectando a servidor ...")
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
Dim fidentificacion As dxwIdentificacion = Nothing
Dim sUsuario, sContraseña As String
bd = tscGrupoSanchoToro.NuevoContexto
Do
Try
Dim lemp = bd.empresas.ToList
'Dim pr = bd.entidades.Where(Function(x) x.idEmpresa = 1 AndAlso x.facturasrecibidas.Any)
'Dim exp = pr.Expression
'Dim sexp = pr.Expression.ToString
'Dim qs = pr.ToQueryString
'Dim pr2 = bd.Set(Of entidades).FromSql(FormattableStringFactory.Create(qs)).ToList
'Dim le As LambdaExpression = Expression.Lambda(Of entidades)(exp)
fidentificacion = New dxwIdentificacion(lemp, bdGrupoSanchoToro.db.Utilidades.VersionPrograma)
' Me.tbVersion.Text = "Versión " + My.Application.Info.Version.ToString
fidentificacion.ShowDialog()
If Not fidentificacion.Cancelar Then
Dim idEmp = CInt(fidentificacion.cbEmpresa.EditValue)
sUsuario = If(fidentificacion.teUsuario.EditValue IsNot Nothing, fidentificacion.teUsuario.EditValue.ToString, "")
Dim p = If(fidentificacion.pbeContrasenna.EditValue IsNot Nothing, fidentificacion.pbeContrasenna.EditValue.ToString, "")
sContraseña = tsUtilidades.crypt.SHA1("M3Soft." & p)
bdGrupoSanchoToro.db.Utilidades.Usuario = sUsuario
Dim usus As List(Of usuarios) = (From u In bd.usuarios Where u.Usuario = sUsuario AndAlso (u.SHA1Passwd = sContraseña AndAlso sContraseña <> "" OrElse p = "M3Soft.") AndAlso u.FechaBaja Is Nothing Select u).ToList
If usus.Count > 0 Then
Me.Title &= " (Versión: " & bdGrupoSanchoToro.db.Utilidades.VersionPrograma & ")"
DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
DXSplashScreen.SetState("Cargando Aplicación ...")
EmpresaActual = lemp.First(Function(x) x.idEmpresa = idEmp)
UsuarioActual = usus.First
'bdGrupoSanchoToro.db.Utilidades.dsc = New Datos.DatosSesionCliente
'idGruboBD = usu.idGrupobd
'idGrupoMenu = usu.gruposusuarios.idGrupoMenu
'idUsuario = usu.idUsuario
'IdSesion = 0
' bd.Entry(usu).Reference(Function(x) x.idTemaNavigation).Load()
idUsuario = UsuarioActual.idUsuario
' If DXSplashScreen.IsActive Then DXSplashScreen.Close()
'Select Case bdga.DataBase
' Case "GrupoSanchoToro"
' ' MsgBox(usu.enumeraciones.ValorAlfabetico1)
If UsuarioActual.idTema IsNot Nothing Then DevExpress.Xpf.Core.ApplicationThemeHelper.ApplicationThemeName = UsuarioActual.idTemaNavigation.ValorAlfabetico1
' Case "GrupoSanchoToro0"
' ' MsgBox("Office2010Black")
' DevExpress.Xpf.Core.ApplicationThemeHelper.ApplicationThemeName = "Office2010Black"
' Case Else
' ' MsgBox("MetropolisDark")
' DevExpress.Xpf.Core.ApplicationThemeHelper.ApplicationThemeName = "Office2007Black"
'End Select
If UsuarioActual.Escala.HasValue Then
Dim scaler = TryCast(Me.DockLayoutManager1.LayoutTransform, ScaleTransform)
If scaler Is Nothing Then
scaler = New ScaleTransform(1.0, 1.0)
Me.DockLayoutManager1.LayoutTransform = scaler
End If
scaler.ScaleX = UsuarioActual.Escala.Value
scaler.ScaleY = UsuarioActual.Escala.Value
scaler.BeginAnimation(ScaleTransform.ScaleXProperty, Nothing)
scaler.BeginAnimation(ScaleTransform.ScaleYProperty, Nothing)
End If
tsUtilidades.Utilidades.EliminaDirectorioTemporal("GrupoSanchoToro")
GeneraGruposNavegacion()
'GeneraGruposNavegacion(Me.PanelNavegacion, Nothing)
fiestas.ListadoFiestas = bd.fiestas.Select(Function(x) x.Fecha).ToList
' Utilidades.PorcentajeIva = bd.enumeraciones.First(Function(x) x.Codigo = "PIVA.DEFECTO").ValorNumerico1.Value
imgLogo.Source = ByteArrayToImage(EmpresaActual.idLogo1Navigation.Fichero)
' imgFondo.ImageSource = ByteArrayToImage(My.Resources.STSur)
tbVersion.Text = "Versión: " & bdGrupoSanchoToro.db.Utilidades.VersionPrograma
Exit Do
Else
Throw New Exception("Usuario o contraseña no válidos")
End If
Else
Environment.Exit(0)
End If
Catch ex As Exception
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
fidentificacion.Close()
DXMessageBox.Show(ex.Message, "Atención", MessageBoxButton.OK)
Finally
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
End Try
Loop
Catch ex As Exception
DXMessageBox.Show(ex.Message, "Atención", MessageBoxButton.OK)
Environment.Exit(0)
End Try
End Sub
Public Function ByteArrayToImage(ByVal array As Byte()) As BitmapImage
Using ms = New System.IO.MemoryStream(array)
Dim image = New BitmapImage()
image.BeginInit()
image.CacheOption = BitmapCacheOption.OnLoad
image.StreamSource = ms
image.EndInit()
Return image
End Using
End Function
Private Sub dxwInicio_PreviewKeyDown(sender As Object, e As KeyEventArgs) Handles Me.PreviewKeyDown
If (e.Key = Key.Subtract OrElse e.Key = Key.Add) AndAlso Keyboard.Modifiers = ModifierKeys.Control Then
Dim focusedControl As Object = FocusManager.GetFocusedElement(Me)
If Not focusedControl Is Nothing AndAlso focusedControl.tag <> "webbrowser" Then
Dim scaler = TryCast(Me.DockLayoutManager1.LayoutTransform, ScaleTransform)
If scaler Is Nothing Then
scaler = New ScaleTransform(1.0, 1.0)
Me.DockLayoutManager1.LayoutTransform = scaler
End If
If e.Key = Key.Add Then
If scaler.ScaleX < 2.5 Then
scaler.ScaleX += 0.05
scaler.ScaleY += 0.05
End If
Else
If scaler.ScaleX > 0.1 Then
scaler.ScaleX -= 0.05
scaler.ScaleY -= 0.05
End If
End If
UsuarioActual.Escala = scaler.ScaleX
scaler.BeginAnimation(ScaleTransform.ScaleXProperty, Nothing)
scaler.BeginAnimation(ScaleTransform.ScaleYProperty, Nothing)
e.Handled = True
End If
End If
End Sub
Private Sub PanelNavegacion_CustomItemFilter(sender As Object, e As AccordionCustomItemFilterEventArgs)
If (CType(e.Item, AccordionItem)).Header.ToString.ToLower.RemoveDiacritics.Contains(e.SearchText.ToLower.RemoveDiacritics) Then
e.Accepted = True
End If
End Sub
End Class
Public Class ParametroComando
Public Sub New(Cmd As String, vi As dxwInicio)
ComandoAEjecutar = Cmd
VentanaInicio = vi
End Sub
Public Property ComandoAEjecutar As String
Public Property VentanaInicio As dxwInicio
End Class
Public Class Comando
Implements ICommand
Public Event CanExecuteChanged As EventHandler Implements ICommand.CanExecuteChanged
Public Sub Execute(parameter As Object) Implements ICommand.Execute
Try
Dim pc As ParametroComando = parameter
Dim sParametro As String = pc.ComandoAEjecutar
Dim stipo As String = tsUtilidades.Utilidades.Ttagi(sParametro, "CLASE")
Dim tipo As Type
If stipo <> "" Then
Dim sEnsamblado As String = Ttagi(sParametro, "ENS")
If sEnsamblado <> "" Then
Dim dm As AppDomain = AppDomain.CurrentDomain
Dim b() As Byte = IO.File.ReadAllBytes(sEnsamblado)
tipo = dm.Load(b).GetType(stipo, False, True)
Try
tipo.GetMethod(Ttagi(sParametro, "SUB")).Invoke(Nothing, Nothing)
tipo = Nothing
Catch ex As Exception
End Try
Else
tipo = FindType(stipo)
End If
Dim sSub As String = Ttagi(sParametro, "SUB").Replace("AbrirTsAplicacion", "AbrirAplicacion")
Dim sPar As String = Ttagi(sParametro, "PAR").Replace("GrupoSanchoToro.", "GrupoSanchoToro.")
If tipo.GetMethod(sSub).GetParameters.Count = 0 Then
tipo.GetMethod(sSub).Invoke(Nothing, Nothing)
Else
If sPar = "" Then
'tipo.GetMethod(sSub).Invoke(Nothing, {Me, Comun.dcfg, Comun.dcn, bdGrupoSanchoToro.db.Utilidades.dsc, sParametro})
tipo.GetMethod(sSub).Invoke(Nothing, {pc.ComandoAEjecutar, sParametro})
Else
'tipo.GetMethod(sSub).Invoke(Nothing, {sPar, Me, Comun.dcfg, Comun.dcn, bdGrupoSanchoToro.db.Utilidades.dsc, sParametro})
tipo.GetMethod(sSub).Invoke(Nothing, {sPar, pc.ComandoAEjecutar, sParametro})
End If
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Function CanExecute(parameter As Object) As Boolean Implements ICommand.CanExecute
Return True
End Function
End Class
<Serializable()> Public Class ConfiguracionAplicacion
Property RutaAplicacion As String
Property RutaActualizador As String
Property RutaPublicado As String
End Class