329 lines
15 KiB
VB.net
329 lines
15 KiB
VB.net
Imports System.Data
|
|
Imports DevExpress.Xpf.Core
|
|
Imports bdGrupoSanchoToro.db
|
|
Imports DevExpress.Xpf.Bars
|
|
Imports bdGrupoSanchoToro.db.Utilidades
|
|
Imports DevExpress.Xpf.Grid
|
|
Imports tsEFCore8.Extensiones
|
|
Imports Microsoft.Win32
|
|
Imports tsUtilidades
|
|
|
|
Public Class ucMovimientoCaja
|
|
|
|
|
|
Private bd As tscGrupoSanchoToro
|
|
Friend _idMovimiento As Nullable(Of Integer)
|
|
Friend idLog As Integer?
|
|
Dim ra As movimientoscaja
|
|
Public Overrides Function EstablecedcPrincipal(Optional Background As Boolean = False, Optional FuerzaNuevo As Boolean = False, Optional Refrescar As Boolean = False) As 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(movimientoscaja))
|
|
If ra.idUsuario.HasValue Then ra.idUsuarioNavigation = bd.usuarios.FirstOrDefault(Function(x) x.idUsuario = ra.idUsuario.Value)
|
|
If ra.idFactura.HasValue Then
|
|
ra.idFacturaNavigation = bd.facturas.FirstOrDefault(Function(x) x.idFactura = ra.idFactura)
|
|
End If
|
|
|
|
If ra.idFacturaRecibida.HasValue Then
|
|
ra.idFacturaRecibidaNavigation = bd.facturasrecibidas.FirstOrDefault(Function(x) x.idFactura = ra.idFacturaRecibida)
|
|
End If
|
|
Dim lfic = bd.logs.FirstOrDefault(Function(x) x.idRelacionado = log.idLog AndAlso x.Aplicacion = "FICHEROS")
|
|
If lfic IsNot Nothing Then
|
|
Dim fic As db.ficheros = tsUtilidades.Utilidades.DeserializarSinErrores(lfic.Log, GetType(db.ficheros))
|
|
ra.idFicheroNavigation = fic
|
|
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 _idMovimiento.HasValue Then ra = bd.movimientoscaja.FirstOrDefault(Function(x) x.idMovimiento = _idMovimiento.Value)
|
|
If Estado = tsUtilidades.EstadosAplicacion.Nuevo OrElse _idMovimiento Is Nothing OrElse FuerzaNuevo OrElse ra Is Nothing Then
|
|
ra = New movimientoscaja
|
|
ra.Tipo = bdGrupoSanchoToro.db.TipoMovimientoEnum.OTROS_GASTOS_O_INGRESOS
|
|
Me.DataContext = ra
|
|
_idMovimiento = Nothing
|
|
ra.idUsuarioNavigation = bd.usuarios.First(Function(x) x.idUsuario = idUsuario)
|
|
ra.FechaCreacion = bd.AhoraMySql
|
|
ra.Fecha = ra.FechaCreacion
|
|
If bd.cajas.Where(Function(x) x.idEmpresa = EmpresaActual.idEmpresa AndAlso x.FechaBaja.HasValue = False).Count = 1 Then
|
|
ra.idCaja = bd.cajas.Where(Function(x) x.idEmpresa = EmpresaActual.idEmpresa AndAlso x.FechaBaja.HasValue = False).First.idCaja
|
|
End If
|
|
NuevoEstado = tsUtilidades.EstadosAplicacion.Nuevo
|
|
Else
|
|
|
|
Select Case DirectCast(ra.Tipo, TipoMovimientoEnum)
|
|
Case TipoMovimientoEnum.RECIBO_CLIENTE
|
|
Dim plantillas As New List(Of tsWPFCore.Plantilla)
|
|
plantillas.Add(New tsWPFCore.Plantilla With {.idPlantilla = 0, .Descripcion = "RECIBO"})
|
|
Me.ContenedorAplicacion.cbPlantillaAImprimir.ItemsSource = plantillas
|
|
Me.ContenedorAplicacion.bePlantilla.EditValue = plantillas.First.idPlantilla
|
|
|
|
Case TipoMovimientoEnum.CIERRE_CAJA
|
|
Dim plantillas As New List(Of tsWPFCore.Plantilla)
|
|
plantillas.Add(New tsWPFCore.Plantilla With {.idPlantilla = 0, .Descripcion = "IMPRIMIR CIERRE CAJA"})
|
|
Me.ContenedorAplicacion.cbPlantillaAImprimir.ItemsSource = plantillas
|
|
Me.ContenedorAplicacion.bePlantilla.EditValue = plantillas.First.idPlantilla
|
|
Case Else
|
|
Me.ContenedorAplicacion.cbPlantillaAImprimir.ItemsSource = Nothing
|
|
End Select
|
|
NuevoEstado = tsUtilidades.EstadosAplicacion.ModificandoRegistro
|
|
End If
|
|
End If
|
|
Me.gcLogs.ItemsSource = bd.logs.Where(Function(x) x.id = ra.idMovimiento AndAlso x.Aplicacion = "MOVIMIENTOSCAJA").ToList
|
|
Me.DataContext = ra
|
|
Return NuevoEstado
|
|
|
|
End Function
|
|
|
|
|
|
Public Overrides Function ObtieneBD() As tsUtilidades.ItsContexto
|
|
bd = tscGrupoSanchoToro.NuevoContexto
|
|
Return bd
|
|
End Function
|
|
|
|
Public Overrides ReadOnly Property NombreTablaBase As String
|
|
Get
|
|
Return "movimientoscaja"
|
|
End Get
|
|
End Property
|
|
|
|
|
|
|
|
|
|
Public Overrides ReadOnly Property idRegistroAplicacionActual As String
|
|
Get
|
|
If idLog.HasValue Then
|
|
Return "MovimientosCaja R.C.:" & idLog.ToString
|
|
Else
|
|
If Estado = tsUtilidades.EstadosAplicacion.Nuevo Then
|
|
Return "MovimientosCaja.Nuevo"
|
|
Else
|
|
Return "MovimientosCaja." & DirectCast(Me.DataContext, movimientoscaja).idMovimiento.ToString
|
|
End If
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property DescripcionRegistro As String
|
|
Get
|
|
Return "Movimiento Caja"
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub New(Optional idMovimiento As Integer? = Nothing)
|
|
|
|
' Llamada necesaria para el diseñador.
|
|
InitializeComponent()
|
|
_idMovimiento = idMovimiento
|
|
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Public Overrides Sub EstableceDataContextSecundarios(Optional Background As Boolean = False)
|
|
Me.cbTipo.ItemsSource = tsUtilidades.DescripcionValor.EnumADescripcionValor(GetType(TipoMovimientoEnum))
|
|
Me.cbCaja.ItemsSource = bd.cajas.Where(Function(x) x.idEmpresa = EmpresaActual.idEmpresa AndAlso x.FechaBaja.HasValue = False OrElse x.idCaja = ra.idCaja).OrderBy(Function(x) x.Descripcion).ToList
|
|
|
|
'Dim plantillas As New List(Of tsWPFCore.Plantilla)
|
|
'plantillas.Add(New tsWPFCore.Plantilla With {.idPlantilla = 0, .Descripcion = "RECIBO"})
|
|
'Me.ContenedorAplicacion.cbPlantillaAImprimir.ItemsSource = plantillas
|
|
'If plantillas.Count > 0 Then
|
|
' Me.ContenedorAplicacion.bePlantilla.EditValue = plantillas.First.idPlantilla
|
|
'End If
|
|
|
|
End Sub
|
|
|
|
Public Overrides Sub EstableceTitulo()
|
|
|
|
If idLog.HasValue Then
|
|
Dim mv As movimientoscaja = Me.DataContext
|
|
Me.docpanel.Caption = "R.C. Movimiento Caja " & mv.idMovimiento.ToString
|
|
Me.docpanel.Tag = "R.C. Movimiento Caja." & mv.idMovimiento.ToString
|
|
Else
|
|
If Me.Estado = tsUtilidades.EstadosAplicacion.ModificandoRegistro Then
|
|
Dim mv As movimientoscaja = Me.DataContext
|
|
Me.docpanel.Caption = "Movimiento Caja " & mv.idMovimiento.ToString
|
|
Me.docpanel.Tag = "MovimientoCaja." & mv.idMovimiento.ToString
|
|
Else
|
|
Me.docpanel.Caption = "Movimiento Caja Nuevo"
|
|
Me.docpanel.Tag = "MovimientoCaja.Nuevo"
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Public Overrides Function ObtienePermisos() As tsUtilidades.Permisos
|
|
Dim per = Comun.ObtienePermisos(Me.bd, "AP.ADMINISTRATIVOS", idUsuario)
|
|
per.Eliminar = False
|
|
Return per
|
|
End Function
|
|
|
|
|
|
Public Overrides Sub Cargado()
|
|
Me.Tipo_ucControlBusqueda = GetType(ucCajas)
|
|
End Sub
|
|
|
|
Private Sub HlMovimientoCierre_Click(sender As Object, e As RoutedEventArgs)
|
|
|
|
FuncionesDinamicas.AbrirAP(New ucMovimientoCaja(ra.idMovimientoCierre), OtrosParametros)
|
|
End Sub
|
|
|
|
Private Sub HlAlbaranEntrega_Click(sender As Object, e As RoutedEventArgs)
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub HlFacturaRecibida_Click(sender As Object, e As RoutedEventArgs)
|
|
|
|
FuncionesDinamicas.AbrirAP(New ucFacturaRecibida(ra.idFacturaRecibida), OtrosParametros)
|
|
End Sub
|
|
|
|
Private Sub HlFacturaEmitida_Click(sender As Object, e As RoutedEventArgs)
|
|
'Dim ra As movimientoscaja = Me.DataContext
|
|
'FuncionesDinamicas.AbrirAP(New ucFacturaEmitida(ra.idFactura), OtrosParametros)
|
|
End Sub
|
|
|
|
Private Sub ucMovimientoCaja_AntesGuardar(sender As Object, e As ItemClickEventArgs, ByRef Cancelar As Boolean, ByRef MensajesError As Hashtable, OpcionGuardado As Integer) Handles Me.AntesGuardar
|
|
|
|
Dim hte As New Hashtable
|
|
If ra.Observaciones.NothingAVacio = "" AndAlso Estado = tsUtilidades.EstadosAplicacion.Nuevo Then
|
|
hte.Add("ALMACENAR-OBSERVACIONES_OBLIGATORIAS", "Las observaciones son obligatorias en caso de Movimientos Nuevos")
|
|
End If
|
|
If ra.Importe = 0 Then
|
|
hte.Add("ALMACENAR-IMPORTE_DISTINTO_0", "El importe no puede ser 0")
|
|
End If
|
|
|
|
If hte.Count > 0 Then
|
|
MensajesError = hte
|
|
Cancelar = True
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ucMovimientoCaja_ImprimirPlantilla(sender As Object, e As ItemClickEventArgs, idPlantilla As Integer) Handles Me.ImprimirPlantilla
|
|
Dim rec As movimientoscaja = Me.DataContext
|
|
|
|
Select Case DirectCast(rec.Tipo, TipoMovimientoEnum)
|
|
Case TipoMovimientoEnum.RECIBO_CLIENTE
|
|
|
|
If Not Guardar(Nothing, Nothing) Then
|
|
Dim lr As New List(Of movimientoscaja)
|
|
If rec.Fecha = Date.MinValue Then
|
|
rec.Fecha = bd.AhoraMySql
|
|
rec.FechaCreacion = rec.Fecha
|
|
End If
|
|
lr.Add(rec)
|
|
Dim cp As String = "RECIBO"
|
|
Dim pl = bd.plantillas.AsNoTracking.Where(Function(x) x.Codigo = cp).Select(Function(x) New With {.Fichero = x.idFicheroNavigation.Fichero, .Tipo = x.idGrupoNavigation.Codigo}).FirstOrDefault
|
|
Informes.ImprimirPlantilla(bd, pl.Fichero, lr, False, 1)
|
|
|
|
End If
|
|
Case TipoMovimientoEnum.CIERRE_CAJA
|
|
Dim lm As New List(Of movimientoscaja)
|
|
lm.Add(rec)
|
|
Dim xr As New xrCierreCaja
|
|
Informes.ImprimeInforme(xr, False, 1, bd.AhoraMySql, lm)
|
|
End Select
|
|
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.ObtienePermisos.Modificar Then
|
|
If ra.FechaSupervision.HasValue OrElse ra.idMovimientoCierre.HasValue OrElse ra.Tipo = bdGrupoSanchoToro.db.TipoMovimientoEnum.CIERRE_CAJA Then
|
|
Dim per = Comun.ObtienePermisos(Me.bd, "AP.SUPERADMINISTRATIVOS", idUsuario)
|
|
If Not per.Modificar Then
|
|
Me.EstableceSoloLectura()
|
|
End If
|
|
' Me.ContenedorAplicacion.btGuardar.IsEnabled = True
|
|
' Me.ContenedorAplicacion.btGuardarYBuscar.IsEnabled = True
|
|
End If
|
|
End If
|
|
End Select
|
|
If idLog.HasValue Then EstableceSoloLectura()
|
|
|
|
End Sub
|
|
|
|
Private Sub ucMovimientoCaja_DespuesGuardar(sender As Object, e As ItemClickEventArgs, OpcionGuardado As Integer) Handles Me.DespuesGuardar
|
|
|
|
Me.gcLogs.ItemsSource = bd.logs.Where(Function(x) x.id = ra.idMovimiento AndAlso x.Aplicacion = "MOVIMIENTOSCAJA").ToList
|
|
_idMovimiento = ra.idMovimiento
|
|
End Sub
|
|
|
|
Private Sub ucMovimientoCaja_Enlazar(Celda As EditGridCellData, Defecto As Boolean) Handles Me.Enlazar
|
|
Select Case Celda.Column.FieldName.ToLower
|
|
Case "idlog"
|
|
Dim log As logs = gcLogs.CurrentItem
|
|
Dim id As Integer = log.idLog
|
|
Dim uc As New ucMovimientoCaja
|
|
uc.idLog = log.idLog
|
|
FuncionesDinamicas.AbrirAP(uc, OtrosParametros)
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub hlConciliacion_Click(sender As Object, e As RoutedEventArgs)
|
|
|
|
FuncionesDinamicas.AbrirAP(New ucConciliacionBancaria(ra.idConciliacion), OtrosParametros)
|
|
End Sub
|
|
Private Sub BeDocumentoAdjunto_DefaultButtonClick(sender As Object, e As RoutedEventArgs)
|
|
Try
|
|
Dim ofd As New OpenFileDialog
|
|
If ofd.ShowDialog Then
|
|
|
|
If ra.idFicheroNavigation Is Nothing Then
|
|
ra.idFicheroNavigation = New db.ficheros
|
|
End If
|
|
ra.idFicheroNavigation.NombreFichero = IO.Path.GetFileName(ofd.FileName)
|
|
ra.idFicheroNavigation.Fichero = IO.File.ReadAllBytes(ofd.FileName)
|
|
ra.idFicheroNavigation.idTipo = bd.enumeraciones.First(Function(x) x.Codigo = "TIPFIC.MC").idEnumeracion
|
|
ra.FicheroAdjuntoTMP = ra.idFicheroNavigation.NombreFichero
|
|
End If
|
|
Catch EX As Exception
|
|
FuncionesDinamicas.ErrorNoControladoAp(Me, EX)
|
|
DXMessageBox.Show(EX.Message, "Error")
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub BiEliminar_Click(sender As Object, e As RoutedEventArgs)
|
|
Try
|
|
|
|
If ra.idFicheroNavigation Is Nothing OrElse ra.idFicheroNavigation.Fichero Is Nothing Then
|
|
DXMessageBox.Show("La factura actual no tiene ningún documento adjunto.", "Atención")
|
|
Else
|
|
Try
|
|
bd.ficheros.Remove(ra.idFicheroNavigation)
|
|
Catch ex As Exception
|
|
End Try
|
|
ra.idFicheroNavigation = Nothing
|
|
ra.FicheroAdjuntoTMP = ""
|
|
End If
|
|
Catch EX As Exception
|
|
FuncionesDinamicas.ErrorNoControladoAp(Me, EX)
|
|
DXMessageBox.Show(EX.Message, "Error")
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub BiVer_Click(sender As Object, e As RoutedEventArgs)
|
|
Try
|
|
|
|
If ra.idFicheroNavigation Is Nothing OrElse ra.idFicheroNavigation.Fichero Is Nothing Then
|
|
DXMessageBox.Show("La factura actual no tiene ningún documento adjunto.", "Atención")
|
|
Else
|
|
Dim sFicAleatorio As String = tsUtilidades.Utilidades.ObtieneDirectorioAleatorio("GrupoSanchoToro") & ra.idFicheroNavigation.NombreFichero
|
|
IO.File.WriteAllBytes(sFicAleatorio, ra.idFicheroNavigation.Fichero)
|
|
tsUtilidades.Sistema.EjecutaFichero(sFicAleatorio)
|
|
End If
|
|
Catch EX As Exception
|
|
FuncionesDinamicas.ErrorNoControladoAp(Me, EX)
|
|
DXMessageBox.Show(EX.Message, "Error")
|
|
End Try
|
|
End Sub
|
|
|
|
End Class
|