135 lines
5.3 KiB
VB.net
135 lines
5.3 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 InvoiceFactoringRows
|
|
Inherits BaseObject
|
|
|
|
Private _InvoiceFactoringHeader As InvoiceFactoringHeader
|
|
Private _InvoiceHeader As InvoiceHeader
|
|
Private _InterestValueHUF As Double ' Faktor kamat összege
|
|
Private _CapitalValueHUF As Double ' "TÕKE" összege
|
|
Private _RiskValueHUF As Double ' Kockázat összege
|
|
Private _InterestPercentperTransactionValueHUF As Double 'Faktordíj tranzakciónként összege
|
|
Private _FeeValueHUF As Double ' Faktor díj összege
|
|
Private _DiscountInterestPercent As Double 'Diszkont kamat !!!
|
|
Private _InterestDay As Long
|
|
Public Sub New(ByVal session As Session)
|
|
MyBase.New(session)
|
|
' This constructor is used when an object is loaded from a persistent storage.
|
|
' Do not place any code here or place it only when the IsLoading property is false:
|
|
' if (!IsLoading){
|
|
' It is now OK to place your initialization code here.
|
|
' }
|
|
' or as an alternative, move your initialization code into the AfterConstruction method.
|
|
End Sub
|
|
Public Overrides Sub AfterConstruction()
|
|
MyBase.AfterConstruction()
|
|
' Place here your initialization code.
|
|
InterestValueHUF = 0
|
|
CapitalValueHUF = 0
|
|
RiskValueHUF = 0
|
|
End Sub
|
|
Protected Overrides Sub OnSaving()
|
|
MyBase.OnSaving()
|
|
|
|
If IsDeleted = False Then
|
|
RecalculateValues()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
<Association("InvoiceFactoringHeader-InvoiceFactoringRows", GetType(InvoiceFactoringHeader))> _
|
|
Property InvoiceFactoringHeader As InvoiceFactoringHeader
|
|
Get
|
|
Return _InvoiceFactoringHeader
|
|
End Get
|
|
Set(value As InvoiceFactoringHeader)
|
|
SetPropertyValue("InvoiceFactoringHeader", _InvoiceFactoringHeader, value)
|
|
End Set
|
|
End Property
|
|
Property InvoiceHeader As InvoiceHeader
|
|
Get
|
|
Return _InvoiceHeader
|
|
End Get
|
|
Set(value As InvoiceHeader)
|
|
SetPropertyValue("InvoiceHeader", _InvoiceHeader, value)
|
|
End Set
|
|
End Property
|
|
|
|
Property InterestValueHUF As Double
|
|
Get
|
|
Return _InterestValueHUF
|
|
End Get
|
|
Set(value As Double)
|
|
SetPropertyValue("InterestValueHUF", _InterestValueHUF, value)
|
|
End Set
|
|
End Property
|
|
Property CapitalValueHUF As Double
|
|
Get
|
|
Return _CapitalValueHUF
|
|
End Get
|
|
Set(value As Double)
|
|
SetPropertyValue("CapitalValueHUF", _CapitalValueHUF, value)
|
|
End Set
|
|
End Property
|
|
Property RiskValueHUF As Double
|
|
Get
|
|
Return _RiskValueHUF
|
|
End Get
|
|
Set(value As Double)
|
|
SetPropertyValue("RiskValueHUF", _RiskValueHUF, value)
|
|
End Set
|
|
End Property
|
|
Property InterestPercentperTransactionValueHUF As Double
|
|
Get
|
|
Return _InterestPercentperTransactionValueHUF
|
|
End Get
|
|
Set(value As Double)
|
|
SetPropertyValue("InterestPercentperTransactionValueHUF", _InterestPercentperTransactionValueHUF, value)
|
|
End Set
|
|
End Property
|
|
Property FeeValueHUF As Double
|
|
Get
|
|
Return _FeeValueHUF
|
|
End Get
|
|
Set(value As Double)
|
|
SetPropertyValue("FeeValueHUF", _FeeValueHUF, value)
|
|
End Set
|
|
End Property
|
|
|
|
Private Sub RecalculateValues()
|
|
Dim _InterestPercent As Double = 0
|
|
|
|
If InvoiceFactoringHeader.InterestPercent > 0 Then
|
|
_InterestPercent = InvoiceFactoringHeader.InterestPercent
|
|
Else
|
|
_InterestPercent = InvoiceHeader.InvoiceFactoringParameter.InterestPercent
|
|
End If
|
|
|
|
If InvoiceHeader IsNot Nothing Then
|
|
If InvoiceHeader.InvoiceFactoringParameter IsNot Nothing Then
|
|
_InterestDay = DateDiff(DateInterval.Day, InvoiceFactoringHeader.DateExecution, _InvoiceHeader.DatePayment) + _InvoiceHeader.InvoiceFactoringParameter.GracePeriod
|
|
_DiscountInterestPercent = (360 * _InterestPercent / 100) /
|
|
(360 + (_InterestPercent / 100) * _InterestDay)
|
|
|
|
FeeValueHUF = Math.Round(((_InterestDay \ 30) + 1) * (InvoiceHeader.InvoiceFactoringParameter.InterestPercentMonth / 100) * InvoiceHeader.TotalBruttoHUF, 0, MidpointRounding.AwayFromZero)
|
|
RiskValueHUF = Math.Round(InvoiceHeader.TotalBruttoHUF * InvoiceHeader.InvoiceFactoringParameter.RiskPercent / 100, 0, MidpointRounding.AwayFromZero)
|
|
InterestPercentperTransactionValueHUF = Math.Round(InvoiceHeader.TotalBruttoHUF * InvoiceHeader.InvoiceFactoringParameter.InterestPercentperTransaction / 100, 0, MidpointRounding.AwayFromZero)
|
|
InterestValueHUF = Math.Round(((InvoiceHeader.TotalBruttoHUF - RiskValueHUF) * _InterestDay * _DiscountInterestPercent) / 360, 0, MidpointRounding.AwayFromZero)
|
|
CapitalValueHUF = Math.Round(InvoiceHeader.TotalBruttoHUF - InterestValueHUF - RiskValueHUF - FeeValueHUF - InterestPercentperTransactionValueHUF, 0, MidpointRounding.AwayFromZero)
|
|
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
End Class
|