Agregar archivos de proyecto.
This commit is contained in:
684
GestionGrupoSanchoToro/ucEntidad.xaml.vb
Normal file
684
GestionGrupoSanchoToro/ucEntidad.xaml.vb
Normal file
@@ -0,0 +1,684 @@
|
||||
Imports DevExpress.Xpf.Editors
|
||||
Imports DevExpress.Xpf.LayoutControl
|
||||
Imports tsWPFCore
|
||||
Imports System.ComponentModel
|
||||
Imports System.Data
|
||||
Imports DevExpress.Xpf.Editors.Validation
|
||||
Imports DevExpress.Xpf.Editors.Helpers
|
||||
Imports DevExpress.Xpf.Core
|
||||
Imports tsWPFCore.modExtensiones
|
||||
Imports System.Data.Common
|
||||
Imports bdGrupoSanchoToro.db
|
||||
Imports tsUtilidades.Datos
|
||||
Imports DevExpress.Xpf.Bars
|
||||
Imports DevExpress.Xpf.Grid
|
||||
Imports System.Collections
|
||||
Imports Microsoft.Win32
|
||||
Imports System.IO
|
||||
|
||||
Imports tsEFCore8.Extensiones
|
||||
Imports DevExpress.Spreadsheet
|
||||
Imports tsUtilidades.Enumeraciones
|
||||
Imports bdGrupoSanchoToro.db.Utilidades
|
||||
Imports tsUtilidades
|
||||
|
||||
Public Class ucEntidad
|
||||
|
||||
Private bd As tscGrupoSanchoToro
|
||||
Friend _idEntidad As Nullable(Of Integer)
|
||||
|
||||
Friend idLog As Integer?
|
||||
|
||||
|
||||
Public Overrides Sub Cargado()
|
||||
Me.Tipo_ucControlBusqueda = GetType(ucEntidades)
|
||||
End Sub
|
||||
|
||||
|
||||
Dim ra As entidades
|
||||
Public Overrides Function EstablecedcPrincipal(Optional Background As Boolean = False, Optional FuerzaNuevo As Boolean = False, Optional Refrescar As Boolean = False) As tsUtilidades.EstadosAplicacion
|
||||
|
||||
|
||||
Dim NuevoEstado As tsUtilidades.EstadosAplicacion
|
||||
|
||||
If idLog.HasValue Then
|
||||
Try
|
||||
Dim log = bd.logs.First(Function(x) x.idLog = idLog)
|
||||
ra = tsUtilidades.Utilidades.DeserializarSinErrores(log.Log, GetType(entidades))
|
||||
If ra.idUsuarioCreador.HasValue Then ra.idUsuarioCreadorNavigation = bd.usuarios.FirstOrDefault(Function(x) x.idUsuario = ra.idUsuarioCreador.Value)
|
||||
If ra.idUsuarioModificador.HasValue Then ra.idUsuarioModificadorNavigation = bd.usuarios.FirstOrDefault(Function(x) x.idUsuario = ra.idUsuarioModificador.Value)
|
||||
If bd.logs.Any(Function(x) x.idRelacionado = log.idLog AndAlso x.Aplicacion = "OBRAS") Then
|
||||
Dim entspol = bd.logs.First(Function(x) x.idRelacionado = log.idLog AndAlso x.Aplicacion = "OBRAS")
|
||||
Dim ld = tsUtilidades.Utilidades.deserializarsinerrores(entspol.Log, GetType(List(Of eventos)))
|
||||
For Each d In ld
|
||||
ra.eventos.Add(d)
|
||||
Next
|
||||
End If
|
||||
NuevoEstado = tsUtilidades.EstadosAplicacion.ModificandoRegistro
|
||||
Catch EX As Exception
|
||||
Throw New Exception("No ha sido posible mostrar el registro del cambio (id " & idLog.Value.ToString & ").", EX)
|
||||
End Try
|
||||
Else
|
||||
If FuerzaNuevo OrElse _idEntidad Is Nothing Then
|
||||
ra = New entidades
|
||||
ra.idEmpresa = db.Utilidades.EmpresaActual.idEmpresa
|
||||
ra.FechaAlta = DateOnly.FromDateTime(Now)
|
||||
_idEntidad = Nothing
|
||||
' ra.EsCliente = True
|
||||
NuevoEstado = tsUtilidades.EstadosAplicacion.Nuevo
|
||||
Else
|
||||
ra = bd.entidades.First(Function(x) x.idEntidad = _idEntidad)
|
||||
NuevoEstado = tsUtilidades.EstadosAplicacion.ModificandoRegistro
|
||||
End If
|
||||
End If
|
||||
|
||||
gcFacturasEmitidas.ItemsSource = bd.facturas.Include(Function(x) x.idEventoNavigation.CodigoMunicipioNavigation.CodigoProvinciaNavigation).Include(Function(x) x.movimientoscaja).Where(Function(x) x.idCliente = ra.idEntidad).OrderByDescending(Function(x) x.FechaFactura).ThenByDescending(Function(x) x.NumeroFactura).ToList
|
||||
gcFacturasRecibidas.ItemsSource = bd.facturasrecibidas.Where(Function(x) x.idProveedor = ra.idEntidad).OrderByDescending(Function(x) x.FechaFactura).ToList
|
||||
gcExpediente.ItemsSource = ra.expedientesentidades
|
||||
Me.gcLogs.ItemsSource = bd.logs.Where(Function(x) x.id = ra.idEntidad AndAlso x.Aplicacion = "ENTIDADES" AndAlso x.idRelacionado Is Nothing).OrderByDescending(Function(x) x.idLog).ToList
|
||||
Me.gcCorreos.ItemsSource = bd.correos.Where(Function(x) x.idEntidad = ra.idEntidad).OrderByDescending(Function(x) x.FechaCreacion).ToList
|
||||
Me.DataContext = ra
|
||||
EstableceItemsSourceProductos()
|
||||
Return NuevoEstado
|
||||
End Function
|
||||
|
||||
Private Sub EstableceItemsSourceProductos()
|
||||
'Try
|
||||
' Dim ra As entidades = Me.DataContext
|
||||
' Dim iqda = bd.detallesalbaranes.Include("productos").Include("albaranes").Include("facturas").Include("articulos").Include("albaranesrecogida").Where(Function(x) x.albaranes.idCliente = ra.idEntidad)
|
||||
' If cbSoloProductosPE.IsChecked Then
|
||||
' iqda = iqda.Where(Function(x) x.EsVenta = False AndAlso x.idAlbaranRecogida Is Nothing AndAlso x.FechaCancelacion.HasValue = False)
|
||||
' End If
|
||||
|
||||
' Dim ld = iqda.OrderByDescending(Function(x) x.albaranes.Fecha).ToList
|
||||
' gcProductosAoV.ItemsSource = ld
|
||||
' gcProductosAoV.ExpandAllGroups()
|
||||
'Catch ex As Exception
|
||||
' FuncionesDinamicas.ErrorNoControladoAp(Me, ex)
|
||||
' If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
||||
' DXMessageBox.Show(ex.Message, "Error")
|
||||
'End Try
|
||||
End Sub
|
||||
|
||||
Public Overrides Function ObtieneBD() As ItsContexto
|
||||
bd = tscGrupoSanchoToro.NuevoContexto
|
||||
Return bd
|
||||
End Function
|
||||
|
||||
Public Overrides ReadOnly Property NombreTablaBase As String
|
||||
Get
|
||||
Return "entidades"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
'Public Overrides ReadOnly Property CampoIndice As String
|
||||
' Get
|
||||
' Return "idEntidad"
|
||||
' End Get
|
||||
'End Property
|
||||
|
||||
'Private ReadOnly Property IAplicacion_Titulo As String Implements IAplicacion.Titulo
|
||||
' Get
|
||||
' Return "Entidad"
|
||||
' End Get
|
||||
'End Property
|
||||
|
||||
Public Overrides ReadOnly Property idRegistroAplicacionActual As String
|
||||
Get
|
||||
If idLog.HasValue Then
|
||||
Return "Entidad. R.C.:" & idLog.ToString
|
||||
Else
|
||||
If Me.Estado = tsUtilidades.EstadosAplicacion.Nuevo Then
|
||||
Return "Entidad.Nuevo"
|
||||
Else
|
||||
Return "Entidad." & DirectCast(Me.DataContext, entidades).idEntidad.ToString
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Overrides ReadOnly Property DescripcionRegistro As String
|
||||
Get
|
||||
Return "Cliente/Proveedor"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub New(Optional idEntidad As Integer? = Nothing)
|
||||
|
||||
' Llamada necesaria para el diseñador.
|
||||
InitializeComponent()
|
||||
_idEntidad = idEntidad
|
||||
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Public Overrides Sub EstableceDataContextSecundarios(Optional Background As Boolean = False)
|
||||
Try
|
||||
Me.cbTipoPago.ItemsSource = bd.enumeraciones.Where(Function(x) x.idGrupoEnumeracionNavigation.Grupo = "TIPP").ToList
|
||||
Dim tipdir = bd.enumeraciones.Where(Function(x) x.idGrupoEnumeracionNavigation.Grupo = "TIPDIR").ToList
|
||||
'Me.cbTarifa.ItemsSource = tsUtilidades.DescripcionValor.EnumADescripcionValor(GetType(Enums.TarifasEnum))
|
||||
Dim Acciones As New List(Of tsWPFCore.Accion)
|
||||
Acciones.Add(New Accion With {
|
||||
.idAccion = 1,
|
||||
.Descripcion = "ENVIA FACTURAS SELECCIONADAS Y SUS ALBARANES POR EMAIL"})
|
||||
Acciones.Add(New Accion With {
|
||||
.idAccion = 2,
|
||||
.Descripcion = "ENVIA FACTURAS SELECCIONADAS POR EMAIL"})
|
||||
Acciones.Add(New Accion With {
|
||||
.idAccion = 3,
|
||||
.Descripcion = "GENERA EXCEL DE FACTURAS SELECCIONADAS"})
|
||||
Acciones.Add(New Accion With {
|
||||
.idAccion = 4,
|
||||
.Descripcion = "ENVIA EXCEL DE FACTURAS SELECCIONADAS POR EMAIL"})
|
||||
Acciones.Add(New Accion With {
|
||||
.idAccion = 5,
|
||||
.Descripcion = "GENERA UN PDF DE FACTURAS SELECCIONADAS"})
|
||||
Acciones.Add(New Accion With {
|
||||
.idAccion = 6,
|
||||
.Descripcion = "GENERA FACTURAS SELECCIONADAS Y SUS ALBARANES EN PDF"})
|
||||
|
||||
Me.ContenedorAplicacion.cbAcciones.ItemsSource = Acciones
|
||||
Me.ContenedorAplicacion.beAcciones.EditValue = Acciones.First.idAccion
|
||||
Catch ex As Exception
|
||||
Throw New Exception(ex.Message, ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub EstableceTitulo()
|
||||
'If Me.docpanel Is Nothing Then
|
||||
' Dim w As dxwGenerica = Window.GetWindow(Me)
|
||||
' w.Title = "Agregar nuevo Cliente/Proveedor"
|
||||
'Else
|
||||
If idLog.HasValue Then
|
||||
Dim ent As entidades = Me.DataContext
|
||||
Me.docpanel.Caption = "R.C. Cliente/Proveedor " & ent.RazonSocial
|
||||
Else
|
||||
If Me.Estado = tsUtilidades.EstadosAplicacion.ModificandoRegistro Then
|
||||
Dim ent As entidades = Me.DataContext
|
||||
Me.docpanel.Caption = "Cliente/Proveedor " & ent.RazonSocial
|
||||
Me.docpanel.Tag = "Entidad." & ent.idEntidad
|
||||
Else
|
||||
Me.docpanel.Caption = "Cliente/Proveedor Nuevo"
|
||||
Me.docpanel.Tag = "Entidad.Nueva"
|
||||
End If
|
||||
End If
|
||||
' End If
|
||||
End Sub
|
||||
|
||||
Public Overrides Function ObtienePermisos() As tsUtilidades.Permisos
|
||||
Return Comun.ObtienePermisos(Me.bd, "AP.ADMINISTRATIVOS", bdGrupoSanchoToro.db.Utilidades.idUsuario)
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Private Sub ap_ValidarControl(sender As Object, e As ValidationEventArgs, ByRef ev As ErrorValidacion, ByRef ValorOriginalCambiado As Object) Handles Me.ValidarControl
|
||||
|
||||
Dim pts As PropiedadesTS = sender.parent.propiedadests
|
||||
Try
|
||||
If Not pts Is Nothing Then
|
||||
ErroresValidacion.EliminaError("validando-" & pts.NombreCampo)
|
||||
Dim ra As entidades = Me.DataContext
|
||||
Select Case pts.NombreCampo.ToLower
|
||||
Case "email"
|
||||
If e.Value IsNot Nothing AndAlso e.Value.ToString <> "" Then
|
||||
If Not e.Value.ToString.Trim.ToLower.EsEmailValido Then Throw New Exception("El email es incorrecto")
|
||||
End If
|
||||
Case "email2"
|
||||
If e.Value IsNot Nothing AndAlso e.Value.ToString <> "" Then
|
||||
If Not e.Value.ToString.Trim.ToLower.EsEmailValido Then Throw New Exception("El email es incorrecto")
|
||||
End If
|
||||
Case "nif"
|
||||
'If Not e.Value Is Nothing Then
|
||||
' Dim sDNI As String = tsUtilidades.Utilidades.CalculoLetraCif(e.Value) ' tsUtilidades.Utilidades.RecalculaNIF(e.Value)
|
||||
' If sDNI <> e.Value.ToString.ToUpper Then
|
||||
' ra.NIF = sDNI
|
||||
' ValorOriginalCambiado = sDNI
|
||||
' End If
|
||||
'End If
|
||||
Case "codigopostal"
|
||||
If Not e.Value Is Nothing AndAlso e.Value.ToString <> "" AndAlso e.Value.ToString <> ra.CodigoPostal Then
|
||||
|
||||
Dim sCpo As String = e.Value.ToString
|
||||
If sCpo.Length <> 5 Then Throw New Exception("El código postal no es correcto")
|
||||
Dim sCodigoprovincia As String = sCpo.Substring(0, 2)
|
||||
If Not bd.provincias.Any(Function(x) x.CodigoProvincia = sCodigoprovincia) Then Throw New Exception("El código postal no es correcto")
|
||||
Select Case bd.codigospostales.Where(Function(x) x.CodigoPostal = sCpo).Count
|
||||
Case 0
|
||||
Dim vncp As New dxwAgregarNuevoCodigoPostal(sCpo, bd)
|
||||
If vncp.ShowDialog Then
|
||||
Dim pob = bd.codigospostales.First(Function(x) x.CodigoPostal = sCpo)
|
||||
ra.CodigoMunicipio = pob.CodigoMunicipio
|
||||
Else
|
||||
Throw New Exception("El código postal no es correcto")
|
||||
End If
|
||||
Case 1
|
||||
Dim pob = bd.codigospostales.First(Function(x) x.CodigoPostal = sCpo)
|
||||
ra.CodigoMunicipio = pob.CodigoMunicipio
|
||||
|
||||
Case Else
|
||||
Dim wMunicipios As New dxwCodigosPostales(bd, sCpo)
|
||||
If wMunicipios.ShowDialog Then
|
||||
ra.CodigoMunicipio = wMunicipios.CodigoMunicipio
|
||||
Else
|
||||
Throw New Exception("El código postal no es correcto")
|
||||
End If
|
||||
End Select
|
||||
End If
|
||||
|
||||
Case "iban"
|
||||
' Me.ErroresValidacion.EliminaError("iban")
|
||||
If Not e.Value Is Nothing AndAlso e.Value <> "" Then
|
||||
Dim sIBAN As String = e.Value
|
||||
If sIBAN <> "" Then
|
||||
If sIBAN.Length <> 24 Then
|
||||
' e.IsValid = False
|
||||
If sIBAN.Length <> 20 Then
|
||||
Throw New Exception("La longitud del codigo IBAN debe ser 24 caracteres (o 20 y se calculará el IBAN).")
|
||||
Else
|
||||
Dim sDC As String = tsUtilidades.Bancos.Genericas.CalcularDigitoControlBancario(sIBAN.Substring(0, 4), sIBAN.Substring(4, 4), sIBAN.Substring(10, 10))
|
||||
If sDC <> sIBAN.Substring(8, 2) Then
|
||||
Throw New Exception("El dígito de control bancario es erroneo.")
|
||||
Else
|
||||
Dim sIBANCalculado As String = tsUtilidades.Bancos.Genericas.CalcularIBAN("ES", sIBAN.Substring(0, 4), sIBAN.Substring(4, 4), sIBAN.Substring(8, 2), sIBAN.Substring(10, 10))
|
||||
ra.IBAN = sIBANCalculado
|
||||
ValorOriginalCambiado = True
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
Dim sDC As String = tsUtilidades.Bancos.Genericas.CalcularDigitoControlBancario(sIBAN.Substring(4, 4), sIBAN.Substring(8, 4), sIBAN.Substring(14, 10))
|
||||
If sDC <> sIBAN.Substring(12, 2) Then
|
||||
Throw New Exception("El dígito de control bancario es erroneo.")
|
||||
Else
|
||||
Dim sIBANCalculado As String = tsUtilidades.Bancos.Genericas.CalcularIBAN(sIBAN.Substring(0, 2), sIBAN.Substring(4, 4), sIBAN.Substring(8, 4), sIBAN.Substring(12, 2), sIBAN.Substring(14, 10))
|
||||
If sIBANCalculado.Substring(2, 2) <> sIBAN.Substring(2, 2) Then
|
||||
' e.IsValid = False
|
||||
Throw New Exception("Los digitos bancarios no son válidos.")
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
'Case "telefono1", "telefono2"
|
||||
' If e.Value IsNot Nothing AndAlso e.Value.ToString <> "" Then
|
||||
' Dim tlf = e.Value.ToString
|
||||
' If tlf.Length <> 9 AndAlso tlf.Length <> 11 AndAlso tlf.Length <> 12 Then
|
||||
' Throw New Exception("Nº de teléfono incorrecto")
|
||||
' Else
|
||||
' If tlf.Length = 12 AndAlso tlf.StartsWith("+") = False Then
|
||||
' Throw New Exception("Nº de teléfono incorrecto")
|
||||
' End If
|
||||
' tlf = tlf.TrimStart("+")
|
||||
' For i = 0 To tlf.Length - 1
|
||||
' If "0123456789".Contains(tlf.Substring(i, 1)) = False Then Throw New Exception("Nº de teléfono incorrecto")
|
||||
' Next
|
||||
' End If
|
||||
' End If
|
||||
End Select
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Dim sCodigoError As String = "validando-"
|
||||
If pts IsNot Nothing Then
|
||||
sCodigoError &= pts.NombreCampo
|
||||
End If
|
||||
ev = New ErrorValidacion(sCodigoError, sender, ex.Message, ex, DevExpress.XtraEditors.DXErrorProvider.ErrorType.Critical)
|
||||
e.IsValid = False
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub ap_DespuesGuardar(sender As Object, e As ItemClickEventArgs, OpcionGuardado As Integer) Handles Me.DespuesGuardar
|
||||
_idEntidad = DirectCast(Me.DataContext, entidades).idEntidad
|
||||
If docpanel IsNot Nothing Then
|
||||
'If Refrescar Then ap.RefrescaUC()
|
||||
'Refrescar = False
|
||||
Dim ra As entidades = Me.DataContext
|
||||
Me.gcLogs.ItemsSource = bd.logs.Where(Function(x) x.id = ra.idEntidad AndAlso x.Aplicacion = "ENTIDADES" AndAlso x.idRelacionado Is Nothing).OrderByDescending(Function(x) x.idLog).ToList
|
||||
Else
|
||||
Dim w = Window.GetWindow(Me)
|
||||
w.DialogResult = True
|
||||
w.Close()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub ap_Enlazar(Celda As EditGridCellData, Defecto As Boolean) Handles Me.Enlazar
|
||||
Dim ra As entidades = Me.DataContext
|
||||
Select Case Celda.View.Name.ToLower
|
||||
Case Else
|
||||
Select Case Celda.Column.FieldName.ToLower
|
||||
Case "idlog"
|
||||
Dim log As logs = gcLogs.CurrentItem
|
||||
Dim id As Integer = log.idLog
|
||||
Dim uc As New ucEntidad()
|
||||
uc.idLog = log.idLog
|
||||
FuncionesDinamicas.AbrirAP(uc, OtrosParametros)
|
||||
|
||||
Case "contineficheroadjunto"
|
||||
Dim correo As correos = gcCorreos.CurrentItem
|
||||
Dim sDirAleatorio As String = tsUtilidades.Utilidades.ObtieneDirectorioAleatorio("GrupoSanchoToro")
|
||||
Dim sftmp As String = sDirAleatorio & "\" & correo.idFicheroAdjuntoNavigation.NombreFichero
|
||||
tsUtilidades.Utilidades.ByteArrayAFichero(correo.idFicheroAdjuntoNavigation.Fichero, sftmp, True)
|
||||
tsUtilidades.Sistema.EjecutaFichero(sftmp)
|
||||
Case "numerofactura"
|
||||
Dim fe As facturas = gcFacturasEmitidas.CurrentItem
|
||||
Dim id As Integer = fe.idFactura
|
||||
' Dim uc As New ucFacturaEmitida(id)
|
||||
' FuncionesDinamicas.AbrirAP(uc, OtrosParametros)
|
||||
Case "idfactura"
|
||||
Dim fe As facturasrecibidas = gcFacturasRecibidas.CurrentItem
|
||||
Dim id As Integer = fe.idFactura
|
||||
Dim uc As New ucFacturaRecibida(id)
|
||||
FuncionesDinamicas.AbrirAP(uc, OtrosParametros)
|
||||
|
||||
Case "ficheroadjunto"
|
||||
Dim co As correos = gcCorreos.CurrentItem
|
||||
Dim b() = co.idFicheroAdjuntoNavigation.Fichero
|
||||
Dim nf = tsUtilidades.Utilidades.ObtieneFicheroAleatorio(IO.Path.GetExtension(co.idFicheroAdjuntoNavigation.NombreFichero))
|
||||
IO.File.WriteAllBytes(nf, b)
|
||||
tsUtilidades.Sistema.EjecutaFichero(nf)
|
||||
End Select
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub BeCodigoPostal_DefaultButtonClick(sender As Object, e As RoutedEventArgs)
|
||||
Dim ra As entidades = Me.DataContext
|
||||
Dim dxw As New dxwCodigosPostales(bd, "")
|
||||
If dxw.ShowDialog Then
|
||||
ra.CodigoMunicipio = dxw.CodigoMunicipio
|
||||
ra.CodigoPostal = dxw.CodigoPostal
|
||||
ra.RefrescaCamposSoloLectura()
|
||||
beCodigoPostal.Text = ra.CodigoPostal
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub BtCancelarCodigoPostal_Click(sender As Object, e As RoutedEventArgs)
|
||||
Dim ra As entidades = Me.DataContext
|
||||
ra.CodigoMunicipio = ""
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub ap_EstadoCambiado(EstadoAnterior As tsUtilidades.EstadosAplicacion, EstadoNuevo As tsUtilidades.EstadosAplicacion) Handles Me.EstadoCambiado
|
||||
Select Case EstadoNuevo
|
||||
Case EstadosAplicacion.ModificandoRegistro
|
||||
If Me.idLog.HasValue Then
|
||||
Me.EstableceSoloLectura()
|
||||
Else
|
||||
Dim ra As entidades = Me.DataContext
|
||||
If ra.facturas.Any OrElse ra.facturasrecibidas.Any OrElse ra.presupuestos.Any Then
|
||||
Me.ContenedorAplicacion.btEliminar.IsEnabled = False
|
||||
End If
|
||||
End If
|
||||
End Select
|
||||
If idLog.HasValue Then EstableceSoloLectura()
|
||||
End Sub
|
||||
|
||||
Private Sub CbSoloProductosPE_EditValueChanged(sender As Object, e As EditValueChangedEventArgs)
|
||||
EstableceItemsSourceProductos()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub tvExpediente_ValidateRow(sender As Object, e As GridRowValidationEventArgs) Handles tvExpediente.ValidateRow
|
||||
Dim ges As expedientesentidades = gcExpediente.CurrentItem
|
||||
If ges.idUsuario.HasValue = False Then
|
||||
ges.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario
|
||||
End If
|
||||
End Sub
|
||||
Private Sub VerDocumento(sender As System.Object, e As System.Windows.RoutedEventArgs)
|
||||
Try
|
||||
Dim exp As expedientesentidades = gcExpediente.CurrentItem
|
||||
If exp IsNot Nothing AndAlso exp.idFicheroNavigation IsNot Nothing AndAlso exp.idFicheroNavigation.NombreFichero IsNot Nothing AndAlso exp.idFicheroNavigation.Fichero IsNot Nothing Then
|
||||
Dim sftmp As String = tsUtilidades.Utilidades.ObtieneDirectorioAleatorio("GrupoSanchoToro") & "\" & exp.idFicheroNavigation.NombreFichero
|
||||
tsUtilidades.Utilidades.ByteArrayAFichero(exp.idFicheroNavigation.Fichero, sftmp, True)
|
||||
tsUtilidades.Sistema.EjecutaFichero(sftmp)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub Examinar(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btFichero.DefaultButtonClick
|
||||
Try
|
||||
If gcExpediente.CurrentItem Is Nothing Then tvExpediente.AddNewRow()
|
||||
Dim exp As expedientesentidades = gcExpediente.CurrentItem
|
||||
Dim ofd As New OpenFileDialog
|
||||
If ofd.ShowDialog() Then
|
||||
Dim fin As New FileInfo(ofd.FileName)
|
||||
If fin.Length > 1024 * 1024 * 50 Then
|
||||
DXMessageBox.Show("El fichero no puede ser mayor de 50 Mb", "Atención")
|
||||
Else
|
||||
Dim f() As Byte = IO.File.ReadAllBytes(ofd.FileName)
|
||||
Dim idTipoDocumentoExp = bd.enumeraciones.First(Function(x) x.Codigo = "TIPFIC.EXPENT").idEnumeracion
|
||||
If exp.idFicheroNavigation Is Nothing Then
|
||||
Dim fi As New db.ficheros
|
||||
exp.idFicheroNavigation = fi
|
||||
End If
|
||||
exp.idFicheroNavigation.NombreFichero = IO.Path.GetFileName(ofd.FileName)
|
||||
exp.idFicheroNavigation.Fichero = f
|
||||
exp.idFicheroNavigation.Fecha = Now
|
||||
exp.idFicheroNavigation.Descripcion = exp.Descripcion.Acortar(80)
|
||||
exp.idFicheroNavigation.idTipo = idTipoDocumentoExp
|
||||
exp.Fecha = Now
|
||||
Dim usu = bd.usuarios.First(Function(x) x.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario)
|
||||
exp.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario
|
||||
exp.idUsuarioNavigation = usu
|
||||
tvExpediente.MoveNextCell()
|
||||
gcExpediente.RefreshRow(tvExpediente.FocusedRowHandle)
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
DXMessageBox.Show(ex.Message, "Error")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub TvExpediente_PreviewKeyDown(sender As Object, e As KeyEventArgs)
|
||||
If e.Key = Key.F6 AndAlso gcExpediente.CurrentColumn.FieldName.ToLower = "ficheros.nombrefichero" Then
|
||||
Examinar(Nothing, Nothing)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub tvExpediente_InitNewRow(sender As Object, e As InitNewRowEventArgs) Handles tvExpediente.InitNewRow
|
||||
gcExpediente.SetCellValue(e.RowHandle, "Fecha", Date.Today)
|
||||
End Sub
|
||||
|
||||
Private Sub ucEntidad_EjecutarAccion(sender As Object, e As ItemClickEventArgs, idAccion As Integer) Handles Me.EjecutarAccion
|
||||
Try
|
||||
Dim ra As entidades = Me.DataContext
|
||||
Dim fras = gcFacturasEmitidas.ElementosSeleccionados.Cast(Of facturas).ToList
|
||||
If fras.Count = 0 Then
|
||||
DXMessageBox.Show("Antes debe seleccionar alguna factura emitida", "Atención")
|
||||
Else
|
||||
If fras.Any(Function(x) x.TotalIVA = 0) Then
|
||||
DXMessageBox.Show("Atención alguna de las facturas seleccionadas no tienen IVA", "Atención")
|
||||
End If
|
||||
Select Case idAccion
|
||||
Case 1, 2
|
||||
If Not Guardar(Nothing, Nothing) Then
|
||||
Dim sFacturas As String = ""
|
||||
For Each f In fras
|
||||
sFacturas &= f.NumeroFactura & vbCrLf
|
||||
Next
|
||||
Dim dxnc As dxwEnvioCorreo
|
||||
If idAccion = 2 Then
|
||||
dxnc = New dxwEnvioCorreo(ra.Email, ra.Email2.NothingAVacio, "", EmpresaActual.RazonSocial & " - Adjunto le remitimos facturas solicitadas", "Distinguidos Sres., " & vbCrLf & "Adjunto le remitimos las siguientes facturas:" & vbNewLine & sFacturas, "Facturas.zip")
|
||||
Else
|
||||
dxnc = New dxwEnvioCorreo(ra.Email, ra.Email2.NothingAVacio, "", EmpresaActual.RazonSocial & " - Adjunto le remitimos facturas y albaranes solicitados", "Distinguidos Sres., " & vbCrLf & "Adjunto le remitimos las siguientes facturas y sus albaranes relacionados:" & vbNewLine & sFacturas, "Facturas.zip")
|
||||
End If
|
||||
If dxnc.ShowDialog Then
|
||||
DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
|
||||
DXSplashScreen.SetState("Generando correo, por favor espere ...")
|
||||
Dim cta = bd.cuentascorreo.First(Function(x) x.Codigo = "DEFECTO" AndAlso x.idEmpresa = EmpresaActual.idEmpresa)
|
||||
Dim dArchivos As Dictionary(Of String, Byte()) = Nothing
|
||||
For Each fe In fras
|
||||
DXSplashScreen.SetState("Generando archivos de la factura " & fe.NumeroFactura & ", por favor espere ...")
|
||||
' ucFacturaEmitida.GeneraPdfFacturasYAlbaranes(bd, fe, idAccion = 1, dArchivos, True)
|
||||
Next
|
||||
DXSplashScreen.SetState("Comprimiendo Archivos, por favor espere ...")
|
||||
Dim bzip = tsUtilidades.zip.ComprimirArchivos(dArchivos)
|
||||
correos.GeneraRegistroCorreon(bd, dxnc._Asunto, dxnc._Cuerpo, cta, dxnc._Destinatarios, dxnc._CC, dxnc._BCC, bzip, dxnc._Adjunto, ra.idEntidad, "ENTIDAD", ra.idEntidad)
|
||||
End If
|
||||
End If
|
||||
Case 3
|
||||
Try
|
||||
Dim sfd As New SaveFileDialog
|
||||
sfd.FileName = IO.Path.GetDirectoryName("Exportacion") & ("Facturas.xlsx").Trim
|
||||
sfd.Filter = "Fichero Excel (*.xls, *.xlsx, *.csv)|*.xls;*.xlsx;*.csv"
|
||||
sfd.DefaultExt = ".xlsx"
|
||||
If sfd.ShowDialog Then
|
||||
gcFacturasEmitidas.ItemsSource = fras
|
||||
Dim ms As New MemoryStream
|
||||
Dim bFacturas As Byte() = Nothing
|
||||
Select Case IO.Path.GetExtension(sfd.FileName).ToLower
|
||||
Case ".xls"
|
||||
tvFacturasEmitidas.ExportToXls(ms)
|
||||
bFacturas = InsertaLogoEnXLSX(ms, DevExpress.Spreadsheet.DocumentFormat.Xls)
|
||||
Case ".xlsx"
|
||||
tvFacturasEmitidas.ExportToXlsx(ms)
|
||||
bFacturas = InsertaLogoEnXLSX(ms, DevExpress.Spreadsheet.DocumentFormat.Xlsx)
|
||||
Case ".csv"
|
||||
tvFacturasEmitidas.ExportToCsv(ms)
|
||||
bFacturas = InsertaLogoEnXLSX(ms, DevExpress.Spreadsheet.DocumentFormat.Csv)
|
||||
Case Else
|
||||
Throw New Exception("Formato no soportado")
|
||||
End Select
|
||||
IO.File.WriteAllBytes(sfd.FileName, bFacturas)
|
||||
tsUtilidades.Sistema.EjecutaFichero(sfd.FileName)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Throw New Exception(ex.Message, ex)
|
||||
Finally
|
||||
gcFacturasEmitidas.ItemsSource = ra.facturas.OrderByDescending(Function(x) x.FechaFactura).ToList
|
||||
End Try
|
||||
Case 4
|
||||
If Not Guardar(Nothing, Nothing) Then
|
||||
Try
|
||||
Dim dxnc = New dxwEnvioCorreo(ra.Email, ra.Email2.NothingAVacio, "", EmpresaActual.RazonSocial & " - Adjunto le remitimos listado de facturas solicitadas", "Distinguidos Sres., " & vbCrLf & "Adjunto le remitimos listado de facturas solicitadas", "Facturas.xlsx")
|
||||
If dxnc.ShowDialog Then
|
||||
Dim cta = bd.cuentascorreo.First(Function(x) x.Codigo = "DEFECTO" AndAlso x.idEmpresa = EmpresaActual.idEmpresa)
|
||||
gcFacturasEmitidas.ItemsSource = fras
|
||||
Dim ms As New MemoryStream
|
||||
tvFacturasEmitidas.ExportToXlsx(ms)
|
||||
Dim bFacturas = InsertaLogoEnXLSX(ms, DevExpress.Spreadsheet.DocumentFormat.Xlsx)
|
||||
gcFacturasEmitidas.ItemsSource = ra.facturas.OrderByDescending(Function(x) x.FechaFactura).ToList
|
||||
bdGrupoSanchoToro.db.correos.GeneraRegistroCorreon(bd, dxnc._Asunto, dxnc._Cuerpo, cta, dxnc._Destinatarios, dxnc._CC, dxnc._BCC, bFacturas, dxnc._Adjunto, ra.idEntidad, "ENTIDAD", ra.idEntidad)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Throw New Exception(ex.Message, ex)
|
||||
Finally
|
||||
gcFacturasEmitidas.ItemsSource = ra.facturas.OrderByDescending(Function(x) x.FechaFactura).ToList
|
||||
End Try
|
||||
End If
|
||||
Case 5
|
||||
Dim sfd As New SaveFileDialog
|
||||
sfd.FileName = "Facturas " & ra.RazonSocial.Trim & ".pdf"
|
||||
sfd.Filter = "Fichero PDF (*.pdf)|*.pdf"
|
||||
sfd.DefaultExt = ".pdf"
|
||||
If sfd.ShowDialog Then
|
||||
DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
|
||||
DXSplashScreen.SetState("Generando PDF, por favor espere ...")
|
||||
Dim lfras As New List(Of Byte())
|
||||
For Each factura In fras.OrderBy(Function(x) x.NumeroFactura).ToList
|
||||
DXSplashScreen.SetState("Procesando factura " & factura.NumeroFactura & ", por favor espere ...")
|
||||
Dim ds = New List(Of facturas)
|
||||
Dim idpl As Integer
|
||||
If factura.PorcentajeIVA1 > 0 Then
|
||||
idpl = bd.plantillas.First(Function(x) x.Codigo = "FACEMI").idPlantilla
|
||||
Else
|
||||
idpl = bd.plantillas.First(Function(x) x.Codigo = "NOTENT").idPlantilla
|
||||
End If
|
||||
ds.Add(factura)
|
||||
lfras.Add(Informes.GuardaInformeEnPdf(bd, idpl, ds))
|
||||
Next
|
||||
Dim lista = lfras.Select(Function(x) New MemoryStream(x)).ToArray
|
||||
TSpdfUtils.pdf.UnePdfs(lista, sfd.FileName)
|
||||
tsUtilidades.Sistema.EjecutaFichero(sfd.FileName)
|
||||
End If
|
||||
|
||||
Case 6
|
||||
Dim sfd As New SaveFileDialog
|
||||
sfd.FileName = "Facturas y Albaranes " & ra.RazonSocial.Trim & ".pdf"
|
||||
sfd.Filter = "Fichero Pdf (*.pdf|*.pdf"
|
||||
sfd.DefaultExt = ".pdf"
|
||||
If sfd.ShowDialog Then
|
||||
DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
|
||||
DXSplashScreen.SetState("Generando PDF, por favor espere ...")
|
||||
Dim dArchivos As Dictionary(Of String, Byte()) = Nothing
|
||||
For Each fe In fras
|
||||
DXSplashScreen.SetState("Generando archivos de la factura " & fe.NumeroFactura & ", por favor espere ...")
|
||||
' ucFacturaEmitida.GeneraPdfFacturasYAlbaranes(bd, fe, True, dArchivos, True)
|
||||
Next
|
||||
Dim aArchivos = dArchivos.Select(Function(x) x.Value).ToArray
|
||||
Dim lista = aArchivos.Select(Function(x) New MemoryStream(x)).ToArray
|
||||
TSpdfUtils.pdf.UnePdfs(lista, sfd.FileName)
|
||||
tsUtilidades.Sistema.EjecutaFichero(sfd.FileName)
|
||||
End If
|
||||
End Select
|
||||
End If
|
||||
Catch ex As Exception
|
||||
FuncionesDinamicas.ErrorNoControladoAp(Me, ex)
|
||||
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
||||
DXMessageBox.Show("Error " & ex.Message, "Error")
|
||||
Finally
|
||||
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
||||
End Try
|
||||
End Sub
|
||||
Private Function InsertaLogoEnXLSX(ms As MemoryStream, Formato As DevExpress.Spreadsheet.DocumentFormat) As Byte()
|
||||
ms.Position = 0
|
||||
Dim wb As New Workbook
|
||||
wb.LoadDocument(ms, Formato)
|
||||
If Formato <> DevExpress.Spreadsheet.DocumentFormat.Csv Then
|
||||
wb.Worksheets(0).Rows.Insert(0, 6)
|
||||
wb.Worksheets(0).MergeCells(wb.Worksheets(0).Range("A1:C4"))
|
||||
Dim memStream As System.IO.MemoryStream = New MemoryStream(bd.ficherosconfiguracion.First(Function(X) X.Codigo = "LOGO").Configuracion)
|
||||
Dim chartControl1ImageSource = SpreadsheetImageSource.FromStream(memStream)
|
||||
wb.Worksheets(0).Pictures.AddPicture(chartControl1ImageSource, wb.Worksheets(0).Range("A1:C4"), True)
|
||||
wb.Worksheets(0).Cells("A5").Value = "IBAN: "
|
||||
wb.Worksheets(0).Cells("A5").FillColor = System.Drawing.Color.LightGray
|
||||
wb.Worksheets(0).Cells("A5").Font.Bold = True
|
||||
wb.Worksheets(0).Cells("B5").Value = bd.cajas.FirstOrDefault(Function(X) X.FechaBaja.HasValue = False AndAlso (X.IBAN IsNot Nothing AndAlso X.IBAN <> "")).IBAN
|
||||
wb.Worksheets(0).Cells("B5").Font.Color = System.Drawing.Color.Orange
|
||||
End If
|
||||
Dim b = wb.SaveDocument(Formato)
|
||||
Return b
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub ucEntidad_CampoActualizado(sender As Object, e As DataTransferEventArgs) Handles Me.CampoActualizado
|
||||
Dim pts As PropiedadesTS = sender.parent.propiedadests
|
||||
If Not pts Is Nothing Then
|
||||
Select Case pts.NombreCampo.ToLower
|
||||
Case "codigopostal"
|
||||
ra.RefrescaCamposSoloLectura()
|
||||
End Select
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub ucEntidad_AntesGuardar(sender As Object, e As ItemClickEventArgs, ByRef Cancelar As Boolean, ByRef MensajesError As Hashtable, EliminacionManual As Integer) Handles Me.AntesGuardar
|
||||
Dim hte As New Hashtable
|
||||
If ra.EsCliente = False AndAlso ra.EsProveedor = False Then
|
||||
hte.Add("ALMACENAR-CLIENTE_O_PROVEEDOR_OBLIGATORIO", "Debe seleccionar al menos alguna opción de si es cliente o proveedor")
|
||||
End If
|
||||
Dim vd = New tsUtilidades.ValidarDocumentoIdentidad(ra.NIF)
|
||||
If vd.EsCorrecto = False Then
|
||||
hte.Add("ALMACENAR-NIF INCORRECTO", "El documento de identidad es inválido")
|
||||
Else
|
||||
ra.NIF = vd.ToString
|
||||
End If
|
||||
If hte.Count = 0 Then
|
||||
Dim cifexi = bd.entidades.FirstOrDefault(Function(x) x.idEntidad <> ra.idEntidad AndAlso x.NIF = ra.NIF AndAlso x.idEmpresa = EmpresaActual.idEmpresa)
|
||||
If cifexi IsNot Nothing AndAlso cifexi.RazonSocial = ra.RazonSocial Then
|
||||
hte.Add("ALMACENAR-ENTIDAD_DUPLICADA", "Entidad Duplicada")
|
||||
ElseIf cifexi IsNot Nothing Then
|
||||
If DXMessageBox.Show("Ya existe una entidad con el mismo NIF (" & cifexi.RazonSocial & ") ¿Desea añadir de todas formas ya que es una sucursal?", "Atención", MessageBoxButton.YesNo) = MessageBoxResult.No Then
|
||||
hte.Add("ALMACENAR-ENTIDAD_DUPLICADA", "Entidad Duplicada")
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If hte.Count > 0 Then
|
||||
MensajesError = hte
|
||||
Cancelar = True
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user