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.ExpressApp.ConditionalAppearance Public Enum eWeightMode eTotalWeightperQuantity = 0 'Össz súly eUnitWeightperQuantity = 1 'Egység súly End Enum 'HUF' And IsNull(CurrencyName)=False) Or IsNull(DeliveryNoteInType)=True", TargetItems:="row_ListPriceHUF", Visibility:=Editors.ViewItemVisibility.Hide)> Public Class DeliveryNoteInHeader 'Bejövő szállítólevél fejléc Inherits BaseObject Private _DeliveryNoteInType As DeliveryNoteInType 'Bejövő szállítólevél tipusa Private _DocumentNumber As String 'Bizonylat száma Private _DocumentNumberIn As String 'Belső sorszám (véglegesítéskor kapja) Private _CustomersFrom As CustomersFrom 'Saját cég Private _Customers As Customers 'Beszállító Private _DateCreated As Date 'Kiáll. dátuma Private _DateExecution As Date 'Teljesítés dátuma Private _DatePayment As Date 'Fizetési határidő Private _PaymentOption As PaymentOption 'Fizetési opció Private _ShipmentOption As ShipmentOption 'Szállítási opció Private _QualityOption As QualityOption 'Minőségi opció Private _CurrencyName As CurrencyName 'Deviza Private _CurrencyRate As Double 'Deviza árfolyam Private _Note As String 'Fejléc megjegyzés Private _IsEditable As Boolean = True 'Szerkeszthető Private _IsStorno As Boolean = False 'Végleges Private _ObjectCreated As Date 'Objektum keletkezésének dátuma Private _UserCreated As User Private _IsControlled As Boolean 'Akkor lesz True, ha a szállítólevélen lévő összes sor össze van pontozva számlával Private _IsStoraged As Boolean 'Akkor lesz True, ha minden tétele be lett vételezve Private _DocumentFile As FileData 'A beszkennelt szállítólevél '-- Non persistent Private _row_OrderOutRows As OrderOutRows 'Kimenő megrendelési sorok Private _row_Products As Products 'Termék, ami a szállítólevelen van Private _row_QTT As Double 'Termék szállított mennyisége Private _row_ListPriceHUF As Double 'Termék listaára HUF Private _row_ListPriceDEV As Double 'Termék listaára DEV Private _row_DiscountPercent As Double 'Termék ár kedvezmény %-ban Private _row_NoteRows As String 'Sor megjegyzés Private _row_PacketNumber As String 'Kötegszám, Fémzárszám Private _row_Weight As Double Private _row_WeightMode As eWeightMode Private _row_CountryFrom As Country 'Származási ország ! Public Sub New(ByVal session As Session) MyBase.New(session) End Sub Public Overrides Sub AfterConstruction() MyBase.AfterConstruction() IsEditable = True IsStorno = False IsControlled = False IsStoraged = False CurrencyName = Session.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'")) End Sub Protected Overrides Sub OnSaving() MyBase.OnSaving() If _DocumentNumber = "" Then _DocumentNumber = DeliveryNoteInType.NumberGenerator.GetNewNumber(DeliveryNoteInType.NumberGenerator) End If If Session.IsNewObject(Me) Then ObjectCreated = GetSQLTime(Session) UserCreated = Session.GetObjectByKey(Of User)(Session.GetKeyValue(SecuritySystem.CurrentUser)) End If End Sub Property DeliveryNoteInType As DeliveryNoteInType Get Return _DeliveryNoteInType End Get Set(value As DeliveryNoteInType) SetPropertyValue("DeliveryNoteInType", _DeliveryNoteInType, value) End Set End Property Property DocumentNumber() As String Get Return _DocumentNumber End Get Set(ByVal value As String) SetPropertyValue("DocumentNumber", _DocumentNumber, value) End Set End Property Property DocumentNumberIn() As String Get Return _DocumentNumberIn End Get Set(ByVal value As String) SetPropertyValue("DocumentNumberIn", _DocumentNumberIn, value) End Set End Property Property Customers() As Customers Get Return _Customers End Get Set(ByVal value As Customers) SetPropertyValue("Customers", _Customers, value) End Set End Property Property CustomersFrom() As CustomersFrom Get Return _CustomersFrom End Get Set(ByVal value As CustomersFrom) SetPropertyValue("CustomersFrom", _CustomersFrom, value) End Set End Property Property DateCreated() As Date Get Return _DateCreated End Get Set(ByVal value As Date) SetPropertyValue("DateCreated", _DateCreated, value) End Set End Property Property DateExecution() As Date Get Return _DateExecution End Get Set(ByVal value As Date) SetPropertyValue("DateExecution", _DateExecution, value) If Not Session.IsObjectsSaving And Not Session.IsObjectsLoading Then If Me.PaymentOption IsNot Nothing Then Me.DatePayment = Nothing If PaymentOption.DatePaymentMode = eDatePaymentMode.eDateCreated Then Else Me.DatePayment = value.AddDays(PaymentOption.PayDay) End If End If End If End Set End Property Property DatePayment() As Date Get Return _DatePayment End Get Set(ByVal value As Date) SetPropertyValue("DatePayment", _DatePayment, value) End Set End Property Property PaymentOption As PaymentOption Get Return _PaymentOption End Get Set(value As PaymentOption) SetPropertyValue("PaymentOption", _PaymentOption, value) If Not Session.IsObjectsSaving And Not Session.IsObjectsLoading Then If Me.DateExecution <> Nothing And value IsNot Nothing Then Me.DatePayment = Nothing Me.DatePayment = DateExecution.AddDays(value.PayDay) End If End If End Set End Property Property ShipmentOption() As ShipmentOption Get Return _ShipmentOption End Get Set(ByVal value As ShipmentOption) SetPropertyValue("ShipmentOption", _ShipmentOption, value) 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 CurrencyName() As CurrencyName Get Return _CurrencyName End Get Set(ByVal value As CurrencyName) SetPropertyValue("CurrencyName", _CurrencyName, value) End Set End Property Property CurrencyRate As Double Get Return _CurrencyRate End Get Set(value As Double) SetPropertyValue("CurrencyRate", _CurrencyRate, value) End Set End Property Property Note() As String Get Return _Note End Get Set(ByVal value As String) SetPropertyValue("Note", _Note, value) End Set End Property Property IsEditable() As Boolean Get Return _IsEditable End Get Set(ByVal value As Boolean) SetPropertyValue("IsEditable", _IsEditable, value) End Set End Property Property IsStorno() As Boolean Get Return _IsStorno End Get Set(ByVal value As Boolean) SetPropertyValue("IsStorno", _IsStorno, value) End Set End Property Property ObjectCreated As Date Get Return _ObjectCreated End Get Set(value As Date) SetPropertyValue("ObjectCreated", _ObjectCreated, value) End Set End Property Property UserCreated As User Get Return _UserCreated End Get Set(value As User) SetPropertyValue("UserCreated", _UserCreated, value) End Set End Property Property IsControlled As Boolean Get Return _IsControlled End Get Set(value As Boolean) SetPropertyValue("IsControlled", _IsControlled, value) End Set End Property Property IsStoraged As Boolean Get Return _IsStoraged End Get Set(value As Boolean) SetPropertyValue("IsStoraged", _IsStoraged, value) End Set End Property Property DocumentFile() As FileData Get Return _DocumentFile End Get Set(ByVal value As FileData) SetPropertyValue("DocumentFile", _DocumentFile, value) End Set End Property '-- NON persistent propertyk------------------------------- Property row_OrderOutRows As OrderOutRows Get Return _row_OrderOutRows End Get Set(value As OrderOutRows) SetPropertyValue("row_OrderOutRows", _row_OrderOutRows, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then If value IsNot Nothing Then Me.row_Products = value.Products Me.row_QTT = value.QTT - value.QTT_DeliveryNoteIn Me.row_ListPriceHUF = value.ListPriceHUF Me.row_ListPriceDEV = value.ListPriceDEV Me.row_DiscountPercent = value.DiscountPercent End If End If End Set End Property Property row_Products As Products Get Return _row_Products End Get Set(ByVal value As Products) SetPropertyValue("row_Products", _row_Products, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then If row_Products IsNot Nothing Then Me.row_ListPriceHUF = Me.row_Products.ListPriceInHUF Me.row_ListPriceDEV = Me.row_Products.ListPriceInDEV End If End If End Set End Property Property row_QTT As Double Get Return _row_QTT End Get Set(ByVal value As Double) SetPropertyValue("row_QTT", _row_QTT, value) End Set End Property Property row_ListPriceHUF As Double Get Return _row_ListPriceHUF End Get Set(ByVal value As Double) SetPropertyValue("row_ListPriceHUF", _row_ListPriceHUF, value) End Set End Property Property row_ListPriceDEV As Double Get Return _row_ListPriceDEV End Get Set(ByVal value As Double) SetPropertyValue("row_ListPriceDEV", _row_ListPriceDEV, value) End Set End Property Property row_DiscountPercent As Double Get Return _row_DiscountPercent End Get Set(ByVal value As Double) 'If value < 0 Or value > 99 Then ' Throw New Exception("*A kedvemény mértékének 1 és 99 között kell lennie.") 'End If SetPropertyValue("row_DiscountPercent", _row_DiscountPercent, value) End Set End Property Property row_NoteRows As String Get Return _row_NoteRows End Get Set(value As String) SetPropertyValue("row_NoteRows", _row_NoteRows, value) End Set End Property Property row_PacketNumber As String Get Return _row_PacketNumber End Get Set(value As String) SetPropertyValue("row_PacketNumber", _row_PacketNumber, value) End Set End Property Property row_Weight As Double Get Return _row_Weight End Get Set(value As Double) SetPropertyValue("row_Weight", _row_Weight, value) End Set End Property Property row_WeightMode As eWeightMode Get Return _row_WeightMode End Get Set(value As eWeightMode) SetPropertyValue("row_WeightMode", _row_WeightMode, value) End Set End Property Property row_CountryFrom As Country Get Return _row_CountryFrom End Get Set(value As Country) SetPropertyValue("row_CountryFrom", _row_CountryFrom, value) End Set End Property Private ReadOnly Property OrderOutRows As XPCollection(Of OrderOutRows) Get 'Dim _OrderOutRows As OrderOutRows Dim _OrderOutRows_Collection As XPCollection(Of OrderOutRows) Dim _Criteria As String _Criteria = "OrderOutHeader.IsEditable = False and OrderOutHeader.IsStorno = False and OrderOutHeader.CustomersFrom.Oid=? " _Criteria += " and OrderOutHeader.CustomersOrder.Oid=? and QTT_DeliveryNoteIn ReadOnly Property DeliveryNoteInrows As XPCollection(Of DeliveryNoteInRows) Get Return GetCollection(Of DeliveryNoteInRows)("DeliveryNoteInrows") End Get End Property ReadOnly Property StorageOutRowsInRows As XPCollection(Of StorageOutRowsInRows) Get Return New XPCollection(Of StorageOutRowsInRows)(Session, CriteriaOperator.Parse("StorageInRows.DeliveryNoteInRows.DeliveryNoteInHeader=?", Me)) End Get End Property ReadOnly Property StorageInRows As XPCollection(Of StorageInRows) Get Return New XPCollection(Of StorageInRows)(Session, CriteriaOperator.Parse("DeliveryNoteInRows.DeliveryNoteInHeader=?", Me)) End Get End Property ReadOnly Property DeliveryNoteInRRFC As XPCollection(Of DeliveryNoteInRRFC) Get Return New XPCollection(Of DeliveryNoteInRRFC)(Session, CriteriaOperator.Parse("DeliveryNoteInRows.DeliveryNoteInHeader=?", Me)) End Get End Property ReadOnly Property DisplayName As String Get Return Me.DocumentNumber & ", " & Me.DocumentNumberIn & ", " & Me.DateExecution End Get End Property ReadOnly Property OrderInTo As XPCollection(Of OrderInTo) Get Dim _OrderInTo_Collection As New XPCollection(Of OrderInTo)(Session, CriteriaOperator.Parse("1=2")) Dim _OrderInTo As OrderInTo Dim _DeliveryNoteInRows As DeliveryNoteInRows For Each _DeliveryNoteInRows In Me.DeliveryNoteInrows If _DeliveryNoteInRows.OrderOutRows IsNot Nothing Then Dim _OrderInTo_Collection_1 As New XPCollection(Of OrderInTo)(Session, CriteriaOperator.Parse("OrderOutRows=?", _DeliveryNoteInRows.OrderOutRows)) For Each _OrderInTo In _OrderInTo_Collection_1 _OrderInTo_Collection.Add(_OrderInTo) Next End If Next Return _OrderInTo_Collection End Get End Property End Class