347 lines
14 KiB
VB.net
347 lines
14 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.Xpo.Metadata
|
|
Imports System.Drawing
|
|
<DefaultClassOptions()> _
|
|
<NavigationItem("RealEstateStocks")> _
|
|
Public Class Apartments
|
|
Inherits Immovables
|
|
Private _Floor As Floors 'Emelet
|
|
Private _Stairway As Stairways 'Lépcsőház
|
|
Private _RoomString As String 'Szoba szövegesen
|
|
Private _WindowDirection As eWindowDirection 'Ablak tájolás
|
|
Private _AreaPriceNettoHUF As Double 'Netto négyzetméter ár (HUF)
|
|
Private _AreaPriceNettoDEV As Double '
|
|
Private _PriceBruttoHUF As Double 'Bruttó listaár számoltatni a nettó vételárból (HUF)
|
|
Private _PriceNettoHUF As Double 'Nettó vételár (HUF)
|
|
Private _PriceBruttoDEV As Double
|
|
Private _PriceNettoDEV As Double 'Nettó vételár
|
|
Private _AreaNetto As Double = 0 'Nettó négyzetméter
|
|
Private _AreaNettoUnder190 As Double = 0 'Nettó négyzetméter 1.90 alatt
|
|
Private _AreaNettoForSale As Double = 0 'Nettó eladható négyzetméter
|
|
Private _AreaNettoForCostRecord As Double = 0 'Költség számító négyzetméter
|
|
Private _Direction As eIDirection 'Tájolás
|
|
Private _IsTerrace As Boolean 'Terasz van-e hozzá
|
|
Private _AreaTerrace As Double = 0 ' Összes terasz négyzetmétere
|
|
Private _Note As String 'Megjegyzés
|
|
Private _UniqueTag As String 'Egyedi tag
|
|
Public Sub New(ByVal session As Session)
|
|
MyBase.New(session)
|
|
End Sub
|
|
Protected Overrides Sub OnSaving()
|
|
If Session.IsNewObject(Me) Then
|
|
If UniqueTag <> "*" Then Me.MakeUniqueObjects_Apartments()
|
|
End If
|
|
|
|
MyBase.OnSaving()
|
|
End Sub
|
|
Public Overrides Sub AfterConstruction()
|
|
MyBase.AfterConstruction()
|
|
Me.ImmovablesTypes = eImmovablesTypes.eApartment
|
|
End Sub
|
|
Protected Sub RecalculatePrice()
|
|
PriceNettoHUF = Math.Round(AreaNettoForSale * AreaPriceNettoHUF, 0, MidpointRounding.AwayFromZero)
|
|
PriceNettoDEV = Math.Round(AreaNettoForSale * AreaPriceNettoDEV, 0, MidpointRounding.AwayFromZero)
|
|
End Sub
|
|
Protected Sub RecalculatePriceBrutto()
|
|
PriceBruttoHUF = Math.Round(PriceNettoHUF * 1.25, 0, MidpointRounding.AwayFromZero)
|
|
PriceBruttoDEV = Math.Round(PriceNettoDEV * 1.25, 0, MidpointRounding.AwayFromZero)
|
|
End Sub
|
|
Protected Sub RecalculateAreaNettoForSale()
|
|
AreaNettoForSale = Math.Round((AreaNetto + (AreaNettoUnder190 / 2) + (AreaTerrace / 2)), 2, MidpointRounding.AwayFromZero)
|
|
End Sub
|
|
<RuleRequiredField("Apartments-Floors", DefaultContexts.Save)> _
|
|
Property Floor() As Floors
|
|
Get
|
|
Return _Floor
|
|
End Get
|
|
Set(ByVal value As Floors)
|
|
SetPropertyValue("Floor", _Floor, value)
|
|
End Set
|
|
End Property
|
|
<RuleRequiredField("Apartments-Stairway", DefaultContexts.Save)> _
|
|
Property Stairway() As Stairways
|
|
Get
|
|
Return _Stairway
|
|
End Get
|
|
Set(ByVal value As Stairways)
|
|
SetPropertyValue("Stairway", _Stairway, value)
|
|
End Set
|
|
End Property
|
|
|
|
<VisibleInListView(False)> _
|
|
<Association("Apartments-LocalityLists", GetType(LocalityLists))> _
|
|
Public ReadOnly Property LocalityLists() As XPCollection(Of LocalityLists)
|
|
Get
|
|
Return GetCollection(Of LocalityLists)("LocalityLists")
|
|
End Get
|
|
End Property
|
|
|
|
Property WindowDirection() As eWindowDirection
|
|
Get
|
|
Return _WindowDirection
|
|
End Get
|
|
Set(ByVal value As eWindowDirection)
|
|
SetPropertyValue("WindowDirection", _WindowDirection, value)
|
|
End Set
|
|
End Property
|
|
<ImmediatePostData(True)> _
|
|
Property AreaPriceNettoHUF() As Double
|
|
Get
|
|
Return _AreaPriceNettoHUF
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("AreaPriceNettoHUF", _AreaPriceNettoHUF, value)
|
|
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
|
|
RecalculatePrice()
|
|
End If
|
|
End Set
|
|
End Property
|
|
Property AreaPriceNettoDEV() As Double
|
|
Get
|
|
Return _AreaPriceNettoDEV
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("AreaPriceNettoDEV", _AreaPriceNettoDEV, value)
|
|
End Set
|
|
End Property
|
|
Property Direction() As eIDirection
|
|
Get
|
|
Return _Direction
|
|
End Get
|
|
Set(ByVal value As eIDirection)
|
|
SetPropertyValue("Direction", _Direction, value)
|
|
End Set
|
|
End Property
|
|
Property PriceBruttoHUF() As Double
|
|
Get
|
|
Return _PriceBruttoHUF
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("PriceBruttoHUF", _PriceBruttoHUF, value)
|
|
End Set
|
|
End Property
|
|
<ImmediatePostData(True)> _
|
|
Property PriceNettoHUF As Double
|
|
Get
|
|
Return _PriceNettoHUF
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("PriceNettoHUF", _PriceNettoHUF, value)
|
|
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
|
|
Me.RecalculatePriceBrutto()
|
|
End If
|
|
End Set
|
|
End Property
|
|
Property PriceBruttoDEV() As Double
|
|
Get
|
|
Return _PriceBruttoDEV
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("PriceBruttoDEV", _PriceBruttoDEV, value)
|
|
End Set
|
|
End Property
|
|
<ImmediatePostData(True)> _
|
|
Property PriceNettoDEV As Double
|
|
Get
|
|
Return _PriceNettoDEV
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("PriceNettoDEV", _PriceNettoDEV, value)
|
|
If Session.IsObjectsSaving = False And Session.IsObjectsLoading = False Then
|
|
RecalculatePriceBrutto()
|
|
End If
|
|
End Set
|
|
End Property
|
|
<ImmediatePostData(True)> _
|
|
<Description("Terület négyzetméterben")> _
|
|
Property AreaNetto() As Double
|
|
Get
|
|
Return _AreaNetto
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("AreaNetto", _AreaNetto, value)
|
|
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
|
|
RecalculateAreaNettoForSale()
|
|
End If
|
|
End Set
|
|
End Property
|
|
<ImmediatePostData(True)> _
|
|
Property AreaNettoUnder190() As Double
|
|
Get
|
|
Return _AreaNettoUnder190
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("AreaNettoUnder190", _AreaNettoUnder190, value)
|
|
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
|
|
RecalculateAreaNettoForSale()
|
|
End If
|
|
End Set
|
|
End Property
|
|
<ImmediatePostData(True)> _
|
|
Property AreaNettoForSale As Double
|
|
Get
|
|
Return _AreaNettoForSale
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("AreaNettoForSale", _AreaNettoForSale, value)
|
|
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
|
|
RecalculatePrice()
|
|
MyBase.RecalculatePriceRent()
|
|
End If
|
|
End Set
|
|
End Property
|
|
Property AreaNettoForCostRecord As Double
|
|
Get
|
|
Return _AreaNettoForCostRecord
|
|
End Get
|
|
Set(value As Double)
|
|
SetPropertyValue("AreaNettoForCostRecord", _AreaNettoForCostRecord, value)
|
|
End Set
|
|
End Property
|
|
Property IsTerrace() As Boolean
|
|
Get
|
|
Return _IsTerrace
|
|
End Get
|
|
Set(ByVal value As Boolean)
|
|
SetPropertyValue("IsTerrace", _IsTerrace, value)
|
|
End Set
|
|
End Property
|
|
<ImmediatePostData(True)> _
|
|
Property AreaTerrace As Double
|
|
Get
|
|
Return _AreaTerrace
|
|
End Get
|
|
Set(ByVal value As Double)
|
|
SetPropertyValue("AreaTerrace", _AreaTerrace, value)
|
|
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
|
|
RecalculateAreaNettoForSale()
|
|
End If
|
|
End Set
|
|
End Property
|
|
<Size(-1)> _
|
|
Property Note() As String
|
|
Get
|
|
Return _Note
|
|
End Get
|
|
Set(ByVal value As String)
|
|
SetPropertyValue("Note", _Note, value)
|
|
End Set
|
|
End Property
|
|
Property RoomString() As String
|
|
Get
|
|
Return _RoomString
|
|
End Get
|
|
Set(ByVal value As String)
|
|
SetPropertyValue("RoomString", _RoomString, value)
|
|
End Set
|
|
End Property
|
|
<RuleRequiredField("Apartments-UniqueTag", DefaultContexts.Save)> _
|
|
Property UniqueTag() As String
|
|
Get
|
|
Return _UniqueTag
|
|
End Get
|
|
Set(ByVal value As String)
|
|
SetPropertyValue("UniqueTag", _UniqueTag, value)
|
|
End Set
|
|
End Property
|
|
|
|
Public Sub MakeUniqueObjects_Apartments()
|
|
Dim _Name_ImmovablesGroups As String : Dim _UniqueObjects_ImmovablesGroups As UniqueObjects
|
|
Dim _Name_ImmovablesGroups_X As String : Dim _UniqueObjects_ImmovablesGroups_X As UniqueObjects
|
|
Dim _Name_Stairway As String : Dim _UniqueObjects_Stairway As UniqueObjects
|
|
Dim _Name_Stairway_X As String : Dim _UniqueObjects_Stairway_X As UniqueObjects
|
|
Dim _Name_Floor As String : Dim _UniqueObjects_Floor As UniqueObjects
|
|
Dim _Name_Floor_X As String : Dim _UniqueObjects_Floor_X As UniqueObjects
|
|
Dim _Name_Apartments As String : Dim _UniqueObjects_Apartments As UniqueObjects
|
|
|
|
|
|
_Name_ImmovablesGroups = Me.ImmovableGroups.UniqueTag
|
|
_Name_ImmovablesGroups_X = Me.ImmovableGroups.UniqueTag & "-X"
|
|
|
|
_UniqueObjects_ImmovablesGroups = Session.FindObject(Of UniqueObjects)(CriteriaOperator.Parse("Name=?", _Name_ImmovablesGroups))
|
|
If _UniqueObjects_ImmovablesGroups Is Nothing Then
|
|
_UniqueObjects_ImmovablesGroups = New UniqueObjects(Session)
|
|
_UniqueObjects_ImmovablesGroups.Name = _Name_ImmovablesGroups
|
|
_UniqueObjects_ImmovablesGroups.Save()
|
|
End If
|
|
_UniqueObjects_ImmovablesGroups_X = Session.FindObject(Of UniqueObjects)(CriteriaOperator.Parse("Name=?", _Name_ImmovablesGroups_X))
|
|
If _UniqueObjects_ImmovablesGroups_X Is Nothing Then
|
|
_UniqueObjects_ImmovablesGroups_X = New UniqueObjects(Session)
|
|
_UniqueObjects_ImmovablesGroups_X.Name = _Name_ImmovablesGroups_X
|
|
_UniqueObjects_ImmovablesGroups_X.Parent = _UniqueObjects_ImmovablesGroups
|
|
_UniqueObjects_ImmovablesGroups_X.Save()
|
|
End If
|
|
|
|
_Name_Stairway = _Name_ImmovablesGroups & "-" & _Stairway.UniqueTag
|
|
_Name_Stairway_X = _Name_ImmovablesGroups & "-" & Stairway.UniqueTag & "-X"
|
|
|
|
_UniqueObjects_Stairway = Session.FindObject(Of UniqueObjects)(CriteriaOperator.Parse("Name=?", _Name_Stairway))
|
|
If _UniqueObjects_Stairway Is Nothing Then
|
|
_UniqueObjects_Stairway = New UniqueObjects(Session)
|
|
_UniqueObjects_Stairway.Name = _Name_Stairway
|
|
_UniqueObjects_Stairway.Parent = _UniqueObjects_ImmovablesGroups
|
|
_UniqueObjects_Stairway.Save()
|
|
End If
|
|
_UniqueObjects_Stairway_X = Session.FindObject(Of UniqueObjects)(CriteriaOperator.Parse("Name=?", _Name_Stairway_X))
|
|
If _UniqueObjects_Stairway_X Is Nothing Then
|
|
_UniqueObjects_Stairway_X = New UniqueObjects(Session)
|
|
_UniqueObjects_Stairway_X.Name = _Name_Stairway_X
|
|
_UniqueObjects_Stairway_X.Parent = _UniqueObjects_Stairway
|
|
_UniqueObjects_Stairway_X.Save()
|
|
End If
|
|
|
|
_Name_Floor = _Name_ImmovablesGroups & "-" & _Stairway.UniqueTag & "-" & Me.Floor.UniqueTag
|
|
_Name_Floor_X = _Name_ImmovablesGroups & "-" & _Stairway.UniqueTag & "-" & Me.Floor.UniqueTag & "-X"
|
|
|
|
_UniqueObjects_Floor = Session.FindObject(Of UniqueObjects)(CriteriaOperator.Parse("Name=?", _Name_Floor))
|
|
If _UniqueObjects_Floor Is Nothing Then
|
|
_UniqueObjects_Floor = New UniqueObjects(Session)
|
|
_UniqueObjects_Floor.Name = _Name_Floor
|
|
_UniqueObjects_Floor.Parent = _UniqueObjects_Stairway
|
|
_UniqueObjects_Floor.Save()
|
|
End If
|
|
_UniqueObjects_Floor_X = Session.FindObject(Of UniqueObjects)(CriteriaOperator.Parse("Name=?", _Name_Floor_X))
|
|
If _UniqueObjects_Floor_X Is Nothing Then
|
|
_UniqueObjects_Floor_X = New UniqueObjects(Session)
|
|
_UniqueObjects_Floor_X.Name = _Name_Floor_X
|
|
_UniqueObjects_Floor_X.Parent = _UniqueObjects_Floor
|
|
_UniqueObjects_Floor_X.Save()
|
|
End If
|
|
|
|
_Name_Apartments = Me.ImmovableGroups.UniqueTag & "-" & Me.Stairway.UniqueTag & "-" & Me.Floor.UniqueTag & _UniqueTag
|
|
|
|
_UniqueObjects_Apartments = Session.FindObject(Of UniqueObjects)(CriteriaOperator.Parse("Name=?", _Name_Apartments))
|
|
If _UniqueObjects_Apartments Is Nothing Then
|
|
_UniqueObjects_Apartments = New UniqueObjects(Session)
|
|
_UniqueObjects_Apartments.Name = _Name_Apartments
|
|
_UniqueObjects_Apartments.Parent = _UniqueObjects_Floor
|
|
_UniqueObjects_Apartments.Save()
|
|
Me.UniqueObjects = _UniqueObjects_Apartments
|
|
End If
|
|
End Sub
|
|
|
|
<VisibleInDetailView(False), VisibleInListView(False), VisibleInLookupListView(False)> _
|
|
ReadOnly Property Immovables_Oid As String
|
|
Get
|
|
Return Me.Oid.ToString
|
|
End Get
|
|
End Property
|
|
'-----NonPersistes-----
|
|
<NonPersistent(), VisibleInListView(False), VisibleInLookupListView(False)> _
|
|
Property OfferListPriceNettoHUF As Double = 0
|
|
<NonPersistent(), VisibleInListView(False), VisibleInLookupListView(False)> _
|
|
Property OfferListPriceNettoHUFRent As Double = 0
|
|
<NonPersistent(), VisibleInListView(False), VisibleInLookupListView(False)> _
|
|
Property OfferListPriceBruttoHUF As Double = 0
|
|
<NonPersistent(), VisibleInListView(False), VisibleInLookupListView(False)> _
|
|
Property OfferListPriceBruttoHUFRent As Double = 0
|
|
End Class ' Lakások
|