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 DevExpress.ExpressApp.CloneObject Imports System.IO Imports DevExpress.WebUtils Public Class PCIVC Inherits DevExpress.ExpressApp.ViewController Protected selection As ArrayList Protected noselect As Boolean = False 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() selection = New ArrayList() 'This call is required by the Component Designer. InitializeComponent() RegisterActions(components) End Sub Protected Overrides Sub OnActivated() MyBase.OnActivated() AddHandler View.SelectionChanged, AddressOf view_SelectionChanged Frame.GetController(Of PCIVC).aPCIGenerate.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aPCICheck.Active.SetItemValue("", False) '-- Pontozások Frame.GetController(Of PCIVC).aCreateConnectionDirectDifferentCurrency.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aCreateConnectionDirect.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aCreateConnectionDrop.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aCreateRateDiffPCIGroup.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aCreateConnectionLiquidAssets.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aCreateConnectionDivide.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aCreateConnectionAccount.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aCreateRoundingPCIGroup.Active.SetItemValue("", False) '--- Betekintések ... Frame.GetController(Of PCIVC).aViewAttachmentsPCIGroup.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aViewPCIDGroup.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aViewRegistryPCIGroup.Active.SetItemValue("", False) If View.Id = "PCIGroup_ListView_DelayedPay" Then Frame.GetController(Of PCIVC).aViewAttachmentsPCIGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewPCIDGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aPCICheck.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aRepairPCIGroup.Active.SetItemValue("", False) End If If View.Id = "PCIGroup_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of ListViewProcessCurrentObjectController)?.Active.SetItemValue("", False) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False) Frame.GetController(Of ModificationsController)?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aPCIGenerate.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aPCICheck.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewAttachmentsPCIGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewPCIDGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewRegistryPCIGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aCreateRoundingPCIGroup.Active.SetItemValue("", True) End If If View.Id = "PCIDetail_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of ListViewProcessCurrentObjectController)?.Active.SetItemValue("", False) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False) Frame.GetController(Of ModificationsController)?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of PCIVC).aCreateConnectionDirectDifferentCurrency.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aCreateConnectionDirect.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aCreateConnectionDrop.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aCreateConnectionLiquidAssets.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aCreateConnectionDivide.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aCreateConnectionAccount.Active.SetItemValue("", True) End If If View.Id = "PCIGroup_ListView_Rate" Then Frame.GetController(Of PCIVC).aCreateRateDiffPCIGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aPCICheck.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewAttachmentsPCIGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewPCIDGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewRegistryPCIGroup.Active.SetItemValue("", True) End If If View.Id = "PCIGroup_ListView_Rounding" Then Frame.GetController(Of PCIVC).aCreateRoundingPCIGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewAttachmentsPCIGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewPCIDGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aViewRegistryPCIGroup.Active.SetItemValue("", True) Frame.GetController(Of PCIVC).aPCICheck.Active.SetItemValue("", True) End If End Sub Protected Overrides Sub OnDeactivated() MyBase.OnDeactivated() Frame.GetController(Of Validation.PersistenceValidationController)?.Active.SetItemValue("", True) RemoveHandler View.SelectionChanged, AddressOf view_SelectionChanged End Sub Private Sub view_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim _PCIDetail As PCIDetail Dim _PCIGroup As PCIGroup If View Is Nothing Then Exit Sub If View.Id Like "PCIDetail*" And noselect = False Then selection.Clear() For Each _PCIDetail In View.SelectedObjects selection.Add(_PCIDetail) Next End If If View.Id = "PCIGroup_ListView_Rate" And noselect = False Then selection.Clear() For Each _PCIGroup In View.SelectedObjects selection.Add(_PCIGroup) Next End If If View.Id = "PCIGroup_ListView_Rounding" And noselect = False Then selection.Clear() For Each _PCIGroup In View.SelectedObjects selection.Add(_PCIGroup) Next End If If View.Id = "PCIGroup_ListView" And noselect = False Then selection.Clear() For Each _PCIGroup In View.SelectedObjects selection.Add(_PCIGroup) Next End If End Sub Private Sub aPCIGenerate_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aPCIGenerate.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _GLAccounts As GLAccounts Dim _GLRows As GLRows Dim _InvoiceHeader As InvoiceHeader Dim _RegistryHeader As RegistryHeader '// Ki kell dobni minden korábbi pontozást ! 'Dim _PCIDetail_Collection As New XPCollection(Of PCIDetail)(_uow) '_uow.Delete(_PCIDetail_Collection) 'Dim _PCIGroup_Collection As New XPCollection(Of PCIGroup)(_uow) '_uow.Delete(_PCIGroup_Collection) Select Case GLOBAL_SQLType Case eSQLType.PostgreSQL _uow.ExecuteNonQuery("delete from ""PCIDetail""") _uow.ExecuteNonQuery("update ""InvoiceHeader"" set ""PCIGroup""=Null") _uow.ExecuteNonQuery("update ""PCIGroupAging"" set ""PCIGroup""=Null") _uow.ExecuteNonQuery("delete from ""PCIGroup""") _uow.CommitChanges() Case Else _uow.ExecuteNonQuery("delete from PCIDetail") _uow.ExecuteNonQuery("update InvoiceHeader set PCIGroup=Null") _uow.ExecuteNonQuery("update PCIGroupAging set PCIGroup=Null") _uow.ExecuteNonQuery("delete from PCIGroup") _uow.CommitChanges() End Select '// Dim _GLAccounts_Collection As New XPCollection(Of GLAccounts)(PersistentCriteriaEvaluationBehavior.InTransaction, _ _uow, CriteriaOperator.Parse("IsDeleted=False and PartnerType in (0,1) and IsEditable=False")) RaiseEvent InitWork(1, 1, _GLAccounts_Collection.Count) For Each _GLAccounts In _GLAccounts_Collection RaiseEvent DoWork() GLFunctions.ReconfigurePCI(_uow, _GLAccounts.CustomersFrom, _GLAccounts.Customers, _GLAccounts.PartnerType, _GLAccounts.ConnectInfo) Next RaiseEvent FinalWork Dim _GLRows_Collection As New XPCollection(Of GLRows)(_uow, CriteriaOperator.Parse("isnull(Customer)=False and PartnerType in (0,1)")) RaiseEvent InitWork(1, 1, _GLRows_Collection.Count) For Each _GLRows In _GLRows_Collection RaiseEvent DoWork() GLFunctions.ReconfigurePCI(_uow, _GLRows.GLHeader.CustomersFrom, _GLRows.Customer, _GLRows.PartnerType, _GLRows.ConnectInfo) Next RaiseEvent FinalWork Dim _InvoiceHeader_Collection As New XPCollection(Of InvoiceHeader)(_uow, CriteriaOperator.Parse("isnull(Customers)=False and IsEditable=False and isnull(GLAccounts)=True")) RaiseEvent InitWork(1, 1, _InvoiceHeader_Collection.Count) For Each _InvoiceHeader In _InvoiceHeader_Collection RaiseEvent DoWork() GLFunctions.ReconfigurePCI(_uow, _InvoiceHeader.CustomersFrom, _InvoiceHeader.Customers, 0, _InvoiceHeader.ConnectInfo) Next RaiseEvent FinalWork Dim _RegistryHeader_Collection As New XPCollection(Of RegistryHeader)(_uow, CriteriaOperator.Parse("RegistryAcceptState=0 and RegistryType.RegistryMainType=0 and IsEditable=False and isnull(F_GLAccounts)=True")) RaiseEvent InitWork(1, 1, _RegistryHeader_Collection.Count) For Each _RegistryHeader In _RegistryHeader_Collection RaiseEvent DoWork() GLFunctions.ReconfigurePCI(_uow, _RegistryHeader.CustomersFrom, _RegistryHeader.Customers, 1, _RegistryHeader.DocumentNumber) Next RaiseEvent FinalWork If Frame.GetController(Of RefreshController).Active.ResultValue = True Then If Frame.GetController(Of RefreshController).RefreshAction.Active.ResultValue = True Then Frame.GetController(Of RefreshController).RefreshAction.DoExecute() End If End If End Sub Private Sub aViewPCIDGroup_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewPCIDGroup.Execute Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _PCIGroup As PCIGroup = TryCast(View.SelectedObjects(0), PCIGroup) ViewPDCI.ViewPDCIDetail(_onew, Application, e, _PCIGroup.CustomersFrom, _ _PCIGroup.Customers, _PCIGroup.PartnerType, _ _PCIGroup.ConnectInfo) End Sub Private Sub aCreateConnectionDirect_Cancel(ByVal sender As Object, ByVal e As System.EventArgs) Handles aCreateConnectionDirect.Cancel noselect = False End Sub Private Sub aCreateConnectionDirect_CustomizePopupWindowParams(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateConnectionDirect.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _PartnerConnectionInfoCleanUp_PopupWindow As PartnerConnectionInfoCleanUp_PopupWindow Dim _PCIDetail As PCIDetail Dim _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem As PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem Dim _CustomersFrom As CustomersFrom Dim _Customers As Customers Dim _PartnerType As ePartnerType Dim _IsAccount As Boolean = False Dim _AccountCount As Long = 0 Dim _Currency_Account As String noselect = True _PartnerConnectionInfoCleanUp_PopupWindow = _onew.FindObject(Of PartnerConnectionInfoCleanUp_PopupWindow)(CriteriaOperator.Parse("1=1")) If _PartnerConnectionInfoCleanUp_PopupWindow Is Nothing Then _PartnerConnectionInfoCleanUp_PopupWindow = _onew.CreateObject(Of PartnerConnectionInfoCleanUp_PopupWindow)() End If If _PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.Count > 0 Then _onew.Delete(_PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem) End If For Each _PCIDetail In selection If _PCIDetail.MainType = "01-Account" Then _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo = _PCIDetail.ConnectInfo _PartnerType = _PCIDetail.PartnerType _Customers = _PCIDetail.Customers _CustomersFrom = _PCIDetail.CustomersFrom _Currency_Account = _PCIDetail.CurrencyName_Account.ShortName _IsAccount = True _AccountCount += 1 End If Next If _IsAccount = False Then _onew.Rollback() noselect = False Throw New Exception("*Legalább egy számlát ki kell választani !") End If If _AccountCount > 1 Then _onew.Rollback() noselect = False Throw New Exception("*Csak egy számlát lehet kiválasztani !") End If _IsAccount = False For Each _PCIDetail In selection Select Case _PCIDetail.MainType Case "03-Cassa", "02-Bank", "04-Compensation" If _PCIDetail.CustomersFrom.Oid <> _CustomersFrom.Oid Or _ _PCIDetail.Customers.Oid <> _Customers.Oid Or _ _PCIDetail.PartnerType <> _PartnerType Then _onew.Rollback() Throw New Exception("*Csak azonos saját cég, partner és partner tipusú bizonylatokat lehet kijelölni !") Else If _PCIDetail.CurrencyName.ShortName = _Currency_Account Or _Currency_Account = "HUF" Then _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem = _onew.CreateObject(Of PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem)() _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.PartnerConnectionInfoCleanUp_PopupWindow = _PartnerConnectionInfoCleanUp_PopupWindow _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.PCIDetail = _onew.GetObjectByKey(Of PCIDetail)(_PCIDetail.Oid) Else _onew.Rollback() Throw New Exception("*Eltérõ devizanemû tételek !") End If End If End Select Next If _PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.Count <= 0 Then _onew.Rollback() noselect = False Throw New Exception("*Legalább egy pénzügyi sort ki kell választani !") End If e.View = Application.CreateDetailView(_onew, "PartnerConnectionInfoCleanUp_PopupWindow_DetailView_Direct", False, _PartnerConnectionInfoCleanUp_PopupWindow) End Sub Private Sub aCreateConnectionDirect_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateConnectionDirect.Execute '-- Ez a kijelölt sorokat összepontozza --------------------------------------------------------------------------------- Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _PartnerConnectionInfoCleanUp_PopupWindow As PartnerConnectionInfoCleanUp_PopupWindow = TryCast(e.PopupWindow.View.SelectedObjects(0), PartnerConnectionInfoCleanUp_PopupWindow) Dim _PCIDetail As PCIDetail Dim _ConnectInfo_Prev As String = "" Dim _ConnectInfo_Next As String = "" Dim _GLRows As GLRows Dim _GLAccounts As GLAccounts For Each _PCIDetail In selection Select Case _PCIDetail.MainType Case "03-Cassa", "02-Bank", "04-Compensation" If _PCIDetail.GLRows IsNot Nothing Then _GLRows = _ocur.FindObject(Of GLRows)(CriteriaOperator.Parse("Oid=?", _PCIDetail.GLRows.Oid), True) If _GLRows IsNot Nothing Then _ConnectInfo_Prev = _GLRows.ConnectInfo _GLRows.ConnectInfo = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _ConnectInfo_Next = _GLRows.ConnectInfo _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If End If Case "01-Account" If _PCIDetail.InvoiceHeader IsNot Nothing Then _ConnectInfo_Prev = _PCIDetail.InvoiceHeader.ConnectInfo _PCIDetail.InvoiceHeader.ConnectInfo = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _ConnectInfo_Next = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _PCIDetail.InvoiceHeader.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If If _PCIDetail.RegistryHeader IsNot Nothing Then _ConnectInfo_Prev = _PCIDetail.RegistryHeader.F_ConnectInfo _PCIDetail.RegistryHeader.F_ConnectInfo = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _ConnectInfo_Next = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _PCIDetail.RegistryHeader.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If If _PCIDetail.GLAccounts IsNot Nothing Then _GLAccounts = _PCIDetail.GLAccounts _ConnectInfo_Prev = _GLAccounts.ConnectInfo _GLAccounts.row_ConnectInfo = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _ConnectInfo_Next = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _GLAccounts.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If End Select Next Frame.GetController(Of RefreshController).RefreshAction.DoExecute() noselect = False End Sub Private Sub aCreateConnectionLiquidAssets_Cancel(ByVal sender As Object, ByVal e As System.EventArgs) Handles aCreateConnectionLiquidAssets.Cancel noselect = False End Sub Private Sub aCreateConnectionLiquidAssets_CustomizePopupWindowParams(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateConnectionLiquidAssets.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _PartnerConnectionInfoCleanUp_PopupWindow As PartnerConnectionInfoCleanUp_PopupWindow Dim _PCIDetail As PCIDetail Dim _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem As PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem Dim _CustomersFrom As CustomersFrom Dim _Customers As Customers Dim _PartnerType As ePartnerType Dim _IsAccount As Boolean = False noselect = True _PartnerConnectionInfoCleanUp_PopupWindow = _onew.FindObject(Of PartnerConnectionInfoCleanUp_PopupWindow)(CriteriaOperator.Parse("1=1")) If _PartnerConnectionInfoCleanUp_PopupWindow Is Nothing Then _PartnerConnectionInfoCleanUp_PopupWindow = _onew.CreateObject(Of PartnerConnectionInfoCleanUp_PopupWindow)() End If If _PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.Count > 0 Then _onew.Delete(_PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem) End If For Each _PCIDetail In selection If _PCIDetail.MainType = "01-Account" Then _IsAccount = True Exit For End If _PartnerType = _PCIDetail.PartnerType _Customers = _PCIDetail.Customers _CustomersFrom = _PCIDetail.CustomersFrom Next If _IsAccount = True Then _onew.Rollback() noselect = False Throw New Exception("*Csak pénzügyi teljesítéseket lehet kiválasztani !") End If _IsAccount = False For Each _PCIDetail In selection Select Case _PCIDetail.MainType Case "03-Cassa", "02-Bank", "04-Compensation" If _PCIDetail.CustomersFrom.Oid <> _CustomersFrom.Oid Or _ _PCIDetail.Customers.Oid <> _Customers.Oid Or _ _PCIDetail.PartnerType <> _PartnerType Then _onew.Rollback() Throw New Exception("*Csak azonos saját cég, partner és partner tipusú bizonylatokat lehet kijelölni !") Else _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem = _onew.CreateObject(Of PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem)() _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.PartnerConnectionInfoCleanUp_PopupWindow = _PartnerConnectionInfoCleanUp_PopupWindow _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.PCIDetail = _onew.GetObjectByKey(Of PCIDetail)(_PCIDetail.Oid) End If End Select Next If _PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.Count <= 0 Then _onew.Rollback() noselect = False Throw New Exception("*Legalább egy pénzügyi sort ki kell választani !") End If e.View = Application.CreateDetailView(_onew, "PartnerConnectionInfoCleanUp_PopupWindow_DetailView_LiquidAssets", False, _PartnerConnectionInfoCleanUp_PopupWindow) End Sub Private Sub aCreateConnectionLiquidAssets_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateConnectionLiquidAssets.Execute '-- Ez a kijelölt sorokat összepontozza --------------------------------------------------------------------------------- Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _PartnerConnectionInfoCleanUp_PopupWindow As PartnerConnectionInfoCleanUp_PopupWindow = TryCast(e.PopupWindow.View.SelectedObjects(0), PartnerConnectionInfoCleanUp_PopupWindow) Dim _PCIDetail As PCIDetail Dim _ConnectInfo_Prev As String = "" Dim _ConnectInfo_Next As String = "" Dim _GLRows As GLRows For Each _PCIDetail In selection Select Case _PCIDetail.MainType Case "03-Cassa", "02-Bank", "04-Compensation" If _PCIDetail.GLRows IsNot Nothing Then _GLRows = _ocur.FindObject(Of GLRows)(CriteriaOperator.Parse("Oid=?", _PCIDetail.GLRows.Oid), True) If _GLRows IsNot Nothing Then _ConnectInfo_Prev = _GLRows.ConnectInfo _GLRows.ConnectInfo = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _ConnectInfo_Next = _GLRows.ConnectInfo _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If End If Case "01-Account" End Select Next Frame.GetController(Of RefreshController).RefreshAction.DoExecute() noselect = False End Sub Private Sub aCreateConnectionDivide_Cancel(ByVal sender As Object, ByVal e As System.EventArgs) Handles aCreateConnectionDivide.Cancel noselect = False End Sub Private Sub aCreateConnectionDivide_CustomizePopupWindowParams(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateConnectionDivide.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _GLRowsDivideH As GLRowsDivideH = _onew.CreateObject(Of GLRowsDivideH)() Dim _PCIDetail As PCIDetail = TryCast(View.SelectedObjects(0), PCIDetail) If _PCIDetail IsNot Nothing Then _GLRowsDivideH.GLRows_Oid = _PCIDetail.GLRows.Oid _GLRowsDivideH.row_Customers = _onew.GetObject(_PCIDetail.Customers) _GLRowsDivideH.row_PartnerType = _PCIDetail.PartnerType e.View = Application.CreateDetailView(_onew, "GLRowsDivideH_DetailView_ConnectionDivide", False, _GLRowsDivideH) End If End Sub Private Sub aCreateConnectionDivide_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateConnectionDivide.Execute '-- Sor bontása Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _GLRowsDivideH As GLRowsDivideH = TryCast(e.PopupWindow.View.SelectedObjects(0), GLRowsDivideH) Dim _PCIDetail As PCIDetail = TryCast(View.SelectedObjects(0), PCIDetail) Select Case _PCIDetail.MainType Case "02-Bank", "03-Cassa" Case Else _ocur.Rollback() Throw New Exception("*Csak banki és pénztári tételt lehet szétbontani pontozási számokra !") End Select Dim _GLRows As GLRows = _ocur.GetObjectByKey(Of GLRows)(_PCIDetail.GLRows.Oid) If _GLRows IsNot Nothing Then _GLRows.DivideRows(_ocur, _GLRows, _GLRowsDivideH, True) End If End Sub Private Sub aCreateConnectionDirectDifferentCurrency_Cancel(ByVal sender As Object, ByVal e As System.EventArgs) Handles aCreateConnectionDirectDifferentCurrency.Cancel noselect = False End Sub Private Sub aCreateConnectionDirectDifferentCurrency_CustomizePopupWindowParams(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateConnectionDirectDifferentCurrency.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _PCIDetail As PCIDetail Dim _PCIDetail_Account As PCIDetail Dim _PCIDetail_Connect As PCIDetail Dim _RateDiffCurrencyPopUp As RateDiffCurrencyPopUp = _onew.CreateObject(Of RateDiffCurrencyPopUp)() Dim _IsAccount As Boolean = False Dim _AccountCount As Long = 0 Dim _CurrencyName_Account As CurrencyName noselect = True For Each _PCIDetail In selection If _PCIDetail.MainType = "01-Account" Then If _PCIDetail.CurrencyName_Account.ShortName <> "HUF" Then _PCIDetail_Account = _PCIDetail _CurrencyName_Account = _PCIDetail.CurrencyName_Account _IsAccount = True _AccountCount += 1 End If End If Next If _IsAccount = False Then _onew.Rollback() noselect = False Throw New Exception("*Legalább egy számlát ki kell választani ami NEM HUF !") End If If _AccountCount > 1 Then _onew.Rollback() noselect = False Throw New Exception("*Csak egy számlát lehet kiválasztani !") End If If selection.Count > 2 Or selection.Count = 0 Then _onew.Rollback() noselect = False Throw New Exception("*Csak egy számlát és egy pénzügyi teljesítést kell kiválazstani !") End If For Each _PCIDetail In selection Select Case _PCIDetail.MainType Case "03-Cassa", "02-Bank", "04-Compensation" _PCIDetail_Connect = _PCIDetail If _PCIDetail.CurrencyName.ShortName = "HUF" Then _RateDiffCurrencyPopUp.IsHUF = True Else _RateDiffCurrencyPopUp.IsHUF = False End If Exit For End Select Next If _PCIDetail_Account.CustomersFrom.Oid <> _PCIDetail_Connect.CustomersFrom.Oid Then _onew.Rollback() noselect = False Throw New Exception("*Csak azonos saját cégû bizonylatokat lehet kiválasztani !") End If If _PCIDetail_Account.Customers.Oid <> _PCIDetail_Connect.Customers.Oid Then _onew.Rollback() noselect = False Throw New Exception("*Csak azonos partnerû bizonylatokat lehet kiválasztani !") End If If _PCIDetail_Account.PartnerType <> _PCIDetail_Connect.PartnerType Then _onew.Rollback() noselect = False Throw New Exception("*Csak azonos partner tipusú bizonylatokat lehet kiválasztani !") End If e.View = Application.CreateDetailView(_onew, "RateDiffCurrencyPopUp_DetailView", False, _RateDiffCurrencyPopUp) End Sub Private Sub aCreateConnectionDirectDifferentCurrency_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateConnectionDirectDifferentCurrency.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _RateDiffCurrencyPopUp As RateDiffCurrencyPopUp = TryCast(e.PopupWindow.View.SelectedObjects(0), RateDiffCurrencyPopUp) Dim _GLRows As GLRows Dim _ConnectInfo As String = "" Dim _PCIDetail As PCIDetail Dim _ConnectInfo_Prev As String = "" Dim _ConnectInfo_Next As String = "" For Each _PCIDetail In selection Select Case _PCIDetail.MainType Case "01-Account" _ConnectInfo = _PCIDetail.ConnectInfo Exit For End Select Next For Each _PCIDetail In selection Select Case _PCIDetail.MainType Case "03-Cassa", "02-Bank", "04-Compensation" If _PCIDetail.GLRows IsNot Nothing Then _GLRows = _ocur.GetObjectByKey(Of GLRows)(_PCIDetail.GLRows.Oid) _ConnectInfo_Prev = _GLRows.ConnectInfo _GLRows.ConnectInfo = _ConnectInfo _ConnectInfo_Next = _GLRows.ConnectInfo _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) If _PCIDetail.CurrencyName.ShortName = "HUF" Then If _GLRows.InAmountHUF > 0 Then _GLRows.InAmountDEV2 = Math.Round(_GLRows.InAmountHUF / Math.Round(_RateDiffCurrencyPopUp.CurrencyRate, 2, MidpointRounding.AwayFromZero), 2, MidpointRounding.AwayFromZero) _GLRows.CurrencyRate2 = Math.Round(_RateDiffCurrencyPopUp.CurrencyRate, 2, MidpointRounding.AwayFromZero) Else _GLRows.OutAmountDEV2 = Math.Round(_GLRows.OutAmountHUF / Math.Round(_RateDiffCurrencyPopUp.CurrencyRate, 2, MidpointRounding.AwayFromZero), 2, MidpointRounding.AwayFromZero) _GLRows.CurrencyRate2 = Math.Round(_RateDiffCurrencyPopUp.CurrencyRate, 2, MidpointRounding.AwayFromZero) End If Else If _GLRows.InAmountDEV > 0 Then _GLRows.InAmountDEV2 = Math.Round(_GLRows.InAmountDEV / Math.Round(_RateDiffCurrencyPopUp.CurrencyRate, 2, MidpointRounding.AwayFromZero), 2, MidpointRounding.AwayFromZero) _GLRows.CurrencyRate2 = Math.Round(_RateDiffCurrencyPopUp.CurrencyRate, 2, MidpointRounding.AwayFromZero) Else _GLRows.OutAmountDEV2 = Math.Round(_GLRows.OutAmountDEV / Math.Round(_RateDiffCurrencyPopUp.CurrencyRate, 2, MidpointRounding.AwayFromZero), 2, MidpointRounding.AwayFromZero) _GLRows.CurrencyRate2 = Math.Round(_RateDiffCurrencyPopUp.CurrencyRate, 2, MidpointRounding.AwayFromZero) End If End If Exit For End If End Select Next _ocur.CommitChanges() noselect = False Frame.GetController(Of RefreshController).RefreshAction.DoExecute() End Sub Private Sub aViewRegistryPCIGroup_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewRegistryPCIGroup.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _PCIGroup As PCIGroup = TryCast(View.SelectedObjects(0), PCIGroup) If _PCIGroup IsNot Nothing Then ViewRegistry.ViewRegistry(_ocur, Application, e, _PCIGroup.CustomersFrom, _ _PCIGroup.Customers, _PCIGroup.ConnectInfo) End If End Sub Private Sub aViewAttachmentsPCIGroup_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewAttachmentsPCIGroup.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _PCIGroup As PCIGroup = TryCast(View.SelectedObjects(0), PCIGroup) If _PCIGroup IsNot Nothing Then ViewAttachments.ViewAttachments(_ocur, Frame, _PCIGroup.CustomersFrom, _ _PCIGroup.Customers, _PCIGroup.ConnectInfo, _ "") End If End Sub Private Sub aCreateConnectionDrop_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCreateConnectionDrop.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _PCIDetail As PCIDetail Dim _GLRows As GLRows Dim _ConnectInfo_Prev As String = "" Dim _ConnectInfo_Next As String = "" RaiseEvent InitWork(1, 1, View.SelectedObjects.Count) For Each _PCIDetail In View.SelectedObjects RaiseEvent DoWork() Select Case _PCIDetail.MainType Case "02-Bank", "03-Cassa", "04-Compensation" If _PCIDetail.GLRows IsNot Nothing Then _GLRows = _ocur.FindObject(Of GLRows)(CriteriaOperator.Parse("Oid=?", _PCIDetail.GLRows.Oid), True) If _GLRows IsNot Nothing Then _ConnectInfo_Prev = _GLRows.ConnectInfo _GLRows.ConnectInfo = "" _ConnectInfo_Next = _GLRows.ConnectInfo _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If End If Case "01-Account" If _PCIDetail.InvoiceHeader IsNot Nothing Then _ConnectInfo_Prev = _PCIDetail.InvoiceHeader.ConnectInfo _PCIDetail.InvoiceHeader.ConnectInfo = _PCIDetail.InvoiceHeader.DocumentNumber _ConnectInfo_Next = _PCIDetail.InvoiceHeader.DocumentNumber _PCIDetail.InvoiceHeader.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If If _PCIDetail.RegistryHeader IsNot Nothing Then _ConnectInfo_Prev = _PCIDetail.RegistryHeader.F_ConnectInfo _PCIDetail.RegistryHeader.F_ConnectInfo = _PCIDetail.RegistryHeader.DocumentNumber _ConnectInfo_Next = _PCIDetail.RegistryHeader.DocumentNumber _PCIDetail.RegistryHeader.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If If _PCIDetail.GLAccounts IsNot Nothing Then Dim _GLAccounts As GLAccounts _GLAccounts = _PCIDetail.GLAccounts _ConnectInfo_Prev = _GLAccounts.ConnectInfo _GLAccounts.row_ConnectInfo = _GLAccounts.DocumentNumber _ConnectInfo_Next = _GLAccounts.DocumentNumber _GLAccounts.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If End Select Next _ocur.CommitChanges() RaiseEvent FinalWork End Sub Private Sub aCreateRateDiffPCIGroup_Cancel(ByVal sender As Object, ByVal e As System.EventArgs) Handles aCreateRateDiffPCIGroup.Cancel noselect = False End Sub Private Sub aCreateRateDiffPCIGroup_CustomizePopupWindowParams(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateRateDiffPCIGroup.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _RateDiffPopUp As RateDiffPopUp = _onew.CreateObject(Of RateDiffPopUp)() noselect = True _RateDiffPopUp.DateExecution = Now e.View = Application.CreateDetailView(_onew, "RateDiffPopUp_DetailView", False, _RateDiffPopUp) End Sub Private Sub aCreateRateDiffPCIGroup_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateRateDiffPCIGroup.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _RateDiffPopUp As RateDiffPopUp = TryCast(e.PopupWindow.View.SelectedObjects(0), RateDiffPopUp) Dim _PCIGroup As PCIGroup Dim _GLHeader_Ratediff As GLMixed = Nothing Dim _GLRows_RateDiff As GLRows Dim _DebitChartOfAccounts As ChartOfAccounts Dim _CreditChartOfAccounts As ChartOfAccounts Dim _Controlling As Controlling Dim _GLMixedNG As GLMixedNG Dim _GLHeader_RateDiffParameter = _ocur.FindObject(Of GLHeader_RateDiffParameter)(CriteriaOperator.Parse("1=1")) If _GLHeader_RateDiffParameter Is Nothing Then Exit Sub Dim _ChartOfAccounts_RateDiff_Win As ChartOfAccounts = _GLHeader_RateDiffParameter.GetChartOfAccounts(_RateDiffPopUp.DateExecution.Year, eWinLoss.eRateDiffWin) Dim _ChartOfAccounts_RateDiff_Loss As ChartOfAccounts = _GLHeader_RateDiffParameter.GetChartOfAccounts(_RateDiffPopUp.DateExecution.Year, eWinLoss.eRateDiffLoss) Dim _Controlling_RateDiff_Win As Controlling = _GLHeader_RateDiffParameter.Controlling_RateDiff_Win Dim _Controlling_RateDiff_Loss As Controlling = _GLHeader_RateDiffParameter.Controlling_RateDiff_Loss Dim _CustomersFrom As CustomersFrom Dim i As Long = 0 Dim _InAmountHUF As Double = 0 Dim _OutAmountHUF As Double = 0 If selection.Count <= 0 Then Exit Sub For Each _PCIGroup In selection If i = 0 Then _CustomersFrom = _PCIGroup.CustomersFrom i = 1 End If If _PCIGroup.CustomersFrom.Oid <> _CustomersFrom.Oid Then Throw New Exception("*Csak azonos saját cégû sorok jelölhetõ ki egyszerre !") Exit For End If Next _GLHeader_Ratediff = _ocur.CreateObject(Of GLMixed)() _GLHeader_Ratediff.CustomersFrom = _CustomersFrom _GLMixedNG = _ocur.FindObject(Of GLMixedNG)(CriteriaOperator.Parse("CustomersFrom=?", _GLHeader_Ratediff.CustomersFrom), True) If _GLMixedNG IsNot Nothing Then If _GLHeader_Ratediff.DocumentNumber = "" Then _GLHeader_Ratediff.DocumentNumber = _GLMixedNG.NumberGenerator.GetNewNumber(_GLMixedNG.NumberGenerator_RateDiff) End If End If _GLHeader_Ratediff.DateExecution = _RateDiffPopUp.DateExecution _GLHeader_Ratediff.DateCreated = _RateDiffPopUp.DateExecution _GLHeader_Ratediff.NoteHeader = _RateDiffPopUp.Description _GLHeader_Ratediff.CurrencyRate = 1 _GLHeader_Ratediff.GLDocumentType = eGLDocumentType.eGLRateDiff _GLHeader_Ratediff.IsEditable = False _GLHeader_Ratediff.IsStorno = False _GLHeader_Ratediff.CurrencyName = _ocur.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName='HUF'")) For Each _PCIGroup In selection _OutAmountHUF = 0 _InAmountHUF = 0 Select Case _PCIGroup.PartnerType Case ePartnerType.ePayabels If _PCIGroup.BallanceHUF > 0 Then 'Árfolyam nyereség szállító _DebitChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Ratediff.DateExecution.Year, eVATMode.eIn) _CreditChartOfAccounts = _ChartOfAccounts_RateDiff_Win _Controlling = _Controlling_RateDiff_Win _OutAmountHUF = Math.Abs(_PCIGroup.BallanceHUF) Else 'Árfolyam veszteség szállító _DebitChartOfAccounts = _ChartOfAccounts_RateDiff_Loss _CreditChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Ratediff.DateExecution.Year, eVATMode.eIn) _Controlling = _Controlling_RateDiff_Loss _InAmountHUF = Math.Abs(_PCIGroup.BallanceHUF) End If Case ePartnerType.eReceivables If _PCIGroup.BallanceHUF > 0 Then ' Árfolyam veszteség vevõ _DebitChartOfAccounts = _ChartOfAccounts_RateDiff_Loss _CreditChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Ratediff.DateExecution.Year, eVATMode.eOut) _Controlling = _Controlling_RateDiff_Loss _InAmountHUF = Math.Abs(_PCIGroup.BallanceHUF) Else 'Árfolyam nyereség vevõ _DebitChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Ratediff.DateExecution.Year, eVATMode.eOut) _CreditChartOfAccounts = _ChartOfAccounts_RateDiff_Win _Controlling = _Controlling_RateDiff_Win _OutAmountHUF = Math.Abs(_PCIGroup.BallanceHUF) End If End Select _GLRows_RateDiff = _ocur.CreateObject(Of GLRows)() _GLRows_RateDiff.GLHeader = _GLHeader_Ratediff _GLRows_RateDiff.InAmountHUF = _InAmountHUF _GLRows_RateDiff.OutAmountHUF = _OutAmountHUF _GLRows_RateDiff.AddGLRows(_GLHeader_Ratediff, _DebitChartOfAccounts, _CreditChartOfAccounts, 0, Math.Abs(_PCIGroup.BallanceHUF), Nothing, _ _PCIGroup.Customers, Nothing, Nothing, "", Nothing, _Controlling, Nothing, Nothing, Nothing, _PCIGroup.ConnectInfo, _ eGLRowsTypeVAT.eNettoRow, Guid.NewGuid, eTransactionType.eNotSet, eCashType.ePartner, _PCIGroup.PartnerType) _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIGroup.CustomersFrom, _PCIGroup.Customers, _PCIGroup.PartnerType, _PCIGroup.ConnectInfo) Next _ocur.CommitChanges() Frame.GetController(Of RefreshController).RefreshAction.DoExecute() noselect = False End Sub Private Sub aPCICheck_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aPCICheck.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _PCIGroup As PCIGroup RaiseEvent InitWork(1, 1, View.SelectedObjects.Count) For Each _PCIGroup In View.SelectedObjects RaiseEvent DoWork() If _PCIGroup IsNot Nothing Then GLFunctions.ReconfigurePCI(_uow, _PCIGroup.CustomersFrom, _PCIGroup.Customers, _PCIGroup.PartnerType, _PCIGroup.ConnectInfo) End If Next RaiseEvent FinalWork Frame.GetController(Of RefreshController).RefreshAction.DoExecute() End Sub Private Sub aCreateConnectionAccount_CustomizePopupWindowParams(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateConnectionAccount.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _PartnerConnectionInfoCleanUp_PopupWindow As PartnerConnectionInfoCleanUp_PopupWindow Dim _PCIDetail As PCIDetail Dim _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem As PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem Dim _CustomersFrom As CustomersFrom Dim _Customers As Customers Dim _PartnerType As ePartnerType Dim _IsAccount As Boolean = False Dim _AccountCount As Long = 0 Dim _Currency_Account As String noselect = True _PartnerConnectionInfoCleanUp_PopupWindow = _onew.FindObject(Of PartnerConnectionInfoCleanUp_PopupWindow)(CriteriaOperator.Parse("1=1")) If _PartnerConnectionInfoCleanUp_PopupWindow Is Nothing Then _PartnerConnectionInfoCleanUp_PopupWindow = _onew.CreateObject(Of PartnerConnectionInfoCleanUp_PopupWindow)() End If If _PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.Count > 0 Then _onew.Delete(_PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem) End If For Each _PCIDetail In selection If _PCIDetail.MainType = "01-Account" And (_PCIDetail.AmountDEV_Account > 0 Or _PCIDetail.AmountHUF_Account > 0) Then _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo = _PCIDetail.ConnectInfo _PartnerType = _PCIDetail.PartnerType _Customers = _PCIDetail.Customers _CustomersFrom = _PCIDetail.CustomersFrom _Currency_Account = _PCIDetail.CurrencyName_Account.ShortName _IsAccount = True _AccountCount += 1 End If Next If _IsAccount = False Then _onew.Rollback() noselect = False Throw New Exception("*Legalább egy pozitív számlát ki kell választani !") End If If _AccountCount > 1 Then _onew.Rollback() noselect = False Throw New Exception("*Csak egy pozitív számlát lehet kiválasztani !") End If _IsAccount = False For Each _PCIDetail In selection If _PCIDetail.MainType = "01-Account" And (_PCIDetail.AmountDEV_Account < 0 Or _PCIDetail.AmountHUF_Account < 0) Then If _PCIDetail.CustomersFrom.Oid <> _CustomersFrom.Oid Or _ _PCIDetail.Customers.Oid <> _Customers.Oid Or _ _PCIDetail.PartnerType <> _PartnerType Then _onew.Rollback() Throw New Exception("*Csak azonos saját cég, partner és partner tipusú bizonylatokat lehet kijelölni !") Else If _PCIDetail.CurrencyName.ShortName = _Currency_Account Or _Currency_Account = "HUF" Then _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem = _onew.CreateObject(Of PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem)() _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.PartnerConnectionInfoCleanUp_PopupWindow = _PartnerConnectionInfoCleanUp_PopupWindow _PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.PCIDetail = _onew.GetObjectByKey(Of PCIDetail)(_PCIDetail.Oid) Else _onew.Rollback() Throw New Exception("*Eltérõ devizanemû tételek !") End If End If End If Next If _PartnerConnectionInfoCleanUp_PopupWindow.PartnerConnectionInfoCleanUp_PopupWindow_SelectedItem.Count <= 0 Then _onew.Rollback() noselect = False Throw New Exception("*Legalább egy negatív számlát ki kell választani !") End If e.View = Application.CreateDetailView(_onew, "PartnerConnectionInfoCleanUp_PopupWindow_DetailView_Direct", False, _PartnerConnectionInfoCleanUp_PopupWindow) End Sub Private Sub aCreateConnectionAccount_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateConnectionAccount.Execute 'Számlák és stornó vagy jóváíró számlák összepontozása '-- Ez a kijelölt sorokat összepontozza --------------------------------------------------------------------------------- Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _PartnerConnectionInfoCleanUp_PopupWindow As PartnerConnectionInfoCleanUp_PopupWindow = TryCast(e.PopupWindow.View.SelectedObjects(0), PartnerConnectionInfoCleanUp_PopupWindow) Dim _PCIDetail As PCIDetail Dim _ConnectInfo_Prev As String = "" Dim _ConnectInfo_Next As String = "" Dim _GLAccounts As GLAccounts For Each _PCIDetail In selection Select Case _PCIDetail.MainType Case "01-Account" If _PCIDetail.InvoiceHeader IsNot Nothing Then _ConnectInfo_Prev = _PCIDetail.InvoiceHeader.ConnectInfo _PCIDetail.InvoiceHeader.ConnectInfo = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _ConnectInfo_Next = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _PCIDetail.InvoiceHeader.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If If _PCIDetail.RegistryHeader IsNot Nothing Then _ConnectInfo_Prev = _PCIDetail.RegistryHeader.F_ConnectInfo _PCIDetail.RegistryHeader.F_ConnectInfo = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _ConnectInfo_Next = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _PCIDetail.RegistryHeader.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If If _PCIDetail.GLAccounts IsNot Nothing Then _GLAccounts = _PCIDetail.GLAccounts _ConnectInfo_Prev = _GLAccounts.ConnectInfo _GLAccounts.row_ConnectInfo = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _ConnectInfo_Next = _PartnerConnectionInfoCleanUp_PopupWindow.ConnectInfo _GLAccounts.Save() _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Prev) GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _ConnectInfo_Next) End If End Select Next Frame.GetController(Of RefreshController).RefreshAction.DoExecute() noselect = False End Sub Private Sub aCreateRoundingPCIGroup_Cancel(ByVal sender As Object, ByVal e As System.EventArgs) Handles aCreateRoundingPCIGroup.Cancel noselect = False End Sub Private Sub aCreateRoundingPCIGroup_CustomizePopupWindowParams(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateRoundingPCIGroup.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _RateDiffPopUp As RateDiffPopUp = _onew.CreateObject(Of RateDiffPopUp)() noselect = True _RateDiffPopUp.DateExecution = Now e.View = Application.CreateDetailView(_onew, "RateDiffPopUp_DetailView", False, _RateDiffPopUp) End Sub Private Sub aCreateRoundingPCIGroup_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateRoundingPCIGroup.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _RateDiffPopUp As RateDiffPopUp = TryCast(e.PopupWindow.View.SelectedObjects(0), RateDiffPopUp) Dim _PCIGroup As PCIGroup Dim _GLHeader_Rounding As GLMixed = Nothing Dim _GLRows_Rounding As GLRows Dim _DebitChartOfAccounts As ChartOfAccounts = Nothing Dim _CreditChartOfAccounts As ChartOfAccounts = Nothing Dim _Controlling As Controlling = Nothing Dim _GLMixedNG As GLMixedNG Dim _Rate As Double = 1 Dim _GLHeader_RoundingParameter = _ocur.FindObject(Of GLHeader_RateDiffParameter)(CriteriaOperator.Parse("1=1")) If _GLHeader_RoundingParameter Is Nothing Then Throw New Exception("*Nincs beállítva az elengedési paraméter !") Exit Sub End If Dim _ChartOfAccounts_Rounding_Win As ChartOfAccounts = _GLHeader_RoundingParameter.GetChartOfAccounts(_RateDiffPopUp.DateExecution.Year, eWinLoss.eRoundingWin) Dim _ChartOfAccounts_Rounding_Loss As ChartOfAccounts = _GLHeader_RoundingParameter.GetChartOfAccounts(_RateDiffPopUp.DateExecution.Year, eWinLoss.eRoundingLoss) Dim _Controlling_Rounding_Win As Controlling = _GLHeader_RoundingParameter.Controlling_Rounding_Win Dim _Controlling_Rounding_Loss As Controlling = _GLHeader_RoundingParameter.Controlling_Rounding_Loss If _ChartOfAccounts_Rounding_Loss Is Nothing Or _ _ChartOfAccounts_Rounding_Win Is Nothing Then Throw New Exception("*Nincs beállítva az elengedési paraméter !") Exit Sub End If Dim _CurrencyName As CurrencyName = Nothing Dim _CustomersFrom As CustomersFrom = Nothing Dim i As Long = 0 Dim _InAmountHUF As Double = 0 Dim _OutAmountHUF As Double = 0 Dim _InAmountDEV As Double = 0 Dim _OutAmountDEV As Double = 0 If selection.Count <= 0 Then Exit Sub For Each _PCIGroup In selection If i = 0 Then _CustomersFrom = _PCIGroup.CustomersFrom _CurrencyName = _PCIGroup.CurrencyName_Account If _PCIGroup.AmountDEV_Account <> 0 Then _Rate = _PCIGroup.AmountHUF_Account / _PCIGroup.AmountDEV_Account End If i = 1 End If If _PCIGroup.CustomersFrom.Oid <> _CustomersFrom.Oid Then Throw New Exception("*Csak azonos saját cégû sorok jelölhetõ ki egyszerre !") Exit For End If If _PCIGroup.CurrencyName_Account.Oid <> _CurrencyName.Oid Then Throw New Exception("*Csak azonos devizával rendelkezõ sorok jelölhetõ ki egyszerre !") Exit For End If Next _GLHeader_Rounding = _ocur.CreateObject(Of GLMixed)() _GLHeader_Rounding.CustomersFrom = _CustomersFrom _GLMixedNG = _ocur.FindObject(Of GLMixedNG)(CriteriaOperator.Parse("CustomersFrom=?", _GLHeader_Rounding.CustomersFrom), True) If _GLMixedNG IsNot Nothing Then If _GLHeader_Rounding.DocumentNumber = "" Then _GLHeader_Rounding.DocumentNumber = _GLMixedNG.NumberGenerator.GetNewNumber(_GLMixedNG.NumberGenerator_Rounding) End If End If _GLHeader_Rounding.DateExecution = _RateDiffPopUp.DateExecution _GLHeader_Rounding.DateCreated = _RateDiffPopUp.DateExecution _GLHeader_Rounding.NoteHeader = _RateDiffPopUp.Description _GLHeader_Rounding.GLDocumentType = eGLDocumentType.eGLRateDiff _GLHeader_Rounding.IsEditable = False _GLHeader_Rounding.IsStorno = False For Each _PCIGroup In selection _GLHeader_Rounding.CurrencyName = _PCIGroup.CurrencyName_Account _OutAmountDEV = 0 _OutAmountHUF = 0 _InAmountDEV = 0 _InAmountHUF = 0 If _PCIGroup.CurrencyName_Account.ShortName = "HUF" Then Select Case _PCIGroup.PartnerType Case ePartnerType.ePayabels If _PCIGroup.BallanceHUF > 0 Then 'Elengedés nyereség _DebitChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Rounding.DateExecution.Year, eVATMode.eIn) _CreditChartOfAccounts = _ChartOfAccounts_Rounding_Win _Controlling = _Controlling_Rounding_Win _OutAmountHUF = Math.Abs(_PCIGroup.BallanceHUF) Else 'Elengedés veszteség _DebitChartOfAccounts = _ChartOfAccounts_Rounding_Loss _CreditChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Rounding.DateExecution.Year, eVATMode.eIn) _Controlling = _Controlling_Rounding_Loss _InAmountHUF = Math.Abs(_PCIGroup.BallanceHUF) End If Case ePartnerType.eReceivables If _PCIGroup.BallanceHUF > 0 Then ' Elengedés veszteség _DebitChartOfAccounts = _ChartOfAccounts_Rounding_Loss _CreditChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Rounding.DateExecution.Year, eVATMode.eOut) _Controlling = _Controlling_Rounding_Loss _InAmountHUF = Math.Abs(_PCIGroup.BallanceHUF) Else 'Elengedés nyereség _DebitChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Rounding.DateExecution.Year, eVATMode.eOut) _CreditChartOfAccounts = _ChartOfAccounts_Rounding_Win _Controlling = _Controlling_Rounding_Win _OutAmountHUF = Math.Abs(_PCIGroup.BallanceHUF) End If End Select Else Select Case _PCIGroup.PartnerType Case ePartnerType.ePayabels If _PCIGroup.BallanceDEV > 0 Then 'Elengedés nyereség szállító _DebitChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Rounding.DateExecution.Year, eVATMode.eIn) _CreditChartOfAccounts = _ChartOfAccounts_Rounding_Win _Controlling = _Controlling_Rounding_Win _OutAmountDEV = Math.Abs(_PCIGroup.BallanceDEV) Else 'Elengedés veszteség szállító _DebitChartOfAccounts = _ChartOfAccounts_Rounding_Loss _CreditChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Rounding.DateExecution.Year, eVATMode.eIn) _Controlling = _Controlling_Rounding_Loss _InAmountDEV = Math.Abs(_PCIGroup.BallanceDEV) End If Case ePartnerType.eReceivables If _PCIGroup.BallanceDEV > 0 Then ' Elengedés veszteség vevő _DebitChartOfAccounts = _ChartOfAccounts_Rounding_Loss _CreditChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Rounding.DateExecution.Year, eVATMode.eOut) _Controlling = _Controlling_Rounding_Loss _InAmountDEV = Math.Abs(_PCIGroup.BallanceDEV) Else 'Elengedés nyereség vevő _DebitChartOfAccounts = _PCIGroup.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Rounding.DateExecution.Year, eVATMode.eOut) _CreditChartOfAccounts = _ChartOfAccounts_Rounding_Win _Controlling = _Controlling_Rounding_Win _OutAmountDEV = Math.Abs(_PCIGroup.BallanceDEV) End If End Select End If _GLRows_Rounding = _ocur.CreateObject(Of GLRows)() _GLRows_Rounding.GLHeader = _GLHeader_Rounding If _PCIGroup.CurrencyName_Account.ShortName = "HUF" Then _GLRows_Rounding.InAmountHUF = _InAmountHUF _GLRows_Rounding.OutAmountHUF = _OutAmountHUF _GLRows_Rounding.InAmountDEV = 0 _GLRows_Rounding.OutAmountDEV = 0 _GLRows_Rounding.AddGLRows(_GLHeader_Rounding, _DebitChartOfAccounts, _CreditChartOfAccounts, 0, Math.Abs(_PCIGroup.BallanceHUF), Nothing, _ _PCIGroup.Customers, Nothing, Nothing, "", Nothing, _Controlling, Nothing, Nothing, Nothing, _PCIGroup.ConnectInfo, _ eGLRowsTypeVAT.eNettoRow, Guid.NewGuid, eTransactionType.eNotSet, eCashType.ePartner, _PCIGroup.PartnerType) Else _GLHeader_Rounding.CurrencyRate = _Rate _GLRows_Rounding.InAmountHUF = Math.Round(_InAmountDEV * _Rate, 0, MidpointRounding.AwayFromZero) _GLRows_Rounding.OutAmountHUF = Math.Round(_OutAmountDEV * _Rate, 0, MidpointRounding.AwayFromZero) _GLRows_Rounding.InAmountDEV = _InAmountDEV _GLRows_Rounding.OutAmountDEV = _OutAmountDEV _GLRows_Rounding.AddGLRows(_GLHeader_Rounding, _DebitChartOfAccounts, _CreditChartOfAccounts, Math.Abs(_PCIGroup.BallanceDEV), Math.Round(Math.Abs(_PCIGroup.BallanceDEV) * _Rate, 0, MidpointRounding.AwayFromZero), Nothing, _ _PCIGroup.Customers, Nothing, Nothing, "", Nothing, _Controlling, Nothing, Nothing, Nothing, _PCIGroup.ConnectInfo, _ eGLRowsTypeVAT.eNettoRow, Guid.NewGuid, eTransactionType.eNotSet, eCashType.ePartner, _PCIGroup.PartnerType) End If _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIGroup.CustomersFrom, _PCIGroup.Customers, _PCIGroup.PartnerType, _PCIGroup.ConnectInfo) Next _ocur.CommitChanges() Frame.GetController(Of RefreshController).RefreshAction.DoExecute() noselect = False End Sub Private Sub aPCICheckCustomers_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aPCICheckCustomers.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _PCIDetail As PCIDetail = TryCast(View.SelectedObjects(0), PCIDetail) Dim _Uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _Customers_OID As String = "" If _PCIDetail IsNot Nothing Then _Customers_OID = _PCIDetail.Customers.Oid.ToString RaiseEvent InitWork(1, 1, 4) Select Case GLOBAL_SQLType Case eSQLType.PostgreSQL _Uow.ExecuteNonQuery("delete from ""PCIDetail"" Where ""Customers""='" & _Customers_OID & "'") RaiseEvent DoWork() _Uow.ExecuteNonQuery("update ""InvoiceHeader"" set ""PCIGroup""=Null Where ""Customers""='" & _Customers_OID & "'") RaiseEvent DoWork() _Uow.ExecuteNonQuery("update ""PCIGroupAging"" set ""PCIGroup""=Null Where ""Customers""='" & _Customers_OID & "'") RaiseEvent DoWork() _Uow.ExecuteNonQuery("delete from ""PCIGroup"" Where ""Customers""='" & _Customers_OID & "'") RaiseEvent DoWork() _Uow.CommitChanges() Case Else _Uow.ExecuteNonQuery("delete from PCIDetail Where Customers='" & _Customers_OID & "'") RaiseEvent DoWork() _Uow.ExecuteNonQuery("update InvoiceHeader set PCIGroup=Null Where Customers='" & _Customers_OID & "'") RaiseEvent DoWork() _Uow.ExecuteNonQuery("update PCIGroupAging set PCIGroup=Null Where Customers='" & _Customers_OID & "'") RaiseEvent DoWork() _Uow.ExecuteNonQuery("delete from PCIGroup Where Customers='" & _Customers_OID & "'") RaiseEvent DoWork() _Uow.CommitChanges() End Select RaiseEvent FinalWork '// InvoiceHeader,GLAccount,RegistryHeader,GLRows Dim _InvoiceHeader_Collection As New XPCollection(Of InvoiceHeader)(_Uow, _ CriteriaOperator.Parse("IsDeleted=False and isnull(DocumentNumber)=False and Customers.Oid=? and IsEditable=False and isnull(GLAccounts)=True", _Customers_OID)) Dim _InvoiceHeader As InvoiceHeader RaiseEvent InitWork(1, 1, _InvoiceHeader_Collection.Count) For Each _InvoiceHeader In _InvoiceHeader_Collection RaiseEvent DoWork() GLFunctions.ReconfigurePCI(_Uow, _InvoiceHeader.CustomersFrom, _InvoiceHeader.Customers, 0, _InvoiceHeader.ConnectInfo) Next RaiseEvent FinalWork Dim _RegistryHeader_Collection As New XPCollection(Of RegistryHeader) _ (_Uow, CriteriaOperator.Parse("IsStorno=False and IsDeleted=False and RegistryAcceptState=0 and RegistryType.RegistryMainType =0 and Customers.Oid=? and IsEditable=False and isnull(F_GLAccounts)=True", _Customers_OID)) Dim _RegistryHeader As RegistryHeader RaiseEvent InitWork(1, 1, _RegistryHeader_Collection.Count) For Each _RegistryHeader In _RegistryHeader_Collection RaiseEvent DoWork() GLFunctions.ReconfigurePCI(_Uow, _RegistryHeader.CustomersFrom, _RegistryHeader.Customers, 1, _RegistryHeader.F_ConnectInfo) Next RaiseEvent FinalWork Dim _GLAccounts_Collection As New XPCollection(Of GLAccounts)(PersistentCriteriaEvaluationBehavior.InTransaction, _ _Uow, CriteriaOperator.Parse("IsDeleted=False and Customers.Oid=? and IsEditable=False", _ _Customers_OID)) Dim _GLAccounts As GLAccounts RaiseEvent DoWork() For Each _GLAccounts In _GLAccounts_Collection GLFunctions.ReconfigurePCI(_Uow, _GLAccounts.CustomersFrom, _GLAccounts.Customers, _GLAccounts.PartnerType, _GLAccounts.ConnectInfo) Next Dim _GLRows_Collection As New XPCollection(Of GLRows)(_Uow, CriteriaOperator.Parse("GLHeader.IsDeleted=False and Customer.Oid=? and GLHeader.GLDocumentType in (0,2,3,4,5)", _Customers_OID)) Dim _GLRows As GLRows RaiseEvent InitWork(1, 1, _GLRows_Collection.Count) For Each _GLRows In _GLRows_Collection RaiseEvent DoWork() GLFunctions.ReconfigurePCI(_Uow, _GLRows.GLHeader.CustomersFrom, _GLRows.Customer, _GLRows.PartnerType, _GLRows.ConnectInfo) Next RaiseEvent FinalWork _Uow.CommitChanges() _ocur.CommitChanges() End If End Sub Private Sub aRepairPCIGroup_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aRepairPCIGroup.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _GLAccounts_Collection As New XPCollection(Of GLAccounts)(_uow, CriteriaOperator.Parse("IsNull(ConnectInfo)=True or ConnectInfo='' and IsEditable=False")) Dim _GLAccounts As GLAccounts Dim _GLRows As GLRows RaiseEvent InitWork(1, 1, _GLAccounts_Collection.Count) For Each _GLAccounts In _GLAccounts_Collection RaiseEvent DoWork() _GLAccounts.ConnectInfo = _GLAccounts.DocumentNumber For Each _GLRows In _GLAccounts.GLRows _GLRows.ConnectInfo = _GLRows.GLHeader.DocumentNumber Next _uow.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _GLAccounts.CustomersFrom, _GLAccounts.Customers, _GLAccounts.PartnerType, _GLAccounts.ConnectInfo) _uow.CommitChanges() Next RaiseEvent FinalWork End Sub Private Sub aRemoveRatediffPCIDetail_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aRemoveRatediffPCIDetail.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _uow As New UnitOfWork(_ocur.Session.DataLayer) Dim _PCIDetail As PCIDetail RaiseEvent InitWork(1, 1, View.SelectedObjects.Count) For Each _PCIDetail In View.SelectedObjects RaiseEvent DoWork() If _PCIDetail.MainType = "05-Ratediff" Then _ocur.Delete(_PCIDetail.GLRows) _ocur.CommitChanges() GLFunctions.ReconfigurePCI(_uow, _PCIDetail.CustomersFrom, _PCIDetail.Customers, _PCIDetail.PartnerType, _PCIDetail.ConnectInfo) End If Next RaiseEvent FinalWork End Sub Private Sub aViewPCIDGroup_Customers_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aViewPCIDGroup_Customers.Execute Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _PCIGroup As PCIGroup = TryCast(View.SelectedObjects(0), PCIGroup) ViewPDCI.ViewPDCIDetail_Customers(_onew, Application, e, _PCIGroup.CustomersFrom, _PCIGroup.Customers) End Sub Private Sub aViewCPB_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aViewCPB.Execute Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _PCIGroup As PCIGroup = TryCast(View.SelectedObjects(0), PCIGroup) Dim _AssetsHandlingCPB As AssetsHandlingCPB If _PCIGroup IsNot Nothing Then _AssetsHandlingCPB = _onew.CreateObject(Of AssetsHandlingCPB)() _AssetsHandlingCPB.Customers = _onew.GetObject(_PCIGroup.Customers) e.ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "AssetsHandlingCPB_DetailView", True, _AssetsHandlingCPB) End If End Sub Private Sub aPCIGroup_ChangeInfo_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aPCIGroup_ChangeInfo.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 aPCIGroup_ChangeInfo_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aPCIGroup_ChangeInfo.Execute Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _PCIGroup As PCIGroup 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 _PCIGroup In View.SelectedObjects RaiseEvent DoWork() If _PCIGroup.InvoiceHeader IsNot Nothing Then If _AssetsHandlingGroupChange.IsAssetsHandling_InvoiceHeader_Modifies = True Then _PCIGroup.InvoiceHeader.IsAssetsHandling = _AssetsHandlingGroupChange.IsAssetsHandling_InvoiceHeader If _AssetsHandlingGroupChange.IsAssetsHandling_Note_Invoice Then _PCIGroup.InvoiceHeader.AssetsHandling_Note = _AssetsHandlingGroupChange.AssetsHandling_Note_Invoice If _AssetsHandlingGroupChange.IsQueueIndex Then _PCIGroup.InvoiceHeader.AssetsHandlingStatus = _ocur.GetObject(_AssetsHandlingGroupChange.AssetsHandlingStatus) End If End If If _AssetsHandlingGroupChange.IsAssetsHandling_Note_Customers Then _PCIGroup.Customers.AssetsHandling_Note = _AssetsHandlingGroupChange.AssetsHandling_Note_Customers If _AssetsHandlingGroupChange.IsLateChargeModifies Then _PCIGroup.InvoiceHeader.IsLateCharge = _AssetsHandlingGroupChange.IsLateCharge Next RaiseEvent FinalWork _ocur.CommitChanges() Frame.GetController(Of Validation.PersistenceValidationController)?.Active.SetItemValue("", True) End Sub Private Sub aViewPCIDGroup_GLDetails_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aViewPCIDGroup_GLDetails.Execute Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _PCIGroup As PCIGroup = TryCast(View.SelectedObjects(0), PCIGroup) ViewPDCI.ViewGLDetails(_onew, Application, e, _PCIGroup.CustomersFrom, _ _PCIGroup.Customers, _PCIGroup.PartnerType, _ _PCIGroup.ConnectInfo) End Sub End Class