Files
Nuvolar/Nuvolar.Module/BusinessObjects/Financial/FinancialObjects/FinancialTransactions/AssetsHandling/AssetsPCIVC.vb
T
ivanszabo 9cca882b34 Átállás 17.2.3-ra
Related Work Items: #123
2017-12-02 16:09:26 +01:00

1435 lines
85 KiB
VB.net

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 DevExpress.ExpressApp.SystemModule
Imports System.Linq
Imports DevExpress.ExpressApp.Editors
Imports DevExpress.Persistent.BaseImpl
Imports DevExpress.ExpressApp.Utils
Public Class AssetsPCIVC
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 selection As ArrayList
Private _ActiveForm As Boolean
Public Sub New()
MyBase.New()
InitializeComponent()
RegisterActions(components)
selection = New ArrayList
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aCreateLateCharges.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aCountLateCharges.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aNoAssetsHandling.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aViewLateCharges.Active.SetItemValue("", False)
If View.Id Like "AssetsPCIHeader_AssetsPCIRows_ListView*" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)?.Active.SetItemValue("", False)
Frame.GetController(Of ListViewProcessCurrentObjectController)?.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aViewLateCharges.Active.SetItemValue("", True)
End If
If View.Id = "PCIGroup_ListView_DelayedPay" Then
Frame.GetController(Of AssetsPCIVC).aCreateLateCharges.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aViewLateCharges.Active.SetItemValue("", True)
End If
If View.Id = "AssetsHandling_ListView_Active" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)?.Active.SetItemValue("", False)
If TryCast(SecuritySystem.CurrentUser, User).UserName <> "SysAdmin" Then Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)?.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aCreateLateCharges.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aCreateLateCharges.Enabled.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aCountLateCharges.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aNoAssetsHandling.Active.SetItemValue("", True)
AddHandler View.SelectionChanged, AddressOf view_SelectionChanged
End If
If View.Id = "AssetsHandling_ListView_All" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)?.Active.SetItemValue("", False)
If TryCast(SecuritySystem.CurrentUser, User).UserName <> "SysAdmin" Then Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)?.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aCreateLateCharges.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aCreateLateCharges.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aCountLateCharges.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aNoAssetsHandling.Active.SetItemValue("", True)
AddHandler View.SelectionChanged, AddressOf view_SelectionChanged
End If
End Sub
Protected Overrides Sub OnDeactivated()
MyBase.OnDeactivated()
Frame.GetController(Of DevExpress.ExpressApp.Validation.PersistenceValidationController)?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Active.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aCreateLateCharges.Active.SetItemValue("", False)
If View.Id Like "AssetsPCIHeader_AssetsPCIRows_ListView*" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)?.Active.SetItemValue("", True)
Frame.GetController(Of ListViewProcessCurrentObjectController)?.Active.SetItemValue("", True)
End If
If View.Id = "AssetsHandling_ListView_Active" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)?.Active.SetItemValue("", True)
RemoveHandler View.SelectionChanged, AddressOf view_SelectionChanged
End If
If View.Id = "AssetsHandling_ListView_All" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)?.Active.SetItemValue("", True)
RemoveHandler View.SelectionChanged, AddressOf view_SelectionChanged
End If
End Sub
Private Sub view_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim _AssetsHandling As AssetsHandling = Nothing
If View.SelectedObjects.Count > 0 Then
_AssetsHandling = TryCast(View.SelectedObjects(0), AssetsHandling)
Else
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Enabled.SetItemValue("", False)
End If
If _AssetsHandling IsNot Nothing Then
If _AssetsHandling.IsActive = True Then
If _AssetsHandling.QueueIndex = 0 Then
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Enabled.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Enabled.SetItemValue("", False)
End If
If _AssetsHandling.QueueIndex = 1 Then
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Enabled.SetItemValue("", True)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Enabled.SetItemValue("", False)
End If
If _AssetsHandling.QueueIndex = 2 Then
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Enabled.SetItemValue("", True)
End If
Else
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling2.Enabled.SetItemValue("", False)
Frame.GetController(Of AssetsPCIVC).aPrintAssetsHandling3.Enabled.SetItemValue("", False)
End If
End If
End Sub
Private Sub aPrintAssetsHandling_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aPrintAssetsHandling.Execute
'-- Ez egy beégetés !!
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ReportData As ReportData
Dim _AssetsHandlingParameter As AssetsHandlingParameter
Dim _AssetsHandling As AssetsHandling = TryCast(View.SelectedObjects(0), AssetsHandling)
If _AssetsHandling Is Nothing Then Exit Sub
_AssetsHandlingParameter = _ocur.FindObject(Of AssetsHandlingParameter)(CriteriaOperator.Parse("CustomersFrom=?", _AssetsHandling.CustomersFrom))
If _AssetsHandlingParameter IsNot Nothing Then
_ReportData = _AssetsHandlingParameter.ReportData
If _ReportData IsNot Nothing Then
Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("QueueIndex=0 and IsActive=True and NoAssetsHandling=False and CustomersFrom=?", _AssetsHandling.CustomersFrom), True)
Else
Throw New UserFriendlyException("Nincs beállítva a fizetési felszólítási nyomtatvány.")
End If
End If
End Sub
Private Sub aPrintAssetsHandling2_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aPrintAssetsHandling2.Execute
'-- Ez egy beégetés !!
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ReportData As ReportData
Dim _AssetsHandlingParameter As AssetsHandlingParameter
Dim _AssetsHandling As AssetsHandling = TryCast(View.SelectedObjects(0), AssetsHandling)
If _AssetsHandling Is Nothing Then Exit Sub
_AssetsHandlingParameter = _ocur.FindObject(Of AssetsHandlingParameter)(CriteriaOperator.Parse("CustomersFrom=?", _AssetsHandling.CustomersFrom))
If _AssetsHandlingParameter IsNot Nothing Then
_ReportData = _AssetsHandlingParameter.ReportData2
If _ReportData IsNot Nothing Then
Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("QueueIndex=1 and IsActive=True and NoAssetsHandling=False and CustomersFrom=?", _AssetsHandling.CustomersFrom), True)
Else
Throw New UserFriendlyException("Nincs beállítva a fizetési felszólítási nyomtatvány.")
End If
End If
End Sub
Private Sub aPrintAssetsHandling3_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aPrintAssetsHandling3.Execute
'-- Ez egy beégetés !!
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ReportData As ReportData
Dim _AssetsHandlingParameter As AssetsHandlingParameter
Dim _AssetsHandling As AssetsHandling = TryCast(View.SelectedObjects(0), AssetsHandling)
If _AssetsHandling Is Nothing Then Exit Sub
_AssetsHandlingParameter = _ocur.FindObject(Of AssetsHandlingParameter)(CriteriaOperator.Parse("CustomersFrom=?", _AssetsHandling.CustomersFrom))
If _AssetsHandlingParameter IsNot Nothing Then
_ReportData = _AssetsHandlingParameter.ReportData3
If _ReportData IsNot Nothing Then
Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("QueueIndex=2 and IsActive=True and NoAssetsHandling=False and CustomersFrom=?", _AssetsHandling.CustomersFrom), True)
Else
Throw New UserFriendlyException("Nincs beállítva a fizetési felszólítási nyomtatvány.")
End If
End If
End Sub
Private Sub aGenerateAssetsReport_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aGenerateAssetsReport.Execute
'-- Az adott záródátumra vonatkozó partner connection infot adja meg
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow As UnitOfWork = New UnitOfWork(_ocur.Session.DataLayer)
Dim _AssetsPCIRows As AssetsPCIRows
Dim _AssetsPCIHeader As AssetsPCIHeader = _uow.GetObjectByKey(Of AssetsPCIHeader) _
(TryCast(View.SelectedObjects(0), AssetsPCIHeader).Oid)
If _AssetsPCIHeader Is Nothing Then Exit Sub
_AssetsPCIHeader.Save()
Dim _AssetsPCIRows_Collection As New XPCollection(Of AssetsPCIRows) _
(_uow, CriteriaOperator.Parse("AssetsPCIHeader=?", _AssetsPCIHeader))
_uow.Delete(_AssetsPCIRows_Collection)
_uow.CommitChanges()
Try
'-- Lekérdezés, adott teljesítési dátumig történõ lekérdezés LINQ paranccsal
Dim PCI As New XPQuery(Of PCIDetail)(_uow)
Dim query = From _PCI In PCI
Where _PCI.DateExecution.Date <= _AssetsPCIHeader.DateClose.Date And
_PCI.Customers IsNot Nothing And
String.IsNullOrEmpty(_PCI.ConnectInfo) = False And
_PCI.PartnerType = ePartnerType.eReceivables And
_PCI.Customers.IsAssetsHandling = True And
_PCI.DatePayment_Account.Date <= _AssetsPCIHeader.DateClose.Date And
String.IsNullOrEmpty(_PCI.DateExecution_Account) = False
Group _PCI By _PCI.CustomersFrom,
_PCI.Customers,
_PCI.PartnerType,
_PCI.CurrencyName_Account,
_PCI.ConnectInfo Into g = Group
Select New With {Key .CustomersFrom = CustomersFrom,
Key .Customers = Customers,
Key .PartnerType = PartnerType,
Key .ConnectInfo = ConnectInfo,
Key .CurrencyName_Account = CurrencyName_Account,
Key .BallanceHUF = g.Sum(Function(inv) inv.BallanceHUF),
Key .BallanceDEV = g.Sum(Function(inv) inv.BallanceDEV),
Key .AmountHUF_Account = g.Sum(Function(inv) inv.AmountHUF_Account),
Key .AmountDEV_Account = g.Sum(Function(inv) inv.AmountDEV_Account),
Key .DatePayment = g.Max(Function(inv) inv.DatePayment_Account),
Key .DelayedDay = g.Max(Function(inv) inv.DelayedDay),
Key .DateExecution = g.Max(Function(inv) inv.DateExecution),
Key .DateCreated = g.Max(Function(inv) inv.DateCreated)}
RaiseEvent InitWork(1, 1, query.Count)
For Each item In query
For Each _AssetsPCICustomersFrom As AssetsPCICustomersFrom In _AssetsPCIHeader.AssetsPCICustomersFrom
If _AssetsPCICustomersFrom.CustomersFrom.Oid = item.CustomersFrom.Oid Then
If item.CurrencyName_Account IsNot Nothing Then
If Math.Round(item.BallanceHUF, 0, MidpointRounding.AwayFromZero) > 0 And item.CurrencyName_Account.ShortName = "HUF" Then
If _AssetsPCIHeader.QueryCustomersFrom = True Then
_AssetsPCIRows = New AssetsPCIRows(_uow)
_AssetsPCIRows.AssetsPCIHeader = _AssetsPCIHeader
_AssetsPCIRows.CustomersFrom = item.CustomersFrom
_AssetsPCIRows.Customers = item.Customers
_AssetsPCIRows.DateExecution = item.DateExecution
_AssetsPCIRows.DateCreated = item.DateCreated
_AssetsPCIRows.DatePayment = item.DatePayment
_AssetsPCIRows.BallanceDEV = item.BallanceDEV
_AssetsPCIRows.BallanceHUF = item.BallanceHUF
_AssetsPCIRows.ConnectInfo = item.ConnectInfo
_AssetsPCIRows.CurrencyName = item.CurrencyName_Account
_AssetsPCIRows.DatePayment = item.DatePayment
_AssetsPCIRows.DelayedDay = item.DelayedDay
_AssetsPCIRows.PartnerType = item.PartnerType
_AssetsPCIRows.AmountDEV_Account = item.AmountDEV_Account
_AssetsPCIRows.AmountHUF_Account = item.AmountHUF_Account
Else
If TryCast(item.Customers, CustomersFrom) Is Nothing Then
_AssetsPCIRows = New AssetsPCIRows(_uow)
_AssetsPCIRows.AssetsPCIHeader = _AssetsPCIHeader
_AssetsPCIRows.CustomersFrom = item.CustomersFrom
_AssetsPCIRows.Customers = item.Customers
_AssetsPCIRows.DateExecution = item.DateExecution
_AssetsPCIRows.DateCreated = item.DateCreated
_AssetsPCIRows.DatePayment = item.DatePayment
_AssetsPCIRows.BallanceDEV = item.BallanceDEV
_AssetsPCIRows.BallanceHUF = item.BallanceHUF
_AssetsPCIRows.ConnectInfo = item.ConnectInfo
_AssetsPCIRows.CurrencyName = item.CurrencyName_Account
_AssetsPCIRows.DatePayment = item.DatePayment
_AssetsPCIRows.DelayedDay = item.DelayedDay
_AssetsPCIRows.PartnerType = item.PartnerType
_AssetsPCIRows.AmountDEV_Account = item.AmountDEV_Account
_AssetsPCIRows.AmountHUF_Account = item.AmountHUF_Account
End If
End If
End If
If Math.Round(item.BallanceDEV, 2, MidpointRounding.AwayFromZero) > 0 And item.CurrencyName_Account.ShortName <> "HUF" Then
If TryCast(item.Customers, CustomersFrom) Is Nothing Then
_AssetsPCIRows = New AssetsPCIRows(_uow)
_AssetsPCIRows.AssetsPCIHeader = _AssetsPCIHeader
_AssetsPCIRows.CustomersFrom = item.CustomersFrom
_AssetsPCIRows.Customers = item.Customers
_AssetsPCIRows.DateExecution = item.DateExecution
_AssetsPCIRows.DateCreated = item.DateCreated
_AssetsPCIRows.DatePayment = item.DatePayment
_AssetsPCIRows.BallanceDEV = item.BallanceDEV
_AssetsPCIRows.BallanceHUF = item.BallanceHUF
_AssetsPCIRows.ConnectInfo = item.ConnectInfo
_AssetsPCIRows.CurrencyName = item.CurrencyName_Account
_AssetsPCIRows.DatePayment = item.DatePayment
_AssetsPCIRows.DelayedDay = item.DelayedDay
_AssetsPCIRows.PartnerType = item.PartnerType
_AssetsPCIRows.AmountDEV_Account = item.AmountDEV_Account
_AssetsPCIRows.AmountHUF_Account = item.AmountHUF_Account
Else
If TryCast(item.Customers, CustomersFrom) IsNot Nothing Then
_AssetsPCIRows = New AssetsPCIRows(_uow)
_AssetsPCIRows.AssetsPCIHeader = _AssetsPCIHeader
_AssetsPCIRows.CustomersFrom = item.CustomersFrom
_AssetsPCIRows.Customers = item.Customers
_AssetsPCIRows.DateExecution = item.DateExecution
_AssetsPCIRows.DateCreated = item.DateCreated
_AssetsPCIRows.DatePayment = item.DatePayment
_AssetsPCIRows.BallanceDEV = item.BallanceDEV
_AssetsPCIRows.BallanceHUF = item.BallanceHUF
_AssetsPCIRows.ConnectInfo = item.ConnectInfo
_AssetsPCIRows.CurrencyName = item.CurrencyName_Account
_AssetsPCIRows.DatePayment = item.DatePayment
_AssetsPCIRows.DelayedDay = item.DelayedDay
_AssetsPCIRows.PartnerType = item.PartnerType
_AssetsPCIRows.AmountDEV_Account = item.AmountDEV_Account
_AssetsPCIRows.AmountHUF_Account = item.AmountHUF_Account
End If
End If
End If
End If
End If
Next
RaiseEvent DoWork()
Next
_uow.CommitChanges()
RaiseEvent FinalWork()
Catch ex As Exception
RaiseEvent FinalWork()
MsgBox(ex.Message)
End Try
If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
End Sub
Private Sub aViewAttachments_AssetsHandling_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewAttachments_AssetsHandling.Execute
Dim _AssetsPCIRows As AssetsPCIRows
Dim _CustomersFrom As CustomersFrom
Dim _Customers As Customers
Dim _DocumentNumber As String
If View.SelectedObjects.Count > 0 Then
_AssetsPCIRows = TryCast(View.SelectedObjects(0), AssetsPCIRows)
_CustomersFrom = _AssetsPCIRows.CustomersFrom
_Customers = _AssetsPCIRows.Customers
_DocumentNumber = _AssetsPCIRows.ConnectInfo
ViewAttachments.ViewAttachments(View.ObjectSpace, Frame, _CustomersFrom, _Customers, _DocumentNumber, "")
Else
Throw New UserFriendlyException("Nincs kiválasztott elem.")
End If
End Sub
Private Sub aCreateAssetsHandling_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCreateAssetsHandling.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow As New UnitOfWork(_ocur.Session.DataLayer)
Dim _AssetsPCIHeader As AssetsPCIHeader = TryCast(View.SelectedObjects(0), AssetsPCIHeader)
Dim _AssetsPCIRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("AssetsPCIRows")
Dim _AssetsPCIRows As AssetsPCIRows
Dim _AssetsHandling As AssetsHandling
Dim _AssetsHandling_Last As AssetsHandling
Dim _AssetsHandling_Last_Collection As XPCollection(Of AssetsHandling)
Dim _AssetsHandlingParameter As AssetsHandlingParameter
Dim _InvoiceHeader As InvoiceHeader
Dim I As Long = 0
Dim _QueueIndex As Long = 1
Dim _SysDate As Date = GetSQLTime(_ocur.Session).Date
Dim _Customers As Customers
Dim _CustomersFrom As CustomersFrom
'Dim _AssetsHandling_IsActiveCollection As New XPCollection(Of AssetsHandling)(_uow, CriteriaOperator.Parse("CustomersFrom.Oid=? And IsActive=True ", _AssetsPCIHeader.CustomersFrom.Oid))
'
'RaiseEvent InitWork(1, 1, _AssetsHandling_IsActiveCollection.Count)
'For Each _AssetsHandling In _AssetsHandling_IsActiveCollection
' I += 1
' _AssetsHandling.IsActive = False
' RaiseEvent DoWork()
' If I Mod 1000 = 0 Then _uow.CommitChanges()
'Next
'_uow.CommitChanges()
'RaiseEvent FinalWork
RaiseEvent InitWork(1, 1, _AssetsPCIRows_ListEditor.ListView.CollectionSource.List.Count)
For Each _AssetsPCIRows In _AssetsPCIRows_ListEditor.ListView.CollectionSource.List
I += 1
_QueueIndex = 0
_Customers = _uow.GetObjectByKey(Of Customers)(_AssetsPCIRows.Customers.Oid)
_CustomersFrom = _uow.GetObjectByKey(Of CustomersFrom)(_AssetsPCIRows.CustomersFrom.Oid)
_AssetsHandling_Last_Collection = New XPCollection(Of AssetsHandling)(_uow, CriteriaOperator.Parse("Customers=? And CustomersFrom=? And DocumentNumber=?",
_Customers, _CustomersFrom, _AssetsPCIRows.ConnectInfo))
_AssetsHandling_Last_Collection.Sorting().Add(New SortProperty("QueueIndex", DB.SortingDirection.Descending))
'_QueueIndex = _AssetsHandling_Last_Collection(0).QueueIndex + 1
For Each _AssetsHandling_Last In _AssetsHandling_Last_Collection
_QueueIndex = _AssetsHandling_Last.QueueIndex
Exit For
Next
_AssetsHandlingParameter = _uow.FindObject(Of AssetsHandlingParameter)(CriteriaOperator.Parse("CustomersFrom=?", _CustomersFrom))
RaiseEvent DoWork()
If _AssetsHandlingParameter IsNot Nothing Then
If (_QueueIndex = 0 And _SysDate >= _AssetsPCIRows.DatePayment.Date.AddDays(_AssetsHandlingParameter.TolerationDay1)) Or
(_QueueIndex = 1 And _SysDate >= _AssetsPCIRows.DatePayment.Date.AddDays(_AssetsHandlingParameter.TolerationDay2)) Then
For Each _AssetsHandling_Last In _AssetsHandling_Last_Collection
_AssetsHandling_Last.IsActive = False 'Az elõzõ rekordok nem lehetnek aktívak.
Next
_AssetsHandling = New AssetsHandling(_uow)
_AssetsHandling.QueueIndex = _QueueIndex
_AssetsHandling.AmountDEV_Account = _AssetsPCIRows.AmountDEV_Account
_AssetsHandling.AmountHUF_Account = _AssetsPCIRows.AmountHUF_Account
_AssetsHandling.BalanceDEV = _AssetsPCIRows.BallanceDEV
_AssetsHandling.BalanceHUF = _AssetsPCIRows.BallanceHUF
_AssetsHandling.CustomersFrom = _CustomersFrom
_AssetsHandling.Customers = _Customers
_AssetsHandling.DateClose = _AssetsPCIRows.AssetsPCIHeader.DateClose
_AssetsHandling.DatePayment = _AssetsPCIRows.DatePayment
_AssetsHandling.DateExecution = _AssetsPCIHeader.DateExecution
_AssetsHandling.DocumentNumber = _AssetsPCIRows.ConnectInfo
_AssetsHandling.DateCreated = _AssetsPCIRows.DateCreated
_AssetsHandling.IsActive = True
If _AssetsPCIRows.Customers.IsAssetsHandling Then
Else
_AssetsHandling.NoAssetsHandling = True
End If
_InvoiceHeader = _uow.FindObject(Of InvoiceHeader)(CriteriaOperator.Parse("CustomersFrom=? and Customers=? and DocumentNumber=?", _CustomersFrom, _Customers, _AssetsHandling.DocumentNumber))
_AssetsHandling.InvoiceHeader = _InvoiceHeader
If _AssetsHandling.InvoiceHeader IsNot Nothing Then
If _AssetsHandling.InvoiceHeader.AssetsHandlingStatus IsNot Nothing Then
If _AssetsHandling.InvoiceHeader.AssetsHandlingStatus.QueueIndex > 0 Then
_AssetsHandling.QueueIndex = _AssetsHandling.InvoiceHeader.AssetsHandlingStatus.QueueIndex
End If
End If
End If
End If
End If
If I Mod 1000 = 0 Then _uow.CommitChanges()
Next
_uow.CommitChanges()
RaiseEvent FinalWork()
If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
End Sub
Private Sub aViewLateCharges_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aViewLateCharges.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _CS As New CollectionSource(_onew, GetType(LateCharges))
If View.Id = "PCIGroup_ListView_DelayedPay" Then
Dim _PCIGroup As PCIGroup
Dim _InvoiceHeader As InvoiceHeader
_PCIGroup = TryCast(View.SelectedObjects(0), PCIGroup)
If _PCIGroup IsNot Nothing Then
_InvoiceHeader = _PCIGroup.InvoiceHeader
If _InvoiceHeader IsNot Nothing Then
CreateLateCharges(_ocur.Session, _InvoiceHeader, Now, True, True)
_ocur.CommitChanges()
_CS.BeginUpdateCriteria()
_CS.Criteria.Clear()
_CS.Criteria("First") = CriteriaOperator.Parse("InvoiceHeader.Oid=?", _InvoiceHeader.Oid)
_CS.EndUpdateCriteria()
_CS.Sorting.Clear()
_CS.Sorting.Add(New SortProperty("DateExecution", DB.SortingDirection.Descending))
e.View = Application.CreateListView("LateCharges_ListView_Info", _CS, False)
End If
End If
Else
If View.SelectedObjects.Count > 0 Then
Dim _AssetsPCIRows As AssetsPCIRows = TryCast(View.SelectedObjects(0), AssetsPCIRows)
Dim _CustomersFrom As CustomersFrom = _AssetsPCIRows.CustomersFrom
Dim _Customers As Customers = _AssetsPCIRows.Customers
Dim _DocumentNumber As String = _AssetsPCIRows.ConnectInfo
Dim _DateClose As Date = _AssetsPCIRows.AssetsPCIHeader.DateClose
Dim _InvoiceHeader As InvoiceHeader = _ocur.FindObject(Of InvoiceHeader)(CriteriaOperator.Parse("CustomersFrom=? and Customers=? and DocumentNumber=?",
_CustomersFrom, _Customers, _DocumentNumber))
If _InvoiceHeader IsNot Nothing Then
CreateLateCharges(_ocur.Session, _InvoiceHeader, _DateClose, True, True)
_ocur.CommitChanges()
_CS.BeginUpdateCriteria()
_CS.Criteria.Clear()
_CS.Criteria("First") = CriteriaOperator.Parse("InvoiceHeader.Oid=?", _InvoiceHeader.Oid)
_CS.EndUpdateCriteria()
_CS.Sorting.Clear()
_CS.Sorting.Add(New SortProperty("DateExecution", DB.SortingDirection.Descending))
e.View = Application.CreateListView("LateCharges_ListView_Info", _CS, False)
End If
Else
Throw New UserFriendlyException("Nincs kiválasztott elem.")
End If
End If
End Sub
Private Sub aViewLateCharges_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aViewLateCharges.Execute
End Sub
Sub CreateLateCharges(_Session As Session, _pInvoiceHeader As InvoiceHeader, _pDateClose As Date, Optional _WithTransaction As Boolean = False, Optional _StatusBar As Boolean = False)
Dim _uow As New UnitOfWork(_Session.DataLayer)
Dim _EmptyDate As Date = New Date
Dim _InvoiceHeader As InvoiceHeader = _uow.GetObjectByKey(Of InvoiceHeader)(_pInvoiceHeader.Oid)
Dim _MaxCount As Long = Math.Abs(DateDiff(DateInterval.Day, _InvoiceHeader.DatePayment.Date, _pDateClose))
Dim _I As Long = 0
Dim _TotalBruttoPayedBefore As Double = 0
Dim _MoneyRate As MoneyRate = Nothing
Dim _MoneyRate_Collection As New XPCollection(Of MoneyRate)(_uow) 'Alapkamat rekordok összegyûjtése
_MoneyRate_Collection.Sorting.Add(New SortProperty("DateFrom", DB.SortingDirection.Ascending))
Dim _LateChargesCountMode As LateChargesCountMode = Nothing
Dim _LateCharges As LateCharges = Nothing
Dim _LateCharges_Collection As New XPCollection(Of LateCharges)(_uow, CriteriaOperator.Parse("InvoiceHeader=?", _InvoiceHeader.Oid))
_uow.Delete(_LateCharges_Collection)
'Az összes a lejáratot megelõzõ fizetéssel a kollekciót növelni kell
Dim _PCID_Before As PCIDetail = Nothing
Dim _PCID_Before_Collection As New XPCollection(Of PCIDetail) _
(_uow, CriteriaOperator.Parse("CustomersFrom=? and Customers=? and PartnerType=0 and ConnectInfo=? and MainType <>'01-Account' and MainType<>'06-Latecharge' and GetDate(DateExecution)<=?",
_InvoiceHeader.CustomersFrom, _InvoiceHeader.Customers, _InvoiceHeader.DocumentNumber, _InvoiceHeader.DatePayment.Date))
For Each _PCID_Before In _PCID_Before_Collection
_TotalBruttoPayedBefore += _PCID_Before.BallanceHUF
Next
For _I = 0 To _MaxCount
_LateCharges = New LateCharges(_uow)
_LateCharges.InvoiceHeader = _InvoiceHeader
_LateCharges.DateExecution = DateAdd(DateInterval.Day, _I, _InvoiceHeader.DatePayment.Date)
If _I = 0 Then
_LateCharges.DebitHUF = _InvoiceHeader.TotalBruttoHUF + _TotalBruttoPayedBefore
Else
'// Napi késedelmi kamat kikeresése ------------
'Elõször a szerzõdésben keressük, mi a késedelemi kamat.
If _InvoiceHeader.Customers.LateChargesCountMode IsNot Nothing Then
_LateChargesCountMode = _InvoiceHeader.Customers.LateChargesCountMode
End If
'Másodszor a szerzõdésben keressük, mi a késedelemi kamat. Ez akkor felülbírálja a szerzõdés adatait.
If _InvoiceHeader.LateChargesCountMode IsNot Nothing Then
_LateChargesCountMode = _InvoiceHeader.LateChargesCountMode
End If
For Each _MoneyRate In _MoneyRate_Collection ' A MoneyRate objektum egy példányának úgy kell tartalmaznia az aktuális kamatot, hogy az érvényesség elsõ és utolsó napja szerepeljen benne.
If _LateCharges.DateExecution.Date >= _MoneyRate.DateFrom.Date And (_MoneyRate.DateTo.Date = _EmptyDate.Date Or _LateCharges.DateExecution.Date <= _MoneyRate.DateTo.Date) Then
Exit For
End If
_MoneyRate = Nothing
Next
If _LateChargesCountMode IsNot Nothing Then
If _LateChargesCountMode.LCCountMode = eLCCountMode.eFix Then 'Ha fix értéket tartalmaz a kamatszámítás-rekord, akkor azt vesszük figyelembe.
_LateCharges.CurrentLateChargesPercent = _LateChargesCountMode.LCValue / 100
Else
If _MoneyRate IsNot Nothing Then 'Ellenkezõ esetben a kamattáblázatból kikeresett értéket használjuk, a és szorozzuk a kamatszámítás-rekord értékével.
_LateCharges.CurrentLateChargesPercent = (_MoneyRate.KeyValue / 100) * _LateChargesCountMode.LCValue
End If
End If
Else
If _MoneyRate IsNot Nothing Then
_LateCharges.CurrentLateChargesPercent = (_MoneyRate.KeyValue / 100) * 2
End If
End If
If _MoneyRate Is Nothing Then 'Ha nem sikerült beazonosítani a késedelmi kamat mértékét.
_LateCharges.CurrentLateChargesPercent = 0
End If
'//---------------------------------------------
End If
_LateCharges_Collection.Add(_LateCharges)
Next
_LateCharges_Collection.Sorting.Add(New SortProperty("GetDate(DateExecution)", DB.SortingDirection.Ascending))
Dim _PCID As PCIDetail = Nothing
Dim _PCID_Collection As New XPCollection(Of PCIDetail) _
(_uow, CriteriaOperator.Parse("CustomersFrom=? and Customers=? and PartnerType=0 and ConnectInfo=? and MainType <>'01-Account' and MainType<>'06-Latecharge' and GetDate(DateExecution)>?",
_InvoiceHeader.CustomersFrom, _InvoiceHeader.Customers, _InvoiceHeader.DocumentNumber, _InvoiceHeader.DatePayment.Date))
_PCID_Collection.Sorting.Add(New SortProperty("GetDate(DateExecution)", DB.SortingDirection.Ascending))
For Each _PCID In _PCID_Collection
For Each _LateCharges In _LateCharges_Collection
If _LateCharges.DateExecution.Date = _PCID.DateExecution.Date Then
If _PCID.BallanceHUF > 0 Then
_LateCharges.DebitHUF = _PCID.BallanceHUF
Else
_LateCharges.CreditHUF = _PCID.BallanceHUF
End If
Exit For
End If
Next
Next
'// TÕKE változása -------------------------------------------------------------------------------------------------------------
_I = 0
Dim _CapitalBalanceHUF As Double = 0
Dim _LateChargesBalanceHUF As Double = 0
Dim _LateChargesHUF As Double = 0
For Each _LateCharges In _LateCharges_Collection
If _I = 0 Then
_LateCharges.CapitalBalanceHUF = _LateCharges.DebitHUF + _LateCharges.CreditHUF
_CapitalBalanceHUF = _LateCharges.CapitalBalanceHUF
Else
If _LateCharges.CreditHUF <> 0 Then
_CapitalBalanceHUF += _LateCharges.CreditHUF
End If
_LateCharges.CapitalBalanceHUF = _CapitalBalanceHUF
End If
_I += 1
Next
'// Kamat számítása ------------------------------------------------------------------------------------------------------------------------
_I = 0
For Each _LateCharges In _LateCharges_Collection
If _I = 0 Then
Else
_LateChargesHUF = ((_LateCharges.CapitalBalanceHUF * _LateCharges.CurrentLateChargesPercent) / 365)
_LateChargesBalanceHUF += _LateChargesHUF
_LateCharges.LateChargesBalanceHUF = _LateChargesBalanceHUF
_LateCharges.DebitHUF = _LateChargesHUF
End If
_I += 1
Next
If _WithTransaction Then
_uow.CommitChanges()
End If
End Sub
Sub CreateLateCharges_BAD(_Session As Session, _pInvoiceHeader As InvoiceHeader, _pDateClose As Date, Optional _WithTransaction As Boolean = False, Optional _StatusBar As Boolean = False)
Dim _uow As New UnitOfWork(_Session.DataLayer)
Dim _LateCharges As LateCharges = Nothing
Dim _Previous_LateCharges As LateCharges = Nothing
'Dim _Deletable_LateCharge As LateCharges
Dim _EmptyDate As Date = New Date
If _pInvoiceHeader Is Nothing Then Exit Sub
Dim _InvoiceHeader As InvoiceHeader = _uow.GetObjectByKey(Of InvoiceHeader)(_pInvoiceHeader.Oid)
Dim _LateCharges_Collection As New XPCollection(Of LateCharges)(_uow, CriteriaOperator.Parse("InvoiceHeader=?", _InvoiceHeader.Oid))
'-- A pénzügyi teljesítések kollekciója
Dim _PCID As PCIDetail
Dim _PCID_Collection As New XPCollection(Of PCIDetail) _
(_uow, CriteriaOperator.Parse("CustomersFrom=? and Customers=? and PartnerType=0 and ConnectInfo=? and MainType <>'01-Account'",
_InvoiceHeader.CustomersFrom, _InvoiceHeader.Customers, _InvoiceHeader.DocumentNumber))
_PCID_Collection.Sorting.Add(New SortProperty("GetDate(DateExecution)", DB.SortingDirection.Ascending))
Dim _AssetsHandling_Collection As New XPCollection(Of AssetsHandling)(_uow, CriteriaOperator.Parse("InvoiceHeader=?", _InvoiceHeader))
If _pDateClose.Date > GetSQLTime(_Session).Date Then
_pDateClose = GetSQLTime(_Session).Date
End If
Dim _AssetsHandlingParameter As AssetsHandlingParameter = _uow.FindObject(Of AssetsHandlingParameter)(CriteriaOperator.Parse("CustomersFrom=?", _InvoiceHeader.CustomersFrom))
'Eddigi késedelmi kamatrekordok összegyûjtése.
'If _LateCharges_Collection IsNot Nothing Then
' _LateCharges_Collection.Sorting.Add(New SortProperty("DateExecution", DB.SortingDirection.Descending))
' If _LateCharges_Collection.Count > 0 Then
' _Previous_LateCharges = New LateCharges(_uow)
' _Deletable_LateCharge = _Previous_LateCharges 'Ezt a végén törölni fogjuk.
' _Previous_LateCharges = _LateCharges_Collection(0)
' End If
'End If
If _LateCharges_Collection IsNot Nothing Then 'Kitöröljük az elõzményeket.
_uow.Delete(_LateCharges_Collection)
End If
If _Previous_LateCharges Is Nothing Then 'Ha nincsenek elõzmények, akkor tiszta lappal indulunk.
_Previous_LateCharges = New LateCharges(_uow)
_Previous_LateCharges.InvoiceHeader = _InvoiceHeader
_Previous_LateCharges.DateExecution = _InvoiceHeader.DatePayment.Date
_Previous_LateCharges.CapitalBalanceHUF = _InvoiceHeader.TotalBruttoHUF
_Previous_LateCharges.CapitalBalanceDEV = _InvoiceHeader.TotalBruttoDEV
_Previous_LateCharges.LateChargesBalanceHUF = 0
_Previous_LateCharges.LateChargesBalanceDEV = 0
_Previous_LateCharges.CostBalanceHUF = 0
_Previous_LateCharges.CostBalanceHUF = 0
_Previous_LateCharges.DebitHUF = _InvoiceHeader.TotalBruttoHUF
_Previous_LateCharges.DebitDEV = _InvoiceHeader.TotalBruttoDEV
_Previous_LateCharges.CreditHUF = 0
_Previous_LateCharges.CreditDEV = 0
_Previous_LateCharges.CostNote = ""
_Previous_LateCharges.CurrentLateChargesPercent = 0
'_Deletable_LateCharge = _Previous_LateCharges 'Ezt a végén törölni fogjuk?
End If
Dim _MoneyRate As MoneyRate = Nothing
Dim _LateChargesCountMode As LateChargesCountMode = Nothing
Dim _MoneyRate_Collection As New XPCollection(Of MoneyRate)(_uow) 'Alapkamat rekordok összegyûjtése
If _MoneyRate_Collection IsNot Nothing Then
_MoneyRate_Collection.Sorting.Add(New SortProperty("DateFrom", DB.SortingDirection.Ascending))
End If
If _StatusBar Then
RaiseEvent InitWork(1, 1, DateDiff(DateInterval.Day, _Previous_LateCharges.DateExecution, _pDateClose.Date))
End If
Do While _Previous_LateCharges.DateExecution.Date < _pDateClose.Date 'A Számla fizetési határidjétõl vagy az utolsó késedelmi kamatsortól indulunk, és a záródátumig haladunk.
If _StatusBar Then
RaiseEvent DoWork()
End If
'Elõször a szerzõdésben keressük, mi a késedelemi kamat.
If _InvoiceHeader.Customers.LateChargesCountMode IsNot Nothing Then
_LateChargesCountMode = _InvoiceHeader.Customers.LateChargesCountMode
End If
'Másodszor a szerzõdésben keressük, mi a késedelemi kamat. Ez akkor felülbírálja a szerzõdés adatait.
If _InvoiceHeader.LateChargesCountMode IsNot Nothing Then
_LateChargesCountMode = _InvoiceHeader.LateChargesCountMode
End If
''Ha nem találtunk idáig bejegyzést, akkor az aktuális alapkamat kétszerese lesz.
'If _LateChargesCountMode Is Nothing Then 'Ez így nem lesz jó, ezt nem szeretnénk létrehozni!
' _LateChargesCountMode = New LateChargesCountMode(_uow)
' _LateChargesCountMode.LCCountMode = eLCCountMode.eFix
' _LateChargesCountMode.LCValue = 2
'End If
'_LateChargesCountMode.dispose() 'Ez most miért nem?
_LateCharges = New LateCharges(_uow)
_LateCharges.InvoiceHeader = _Previous_LateCharges.InvoiceHeader
_LateCharges.DateExecution = DateAdd(DateInterval.Day, 1, _Previous_LateCharges.DateExecution.Date) 'Naponta egy rekord.
For Each _MoneyRate In _MoneyRate_Collection ' A MoneyRate objektum egy példányának úgy kell tartalmaznia az aktuális kamatot, hogy az érvényesség elsõ és utolsó napja szerepeljen benne.
If _LateCharges.DateExecution.Date >= _MoneyRate.DateFrom.Date And (_MoneyRate.DateTo.Date = _EmptyDate.Date Or _LateCharges.DateExecution.Date <= _MoneyRate.DateTo.Date) Then
Exit For
End If
_MoneyRate = Nothing
Next
If _LateChargesCountMode IsNot Nothing Then
If _LateChargesCountMode.LCCountMode = eLCCountMode.eFix Then 'Ha fix értéket tartalmaz a kamatszámítás-rekord, akkor azt vesszük figyelembe.
_LateCharges.CurrentLateChargesPercent = _LateChargesCountMode.LCValue / 100
Else
If _MoneyRate IsNot Nothing Then 'Ellenkezõ esetben a kamattáblázatból kikeresett értéket használjuk, a és szorozzuk a kamatszámítás-rekord értékével.
_LateCharges.CurrentLateChargesPercent = (_MoneyRate.KeyValue / 100) * _LateChargesCountMode.LCValue
End If
End If
Else
If _MoneyRate IsNot Nothing Then
_LateCharges.CurrentLateChargesPercent = (_MoneyRate.KeyValue / 100) * 2
End If
End If
If _MoneyRate Is Nothing Then 'Ha nem sikerült beazonosítani a késedelmi kamat mértékét.
_LateCharges.CurrentLateChargesPercent = 0
End If
_LateCharges.CapitalBalanceHUF = _Previous_LateCharges.CapitalBalanceHUF
_LateCharges.CapitalBalanceDEV = _Previous_LateCharges.CapitalBalanceDEV
_LateCharges.DebitHUF = ((_LateCharges.CapitalBalanceHUF * _LateCharges.CurrentLateChargesPercent) / 365)
_LateCharges.DebitDEV = ((_LateCharges.CapitalBalanceDEV * _LateCharges.CurrentLateChargesPercent) / 365) 'Ez így jó? 365 nappal számolunk?
_LateCharges.LateChargesBalanceHUF = _Previous_LateCharges.LateChargesBalanceHUF + _LateCharges.DebitHUF
_LateCharges.LateChargesBalanceDEV = _Previous_LateCharges.LateChargesBalanceDEV + _LateCharges.DebitDEV
_LateCharges.CostBalanceHUF = _Previous_LateCharges.CostBalanceHUF
_LateCharges.CostBalanceDEV = _Previous_LateCharges.CostBalanceDEV
_LateCharges.CreditHUF = 0
_LateCharges.CreditDEV = 0
_LateCharges.CostNote = ""
If _AssetsHandlingParameter IsNot Nothing Then
For Each _AssetsHandling In _AssetsHandling_Collection
If _AssetsHandling.DateExecution.Date = _LateCharges.DateExecution.Date Then
Select Case _AssetsHandling.QueueIndex
Case 0
_LateCharges.CostBalanceHUF = _LateCharges.CostBalanceHUF + _AssetsHandlingParameter.Cost1HUF
Case 1
_LateCharges.CostBalanceHUF = _LateCharges.CostBalanceHUF + _AssetsHandlingParameter.Cost2HUF
End Select
End If
Next
End If
For Each _PCID In _PCID_Collection
If _PCID.DateExecution.Date = _LateCharges.DateExecution.Date Then
If _PCID.BallanceDEV <> 0 Then 'Ha van devizás befolyt összeg,
_LateCharges.LateChargesBalanceDEV = _LateCharges.LateChargesBalanceDEV + _PCID.BallanceDEV 'akkor letudjuk belõle a kamatot.
If _LateCharges.LateChargesBalanceDEV < 0 Then 'Ha nagyobb volt az befolyt összeg, mint a késedelmi kamat,
_PCID.BallanceDEV = _LateCharges.LateChargesBalanceDEV 'akkor a maradék összeget megtartjuk,
_LateCharges.LateChargesBalanceDEV = 0 'a késedelmi kamat összegét pedig nullára állítjuk.
End If
If _PCID.BallanceDEV < 0 Then 'Ha még mindig maradt pénz,
_LateCharges.CapitalBalanceDEV = _LateCharges.CapitalBalanceDEV + _PCID.BallanceDEV 'levonjuk a tõke részbõl.
If _LateCharges.CapitalBalanceDEV < 0 Then 'Ha nagyobb volt az összeg a tõkénél is, akkor nullára állítjuk be a tõkét.
_LateCharges.CapitalBalanceDEV = 0
End If
End If
End If
If _PCID.BallanceHUF <> 0 Then 'A devizás esetre ugyan ezt kell alkalmazni tesztelés után!
If _PCID.BallanceHUF < 0 Then
_LateCharges.CostBalanceHUF = _LateCharges.CostBalanceHUF + _PCID.BallanceHUF
If _LateCharges.CostBalanceHUF < 0 Then
_PCID.BallanceHUF = _LateCharges.CostBalanceHUF
_LateCharges.CostBalanceHUF = 0
Else
_PCID.BallanceHUF = 0
End If
End If
If _PCID.BallanceHUF < 0 Then
_LateCharges.LateChargesBalanceHUF = _LateCharges.LateChargesBalanceHUF + _PCID.BallanceHUF
If _LateCharges.LateChargesBalanceHUF < 0 Then
_PCID.BallanceHUF = _LateCharges.LateChargesBalanceHUF
_LateCharges.LateChargesBalanceHUF = 0
Else
_PCID.BallanceHUF = 0
End If
End If
If _PCID.BallanceHUF < 0 Then
_LateCharges.CapitalBalanceHUF = _LateCharges.CapitalBalanceHUF + _PCID.BallanceHUF
If _LateCharges.CapitalBalanceHUF < 0 Then
_LateCharges.CapitalBalanceHUF = 0
End If
End If
End If
End If
Next
If _Previous_LateCharges.LateChargesBalanceDEV + _LateCharges.DebitDEV > _LateCharges.LateChargesBalanceDEV Then
_LateCharges.CreditDEV = (_LateCharges.LateChargesBalanceDEV - _Previous_LateCharges.LateChargesBalanceDEV) + (_LateCharges.DebitDEV * -1)
End If
If _Previous_LateCharges.CapitalBalanceDEV > _LateCharges.CapitalBalanceDEV Then
_LateCharges.CreditDEV = _LateCharges.CreditDEV + (_LateCharges.CapitalBalanceDEV - _Previous_LateCharges.CapitalBalanceDEV)
End If
If _Previous_LateCharges.LateChargesBalanceHUF + _LateCharges.DebitHUF > _LateCharges.LateChargesBalanceHUF Then
_LateCharges.CreditHUF = (_LateCharges.LateChargesBalanceHUF - _Previous_LateCharges.LateChargesBalanceHUF) + (_LateCharges.DebitHUF * -1)
End If
If _Previous_LateCharges.CapitalBalanceHUF > _LateCharges.CapitalBalanceHUF Then
_LateCharges.CreditHUF = _LateCharges.CreditHUF + (_LateCharges.CapitalBalanceHUF - _Previous_LateCharges.CapitalBalanceHUF)
End If
_Previous_LateCharges = _LateCharges
Loop
'If _Deletable_LateCharge IsNot Nothing Then
' _Deletable_LateCharge.Delete() 'Erre nincs szükség.
'End If
If _StatusBar Then
RaiseEvent FinalWork()
End If
If _WithTransaction Then
_uow.CommitChanges()
End If
End Sub
Private Sub aCreateLateCharges_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCreateLateCharges.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
If View.Id = "PCIGroup_ListView_DelayedPay" Then
Dim _InvoiceHeader As InvoiceHeader
Dim _PCIGroup As PCIGroup
Dim _uow As New UnitOfWork(_ocur.Session.DataLayer)
Frame.GetController(Of DevExpress.ExpressApp.Validation.PersistenceValidationController)?.Active.SetItemValue("", False)
RaiseEvent InitWork(1, 1, TryCast(View, ListView).CollectionSource.List.Count)
For Each _PCIGroup In TryCast(View, ListView).CollectionSource.List
RaiseEvent DoWork()
If _PCIGroup.InvoiceHeader IsNot Nothing Then
_InvoiceHeader = _uow.GetObjectByKey(Of InvoiceHeader)(_PCIGroup.InvoiceHeader.Oid)
CreateLateCharges(_uow, _InvoiceHeader, Now, True)
Dim _LateCharges_Collection As New XPCollection(Of LateCharges)(_uow,
CriteriaOperator.Parse("InvoiceHeader=?", _InvoiceHeader))
_LateCharges_Collection.Sorting.Add(New SortProperty("DateExecution", DB.SortingDirection.Descending))
For Each _LateCharges In _LateCharges_Collection
_InvoiceHeader.LateChargesBalanceHUF = Math.Round(_LateCharges.LateChargesBalanceHUF, 0, MidpointRounding.AwayFromZero)
_uow.CommitChanges()
Exit For
Next
End If
Next
_uow.CommitChanges()
RaiseEvent FinalWork()
Frame.GetController(Of DevExpress.ExpressApp.Validation.PersistenceValidationController)?.Active.SetItemValue("", True)
Else
Dim _AssetsHandling As AssetsHandling
Dim _AssetsHandling_Collection As New XPCollection(Of AssetsHandling)(_ocur.Session, CriteriaOperator.Parse("NoAssetsHandling = False and IsActive=True"))
Dim _LateCharges As LateCharges
RaiseEvent InitWork(1, 1, _AssetsHandling_Collection.Count)
For Each _AssetsHandling In _AssetsHandling_Collection
RaiseEvent DoWork()
_AssetsHandling.LateChargesBalanceHUF = 0
_ocur.CommitChanges()
If _AssetsHandling.NoAssetsHandling = False Then 'And _AssetsHandling.QueueIndex = 1 Then
CreateLateCharges(_ocur.Session, _AssetsHandling.InvoiceHeader, _AssetsHandling.DateClose, True)
End If
Dim _LateCharges_Collection As New XPCollection(Of LateCharges)(_ocur.Session,
CriteriaOperator.Parse("InvoiceHeader=?", _AssetsHandling.InvoiceHeader))
_LateCharges_Collection.Sorting.Add(New SortProperty("DateExecution", DB.SortingDirection.Descending))
For Each _LateCharges In _LateCharges_Collection
_AssetsHandling.LateChargesBalanceHUF = Math.Round(_LateCharges.LateChargesBalanceHUF, 0, MidpointRounding.AwayFromZero)
_ocur.CommitChanges()
Exit For
Next
Next
_ocur.CommitChanges()
RaiseEvent FinalWork()
End If
End Sub
Private Sub aNoAssetsHandling_Execute(sender As Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aNoAssetsHandling.Execute
Dim _uow As New UnitOfWork(TryCast(View.ObjectSpace, Xpo.XPObjectSpace).Session.DataLayer)
Dim _AssetsHandling As AssetsHandling
If View.SelectedObjects.Count > 0 Then
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
For Each _AssetsHandling In View.SelectedObjects
RaiseEvent DoWork()
If _AssetsHandling.NoAssetsHandling Then
_AssetsHandling.NoAssetsHandling = False
Else
_AssetsHandling.NoAssetsHandling = True
End If
Next
RaiseEvent FinalWork()
_uow.CommitChanges()
Else
Throw New UserFriendlyException("Nincs kiválasztott elem.")
End If
End Sub
Private Sub aCountLateCharges_Execute(sender As Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCountLateCharges.Execute
Dim _uow As New UnitOfWork(TryCast(View.ObjectSpace, Xpo.XPObjectSpace).Session.DataLayer)
If View.SelectedObjects.Count > 0 Then
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
For Each _AssetsHandling In View.SelectedObjects
RaiseEvent DoWork()
_AssetsHandling.CountLateCharges = Not _AssetsHandling.CountLateCharges
Next
RaiseEvent FinalWork()
_uow.CommitChanges()
Else
Throw New UserFriendlyException("Nincs kiválasztott elem.")
End If
End Sub
Private Sub aViewCustomerPaymentBehaviour_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewCPBAssetsPCIRows_ListView.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _AssetsHandlingCPB As AssetsHandlingCPB
Dim _AssetsPCIRows As AssetsPCIRows = TryCast(View.SelectedObjects(0), AssetsPCIRows)
If _AssetsPCIRows IsNot Nothing Then
_AssetsHandlingCPB = _onew.CreateObject(Of AssetsHandlingCPB)()
_AssetsHandlingCPB.Customers = _onew.GetObject(_AssetsPCIRows.Customers)
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "AssetsHandlingCPB_DetailView", True, _AssetsHandlingCPB)
End If
End Sub
Private Sub aViewCPBAssetsHandling_ListView_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewCPBAssetsHandling_ListView.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _AssetsHandlingCPB As AssetsHandlingCPB
Dim _AssetsHandling As AssetsHandling = TryCast(View.SelectedObjects(0), AssetsHandling)
If _AssetsHandling IsNot Nothing Then
_AssetsHandlingCPB = _onew.CreateObject(Of AssetsHandlingCPB)()
_AssetsHandlingCPB.Customers = _onew.GetObject(_AssetsHandling.Customers)
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "AssetsHandlingCPB_DetailView", True, _AssetsHandlingCPB)
End If
End Sub
Private Sub aViewPCIDW_AssetsPCIRows_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewPCIDW_AssetsPCIRows.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _AssetsPCIRows As AssetsPCIRows = TryCast(View.SelectedObjects(0), AssetsPCIRows)
If _AssetsPCIRows IsNot Nothing Then
ViewPDCI.ViewPDCIDetail(_onew, Application, e, _AssetsPCIRows.CustomersFrom, _AssetsPCIRows.Customers, _AssetsPCIRows.PartnerType, _AssetsPCIRows.ConnectInfo)
End If
End Sub
Private Sub aPCIGenerate_AssetsHandling_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aPCIGenerate_AssetsHandling.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow As New UnitOfWork(_ocur.Session.DataLayer)
Dim _AssetsPCIRows As AssetsPCIRows
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
For Each _AssetsPCIRows In View.SelectedObjects
RaiseEvent DoWork()
GLFunctions.ReconfigurePCI(_uow, _AssetsPCIRows.CustomersFrom, _AssetsPCIRows.Customers, ePartnerType.eReceivables, _AssetsPCIRows.ConnectInfo)
Next
RaiseEvent FinalWork()
End Sub
Private Sub aAssetsHandling_CreateSendEmailQueue_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aAssetsHandling_CreateSendEmailQueue.Execute
Try
_ActiveForm = False
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _AssetsHandling_Collection As New XPCollection(Of AssetsHandling)(_ocur.Session, CriteriaOperator.Parse("QueueIndex=0 AND NoAssetsHandling<>True AND IsActive=True"))
Dim _AssetsHandlingParameter_Collection As New XPCollection(Of AssetsHandlingParameter)(_ocur.Session)
Dim _BalanceHUF As Double = 0
If _AssetsHandlingParameter_Collection.Count > 0 Then
If _AssetsHandlingParameter_Collection(0).EMailSendQueueParameters Is Nothing Then Throw New Exception("*Nincs beállítva E-mail csomag paraméter!")
If _AssetsHandlingParameter_Collection(0).ReportData Is Nothing Then Throw New Exception("*Nincs beállítva nyomtatvány a kintlévõség kezelés paraméterben!")
Else
Throw New Exception("*Nincs beállítva kintlévõség kezelés paraméter!")
End If
_AssetsHandling_Collection.Sorting.Clear()
_AssetsHandling_Collection.Sorting.Add(New SortProperty("Customers", DB.SortingDirection.Descending))
Dim _EMailSendQueueHeader As New EMailSendQueueHeader(_ocur.Session)
_EMailSendQueueHeader.EmailSendQueueParameters = _AssetsHandlingParameter_Collection(0).EMailSendQueueParameters
_EMailSendQueueHeader.ShortName = "Kinnlévõség kezelés automatikius e-mail"
_ocur.CommitChanges()
RaiseEvent InitWork(1, 1, _AssetsHandling_Collection.Count)
_ActiveForm = True
Dim _ActCustomersOid As String = "" '= TryCast(TryCast(_AssetsHandling_Collection.List, IList)(0), AssetsHandling).Oid.ToString
Dim _ActCustomersFromOid As String = ""
For _ik As Long = 0 To _AssetsHandling_Collection.Count - 1
Dim _AssetsHandling As AssetsHandling = TryCast(_AssetsHandling_Collection(_ik), AssetsHandling)
Dim _AssetsHandlingStatus As AssetsHandlingStatus = _ocur.FindObject(Of AssetsHandlingStatus)(CriteriaOperator.Parse("QueueIndex=1"))
If _AssetsHandling.InvoiceHeader IsNot Nothing Then
_AssetsHandling.InvoiceHeader.AssetsHandlingStatus = _AssetsHandlingStatus
End If
If _AssetsHandling.Customers.Oid.ToString <> _ActCustomersOid Or _AssetsHandling.CustomersFrom.Oid.ToString <> _ActCustomersFromOid Then
Dim _ReportData As ReportData = _AssetsHandlingParameter_Collection(0).ReportData
Dim _XafReport As Reports.XafReport = _ReportData.LoadReport(_ocur)
Dim _FilterString As String = String.Format("QueueIndex=0 and IsActive=True and NoAssetsHandling=False and Customers.Oid='{0}' and CustomersFrom.Oid = '{1}'",
_AssetsHandling.Customers.Oid.ToString, _AssetsHandling.CustomersFrom.Oid.ToString)
_XafReport.FilterString = _FilterString
Dim _FileName As String = String.Format("{0}{1}.pdf", System.IO.Path.GetTempPath, _AssetsHandling.Customers.FullName)
Dim _StreamFile As New System.IO.FileStream(_FileName, System.IO.FileMode.Create)
_XafReport.ExportToPdf(_StreamFile)
_StreamFile.Close()
If System.IO.File.Exists(_FileName) Then
Dim _EMailSendQueueRows As New EMailSendQueueRows(_ocur.Session) With {.EMailSendQueueHeader = _EMailSendQueueHeader}
Dim _Contacts As Contacts = _ocur.FindObject(Of Contacts)(CriteriaOperator.Parse("Customers=? AND IsAssetsHandlingResponsible=True", _AssetsHandling.Customers))
If _Contacts IsNot Nothing Then
_EMailSendQueueRows.EMailTo = _Contacts.Email
Else
_EMailSendQueueRows.EMailTo = _AssetsHandling.Customers.Email
End If
_EMailSendQueueRows.EMailFrom = _EMailSendQueueHeader.EmailSendQueueParameters.EMailFrom
_EMailSendQueueRows.Subject = _EMailSendQueueHeader.EmailSendQueueParameters.Subject
_BalanceHUF = 0
For _BB As Long = 0 To _AssetsHandling_Collection.Count - 1
Dim _AssetsHandling2 As AssetsHandling = TryCast(_AssetsHandling_Collection(_BB), AssetsHandling)
If _AssetsHandling2.Customers.Oid = _AssetsHandling.Customers.Oid And _AssetsHandling2.CustomersFrom.Oid = _AssetsHandling.CustomersFrom.Oid Then
_BalanceHUF += _AssetsHandling2.BalanceHUF
End If
Next
_EMailSendQueueRows.HTMLBody = String.Format(_EMailSendQueueHeader.EmailSendQueueParameters.HTMLBody, _AssetsHandling.Customers.FullName,
_EMailSendQueueHeader.ObjectCreated, _BalanceHUF, "HH")
_BalanceHUF = 0
_EMailSendQueueRows.FileAttachments1 = New FileData(_ocur.Session)
_EMailSendQueueRows.FileAttachments1.FileName = System.IO.Path.GetFileName(_FileName)
_StreamFile = New System.IO.FileStream(_FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read)
Dim _StreamReader As New System.IO.StreamReader(_StreamFile)
_StreamFile.Seek(0, System.IO.SeekOrigin.Begin)
_EMailSendQueueRows.FileAttachments1.LoadFromStream(_EMailSendQueueRows.FileAttachments1.FileName, _StreamFile)
_StreamReader.Close()
_StreamFile.Close()
System.IO.File.Delete(_FileName)
_AssetsHandling.EMailSendQueueRows = _EMailSendQueueRows
RaiseEvent DoWork()
End If
Else
_AssetsHandling.EMailSendQueueRows = _EMailSendQueueHeader.EMailSendQueueRows(_EMailSendQueueHeader.EMailSendQueueRows.Count - 1)
RaiseEvent DoWork()
End If
_ActCustomersOid = _AssetsHandling.Customers.Oid.ToString
_ActCustomersFromOid = _AssetsHandling.CustomersFrom.Oid.ToString
_AssetsHandling.QueueIndex = 1
Next
_ocur.CommitChanges()
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "EMailSendQueueHeader_DetailView", False, _onew.GetObject(_EMailSendQueueHeader))
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")))
Finally
If _ActiveForm Then RaiseEvent FinalWork()
End Try
End Sub
Private Sub aAssetsHandling_RemoveSendEmailQueue_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aAssetsHandling_RemoveSendEmailQueue.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _AssetsHandling As AssetsHandling
Dim _AssetsHandling_Collection As XPCollection(Of AssetsHandling)
Dim _AssetsHandling2 As AssetsHandling
For Each _AssetsHandling In View.SelectedObjects
If _AssetsHandling.EMailSendQueueRows IsNot Nothing Then
_AssetsHandling_Collection = New XPCollection(Of AssetsHandling)(_ocur.Session,
CriteriaOperator.Parse("EMailSendQueueRows=?",
_AssetsHandling.EMailSendQueueRows))
_AssetsHandling.EMailSendQueueRows.Delete()
For Each _AssetsHandling2 In _AssetsHandling_Collection
_AssetsHandling2.EMailSendQueueRows = Nothing
_AssetsHandling2.QueueIndex = 0
Dim _AssetsHandlingStatus As AssetsHandlingStatus = _ocur.FindObject(Of AssetsHandlingStatus)(CriteriaOperator.Parse("QueueIndex=0"))
If _AssetsHandling2.InvoiceHeader IsNot Nothing Then
_AssetsHandling2.InvoiceHeader.AssetsHandlingStatus = _AssetsHandlingStatus
End If
Next
End If
Next
_ocur.CommitChanges()
End Sub
Private Sub aAssetsHandling_GroupChange_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aAssetsHandling_GroupChange.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _AssetsHandlingGroupChange As AssetsHandlingGroupChange = _onew.CreateObject(Of AssetsHandlingGroupChange)()
_AssetsHandlingGroupChange.QueueIndex = 0
e.View = Application.CreateDetailView(_onew, "AssetsHandlingGroupChange_DetailView", False, _AssetsHandlingGroupChange)
End Sub
Private Sub aAssetsHandling_GroupChange_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aAssetsHandling_GroupChange.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _AssetsHandling As AssetsHandling
Dim _AssetsHandlingGroupChange As AssetsHandlingGroupChange = TryCast(e.PopupWindow.View.SelectedObjects(0), AssetsHandlingGroupChange)
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
Frame.GetController(Of Validation.PersistenceValidationController)?.Active.SetItemValue("", False)
For Each _AssetsHandling In View.SelectedObjects
RaiseEvent DoWork()
If _AssetsHandlingGroupChange.IsQueueIndex Then
_AssetsHandling.QueueIndex = _AssetsHandlingGroupChange.QueueIndex
If _AssetsHandling.InvoiceHeader IsNot Nothing Then
_AssetsHandling.InvoiceHeader.AssetsHandlingStatus = _ocur.GetObject(_AssetsHandlingGroupChange.AssetsHandlingStatus)
End If
End If
If _AssetsHandlingGroupChange.IsAssetsHandling_Note_Customers Then _AssetsHandling.Customers.AssetsHandling_Note = _AssetsHandlingGroupChange.AssetsHandling_Note_Customers
If _AssetsHandlingGroupChange.IsAssetsHandling_Note_Invoice Then _AssetsHandling.InvoiceHeader.AssetsHandling_Note = _AssetsHandlingGroupChange.AssetsHandling_Note_Invoice
If _AssetsHandlingGroupChange.AktivModifies Then _AssetsHandling.IsActive = _AssetsHandlingGroupChange.IsActive
If _AssetsHandlingGroupChange.NoAssetsHandlingModifies Then _AssetsHandling.NoAssetsHandling = _AssetsHandlingGroupChange.NoAssetsHandling
If _AssetsHandlingGroupChange.IsAssetsHandling_InvoiceHeader_Modifies Then _AssetsHandling.InvoiceHeader.IsAssetsHandling = _AssetsHandlingGroupChange.IsAssetsHandling_InvoiceHeader
If _AssetsHandlingGroupChange.NoAssetsHandlingModifies Then _AssetsHandling.Customers.IsAssetsHandling = _AssetsHandlingGroupChange.NoAssetsHandling
If _AssetsHandlingGroupChange.AktivModifies Then _AssetsHandling.IsActive = _AssetsHandlingGroupChange.IsActive
If _AssetsHandlingGroupChange.IsLateChargeModifies Then _AssetsHandling.InvoiceHeader.IsLateCharge = _AssetsHandlingGroupChange.IsLateCharge
Next
RaiseEvent FinalWork()
_ocur.CommitChanges()
Frame.GetController(Of Validation.PersistenceValidationController)?.Active.SetItemValue("", True)
End Sub
Private Sub aViewLateCharges_AssetsHandling_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aViewLateCharges_AssetsHandling.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
If View.SelectedObjects.Count > 0 Then
Dim _AssetsHandling As AssetsHandling = TryCast(View.SelectedObjects(0), AssetsHandling)
Dim _CustomersFrom As CustomersFrom = _AssetsHandling.CustomersFrom
Dim _Customers As Customers = _AssetsHandling.Customers
Dim _DocumentNumber As String = _AssetsHandling.DocumentNumber
Dim _DateClose As Date = _AssetsHandling.DateClose
Dim _CS As New CollectionSource(_onew, GetType(LateCharges))
Dim _InvoiceHeader As InvoiceHeader = _ocur.FindObject(Of InvoiceHeader) _
(CriteriaOperator.Parse("CustomersFrom=? and Customers=? and DocumentNumber=?",
_CustomersFrom, _Customers, _DocumentNumber))
If _InvoiceHeader IsNot Nothing Then
CreateLateCharges(_ocur.Session, _InvoiceHeader, _DateClose, True, True)
_ocur.CommitChanges()
_CS.BeginUpdateCriteria()
_CS.Criteria.Clear()
_CS.Criteria("First") = CriteriaOperator.Parse("InvoiceHeader.Oid=?", _InvoiceHeader.Oid)
_CS.EndUpdateCriteria()
_CS.Sorting.Clear()
_CS.Sorting.Add(New SortProperty("DateExecution", DB.SortingDirection.Descending))
e.View = Application.CreateListView("LateCharges_ListView_Info", _CS, False)
End If
Else
Throw New UserFriendlyException("Nincs kiválasztott elem.")
End If
End Sub
Private Sub aViewLateCharges_AssetsHandling_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aViewLateCharges_AssetsHandling.Execute
End Sub
Private Sub aSelectCustomersFromAssetsHandlingPCI_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aSelectCustomersFromAssetsHandlingPCI.CustomizePopupWindowParams
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _CS As New CollectionSource(_onew, GetType(CustomersFrom))
'_CS.BeginUpdateCriteria()
'_CS.Criteria.Clear()
'_CS.Criteria("First") = ""
'_CS.EndUpdateCriteria()
e.View = Application.CreateListView("CustomersFrom_ListView_Select", _CS, False)
End Sub
Private Sub aSelectCustomersFromAssetsHandlingPCI_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aSelectCustomersFromAssetsHandlingPCI.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow As New UnitOfWork(_ocur.Session.DataLayer)
Dim _Customersfrom As CustomersFrom
Dim _AssetsPCIHeader As AssetsPCIHeader = TryCast(TryCast(View, ListView).CollectionSource, PropertyCollectionSource).MasterObject
Dim _AssetsPCICustomersFrom As AssetsPCICustomersFrom
If _AssetsPCIHeader Is Nothing Then Exit Sub
If e.PopupWindow.View.SelectedObjects.Count > 0 Then
For Each _Customersfrom In e.PopupWindow.View.SelectedObjects
_AssetsPCICustomersFrom = New AssetsPCICustomersFrom(_uow)
_AssetsPCICustomersFrom.AssetsPCIHeader = _uow.GetObjectByKey(Of AssetsPCIHeader)(_AssetsPCIHeader.Oid)
_AssetsPCICustomersFrom.CustomersFrom = _uow.GetObjectByKey(Of CustomersFrom)(_Customersfrom.Oid)
Next
_uow.CommitChanges()
End If
Dim nestedFrame As NestedFrame = TryCast(Frame, NestedFrame)
If nestedFrame IsNot Nothing Then
Dim parentView As View = nestedFrame.View
parentView.ObjectSpace.Refresh()
End If
End Sub
Private Sub aCreateLateChargesDocument_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aCreateLateChargesDocument.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _LateChargesPopup As LateChargesPopup = _onew.CreateObject(Of LateChargesPopup)()
e.View = Application.CreateDetailView(_onew, "LateChargesPopup_DetailView", True, _LateChargesPopup)
End Sub
Private Sub aCreateLateChargesDocument_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aCreateLateChargesDocument.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _LateChargesPopup As LateChargesPopup = TryCast(e.PopupWindow.View.SelectedObjects(0), LateChargesPopup)
Dim _PCIGroup As PCIGroup
Dim _GLMixed As GLMixed
Dim _GLRows As GLRows
Dim _GLMixedNG As GLMixedNG
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
For Each _PCIGroup In View.SelectedObjects
RaiseEvent DoWork()
_PCIGroup = _onew.GetObject(_PCIGroup)
If _PCIGroup.InvoiceHeader IsNot Nothing And _PCIGroup.InvoiceHeader.AssetsHandling_GLMixed Is Nothing Then
If _PCIGroup.InvoiceHeader.LateChargesBalanceHUF > 0 And _PCIGroup.InvoiceHeader.IsLateCharge Then
_GLMixedNG = _onew.FindObject(Of GLMixedNG)(CriteriaOperator.Parse("CustomersFrom.Oid=?", _PCIGroup.CustomersFrom.Oid))
If _GLMixedNG IsNot Nothing Then
_GLMixed = _onew.CreateObject(Of GLMixed)()
_GLMixed.CustomersFrom = _PCIGroup.CustomersFrom
_GLMixed.CurrencyName = _onew.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'"))
_GLMixed.DocumentNumber = _GLMixedNG.NumberGenerator_LateCharges.GetNewNumber(_GLMixedNG.NumberGenerator_LateCharges)
_GLMixed.DateCreated = _LateChargesPopup.DateCreated
_GLMixed.DateExecution = _LateChargesPopup.DateCreated
_GLMixed.DatePayment = _LateChargesPopup.DateCreated
_GLMixed.CurrencyRate = 1
_GLMixed.ImportedInvoice = _PCIGroup.InvoiceHeader
_GLMixed.GLDocumentType = eGLDocumentType.eLateCharge
_GLRows = _onew.CreateObject(Of GLRows)()
_GLRows.GLHeader = TryCast(_GLMixed, GLHeader)
_GLRows.PartnerType = ePartnerType.eReceivables
_GLRows.ConnectInfo = _PCIGroup.ConnectInfo
_GLRows.Customer = _PCIGroup.Customers
_GLRows.AmountHUF = _PCIGroup.InvoiceHeader.LateChargesBalanceHUF
_GLRows.OutAmountHUF = _PCIGroup.InvoiceHeader.LateChargesBalanceHUF
_GLRows.CreditChartOfAccounts = _GLMixedNG.CreditControlling_LateCharges.GetChartOfAccounts(_LateChargesPopup.DateCreated.Year, False)
_GLRows.DebitChartOfAccounts = _GLMixedNG.DebitControlling_LateCharges.GetChartOfAccounts(_LateChargesPopup.DateCreated.Year, False)
_PCIGroup.InvoiceHeader.AssetsHandling_GLMixed = _GLMixed
_onew.CommitChanges()
GLFunctions.ReconfigurePCI(_uow, _PCIGroup.CustomersFrom, _PCIGroup.Customers, ePartnerType.eReceivables, _PCIGroup.ConnectInfo)
End If
End If
End If
Next
RaiseEvent FinalWork()
End Sub
Private Sub aRemoveLateChargesDocument_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aRemoveLateChargesDocument.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _PCIGroup As PCIGroup
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
For Each _PCIGroup In View.SelectedObjects
RaiseEvent DoWork()
_PCIGroup = _onew.GetObject(_PCIGroup)
If _PCIGroup.InvoiceHeader.AssetsHandling_GLMixed IsNot Nothing Then
_onew.Delete(_PCIGroup.InvoiceHeader.AssetsHandling_GLMixed.GLRows)
_onew.Delete(_PCIGroup.InvoiceHeader.AssetsHandling_GLMixed)
_PCIGroup.InvoiceHeader.AssetsHandling_GLMixed = Nothing
_onew.CommitChanges()
GLFunctions.ReconfigurePCI(_uow, _PCIGroup.CustomersFrom, _PCIGroup.Customers, ePartnerType.eReceivables, _PCIGroup.ConnectInfo)
End If
Next
RaiseEvent FinalWork()
End Sub
Private Sub aPrintLateChargesDocument_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aPrintLateChargesDocument.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ReportData As ReportData
Dim _AssetsHandlingParameter As AssetsHandlingParameter
Dim _PCIGroup As PCIGroup = TryCast(View.SelectedObjects(0), PCIGroup)
_AssetsHandlingParameter = _ocur.FindObject(Of AssetsHandlingParameter)(CriteriaOperator.Parse("CustomersFrom=?", _PCIGroup.CustomersFrom))
If _AssetsHandlingParameter IsNot Nothing Then
_ReportData = _AssetsHandlingParameter.ReportData_LateChargesDocument
If _ReportData IsNot Nothing Then
Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("GLHeader.GLDocumentType='eLateCharge' and GLHeader.ImportedInvoice.IsLateCharge=True"), True)
Else
Throw New UserFriendlyException("Nincs beállítva a késedelmi kamatlevél nyomtatvány !")
End If
End If
End Sub
End Class