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 System.Data.SqlClient Imports DevExpress.ExpressApp.ConditionalAppearance Imports System.Linq Imports System.Linq.Expressions Public Enum eInvoiceRowType FromOrder = 0 'Bejövő megrendelésből termék FromManual = 1 'Kézzel beállítva FromWorkSheet = 2 'Munkalap sorról FromContract = 3 'Szerződési sorból End Enum Public Enum eInvoiceRowMainType TurnOverMaterial = 0 'Árbevétel anyag TurnOverServices = 1 'Árbevétel szolgáltatás Advance = 2 'Előleg End Enum Public Enum eInvoiceRowCorrigendumType eNormal = 0 eOriginalMinus = 1 eNew = 2 End Enum ' _ _ _ _ _ _ Public Class InvoiceRows Inherits BaseObject Private _InvoiceHeader As InvoiceHeader 'Számla fejléce Private _InvoiceRowtype As eInvoiceRowType 'Számla sor tipusa Private _InvoicePeriod As String 'Számlázási időszak string Private _DateExecution As Date 'Elszámolás dátuma Private _RowIndex As Long = 0 'Számla sorindex Private _CustomsTariffs As CustomsTariffs 'Vámtarifaszám Private _ShortName As String 'Megnevezés Private _Description As String 'Leírás Private _ListPriceHUF As Double = 0 ' Egységár HUF (nettó !) Private _ListPriceDEV As Double = 0 ' Egységár DEV (Nettó !) Private _DiscountPriceHUF As Double = 0 'Kedvezmény összege HUF Private _DiscountPriceDEV As Double = 0 'Kedvezmény összege DEV Private _QTT As Double = 0 'Mennyiség Private _Units As Units ' Mennyiségi egység Private _VAT As VAT 'ÁFA Private _QualityOption As QualityOption 'Minőségi kondíció Private _ContractRows As ContractRows ' -- Szerződés sor Private _Controlling As Controlling '-- Controlling szám Private _ChartOfAccounts As ChartOfAccounts '-- Ezt a könyvelő állítja be, ha akarja. Private _UniqueObjects As UniqueObjects ' -- Egyedi azonosító Private _CostHolder As CostHolder ' -- Költség viselő Private _CostPlace As CostPlace ' -- Költség viselő Private _JobNumberObjects As JobNumberObjects ' -- Project Private _InvoiceRowsAdvance As InvoiceRows ' Ez egy előleg vissza sor és mutat az előleg sorra Private _ReadyforBookEntryRows As Boolean '= False 'Könyvelhető-e a sor. Ha nem, akkor feladás előtti ellenőrzés nem engedi át Private _InvoiceRows As InvoiceRows 'Helyesbített sor Private _OrderInRows As OrderInRows ' A számla melyik rendelési sorról készült Private _OrderInRowsOther As OrderInRowsOther ' A számla melyik rendelési egyéb sorról készült Private _WorkflowSystemSteps As WorkflowSystemSteps Private _InvoiceRowCorrigendumType As eInvoiceRowCorrigendumType Private _Worksheet_CostRows As Worksheet_CostRows 'A kapcsolódó munkalap elszámolási sora Private _DeliveryNoteOutRows As DeliveryNoteOutRows 'A kapcsolódó kimenő szállítólevél sora Private _Products As Products 'Terméktörzsből Private _Services As Services 'Szolgáltatás törzsből Private _SumPriceHUF As Double 'Netto sor összesen HUF Private _SumPriceDEV As Double 'Netto sor összesen DEV Private _SumPriceVATHUF As Double 'ÁFA sor összesen HUF Private _SumPriceVATDEV As Double 'ÁFA sor összesen DEV Private _SumPriceBruttoHUF As Double 'Brutto sor összesen HUF Private _SumPriceBruttoDEV As Double 'Brutto sor összesen DEV Private _SumAveragePriceHUF As Double 'Átlag beszerzési ár HUF Private _SumAveragePriceDEV As Double 'Átlag beszerzési ár DEV Private _SumGrossMarginHUF As Double 'Árréstömeg Private _SumGrossMarginDEV As Double 'Árréstömeg Private _SumBallanceHUF As Double 'Mai napig kiegyenlített rész Private _SumBallanceDEV As Double 'Mai napig kiegyenlített rész (deviza) Private _Weight_NAV As Double 'ÁFA bevallás miatt a súly 'NonPersistent Private _QTT_Will As Double 'NonPersistent jóváírandó mennyiség Public Sub New(ByVal session As Session) MyBase.New(session) End Sub Public Overrides Sub AfterConstruction() MyBase.AfterConstruction() If Me.InvoiceHeader IsNot Nothing Then If Me.InvoiceHeader.DateExecution = Nothing Then Else Me.DateExecution = Me.InvoiceHeader.DateExecution End If End If ReadyforBookEntryRows = False End Sub Protected Overrides Sub OnSaving() MyBase.OnSaving() If Me.InvoiceHeader IsNot Nothing Then If Me.InvoiceHeader.DateExecution = Nothing Then Me.DateExecution = Me.InvoiceHeader.DateExecution End If End If Me.CalculateSum() '// FIFO sorok újragenerálása If Me.OrderInRows IsNot Nothing Then If Me.InvoiceHeader IsNot Nothing Then If Me.InvoiceHeader.IsEditable = False And Me.InvoiceHeader.IsStorno = False Then Dim _InvoiceRowsFIFO_Collection As New XPCollection(Of InvoiceRowsFIFO)(PersistentCriteriaEvaluationBehavior.InTransaction, Session, CriteriaOperator.Parse("InvoiceRows=?", Me)) Session.Delete(_InvoiceRowsFIFO_Collection) Dim _InvoiceRowsFIFO As InvoiceRowsFIFO Dim _StorageOutRowsInRows As StorageOutRowsInRows For Each _StorageOutRowsInRows In OrderInRows.StorageOutRowsInRows_Collection _InvoiceRowsFIFO = New InvoiceRowsFIFO(Session) _InvoiceRowsFIFO.InvoiceRows = Me _InvoiceRowsFIFO.StorageInRows = _StorageOutRowsInRows.StorageInRows _InvoiceRowsFIFO.QTT = _StorageOutRowsInRows.QTT _InvoiceRowsFIFO.Save() Next End If End If If Me.Controlling Is Nothing Then '// Kontrollszám nélküli tételek ellenőrzése !!! If UCase(Me.ShortName) Like "*ELŐLEG*" Then If Me.OrderInRows.OrderInHeader.OrderInParameters.Controlling_InvoiceAdvance_Default IsNot Nothing Then Me.Controlling = Me.OrderInRows.OrderInHeader.OrderInParameters.Controlling_InvoiceAdvance_Default End If Else If Me.OrderInRows.OrderInHeader.OrderInParameters.Controlling_Rows_Default IsNot Nothing Then Me.Controlling = Me.OrderInRows.OrderInHeader.OrderInParameters.Controlling_Rows_Default End If End If End If If Me.OrderInRowsOther IsNot Nothing Then If Me.Controlling Is Nothing Then If Me.OrderInRowsOther.OrderInHeader.OrderInParameters.Controlling_OtherRows_Default IsNot Nothing Then Me.Controlling = Me.OrderInRowsOther.OrderInHeader.OrderInParameters.Controlling_OtherRows_Default End If End If End If End If End Sub Public Sub AddRows(ByVal _p_InvoiceHeader As InvoiceHeader, Optional _p_InvoiceRows As InvoiceRows = Nothing, Optional _p_ObjectSpace As Xpo.XPObjectSpace = Nothing) ' Sor hozzáadása a fejléchez, valamint árkalkuláció a sor termékére If _p_InvoiceRows IsNot Nothing Then 'Számla sorainak módosítása Dim _InvoiceRows_Corr_New As InvoiceRows = _p_ObjectSpace.CreateObject(Of InvoiceRows)() Me.InvoiceHeader = _p_InvoiceHeader Me.InvoiceRows = _p_InvoiceRows Me.ShortName = _p_InvoiceRows.ShortName Me.Description = _p_InvoiceRows.Description Me.ListPriceHUF = _p_InvoiceRows.ListPriceHUF Me.ListPriceDEV = _p_InvoiceRows.ListPriceDEV 'Me.DiscountPercent = _p_InvoiceHeader.row_DiscountPercent Me.DiscountPriceHUF = Me.ListPriceHUF * (_p_InvoiceRows.DiscountPercent / 100) Me.DiscountPriceDEV = Me.ListPriceDEV * (_p_InvoiceRows.DiscountPercent / 100) Me.QTT = _p_InvoiceRows.QTT * (-1) Me.Units = _p_InvoiceRows.Units Me.VAT = _p_InvoiceRows.VAT Me.QualityOption = _p_InvoiceRows.QualityOption Me.Controlling = _p_InvoiceRows.Controlling Me.UniqueObjects = _p_InvoiceRows.UniqueObjects Me.CostHolder = _p_InvoiceRows.CostHolder Me.CostPlace = _p_InvoiceRows.CostPlace Me.JobNumberObjects = _p_InvoiceRows.JobNumberObjects Me.InvoiceRowCorrigendumType = eInvoiceRowCorrigendumType.eOriginalMinus Me.InvoicePeriod = _p_InvoiceRows.InvoicePeriod Me.CustomsTariffs = _p_InvoiceRows.CustomsTariffs Me.ContractRows = _p_InvoiceRows.ContractRows Me.OrderInRows = _p_InvoiceRows.OrderInRows Me.OrderInRowsOther = _p_InvoiceRows.OrderInRowsOther If _p_InvoiceHeader.row_Products IsNot Nothing Then Me.Products = _p_InvoiceHeader.row_Products If _p_InvoiceHeader.row_Services IsNot Nothing Then Me.Services = _p_InvoiceHeader.row_Services If _p_InvoiceHeader.InvoiceRows.Count = 0 Then Me.RowIndex = 0 Else Me.RowIndex = _p_InvoiceHeader.InvoiceRows.Count - 1 End If Me.Save() _InvoiceRows_Corr_New.InvoiceHeader = _p_InvoiceHeader _InvoiceRows_Corr_New.InvoiceRows = _p_InvoiceRows _InvoiceRows_Corr_New.ShortName = _p_InvoiceRows.ShortName _InvoiceRows_Corr_New.Description = _p_InvoiceRows.Description _InvoiceRows_Corr_New.ListPriceHUF = _p_InvoiceHeader.row_ListPriceHUF _InvoiceRows_Corr_New.ListPriceDEV = _p_InvoiceHeader.row_ListPriceDEV _InvoiceRows_Corr_New.DiscountPriceHUF = _InvoiceRows_Corr_New.ListPriceHUF * (_p_InvoiceRows.DiscountPercent / 100) _InvoiceRows_Corr_New.DiscountPriceDEV = _InvoiceRows_Corr_New.ListPriceDEV * (_p_InvoiceRows.DiscountPercent / 100) _InvoiceRows_Corr_New.QTT = _p_InvoiceHeader.row_QTT _InvoiceRows_Corr_New.Units = _p_InvoiceRows.Units _InvoiceRows_Corr_New.VAT = _p_InvoiceHeader.row_VAT _InvoiceRows_Corr_New.QualityOption = _p_InvoiceRows.QualityOption _InvoiceRows_Corr_New.Controlling = _p_InvoiceRows.Controlling _InvoiceRows_Corr_New.UniqueObjects = _p_InvoiceRows.UniqueObjects _InvoiceRows_Corr_New.CostHolder = _p_InvoiceRows.CostHolder _InvoiceRows_Corr_New.CostPlace = _p_InvoiceRows.CostPlace _InvoiceRows_Corr_New.JobNumberObjects = _p_InvoiceRows.JobNumberObjects _InvoiceRows_Corr_New.InvoiceRowCorrigendumType = eInvoiceRowCorrigendumType.eNew _InvoiceRows_Corr_New.InvoicePeriod = _p_InvoiceRows.InvoicePeriod _InvoiceRows_Corr_New.CustomsTariffs = _p_InvoiceRows.CustomsTariffs _InvoiceRows_Corr_New.ContractRows = _p_InvoiceRows.ContractRows _InvoiceRows_Corr_New.OrderInRows = _p_InvoiceRows.OrderInRows _InvoiceRows_Corr_New.OrderInRowsOther = _p_InvoiceRows.OrderInRowsOther If _p_InvoiceHeader.InvoiceRows.Count = 0 Then _InvoiceRows_Corr_New.RowIndex = 0 Else _InvoiceRows_Corr_New.RowIndex = _p_InvoiceHeader.InvoiceRows.Count - 1 End If _InvoiceRows_Corr_New.Save() Else 'Normál menetrend, gyalogos számla rögzítsé Me.InvoiceHeader = _p_InvoiceHeader Me.InvoiceRows = _p_InvoiceRows Me.ShortName = _p_InvoiceHeader.row_ShortName Me.Description = _p_InvoiceHeader.row_Description Me.ListPriceHUF = _p_InvoiceHeader.row_ListPriceHUF Me.ListPriceDEV = _p_InvoiceHeader.row_ListPriceDEV 'Me.DiscountPercent = _p_InvoiceHeader.row_DiscountPercent Me.DiscountPriceHUF = Me.ListPriceHUF * (_p_InvoiceHeader.row_DiscountPercent / 100) Me.DiscountPriceDEV = Me.ListPriceDEV * (_p_InvoiceHeader.row_DiscountPercent / 100) Me.QTT = _p_InvoiceHeader.row_QTT Me.Units = _p_InvoiceHeader.row_Units Me.VAT = _p_InvoiceHeader.row_VAT Me.QualityOption = _p_InvoiceHeader.row_QualityOption If _p_InvoiceHeader.row_Controlling Is Nothing Then Me.Controlling = _p_InvoiceHeader.InvoiceType.ControllingDefault Else Me.Controlling = _p_InvoiceHeader.row_Controlling End If Me.UniqueObjects = _p_InvoiceHeader.row_UniqueObjects Me.CostHolder = _p_InvoiceHeader.row_CostHolder Me.CostPlace = _p_InvoiceHeader.row_CostPlace Me.JobNumberObjects = _p_InvoiceHeader.row_JobNumberObjects Me.InvoiceRowCorrigendumType = eInvoiceRowCorrigendumType.eNormal Me.InvoicePeriod = _p_InvoiceHeader.row_InvoicePeriod Me.CustomsTariffs = _p_InvoiceHeader.row_CustomsTariffs Me.Products = _p_InvoiceHeader.row_Products Me.Services = _p_InvoiceHeader.row_Services If _p_InvoiceHeader.InvoiceRows.Count = 0 Then Me.RowIndex = 0 Else Me.RowIndex = _p_InvoiceHeader.InvoiceRows.Count - 1 End If Me.Save() End If End Sub Public Sub RemoveRows(ByVal _p_InvoiceHeader As InvoiceHeader) For Each _InvoiceRows As InvoiceRows In _p_InvoiceHeader.InvoiceRows If _InvoiceRows.RowIndex > Me.RowIndex Then _InvoiceRows.RowIndex -= 1 End If Next Me.Delete() Me.Save() Session.CommitTransaction() End Sub Property DateExecution As Date Get Return _DateExecution End Get Set(value As Date) SetPropertyValue("DateExecution", _DateExecution, value) End Set End Property Property InvoicePeriod As String Get Return _InvoicePeriod End Get Set(value As String) SetPropertyValue("InvoicePeriod", _InvoicePeriod, value) End Set End Property _ Property InvoiceHeader() As InvoiceHeader Get Return _InvoiceHeader End Get Set(ByVal value As InvoiceHeader) SetPropertyValue("InvoiceHeader", _InvoiceHeader, value) If _InvoiceHeader IsNot Nothing Then ' Sor indexelés mikor hozzáad a fejléchez sorokat, az első sor rögtön 0 indexről indul If Session.IsNewObject(Me) And Session.IsObjectsLoading = False And Session.IsObjectsSaving = False And Session.IsObjectMarkedDeleted(Me) = False Then Dim i As Integer = 1 If i = _InvoiceHeader.InvoiceRows.Count Then Me.RowIndex = 1 ' A második sor indexét 1 re állítja End If If _InvoiceHeader.InvoiceRows.Count > 1 Then Me.RowIndex = _InvoiceHeader.InvoiceRows.Count ' a harmadik sortól növeli az indexeket End If End If End If End Set End Property Property InvoiceRowtype() As eInvoiceRowType Get Return _InvoiceRowtype End Get Set(ByVal value As eInvoiceRowType) SetPropertyValue("InvoiceRowtype", _InvoiceRowtype, value) End Set End Property Property RowIndex() As Long Get Return _RowIndex End Get Set(ByVal value As Long) SetPropertyValue("RowIndex", _RowIndex, value) End Set End Property Property CustomsTariffs() As CustomsTariffs Get Return _CustomsTariffs End Get Set(ByVal value As CustomsTariffs) SetPropertyValue("CustomsTariffs", _CustomsTariffs, value) End Set End Property _ _ Property ShortName() As String Get Return _ShortName End Get Set(ByVal value As String) SetPropertyValue("ShortName", _ShortName, value) End Set End Property _ Property Description() As String Get Return _Description End Get Set(ByVal value As String) SetPropertyValue("Description", _Description, value) End Set End Property Property ListPriceHUF() As Double Get Return _ListPriceHUF End Get Set(ByVal value As Double) SetPropertyValue("ListPriceHUF", _ListPriceHUF, value) If Session.IsObjectsLoading = False AndAlso Session.IsObjectsSaving = False Then CalculateSum() End If End Set End Property Property ListPriceDEV() As Double Get Return _ListPriceDEV End Get Set(ByVal value As Double) SetPropertyValue("ListPriceDEV", _ListPriceDEV, value) If Session.IsObjectsLoading = False AndAlso Session.IsObjectsSaving = False Then CalculateSum() End If End Set End Property Property DiscountPriceHUF() As Double Get Return _DiscountPriceHUF End Get Set(ByVal value As Double) SetPropertyValue("DiscountPriceHUF", _DiscountPriceHUF, value) If Session.IsObjectsLoading = False AndAlso Session.IsObjectsSaving = False Then CalculateSum() End If End Set End Property Property DiscountPriceDEV() As Double Get Return _DiscountPriceDEV End Get Set(ByVal value As Double) SetPropertyValue("DiscountPriceDEV", _DiscountPriceDEV, value) If Session.IsObjectsLoading = False AndAlso Session.IsObjectsSaving = False Then CalculateSum() End If End Set End Property _ Property QTT() As Double Get Return _QTT End Get Set(ByVal value As Double) SetPropertyValue("QTT", _QTT, value) If Session.IsObjectsLoading = False AndAlso Session.IsObjectsSaving = False Then CalculateSum() End If End Set End Property Property DeliveryNoteOutRows As DeliveryNoteOutRows Get Return _DeliveryNoteOutRows End Get Set(value As DeliveryNoteOutRows) SetPropertyValue("DeliveryNoteOutRows", _DeliveryNoteOutRows, value) End Set End Property Property Products As Products Get Return _Products End Get Set(value As Products) SetPropertyValue("Products", _Products, value) End Set End Property Property Services As Services Get Return _Services End Get Set(value As Services) SetPropertyValue("Services", _Services, value) End Set End Property _ Property SumPriceHUF() As Double Get Return _SumPriceHUF End Get Set(value As Double) SetPropertyValue("SumPriceHUF", _SumPriceHUF, value) End Set End Property _ Property SumPriceDEV() As Double Get Return _SumPriceDEV End Get Set(value As Double) SetPropertyValue("SumPriceDEV", _SumPriceDEV, value) End Set End Property _ Property SumPriceVATHUF As Double Get Return _SumPriceVATHUF End Get Set(value As Double) SetPropertyValue("SumPriceVATHUF", _SumPriceVATHUF, value) End Set End Property _ Property SumPriceVATDEV As Double Get Return _SumPriceVATDEV End Get Set(value As Double) SetPropertyValue("SumPriceVATDEV", _SumPriceVATDEV, value) End Set End Property _ Property SumPriceBruttoHUF As Double Get Return _SumPriceBruttoHUF End Get Set(value As Double) SetPropertyValue("SumPriceBruttoHUF", _SumPriceBruttoHUF, value) End Set End Property _ Property SumPriceBruttoDEV As Double Get Return _SumPriceBruttoDEV End Get Set(value As Double) SetPropertyValue("SumPriceBruttoDEV", _SumPriceBruttoDEV, value) End Set End Property Property Weight_NAV As Double Get Return _Weight_NAV End Get Set(value As Double) SetPropertyValue("Weight_NAV", _Weight_NAV, value) End Set End Property _ Property SumAveragePriceHUF As Double Get Return _SumAveragePriceHUF End Get Set(value As Double) SetPropertyValue("SumAveragePriceHUF", _SumAveragePriceHUF, value) End Set End Property _ Property SumAveragePriceDEV As Double Get Return _SumAveragePriceDEV End Get Set(value As Double) SetPropertyValue("SumAveragePriceDEV", _SumAveragePriceDEV, value) End Set End Property _ Property SumGrossMarginHUF As Double Get Return _SumGrossMarginHUF End Get Set(value As Double) SetPropertyValue("SumGrossMarginHUF", _SumGrossMarginHUF, value) End Set End Property _ Property SumGrossMarginDEV As Double Get Return _SumGrossMarginDEV End Get Set(value As Double) SetPropertyValue("SumGrossMarginDEV", _SumGrossMarginDEV, value) End Set End Property Property SumBallanceHUF As Double Get Return _SumBallanceHUF End Get Set(value As Double) SetPropertyValue("SumBallanceHUF", _SumBallanceHUF, value) End Set End Property Property SumBallanceDEV As Double Get Return _SumBallanceDEV End Get Set(value As Double) SetPropertyValue("SumBallanceDEV", _SumBallanceDEV, value) End Set End Property _ Property Units() As Units Get Return _Units End Get Set(ByVal value As Units) SetPropertyValue("Units", _Units, value) End Set End Property _ Property VAT() As VAT Get Return _VAT End Get Set(ByVal value As VAT) SetPropertyValue("VAT", _VAT, value) 'If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then ' If value.InversState = True Then ' If Me.InvoiceHeader IsNot Nothing Then ' If String.IsNullOrEmpty(Me.InvoiceHeader.Description) Then ' Me.InvoiceHeader.Description = value.Description ' Else ' If Not (Me.InvoiceHeader.Description.Contains(value.Description)) Then ' Me.InvoiceHeader.Description = Me.InvoiceHeader.Description + vbNewLine + value.Description ' End If ' End If ' End If ' End If 'End If End Set End Property Property QualityOption() As QualityOption Get Return _QualityOption End Get Set(ByVal value As QualityOption) SetPropertyValue("QualityOption", _QualityOption, value) End Set End Property Property ContractRows As ContractRows Get Return _ContractRows End Get Set(ByVal value As ContractRows) SetPropertyValue("ContractRows", _ContractRows, value) End Set End Property 'Rule5DMatrix ... Property Controlling As Controlling Get Return _Controlling End Get Set(ByVal value As Controlling) SetPropertyValue("Controlling", _Controlling, value) End Set End Property Property ChartOfAccounts As ChartOfAccounts Get Return _ChartOfAccounts End Get Set(value As ChartOfAccounts) SetPropertyValue("ChartOfAccounts", _ChartOfAccounts, value) End Set End Property Property UniqueObjects As UniqueObjects Get Return _UniqueObjects End Get Set(ByVal value As UniqueObjects) SetPropertyValue("UniqueObjects", _UniqueObjects, value) End Set End Property _ Property CostHolder As CostHolder Get Return _CostHolder End Get Set(ByVal value As CostHolder) SetPropertyValue("CostHolder", _CostHolder, value) End Set End Property Property CostPlace As CostPlace Get Return _CostPlace End Get Set(ByVal value As CostPlace) SetPropertyValue("CostPlace", _CostPlace, value) End Set End Property Property JobNumberObjects As JobNumberObjects Get Return _JobNumberObjects End Get Set(ByVal value As JobNumberObjects) SetPropertyValue("JobNumberObjects", _JobNumberObjects, value) End Set End Property Property Worksheet_CostRows As Worksheet_CostRows Get Return _Worksheet_CostRows End Get Set(value As Worksheet_CostRows) SetPropertyValue("Worksheet_CostRows", _Worksheet_CostRows, value) End Set End Property Property InvoiceRowsAdvance As InvoiceRows Get Return _InvoiceRowsAdvance End Get Set(ByVal value As InvoiceRows) SetPropertyValue("InvoiceRowsAdvance", _InvoiceRowsAdvance, value) End Set End Property Property ReadyforBookEntryRows As Boolean Get Return _ReadyforBookEntryRows End Get Set(value As Boolean) SetPropertyValue("ReadyforBookEntryRows", _ReadyforBookEntryRows, value) End Set End Property Property InvoiceRows As InvoiceRows Get Return _InvoiceRows End Get Set(value As InvoiceRows) SetPropertyValue("InvoiceRows", _InvoiceRows, value) End Set End Property Property OrderInRows As OrderInRows Get Return _OrderInRows End Get Set(value As OrderInRows) SetPropertyValue("OrderInRows", _OrderInRows, value) End Set End Property Property OrderInRowsOther As OrderInRowsOther Get Return _OrderInRowsOther End Get Set(value As OrderInRowsOther) SetPropertyValue("OrderInRowsOther", _OrderInRowsOther, value) End Set End Property Property WorkflowSystemSteps As WorkflowSystemSteps Get Return _WorkflowSystemSteps End Get Set(value As WorkflowSystemSteps) SetPropertyValue("WorkflowSystemSteps", _WorkflowSystemSteps, value) End Set End Property Property InvoiceRowCorrigendumType As eInvoiceRowCorrigendumType Get Return _InvoiceRowCorrigendumType End Get Set(value As eInvoiceRowCorrigendumType) SetPropertyValue("InvoiceRowCorrigendumType", _InvoiceRowCorrigendumType, value) End Set End Property _ Property QTT_Will As Double Get Return _QTT_Will End Get Set(value As Double) SetPropertyValue("QTT_Will", _QTT_Will, value) End Set End Property '// Readonly properties ReadOnly Property SumPriceOriginalHUF As Double Get If OrderInRows IsNot Nothing Then If OrderInRows.ListPriceOriginalHUF <> 0 Then Return OrderInRows.ListPriceOriginalHUF * QTT Else Return SumPriceHUF End If Else Return SumPriceHUF End If End Get End Property ReadOnly Property SumGrossMarginOriginalHUF As Double Get Return SumPriceOriginalHUF - SumAveragePriceHUF End Get End Property ReadOnly Property InvoiceRowMainType As eInvoiceRowMainType Get If Me.OrderInRows IsNot Nothing Then Return eInvoiceRowMainType.TurnOverMaterial ElseIf UCase(ShortName) Like "*ELŐLEG*" Then Return eInvoiceRowMainType.Advance ElseIf Me.OrderInRowsOther IsNot Nothing Then Return eInvoiceRowMainType.TurnOverServices ElseIf Me.Worksheet_CostRows IsNot Nothing Then Return eInvoiceRowMainType.TurnOverServices Else Return eInvoiceRowMainType.TurnOverServices End If End Get End Property ReadOnly Property DiscountPercent() As Double Get Return 0 End Get End Property ReadOnly Property PriceHUF As Double Get If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then Return ListPriceHUF - DiscountPriceHUF Else Return 0 End If End Get End Property ReadOnly Property PriceDEV As Double Get If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then Return ListPriceDEV - DiscountPriceDEV Else Return 0 End If End Get End Property '//XPCollections _ ReadOnly Property InvoiceRowsFIFO As XPCollection(Of InvoiceRowsFIFO) Get If Me IsNot Nothing Then Return New XPCollection(Of InvoiceRowsFIFO)(Session, CriteriaOperator.Parse("InvoiceRows=? and isnull(InvoiceRows)=False", Me)) Else Return New XPCollection(Of InvoiceRowsFIFO)(Session, CriteriaOperator.Parse("1=2")) End If End Get End Property _ ReadOnly Property StorageOutRowsInRows As XPCollection(Of StorageOutRowsInRows) Get If DeliveryNoteOutRows IsNot Nothing Then Return New XPCollection(Of StorageOutRowsInRows)(Session, CriteriaOperator.Parse("Oid=?", DeliveryNoteOutRows.StorageOutRowsInRows.Oid)) ElseIf OrderInRows IsNot Nothing Then Return New XPCollection(Of StorageOutRowsInRows)(Session, CriteriaOperator.Parse("StorageOutRows.OrderInRows=?", OrderInRows)) Else Return New XPCollection(Of StorageOutRowsInRows)(Session, CriteriaOperator.Parse("1=2")) End If End Get End Property _ ReadOnly Property QTT_CreditNote As Double Get Dim _QTT_CreditNote As Double = 0 Dim _InvoiceCreditNoteRows_Collection As New XPCollection(Of InvoiceCreditNoteRows)(Session, CriteriaOperator.Parse("FromInvoiceRows=?", Me)) If _InvoiceCreditNoteRows_Collection.Count > 0 Then For Each _InvoiceCreditNoteRows As InvoiceCreditNoteRows In _InvoiceCreditNoteRows_Collection _QTT_CreditNote += _InvoiceCreditNoteRows.QTT Next End If Return _QTT_CreditNote End Get End Property '//Public functions '-- Számolt értékek beállítása Public Sub CalculateSum() SumPriceHUF = Math.Round(_QTT * (ListPriceHUF - DiscountPriceHUF), 2, MidpointRounding.AwayFromZero) SumPriceDEV = Math.Round(_QTT * (ListPriceDEV - DiscountPriceDEV), 2, MidpointRounding.AwayFromZero) If VAT Is Nothing Then SumPriceVATHUF = 0 Else SumPriceVATHUF = Math.Round(SumPriceHUF * VAT.KeyValue, 2, MidpointRounding.AwayFromZero) End If If VAT Is Nothing Then SumPriceVATDEV = 0 Else SumPriceVATDEV = Math.Round(SumPriceDEV * VAT.KeyValue, 2, MidpointRounding.AwayFromZero) End If SumPriceBruttoHUF = SumPriceHUF + SumPriceVATHUF SumPriceBruttoDEV = SumPriceDEV + SumPriceVATDEV End Sub End Class