Files
Nuvolar/Nuvolar.Module/BusinessObjects/Financial/FinancialObjects/FinancialTransactions/OpenClose/GLOpenCloseVC.vb
T
2017-03-08 11:21:27 +01:00

676 lines
42 KiB
VB.net

Imports System
Imports System.ComponentModel
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.Text
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Actions
Imports DevExpress.Persistent.Base
Imports DevExpress.Xpo
Imports DevExpress.Data.Filtering
Imports System.Linq
Imports System.Linq.Expressions
Imports DevExpress.ExpressApp.SystemModule
Public Class GLOpenCloseVC
Inherits DevExpress.ExpressApp.ViewController
Public Event InitWork(ByVal _Minimum As Long, ByVal _Step As Long, ByVal _Maximum As Long)
Public Event DoWork()
Public Event FinalWork
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
End Sub
Protected Overrides Sub OnDeactivated()
MyBase.OnDeactivated()
End Sub
Private Sub aGenerateOpenCloseRows_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aGenerateOpenCloseRows.Execute
Try
GLOBAL_HAS_Audit = False
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
Dim _GLOpenCloseHeader As GLOpenCloseHeader = _uow.GetObjectByKey(Of GLOpenCloseHeader)(_onew.GetObject(TryCast(View.SelectedObjects(0), GLOpenCloseHeader)).Oid)
'Dim _GLOpenCloseRows As GLOpenCloseRows
'Dim _GLOpenCloseRows_Collection As New XPCollection(Of GLOpenCloseRows)(_uow, CriteriaOperator.Parse("GLOpenCloseHeader.Oid=?", _GLOpenCloseHeader.Oid))
'_uow.Delete(_GLOpenCloseRows_Collection)
Dim _ChartOfAccounts As ChartOfAccounts
Dim _ChartOfAccounts_Collection As New XPCollection(Of ChartOfAccounts)(_uow, CriteriaOperator.Parse("AccountYear=? and IsParent=False", _GLOpenCloseHeader.AccountYearClose))
Dim _DebitAmountHUF As Double = 0
Dim _CreditAmountHUF As Double = 0
Dim _GLRows_Collection As New XPQuery(Of GLRows)(_uow)
Dim _ChartOfAccounts_491 As ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber='491' and AccountYear=?", _GLOpenCloseHeader.AccountYearOpen))
Dim _ChartOfAccounts_599 As ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber='599' and AccountYear=?", _GLOpenCloseHeader.AccountYearClose))
Dim _ChartOfAccounts_493 As ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber='493' and AccountYear=?", _GLOpenCloseHeader.AccountYearClose))
Dim _ChartOfAccounts_492 As ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber='492' and AccountYear=?", _GLOpenCloseHeader.AccountYearClose))
'RaiseEvent InitWork(1, 1, _ChartOfAccounts_Collection.Count)
'For Each _ChartOfAccounts In _ChartOfAccounts_Collection
' RaiseEvent DoWork()
' _DebitAmountHUF = 0
' _CreditAmountHUF = 0
' Dim query_d = From _GLRows In _GLRows_Collection
' Where _GLRows.DebitChartOfAccounts.AccountNumber = _ChartOfAccounts.AccountNumber And _
' _GLRows.GLHeader.IsEditable = False And _
' _GLRows.GLHeader.DateExecution.Year >= _GLOpenCloseHeader.AccountYearClose And _
' _GLRows.GLHeader.CustomersFrom Is _GLOpenCloseHeader.CustomersFrom And _
' _GLRows.GLHeader.DateExecution.Year < _GLOpenCloseHeader.AccountYearOpen _
' Group _GLRows By _GLRows.DebitChartOfAccounts.AccountNumber Into gg = Group
' Select New With {Key .DebitAmountHUF = gg.Sum(Function(inv) inv.AmountHUF)}
' For Each item In query_d
' _DebitAmountHUF = Math.Round(item.DebitAmountHUF, 2, MidpointRounding.AwayFromZero)
' Next
' Dim query_c = From _GLRows In _GLRows_Collection
' Where _GLRows.CreditChartOfAccounts.AccountNumber = _ChartOfAccounts.AccountNumber And _
' _GLRows.GLHeader.IsEditable = False And _
' _GLRows.GLHeader.DateExecution.Year >= _GLOpenCloseHeader.AccountYearClose And _
' _GLRows.GLHeader.CustomersFrom Is _GLOpenCloseHeader.CustomersFrom And _
' _GLRows.GLHeader.DateExecution.Year < _GLOpenCloseHeader.AccountYearOpen _
' Group _GLRows By _GLRows.CreditChartOfAccounts.AccountNumber Into gg = Group
' Select New With {Key .CreditAmountHUF = gg.Sum(Function(inv) inv.AmountHUF)}
' For Each item In query_c
' _CreditAmountHUF = Math.Round(item.CreditAmountHUF, 2, MidpointRounding.AwayFromZero)
' Next
' If _DebitAmountHUF - _CreditAmountHUF <> 0 Then
' _GLOpenCloseRows = _uow.FindObject(Of GLOpenCloseRows)(CriteriaOperator.Parse("ChartOfAccounts.AccountNumber=? and GLOpenCloseHeader.Oid=?", _ChartOfAccounts.AccountNumber, _GLOpenCloseHeader.Oid))
' If _GLOpenCloseRows Is Nothing Then
' _GLOpenCloseRows = New GLOpenCloseRows(_uow)
' _GLOpenCloseRows.GLOpenCloseHeader = _GLOpenCloseHeader
' End If
' If _DebitAmountHUF >= _CreditAmountHUF Then
' _GLOpenCloseRows.DebitAmountHUF = _DebitAmountHUF - _CreditAmountHUF
' Else
' _GLOpenCloseRows.CreditAmountHUF = _CreditAmountHUF - _DebitAmountHUF
' End If
' _GLOpenCloseRows.ChartOfAccounts = _ChartOfAccounts
' Select Case Mid(_ChartOfAccounts.AccountNumber, 1, 1)
' Case "5"
' _GLOpenCloseRows.OnlyClose = True
' _GLOpenCloseRows.ChartOfAccountsClose = _ChartOfAccounts_599
' Case "8", "9"
' _GLOpenCloseRows.OnlyClose = True
' _GLOpenCloseRows.ChartOfAccountsClose = _ChartOfAccounts_493
' Case Else
' _GLOpenCloseRows.OnlyClose = False
' _GLOpenCloseRows.ChartOfAccountsClose = _ChartOfAccounts_492
' _GLOpenCloseRows.ChartOfAccountsOpen = _ChartOfAccounts_491
' End Select
' End If
' _uow.CommitChanges()
'Next
'_uow.CommitChanges()
'RaiseEvent FinalWork
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceNew(_onew, _GLOpenCloseHeader.TrialBalanceHeaderBeforeClose)
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceOpenClose(_onew, _GLOpenCloseHeader.TrialBalanceHeaderBeforeClose)
_uow.CommitChanges()
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "HIBA !")
Finally
GLOBAL_HAS_Audit = True
RaiseEvent FinalWork
End Try
End Sub
Private Sub aCloseAccountYearBallance_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCloseAccountYearBallance.Execute
'// Mérleg számlák lezárása csak akkor, ha már van eredményszámla lezárás
'// K1-4 T492 12.31
'// T1-4 K491 01.01
'// Nem lehet olyan tétel, ami nincs feladva erre az évre !
'// InvoiceHeader
'// Registryheader
Try
GLOBAL_HAS_Audit = False
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _GLOpenCloseHeader As GLOpenCloseHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), GLOpenCloseHeader))
'Dim _GLOpenCloseRows As GLOpenCloseRows
Dim _TrialBalance As TrialBalance
Dim _LiquidAssetsYear As LiquidAssetsYear
Dim _GLBank As GLBank
Dim _GLCassa As GLCassa
Dim _GLRows_Close As GLRows
Dim _ChartOfAccounts_492 As ChartOfAccounts = _onew.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber='492' and AccountYear=?", _GLOpenCloseHeader.AccountYearClose))
Dim IsOk As Boolean = True
Dim _ChartOfAccounts_Ok As ChartOfAccounts = Nothing
'// Ellenõrzések ---------------------------------------------------------------------------
'RaiseEvent InitWork(1, 1, _GLOpenCloseHeader.GLOpenCloseRows.Count)
'For Each _GLOpenCloseRows In _GLOpenCloseHeader.GLOpenCloseRows
' RaiseEvent DoWork()
' Select Case Mid(_GLOpenCloseRows.ChartOfAccounts.AccountNumber, 1, 1)
' Case "1", "2", "3", "4"
' _ChartOfAccounts_Ok = _onew.FindObject(Of ChartOfAccounts) _
' (CriteriaOperator.Parse("AccountNumber=? and AccountYear=?", _GLOpenCloseRows.ChartOfAccounts.AccountNumber, _GLOpenCloseHeader.AccountYearOpen))
' If _ChartOfAccounts_Ok Is Nothing Then
' RaiseEvent FinalWork
' Throw New Exception(String.Format("Nincs megnyitva ez a főkönyvi számla: {0}", _GLOpenCloseRows.ChartOfAccounts.Name))
' End If
' End Select
'Next
'RaiseEvent FinalWork
'// Zárási bizonylat -----------------------------------------------------------------------
If _GLOpenCloseHeader.GLMixed_AfterClose_Ballance IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.GLRows)
Else
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance = _onew.CreateObject(Of GLMixed)()
End If
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.CurrencyName = _onew.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'"))
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.CurrencyRate = 1
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.CustomersFrom = _GLOpenCloseHeader.CustomersFrom
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.DateCreated = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.DateExecution = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.DatePayment = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.DocumentNumber = _GLOpenCloseHeader.ShortName & " - mérlegszámla záró"
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.GLDocumentType = eGLDocumentType.eGLMixed
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.GLOpenCloseHeader = _GLOpenCloseHeader
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.IsEditable = False
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.IsStorno = False
_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.NoteHeader = ""
RaiseEvent InitWork(1, 1, _GLOpenCloseHeader.TrialBalanceHeaderAfterDividend.TrialBalance.Count)
For Each _TrialBalance In _GLOpenCloseHeader.TrialBalanceHeaderAfterDividend.TrialBalance
RaiseEvent DoWork()
Select Case Mid(_TrialBalance.ChartOfAccounts.AccountNumber, 1, 1)
Case "1", "2", "3", "4"
If _TrialBalance.ChartOfAccounts.IsParent = False Then
_GLRows_Close = _onew.CreateObject(Of GLRows)()
_GLRows_Close.GLHeader = _GLOpenCloseHeader.GLMixed_AfterClose_Ballance
_GLRows_Close.GLRowsGUID = Guid.NewGuid
If (_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF) > 0 Then
_GLRows_Close.DebitChartOfAccounts = _ChartOfAccounts_492
_GLRows_Close.CreditChartOfAccounts = _TrialBalance.ChartOfAccounts
_GLRows_Close.AmountHUF = Math.Abs(_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF)
_LiquidAssetsYear = _onew.FindObject(Of LiquidAssetsYear) _
(CriteriaOperator.Parse("AccountYear=? and ChartOfAccounts=? and LiquidAssets.CustomerFrom.Oid=?", _
_GLRows_Close.GLHeader.DateExecution.Year, _GLRows_Close.CreditChartOfAccounts, _GLOpenCloseHeader.CustomersFrom.Oid))
'// Ha pénzeszköz, akkor HUF + DEV érték lezárása is !
If _LiquidAssetsYear IsNot Nothing Then
_GLRows_Close.LiquidAssets = _LiquidAssetsYear.LiquidAssets
Select Case _LiquidAssetsYear.LiquidAssets.LiquidAssetsType
Case eLiquidAssetsType.NormalBank
_GLBank = _onew.FindObject(Of GLBank)(CriteriaOperator.Parse("LiquidAssets_Main=?", _LiquidAssetsYear.LiquidAssets))
If _GLBank IsNot Nothing Then
_GLRows_Close.AmountDEV = _GLBank.GetBallanceDEV(_LiquidAssetsYear.LiquidAssets, _GLRows_Close.GLHeader.DateExecution)
End If
Case eLiquidAssetsType.DepositCheckout, eLiquidAssetsType.NormalCheckout, eLiquidAssetsType.CurrencyCheckout
_GLCassa = _onew.FindObject(Of GLCassa)(CriteriaOperator.Parse("LiquidAssets_Cassa=?", _LiquidAssetsYear.LiquidAssets))
If _GLCassa IsNot Nothing Then
_GLRows_Close.AmountDEV = _GLCassa.GetBallanceDEV(_LiquidAssetsYear.LiquidAssets, _GLRows_Close.GLHeader.DateExecution)
End If
End Select
End If
Else
_GLRows_Close.CreditChartOfAccounts = _ChartOfAccounts_492
_GLRows_Close.DebitChartOfAccounts = _TrialBalance.ChartOfAccounts
_GLRows_Close.AmountHUF = Math.Abs(_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF)
_LiquidAssetsYear = _onew.FindObject(Of LiquidAssetsYear) _
(CriteriaOperator.Parse("AccountYear=? and ChartOfAccounts=? and LiquidAssets.CustomerFrom.Oid=?", _
_GLRows_Close.GLHeader.DateExecution.Year, _GLRows_Close.DebitChartOfAccounts, _GLOpenCloseHeader.CustomersFrom.Oid))
'// Ha pénzeszköz, akkor HUF + DEV érték lezárása is !
If _LiquidAssetsYear IsNot Nothing Then
_GLRows_Close.LiquidAssets = _LiquidAssetsYear.LiquidAssets
Select Case _LiquidAssetsYear.LiquidAssets.LiquidAssetsType
Case eLiquidAssetsType.NormalBank
_GLBank = _onew.FindObject(Of GLBank)(CriteriaOperator.Parse("LiquidAssets_Main=?", _LiquidAssetsYear.LiquidAssets))
If _GLBank IsNot Nothing Then
_GLRows_Close.AmountDEV = _GLBank.GetBallanceDEV(_LiquidAssetsYear.LiquidAssets, _GLRows_Close.GLHeader.DateExecution)
End If
Case eLiquidAssetsType.DepositCheckout, eLiquidAssetsType.NormalCheckout, eLiquidAssetsType.CurrencyCheckout
_GLCassa = _onew.FindObject(Of GLCassa)(CriteriaOperator.Parse("LiquidAssets_Cassa=?", _LiquidAssetsYear.LiquidAssets))
If _GLCassa IsNot Nothing Then
_GLRows_Close.AmountDEV = _GLCassa.GetBallanceDEV(_LiquidAssetsYear.LiquidAssets, _GLRows_Close.GLHeader.DateExecution)
End If
End Select
End If
End If
_GLRows_Close.DateExecution = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLRows_Close.GLRowsTypeVAT = eGLRowsTypeVAT.eNettoRow
_GLRows_Close.NoteRows = "-> 492"
_GLRows_Close.PartnerType = ePartnerType.eNotSet
_GLRows_Close.TransactionType = eTransactionType.eNotSet
End If
End Select
Next
RaiseEvent FinalWork
_GLOpenCloseHeader.IsClosedSheetProfit = True
_GLOpenCloseHeader.IsClosedBallance = True
_onew.CommitChanges()
'// Záró utáni fk. kivonat lekérdezése !!!
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceNew(_onew, _GLOpenCloseHeader.TrialBalanceHeaderAfterClose_Ballance)
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceOpenClose(_onew, _GLOpenCloseHeader.TrialBalanceHeaderAfterClose_Ballance)
_onew.CommitChanges()
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "HIBA !")
Finally
GLOBAL_HAS_Audit = True
RaiseEvent FinalWork
End Try
End Sub
Private Sub aCloseAccountYearSheetProfit_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCloseAccountYearSheetProfit.Execute
'// Eredményszámlák zárása
'// 5 -> K599 -> T419
Try
GLOBAL_HAS_Audit = False
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _GLOpenCloseHeader As GLOpenCloseHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), GLOpenCloseHeader))
Dim _GLRows As GLRows
Dim _AmountHUF_599 As Double = 0
'// Ellenõrzések ---------------------------------------------------------------------------
'Dim _InvoiceHeader_Collection As New XPCollection(Of InvoiceHeader)(_ocur.Session, CriteriaOperator.Parse("GetYear(DateExecution)=? and isnull(GLAccounts)=True and InvoiceType.InvoiceTypeBase in (0,1,2,3)", _GLOpenCloseHeader.AccountYearClose))
'If _InvoiceHeader_Collection.Count > 0 Then
' Throw New Exception("*Van még erre az évre olyan kimenõ számla, ami nincs lekönyvelve !")
'End If
'Dim _RegistryHeader_Collection As New XPCollection(Of RegistryHeader)(_ocur.Session, CriteriaOperator.Parse("GetYear(F_DateExecution)=? and isnull(F_GLAccounts)=True and RegistryType.RegistryMainType in (0,2,3,4)", _GLOpenCloseHeader.AccountYearClose))
'If _RegistryHeader_Collection.Count > 0 Then
' Throw New Exception("*Van még erre az évre olyan iktatott számla, ami nincs lekönyvelve !")
'End If
'// Ellenõrzés, hogy van-e 599 fk. számla és az levél-e?
Dim _ChartOfAccounts_599 As ChartOfAccounts = _onew.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountYear=? and AccountNumber='599'", _GLOpenCloseHeader.AccountYearClose))
If _ChartOfAccounts_599 IsNot Nothing Then
If _ChartOfAccounts_599.Children.Count > 0 Then
Throw New Exception("*Nem könyvelhetõ az 599 költség záró számla, mert vannak gyermekei !")
End If
Else
Throw New Exception("*Nincs 599 költség záró számla !")
End If
'// Ellenõrzés, hogy van-e 493 fk. számla és az levél-e?
Dim _ChartOfAccounts_493 As ChartOfAccounts = _onew.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountYear=? and AccountNumber='493'", _GLOpenCloseHeader.AccountYearClose))
If _ChartOfAccounts_493 IsNot Nothing Then
If _ChartOfAccounts_493.Children.Count > 0 Then
Throw New Exception("*Nem könyvelhetõ az 493 számla, mert vannak gyermekei !")
End If
Else
Throw New Exception("*Nincs 493 eredmény záró számla !")
End If
'// 599 - 493 Zárási bizonylat -----------------------------------------------------------------------
If _GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.GLRows)
Else
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit = _onew.CreateObject(Of GLMixed)()
End If
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.CurrencyName = _onew.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'"))
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.CurrencyRate = 1
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.CustomersFrom = _GLOpenCloseHeader.CustomersFrom
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.DateCreated = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.DateExecution = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.DatePayment = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.DocumentNumber = _GLOpenCloseHeader.ShortName & " - eredményszámla záró"
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.GLDocumentType = eGLDocumentType.eGLMixed
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.GLOpenCloseHeader = _GLOpenCloseHeader
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.IsEditable = False
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.IsStorno = False
_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.NoteHeader = ""
RaiseEvent InitWork(1, 1, _GLOpenCloseHeader.TrialBalanceHeaderBeforeClose.TrialBalance.Count)
For Each _TrialBalance As TrialBalance In _GLOpenCloseHeader.TrialBalanceHeaderBeforeClose.TrialBalance
RaiseEvent DoWork()
If _TrialBalance.ChartOfAccounts.AccountNumber Like "5*" And _TrialBalance.ChartOfAccounts.IsParent = False Then
_GLRows = _onew.CreateObject(Of GLRows)()
_GLRows.GLHeader = _GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit
_GLRows.GLRowsGUID = Guid.NewGuid
If (_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF) > 0 Then
_GLRows.DebitChartOfAccounts = _ChartOfAccounts_599
_GLRows.CreditChartOfAccounts = _TrialBalance.ChartOfAccounts
_GLRows.AmountHUF = Math.Abs(_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF)
_AmountHUF_599 += _GLRows.AmountHUF
Else
_GLRows.CreditChartOfAccounts = _ChartOfAccounts_599
_GLRows.DebitChartOfAccounts = _TrialBalance.ChartOfAccounts
_GLRows.AmountHUF = Math.Abs(_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF)
_AmountHUF_599 -= _GLRows.AmountHUF
End If
_GLRows.DateExecution = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLRows.GLRowsTypeVAT = eGLRowsTypeVAT.eNettoRow
_GLRows.NoteRows = "-> 599"
_GLRows.PartnerType = ePartnerType.eNotSet
_GLRows.TransactionType = eTransactionType.eNotSet
End If
Next
RaiseEvent FinalWork
'// K599 +K8 + T9 -> 493-re
_GLRows = _onew.CreateObject(Of GLRows)()
_GLRows.GLHeader = _GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit
_GLRows.GLRowsGUID = Guid.NewGuid
If _AmountHUF_599 > 0 Then
_GLRows.DebitChartOfAccounts = _ChartOfAccounts_493
_GLRows.CreditChartOfAccounts = _ChartOfAccounts_599
_GLRows.AmountHUF = _AmountHUF_599
Else
_GLRows.CreditChartOfAccounts = _ChartOfAccounts_493
_GLRows.DebitChartOfAccounts = _ChartOfAccounts_599
_GLRows.AmountHUF = _AmountHUF_599
End If
_GLRows.DateExecution = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLRows.GLRowsTypeVAT = eGLRowsTypeVAT.eNettoRow
_GLRows.NoteRows = "599 -> 493"
_GLRows.PartnerType = ePartnerType.eNotSet
_GLRows.TransactionType = eTransactionType.eNotSet
RaiseEvent InitWork(1, 1, _GLOpenCloseHeader.TrialBalanceHeaderBeforeClose.TrialBalance.Count)
For Each _TrialBalance As TrialBalance In _GLOpenCloseHeader.TrialBalanceHeaderBeforeClose.TrialBalance
RaiseEvent DoWork()
If (_TrialBalance.ChartOfAccounts.AccountNumber Like "8*" Or _TrialBalance.ChartOfAccounts.AccountNumber Like "9*") And _TrialBalance.ChartOfAccounts.IsParent = False Then
_GLRows = _onew.CreateObject(Of GLRows)()
_GLRows.GLHeader = _GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit
_GLRows.GLRowsGUID = Guid.NewGuid
If (_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF) > 0 Then
_GLRows.DebitChartOfAccounts = _ChartOfAccounts_493
_GLRows.CreditChartOfAccounts = _TrialBalance.ChartOfAccounts
_GLRows.AmountHUF = Math.Abs(_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF)
Else
_GLRows.CreditChartOfAccounts = _ChartOfAccounts_493
_GLRows.DebitChartOfAccounts = _TrialBalance.ChartOfAccounts
_GLRows.AmountHUF = Math.Abs(_TrialBalance.DebitAmountHUF - _TrialBalance.CreditAmountHUF)
End If
_GLRows.DateExecution = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLRows.GLRowsTypeVAT = eGLRowsTypeVAT.eNettoRow
_GLRows.NoteRows = ""
_GLRows.PartnerType = ePartnerType.eNotSet
_GLRows.TransactionType = eTransactionType.eNotSet
End If
Next
'// Beállítani, hogy megtörtént az eredményszámlák zárása
_GLOpenCloseHeader.IsClosedSheetProfit = True
_onew.CommitChanges()
RaiseEvent FinalWork
'// Záró utáni fk. kivonat lekérdezése !!!
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceNew(_onew, _GLOpenCloseHeader.TrialBalanceHeaderAfterClose_SheetProfit)
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceOpenClose(_onew, _GLOpenCloseHeader.TrialBalanceHeaderAfterClose_SheetProfit)
_onew.CommitChanges()
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "HIBA !")
Finally
GLOBAL_HAS_Audit = True
RaiseEvent FinalWork
End Try
End Sub
Private Sub aReopenAccountYear_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aReopenAccountYear.Execute
'// Lezárt év visszanyitása
Try
GLOBAL_HAS_Audit = False
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _GLOpenCloseHeader As GLOpenCloseHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), GLOpenCloseHeader))
If _GLOpenCloseHeader IsNot Nothing Then
RaiseEvent InitWork(1, 1, 5)
RaiseEvent DoWork()
Dim _GLRows_Collection As New XPCollection(Of GLRows)(_onew.Session, CriteriaOperator.Parse("GLHeader.GLOpenCloseHeader=?", _GLOpenCloseHeader))
_onew.Delete(_GLRows_Collection)
RaiseEvent DoWork()
Dim _GLMixed_Collection As New XPCollection(Of GLMixed)(_onew.Session, CriteriaOperator.Parse("GLOpenCloseHeader=?", _GLOpenCloseHeader))
_onew.Delete(_GLMixed_Collection)
_GLOpenCloseHeader.IsClosedBallance = False
_GLOpenCloseHeader.IsClosedSheetProfit = False
RaiseEvent DoWork()
'// Itt elég sok mindent kell törölni !
If _GLOpenCloseHeader.TrialBalanceHeaderAfterClose_Ballance IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterClose_Ballance.TrialBalance)
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterClose_Ballance.TrialBalanceOpenClose)
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterClose_Ballance.TrialBalanceSum)
End If
If _GLOpenCloseHeader.TrialBalanceHeaderAfterClose_SheetProfit IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterClose_SheetProfit.TrialBalance)
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterClose_SheetProfit.TrialBalanceOpenClose)
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterClose_SheetProfit.TrialBalanceSum)
End If
If _GLOpenCloseHeader.TrialBalanceHeaderAfterDividend IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterDividend.TrialBalance)
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterDividend.TrialBalanceOpenClose)
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterDividend.TrialBalanceSum)
End If
If _GLOpenCloseHeader.TrialBalanceHeaderAfterOpen IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterOpen.TrialBalance)
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterOpen.TrialBalanceOpenClose)
_onew.Delete(_GLOpenCloseHeader.TrialBalanceHeaderAfterOpen.TrialBalanceSum)
End If
RaiseEvent DoWork()
If _GLOpenCloseHeader.GLMixed_AfterClose_Ballance IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterClose_Ballance.GLRows)
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterClose_Ballance)
End If
If _GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit.GLRows)
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterClose_SheetProfit)
End If
If _GLOpenCloseHeader.GLMixed_AfterDividend IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterDividend.GLRows)
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterDividend)
End If
If _GLOpenCloseHeader.GLMixed_AfterOpen IsNot Nothing Then
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterOpen.GLRows)
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterOpen)
End If
RaiseEvent DoWork()
_GLOpenCloseHeader.IsClosedBallance = False
_GLOpenCloseHeader.IsClosedSheetProfit = False
_GLOpenCloseHeader.IsDividend = False
_GLOpenCloseHeader.IsOpenNew = False
_onew.CommitChanges()
RaiseEvent FinalWork
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "HIBA !")
Finally
GLOBAL_HAS_Audit = True
RaiseEvent FinalWork
End Try
End Sub
Private Sub aOpenNewAccountYear_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aOpenNewAccountYear.Execute
Try
GLOBAL_HAS_Audit = False
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _GLOpenCloseHeader As GLOpenCloseHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), GLOpenCloseHeader))
Dim _GLRows_Open As GLRows
Dim _LiquidAssetsYear_Collection As New XPCollection(Of LiquidAssetsYear)(_onew.Session, CriteriaOperator.Parse("AccountYear=? and LiquidAssets.CustomerFrom.Oid=? and LiquidAssets.CurrencyName.ShortName<>'HUF'", _GLOpenCloseHeader.AccountYearOpen, _GLOpenCloseHeader.CustomersFrom.Oid))
Dim _LiquidAssetsYear As LiquidAssetsYear
Dim _ChartOfAccounts_491 As ChartOfAccounts = _onew.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber='491' and AccountYear=?", _GLOpenCloseHeader.AccountYearOpen))
If _GLOpenCloseHeader.GLMixed_AfterOpen Is Nothing Then
_GLOpenCloseHeader.GLMixed_AfterOpen = _onew.CreateObject(Of GLMixed)()
Else
_onew.Delete(_GLOpenCloseHeader.GLMixed_AfterOpen.GLRows)
End If
_GLOpenCloseHeader.IsOpenNew = True
_GLOpenCloseHeader.GLMixed_AfterOpen = _onew.CreateObject(Of GLMixed)()
_GLOpenCloseHeader.GLMixed_AfterOpen.CurrencyName = _onew.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'"))
_GLOpenCloseHeader.GLMixed_AfterOpen.CurrencyRate = 1
_GLOpenCloseHeader.GLMixed_AfterOpen.CustomersFrom = _GLOpenCloseHeader.CustomersFrom
_GLOpenCloseHeader.GLMixed_AfterOpen.DateCreated = New Date(_GLOpenCloseHeader.AccountYearOpen, 1, 1)
_GLOpenCloseHeader.GLMixed_AfterOpen.DateExecution = New Date(_GLOpenCloseHeader.AccountYearOpen, 1, 1)
_GLOpenCloseHeader.GLMixed_AfterOpen.DatePayment = New Date(_GLOpenCloseHeader.AccountYearOpen, 1, 1)
_GLOpenCloseHeader.GLMixed_AfterOpen.DocumentNumber = _GLOpenCloseHeader.ShortName & " - mérlegszámla nyitó"
_GLOpenCloseHeader.GLMixed_AfterOpen.GLDocumentType = eGLDocumentType.eGLMixed
_GLOpenCloseHeader.GLMixed_AfterOpen.GLOpenCloseHeader = _GLOpenCloseHeader
_GLOpenCloseHeader.GLMixed_AfterOpen.IsEditable = False
_GLOpenCloseHeader.GLMixed_AfterOpen.IsStorno = False
_GLOpenCloseHeader.GLMixed_AfterOpen.NoteHeader = ""
RaiseEvent InitWork(1, 1, _GLOpenCloseHeader.GLMixed_AfterClose_Ballance.GLRows.Count)
For Each _GLRows_Close In _GLOpenCloseHeader.GLMixed_AfterClose_Ballance.GLRows
RaiseEvent DoWork()
_GLRows_Open = _onew.CreateObject(Of GLRows)()
_GLRows_Open.GLHeader = _GLOpenCloseHeader.GLMixed_AfterOpen
_GLRows_Open.GLRowsGUID = Guid.NewGuid
_GLRows_Open.AmountHUF = _GLRows_Close.AmountHUF
_GLRows_Open.AmountDEV = _GLRows_Close.AmountDEV
If _GLRows_Close.CreditChartOfAccounts.AccountNumber = 492 Then
_GLRows_Open.DebitChartOfAccounts = _ChartOfAccounts_491
_GLRows_Open.CreditChartOfAccounts = _onew.FindObject(Of ChartOfAccounts) _
(CriteriaOperator.Parse("AccountNumber=? and AccountYear=?", _GLRows_Close.DebitChartOfAccounts.AccountNumber, _GLOpenCloseHeader.AccountYearOpen))
Else
_GLRows_Open.CreditChartOfAccounts = _ChartOfAccounts_491
_GLRows_Open.DebitChartOfAccounts = _onew.FindObject(Of ChartOfAccounts) _
(CriteriaOperator.Parse("AccountNumber=? and AccountYear=?", _GLRows_Close.CreditChartOfAccounts.AccountNumber, _GLOpenCloseHeader.AccountYearOpen))
For Each _LiquidAssetsYear In _LiquidAssetsYear_Collection
If _GLRows_Open.DebitChartOfAccounts.AccountNumber = _LiquidAssetsYear.ChartOfAccounts.AccountNumber Then
Dim _LiquidAssetsRate As LiquidAssetsRate = _onew.FindObject(Of LiquidAssetsRate)(CriteriaOperator.Parse("DateExecution=? and LiquidAssets.Oid=?", New Date(_GLOpenCloseHeader.AccountYearOpen, 1, 1), _LiquidAssetsYear.LiquidAssets.Oid))
If _LiquidAssetsRate Is Nothing Then
_LiquidAssetsRate = _onew.CreateObject(Of LiquidAssetsRate)()
End If
_LiquidAssetsRate.LiquidAssets = _LiquidAssetsYear.LiquidAssets
_LiquidAssetsRate.DateExecution = New Date(_GLOpenCloseHeader.AccountYearOpen, 1, 1)
_LiquidAssetsRate.AmountHUF = _GLRows_Close.AmountHUF
_LiquidAssetsRate.AmountDEV = _GLRows_Close.AmountDEV
End If
Next
End If
_GLRows_Open.DateExecution = New Date(_GLOpenCloseHeader.AccountYearClose, 12, 31)
_GLRows_Open.GLRowsTypeVAT = eGLRowsTypeVAT.eNettoRow
_GLRows_Open.NoteRows = "491 ->"
_GLRows_Open.PartnerType = ePartnerType.eNotSet
_GLRows_Open.TransactionType = eTransactionType.eNotSet
Next
RaiseEvent FinalWork
_onew.CommitChanges()
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceNew(_onew, _GLOpenCloseHeader.TrialBalanceHeaderAfterOpen)
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceOpenClose(_onew, _GLOpenCloseHeader.TrialBalanceHeaderAfterOpen)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "HIBA !")
Finally
GLOBAL_HAS_Audit = True
RaiseEvent FinalWork
End Try
End Sub
Private Sub aGenerateTrialBalanceDividend_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aGenerateTrialBalanceDividend.Execute
Try
GLOBAL_HAS_Audit = False
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _GLOpenCloseHeader As GLOpenCloseHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), GLOpenCloseHeader))
_GLOpenCloseHeader.IsDividend = True
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceNew(_onew, _GLOpenCloseHeader.TrialBalanceHeaderAfterDividend)
Frame.GetController(Of Nuvolar.Module.TrialBalanceVC).LoadTrialBalanceOpenClose(_onew, _GLOpenCloseHeader.TrialBalanceHeaderAfterDividend)
_onew.CommitChanges()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "HIBA !")
Finally
GLOBAL_HAS_Audit = False
End Try
End Sub
Private Sub aRepairBadGLRows_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aRepairBadGLRows.Execute
Try
GLOBAL_HAS_Audit = False
Frame.GetController(Of Validation.PersistenceValidationController).Active.SetItemValue("", True)
Dim _GLOpenCloseHeader As GLOpenCloseHeader = TryCast(View.SelectedObjects(0), GLOpenCloseHeader)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
Dim _GLRows_Collection As New XPCollection(Of GLRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _uow, CriteriaOperator.Parse("GLHeader.IsEditable=False and GetYear(GLHeader.DateExecution)=?", _GLOpenCloseHeader.AccountYearClose))
Dim _GLRows As GLRows
Dim _ChartOfAccounts As ChartOfAccounts
RaiseEvent InitWork(1, 1, _GLRows_Collection.Count)
For Each _GLRows In _GLRows_Collection
RaiseEvent DoWork()
'// Törölt FK. számla rendberakása
If _GLRows.DebitChartOfAccounts.IsDeleted Then
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountYear=? and AccountNumber=?", _GLRows.GLHeader.DateExecution.Year, _GLRows.DebitChartOfAccounts.AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_GLRows.DebitChartOfAccounts = _ChartOfAccounts
End If
End If
If _GLRows.CreditChartOfAccounts.IsDeleted Then
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountYear=? and AccountNumber=?", _GLRows.GLHeader.DateExecution.Year, _GLRows.CreditChartOfAccounts.AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_GLRows.CreditChartOfAccounts = _ChartOfAccounts
End If
End If
'// Nem azonos év rendberakása
Next
_uow.CommitChanges()
RaiseEvent FinalWork
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "HIBA !")
Finally
GLOBAL_HAS_Audit = True
RaiseEvent FinalWork
Frame.GetController(Of Validation.PersistenceValidationController).Active.SetItemValue("", True)
End Try
End Sub
End Class