273 lines
12 KiB
VB.net
273 lines
12 KiB
VB.net
|
|
Imports bdGrupoSanchoToro.db
|
|
Imports System.Data.Entity
|
|
Imports DevExpress.Xpf.Core
|
|
Imports tsWPFCore
|
|
Imports System.Collections
|
|
Imports DevExpress.Xpf.Bars
|
|
Imports System.Threading.Tasks
|
|
Imports System.Linq.Dynamic
|
|
Imports bdGrupoSanchoToro.db.Utilidades
|
|
Imports bdGrupoSanchoToro.db.tscGrupoSanchoToro
|
|
Imports System.IO
|
|
Imports tsEFCore8.Extensiones
|
|
|
|
Public Class ucMovimientosCaja
|
|
|
|
|
|
Private bd As tscGrupoSanchoToro
|
|
|
|
Private _CamposBusquedaNumericos() As String = {"idAlbaranEntrega", "idMovimiento", "Importe"}
|
|
Private _CamposBusquedaAlfabeticos() As String = {"movimientos.entidades.RazonSocial", "movimientos.entidades.NIF", "movimientos.NumeroFactura", "movimientosrecibidas.entidades.RazonSocial", "movimientosrecibidas.entidades.NIF", "movimientosrecibidas.NumeroFactura"}
|
|
|
|
|
|
|
|
Public Sub New()
|
|
|
|
' Esta llamada es exigida por el diseñador.
|
|
InitializeComponent()
|
|
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Public Overrides Sub Cargado()
|
|
ContenedorAplicacion.btGuardar.IsVisible = False
|
|
ContenedorAplicacion.siEstado.IsVisible = False
|
|
Dim Hoy = Date.Today
|
|
teFechaFin.EditValue = Hoy
|
|
teFechaInicio.EditValue = Hoy.AddDays(-30)
|
|
Me.GridSeleccion = Me.gc
|
|
End Sub
|
|
|
|
|
|
|
|
Public Overrides Function EstablecedcPrincipal(Optional Background As Boolean = False, Optional FuerzaNuevo As Boolean = False, Optional Refrescar As Boolean = False) As tsUtilidades.EstadosAplicacion
|
|
If Background OrElse Refrescar Then ObtienemovimientosAsync(bd, Background)
|
|
Return tsUtilidades.EstadosAplicacion.AplicacionSinIndice
|
|
End Function
|
|
|
|
Public Overrides Sub EstableceDataContextSecundarios(Optional Background As Boolean = False)
|
|
Dim Acciones As New List(Of tsWPFCore.Accion)
|
|
Acciones.Add(New Accion With {
|
|
.idAccion = 1,
|
|
.Descripcion = "ENVIA EXCEL DE MOVIMIENTOS SELECCIONADOS A ASESORIA"})
|
|
Me.ContenedorAplicacion.cbAcciones.ItemsSource = Acciones
|
|
Me.ContenedorAplicacion.beAcciones.EditValue = Acciones.First.idAccion
|
|
End Sub
|
|
|
|
Public Overrides Sub EstableceTitulo()
|
|
Me.docpanel.Caption = "Movimientos Caja"
|
|
End Sub
|
|
|
|
Public Overrides ReadOnly Property idRegistroAplicacionActual As String
|
|
Get
|
|
Return "movimientoscaja"
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property NombreTablaBase As String
|
|
Get
|
|
Return "movimientoscaja"
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property DescripcionRegistro As String
|
|
Get
|
|
Return "Movimientos Caja"
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides Function ObtieneBD() As tsUtilidades.ItsContexto
|
|
bd = tscGrupoSanchoToro.NuevoContexto()
|
|
Return bd
|
|
End Function
|
|
|
|
|
|
|
|
Public Overrides Function ObtienePermisos() As tsUtilidades.Permisos
|
|
Return Comun.ObtienePermisos(Me.bd, "AP.ADMINISTRATIVOS", idUsuario)
|
|
End Function
|
|
|
|
Private Sub Nuevo() Handles Me.BotonNuevoPulsado
|
|
FuncionesDinamicas.AbrirAP(New ucMovimientoCaja, OtrosParametros)
|
|
End Sub
|
|
|
|
Private Sub ap_Enlazar(Celda As DevExpress.Xpf.Grid.EditGridCellData, Defecto As Boolean) Handles Me.Enlazar
|
|
Dim ra = DirectCast(Me.gc.CurrentItem, movimientoscaja)
|
|
Select Case Celda.Column.FieldName.ToLower
|
|
Case "referenciadocumento"
|
|
Dim id As Integer
|
|
If ra.idFactura.HasValue Then
|
|
id = ra.idFactura
|
|
' FuncionesDinamicas.AbrirAP(New ucFacturaEmitida(id), OtrosParametros)
|
|
Else
|
|
id = ra.idFacturaRecibida
|
|
FuncionesDinamicas.AbrirAP(New ucFacturaRecibida(id), OtrosParametros)
|
|
End If
|
|
Case "razonsocial"
|
|
Dim id As Integer
|
|
If ra.idFactura.HasValue Then
|
|
id = ra.idFacturaNavigation.idCliente
|
|
Else
|
|
id = ra.idFacturaRecibidaNavigation.idProveedor
|
|
End If
|
|
FuncionesDinamicas.AbrirAP(New ucEntidad(id), OtrosParametros)
|
|
Case "idmovimiento"
|
|
Dim id As Integer
|
|
id = ra.idMovimiento
|
|
FuncionesDinamicas.AbrirAP(New ucMovimientoCaja(id), OtrosParametros)
|
|
Case "impresion"
|
|
Select Case DirectCast(ra.Tipo, TipoMovimientoEnum)
|
|
Case TipoMovimientoEnum.CIERRE_CAJA
|
|
Dim lm As New List(Of movimientoscaja)
|
|
lm.Add(ra)
|
|
Dim xr As New xrCierreCaja
|
|
Informes.ImprimeInforme(xr, False, 1, bd.AhoraMySql, lm)
|
|
Case TipoMovimientoEnum.RECIBO_CLIENTE
|
|
|
|
|
|
Dim ds As List(Of movimientoscaja)
|
|
Dim pl = bd.plantillas.AsNoTracking.Where(Function(x) x.Codigo = "RECIBO").Select(Function(x) New With {.Fichero = x.idFicheroNavigation.Fichero, .Tipo = x.idGrupoNavigation.Codigo}).FirstOrDefault
|
|
If pl IsNot Nothing Then
|
|
ds = New List(Of movimientoscaja)
|
|
ds.Add(ra)
|
|
Informes.ImprimirPlantilla(bd, pl.Fichero, ds, False, 1)
|
|
End If
|
|
|
|
End Select
|
|
End Select
|
|
End Sub
|
|
|
|
|
|
Public Function ObtieneMovimientosCaja(ByRef DataContext As Object, BackGround As Boolean, TextoBusqueda As String) As List(Of movimientoscaja)
|
|
Dim rs As IQueryable(Of movimientoscaja)
|
|
Dim lf As New List(Of movimientoscaja)
|
|
Dim iNumExc As Integer = 0
|
|
Do
|
|
Try
|
|
If TextoBusqueda <> "" Then
|
|
Dim parametros(0) As Object
|
|
Dim ExpresionBusqueda = tsWPFCore.Utilidades.Varias.GeneraExpresionBusqueda(TextoBusqueda, Me._CamposBusquedaNumericos, Me._CamposBusquedaAlfabeticos, Nothing)
|
|
rs = bd.movimientoscaja.Include(Function(x) x.idFacturaNavigation.idClienteNavigation).Include(Function(x) x.idFacturaRecibidaNavigation.idProveedorNavigation).Include(Function(x) x.idCajaNavigation).Include(Function(x) x.idUsuarioNavigation).Where(ExpresionBusqueda)
|
|
Else
|
|
rs = bd.movimientoscaja.Include(Function(x) x.idFacturaNavigation.idClienteNavigation).Include(Function(x) x.idFacturaRecibidaNavigation.idProveedorNavigation).Include(Function(x) x.idCajaNavigation).Include(Function(x) x.idUsuarioNavigation).OrderByDescending(Function(x) x.Fecha)
|
|
End If
|
|
Dim fi As Date? = teFechaInicio.EditValue
|
|
If fi.HasValue Then
|
|
rs = rs.Where(Function(x) x.Fecha >= fi.Value)
|
|
End If
|
|
Dim ff As Date? = teFechaFin.EditValue
|
|
If ff.HasValue Then
|
|
ff = ff.Value.AddDays(1)
|
|
rs = rs.Where(Function(x) x.Fecha < ff.Value)
|
|
End If
|
|
If cbIncluirTodos.IsChecked = False Then
|
|
rs = rs.Where(Function(x) x.idMovimientoCierre Is Nothing)
|
|
End If
|
|
lf = rs.OrderBy(Function(x) x.FechaCreacion).ToList
|
|
Exit Do
|
|
Catch ex As Exception
|
|
iNumExc += 1
|
|
If iNumExc > 3 Then
|
|
rs = Nothing
|
|
Exit Do
|
|
End If
|
|
End Try
|
|
Loop
|
|
Return lf
|
|
End Function
|
|
|
|
Public Async Sub ObtienemovimientosAsync(bd As tscGrupoSanchoToro, Background As Boolean)
|
|
Try
|
|
Dim rs As New List(Of movimientoscaja)
|
|
Dim Busqueda = tsEFCore8.Extensiones.ObjetoNothingAVacio(Me.teBusqueda.EditValue)
|
|
If Background Then
|
|
Me.ContenedorAplicacion.IsEnabled = False
|
|
Await Task.Run(Sub()
|
|
rs = ObtieneMovimientosCaja(bd, Background, Busqueda)
|
|
End Sub)
|
|
Else
|
|
If DXSplashScreen.IsActive = False Then DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
|
|
DXSplashScreen.SetState("Buscando Movimientos Caja ...")
|
|
rs = ObtieneMovimientosCaja(bd, Background, Busqueda)
|
|
End If
|
|
|
|
gc.ItemsSource = rs
|
|
DataContext = rs
|
|
Catch ex As Exception
|
|
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
|
DXMessageBox.Show(ex.Message, "Error")
|
|
Finally
|
|
Me.ContenedorAplicacion.IsEnabled = True
|
|
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
|
End Try
|
|
End Sub
|
|
Private Sub BtBuscar_Click(sender As Object, e As RoutedEventArgs)
|
|
ObtienemovimientosAsync(bd, False)
|
|
End Sub
|
|
|
|
Private Sub ucMovimientosCaja_EjecutarAccion(sender As Object, e As ItemClickEventArgs, idAccion As Integer) Handles Me.EjecutarAccion
|
|
Select Case idAccion
|
|
Case 1
|
|
Dim tm As List(Of movimientoscaja) = gc.ItemsSource
|
|
Try
|
|
|
|
Dim movs = gc.ElementosSeleccionados.Cast(Of movimientoscaja).ToList
|
|
Dim sCorreo = bd.enumeraciones.First(Function(x) x.Codigo = "CONF.EMAILASESORIA").ValorAlfabeticoLargo
|
|
Dim dxnc = New dxwEnvioCorreo(sCorreo, "", "", EmpresaActual.RazonSocial & " - Adjunto le remitimos listado de movimientos de caja", "Distinguidos Sres., " & vbCrLf & "Adjunto le remitimos listado de movimientos de caja", "MovimientosCaja.xlsx")
|
|
If dxnc.ShowDialog Then
|
|
Dim cta = bd.cuentascorreo.First(Function(x) x.Codigo = "DEFECTO" AndAlso x.idEmpresa = EmpresaActual.idEmpresa)
|
|
gc.ItemsSource = movs
|
|
Dim ms As New MemoryStream
|
|
tv.ExportToXlsx(ms)
|
|
' gc.ItemsSource = tf
|
|
Dim bFacturas = ms.ToArray
|
|
bdGrupoSanchoToro.db.correos.GeneraRegistroCorreon(bd, dxnc._Asunto, dxnc._Cuerpo, cta, dxnc._Destinatarios, dxnc._CC, dxnc._BCC, bFacturas, dxnc._Adjunto,, "MOVIMIENTOSCAJA")
|
|
End If
|
|
Catch ex As Exception
|
|
Throw New Exception(ex.Message, ex)
|
|
Finally
|
|
gc.ItemsSource = tm
|
|
End Try
|
|
End Select
|
|
End Sub
|
|
|
|
'Private Sub ucMovimientosCaja_ImprimirPlantilla(sender As Object, e As ItemClickEventArgs, idPlantilla As Integer) Handles Me.ImprimirPlantilla
|
|
' Select Case idPlantilla
|
|
' Case 0
|
|
' If Me.DataContext IsNot Nothing Then
|
|
' Dim recs = gc.ElementosSeleccionados.Cast(Of movimientoscaja).ToList
|
|
' If recs Is Nothing OrElse recs.Count = 0 Then
|
|
' DXMessageBox.Show("Seleccione primero algún recibo a imprimir", "Atención")
|
|
' Else
|
|
' If recs.Any(Function(x) x.Tipo <> TipoMovimientoEnum.RECIBO_CLIENTE) Then
|
|
' DXMessageBox.Show("Solo se pueden imprimir recibos de cliente", "Atención")
|
|
' Else
|
|
' Dim lr As New List(Of movimientoscaja)
|
|
' Dim cp As String = "RECIBO"
|
|
' If rec.idFactura.HasValue AndAlso rec.facturas.PorcentajeIVA = 0 Then cp = "RECIBOSC"
|
|
' Dim idPl = bd.plantillas.First(Function(x) x.Codigo = cp).idPlantilla
|
|
' Informes.ImprimirPlantilla(bd, idPlantilla, lr, False, 1)
|
|
' End If
|
|
' End If
|
|
' End If
|
|
' End If
|
|
' End Select
|
|
'End Sub
|
|
|
|
'Private Sub ap_ImprimirPlantilla(sender As Object, e As ItemClickEventArgs, idPlantilla As Integer) Handles me.ImprimirPlantilla
|
|
' Dim ds As List(Of movimientos)
|
|
' Dim pl As plantillas = (From p In bd.plantillas Where p.idPlantilla = idPlantilla).First
|
|
' Dim sTipo As String = pl.enumeraciones.Codigo
|
|
' Dim al As movimientos = Me.DataContext
|
|
' ds = New List(Of movimientos)
|
|
' ds.Add(al)
|
|
' Select Case sTipo
|
|
' Case "GRUPLA.AV-ALBARANES"
|
|
' Informes.ImprimirPlantilla(bd, idPlantilla, ds, False)
|
|
' End Select
|
|
'End Sub
|
|
End Class
|