Files
Nuvolar/Nuvolar.Module/BusinessObjects/Business/BusinessTransactions/DeliveryNote/DeliveryNoteIn/DeliveryNoteInRows.vb
T
2017-03-08 11:21:27 +01:00

356 lines
12 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
<DefaultClassOptions()> _
<NavigationItem(False), CreatableItem(False)> _
Public Class DeliveryNoteInRows 'Bejövő szállítólevél sorok
Inherits BaseObject
Private _DeliveryNoteInHeader As DeliveryNoteInHeader
Private _RowIndex As Long = 0 'Sor index
Private _Products As Products 'Termék vagy szolgáltatás
Private _Installation As Installation 'Gyártmány
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 _QTT_Process As Double 'Mennyiségi szándék, kézzel beírható
Private _QTT_Controlled As Double 'Erre a sorra vonatkozólag ? lett leigazolva szállítói számlán
Private _QTT_Returned As Double ' Visszárúzott mennyiség
Private _Units As Units ' Mennyiségi egység
Private _VAT As VAT 'ÁFA
Private _OrderOutRows As OrderOutRows 'Kimenő rendelési sor
Private _OfferInRows As OfferInRows
Private _NoteRows As String 'Sor megjegyzés
Private _PacketNumber As String 'Kötegszám
Private _Weight As Double 'Súly (összes mennyiség súlya)
Private _WeightMode As eWeightMode 'Súly értelmezése, egységsúly vagy öszsúly
Private _Area As Double 'Négyzetméter
Private _ITransactionNumber As String 'INRASTAT tranzakciós azonosító
Private _ShipingCode As String 'INTRASTAT szállítási azonosító
Private _row_ListPrice As Double
Private _row_DiscountPercent As Double
Private _row_SumPrice As Double
Public Sub New(ByVal session As Session)
MyBase.New(session)
End Sub
Public Overrides Sub AfterConstruction()
MyBase.AfterConstruction()
QTT = 0
QTT_Controlled = 0
QTT_Process = 0
QTT_Returned = 0
End Sub
Protected Overrides Sub OnSaving()
MyBase.OnSaving()
End Sub
<Association("DeliveryNoteInHeader-DeliveryNoteInRows", GetType(DeliveryNoteInHeader))> _
Property DeliveryNoteInHeader As DeliveryNoteInHeader
Get
Return _DeliveryNoteInHeader
End Get
Set(ByVal value As DeliveryNoteInHeader)
SetPropertyValue("DeliveryNoteInHeader", _DeliveryNoteInHeader, value)
End Set
End Property
Property RowIndex As Long
Get
Return _RowIndex
End Get
Set(value As Long)
SetPropertyValue("RowIndex", _RowIndex, 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 Installation As Installation
Get
Return _Installation
End Get
Set(value As Installation)
SetPropertyValue("Installation", _Installation, value)
End Set
End Property
ReadOnly Property SumPriceHUF() As Double
Get
Return Math.Round(_QTT * (_ListPriceHUF - _DiscountPriceHUF), 0, MidpointRounding.AwayFromZero)
End Get
End Property
ReadOnly Property SumPriceDEV() As Double
Get
Return Math.Round(_QTT * (_ListPriceDEV - _DiscountPriceDEV), 2, MidpointRounding.AwayFromZero)
End Get
End Property
ReadOnly Property SumPriceVATHUF As Double
Get
If VAT Is Nothing Then
Return 0
Else
Return Math.Round(SumPriceHUF * VAT.KeyValue, 0, MidpointRounding.AwayFromZero)
End If
End Get
End Property
ReadOnly Property SumPriceVATDEV As Double
Get
If VAT Is Nothing Then
Return 0
Else
Return Math.Round(SumPriceDEV * VAT.KeyValue, 2, MidpointRounding.AwayFromZero)
End If
End Get
End Property
ReadOnly Property SumPriceBruttoHUF As Double
Get
Return SumPriceHUF + SumPriceVATHUF
End Get
End Property
ReadOnly Property SumPriceBruttoDEV As Double
Get
Return SumPriceDEV + SumPriceVATDEV
End Get
End Property
Property ListPriceHUF() As Double
Get
Return _ListPriceHUF
End Get
Set(ByVal value As Double)
SetPropertyValue("ListPriceHUF", _ListPriceHUF, value)
End Set
End Property
Property ListPriceDEV() As Double
Get
Return _ListPriceDEV
End Get
Set(ByVal value As Double)
SetPropertyValue("ListPriceDEV", _ListPriceDEV, value)
End Set
End Property
Property DiscountPriceHUF() As Double
Get
Return _DiscountPriceHUF
End Get
Set(ByVal value As Double)
SetPropertyValue("DiscountPriceHUF", _DiscountPriceHUF, value)
End Set
End Property
Property DiscountPriceDEV() As Double
Get
Return _DiscountPriceDEV
End Get
Set(ByVal value As Double)
SetPropertyValue("DiscountPriceDEV", _DiscountPriceDEV, value)
End Set
End Property
<RuleRequiredField("RuleRequiredField for DeliveryNoteInRows.QTT", DefaultContexts.Save)> _
Property QTT() As Double
Get
Return _QTT
End Get
Set(ByVal value As Double)
SetPropertyValue("QTT", _QTT, value)
End Set
End Property
Property QTT_Process As Double
Get
Return _QTT_Process
End Get
Set(value As Double)
SetPropertyValue("QTT_Process", _QTT_Process, value)
If Not Session.IsObjectsLoading And Not Session.IsObjectsSaving Then
controlled_SumPrice = SetRowSumPrice(value, controlled_ListPrice, controlled_DiscountPercent)
End If
End Set
End Property
Property QTT_Controlled As Double
Get
Return _QTT_Controlled
End Get
Set(value As Double)
SetPropertyValue("QTT_Controlled", _QTT_Controlled, value)
End Set
End Property
Property QTT_Returned As Double
Get
Return _QTT_Returned
End Get
Set(value As Double)
SetPropertyValue("QTT_Returned", _QTT_Returned, value)
End Set
End Property
<RuleRequiredField("RuleRequiredField for DeliveryNoteInRows.Units", DefaultContexts.Save)> _
Property Units() As Units
Get
Return _Units
End Get
Set(ByVal value As Units)
SetPropertyValue("Units", _Units, value)
End Set
End Property
<RuleRequiredField("RuleRequiredField for DeliveryNoteInRows.VAT", DefaultContexts.Save)> _
Property VAT() As VAT
Get
Return _VAT
End Get
Set(ByVal value As VAT)
SetPropertyValue("VAT", _VAT, value)
End Set
End Property
Property OrderOutRows As OrderOutRows
Get
Return _OrderOutRows
End Get
Set(value As OrderOutRows)
SetPropertyValue("OrderOutRows", _OrderOutRows, value)
End Set
End Property
Property OfferInRows As OfferInRows
Get
Return _OfferInRows
End Get
Set(value As OfferInRows)
SetPropertyValue("OfferInRows", _OfferInRows, value)
End Set
End Property
Property NoteRows As String
Get
Return _NoteRows
End Get
Set(value As String)
SetPropertyValue("NoteRows", _NoteRows, value)
End Set
End Property
Property PacketNumber As String
Get
Return _PacketNumber
End Get
Set(value As String)
SetPropertyValue("PacketNumber", _PacketNumber, value)
End Set
End Property
Property Weight As Double
Get
Return _Weight
End Get
Set(value As Double)
SetPropertyValue("Weight", _Weight, value)
End Set
End Property
Property WeightMode As eWeightMode
Get
Return _WeightMode
End Get
Set(value As eWeightMode)
SetPropertyValue("WeightMode", _WeightMode, value)
End Set
End Property
Property Area As Double
Get
Return _Area
End Get
Set(value As Double)
SetPropertyValue("Area", _Area, value)
End Set
End Property
Property ITransactionNumber As String
Get
Return _ITransactionNumber
End Get
Set(value As String)
SetPropertyValue("ITransactionNumber", _ITransactionNumber, value)
End Set
End Property
Property ShipingCode As String
Get
Return _ShipingCode
End Get
Set(value As String)
SetPropertyValue("ShipingCode", _ShipingCode, value)
End Set
End Property
'-----------Nonpersistent------------
<NonPersistent>
Property controlled_ListPrice As Double
Get
Return _row_ListPrice
End Get
Set(value As Double)
SetPropertyValue("controlled_ListPrice", _row_ListPrice, value)
If Not Session.IsObjectsLoading And Not Session.IsObjectsSaving Then
controlled_SumPrice = SetRowSumPrice(QTT_Process, value, controlled_DiscountPercent)
End If
End Set
End Property
<NonPersistent>
Property controlled_DiscountPercent As Double
Get
Return _row_DiscountPercent
End Get
Set(value As Double)
SetPropertyValue("controlled_DiscountPercent", _row_DiscountPercent, value)
If Not Session.IsObjectsLoading And Not Session.IsObjectsSaving Then
controlled_SumPrice = SetRowSumPrice(QTT_Process, controlled_ListPrice, value)
End If
End Set
End Property
<NonPersistent>
Property controlled_SumPrice As Double
Get
Return _row_SumPrice
End Get
Set(value As Double)
SetPropertyValue("controlled_SumPrice", _row_SumPrice, value)
End Set
End Property
'----------Sub----------------
Public Sub AddRows(ByVal _p_DeliveryNoteInHeader As DeliveryNoteInHeader)
' Sor hozzáadása
Me.DeliveryNoteInHeader = _p_DeliveryNoteInHeader
Me.Products = _p_DeliveryNoteInHeader.row_Products
Me.Units = _p_DeliveryNoteInHeader.row_Products.Units
Me.VAT = _p_DeliveryNoteInHeader.row_Products.VAT
Me.QTT = _p_DeliveryNoteInHeader.row_QTT
Me.ListPriceHUF = _p_DeliveryNoteInHeader.row_ListPriceHUF
Me.ListPriceDEV = _p_DeliveryNoteInHeader.row_ListPriceDEV
Me.DiscountPriceDEV = _p_DeliveryNoteInHeader.row_ListPriceDEV * (_p_DeliveryNoteInHeader.row_DiscountPercent / 100)
Me.DiscountPriceHUF = _p_DeliveryNoteInHeader.row_ListPriceHUF * (_p_DeliveryNoteInHeader.row_DiscountPercent / 100)
Me.OrderOutRows = _p_DeliveryNoteInHeader.row_OrderOutRows
Me.RowIndex = _p_DeliveryNoteInHeader.DeliveryNoteInrows.Count
Me.PacketNumber = _p_DeliveryNoteInHeader.row_PacketNumber
Me.Weight = _p_DeliveryNoteInHeader.row_Weight
Me.WeightMode = _p_DeliveryNoteInHeader.row_WeightMode
End Sub
Private Function SetRowSumPrice(pQTT_Process As Double, prow_ListPrice As Double, prow_DiscountPercent As Double) As Double
Return (pQTT_Process * prow_ListPrice) - (pQTT_Process * prow_ListPrice * (prow_DiscountPercent / 100))
End Function
'//XPCollections
<VisibleInListView(False), VisibleInLookupListView(False)> _
ReadOnly Property DeliveryNoteInRRFC As XPCollection(Of DeliveryNoteInRRFC)
Get
Return New XPCollection(Of DeliveryNoteInRRFC)(PersistentCriteriaEvaluationBehavior.InTransaction, Session, CriteriaOperator.Parse("DeliveryNoteInRows=?", Me))
End Get
End Property
End Class