Imports System Imports System.ComponentModel Imports System.Collections.Generic Imports System.Diagnostics Imports System.Text Imports DevExpress.ExpressApp Imports DevExpress.ExpressApp.Actions Imports DevExpress.Persistent.Base Imports DevExpress.Xpo Imports DevExpress.Data.Filtering Imports System.Linq Imports DevExpress.ExpressApp.Model Public Class FixedassetsCardVC Inherits DevExpress.ExpressApp.ViewController Public Event InitWork(ByVal _Minimum As Long, ByVal _Step As Long, ByVal _Maximum As Long) Public Event DoWork() Public Event FinalWork Public Sub New() MyBase.New() 'This call is required by the Component Designer. InitializeComponent() RegisterActions(components) End Sub Protected Overrides Sub OnActivated() MyBase.OnActivated() If View.Id = "FixedAssetsCard_OpenYear_PopUp_DetailView" Then AddHandler Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DialogController)().AcceptAction.Executing, AddressOf FixedAssetsCard_OpenYear_PopUp_AcceptAction_Executing End If End Sub Private Sub aFinalize_FixedAssetsCard_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aFinalize_FixedAssetsCard.Execute Try Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _FixedAssetsCard As FixedAssetsCard For Each _FixedAssetsCard In View.SelectedObjects If _FixedAssetsCard.IsActivated = True Then Activate_FixedAssets(_ocur, _FixedAssetsCard) End If Next If TryCast(View, DetailView) IsNot Nothing Then View.Close() End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Hiba!") End Try End Sub Private Sub aFixedAssetsCard_ReActivate_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aFixedAssetsCard_ReActivate.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _FixedAssetsReactivationPopup As FixedAssetsReactivationPopup = _onew.CreateObject(Of FixedAssetsReactivationPopup)() _FixedAssetsReactivationPopup.DateExecution = GetSQLTime(_onew.Session) e.View = Application.CreateDetailView(_onew, "FixedAssetsReactivationPopup_DetailView", False, _FixedAssetsReactivationPopup) End Sub Private Sub aFixedAssetsCard_ReActivate_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aFixedAssetsCard_ReActivate.Execute End Sub Private Sub aFixedAssetsCard_Terminate_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aFixedAssetsCard_Terminate.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _FixedAssetsTerminatePopup As FixedAssetsTerminatePopup = _onew.CreateObject(Of FixedAssetsTerminatePopup)() _FixedAssetsTerminatePopup.DateExecution = GetSQLTime(_onew.Session) e.View = Application.CreateDetailView(_onew, "FixedAssetsTerminatePopup_DetailView", False, _FixedAssetsTerminatePopup) End Sub Private Sub aFixedAssetsCard_Terminate_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aFixedAssetsCard_Terminate.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _FixedAssetsCard As FixedAssetsCard = TryCast(View.SelectedObjects(0), FixedAssetsCard) Dim _FixedAssetsTerminatePopup As FixedAssetsTerminatePopup = TryCast(e.PopupWindow.View.SelectedObjects(0), FixedAssetsTerminatePopup) If _FixedAssetsCard IsNot Nothing Then If _FixedAssetsCard.IsTerminal = False And _FixedAssetsCard.IsActivated = True And _FixedAssetsCard.IsEditable = False Then Terminate_FixedAssets(_ocur, _FixedAssetsCard, _FixedAssetsTerminatePopup) End If End If End Sub Private Sub aFixedAssetsCard_Terminate_Storno_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aFixedAssetsCard_Terminate_Storno.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _FixedAssetsCard As FixedAssetsCard = TryCast(View.SelectedObjects(0), FixedAssetsCard) If _FixedAssetsCard IsNot Nothing Then If _FixedAssetsCard.IsTerminal = True Then Terminate_Storno_FixedAssets(_ocur, _FixedAssetsCard) End If End If End Sub Private Sub aFixedAssetsCard_Activate_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aFixedAssetsCard_Activate.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _FixedAssetsCard As FixedAssetsCard For Each _FixedAssetsCard In View.SelectedObjects If _FixedAssetsCard.IsActivated = False Then Activate_FixedAssets(_ocur, _FixedAssetsCard) If Not _FixedAssetsCard.IsNew Then RegenerateReceivedFromAnotherSystem(_ocur, _FixedAssetsCard) End If End If Next End Sub Private Sub aFixedAssetsCard_Activate_Storno_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aFixedAssetsCard_Activate_Storno.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _FixedAssetsCard As FixedAssetsCard For Each _FixedAssetsCard In View.SelectedObjects If _FixedAssetsCard.IsActivated = True Then Activate_Storno_FixedAssets(_ocur, _FixedAssetsCard) End If Next End Sub Private Sub aFixedAssetsCard_OpenYear_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aFixedAssetsCard_OpenYear.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _FixedAssetsCard_OpenYear_PopUp As New FixedAssetsCard_OpenYear_PopUp(_onew.Session) e.View = Application.CreateDetailView(_onew, "FixedAssetsCard_OpenYear_PopUp_DetailView", False, _FixedAssetsCard_OpenYear_PopUp) End Sub Private Sub aFixedAssetsCard_OpenYear_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aFixedAssetsCard_OpenYear.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _FixedAssetsCard_Collection As New XPCollection(Of FixedAssetsCard)(_ocur.Session, CriteriaOperator.Parse("IsTerminal=False AND IsActivated=True AND IsEditable=False")) Dim _NewYear As Long = TryCast(e.PopupWindow.View.SelectedObjects(0), FixedAssetsCard_OpenYear_PopUp).TargetYear If _FixedAssetsCard_Collection.Count > 0 Then For Each _FixedAssetsCard As FixedAssetsCard In _FixedAssetsCard_Collection Dim _FixedAssetsCardPlanRows_Collection As New XPCollection(Of FixedAssetsCardPlanRows)(_ocur.Session, CriteriaOperator.Parse("FixedAssetsCard=?", _FixedAssetsCard)) If _FixedAssetsCardPlanRows_Collection.Count > 0 Then Dim _FixedAssetsCardPlanRows_Collection_NEW As New ArrayList _FixedAssetsCardPlanRows_Collection.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending)) Dim _FixedAssetsCardPlanRows_Activated As FixedAssetsCardPlanRows = _FixedAssetsCardPlanRows_Collection(_FixedAssetsCardPlanRows_Collection.Count - 1) 'ÉCS Dim _DecrepationPeriodAmountACC As Double = 0 Dim _DecrepationPeriodAmountTAX As Double = 0 Dim _StartDate As Date = _FixedAssetsCardPlanRows_Activated.DateTo.AddDays(1) Dim _EndDate As New Date(_NewYear, 12, 31) Dim _FullDayCount As Long = DateDiff(DateInterval.Day, _StartDate, _EndDate) Dim _RowIndex As Long = _FixedAssetsCardPlanRows_Collection(_FixedAssetsCardPlanRows_Collection.Count - 1).RowIndex + 1 Select Case _FixedAssetsCard.DCPAccounting.FixedAssetsPeriod Case eFixedAssetsPeriod.eMonth '_DecrepationPeriodAmountACC = _FixedAssetsCardPlanRows_Activated.BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyACC / 100 / 12 '_DecrepationPeriodAmountTAX = _FixedAssetsCardPlanRows_Activated.BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyTax / 100 / 12 'Dim _ActYear As Date = New Date(_StartDate.Year, _StartDate.Month, 1) 'Dim _DateFrom As Date = _StartDate 'Dim _DateTo As Date = New Date(_ActYear.Year, _ActYear.Month + 1, 1).AddDays(-1) 'Do ' Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) ' With _FixedAssetsCardPlanRows ' .FixedAssetsCard = _FixedAssetsCard ' .RowIndex = _RowIndex ' .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal ' .DateFrom = _DateFrom ' .DateTo = _DateTo ' .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 ' .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 ' .KeyACC = _FixedAssetsCard.DCPAccounting.DecrepationPercent ' .KeyTax = _FixedAssetsCard.DCPTax.DecrepationPercent ' .SalvageHUF = _FixedAssetsCard.AmountHUFSalvage ' End With ' _RowIndex += 1 ' _ActYear = _DateTo ' _DateFrom = _DateTo.AddDays(1) ' _DateTo = (New Date(_DateFrom.Year, _DateFrom.Month, 1).AddMonths(1)).AddDays(-1) ' _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) 'Loop While New Date(Now.Year, Now.Month + 1, 1).AddDays(-1) >= _ActYear 'Dim _NettoHUFBallanceACC As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceACC 'Dim _NettoHUFBallanceTAX As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceTAX 'Dim _BruttoHUFBallance As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).BruttoHUFBallance 'For ik = 1 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 ' Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) ' With _FixedAssetsCardPlanRows ' Dim _ActMounthDayCount As Long = DateDiff(DateInterval.Day, New Date(.DateFrom.Year, .DateFrom.Month, 1), .DateTo) + 1 ' .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActMounthDayCount, 0, MidpointRounding.AwayFromZero) ' .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActMounthDayCount, 0, MidpointRounding.AwayFromZero) ' .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) ' .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) ' If _NettoHUFBallanceACC <> 0 Then ' If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then ' .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF ' .NettoHUFBallanceACC = .SalvageHUF ' _NettoHUFBallanceACC = 0 ' .DayCountACC = Math.Round(.DecrepationHUFACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) ' Else ' .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC ' End If ' Else ' .NettoHUFBallanceACC = .SalvageHUF ' .DayDecrepationACC = 0 ' .DecrepationHUFACC = 0 ' .DayCountACC = 0 ' End If ' If _NettoHUFBallanceTAX <> 0 Then ' If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then ' .DecrepationHUFTAX = _NettoHUFBallanceTAX ' .NettoHUFBallanceTAX = 0 ' _NettoHUFBallanceTAX = 0 ' .DayCountTAX = Math.Round(.DecrepationHUFTAX / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) ' Else ' .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX ' End If ' Else ' .NettoHUFBallanceTAX = 0 ' .DayDecrepationTAX = 0 ' .DecrepationHUFTAX = 0 ' .DayCountTAX = 0 ' End If ' .BruttoHUF = 0 ' .BruttoHUFBallance = _BruttoHUFBallance ' End With ' If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then ' _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC ' End If ' If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then ' _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX ' End If ' _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance 'Next Case eFixedAssetsPeriod.eQuarter '_DecrepationPeriodAmountACC = _FixedAssetsCardPlanRows_Collection(0).BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyACC / 100 / 4 '_DecrepationPeriodAmountTAX = _FixedAssetsCardPlanRows_Collection(0).BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyTax / 100 / 4 'Dim _ActYear As Date = New Date(_StartDate.Year, _StartDate.Month, 1) 'Dim _DateFrom As Date = _StartDate 'Dim _DateTo As Date 'If _StartDate >= New Date(_StartDate.Year, 1, 1) And _StartDate <= New Date(_StartDate.Year, 3, 31) Then ' _DateTo = New Date(_StartDate.Year, 3, 31) 'End If 'If _StartDate >= New Date(_StartDate.Year, 4, 1) And _StartDate <= New Date(_StartDate.Year, 6, 30) Then ' _DateTo = New Date(_StartDate.Year, 6, 30) 'End If 'If _StartDate >= New Date(_StartDate.Year, 7, 1) And _StartDate <= New Date(_StartDate.Year, 9, 30) Then ' _DateTo = New Date(_StartDate.Year, 9, 30) 'End If 'If _StartDate >= New Date(_StartDate.Year, 10, 1) And _StartDate <= New Date(_StartDate.Year, 12, 31) Then ' _DateTo = New Date(_StartDate.Year, 12, 31) 'End If 'Do ' Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) ' With _FixedAssetsCardPlanRows ' .FixedAssetsCard = _FixedAssetsCard ' .RowIndex = _RowIndex ' .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal ' .DateFrom = _DateFrom ' .DateTo = _DateTo ' .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 ' .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 ' .KeyACC = _FixedAssetsCard.DCPAccounting.DecrepationPercent ' .KeyTax = _FixedAssetsCard.DCPTax.DecrepationPercent ' .SalvageHUF = _FixedAssetsCard.AmountHUFSalvage ' End With ' _RowIndex += 1 ' _ActYear = _DateTo ' _DateFrom = _DateTo.AddDays(1) ' _DateTo = (New Date(_DateFrom.Year, _DateFrom.Month, 1).AddMonths(3)).AddDays(-1) ' _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) 'Loop While _EndDate >= _ActYear 'Dim _NettoHUFBallanceACC As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceACC 'Dim _NettoHUFBallanceTAX As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceTAX 'Dim _BruttoHUFBallance As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).BruttoHUFBallance 'For ik = 1 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 ' Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) ' With _FixedAssetsCardPlanRows ' Dim _ActQuarterDayCount As Long = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 ' .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActQuarterDayCount, 0, MidpointRounding.AwayFromZero) ' .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActQuarterDayCount, 0, MidpointRounding.AwayFromZero) ' .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) ' .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) ' If _NettoHUFBallanceACC <> 0 Then ' If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then ' .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF ' .NettoHUFBallanceACC = .SalvageHUF ' _NettoHUFBallanceACC = 0 ' .DayCountACC = Math.Round(.DecrepationHUFACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) ' Else ' .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC ' End If ' Else ' .NettoHUFBallanceACC = .SalvageHUF ' .DayDecrepationACC = 0 ' .DecrepationHUFACC = 0 ' .DayCountACC = 0 ' End If ' If _NettoHUFBallanceTAX <> 0 Then ' If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then ' .DecrepationHUFTAX = _NettoHUFBallanceTAX ' .NettoHUFBallanceTAX = 0 ' _NettoHUFBallanceTAX = 0 ' .DayCountTAX = Math.Round(.DecrepationHUFTAX / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) ' Else ' .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX ' End If ' Else ' .NettoHUFBallanceTAX = 0 ' .DayDecrepationTAX = 0 ' .DecrepationHUFTAX = 0 ' .DayCountTAX = 0 ' End If ' .BruttoHUF = 0 ' .BruttoHUFBallance = _BruttoHUFBallance ' End With ' If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then ' _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC ' End If ' If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then ' _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX ' End If ' _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance 'Next Case eFixedAssetsPeriod.eYear _DecrepationPeriodAmountACC = _FixedAssetsCardPlanRows_Collection(0).BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyACC / 100 _DecrepationPeriodAmountTAX = _FixedAssetsCardPlanRows_Collection(0).BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyTax / 100 Dim _ActYear As Long = _StartDate.Year Dim _DateFrom As Date = _StartDate Dim _DateTo As Date = New Date(_ActYear + 1, 1, 1).AddDays(-1) Do Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows .FixedAssetsCard = _FixedAssetsCard .RowIndex = _RowIndex .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .DateFrom = _DateFrom .DateTo = _DateTo .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .KeyACC = _FixedAssetsCard.DCPAccounting.DecrepationPercent .KeyTax = _FixedAssetsCard.DCPTax.DecrepationPercent .SalvageHUF = _FixedAssetsCard.AmountHUFSalvage End With _RowIndex += 1 _ActYear += 1 _DateFrom = _DateTo.AddDays(1) _DateTo = New Date(_DateFrom.Year + 1, 1, 1).AddDays(-1) _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) Loop While _NewYear >= _ActYear Dim _NettoHUFBallanceACC As Double = _FixedAssetsCardPlanRows_Activated.NettoHUFBallanceACC Dim _NettoHUFBallanceTAX As Double = _FixedAssetsCardPlanRows_Activated.NettoHUFBallanceTAX Dim _BruttoHUFBallance As Double = _FixedAssetsCardPlanRows_Activated.BruttoHUFBallance For ik = 0 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows Dim _ActYearDayCount As Long = DateDiff(DateInterval.Day, New Date(.DateFrom.Year, 1, 1), .DateTo) + 1 .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActYearDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActYearDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) If _NettoHUFBallanceACC <> 0 Then If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF _NettoHUFBallanceACC = 0 .DayCountACC = Math.Round(.NettoHUFBallanceACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC End If Else .NettoHUFBallanceACC = .SalvageHUF .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .DayCountACC = 0 End If If _NettoHUFBallanceTAX <> 0 Then If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 _NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.NettoHUFBallanceACC / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX End If Else .NettoHUFBallanceTAX = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .DayCountTAX = 0 End If .BruttoHUF = 0 .BruttoHUFBallance = _BruttoHUFBallance End With If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC End If If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX End If _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance Next End Select End If _FixedAssetsCard.IsEditable = False _FixedAssetsCard.IsActivated = True _ocur.CommitChanges() Next End If End Sub #Region "FIXED ASSETS TRANSACTIONS" Private Sub Activate_FixedAssets(_ocur As Xpo.XPObjectSpace, _FixedAssetsCard As FixedAssetsCard) Dim _FixedAssetsCardPlanRows_Collection As New XPCollection(Of FixedAssetsCardPlanRows)(_ocur.Session, CriteriaOperator.Parse("FixedAssetsCard=?", _FixedAssetsCard)) If _FixedAssetsCardPlanRows_Collection.Count > 0 Then Throw New Exception(String.Format("A(z) {0} tárgyieszköz már aktiválva lett!", _FixedAssetsCard.UniqueObjects.Name)) Dim _FixedAssetsCardPlanRows_Collection_NEW As New ArrayList Dim _FixedAssetsCardPlanRows_Activated As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows_Activated .FixedAssetsCard = _FixedAssetsCard .DateFrom = _FixedAssetsCard.DateActivation .DateTo = _FixedAssetsCard.DateActivation .RowIndex = 1 .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eActivated .DateExecution = _FixedAssetsCard.DateActivation .DayCountACC = 0 .DayCountTAX = 0 .KeyACC = _FixedAssetsCard.DCPAccounting.DecrepationPercent .KeyTax = _FixedAssetsCard.DCPTax.DecrepationPercent .BruttoHUF = _FixedAssetsCard.AmountHUFBrutto .SalvageHUF = _FixedAssetsCard.AmountHUFSalvage .SalvageHUFBallance = .SalvageHUF .DayDecrepationTAX = 0 .DayDecrepationACC = 0 .BruttoHUFBallance = .BruttoHUF .DecrepationHUFACC = 0 .NettoHUFBallanceACC = .BruttoHUFBallance - .DecrepationHUFACC .DecrepationHUFTAX = 0 .NettoHUFBallanceTAX = .BruttoHUFBallance - .DecrepationHUFTAX .BruttoHUFTerminal = 0 .NettoHUFTerminalACC = 0 End With If _FixedAssetsCard.DCPAccounting.FixedAssetsSpecies = eFixedAssetsSpecies.eSmallValueOfFixedAssets Then '// Kisérték esetén !!! Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows .FixedAssetsCard = _FixedAssetsCard .RowIndex = 2 .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .DateFrom = _FixedAssetsCard.DateActivation .DateTo = _FixedAssetsCard.DateActivation .DayCountACC = 1 .DayCountTAX = 1 .KeyACC = _FixedAssetsCard.DCPAccounting.DecrepationPercent .KeyTax = _FixedAssetsCard.DCPTax.DecrepationPercent .SalvageHUF = 0 .BruttoHUFBallance = _FixedAssetsCard.AmountHUFBrutto .DecrepationHUFACC = _FixedAssetsCard.AmountHUFBrutto .NettoHUFBallanceACC = 0 .DecrepationHUFTAX = _FixedAssetsCard.AmountHUFBrutto .NettoHUFBallanceTAX = 0 End With Else _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows_Activated) 'ÉCS Dim _DecrepationPeriodAmountACC As Double = 0 Dim _DecrepationPeriodAmountTAX As Double = 0 Dim _StartDate As Date = _FixedAssetsCard.DateActivation Dim _EndDate As New Date(Now.Year, 12, 31) Dim _FullDayCount As Long = DateDiff(DateInterval.Day, _StartDate, _EndDate) Dim _RowIndex As Long = 2 Select Case _FixedAssetsCard.DCPAccounting.FixedAssetsPeriod Case eFixedAssetsPeriod.eMonth _DecrepationPeriodAmountACC = _FixedAssetsCardPlanRows_Activated.BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyACC / 100 / 12 _DecrepationPeriodAmountTAX = _FixedAssetsCardPlanRows_Activated.BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyTax / 100 / 12 Dim _ActYear As Date = New Date(_StartDate.Year, _StartDate.Month, 1) Dim _DateFrom As Date = _StartDate Dim _DateTo As Date = New Date(_ActYear.Year, _ActYear.Month + 1, 1).AddDays(-1) Do Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows .FixedAssetsCard = _FixedAssetsCard .RowIndex = _RowIndex .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .DateFrom = _DateFrom .DateTo = _DateTo .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .KeyACC = _FixedAssetsCard.DCPAccounting.DecrepationPercent .KeyTax = _FixedAssetsCard.DCPTax.DecrepationPercent .SalvageHUF = _FixedAssetsCard.AmountHUFSalvage End With _RowIndex += 1 _ActYear = _DateTo _DateFrom = _DateTo.AddDays(1) _DateTo = (New Date(_DateFrom.Year, _DateFrom.Month, 1).AddMonths(1)).AddDays(-1) _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) Loop While New Date(Now.Year, Now.Month + 1, 1).AddDays(-1) >= _ActYear Dim _NettoHUFBallanceACC As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceACC Dim _NettoHUFBallanceTAX As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceTAX Dim _BruttoHUFBallance As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).BruttoHUFBallance For ik = 1 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows Dim _ActMounthDayCount As Long = DateDiff(DateInterval.Day, New Date(.DateFrom.Year, .DateFrom.Month, 1), .DateTo) + 1 .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActMounthDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActMounthDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) If _NettoHUFBallanceACC <> 0 Then If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF _NettoHUFBallanceACC = 0 .DayCountACC = Math.Round(.DecrepationHUFACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC End If Else .NettoHUFBallanceACC = .SalvageHUF .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .DayCountACC = 0 End If If _NettoHUFBallanceTAX <> 0 Then If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 _NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.DecrepationHUFTAX / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX End If Else .NettoHUFBallanceTAX = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .DayCountTAX = 0 End If .BruttoHUF = 0 .BruttoHUFBallance = _BruttoHUFBallance End With If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC End If If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX End If _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance Next Case eFixedAssetsPeriod.eQuarter _DecrepationPeriodAmountACC = _FixedAssetsCardPlanRows_Activated.BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyACC / 100 / 4 _DecrepationPeriodAmountTAX = _FixedAssetsCardPlanRows_Activated.BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyTax / 100 / 4 Dim _ActYear As Date = New Date(_StartDate.Year, _StartDate.Month, 1) Dim _DateFrom As Date = _StartDate Dim _DateTo As Date If _StartDate >= New Date(_StartDate.Year, 1, 1) And _StartDate <= New Date(_StartDate.Year, 3, 31) Then _DateTo = New Date(_StartDate.Year, 3, 31) End If If _StartDate >= New Date(_StartDate.Year, 4, 1) And _StartDate <= New Date(_StartDate.Year, 6, 30) Then _DateTo = New Date(_StartDate.Year, 6, 30) End If If _StartDate >= New Date(_StartDate.Year, 7, 1) And _StartDate <= New Date(_StartDate.Year, 9, 30) Then _DateTo = New Date(_StartDate.Year, 9, 30) End If If _StartDate >= New Date(_StartDate.Year, 10, 1) And _StartDate <= New Date(_StartDate.Year, 12, 31) Then _DateTo = New Date(_StartDate.Year, 12, 31) End If Do Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows .FixedAssetsCard = _FixedAssetsCard .RowIndex = _RowIndex .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .DateFrom = _DateFrom .DateTo = _DateTo .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .KeyACC = _FixedAssetsCard.DCPAccounting.DecrepationPercent .KeyTax = _FixedAssetsCard.DCPTax.DecrepationPercent .SalvageHUF = _FixedAssetsCard.AmountHUFSalvage End With _RowIndex += 1 _ActYear = _DateTo _DateFrom = _DateTo.AddDays(1) _DateTo = (New Date(_DateFrom.Year, _DateFrom.Month, 1).AddMonths(3)).AddDays(-1) _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) Loop While _EndDate >= _ActYear Dim _NettoHUFBallanceACC As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceACC Dim _NettoHUFBallanceTAX As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceTAX Dim _BruttoHUFBallance As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).BruttoHUFBallance For ik = 1 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows Dim _ActQuarterDayCount As Long = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActQuarterDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActQuarterDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) If _NettoHUFBallanceACC <> 0 Then If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF _NettoHUFBallanceACC = 0 .DayCountACC = Math.Round(.DecrepationHUFACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC End If Else .NettoHUFBallanceACC = .SalvageHUF .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .DayCountACC = 0 End If If _NettoHUFBallanceTAX <> 0 Then If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 _NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.DecrepationHUFTAX / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX End If Else .NettoHUFBallanceTAX = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .DayCountTAX = 0 End If .BruttoHUF = 0 .BruttoHUFBallance = _BruttoHUFBallance End With If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC End If If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX End If _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance Next Case eFixedAssetsPeriod.eYear _DecrepationPeriodAmountACC = _FixedAssetsCardPlanRows_Activated.BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyACC / 100 _DecrepationPeriodAmountTAX = _FixedAssetsCardPlanRows_Activated.BruttoHUF * _FixedAssetsCardPlanRows_Activated.KeyTax / 100 Dim _ActYear As Long = _StartDate.Year Dim _DateFrom As Date = _StartDate Dim _DateTo As Date = New Date(_ActYear + 1, 1, 1).AddDays(-1) Do Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows .FixedAssetsCard = _FixedAssetsCard .RowIndex = _RowIndex .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .DateFrom = _DateFrom .DateTo = _DateTo .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .KeyACC = _FixedAssetsCard.DCPAccounting.DecrepationPercent .KeyTax = _FixedAssetsCard.DCPTax.DecrepationPercent .SalvageHUF = _FixedAssetsCard.AmountHUFSalvage End With _RowIndex += 1 _ActYear += 1 _DateFrom = _DateTo.AddDays(1) _DateTo = New Date(_DateFrom.Year + 1, 1, 1).AddDays(-1) _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) Loop While Now.Year >= _ActYear Dim _NettoHUFBallanceACC As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceACC Dim _NettoHUFBallanceTAX As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).NettoHUFBallanceTAX Dim _BruttoHUFBallance As Double = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(0), FixedAssetsCardPlanRows).BruttoHUFBallance For ik = 1 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows Dim _ActYearDayCount As Long = DateDiff(DateInterval.Day, New Date(.DateFrom.Year, 1, 1), .DateTo) + 1 .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActYearDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActYearDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) If _NettoHUFBallanceACC <> 0 Then If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF _NettoHUFBallanceACC = 0 .DayCountACC = Math.Round(.NettoHUFBallanceACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC End If Else .NettoHUFBallanceACC = .SalvageHUF .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .DayCountACC = 0 End If If _NettoHUFBallanceTAX <> 0 Then If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 _NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.NettoHUFBallanceACC / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX End If Else .NettoHUFBallanceTAX = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .DayCountTAX = 0 End If .BruttoHUF = 0 .BruttoHUFBallance = _BruttoHUFBallance End With If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC End If If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX End If _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance Next End Select End If _FixedAssetsCard.IsEditable = False _FixedAssetsCard.IsActivated = True _ocur.CommitChanges() End Sub Private Sub Activate_Storno_FixedAssets(_ocur As Xpo.XPObjectSpace, _FixedAssetsCard As FixedAssetsCard) If _FixedAssetsCard.IsActivated Then Dim _FixedAssetsCardPlanRows_Collection As New XPCollection(Of FixedAssetsCardPlanRows)(_ocur.Session, CriteriaOperator.Parse("FixedAssetsCard=?", _FixedAssetsCard)) If _FixedAssetsCardPlanRows_Collection.Count > 0 Then _ocur.Delete(_FixedAssetsCardPlanRows_Collection) End If _FixedAssetsCard.IsActivated = False _ocur.CommitChanges() End If End Sub Private Sub Terminate_FixedAssets(_ocur As Xpo.XPObjectSpace, _FixedAssetsCard As FixedAssetsCard, _FixedAssetsTerminatePopup As FixedAssetsTerminatePopup) Dim _FixedAssetsCardPlanRows_Collection_DEL As New ArrayList If _FixedAssetsTerminatePopup IsNot Nothing Then Select Case _FixedAssetsCard.DCPAccounting.FixedAssetsPeriod Case eFixedAssetsPeriod.eMonth Dim _TerminalStart As Date = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, _FixedAssetsTerminatePopup.DateExecution.Month, 1) Dim _TerminalEnd As Date = (New Date(_FixedAssetsTerminatePopup.DateExecution.Year, _FixedAssetsTerminatePopup.DateExecution.Month, 1).AddMonths(1)).AddDays(-1) Dim _LastRowIndex = 0 _FixedAssetsCard.FixedAssetsCardPlanRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending)) For Each _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows In _FixedAssetsCard.FixedAssetsCardPlanRows If _FixedAssetsCardPlanRows.DateFrom = _TerminalStart And _FixedAssetsCardPlanRows.DateTo = _TerminalEnd Then _LastRowIndex = _FixedAssetsCardPlanRows.RowIndex - 1 End If If _LastRowIndex <> 0 Then _FixedAssetsCardPlanRows_Collection_DEL.Add(_FixedAssetsCardPlanRows) End If Next Dim _FixedAssetsCardPlanRows_LastAvilable As FixedAssetsCardPlanRows = _ocur.FindObject(Of FixedAssetsCardPlanRows)(CriteriaOperator.Parse("FixedAssetsCard=? AND RowIndex=?", _FixedAssetsCard, _LastRowIndex)) Dim _DecrepationPeriodAmountACC As Double = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance * _FixedAssetsCardPlanRows_LastAvilable.KeyACC / 100 / 12 Dim _DecrepationPeriodAmountTAX As Double = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance * _FixedAssetsCardPlanRows_LastAvilable.KeyTax / 100 / 12 Dim _FixedAssetsCardPlanRows_NEW As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows_NEW .DateFrom = _FixedAssetsCardPlanRows_LastAvilable.DateTo.AddDays(1) .DateTo = _FixedAssetsTerminatePopup.DateExecution.AddDays(-1) Dim _ActMonthDayCount As Long = DateDiff(DateInterval.Day, .DateFrom, (.DateFrom.AddMonths(1)).AddDays(-1)) .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActMonthDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActMonthDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) .FixedAssetsCard = _FixedAssetsCard .RowIndex = _LastRowIndex + 1 .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .FixedAssetsTerminalReason = eFixedAssetsTerminalReason.eNone .SalvageHUF = _FixedAssetsCardPlanRows_LastAvilable.SalvageHUF If _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF .DayCountACC = Math.Round(.NettoHUFBallanceACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .DecrepationHUFACC End If If _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.NettoHUFBallanceACC / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX - .DecrepationHUFTAX End If .BruttoHUF = 0 .BruttoHUFBallance = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance End With Dim _FixedAssetsCardPlanRows_Terminal As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows_Terminal .FixedAssetsTerminalReason = _FixedAssetsTerminatePopup.FixedAssetsTerminalReason .FixedAssetsCard = _FixedAssetsCard .RowIndex = _FixedAssetsCardPlanRows_NEW.RowIndex + 1 .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eTerminate .FixedAssetsTerminalReason = _FixedAssetsTerminatePopup.FixedAssetsTerminalReason .DateExecution = _FixedAssetsTerminatePopup.DateExecution .DayCountTAX = 0 .KeyTax = 0 .KeyACC = 0 ' .BruttoHUF = 0 .BruttoHUFBallance = 0 .SalvageHUF = 0 .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .NettoHUFBallanceACC = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .NettoHUFBallanceTAX = 0 .BruttoHUFTerminal = _FixedAssetsCardPlanRows_NEW.BruttoHUFBallance '.BruttoHUF .NettoHUFTerminalACC = _FixedAssetsCardPlanRows_NEW.NettoHUFBallanceACC End With Case eFixedAssetsPeriod.eQuarter Dim _TerminalStart As Date Dim _TerminalEnd As Date If _FixedAssetsTerminatePopup.DateExecution >= New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 1, 1) And _FixedAssetsTerminatePopup.DateExecution <= New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 3, 31) Then _TerminalStart = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 1, 1) _TerminalEnd = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 3, 31) End If If _FixedAssetsTerminatePopup.DateExecution >= New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 4, 1) And _FixedAssetsTerminatePopup.DateExecution <= New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 6, 30) Then _TerminalStart = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 4, 1) _TerminalEnd = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 6, 30) End If If _FixedAssetsTerminatePopup.DateExecution >= New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 7, 1) And _FixedAssetsTerminatePopup.DateExecution <= New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 9, 30) Then _TerminalStart = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 7, 1) _TerminalEnd = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 9, 30) End If If _FixedAssetsTerminatePopup.DateExecution >= New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 10, 1) And _FixedAssetsTerminatePopup.DateExecution <= New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 12, 31) Then _TerminalStart = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 10, 1) _TerminalEnd = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 12, 31) End If Dim _LastRowIndex = 0 _FixedAssetsCard.FixedAssetsCardPlanRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending)) For Each _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows In _FixedAssetsCard.FixedAssetsCardPlanRows If _FixedAssetsCardPlanRows.DateFrom = _TerminalStart And _FixedAssetsCardPlanRows.DateTo = _TerminalEnd Then _LastRowIndex = _FixedAssetsCardPlanRows.RowIndex - 1 End If If _LastRowIndex <> 0 Then _FixedAssetsCardPlanRows_Collection_DEL.Add(_FixedAssetsCardPlanRows) End If Next Dim _FixedAssetsCardPlanRows_LastAvilable As FixedAssetsCardPlanRows = _ocur.FindObject(Of FixedAssetsCardPlanRows)(CriteriaOperator.Parse("FixedAssetsCard=? AND RowIndex=?", _FixedAssetsCard, _LastRowIndex)) Dim _DecrepationPeriodAmountACC As Double = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance * _FixedAssetsCardPlanRows_LastAvilable.KeyACC / 100 / 4 Dim _DecrepationPeriodAmountTAX As Double = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance * _FixedAssetsCardPlanRows_LastAvilable.KeyTax / 100 / 4 Dim _FixedAssetsCardPlanRows_NEW As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows_NEW .DateFrom = _FixedAssetsCardPlanRows_LastAvilable.DateTo.AddDays(1) .DateTo = _FixedAssetsTerminatePopup.DateExecution.AddDays(-1) Dim _ActQuarterDayCount As Long = DateDiff(DateInterval.Day, .DateFrom, (.DateFrom.AddMonths(3)).AddDays(-1)) .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActQuarterDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActQuarterDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) .FixedAssetsCard = _FixedAssetsCard .RowIndex = _LastRowIndex + 1 .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .FixedAssetsTerminalReason = eFixedAssetsTerminalReason.eNone .SalvageHUF = _FixedAssetsCardPlanRows_LastAvilable.SalvageHUF If _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF .DayCountACC = Math.Round(.NettoHUFBallanceACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .DecrepationHUFACC End If If _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.NettoHUFBallanceACC / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX - .DecrepationHUFTAX End If .BruttoHUF = 0 .BruttoHUFBallance = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance End With Dim _FixedAssetsCardPlanRows_Terminal As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows_Terminal .FixedAssetsTerminalReason = _FixedAssetsTerminatePopup.FixedAssetsTerminalReason .FixedAssetsCard = _FixedAssetsCard .RowIndex = _FixedAssetsCardPlanRows_NEW.RowIndex + 1 .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eTerminate .FixedAssetsTerminalReason = _FixedAssetsTerminatePopup.FixedAssetsTerminalReason .DateExecution = _FixedAssetsTerminatePopup.DateExecution .DayCountACC = 0 .DayCountTAX = 0 .KeyTax = 0 .KeyACC = 0 ' .BruttoHUF = 0 .BruttoHUFBallance = 0 .SalvageHUF = 0 .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .NettoHUFBallanceACC = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .NettoHUFBallanceTAX = 0 .BruttoHUFTerminal = _FixedAssetsCardPlanRows_NEW.BruttoHUFBallance '.BruttoHUF .NettoHUFTerminalACC = _FixedAssetsCardPlanRows_NEW.NettoHUFBallanceACC End With Case eFixedAssetsPeriod.eYear Dim _TerminalStart As Date = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 1, 1) Dim _TerminalEnd As Date = New Date(_FixedAssetsTerminatePopup.DateExecution.Year, 12, 31) Dim _LastRowIndex = 0 _FixedAssetsCard.FixedAssetsCardPlanRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending)) For Each _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows In _FixedAssetsCard.FixedAssetsCardPlanRows If _FixedAssetsCardPlanRows.DateFrom = _TerminalStart And _FixedAssetsCardPlanRows.DateTo = _TerminalEnd Then _LastRowIndex = _FixedAssetsCardPlanRows.RowIndex - 1 End If If _LastRowIndex <> 0 Then _FixedAssetsCardPlanRows_Collection_DEL.Add(_FixedAssetsCardPlanRows) End If Next Dim _FixedAssetsCardPlanRows_LastAvilable As FixedAssetsCardPlanRows = _ocur.FindObject(Of FixedAssetsCardPlanRows)(CriteriaOperator.Parse("FixedAssetsCard=? AND RowIndex=?", _FixedAssetsCard, _LastRowIndex)) Dim _DecrepationPeriodAmountACC As Double = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance * _FixedAssetsCardPlanRows_LastAvilable.KeyACC / 100 Dim _DecrepationPeriodAmountTAX As Double = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance * _FixedAssetsCardPlanRows_LastAvilable.KeyTax / 100 Dim _FixedAssetsCardPlanRows_NEW As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows_NEW .DateFrom = _FixedAssetsCardPlanRows_LastAvilable.DateTo.AddDays(1) .DateTo = _FixedAssetsTerminatePopup.DateExecution.AddDays(-1) Dim _ActYearDayCount As Long = DateDiff(DateInterval.Day, New Date(.DateFrom.Year, 1, 1), New Date(.DateFrom.Year, 12, 31)) .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActYearDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActYearDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) .FixedAssetsCard = _FixedAssetsCard .RowIndex = _LastRowIndex + 1 .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .FixedAssetsTerminalReason = eFixedAssetsTerminalReason.eNone .SalvageHUF = _FixedAssetsCardPlanRows_LastAvilable.SalvageHUF If _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF .DayCountACC = Math.Round(.NettoHUFBallanceACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceACC - .DecrepationHUFACC End If If _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.NettoHUFBallanceACC / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _FixedAssetsCardPlanRows_LastAvilable.NettoHUFBallanceTAX - .DecrepationHUFTAX End If .BruttoHUF = 0 .BruttoHUFBallance = _FixedAssetsCardPlanRows_LastAvilable.BruttoHUFBallance End With Dim _FixedAssetsCardPlanRows_Terminal As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows_Terminal .FixedAssetsTerminalReason = _FixedAssetsTerminatePopup.FixedAssetsTerminalReason .FixedAssetsCard = _FixedAssetsCard .RowIndex = _FixedAssetsCardPlanRows_NEW.RowIndex + 1 .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eTerminate .FixedAssetsTerminalReason = _FixedAssetsTerminatePopup.FixedAssetsTerminalReason .DateExecution = _FixedAssetsTerminatePopup.DateExecution .DayCountACC = 0 .DayCountTAX = 0 .KeyTax = 0 .KeyACC = 0 ' .BruttoHUF = 0 .BruttoHUFBallance = 0 .SalvageHUF = 0 .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .NettoHUFBallanceACC = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .NettoHUFBallanceTAX = 0 .BruttoHUFTerminal = _FixedAssetsCardPlanRows_NEW.BruttoHUFBallance '.BruttoHUF .NettoHUFTerminalACC = _FixedAssetsCardPlanRows_NEW.NettoHUFBallanceACC End With End Select End If _ocur.Delete(_FixedAssetsCardPlanRows_Collection_DEL) _ocur.CommitChanges() End Sub Private Sub Terminate_Storno_FixedAssets(_ocur As Xpo.XPObjectSpace, _FixedAssetsCard As FixedAssetsCard) Dim _FixedAssetsCardPlanRows_Collection_DEL As New ArrayList _FixedAssetsCard.FixedAssetsCardPlanRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending)) Select Case _FixedAssetsCard.DCPAccounting.FixedAssetsPeriod Case eFixedAssetsPeriod.eMonth Dim _FixedAssetsCardPlanRows_Last As FixedAssetsCardPlanRows = _FixedAssetsCard.FixedAssetsCardPlanRows(_FixedAssetsCard.FixedAssetsCardPlanRows.Count - 2) Dim _FixedAssetsCardPlanRows_Collection_NEW As New ArrayList Dim _DecrepationPeriodAmountACC As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance * _FixedAssetsCard.FixedAssetsCardPlanRows(0).KeyACC / 100 / 12 Dim _DecrepationPeriodAmountTAX As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance * _FixedAssetsCard.FixedAssetsCardPlanRows(0).KeyTax / 100 / 12 Dim _StartDate As Date = _FixedAssetsCardPlanRows_Last.DateFrom Dim _EndDate As New Date(Now.Year, 12, 31) Dim _RowIndex As Long = _FixedAssetsCardPlanRows_Last.RowIndex Dim _ActYear As Date = New Date(_StartDate.Year, _StartDate.Month, 1) Dim _DateFrom As Date = _StartDate Dim _DateTo As Date = New Date(_ActYear.Year, _ActYear.Month + 1, 1).AddDays(-1) Do Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows .FixedAssetsCard = _FixedAssetsCard .RowIndex = _RowIndex .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .DateFrom = _DateFrom .DateTo = _DateTo .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .KeyACC = _FixedAssetsCardPlanRows_Last.KeyACC .KeyTax = _FixedAssetsCardPlanRows_Last.KeyTax .SalvageHUF = _FixedAssetsCardPlanRows_Last.SalvageHUF End With _RowIndex += 1 _ActYear = _DateTo _DateFrom = _DateTo.AddDays(1) _DateTo = (New Date(_DateFrom.Year, _DateFrom.Month, 1).AddMonths(1)).AddDays(-1) _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) Loop While _EndDate >= _ActYear Dim _NettoHUFBallanceACC As Double = _FixedAssetsCardPlanRows_Last.NettoHUFBallanceACC + _FixedAssetsCardPlanRows_Last.DecrepationHUFACC Dim _NettoHUFBallanceTAX As Double = _FixedAssetsCardPlanRows_Last.NettoHUFBallanceTAX + _FixedAssetsCardPlanRows_Last.DecrepationHUFTAX Dim _BruttoHUFBallance As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance For ik = 0 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows Dim _ActMounthDayCount As Long = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActMounthDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActMounthDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) If _NettoHUFBallanceACC <> 0 Then If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF _NettoHUFBallanceACC = 0 .DayCountACC = Math.Round(.DecrepationHUFACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC End If Else .NettoHUFBallanceACC = .SalvageHUF .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .DayCountACC = 0 End If If _NettoHUFBallanceTAX <> 0 Then If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 _NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.DecrepationHUFTAX / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX End If Else .NettoHUFBallanceTAX = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .DayCountTAX = 0 End If .BruttoHUF = 0 .BruttoHUFBallance = _BruttoHUFBallance End With If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC End If If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX End If _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance Next Case eFixedAssetsPeriod.eQuarter Dim _FixedAssetsCardPlanRows_Last As FixedAssetsCardPlanRows = _FixedAssetsCard.FixedAssetsCardPlanRows(_FixedAssetsCard.FixedAssetsCardPlanRows.Count - 2) Dim _FixedAssetsCardPlanRows_Collection_NEW As New ArrayList Dim _DecrepationPeriodAmountACC As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance * _FixedAssetsCard.FixedAssetsCardPlanRows(0).KeyACC / 100 / 4 Dim _DecrepationPeriodAmountTAX As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance * _FixedAssetsCard.FixedAssetsCardPlanRows(0).KeyTax / 100 / 4 Dim _StartDate As Date = _FixedAssetsCardPlanRows_Last.DateFrom Dim _EndDate As New Date(Now.Year, 12, 31) Dim _RowIndex As Long = _FixedAssetsCardPlanRows_Last.RowIndex Dim _ActYear As Date = New Date(_StartDate.Year, _StartDate.Month, 1) Dim _DateFrom As Date = _StartDate Dim _DateTo As Date = (New Date(_ActYear.Year, _ActYear.Month, 1).AddMonths(3)).AddDays(-1) Do Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows .FixedAssetsCard = _FixedAssetsCard .RowIndex = _RowIndex .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .DateFrom = _DateFrom .DateTo = _DateTo .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .KeyACC = _FixedAssetsCardPlanRows_Last.KeyACC .KeyTax = _FixedAssetsCardPlanRows_Last.KeyTax .SalvageHUF = _FixedAssetsCardPlanRows_Last.SalvageHUF End With _RowIndex += 1 _ActYear = _DateTo _DateFrom = _DateTo.AddDays(1) _DateTo = (New Date(_DateFrom.Year, _DateFrom.Month, 1).AddMonths(3)).AddDays(-1) _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) Loop While _EndDate >= _ActYear Dim _NettoHUFBallanceACC As Double = _FixedAssetsCardPlanRows_Last.NettoHUFBallanceACC + _FixedAssetsCardPlanRows_Last.DecrepationHUFACC Dim _NettoHUFBallanceTAX As Double = _FixedAssetsCardPlanRows_Last.NettoHUFBallanceTAX + _FixedAssetsCardPlanRows_Last.DecrepationHUFTAX Dim _BruttoHUFBallance As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance For ik = 0 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows Dim _ActQuarterDayCount As Long = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActQuarterDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActQuarterDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) If _NettoHUFBallanceACC <> 0 Then If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF _NettoHUFBallanceACC = 0 .DayCountACC = Math.Round(.DecrepationHUFACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC End If Else .NettoHUFBallanceACC = .SalvageHUF .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .DayCountACC = 0 End If If _NettoHUFBallanceTAX <> 0 Then If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 _NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.DecrepationHUFTAX / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX End If Else .NettoHUFBallanceTAX = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .DayCountTAX = 0 End If .BruttoHUF = 0 .BruttoHUFBallance = _BruttoHUFBallance End With If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC End If If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX End If _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance Next Case eFixedAssetsPeriod.eYear Dim _FixedAssetsCardPlanRows_Last As FixedAssetsCardPlanRows = _FixedAssetsCard.FixedAssetsCardPlanRows(_FixedAssetsCard.FixedAssetsCardPlanRows.Count - 2) Dim _StartDate As Date = _FixedAssetsCardPlanRows_Last.DateFrom Dim _EndDate As New Date(Now.Year, 12, 31) Dim _FullDayCount As Long = DateDiff(DateInterval.Day, _StartDate, _EndDate) Dim _RowIndex As Long = _FixedAssetsCardPlanRows_Last.RowIndex Dim _DecrepationPeriodAmountACC As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance * _FixedAssetsCard.FixedAssetsCardPlanRows(0).KeyACC / 100 Dim _DecrepationPeriodAmountTAX As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance * _FixedAssetsCard.FixedAssetsCardPlanRows(0).KeyTax / 100 Dim _ActYear As Long = _StartDate.Year Dim _DateFrom As Date = _StartDate Dim _DateTo As Date = New Date(_ActYear + 1, 1, 1).AddDays(-1) Dim _FixedAssetsCardPlanRows_Collection_NEW As New ArrayList Do Dim _FixedAssetsCardPlanRows As New FixedAssetsCardPlanRows(_ocur.Session) With _FixedAssetsCardPlanRows .FixedAssetsCard = _FixedAssetsCard .RowIndex = _RowIndex .FixedAssetsCardPlanRowsType = eFixedAssetsCardPlanRowsType.eNormal .DateFrom = _DateFrom .DateTo = _DateTo .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) + 1 .KeyACC = _FixedAssetsCard.FixedAssetsCardPlanRows(0).KeyACC .KeyTax = _FixedAssetsCard.FixedAssetsCardPlanRows(0).KeyTax .SalvageHUF = _FixedAssetsCardPlanRows_Last.SalvageHUF End With _RowIndex += 1 _ActYear += 1 _DateFrom = _DateTo.AddDays(1) _DateTo = New Date(_DateFrom.Year + 1, 1, 1).AddDays(-1) _FixedAssetsCardPlanRows_Collection_NEW.Add(_FixedAssetsCardPlanRows) Loop While Now.Year >= _ActYear Dim _NettoHUFBallanceACC As Double = _FixedAssetsCardPlanRows_Last.NettoHUFBallanceACC + _FixedAssetsCardPlanRows_Last.DecrepationHUFACC Dim _NettoHUFBallanceTAX As Double = _FixedAssetsCardPlanRows_Last.NettoHUFBallanceTAX + _FixedAssetsCardPlanRows_Last.DecrepationHUFTAX Dim _BruttoHUFBallance As Double = _FixedAssetsCardPlanRows_Last.BruttoHUFBallance For ik = 0 To _FixedAssetsCardPlanRows_Collection_NEW.Count - 1 Dim _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_Collection_NEW(ik), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows Dim _ActYearDayCount As Long = DateDiff(DateInterval.Day, New Date(.DateFrom.Year, 1, 1), New Date(.DateFrom.Year, 12, 31)) .DecrepationHUFACC = Math.Round(_DecrepationPeriodAmountACC * .DayCountACC / _ActYearDayCount, 0, MidpointRounding.AwayFromZero) .DecrepationHUFTAX = Math.Round(_DecrepationPeriodAmountTAX * .DayCountTAX / _ActYearDayCount, 0, MidpointRounding.AwayFromZero) .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) If _NettoHUFBallanceACC <> 0 Then If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF _NettoHUFBallanceACC = 0 .DayCountACC = Math.Round(.NettoHUFBallanceACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC End If Else .NettoHUFBallanceACC = .SalvageHUF .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .DayCountACC = 0 End If If _NettoHUFBallanceTAX <> 0 Then If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 _NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.NettoHUFBallanceACC / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX End If Else .NettoHUFBallanceTAX = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .DayCountTAX = 0 End If .BruttoHUF = 0 .BruttoHUFBallance = _BruttoHUFBallance End With If _FixedAssetsCardPlanRows.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then _NettoHUFBallanceACC = _FixedAssetsCardPlanRows.NettoHUFBallanceACC End If If _FixedAssetsCardPlanRows.NettoHUFBallanceTAX <> 0 Then _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows.NettoHUFBallanceTAX End If _BruttoHUFBallance = _FixedAssetsCardPlanRows.BruttoHUFBallance Next End Select _FixedAssetsCardPlanRows_Collection_DEL.Add(_FixedAssetsCard.FixedAssetsCardPlanRows(_FixedAssetsCard.FixedAssetsCardPlanRows.Count - 1)) _FixedAssetsCardPlanRows_Collection_DEL.Add(_FixedAssetsCard.FixedAssetsCardPlanRows(_FixedAssetsCard.FixedAssetsCardPlanRows.Count - 2)) _ocur.Delete(_FixedAssetsCardPlanRows_Collection_DEL) _ocur.CommitChanges() End Sub Private Sub RegenerateReceivedFromAnotherSystem(_ocur As Xpo.XPObjectSpace, _FixedAssetsCard As FixedAssetsCard) Dim _FixedAssetsCardPlanRows_Collection As New XPCollection(Of FixedAssetsCardPlanRows)(_ocur.Session, CriteriaOperator.Parse("FixedAssetsCard=?", _FixedAssetsCard)) _FixedAssetsCardPlanRows_Collection.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending)) _FixedAssetsCardPlanRows_Collection(0).IsModified = True Dim _FixedAssetsCardPlanRows_DEL_Collection As New ArrayList Dim _FixedAssetsCardPlanRows_NEW_Collection As New ArrayList Dim _LastDate As Date = _FixedAssetsCard.DateOpen.AddDays(-1) For Each _FixedAssetsCardPlanRows As FixedAssetsCardPlanRows In _FixedAssetsCardPlanRows_Collection If _FixedAssetsCardPlanRows.FixedAssetsCardPlanRowsType <> eFixedAssetsCardPlanRowsType.eActivated Then If _FixedAssetsCardPlanRows.DateTo >= _LastDate Then _FixedAssetsCardPlanRows_NEW_Collection.Add(_FixedAssetsCardPlanRows) Else _FixedAssetsCardPlanRows_DEL_Collection.Add(_FixedAssetsCardPlanRows) End If End If Next Dim _FixedAssetsCardPlanRows_First As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_NEW_Collection(0), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows_First .DateFrom = _FixedAssetsCard.DateActivation .DayCountACC = DateDiff(DateInterval.Day, .DateFrom, .DateTo) .DayCountTAX = DateDiff(DateInterval.Day, .DateFrom, .DateTo) .NettoHUFBallanceACC = _FixedAssetsCard.AmountHUFOpen .NettoHUFBallanceTAX = _FixedAssetsCard.AmountHUFOpen .DecrepationHUFACC = _FixedAssetsCard.AmountHUFBrutto - _FixedAssetsCard.AmountHUFOpen .DecrepationHUFTAX = _FixedAssetsCard.AmountHUFBrutto - _FixedAssetsCard.AmountHUFOpen .DayDecrepationACC = Math.Round(.DecrepationHUFACC / .DayCountACC, 2, MidpointRounding.AwayFromZero) .DayDecrepationTAX = Math.Round(.DecrepationHUFTAX / .DayCountTAX, 2, MidpointRounding.AwayFromZero) .RowIndex = 2 .IsModified = True End With Dim _ActRowIndex As Long = _FixedAssetsCardPlanRows_First.RowIndex Dim _NettoHUFBallanceACC As Double = _FixedAssetsCardPlanRows_First.NettoHUFBallanceACC Dim _NettoHUFBallanceTAX As Double = _FixedAssetsCardPlanRows_First.NettoHUFBallanceTAX For ik = 1 To _FixedAssetsCardPlanRows_NEW_Collection.Count - 1 Dim _FixedAssetsCardPlanRows_Act As FixedAssetsCardPlanRows = TryCast(_FixedAssetsCardPlanRows_NEW_Collection(ik), FixedAssetsCardPlanRows) With _FixedAssetsCardPlanRows_Act .RowIndex = ik + 2 If _NettoHUFBallanceACC <> 0 Then If _NettoHUFBallanceACC - .DecrepationHUFACC <= .SalvageHUF Then .DecrepationHUFACC = _NettoHUFBallanceACC - .SalvageHUF .NettoHUFBallanceACC = .SalvageHUF _NettoHUFBallanceACC = 0 .DayCountACC = Math.Round(.DecrepationHUFACC / .DayDecrepationACC, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceACC = _NettoHUFBallanceACC - .DecrepationHUFACC End If Else .NettoHUFBallanceACC = .SalvageHUF .DayDecrepationACC = 0 .DecrepationHUFACC = 0 .DayCountACC = 0 End If If _NettoHUFBallanceTAX <> 0 Then If _NettoHUFBallanceTAX - .DecrepationHUFTAX <= 0 Then .DecrepationHUFTAX = _NettoHUFBallanceTAX .NettoHUFBallanceTAX = 0 _NettoHUFBallanceTAX = 0 .DayCountTAX = Math.Round(.DecrepationHUFTAX / .DayDecrepationTAX, 0, MidpointRounding.AwayFromZero) Else .NettoHUFBallanceTAX = _NettoHUFBallanceTAX - .DecrepationHUFTAX End If Else .NettoHUFBallanceTAX = 0 .DayDecrepationTAX = 0 .DecrepationHUFTAX = 0 .DayCountTAX = 0 End If End With If _FixedAssetsCardPlanRows_Act.NettoHUFBallanceACC <> 0 And _NettoHUFBallanceACC <> 0 Then _NettoHUFBallanceACC = _FixedAssetsCardPlanRows_Act.NettoHUFBallanceACC End If If _FixedAssetsCardPlanRows_Act.NettoHUFBallanceTAX <> 0 Then _NettoHUFBallanceTAX = _FixedAssetsCardPlanRows_Act.NettoHUFBallanceTAX End If Next _ocur.Delete(_FixedAssetsCardPlanRows_DEL_Collection) _ocur.CommitChanges() End Sub Private Sub FixedAssetsCard_OpenYear_PopUp_AcceptAction_Executing(sender As Object, e As CancelEventArgs) Dim _ActYear As Long = GetSQLTime(TryCast(View.ObjectSpace, Xpo.XPObjectSpace).Session).Year Dim _FixedAssetsCard_OpenYear_PopUp As FixedAssetsCard_OpenYear_PopUp = TryCast(View.SelectedObjects(0), FixedAssetsCard_OpenYear_PopUp) If _FixedAssetsCard_OpenYear_PopUp IsNot Nothing Then If _FixedAssetsCard_OpenYear_PopUp.TargetYear <= _ActYear Then e.Cancel = True End If End Sub #End Region End Class