Files
ivanszabo dd449f32d7 Jelölő adatok IsActive
Mezőgazdaság termeltetés IsActive
Számviteli készletnél szállítólevél DateExecution
2018-03-12 10:53:58 +01:00

815 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 DevExpress.Xpo.DB
'<EditorStateRuleAttribute("Hide DEV properties when HUF is selected in GeneralLedger", "CurrencyRate; row_AmountDEV", EditorState.Hidden, "CurrencyName.ShortName = 'HUF' and GLDocumentType in (0,1,3,4,5)", ViewType.DetailView)> _
'<EditorStateRule("Hide CustomersFrom", "CustomersFrom", EditorState.Disabled, "(IsNull(CustomersFrom))=False", ViewType.DetailView)> _
<DefaultClassOptions()>
<NavigationItem(False), CreatableItem(False)>
<Appearance("Hide DEV properties when HUF is selected in GeneralLedger",
TargetItems:="CurrencyRate; row_AmountDEV",
Criteria:="CurrencyName.ShortName = 'HUF' and GLDocumentType in (0,1,3,4,5)",
Visibility:=Editors.ViewItemVisibility.Hide,
Context:="DetailView")>
<Appearance("Hide CustomersFrom",
TargetItems:="CustomersFrom",
Criteria:="(IsNull(CustomersFrom))=False",
Enabled:=False,
Context:="DetailView")>
<Appearance("Hide row_ info when IsEditable=False",
AppearanceItemType:="ViewItem",
Criteria:="IsEditable=False",
TargetItems:="row_GLHeader; row_DebitChartOfAccounts; row_CreditChartOfAccounts; row_AmountHUF; row_AmountDEV; row_LiquidAssets;" +
" row_Customer; row_DateVAT; row_VAT; row_NoteRows; row_UniqueObjects; row_Controlling; row_JobNumberObjects; " +
" row_CostPlace; row_CostHolder; row_ConnectInfo;",
Visibility:=Editors.ViewItemVisibility.Hide)>
<RuleCriteria("RuleCriteria GLHeader-row_VAT-GLCassa", "aToTable_GLCassa_Contexts", "row_VAT.InversState=False", "Fordított ÁFA nem választható ki !")>
<RuleCriteria("RuleCriteria GLHeader-row_Controlling", "aToTable_GLAccounts_Contexts",
"(row_Controlling.IsParent=False) or (Rule5DMatrix.RequireControlling=False and isnull(row_Controlling)=True)",
"Gyüjtő kontrollszám nem választható ki!", SkipNullOrEmptyValues:=False)>
<RuleCriteria("RuleCriteria GLHeader-row_DebitChartOfAccounts", "aToTable_GLMixed_Contexts", "row_DebitChartOfAccounts.Children.Count=0", "Csak gyermek objektum választható ki!", SkipNullOrEmptyValues:=False)>
<RuleCriteria("RuleCriteria GLHeader-row_CreditChartOfAccounts", "aToTable_GLMixed_Contexts", "row_CreditChartOfAccounts.Children.Count=0", "Csak gyermek objektum választható ki!", SkipNullOrEmptyValues:=False)>
<RuleCriteria("RuleCriteria GLHeader-ChartOfAccountsYearState-Save", "*",
"ChartOfAccountsYearState=False",
"Zárolt főkönyvi év, nem lehet bizonylatot rögzíteni, módosítani! ", SkipNullOrEmptyValues:=True)>
<DefaultProperty("DocumentNumber")>
Public Class GLHeader
Inherits BaseObject
Private _GLDocumentType As eGLDocumentType 'Bizonylat tipusa
Private _CustomersFrom As CustomersFrom 'Saját c g
Private _CurrencyName As CurrencyName ' devizanem
Private _CurrencyRate As Double = 1 'Deviza árfolyam
Private _DocumentNumber As String 'Bizonylatszám, számlaszám
Private _RegistryNumber As String 'Iktatószám
Private _DateCreated As Date 'Kiállítás dátuma
Private _DateExecution As Date 'Teljesítés dátuma
Private _DatePayment As Date 'Fizetési határidő
Private _NoteHeader As String 'Fejléc megjegyzés
Private _IsEditable As Boolean = True 'Szerkeszthető
Private _IsStorno As Boolean = False 'Stornó bizonylat
Private _ImportedInvoice As InvoiceHeader 'melyik vevõi számlából készült
Private _ImportedRegistryHeader As RegistryHeader 'Melyik szállítói iktatásból jött
Private _ImportedOther As Guid 'Egyéb importált azonosító
Private _HUNumberToText As String ' Azaz string !!!
Private _CashHandler As String ' Pénztárnál befizető vagy átvevő
Private _GLOpenCloseHeader As GLOpenCloseHeader 'Melyik év végi záráshoz tartozik !
' Beviteli mezők
Private _row_GLHeader As GLHeader
Private _row_DebitChartOfAccounts As ChartOfAccounts 'Tartozik számlaszám
Private _row_CreditChartOfAccounts As ChartOfAccounts ' Követel számlaszám
Private _row_AmountHUF As Double ' összeg forintban
Private _row_AmountDEV As Double ' összeg devizában
Private _row_LiquidAssets As LiquidAssets ' pénzeszköz
Private _row_Customer As Customers ' partner
Private _row_DateVAT As Date 'sor dátum
Private _row_VAT As VAT
Private _row_NoteRows As String
Private _row_UniqueObjects As UniqueObjects 'Egyedi azonosító
Private _row_Controlling As Controlling 'Kontrolling szám
Private _row_JobNumberObjects As JobNumberObjects 'Munkaszám
Private _row_CostPlace As CostPlace 'Költséghely
Private _row_CostHolder As CostHolder 'Költségviselõ
Private _row_ConnectInfo As String 'Folyószámla analitika kötési szám
Private _IsRegistryGLAccounts As Boolean 'Rögzítés után van automatikus iktatás
Public Sub New(ByVal session As Session)
MyBase.New(session)
End Sub
Public Overrides Sub AfterConstruction()
MyBase.AfterConstruction()
CurrencyName = Session.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName=?", "HUF"))
If Session.IsNewObject(Me) Then
Me.GLDocumentType = eGLDocumentType.eGLMixed
IsEditable = True
IsStorno = False
End If
End Sub
Protected Overrides Sub OnSaving()
MyBase.OnSaving()
If Session.IsObjectToDelete(Me) = False Then
If Me.GLRows.Count > 0 Then
ReorderRows()
End If
End If
End Sub
Private Sub ReorderRows()
Dim _GLRows As GLRows
Dim _GLRows_New As GLRows = Nothing
Dim _RowIndex As Long = 0
Dim _GLRows_Array As New ArrayList
'//------------------------------------------------------------------------------------------
Me.GLRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))
For Each _GLRows In Me.GLRows
If Session.IsNewObject(_GLRows) Then
_GLRows_New = _GLRows
Else
_GLRows_Array.Add(_GLRows)
End If
Next
If _GLRows_New IsNot Nothing Then
_GLRows_Array.Add(_GLRows_New)
End If
For Each _GLRows In _GLRows_Array
If _GLRows.RowIndex <> _RowIndex Then
_GLRows.RowIndex = _RowIndex
_GLRows.Save()
End If
_RowIndex += 1
Next
End Sub
Private Sub RecalculateAmountHUF()
If Me.row_AmountDEV <> 0 Then
If GLDocumentType = 0 Or GLDocumentType = 1 Or GLDocumentType = 3 Or GLDocumentType = 4 Or GLDocumentType = 5 Then
Me.row_AmountHUF = Math.Round(Me.row_AmountDEV * CurrencyRate, 2, MidpointRounding.AwayFromZero)
End If
Else
Me.row_AmountHUF = 0
End If
End Sub
<VisibleInListView(False)>
<Association("GLHeader-GLFileData", GetType(GLFileData)), Aggregated(), ExpandObjectMembers(ExpandObjectMembers.Never)>
ReadOnly Property GLFileData As XPCollection(Of GLFileData)
Get
Return GetCollection(Of GLFileData)("GLFileData")
End Get
End Property
'<RuleValueComparison("", DefaultContexts.Save, ValueComparisonType.GreaterThan, "0")> _
ReadOnly Property GLRowsCount() As Long
Get
Return GLRows.Count
End Get
End Property
Property GLDocumentType() As eGLDocumentType
Get
Return _GLDocumentType
End Get
Set(ByVal value As eGLDocumentType)
SetPropertyValue("GLDocumentType", _GLDocumentType, value)
End Set
End Property
<RuleRequiredField("GLAccounts-CustomersFrom", "aFinal_GLAccount_Context")>
<RuleRequiredField("GLCassa-CustomersFrom", "aFinal_GLCassa_Context")>
<RuleRequiredField("GLCassa-CustomersFrom1", "aFinalAndNew_GLCassa_Context")>
<RuleRequiredField("GLMixed-CustomersFrom", "aFinal_GLMixed_Context")>
<ImmediatePostData()>
Property CustomersFrom() As CustomersFrom
Get
Return _CustomersFrom
End Get
Set(ByVal value As CustomersFrom)
SetPropertyValue("CustomersFrom", _CustomersFrom, value)
End Set
End Property
<RuleRequiredField("GLHeader.DocumentNumber.GLAccounts", "aFinal_GLAccount_Context")>
<RuleRequiredField("GLHeader.DocumentNumber.GLBank.Final", "aFinal_GLBank_Context")>
<RuleRequiredField("GLHeader.DocumentNumber.GLBank.FinalAndNew", "aFinalAndNew_GLBank_Context")>
<ImmediatePostData(True)>
<NonCloneable()>
Overridable Property DocumentNumber() As String
Get
Return _DocumentNumber
End Get
Set(ByVal value As String)
SetPropertyValue("DocumentNumber", _DocumentNumber, value)
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
If Me.GLDocumentType = eGLDocumentType.eGLAccount Then
row_ConnectInfo = DocumentNumber
End If
End If
End Set
End Property
<NonCloneable()>
Property RegistryNumber() As String
Get
Return _RegistryNumber
End Get
Set(ByVal value As String)
SetPropertyValue("RegistryNumber", _RegistryNumber, value)
End Set
End Property
<RuleRequiredField("GLHeader.DateCreated", "aFinal_GLAccount_Context")>
Property DateCreated() As Date
Get
Return _DateCreated
End Get
Set(ByVal value As Date)
SetPropertyValue("DateCreated", _DateCreated, value)
End Set
End Property
<RuleRequiredField("GLHeader.DateExecution", "aFinal_GLAccount_Context")>
<RuleRequiredField("GLBank.DateExecution.Final", "aFinalAndNew_GLBank_Context")>
<RuleRequiredField("GLBank.DateExecution.FinalAndNew", "aFinal_GLBank_Context")>
<RuleRequiredField("GLMixed-DateExecution", "aFinal_GLMixed_Context")>
<RuleRequiredField("GLHeader.DateExecution.Defaultcontexts.Save", DefaultContexts.Save)>
Property DateExecution() As Date
Get
Return _DateExecution
End Get
Set(ByVal value As Date)
SetPropertyValue("DateExecution", _DateExecution, value)
If row_DateVAT = Nothing Then
row_DateVAT = value
End If
If TryCast(Me, GLBank) IsNot Nothing Then
If Me.row_LiquidAssets IsNot Nothing Then
TryCast(Me, GLBank).BallanceHUF = TryCast(Me, GLBank).GetBallanceHUF(Me.row_LiquidAssets, value)
TryCast(Me, GLBank).BallanceDEV = TryCast(Me, GLBank).GetBallanceDEV(Me.row_LiquidAssets, value)
End If
End If
End Set
End Property
ReadOnly Property DateExecutionYear As String
Get
Return DateExecution.Date.Year.ToString
End Get
End Property
ReadOnly Property DateExecutionQuarter As String
Get
Return AlignStr(DatePart(DateInterval.Quarter, DateExecution).ToString, eDirection.Left, " ", 2) & ". NÉ."
End Get
End Property
ReadOnly Property DateExecutionMonth As String
Get
Return String.Format("{0}. {1}", AlignStr(DateExecution.Date.Month.ToString, eDirection.Left, " ", 2), Format(DateExecution, "MMMM"))
End Get
End Property
ReadOnly Property DateExecutionWeekOfYear As String
Get
Return AlignStr(DatePart(DateInterval.WeekOfYear, DateExecution), eDirection.Left, " ", 2) & ". hét"
End Get
End Property
ReadOnly Property DateExecutionString As Date
Get
Return DateExecution.Date.ToString("d")
End Get
End Property
<RuleRequiredField("GLHeader.DatePayment", "aFinal_GLAccount_Context")>
Property DatePayment() As Date
Get
Return _DatePayment
End Get
Set(ByVal value As Date)
SetPropertyValue("DatePayment", _DatePayment, value)
End Set
End Property
<Size(-1)>
Property NoteHeader() As String
Get
Return _NoteHeader
End Get
Set(ByVal value As String)
SetPropertyValue("NoteHeader", _NoteHeader, value)
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
If String.IsNullOrEmpty(value) And String.IsNullOrEmpty(row_NoteRows) = True Then
row_NoteRows = value
End If
End If
End Set
End Property
<RuleRequiredField("GLHeader.CurrencyName", "aFinal_GLAccount_Context")>
Property CurrencyName() As CurrencyName
Get
Return _CurrencyName
End Get
Set(ByVal value As CurrencyName)
SetPropertyValue("CurrencyName", _CurrencyName, value)
End Set
End Property
<RuleRange("GLHeader.CurrencyName.ToTable", "aToTable_GLAccounts_Contexts", 2, 999999999999999999, TargetCriteria:="CurrencyName.ShortName != 'HUF'")>
<ImmediatePostData(True)>
Property CurrencyRate() As Double
Get
'If CurrencyName.ShortName = "HUF" Then
'Return 1
'Else
Return _CurrencyRate
'End If
End Get
Set(ByVal value As Double)
SetPropertyValue("CurrencyRate", _CurrencyRate, value)
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
Me.RecalculateAmountHUF()
End If
End Set
End Property
<NonCloneable()>
<ImmediatePostData()>
Property IsEditable() As Boolean
Get
Return _IsEditable
End Get
Set(ByVal value As Boolean)
SetPropertyValue("IsEditable", _IsEditable, value)
End Set
End Property
<NonCloneable()>
Property IsStorno() As Boolean
Get
Return _IsStorno
End Get
Set(ByVal value As Boolean)
SetPropertyValue("IsStorno", _IsStorno, value)
End Set
End Property
Property HUNumberToText As String
Get
Return _HUNumberToText
End Get
Set(ByVal value As String)
SetPropertyValue("HUNumberToText", _HUNumberToText, value)
End Set
End Property
<Size(-1)>
<RuleRequiredField("CashType-GLHeader", "aFinal_GLCassa_Context", TargetCriteria:="GLDocumentType=3")>
<RuleRequiredField("CashType-GLHeader-FN", "aFinalAndNew_GLCassa_Context", TargetCriteria:="GLDocumentType=3")>
Property CashHandler As String
Get
Return _CashHandler
End Get
Set(ByVal value As String)
SetPropertyValue("CashHandler", _CashHandler, value)
End Set
End Property
Property ImportedInvoice As InvoiceHeader
Get
Return _ImportedInvoice
End Get
Set(ByVal value As InvoiceHeader)
SetPropertyValue("ImportedInvoice", _ImportedInvoice, value)
End Set
End Property
Property ImportedRegistryHeader As RegistryHeader
Get
Return _ImportedRegistryHeader
End Get
Set(ByVal value As RegistryHeader)
SetPropertyValue("ImportedRegistryHeader", _ImportedRegistryHeader, value)
End Set
End Property
<Browsable(False)>
Property ImportedOther As Guid
Get
Return _ImportedOther
End Get
Set(ByVal value As Guid)
SetPropertyValue("ImportedOther", _ImportedOther, value)
End Set
End Property
<Browsable(False)>
Property GLOpenCloseHeader As GLOpenCloseHeader
Get
Return _GLOpenCloseHeader
End Get
Set(value As GLOpenCloseHeader)
SetPropertyValue("GLOpenCloseHeader", _GLOpenCloseHeader, value)
End Set
End Property
'Nonpersistent tulajdonságok a sorok rögzítéséhez
<NonPersistent()>
<ImmediatePostData(True), DataSourceCriteria("AccountYear=GetYear('@This.DateExecution')")>
<RuleRequiredField("GLMixed-row_DebitChartOfAccounts", "aToTable_GLMixed_Contexts")>
<VisibleInListView(False)>
Property row_DebitChartOfAccounts() As ChartOfAccounts
Get
Return _row_DebitChartOfAccounts
End Get
Set(ByVal value As ChartOfAccounts)
SetPropertyValue("row_DebitChartOfAccounts", _row_DebitChartOfAccounts, value)
End Set
End Property
<NonPersistent()>
<ImmediatePostData(True), DataSourceCriteria("AccountYear=GetYear('@This.DateExecution')")>
<RuleRequiredField("GLMixed-row_CreditChartOfAccounts", "aToTable_GLMixed_Contexts")>
<VisibleInListView(False)>
Property row_CreditChartOfAccounts() As ChartOfAccounts
Get
Return _row_CreditChartOfAccounts
End Get
Set(ByVal value As ChartOfAccounts)
SetPropertyValue("row_CreditChartOfAccounts", _row_CreditChartOfAccounts, value)
End Set
End Property
<NonPersistent()>
<RuleValueComparison("GLMixed-row_AmountHUF", "aToTable_GLMixed_Contexts", ValueComparisonType.NotEquals, 0)>
<RuleValueComparison("GLCassa-row_AmountHUF", "aToTable_GLCassa_Contexts", ValueComparisonType.GreaterThan, 0)>
<RuleValueComparison("GLBank-row_AmountHUF", "aToTable_GLBank_Contexts", ValueComparisonType.GreaterThan, 0)>
<RuleValueComparison("GLCompensation-row_AmountHUF", "aToTable_GLCompensation_Contexts", ValueComparisonType.GreaterThan, 0)>
<ImmediatePostData(True)>
<VisibleInListView(False)>
Overridable Property row_AmountHUF() As Double
Get
Return _row_AmountHUF
End Get
Set(ByVal value As Double)
SetPropertyValue("row_AmountHUF", _row_AmountHUF, value)
End Set
End Property
<NonPersistent()>
<RuleValueComparison("GLMixed-row_AmountDEV", "aToTable_GLMixed_Contexts", ValueComparisonType.NotEquals, 0, TargetCriteria:="CurrencyName.ShortName != 'HUF'")>
<RuleValueComparison("GLCompensation-row_AmountDEV", "aToTable_GLCompensation_Contexts", ValueComparisonType.GreaterThan, 0, TargetCriteria:="CurrencyName.ShortName != 'HUF'")>
<ImmediatePostData(True)>
<VisibleInListView(False)>
Overridable Property row_AmountDEV() As Double
Get
Return _row_AmountDEV
End Get
Set(ByVal value As Double)
SetPropertyValue("row_AmountDEV", _row_AmountDEV, value)
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
Me.RecalculateAmountHUF()
End If
End Set
End Property
'<ImmediatePostData(True), DataSourceCriteria("Iif('@this.GLDocumentType' = 2, True, False) == (LiquidAssetsType = 1)")> _
<NonPersistent()>
<VisibleInListView(False)>
Property row_LiquidAssets() As LiquidAssets
Get
Return _row_LiquidAssets
End Get
Set(ByVal value As LiquidAssets)
SetPropertyValue("row_LiquidAssets", _row_LiquidAssets, value)
End Set
End Property
<NonPersistent()>
<ImmediatePostData(True)>
<VisibleInListView(False)>
Overridable Property row_Customer() As Customers
Get
Return _row_Customer
End Get
Set(ByVal value As Customers)
SetPropertyValue("row_Customer", _row_Customer, value)
If Session.IsObjectsSaving = False And Session.IsObjectsLoading = False Then
If value IsNot Nothing Then
If CashHandler = "" Then CashHandler = value.Name
End If
End If
End Set
End Property
<NonPersistent()>
<RuleRequiredField("GLHeader.row_DateVAT", "aToTable_GLAccounts_Contexts")>
<VisibleInListView(False)>
Property row_DateVAT() As Date
Get
Return _row_DateVAT
End Get
Set(ByVal value As Date)
SetPropertyValue("row_DateVAT", _row_DateVAT, value)
End Set
End Property
<NonPersistent()>
<VisibleInListView(False)>
<RuleRequiredField("GLHeader.row_VAT.ToTable", "aToTable_GLAccounts_Contexts")>
Property row_VAT() As VAT
Get
Return _row_VAT
End Get
Set(ByVal value As VAT)
SetPropertyValue("row_VAT", _row_VAT, value)
End Set
End Property
<NonPersistent()>
<Size(-1)>
<VisibleInListView(False)>
Property row_NoteRows() As String
Get
Return _row_NoteRows
End Get
Set(ByVal value As String)
SetPropertyValue("row_NoteRows", _row_NoteRows, value)
End Set
End Property
'Rule5DMatrix ...
<NonPersistent()>
<VisibleInListView(False)>
<RuleRequiredField("GLHeader-row_Controlling-aToTable_GLAccounts_Contexts", "aToTable_GLAccounts_Contexts", TargetCriteria:="Rule5DMatrix.RequireControlling=True")>
Overridable Property row_Controlling() As Controlling
Get
Return _row_Controlling
End Get
Set(ByVal value As Controlling)
SetPropertyValue("row_Controlling", _row_Controlling, value)
End Set
End Property
<NonPersistent()>
<VisibleInListView(False)>
<RuleRequiredField("GLHeader-row_CostPlace-aToTable_GLAccounts_Contexts", "aToTable_GLAccounts_Contexts", TargetCriteria:="Rule5DMatrix.RequireCostPlace=True")>
<DataSourceCriteria("IsActive != False")>
Property row_CostPlace As CostPlace
Get
Return _row_CostPlace
End Get
Set(ByVal value As CostPlace)
SetPropertyValue("row_CostPlace", _row_CostPlace, value)
End Set
End Property
<NonPersistent()>
<VisibleInListView(False)>
<RuleRequiredField("GLHeader-row_CostHolder-aToTable_GLAccounts_Contexts", "aToTable_GLAccounts_Contexts", TargetCriteria:="Rule5DMatrix.RequireCostHolder=True")>
<DataSourceCriteria("IsActive != False")>
Property row_CostHolder() As CostHolder
Get
Return _row_CostHolder
End Get
Set(ByVal value As CostHolder)
SetPropertyValue("_row_CostHolder", _row_CostHolder, value)
End Set
End Property
<NonPersistent()>
<VisibleInListView(False)>
<RuleRequiredField("GLHeader-row_UniqueObjects-aToTable_GLAccounts_Contexts", "aToTable_GLAccounts_Contexts", TargetCriteria:="Rule5DMatrix.RequireUniqueObjects=True")>
<DataSourceCriteria("IsActive != False")>
Property row_UniqueObjects() As UniqueObjects
Get
Return _row_UniqueObjects
End Get
Set(ByVal value As UniqueObjects)
SetPropertyValue("row_UniqueObjects", _row_UniqueObjects, value)
End Set
End Property
<NonPersistent()>
<VisibleInListView(False)>
<RuleRequiredField("GLHeader-row_JobNumberObjects-aToTable_GLAccounts_Contexts", "aToTable_GLAccounts_Contexts", TargetCriteria:="Rule5DMatrix.RequireJobNumberObjects=True")>
<DataSourceCriteria("IsActive != False")>
Property row_JobNumberObjects() As JobNumberObjects
Get
Return _row_JobNumberObjects
End Get
Set(ByVal value As JobNumberObjects)
SetPropertyValue("row_JobNumberObjects", _row_JobNumberObjects, value)
End Set
End Property
<Browsable(False)>
ReadOnly Property Rule5DMatrix As Rule5DMatrix
Get
Dim _Rule5DforGL As Rule5DforGL = Session.FindObject(Of Rule5DforGL)(CriteriaOperator.Parse("GLDocumentType=?", GLDocumentType))
If _Rule5DforGL IsNot Nothing Then
Return _Rule5DforGL.Rule5DMatrix
Else
Return Nothing
End If
End Get
End Property
<Browsable(False)>
Property IsRegistryGLAccounts As Boolean
Get
Return _IsRegistryGLAccounts
End Get
Set(ByVal value As Boolean)
SetPropertyValue("IsRegistryGLAccounts", _IsRegistryGLAccounts, value)
End Set
End Property
<NonPersistent()>
<RuleRequiredField("GLHeader.row_ConnectInfo", "aFinal_GLAccount_Context")>
<RuleRequiredField("GLHeader.row_ConnectInfo.GLCassa", "aToTable_GLCassa_Contexts", TargetCriteria:="row_PartnerType<>-1")>
<ImmediatePostData(True)>
<VisibleInListView(False)>
Overridable Property row_ConnectInfo() As String
Get
Return _row_ConnectInfo
End Get
Set(ByVal value As String)
SetPropertyValue("row_ConnectInfo", _row_ConnectInfo, value)
End Set
End Property
<VisibleInListView(False)> _
<Association("GLHeader", GetType(GLRows))> _
Public ReadOnly Property GLRows() As XPCollection(Of GLRows)
Get
Return GetCollection(Of GLRows)("GLRows")
End Get
End Property
Sub Reconfigure_GLDetail()
'-- Az eljárás újragenerálja a GLDetail sorokat a késõbbi DTR elemzéshez
End Sub
<Browsable(False)> _
ReadOnly Property ChartOfAccountsYearState As Boolean
Get
Dim _ChartOfAccountsYear As ChartOfAccountsYear = Session.FindObject(Of ChartOfAccountsYear)(CriteriaOperator.Parse("AccountYear=?", Me.DateExecution.Year))
If _ChartOfAccountsYear Is Nothing Then
Return False
Else
Return _ChartOfAccountsYear.IsClosed
End If
End Get
End Property
'-- Árfolyam veszteség, nyereség elszámolása
Sub Reconfigure_RateDiff(ByVal _p_ocur As Xpo.XPObjectSpace, ByVal _p_GLHeader As GLHeader)
Dim _GLHeader_Ratediff As GLMixed = Nothing
Dim _GLCassa As GLCassa
Dim _GLBank As GLBank
Dim _GLCompensation As GLCompensation
Dim _GLRows As GLRows
Dim _GLRows_RateDiff As GLRows
Dim _PCIDetail As PCIDetail
Dim _CurrencyRate_Account As Double
Dim _AmountHUF_RatedIff As Double
Dim _DebitChartOfAccounts As ChartOfAccounts
Dim _CreditChartOfAccounts As ChartOfAccounts
Dim _Controlling As Controlling
Dim _GLMixedNG As GLMixedNG
Dim _GLHeader_RateDiffParameter = _p_ocur.FindObject(Of GLHeader_RateDiffParameter)(CriteriaOperator.Parse("1=1"))
If _GLHeader_RateDiffParameter Is Nothing Then Exit Sub
Dim _ChartOfAccounts_RateDiff_Win As ChartOfAccounts = _GLHeader_RateDiffParameter.GetChartOfAccounts(_p_GLHeader.DateExecution.Year, eWinLoss.eRateDiffWin)
Dim _ChartOfAccounts_RateDiff_Loss As ChartOfAccounts = _GLHeader_RateDiffParameter.GetChartOfAccounts(_p_GLHeader.DateExecution.Year, eWinLoss.eRateDiffLoss)
Dim _Controlling_RateDiff_Win As Controlling = _GLHeader_RateDiffParameter.Controlling_RateDiff_Win
Dim _Controlling_RateDiff_Loss As Controlling = _GLHeader_RateDiffParameter.Controlling_RateDiff_Loss
Dim _InAmountHUF As Double = 0
Dim _OutAmountHUF As Double = 0
Select Case _p_GLHeader.GLDocumentType
Case eGLDocumentType.eGLBank
_GLHeader_Ratediff = TryCast(_p_GLHeader, GLBank).GLHeader_RateDiff
TryCast(_p_GLHeader, GLBank).GLHeader_RateDiff = Nothing
TryCast(_p_GLHeader, GLBank).Save()
Case eGLDocumentType.eGLCassa
_GLHeader_Ratediff = TryCast(_p_GLHeader, GLCassa).GLHeader_RateDiff
TryCast(_p_GLHeader, GLCassa).GLHeader_RateDiff = Nothing
TryCast(_p_GLHeader, GLCassa).Save()
Case eGLDocumentType.eGLCompensation
_GLHeader_Ratediff = TryCast(_p_GLHeader, GLCompensation).GLHeader_RateDiff
TryCast(_p_GLHeader, GLCompensation).GLHeader_RateDiff = Nothing
TryCast(_p_GLHeader, GLCompensation).Save()
End Select
If _GLHeader_Ratediff IsNot Nothing Then
_p_ocur.Delete(_GLHeader_Ratediff.GLRows)
_p_ocur.Delete(_GLHeader_Ratediff)
End If
For Each _GLRows In _p_GLHeader.GLRows
If _GLRows.CashType = eCashType.ePartner And _GLRows.Customer IsNot Nothing Then
_PCIDetail = _p_ocur.FindObject(Of PCIDetail) _
(CriteriaOperator.Parse("CustomersFrom=? and Customers=? and PartnerType=? and ConnectInfo=? and MainType='01-Account' and CurrencyName.ShortName<>'HUF'", _
_p_GLHeader.CustomersFrom, _GLRows.Customer, _GLRows.PartnerType, _GLRows.ConnectInfo), True)
If _PCIDetail IsNot Nothing Then
If _PCIDetail.AmountDEV_Account <> 0 Then
_CurrencyRate_Account = Math.Round(_PCIDetail.AmountHUF_Account / _PCIDetail.AmountDEV_Account, 4, MidpointRounding.AwayFromZero)
If _GLRows.AmountDEV <> 0 Then
_AmountHUF_RatedIff = 0
_AmountHUF_RatedIff = (_GLRows.AmountDEV * _CurrencyRate_Account) - _GLRows.AmountHUF
Select Case _GLRows.PartnerType
Case ePartnerType.ePayabels
If _GLRows.OutAmountDEV > 0 Then 'Terhelés
If _AmountHUF_RatedIff < 0 Then 'Veszteség szállítóval szemben
_DebitChartOfAccounts = _ChartOfAccounts_RateDiff_Loss
_CreditChartOfAccounts = _GLRows.DebitChartOfAccounts
_InAmountHUF = Math.Abs(_AmountHUF_RatedIff)
_OutAmountHUF = 0
Else 'Nyereség szállítóval szemben
_DebitChartOfAccounts = _GLRows.DebitChartOfAccounts
_CreditChartOfAccounts = _ChartOfAccounts_RateDiff_Win
_InAmountHUF = 0
_OutAmountHUF = Math.Abs(_AmountHUF_RatedIff)
End If
ElseIf _GLRows.InAmountDEV > 0 Then 'Jóváírás
If _AmountHUF_RatedIff < 0 Then 'Veszteség szállítóval szemben
_DebitChartOfAccounts = _ChartOfAccounts_RateDiff_Loss
_CreditChartOfAccounts = _GLRows.CreditChartOfAccounts
_InAmountHUF = Math.Abs(_AmountHUF_RatedIff)
_OutAmountHUF = 0
Else 'Nyereség szállítóval szemben
_DebitChartOfAccounts = _GLRows.CreditChartOfAccounts
_CreditChartOfAccounts = _ChartOfAccounts_RateDiff_Win
_InAmountHUF = 0
_OutAmountHUF = Math.Abs(_AmountHUF_RatedIff)
End If
End If
Case ePartnerType.eReceivables
If _GLRows.OutAmountDEV > 0 Then 'Terhelés
If _AmountHUF_RatedIff > 0 Then 'Veszteség vevővel szemben
_DebitChartOfAccounts = _ChartOfAccounts_RateDiff_Loss
_CreditChartOfAccounts = _GLRows.DebitChartOfAccounts
_InAmountHUF = Math.Abs(_AmountHUF_RatedIff)
_OutAmountHUF = 0
Else 'Nyereség vevővel szemben
_DebitChartOfAccounts = _GLRows.DebitChartOfAccounts
_CreditChartOfAccounts = _ChartOfAccounts_RateDiff_Win
_InAmountHUF = 0
_OutAmountHUF = Math.Abs(_AmountHUF_RatedIff)
End If
ElseIf _GLRows.InAmountDEV > 0 Then 'Jóváírás
If _AmountHUF_RatedIff > 0 Then 'Veszteség vevővel szemben
_DebitChartOfAccounts = _ChartOfAccounts_RateDiff_Loss
_CreditChartOfAccounts = _GLRows.CreditChartOfAccounts
_InAmountHUF = Math.Abs(_AmountHUF_RatedIff)
_OutAmountHUF = 0
Else 'Nyereség vevő szemben
_DebitChartOfAccounts = _GLRows.CreditChartOfAccounts
_CreditChartOfAccounts = _ChartOfAccounts_RateDiff_Win
_InAmountHUF = 0
_OutAmountHUF = Math.Abs(_AmountHUF_RatedIff)
End If
End If
End Select
If _AmountHUF_RatedIff <> 0 Then
If _GLHeader_Ratediff Is Nothing Then
_GLHeader_Ratediff = _p_ocur.CreateObject(Of GLMixed)()
End If
_GLHeader_Ratediff.CustomersFrom = _p_GLHeader.CustomersFrom
_GLMixedNG = _p_ocur.FindObject(Of GLMixedNG)(CriteriaOperator.Parse("CustomersFrom=?", _GLHeader_Ratediff.CustomersFrom), True)
If _GLMixedNG IsNot Nothing Then
If _GLHeader_Ratediff.DocumentNumber = "" Then
_GLHeader_Ratediff.DocumentNumber = _GLMixedNG.NumberGenerator.GetNewNumber(_GLMixedNG.NumberGenerator)
End If
End If
_GLHeader_Ratediff.DateExecution = _p_GLHeader.DateExecution
_GLHeader_Ratediff.DateCreated = _p_GLHeader.DateCreated
_GLHeader_Ratediff.CurrencyRate = 1
_GLHeader_Ratediff.GLDocumentType = eGLDocumentType.eGLRateDiff
_GLHeader_Ratediff.IsEditable = False
_GLHeader_Ratediff.IsStorno = False
_GLHeader_Ratediff.CurrencyName = _p_ocur.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'"))
_GLHeader_Ratediff.Save()
_GLRows_RateDiff = _p_ocur.CreateObject(Of GLRows)()
_GLRows_RateDiff.InAmountHUF = _InAmountHUF
_GLRows_RateDiff.OutAmountHUF = _OutAmountHUF
_GLRows_RateDiff.GLHeader = _GLHeader_Ratediff
_GLRows_RateDiff.AddGLRows(_GLHeader_Ratediff, _DebitChartOfAccounts, _CreditChartOfAccounts, 0, Math.Abs(_AmountHUF_RatedIff), Nothing, _
_GLRows.Customer, Nothing, Nothing, "", Nothing, _Controlling, Nothing, Nothing, Nothing, _GLRows.ConnectInfo, _
eGLRowsTypeVAT.eNettoRow, Guid.NewGuid, _GLRows.TransactionType, eCashType.ePartner, _GLRows.PartnerType)
_GLRows_RateDiff.Save()
End If
End If
End If
End If
End If
Next
If _GLHeader_Ratediff IsNot Nothing Then
Select Case _p_GLHeader.GLDocumentType
Case eGLDocumentType.eGLBank
_GLBank = TryCast(_p_GLHeader, GLBank)
_GLBank.GLHeader_RateDiff = _GLHeader_Ratediff
_GLBank.Save()
Case eGLDocumentType.eGLCassa
_GLCassa = TryCast(_p_GLHeader, GLCassa)
_GLCassa.GLHeader_RateDiff = _GLHeader_Ratediff
_GLCassa.Save()
Case eGLDocumentType.eGLCompensation
_GLCompensation = TryCast(_p_GLHeader, GLCompensation)
_GLCompensation.GLHeader_RateDiff = _GLHeader_Ratediff
_GLCompensation.Save()
End Select
Else
Select Case _p_GLHeader.GLDocumentType
Case eGLDocumentType.eGLBank
_GLBank = TryCast(_p_GLHeader, GLBank)
_GLBank.GLHeader_RateDiff = Nothing
_GLBank.Save()
Case eGLDocumentType.eGLCassa
_GLCassa = TryCast(_p_GLHeader, GLCassa)
_GLCassa.GLHeader_RateDiff = Nothing
_GLCassa.Save()
Case eGLDocumentType.eGLCompensation
_GLCompensation = TryCast(_p_GLHeader, GLCompensation)
_GLCompensation.GLHeader_RateDiff = Nothing
_GLCompensation.Save()
End Select
End If
_p_ocur.CommitChanges()
End Sub
End Class