Imports System Imports System.ComponentModel Imports DevExpress.Xpo Imports DevExpress.Data.Filtering Imports DevExpress.ExpressApp Imports DevExpress.Persistent.Base Imports DevExpress.Persistent.BaseImpl Imports DevExpress.Persistent.Validation Imports DevExpress.Persistent.Base.General Imports System.Data.SqlClient Imports System.Configuration Imports System.Linq Imports System.Linq.Expressions Imports DevExpress.ExpressApp.ConditionalAppearance Imports System.Drawing Imports DevExpress.ExpressApp.Utils Imports DevExpress.Xpo.DB ' _ ' _ ' _ ' _ ' _ ' _ ' _ 'HUF", "row_AmountHUF", EditorState.Disabled, "CurrencyName.ShortName<>'HUF'", ViewType.DetailView)> _ ' _ HUF", AppearanceItemType:="ViewItem", TargetItems:="row_AmountHUF", Criteria:="CurrencyName.ShortName<>'HUF' and row_CashType !=2", Enabled:=False, Context:="DetailView")> Public Class GLCassa Inherits GLHeader Private _CashMoveType As eCashMoveType = eCashMoveType.eNotSet Private _CashType As eCashType Private _ChartOfAccounts As ChartOfAccounts Private _PCIGroup As PCIGroup Private _PartnerType As ePartnerType Private _TotalInAmountHUF As Double = 0 Private _TotalOutAmountHUF As Double = 0 Private _TotalInAmountDEV As Double = 0 Private _TotalOutAmountDEV As Double = 0 Private _LiquidAssets As LiquidAssets Private _BallanceHUF As Double Private _BallanceDEV As Double Private _GLHeader_RateDiff As GLHeader 'Kapcsolódó árf. kül. elszámolási vegyes bizonylat Private _GLClosingTime As GLClosingTime '-- A másodlagos Private _row_CurrencyRate As Double Private _row_AmountDEV2 As Double = 0 Private _row_CurrencyRate2 As Double = 0 Private _row_CurrencyName2 As CurrencyName Public Sub New(ByVal session As Session) MyBase.New(session) End Sub Public Overrides Sub AfterConstruction() MyBase.AfterConstruction() If Session.IsNewObject(Me) Then Me.GLDocumentType = eGLDocumentType.eGLCassa Me.DateExecution = GetSQLTime(Session) Me.DocumentNumber = "" Me.IsEditable = False Me.IsStorno = False Me.DocumentNumber = "" Me.row_CashType = eCashType.eNormal End If End Sub Property CashMoveType() As eCashMoveType Get Return _CashMoveType End Get Set(ByVal value As eCashMoveType) SetPropertyValue("CashMoveType", _CashMoveType, value) End Set End Property Property row_CashType() As eCashType Get Return _CashType End Get Set(ByVal value As eCashType) SetPropertyValue("row_CashType", _CashType, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then If value = eCashType.eNormal Or value = eCashType.eCorrectionHUF Then If LiquidAssets_Cassa IsNot Nothing Then row_CurrencyName2 = LiquidAssets_Cassa.CurrencyName row_PartnerType = ePartnerType.eNotSet End If End If End Set End Property Property row_ChartOfAccounts() As ChartOfAccounts Get Return _ChartOfAccounts End Get Set(ByVal value As ChartOfAccounts) SetPropertyValue("row_ChartOfAccounts", _ChartOfAccounts, value) End Set End Property Property row_PCIGroup() As PCIGroup Get Return _PCIGroup End Get Set(ByVal value As PCIGroup) SetPropertyValue("row_PCIGroup", _PCIGroup, value) If Session.IsObjectsSaving = False And Session.IsObjectsLoading = False Then If value IsNot Nothing Then row_ConnectInfo = value.ConnectInfo row_Customer = value.Customers row_PartnerType = value.PartnerType If value.CurrencyName_Account IsNot Nothing Then If value.CurrencyName_Account.ShortName = "HUF" Then If Me.CurrencyName.ShortName = "HUF" Then Me.row_AmountHUF = Math.Abs(value.BallanceHUF) row_CurrencyName2 = Session.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'")) Else row_CurrencyName2 = Session.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'")) End If Else If Me.CurrencyName.ShortName = value.CurrencyName_Account.ShortName Then Me.row_AmountDEV = Math.Abs(value.BallanceDEV) row_CurrencyName2 = Session.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName=?", value.CurrencyName_Account.ShortName)) Else row_CurrencyName2 = Session.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName=?", value.CurrencyName_Account.ShortName)) End If End If End If End If End If End Set End Property Property row_PartnerType() As ePartnerType Get Return _PartnerType End Get Set(ByVal value As ePartnerType) SetPropertyValue("row_PartnerType", _PartnerType, value) End Set End Property Property LiquidAssets_Cassa As LiquidAssets Get Return _LiquidAssets End Get Set(ByVal value As LiquidAssets) SetPropertyValue("LiquidAssets_Cassa", _LiquidAssets, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then BallanceHUF = Me.GetBallanceHUF(value, Now) BallanceDEV = Me.GetBallanceDEV(value, Now) CurrencyName = value.CurrencyName row_CurrencyName2 = value.CurrencyName End If End Set End Property Property row_CurrencyRate As Double Get Return _row_CurrencyRate End Get Set(value As Double) SetPropertyValue("row_CurrencyRate", _row_CurrencyRate, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then If row_CurrencyName2 Is Nothing Then row_CurrencyName2 = LiquidAssets_Cassa.CurrencyName If LiquidAssets_Cassa.CurrencyName.ShortName = "HUF" And row_CurrencyName2.ShortName <> "HUF" Then If row_CurrencyRate <> 0 Then row_AmountDEV2 = Math.Round(row_AmountHUF / row_CurrencyRate, 2, MidpointRounding.AwayFromZero) End If If LiquidAssets_Cassa.CurrencyName.ShortName <> "HUF" And row_CurrencyName2.ShortName = "HUF" Then row_AmountHUF = row_AmountDEV * Math.Round(row_CurrencyRate, 4, MidpointRounding.AwayFromZero) row_AmountDEV2 = row_AmountHUF End If If LiquidAssets_Cassa.CurrencyName.ShortName <> "HUF" And row_CurrencyName2.ShortName <> "HUF" Then row_AmountHUF = row_AmountDEV * Math.Round(row_CurrencyRate, 4, MidpointRounding.AwayFromZero) End If End If End Set End Property Property row_AmountDEV2 As Double Get Return _row_AmountDEV2 End Get Set(value As Double) SetPropertyValue("row_AmountDEV2", _row_AmountDEV2, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then If row_CurrencyName2 Is Nothing Then row_CurrencyName2 = LiquidAssets_Cassa.CurrencyName If LiquidAssets_Cassa.CurrencyName.ShortName <> "HUF" And row_CurrencyName2.ShortName <> "HUF" And LiquidAssets_Cassa.CurrencyName.ShortName <> row_CurrencyName2.ShortName Then If row_AmountDEV <> 0 Then row_CurrencyRate2 = Math.Round(row_AmountDEV2 / row_AmountDEV, 4, MidpointRounding.AwayFromZero) End If End If End If End Set End Property Property row_CurrencyRate2 As Double Get Return _row_CurrencyRate2 End Get Set(value As Double) SetPropertyValue("row_CurrencyRate2", _row_CurrencyRate2, value) End Set End Property Property row_CurrencyName2 As CurrencyName Get Return _row_CurrencyName2 End Get Set(value As CurrencyName) SetPropertyValue("row_CurrencyName2", _row_CurrencyName2, value) End Set End Property Property TotalInAmountHUF As Double Get Return _TotalInAmountHUF End Get Set(ByVal value As Double) SetPropertyValue("TotalInAmountHUF", _TotalInAmountHUF, value) End Set End Property Property TotalOutAmountHUF As Double Get Return _TotalOutAmountHUF End Get Set(ByVal value As Double) SetPropertyValue("TotalOutAmountHUF", _TotalOutAmountHUF, value) End Set End Property Property TotalInAmountDEV As Double Get Return _TotalInAmountDEV End Get Set(ByVal value As Double) SetPropertyValue("TotalInAmountDEV", _TotalInAmountDEV, value) End Set End Property Property TotalOutAmountDEV As Double Get Return _TotalOutAmountDEV End Get Set(ByVal value As Double) SetPropertyValue("TotalOutAmountDEV", _TotalOutAmountDEV, value) End Set End Property Property BallanceHUF As Double Get Return _BallanceHUF End Get Set(ByVal value As Double) SetPropertyValue("BallanceHUF", _BallanceHUF, value) End Set End Property Property BallanceDEV As Double Get Return _BallanceDEV End Get Set(ByVal value As Double) SetPropertyValue("BallanceDEV", _BallanceDEV, value) End Set End Property Property GLHeader_RateDiff As GLHeader Get Return _GLHeader_RateDiff End Get Set(value As GLHeader) SetPropertyValue("GLHeader_RateDiff", _GLHeader_RateDiff, value) End Set End Property Property GLClosingTime As GLClosingTime Get Return _GLClosingTime End Get Set(value As GLClosingTime) SetPropertyValue("GLClosingTime", _GLClosingTime, value) End Set End Property Sub RecalculateTotal(ByVal _GLCassa As GLCassa, ByVal _ocur As Xpo.XPObjectSpace, ByVal _WidthCommit As Boolean) Dim _GLRows As GLRows _GLCassa.TotalInAmountHUF = 0 _GLCassa.TotalOutAmountHUF = 0 _GLCassa.TotalInAmountDEV = 0 _GLCassa.TotalOutAmountDEV = 0 For Each _GLRows In _GLCassa.GLRows _GLCassa.TotalInAmountHUF += _GLRows.InAmountHUF _GLCassa.TotalOutAmountHUF += _GLRows.OutAmountHUF _GLCassa.TotalInAmountDEV += _GLRows.InAmountDEV _GLCassa.TotalOutAmountDEV += _GLRows.OutAmountDEV Next If _GLCassa.TotalInAmountDEV > 0 Or _GLCassa.TotalInAmountHUF > 0 Then If _GLCassa.CurrencyName.ShortName = "HUF" Then _GLCassa.HUNumberToText = GetHUNumberToText(_GLCassa.TotalInAmountHUF) Else _GLCassa.HUNumberToText = GetHUNumberToText(_GLCassa.TotalInAmountDEV) End If Else If _GLCassa.CurrencyName.ShortName = "HUF" Then _GLCassa.HUNumberToText = GetHUNumberToText(_GLCassa.TotalOutAmountHUF) Else _GLCassa.HUNumberToText = GetHUNumberToText(_GLCassa.TotalOutAmountDEV) End If End If If _WidthCommit = True Then _ocur.CommitChanges() End Sub Sub CreateRoundingRow(ByVal _GLCassa As GLCassa, ByVal _ocur As Xpo.XPObjectSpace) Dim _GLRows As GLRows Dim _GLRows_New As GLRows Dim _GLHeader As GLHeader = TryCast(_GLCassa, GLHeader) Dim _InAmountHUF As Double = 0 Dim _OutAmountHUF As Double = 0 Dim _DebitChartOfAccounts As ChartOfAccounts Dim _CreditChartOfAccounts As ChartOfAccounts If _GLCassa IsNot Nothing Then For Each _GLRows In _GLCassa.GLRows If _GLRows.LiquidAssets.IsRounding = True Then '-- Törölni kell a kerekítési sort ! ------------------------------------------------------------------------------------------------------- '------------------------------------------------------------------------------------------------------------------------------------------- Dim _GUID As Guid = Guid.NewGuid If _GLCassa.TotalInAmountHUF > 0 Then 'Befizetés _InAmountHUF = _GLCassa.TotalInAmountHUF Mod 5 Select Case _InAmountHUF Case 1, 2 'Lefele kerekítés _CreditChartOfAccounts = _GLRows.LiquidAssets.GetChartOfAccounts(_GLCassa.DateExecution.Year, 0) _DebitChartOfAccounts = _GLRows.LiquidAssets.GetChartOfAccounts(_GLCassa.DateExecution.Year, 1) _GLRows_New = _ocur.CreateObject(Of GLRows)() _GLRows_New.InAmountHUF = _InAmountHUF * -1 _GLRows_New.CreditAmountHUF = _InAmountHUF _GLRows_New.AddGLRows(_GLHeader, _DebitChartOfAccounts, _CreditChartOfAccounts, 0, _InAmountHUF, _GLRows.LiquidAssets, Nothing, _GLCassa.DateExecution, Nothing, "Kerekítési különbözet", Nothing, Nothing, Nothing, Nothing, Nothing, "", eGLRowsTypeVAT.eRoundingRow, _GUID, eTransactionType.eNormalDebit, eCashType.eNormal, ePartnerType.eNotSet) _ocur.CommitChanges() Case 3, 4 'fölfele kerekítés _CreditChartOfAccounts = _GLRows.LiquidAssets.GetChartOfAccounts(_GLCassa.DateExecution.Year, 2) _DebitChartOfAccounts = _GLRows.LiquidAssets.GetChartOfAccounts(_GLCassa.DateExecution.Year, 0) _GLRows_New = _ocur.CreateObject(Of GLRows)() _GLRows_New.InAmountHUF = 5 - _InAmountHUF _GLRows_New.DebitAmountHUF = 5 - _InAmountHUF _GLRows_New.AddGLRows(_GLHeader, _DebitChartOfAccounts, _CreditChartOfAccounts, 0, 5 - _InAmountHUF, _GLRows.LiquidAssets, Nothing, _GLCassa.DateExecution, Nothing, "Kerekítési különbözet", Nothing, Nothing, Nothing, Nothing, Nothing, "", eGLRowsTypeVAT.eRoundingRow, _GUID, eTransactionType.eNormalDebit, eCashType.eNormal, ePartnerType.eNotSet) _ocur.CommitChanges() End Select Else 'Kifizetés _OutAmountHUF = _GLCassa.TotalOutAmountHUF Mod 5 Select Case _OutAmountHUF Case 1, 2 'Lefele kerekítés _CreditChartOfAccounts = _GLRows.LiquidAssets.GetChartOfAccounts(_GLCassa.DateExecution.Year, 2) _DebitChartOfAccounts = _GLRows.LiquidAssets.GetChartOfAccounts(_GLCassa.DateExecution.Year, 0) _GLRows_New = _ocur.CreateObject(Of GLRows)() _GLRows_New.OutAmountHUF = _OutAmountHUF * -1 _GLRows_New.DebitAmountHUF = _OutAmountHUF _GLRows_New.AddGLRows(_GLHeader, _DebitChartOfAccounts, _CreditChartOfAccounts, 0, _OutAmountHUF, _GLRows.LiquidAssets, Nothing, _GLCassa.DateExecution, Nothing, "Kerekítési különbözet", Nothing, Nothing, Nothing, Nothing, Nothing, "", eGLRowsTypeVAT.eRoundingRow, _GUID, eTransactionType.eNormalCredit, eCashType.eNormal, ePartnerType.eNotSet) _ocur.CommitChanges() Case 3, 4 'fölfele kerekítés _CreditChartOfAccounts = _GLRows.LiquidAssets.GetChartOfAccounts(_GLCassa.DateExecution.Year, 0) _DebitChartOfAccounts = _GLRows.LiquidAssets.GetChartOfAccounts(_GLCassa.DateExecution.Year, 1) _GLRows_New = _ocur.CreateObject(Of GLRows)() _GLRows_New.OutAmountHUF = (5 - _OutAmountHUF) _GLRows_New.CreditAmountHUF = 5 - _OutAmountHUF _GLRows_New.AddGLRows(_GLHeader, _DebitChartOfAccounts, _CreditChartOfAccounts, 0, (5 - _OutAmountHUF), _GLRows.LiquidAssets, Nothing, _GLCassa.DateExecution, Nothing, "Kerekítési különbözet", Nothing, Nothing, Nothing, Nothing, Nothing, "", eGLRowsTypeVAT.eRoundingRow, _GUID, eTransactionType.eNormalCredit, eCashType.eNormal, ePartnerType.eNotSet) _ocur.CommitChanges() End Select End If End If Exit For Next End If End Sub Function CheckIsNegative(ByVal _ocur As Xpo.XPObjectSpace, ByVal _p_LiquidAssets As LiquidAssets, ByVal _p_GLCassa As GLCassa) As Date Dim _TotalHUF As Double = 0 Dim _TotalDEV As Double = 0 Dim _GLCassa As GLCassa Dim _GLRows As GLRows Dim _IsNegative As Boolean = False Dim _IsNegativeDate As Date = Nothing Dim _GLCassa_Collection As New XPCollection(Of GLCassa)(PersistentCriteriaEvaluationBehavior.InTransaction, _ocur.Session, CriteriaOperator.Parse("(LiquidAssets_Cassa=? and IsStorno=False and DocumentNumber<>'') or Oid=?", _p_LiquidAssets, _p_GLCassa.Oid)) _GLCassa_Collection.Sorting.Add(New SortProperty("DateExecution", DB.SortingDirection.Ascending)) _IsNegativeDate = #1/1/1980# For Each _GLCassa In _GLCassa_Collection For Each _GLRows In _GLCassa.GLRows _TotalHUF += _GLRows.InAmountHUF - _GLRows.OutAmountHUF _TotalDEV += _GLRows.InAmountDEV - _GLRows.OutAmountDEV Next If LiquidAssets_Cassa.CurrencyName.ShortName = "HUF" Then If _TotalHUF < 0 Then _IsNegative = True _IsNegativeDate = _GLCassa.DateExecution Exit For End If Else If _TotalDEV < 0 Then _IsNegative = True _IsNegativeDate = _GLCassa.DateExecution Exit For End If End If Next Return _IsNegativeDate End Function Function CheckIsNegativeifStorno(ByVal _ocur As Xpo.XPObjectSpace, ByVal _GLCassaifStorno As GLCassa) As Date Dim _TotalHUF As Double = 0 Dim _TotalDEV As Double = 0 Dim _GLCassa As GLCassa Dim _GLRows As GLRows Dim _IsNegative As Boolean = False Dim _IsNegativeDate As Date = Nothing Dim _GLCassa_Collection As New XPCollection(Of GLCassa)(PersistentCriteriaEvaluationBehavior.InTransaction, _ocur.Session, CriteriaOperator.Parse("LiquidAssets_Cassa=? and IsStorno=False and Oid<>?", _GLCassaifStorno.LiquidAssets_Cassa, _GLCassaifStorno.Oid)) _GLCassa_Collection.Sorting.Add(New SortProperty("DateExecution", DB.SortingDirection.Ascending)) _IsNegativeDate = #1/1/1980# For Each _GLCassa In _GLCassa_Collection For Each _GLRows In _GLCassa.GLRows _TotalHUF += _GLRows.InAmountHUF - _GLRows.OutAmountHUF _TotalDEV += _GLRows.InAmountDEV - _GLRows.OutAmountDEV Next If LiquidAssets_Cassa.CurrencyName.ShortName = "HUF" Then If _TotalHUF < 0 Then _IsNegative = True _IsNegativeDate = _GLCassa.DateExecution Exit For End If Else If _TotalDEV < 0 Then _IsNegative = True _IsNegativeDate = _GLCassa.DateExecution Exit For End If End If Next Return _IsNegativeDate End Function Public Sub PrintCassaDocument(ByVal _GLCassa As GLCassa, ByVal _ocur As Xpo.XPObjectSpace, ByVal _Frame As Frame) Dim _ReportData As ReportData Dim _GLHeader As GLHeader If _GLCassa IsNot Nothing Then _GLHeader = TryCast(_GLCassa, GLHeader) _ReportData = _GLCassa.LiquidAssets_Cassa.ReportData If _ReportData IsNot Nothing Or _GLCassa Is Nothing Then _Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("GLHeader=?", _GLHeader), True) End If End If End Sub Function CheckIfPartnerCashFlowsInMonthGreaterThan1500000(ByVal _ocur As Xpo.XPObjectSpace, ByVal _p_GLCassa As GLCassa, ByVal _p_Customers As Customers, ByVal _p_DateExecution As Date, _p_CurrentInAmountHUF As Double, _p_CurrentOutAmountHUF As Double) As Boolean Dim _Valid As Boolean = True Dim _SumInAmountHUF As Double = _p_CurrentInAmountHUF Dim _SumOutAmountHUF As Double = _p_CurrentOutAmountHUF Dim _GLRows_Collection As New XPCollection(Of GLRows)(_ocur.Session, CriteriaOperator.Parse("GetYear(GLHeader.DateExecution)=? and GetMonth(GLHeader.DateExecution)=? and GLHeader.IsEditable=False", _p_GLCassa.DateExecution.Year, _p_GLCassa.DateExecution.Month)) Dim _GLRows As GLRows For Each _GLRows In _GLRows_Collection If TryCast(_GLRows.GLHeader, GLCassa) Is _p_GLCassa Then _SumInAmountHUF += _GLRows.InAmountHUF _SumOutAmountHUF = _GLRows.OutAmountHUF End If Next If _SumInAmountHUF >= 1500000 Or _SumOutAmountHUF > 1500000 Then _Valid = False End If Return _Valid End Function ReadOnly Property Image1 As Image Get If Me.GLClosingTime IsNot Nothing Then Return ImageLoader.Instance.GetImageInfo("lock_warning").Image Else If IsStorno Then Return ImageLoader.Instance.GetImageInfo("document_delete").Image Else Return ImageLoader.Instance.GetImageInfo("edit").Image End If End If End Get End Property '-- Overrides property Overrides Property row_AmountDEV As Double Get Return MyBase.row_AmountDEV End Get Set(value As Double) MyBase.row_AmountDEV = value If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then If row_CurrencyName2 Is Nothing Then row_CurrencyName2 = LiquidAssets_Cassa.CurrencyName If Me.row_CurrencyRate > 0 Then Me.row_AmountHUF = value * Me.row_CurrencyRate End If If LiquidAssets_Cassa.CurrencyName.ShortName <> "HUF" Then If LiquidAssets_Cassa.CurrencyName.ShortName = row_CurrencyName2.ShortName Then Else row_AmountDEV2 = row_AmountDEV * Math.Round(row_CurrencyRate2, 2, MidpointRounding.AwayFromZero) End If End If End If End Set End Property Overrides Property row_AmountHUF As Double Get Return MyBase.row_AmountHUF End Get Set(value As Double) MyBase.row_AmountHUF = value If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then If row_CurrencyName2 Is Nothing Then row_CurrencyName2 = LiquidAssets_Cassa.CurrencyName If LiquidAssets_Cassa.CurrencyName.ShortName = "HUF" Then If LiquidAssets_Cassa.CurrencyName.ShortName = row_CurrencyName2.ShortName Then Else row_AmountDEV2 = row_AmountHUF * Math.Round(row_CurrencyRate2, 2, MidpointRounding.AwayFromZero) End If End If End If End Set End Property Overrides Property row_Controlling As Controlling Get Return MyBase.row_Controlling End Get Set(value As Controlling) MyBase.row_Controlling = value If Session.IsObjectsSaving = False And Session.IsObjectsLoading = False Then If value IsNot Nothing Then row_ChartOfAccounts = value.GetChartOfAccounts(Me.DateExecution.Year, False) End If End If End Set End Property Public Overrides Property row_Customer As Customers Get Return MyBase.row_Customer End Get Set(value As Customers) MyBase.row_Customer = value End Set End Property Function GetBallanceHUF(ByVal _LiquidAssets As LiquidAssets, ByVal _ToDate As Date) As Double Dim _SQL As String Dim _SelectedData As SelectedData = Nothing Dim _BallanceHUF As Double = 0 _SQL = " SELECT t1.LiquidAssets_Cassa AS LiquidAssets," _SQL += " SUM(t3.InAmountHUF)-SUM(t3.OutAmountHUF) As BallanceHUF," _SQL += " SUM(t3.InAmountDEV)-SUM(t3.OutAmountDEV) As BallanceDEV" _SQL += " FROM GLCassa t1 JOIN GLHeader t2 ON" _SQL += " t1.Oid=t2.Oid JOIN GLRows t3 On" _SQL += " t2.Oid=t3.GLHeader" _SQL += " WHERE t2.DocumentNumber<>'' AND t2.GCRecord IS NULL AND t3.GCRecord IS NULL AND t1.LiquidAssets_Cassa=@Cassa AND " _SQL += " DATE(t2.DateExecution)<=@Date" Dim _stringparam() As String = New String() {"@Cassa", "@Date"} Dim _objectparam() As Object = New Object() {_LiquidAssets.Oid, _ToDate.Date} _SelectedData = Session.ExecuteQuery(_SQL, _stringparam, _objectparam) For Each row As SelectStatementResultRow In _SelectedData.ResultSet(0).Rows _BallanceHUF = row.Values(1) Next row Return _BallanceHUF End Function Function GetBallanceDEV(ByVal _LiquidAssets As LiquidAssets, ByVal _ToDate As Date) As Double Dim _SQL As String Dim _SelectedData As SelectedData = Nothing Dim _BallanceDEV As Double = 0 _SQL = " SELECT t1.LiquidAssets_Cassa AS LiquidAssets," _SQL += " SUM(t3.InAmountHUF)-SUM(t3.OutAmountHUF) As BallanceHUF," _SQL += " SUM(t3.InAmountDEV)-SUM(t3.OutAmountDEV) As BallanceDEV" _SQL += " FROM GLCassa t1 JOIN GLHeader t2 ON" _SQL += " t1.Oid=t2.Oid JOIN GLRows t3 On" _SQL += " t2.Oid=t3.GLHeader" _SQL += " WHERE t2.DocumentNumber<>'' AND t2.GCRecord IS NULL AND t3.GCRecord IS NULL AND t1.LiquidAssets_Cassa=@Cassa AND " _SQL += " DATE(t2.DateExecution)<=@Date" Dim _stringparam() As String = New String() {"@Cassa", "@Date"} Dim _objectparam() As Object = New Object() {_LiquidAssets.Oid, _ToDate.Date} _SelectedData = Session.ExecuteQuery(_SQL, _stringparam, _objectparam) For Each row As SelectStatementResultRow In _SelectedData.ResultSet(0).Rows _BallanceDEV = row.Values(2) Next row Return _BallanceDEV End Function End Class