Files
Nuvolar/Nuvolar.Module/BusinessObjects/Financial/FinancialObjects/FinancialTransactions/RateDiff/RateDiffVC.vb
T
2017-03-08 11:21:27 +01:00

258 lines
14 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.ExpressApp.SystemModule
Imports DevExpress.ExpressApp.CloneObject
Imports DevExpress.Data.Filtering
Public Class RateDiffVC
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()
Frame.GetController(Of RateDiffVC).aCreateRateDiffView.Active.SetItemValue("", False)
Frame.GetController(Of RateDiffVC).aViewPDCI_RateDiff.Active.SetItemValue("", False)
Frame.GetController(Of RateDiffVC).aOpenObject_RateDiff.Active.SetItemValue("", False)
Frame.GetController(Of RateDiffVC).aViewAttachments_RateDiff.Active.SetItemValue("", False)
Frame.GetController(Of RateDiffVC).aViewRegistry_RateDiff.Active.SetItemValue("", False)
If View.Id = "RateDiffView_ListView" Then
AddHandler View.SelectionChanged, AddressOf view_SelectionChanged
Frame.GetController(Of RateDiffVC).aCreateRateDiffView.Active.SetItemValue("", True)
Frame.GetController(Of RateDiffVC).aViewPDCI_RateDiff.Active.SetItemValue("", True)
Frame.GetController(Of RateDiffVC).aOpenObject_RateDiff.Active.SetItemValue("", True)
Frame.GetController(Of RateDiffVC).aViewAttachments_RateDiff.Active.SetItemValue("", True)
Frame.GetController(Of RateDiffVC).aViewRegistry_RateDiff.Active.SetItemValue("", True)
Frame.GetController(Of NewObjectViewController).Active.SetItemValue("", False)
Frame.GetController(Of DeleteObjectsViewController).Active.SetItemValue("", False)
Frame.GetController(Of CloneObjectViewController).Active.SetItemValue("", False)
Frame.GetController(Of ListViewProcessCurrentObjectController).Active.SetItemValue("", False)
End If
End Sub
Protected Overrides Sub OnDeactivated()
MyBase.OnDeactivated()
If View.Id = "RateDiffView_ListView" Then
RemoveHandler View.SelectionChanged, AddressOf view_SelectionChanged
Frame.GetController(Of RateDiffVC).aCreateRateDiffView.Active.SetItemValue("", False)
Frame.GetController(Of NewObjectViewController).Active.SetItemValue("", True)
Frame.GetController(Of DeleteObjectsViewController).Active.SetItemValue("", True)
Frame.GetController(Of CloneObjectViewController).Active.SetItemValue("", True)
Frame.GetController(Of ListViewProcessCurrentObjectController).Active.SetItemValue("", True)
End If
End Sub
Private Sub view_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim _RateDiffView As RateDiffView
If View Is Nothing Then Exit Sub
If View.Id Like "RateDiffView_ListView*" And noselect = False Then
selection.Clear()
For Each _RateDiffView In View.SelectedObjects
selection.Add(_RateDiffView)
Next
End If
End Sub
Private Sub aCreateRateDiffView_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateRateDiffView.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _RateDiffPopUp As RateDiffPopUp = _onew.CreateObject(Of RateDiffPopUp)()
_RateDiffPopUp.DateExecution = Now
e.View = Application.CreateDetailView(_onew, "RateDiffPopUp_DetailView", False, _RateDiffPopUp)
End Sub
Private Sub aCreateRateDiffView_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateRateDiffView.Execute
'// Megcsinálja az árfolyam elszámoló vegyes bizonylatot
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _RateDiffPopUp As RateDiffPopUp = TryCast(e.PopupWindow.View.SelectedObjects(0), RateDiffPopUp)
Dim _RateDiffView As RateDiffView
Dim _GLHeader_Ratediff As GLMixed = Nothing
Dim _GLRows_RateDiff As GLRows
Dim _DebitChartOfAccounts As ChartOfAccounts = Nothing
Dim _CreditChartOfAccounts As ChartOfAccounts = Nothing
Dim _Controlling As Controlling = Nothing
Dim _GLMixedNG As GLMixedNG
Dim _GLRows As GLRows
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 = Nothing
Dim i As Long = 0
Dim _InAmountHUF As Double = 0
Dim _OutAmountHUF As Double = 0
If selection.Count <= 0 Then Exit Sub
For Each _RateDiffView In selection
If i = 0 Then
_CustomersFrom = _RateDiffView.CustomersFrom
i = 1
End If
If _RateDiffView.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 _RateDiffView In selection
Select Case _RateDiffView.PartnerType
Case ePartnerType.ePayabels
If _RateDiffView.RateDiffState = 1 Then
_DebitChartOfAccounts = _RateDiffView.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Ratediff.DateExecution.Year, eVATMode.eIn)
_CreditChartOfAccounts = _ChartOfAccounts_RateDiff_Win
_Controlling = _Controlling_RateDiff_Win
_InAmountHUF = Math.Abs(_RateDiffView.OutAmountHUF_Diff)
End If
If _RateDiffView.RateDiffState = -1 Then
_DebitChartOfAccounts = _ChartOfAccounts_RateDiff_Loss
_CreditChartOfAccounts = _RateDiffView.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Ratediff.DateExecution.Year, eVATMode.eIn)
_Controlling = _Controlling_RateDiff_Loss
_OutAmountHUF = Math.Abs(_RateDiffView.OutAmountHUF_Diff)
End If
Case ePartnerType.eReceivables
If _RateDiffView.RateDiffState = -1 Then
_DebitChartOfAccounts = _ChartOfAccounts_RateDiff_Loss
_CreditChartOfAccounts = _RateDiffView.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Ratediff.DateExecution.Year, eVATMode.eOut)
_Controlling = _Controlling_RateDiff_Loss
_OutAmountHUF = Math.Abs(_RateDiffView.InAmountHUF_Diff)
End If
If _RateDiffView.RateDiffState = 1 Then
_DebitChartOfAccounts = _RateDiffView.Customers.CustomersGLParameters.GetChartOfAccounts(_GLHeader_Ratediff.DateExecution.Year, eVATMode.eOut)
_CreditChartOfAccounts = _ChartOfAccounts_RateDiff_Win
_Controlling = _Controlling_RateDiff_Win
_InAmountHUF = Math.Abs(_RateDiffView.InAmountHUF_Diff)
End If
End Select
_GLRows = _ocur.FindObject(Of GLRows)(CriteriaOperator.Parse("Oid=?", _RateDiffView.Oid))
_GLRows_RateDiff = _ocur.CreateObject(Of GLRows)()
_GLRows.GLRowsRateDiff = _GLRows_RateDiff
_GLRows_RateDiff.GLRowsRateDiff = _GLRows
_GLRows_RateDiff.GLHeader = _GLHeader_Ratediff
_GLRows_RateDiff.InAmountHUF = _InAmountHUF
_GLRows_RateDiff.OutAmountHUF = _OutAmountHUF
_GLRows_RateDiff.AddGLRows(_GLHeader_Ratediff, _DebitChartOfAccounts, _CreditChartOfAccounts, 0, Math.Abs(_RateDiffView.InAmountHUF_Diff - _RateDiffView.OutAmountHUF_Diff), Nothing, _
_RateDiffView.Customers, Nothing, Nothing, "", Nothing, _Controlling, Nothing, Nothing, Nothing, _RateDiffView.ConnectInfo, _
eGLRowsTypeVAT.eNettoRow, Guid.NewGuid, eTransactionType.eNotSet, eCashType.ePartner, _RateDiffView.PartnerType)
Next
_ocur.CommitChanges()
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End Sub
Private Sub SimpleAction1_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewPDCI_RateDiff.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _RateDiffView As RateDiffView = TryCast(View.SelectedObjects(0), RateDiffView)
ViewPDCI.ViewPDCIDetail(_onew, Application, e, _RateDiffView.CustomersFrom, _
_RateDiffView.Customers, _RateDiffView.PartnerType, _
_RateDiffView.ConnectInfo)
End Sub
Private Sub aOpenObject_RateDiff_Execute_1(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aOpenObject_RateDiff.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _RateDiffView As RateDiffView = TryCast(View.SelectedObjects(0), RateDiffView)
Dim _GLCassa As GLCassa
Dim _GLBank As GLBank
Dim _GLCompensation As GLCompensation
Dim _DetailView As DetailView
Dim _GLRows As GLRows
_GLRows = _ocur.FindObject(Of GLRows)(CriteriaOperator.Parse("Oid=?", _RateDiffView.Oid), True)
_GLCassa = _ocur.FindObject(Of GLCassa)(CriteriaOperator.Parse("Oid=?", _GLRows.GLHeader.Oid), True)
If _GLCassa IsNot Nothing Then
_DetailView = Application.CreateDetailView(_onew, _onew.GetObject(_GLCassa), True)
e.ShowViewParameters.CreatedView = _DetailView
Else
_GLBank = _ocur.FindObject(Of GLBank)(CriteriaOperator.Parse("Oid=?", _GLRows.GLHeader.Oid), True)
If _GLBank IsNot Nothing Then
_DetailView = Application.CreateDetailView(_onew, _onew.GetObject(_GLBank), True)
e.ShowViewParameters.CreatedView = _DetailView
Else
_GLCompensation = _ocur.FindObject(Of GLCompensation)(CriteriaOperator.Parse("Oid=?", _GLRows.GLHeader.Oid), True)
If _GLBank IsNot Nothing Then
_DetailView = Application.CreateDetailView(_onew, _onew.GetObject(_GLCompensation), True)
e.ShowViewParameters.CreatedView = _DetailView
End If
End If
End If
End Sub
Private Sub aViewRegistry_RateDiff_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewRegistry_RateDiff.Execute
Dim _RateDiffView As RateDiffView = TryCast(View.SelectedObjects(0), RateDiffView)
Dim _CustomersFrom As CustomersFrom = _RateDiffView.CustomersFrom
Dim _Customers As Customers = _RateDiffView.Customers
Dim _DocumentNumber As String = _RateDiffView.ConnectInfo
ViewRegistry.ViewRegistry(View.ObjectSpace, Application, e, _CustomersFrom, _Customers, _DocumentNumber)
End Sub
Private Sub aViewAttachments_RateDiff_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aViewAttachments_RateDiff.Execute
'-- Karton sorához tartozó eredeti dokumentum megnyitása
Dim _RateDiffView As RateDiffView = TryCast(View.SelectedObjects(0), RateDiffView)
Dim _CustomersFrom As CustomersFrom = _RateDiffView.CustomersFrom
Dim _Customers As Customers = _RateDiffView.Customers
Dim _DocumentNumber As String = _RateDiffView.ConnectInfo
ViewAttachments.ViewAttachments(View.ObjectSpace, Frame, _CustomersFrom, _Customers, _DocumentNumber, "")
End Sub
End Class