215 lines
8.1 KiB
VB.net
215 lines
8.1 KiB
VB.net
|
|
|
|
Imports System.Data.Entity
|
|
Imports DevExpress.Xpf.Core.ServerMode
|
|
Imports bdGrupoSanchoToro
|
|
Imports DevExpress.Xpf.Grid
|
|
Imports DevExpress.Xpf.Core
|
|
Imports System.Linq.Dynamic
|
|
Imports DevExpress.Xpf.Bars
|
|
Imports tsl5.Datos
|
|
Imports tsWPF
|
|
Imports DevExpress.Data
|
|
Imports tsWPF.Comun
|
|
Imports tsWPFCore.Comun
|
|
Imports tsWPFCore
|
|
Imports tsUtilidades
|
|
|
|
Imports bdGrupoSanchoToro.db
|
|
Imports bdGrupoSanchoToro.db.Utilidades
|
|
|
|
Public Class ucBalanceExplotacion
|
|
|
|
Private TotalGastos As Double
|
|
Private TotalIngresos As Double
|
|
Dim bd As tscGrupoSanchoToro
|
|
' Private _Ejercicios As List(Of Integer)
|
|
' Private _NivelCuentas As Integer
|
|
|
|
|
|
|
|
Public Overrides ReadOnly Property idRegistroAplicacionActual As String
|
|
Get
|
|
Return "BalanceExplotacion"
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property DescripcionRegistro As String
|
|
Get
|
|
Return "Cuentas"
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property NombreTablaBase As String
|
|
Get
|
|
Return "Cuentas"
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides Sub EstableceDataContextSecundarios(Optional Background As Boolean = False)
|
|
End Sub
|
|
|
|
Public Overrides Sub EstableceTitulo()
|
|
Me.docpanel.Caption = "Balance de Explotación"
|
|
End Sub
|
|
|
|
Public Overrides Sub Cargado()
|
|
Dim Ejercicios = bd.ejercicioscontables.OrderByDescending(Function(x) x.FechaInicio).ToList
|
|
Dim ejab = Ejercicios.Where(Function(x) x.FechaCierre Is Nothing)
|
|
deFechaInicio.EditValue = ejab.OrderBy(Function(x) x.FechaInicio).First.FechaInicio
|
|
deFechaFin.EditValue = ejab.OrderByDescending(Function(x) x.FechaFin).First.FechaFin
|
|
End Sub
|
|
|
|
|
|
Public Overrides Function EstableceDCPrincipal(Optional Background As Boolean = False, Optional FuerzaNuevo As Boolean = False, Optional Refrescar As Boolean = False) As EstadosAplicacion
|
|
Return EstadosAplicacion.AplicacionSinIndice
|
|
End Function
|
|
|
|
Public Overrides Function ObtieneBD() As tsUtilidades.ItsContexto
|
|
bd = tscGrupoSanchoToro.NuevoContexto()
|
|
Return bd
|
|
End Function
|
|
|
|
'Public Overrides Function ObtieneConexionBD() As BBDD
|
|
' Return bdCOASVD.GestionAsegasaEntities.bdga
|
|
'End Function
|
|
|
|
Public Overrides Function ObtienePermisos() As tsUtilidades.Permisos
|
|
Return Comun.ObtienePermisos(Me.bd, "AP.CONTABILIDAD", idUsuario)
|
|
End Function
|
|
|
|
|
|
|
|
Public Sub New()
|
|
|
|
' Esta llamada es exigida por el diseñador.
|
|
InitializeComponent()
|
|
'Me.lgFiltrosBusquedaRapida.Visibility = Visibility.Collapsed
|
|
'Me.lgFiltrosBusquedaAvanzada.Visibility = Visibility.Visible
|
|
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
|
|
|
|
End Sub
|
|
|
|
Public Function ObtieneApuntes(ByRef DataContext As Object, BackGround As Boolean, FechaInicio As DateOnly, FechaFin As DateOnly) As List(Of CuentaBalanceExplotacion)
|
|
Dim parametros(0) As Object
|
|
Dim iNumExc As Integer = 0
|
|
Dim lcbe As New List(Of CuentaBalanceExplotacion)
|
|
Do
|
|
Try
|
|
Dim tiporeg As Integer = bdGrupoSanchoToro.db.asientos.TipoAsiento.REGULARIZACION
|
|
Dim rsa = bd.apuntes.Include(Function(x) x.idCuentaNavigation.idCuenta).Where(Function(x) x.idAsientoNavigation.Tipo <> tiporeg And x.idAsientoNavigation.Fecha >= FechaInicio And x.idAsientoNavigation.Fecha <= FechaFin And (x.idCuentaNavigation.NumeroCuenta.StartsWith("6") Or x.idCuentaNavigation.NumeroCuenta.StartsWith("7"))).GroupBy(Function(x) x.idCuentaNavigation.NumeroCuenta).ToList()
|
|
Dim orden As Integer
|
|
For Each g In rsa
|
|
Dim cbe As New CuentaBalanceExplotacion
|
|
orden += 1
|
|
With cbe
|
|
.Cuenta = g.First.idCuentaNavigation.NumeroCuenta
|
|
.Denominacion = g.First.idCuentaNavigation.Denominacion
|
|
.Importe = (g.Sum(Function(x) x.Debe) - g.Sum(Function(x) x.Haber)) * If(.Cuenta.StartsWith("6"), 1, -1)
|
|
.Grupo = If(.Cuenta.StartsWith("6"), "GASTOS", "INGRESOS")
|
|
End With
|
|
lcbe.Add(cbe)
|
|
Next
|
|
' rs = bd.asientos.Where(Function(x) x.Fecha >= FechaInicio And x.Fecha <= FechaFin).ToList
|
|
Exit Do
|
|
Catch ex As Exception
|
|
iNumExc += 1
|
|
If iNumExc > 3 Then
|
|
lcbe = Nothing
|
|
Exit Do
|
|
End If
|
|
End Try
|
|
Loop
|
|
Return lcbe
|
|
End Function
|
|
|
|
Public Async Sub ObtieneApuntesAsync(bd As tscGrupoSanchoToro, Background As Boolean)
|
|
Try
|
|
|
|
Dim rs As New List(Of CuentaBalanceExplotacion)
|
|
Dim fi, ff As DateOnly?
|
|
|
|
fi = deFechaInicio.EditValue
|
|
ff = deFechaFin.EditValue
|
|
If Background Then
|
|
Me.ContenedorAplicacion.IsEnabled = False
|
|
Await Task.Run(Sub()
|
|
rs = ObtieneApuntes(bd, Background, fi, ff)
|
|
End Sub)
|
|
Else
|
|
If DXSplashScreen.IsActive = False Then DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
|
|
DXSplashScreen.SetState("Buscando Apuntes ...")
|
|
rs = ObtieneApuntes(bd, Background, fi, ff)
|
|
End If
|
|
|
|
gc.ItemsSource = rs
|
|
DataContext = rs
|
|
gc.RefreshData()
|
|
gc.ExpandAllGroups()
|
|
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 Nuevo() Handles Me.BotonNuevoPulsado
|
|
FuncionesDinamicas.AbrirAP(New ucCuenta, OtrosParametros)
|
|
End Sub
|
|
|
|
Private Sub ApLineas_Enlazar(Celda As EditGridCellData, Defecto As Boolean) Handles Me.Enlazar
|
|
Dim id As Integer = DirectCast(Me.gc.CurrentItem, cuentas).idCuenta
|
|
Dim uc As New ucCuenta(id)
|
|
FuncionesDinamicas.AbrirAP(New ucCuenta(id), OtrosParametros)
|
|
End Sub
|
|
|
|
Private Sub BtBuscar_Click(sender As Object, e As RoutedEventArgs)
|
|
ObtieneApuntesAsync(bd, False)
|
|
End Sub
|
|
|
|
Private Sub Gc_CustomSummary(sender As Object, e As DevExpress.Data.CustomSummaryEventArgs)
|
|
Dim Campo As String = (CType(e.Item, GridSummaryItem)).FieldName
|
|
Dim cta As CuentaBalanceExplotacion = Nothing
|
|
If e.SummaryProcess = CustomSummaryProcess.Calculate Then
|
|
cta = DirectCast(e.Row, CuentaBalanceExplotacion)
|
|
End If
|
|
Select Case Campo
|
|
Case "Importe" 'INGRESOS
|
|
If e.SummaryProcess = CustomSummaryProcess.Start Then
|
|
TotalIngresos = 0
|
|
TotalGastos = 0
|
|
End If
|
|
If e.SummaryProcess = CustomSummaryProcess.Calculate Then
|
|
If cta.Cuenta.StartsWith("6") Then
|
|
TotalGastos += cta.Importe
|
|
Else
|
|
TotalIngresos += cta.Importe
|
|
End If
|
|
End If
|
|
If e.SummaryProcess = CustomSummaryProcess.Finalize Then
|
|
e.TotalValue = TotalIngresos
|
|
End If
|
|
Case "TotalGastos"
|
|
If e.SummaryProcess = CustomSummaryProcess.Finalize Then
|
|
e.TotalValue = TotalGastos
|
|
End If
|
|
Case "Perdidas"
|
|
If e.SummaryProcess = CustomSummaryProcess.Finalize Then
|
|
e.TotalValue = If(TotalGastos > TotalIngresos, TotalGastos - TotalIngresos, 0)
|
|
End If
|
|
Case "Ganancias"
|
|
If e.SummaryProcess = CustomSummaryProcess.Finalize Then
|
|
e.TotalValue = If(TotalIngresos > TotalGastos, TotalIngresos - TotalGastos, 0)
|
|
End If
|
|
End Select
|
|
End Sub
|
|
End Class
|
|
Public Class CuentaBalanceExplotacion
|
|
Property Grupo As String
|
|
Property Cuenta As String
|
|
Property Denominacion As String
|
|
Property Importe As Double
|
|
End Class
|