Files
Nuvolar/Nuvolar.Module/BusinessObjects/Financial/FinancialObjects/FinancialTransactions/Cassa/GLCassa.vb
T

726 lines
37 KiB
VB.net

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
'<EditorStateRule("Hide DateExecution in GLCassa", "DateExecution", EditorState.Disabled, "DocumentNumber !=''", ViewType.DetailView)> _
'<EditorStateRule("Partnerconnection-hide-Cassa", "row_PCIGroup", EditorState.Hidden, "row_CashType=1 OR IsEditable=False", ViewType.DetailView)> _
'<EditorStateRule("Partner-hide-Cassa", "row_ChartOfAccounts;row_VAT;row_Controlling;row_CostHolder;row_JobNumberObjects;row_UniqueObjects;row_CostPlace", EditorState.Hidden, "row_CashType=0 OR IsEditable=False", ViewType.DetailView)> _
'<EditorStateRule("Hide LiquidAssets", "LiquidAssets_Cassa", EditorState.Disabled, "IsNull(LiquidAssets_Cassa)=False OR IsEditable=False", ViewType.DetailView)> _
'<EditorStateRule("Hide row_CurrencyRate2 in GLCassa", "row_CurrencyRate2", EditorState.Hidden, "LiquidAssets_Cassa.CurrencyName.ShortName = row_CurrencyName2.ShortName", ViewType.DetailView)> _
'<EditorStateRule("Hide row_CurrencyRate2 in GLCassa and HUF", "row_CurrencyRate2", EditorState.Hidden, "LiquidAssets_Cassa.CurrencyName.ShortName ='HUF' or row_CurrencyName2.ShortName='HUF' and IsEditable=True", ViewType.DetailView)> _
'<EditorStateRule("Disable CashMoveType", "CashMoveType", EditorState.Disabled, "CashMoveType!=2", ViewType.DetailView)> _
'<EditorStateRule("Disable AmountHUF when CurrencyName<>HUF", "row_AmountHUF", EditorState.Disabled, "CurrencyName.ShortName<>'HUF'", ViewType.DetailView)> _
'<EditorStateRule("Disable GLCassa.row_AmountHUF when DEV != HUF", "row_AmountHUF", EditorState.Disabled, "LiquidAssets_Cassa.CurrencyName.ShortName != 'HUF'", ViewType.DetailView)> _
<DefaultClassOptions()>
<NavigationItem("FinancialTransactions")>
<Appearance("Hide row_ info when IsEditable=False",
AppearanceItemType:="ViewItem",
Criteria:="IsEditable=False",
TargetItems:="row_CashType; row_Customer;row_PartnerType;row_PCIGroup;" +
"row_ConnectInfo; row_ChartOfAccounts; row_AmountHUF;row_AmountDEV;" +
"row_VAT;row_Controlling;row_CostHolder;row_JobNumberObjects;" +
"row_UniqueObjects;row_CostPlace;row_CurrencyName2;" +
"row_CurrencyRate;row_CurrencyRate2;row_AmountDEV2;row_NoteRows",
Visibility:=Editors.ViewItemVisibility.Hide)>
<Appearance("Hide Cassa row_Amount2 when CurrencyName2=CurrencyName",
AppearanceItemType:="ViewItem",
Criteria:="row_CurrencyName2.ShortName=LiquidAssets_Cassa.CurrencyName.ShortName",
TargetItems:="row_CurrencyRate2;row_AmountDEV2",
Visibility:=DevExpress.ExpressApp.Editors.ViewItemVisibility.Hide)>
<Appearance("Hide Cassa row_Amount2 when PartnerType is not set",
AppearanceItemType:="ViewItem",
Criteria:="row_CashType=1",
TargetItems:="row_CurrencyName2;row_CurrencyRate2;row_AmountDEV2",
Visibility:=DevExpress.ExpressApp.Editors.ViewItemVisibility.Hide)>
<Appearance("Hide row_CurrencyRate in GLCassa",
AppearanceItemType:="ViewItem",
Criteria:="LiquidAssets_Cassa.CurrencyName.ShortName = 'HUF' and row_CurrencyName2.ShortName='HUF' and IsEditable=True",
TargetItems:="row_CurrencyRate",
Visibility:=DevExpress.ExpressApp.Editors.ViewItemVisibility.Hide)>
<Appearance("Hide DateExecution in GLCassa",
AppearanceItemType:="ViewItem",
TargetItems:="DateExecution",
Criteria:="DocumentNumber !=''",
Enabled:=False, Context:="DetailView")>
<Appearance("Partnerconnection-hide-Cassa",
AppearanceItemType:="ViewItem",
TargetItems:="row_PCIGroup",
Criteria:="row_CashType=1 OR IsEditable=False",
Visibility:=Editors.ViewItemVisibility.Hide)>
<Appearance("Partner-hide-Cassa",
AppearanceItemType:="ViewItem",
TargetItems:="row_ChartOfAccounts;row_VAT;row_Controlling;row_CostHolder;row_JobNumberObjects;row_UniqueObjects;row_CostPlace",
Criteria:="row_CashType=0 OR IsEditable=False",
Visibility:=Editors.ViewItemVisibility.Hide)>
<Appearance("Hide LiquidAssets when LiquidAssets is selected",
AppearanceItemType:="ViewItem",
TargetItems:="LiquidAssets_Cassa",
Criteria:="IsNull(LiquidAssets_Cassa)=False OR IsEditable=False",
Enabled:=False,
Context:="DetailView")>
<Appearance("Hide row_CurrencyRate2 in GLCassa",
AppearanceItemType:="ViewItem",
TargetItems:="row_CurrencyRate2",
Criteria:="LiquidAssets_Cassa.CurrencyName.ShortName = row_CurrencyName2.ShortName",
Visibility:=Editors.ViewItemVisibility.Hide)>
<Appearance("Hide row_CurrencyRate2 in GLCassa and HUF",
AppearanceItemType:="ViewItem",
TargetItems:="row_CurrencyRate2",
Criteria:="LiquidAssets_Cassa.CurrencyName.ShortName ='HUF' or row_CurrencyName2.ShortName='HUF' and IsEditable=True",
Visibility:=Editors.ViewItemVisibility.Hide)>
<Appearance("Disable CashMoveType",
AppearanceItemType:="ViewItem",
TargetItems:="CashMoveType",
Criteria:="CashMoveType!=2",
Enabled:=False,
Context:="DetailView")>
<Appearance("Disable AmountHUF when CurrencyName<>HUF",
AppearanceItemType:="ViewItem",
TargetItems:="row_AmountHUF",
Criteria:="CurrencyName.ShortName<>'HUF' and row_CashType !=2",
Enabled:=False, Context:="DetailView")>
<Appearance("Disable GLCassa.row_AmountHUF when DEV != HUF",
AppearanceItemType:="ViewItem",
TargetItems:="row_AmountHUF",
Criteria:="LiquidAssets_Cassa.CurrencyName.ShortName != 'HUF' and row_CashType !=2",
Enabled:=False,
Context:="DetailView")>
<RuleCriteria("RuleCriteria GLCassa-row_ChartOfAccounts", "aToTable_GLCassa_Contexts", "row_ChartOfAccounts.Children.Count=0", "Csak gyermek objektum választható ki!", SkipNullOrEmptyValues:=False)>
<Appearance("Hide aGetCurrencyRateCassa",
AppearanceItemType:="Action",
TargetItems:="aGetCurrencyRateBank",
Criteria:="LiquidAssets_Cassa.CurrencyName.ShortName='HUF'",
Visibility:=DevExpress.ExpressApp.Editors.ViewItemVisibility.Hide)>
<Appearance("Hide properties if Correction",
AppearanceItemType:="ViewItem",
TargetItems:="row_AmountDEV;row_CurrencyRate2;row_CurrencyRate;row_CurrencyName2;row_AmountDEV2;row_VAT",
Criteria:="row_CashType in (2)",
Visibility:=Editors.ViewItemVisibility.Hide)>
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
<RuleValueComparison("RuleValue-CashMoveType", "aFinal_GLCassa_Context", ValueComparisonType.NotEquals, eCashMoveType.eNotSet)>
<RuleValueComparison("RuleValue-CashMoveType2", "aFinalAndNew_GLCassa_Context", ValueComparisonType.NotEquals, eCashMoveType.eNotSet)>
<RuleValueComparison("RuleValue-CashMoveType3", "aToTable_GLCassa_Contexts", ValueComparisonType.NotEquals, eCashMoveType.eNotSet)>
Property CashMoveType() As eCashMoveType
Get
Return _CashMoveType
End Get
Set(ByVal value As eCashMoveType)
SetPropertyValue("CashMoveType", _CashMoveType, value)
End Set
End Property
<Size(-1)>
<NonPersistent()>
<ImmediatePostData(True)>
<VisibleInListView(False)>
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
<NonPersistent()>
<RuleRequiredField("GLCassa-row_ChartOfAccounts", "aToTable_GLCassa_Contexts", TargetCriteria:="row_CashType=1")>
<ImmediatePostData(True), DataSourceCriteria("AccountYear=GetYear('@This.DateExecution')")>
<VisibleInListView(False)>
Property row_ChartOfAccounts() As ChartOfAccounts
Get
Return _ChartOfAccounts
End Get
Set(ByVal value As ChartOfAccounts)
SetPropertyValue("row_ChartOfAccounts", _ChartOfAccounts, value)
End Set
End Property
<NonPersistent()>
<ImmediatePostData(True), DataSourceCriteria("CustomersFrom='@This.CustomersFrom' and PartnerType='@This.row_PartnerType' and BallanceState=0 and isnull(CurrencyName_Account)=False ")>
<VisibleInListView(False)>
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
<NonPersistent()>
<VisibleInListView(False)>
<RuleValueComparison("GLCassa-row_PartnerType", "aToTable_GLCassa_Contexts", ValueComparisonType.NotEquals, ePartnerType.eNotSet, TargetCriteria:="row_CashType in (0)")>
Property row_PartnerType() As ePartnerType
Get
Return _PartnerType
End Get
Set(ByVal value As ePartnerType)
SetPropertyValue("row_PartnerType", _PartnerType, value)
End Set
End Property
<ImmediatePostData(True), DataSourceCriteria("LiquidAssetsType in (0,2,4) AND CustomerFrom='@This.CustomersFrom'")>
<RuleRequiredField("GLCassa-LiquidAssets_Cassa", "aFinal_GLCassa_Context")>
<RuleRequiredField("GLCassa-LiquidAssets_Cassa2", "aFinalAndNew_GLCassa_Context")>
<VisibleInListView(False)>
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
<NonPersistent()>
<ImmediatePostData(True)>
<VisibleInListView(False)>
<RuleRange("GLCassa-row_CurrencyRate", "aToTable_GLCassa_Contexts", 1.1, 999999, TargetCriteria:="LiquidAssets_Cassa.CurrencyName.ShortName != 'HUF' and row_CashType !=2")>
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
<NonPersistent()>
<ImmediatePostData(True)>
<VisibleInListView(False)>
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
<NonPersistent()>
<ImmediatePostData(True)>
<VisibleInListView(False)>
<RuleRange("GLCassa.CurrencyName.ToTable", "aToTable_GLCassa_Contexts", 0.01, 999999,
TargetCriteria:="LiquidAssets_Cassa.CurrencyName.ShortName != row_CurrencyName2.ShortName and LiquidAssets_Cassa.CurrencyName.ShortName !='HUF' and row_CurrencyName2.ShortName !='HUF' and row_CashType !=2")>
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
<NonPersistent()>
<ImmediatePostData(True)>
<VisibleInListView(False)>
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
<NonPersistent()>
Property BallanceHUF As Double
Get
Return _BallanceHUF
End Get
Set(ByVal value As Double)
SetPropertyValue("BallanceHUF", _BallanceHUF, value)
End Set
End Property
<NonPersistent()>
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
<Browsable(False)>
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
<VisibleInDetailView(False)>
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
<RuleValueComparison("GLCassa-row_AmountDEV", "aToTable_GLCassa_Contexts", ValueComparisonType.GreaterThan, 0, TargetCriteria:="CurrencyName.ShortName != 'HUF' and row_CashType !=2 ")>
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
<RuleRequiredField("GLHeader.row_Customer.GLCassa", "aToTable_GLCassa_Contexts", TargetCriteria:="row_PartnerType<>-1")>
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