Files
Nuvolar/Nuvolar.Module/BusinessObjects/Business/BusinessTransactions/Contract/ContractRowsVC.vb
T
2017-03-08 11:21:27 +01:00

251 lines
15 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 System.Linq
Imports System.Linq.Expressions
Imports DevExpress.Data.Filtering
Imports DevExpress.ExpressApp.Utils
Public Class ContractRowsVC
Inherits DevExpress.ExpressApp.ViewController
Public Event InitWork(ByVal _Minimum As Long, ByVal _Step As Long, ByVal _Maximum As Long)
Public Event DoWork()
Public Event FinalWork
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
Frame.GetController(Of ContractRowsVC).aDescriptionChanger_ContractRows.Active.SetItemValue("", False)
Frame.GetController(Of ContractRowsVC).aShortNameChanger_ContractRows.Active.SetItemValue("", False)
Frame.GetController(Of ContractRowsVC).aModifyContractRowsData.Active.SetItemValue("", False)
Frame.GetController(Of ContractRowsVC).aConnectContractRowToInvoiceRow.Active.SetItemValue("", False)
If View.Id = "ContractRows_DetailView" Then
Frame.GetController(Of ContractRowsVC).aDescriptionChanger_ContractRows.Active.SetItemValue("", True)
Frame.GetController(Of ContractRowsVC).aShortNameChanger_ContractRows.Active.SetItemValue("", True)
End If
If View.Id = "ContractRows_ListView_Invoice_Not_MileStone" Or _
View.Id = "ContractRows_ListView_Invoice_MileStone" Or _
View.Id = "ContractRows_ListView_Invoice_CustomRate" Or _
View.Id = "ContractRows_ListView_Invoice_Advance" Then
Frame.GetController(Of ContractRowsVC).aModifyContractRowsData.Active.SetItemValue("", True)
Frame.GetController(Of ContractRowsVC).aConnectContractRowToInvoiceRow.Active.SetItemValue("", True)
End If
End Sub
Protected Overrides Sub OnDeactivated()
MyBase.OnDeactivated()
Frame.GetController(Of ContractRowsVC).aDescriptionChanger_ContractRows.Active.SetItemValue("", False)
Frame.GetController(Of ContractRowsVC).aShortNameChanger_ContractRows.Active.SetItemValue("", False)
Frame.GetController(Of ContractRowsVC).aModifyContractRowsData.Active.SetItemValue("", False)
End Sub
Private Sub aDescriptionChanger_ContractRows_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aDescriptionChanger_ContractRows.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace()
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ContractRows_DescriptionChanger_PopUp As InvoiceHeader_DescriptionChanger_PopUp
Dim _CS_Description As New CollectionSource(_onew, GetType(InvoiceHeader_DescriptionChanger_PopUp))
Dim _ContractRows_xpquery = New XPQuery(Of ContractRows)(_ocur.Session)
Dim query = From _ContractRows In _ContractRows_xpquery _
Where _ContractRows.Description IsNot Nothing _
Group _ContractRows By _ContractRows.Description Into g = Group _
Select New With {Key .Description = Description}
For Each item In query
_ContractRows_DescriptionChanger_PopUp = _onew.CreateObject(Of InvoiceHeader_DescriptionChanger_PopUp)()
_ContractRows_DescriptionChanger_PopUp.Description = item.Description
_CS_Description.Add(_ContractRows_DescriptionChanger_PopUp)
Next
e.View = Application.CreateListView("InvoiceHeader_DescriptionChanger_PopUp_ListView", _CS_Description, False)
End Sub
Private Sub aDescriptionChanger_ContractRows_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aDescriptionChanger_ContractRows.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ContractRows As ContractRows = TryCast(View.SelectedObjects(0), ContractRows)
For Each _Description In e.PopupWindow.View.SelectedObjects
If _ContractRows.Description Is Nothing Then
_ContractRows.Description = TryCast(_Description, InvoiceHeader_DescriptionChanger_PopUp).Description
Else
_ContractRows.Description += vbNewLine & TryCast(_Description, InvoiceHeader_DescriptionChanger_PopUp).Description
End If
Next
End Sub
Private Sub aShortNameChanger_ContractRows_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aShortNameChanger_ContractRows.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace()
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ContractRows_ShortNameChanger_PopUp As InvoiceHeader_DescriptionChanger_PopUp
Dim _CS_ShortName As New CollectionSource(_onew, GetType(InvoiceHeader_DescriptionChanger_PopUp))
Dim _ContractRows_xpquery = New XPQuery(Of ContractRows)(_ocur.Session)
Dim query = From _ContractRows In _ContractRows_xpquery _
Where _ContractRows.Description IsNot Nothing _
Group _ContractRows By _ContractRows.ShortName Into g = Group _
Select New With {Key .ShortName = ShortName}
For Each item In query
_ContractRows_ShortNameChanger_PopUp = _onew.CreateObject(Of InvoiceHeader_DescriptionChanger_PopUp)()
_ContractRows_ShortNameChanger_PopUp.Description = item.ShortName
_CS_ShortName.Add(_ContractRows_ShortNameChanger_PopUp)
Next
e.View = Application.CreateListView("InvoiceHeader_DescriptionChanger_PopUp_ListView", _CS_ShortName, False)
End Sub
Private Sub aShortNameChanger_ContractRows_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aShortNameChanger_ContractRows.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ContractRows As ContractRows = TryCast(View.SelectedObjects(0), ContractRows)
For Each _ShortName In e.PopupWindow.View.SelectedObjects
If _ContractRows.ShortName Is Nothing Then
_ContractRows.ShortName = TryCast(_ShortName, InvoiceHeader_DescriptionChanger_PopUp).Description
Else
_ContractRows.ShortName += " " & TryCast(_ShortName, InvoiceHeader_DescriptionChanger_PopUp).Description
End If
Next
End Sub
Private Sub aModifyContractRowsData_CustomizePopupWindowParams(sender As System.Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aModifyContractRowsData.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace()
Dim _ContractRowsModifyData As ContractRowsModifyData = _onew.CreateObject(Of ContractRowsModifyData)()
e.View = Application.CreateDetailView(_onew, "ContractRowsModifyData_DetailView", False, _ContractRowsModifyData)
End Sub
Private Sub aModifyContractRowsData_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aModifyContractRowsData.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ContractRowsModifyData As ContractRowsModifyData = e.PopupWindow.View.SelectedObjects(0)
Dim _ArrayList As ArrayList = New ArrayList()
Dim _uow_lock As New UnitOfWork(_ocur.Session.DataLayer)
Dim _User As DevExpress.Persistent.BaseImpl.User = _ocur.GetObject(TryCast(SecuritySystem.CurrentUser, DevExpress.Persistent.BaseImpl.User))
Try
Dim _ContractRows As ContractRows
For Each _ContractRows In e.SelectedObjects
If Not LockingModule.LockObject(_uow_lock, GetType(ContractRows), _ContractRows.Oid.ToString(), _User) Then
Dim _LockingObject As LockingObject = _ocur.FindObject(Of LockingObject)(CriteriaOperator.Parse("TableName=?", GetType(ContractRows).Name + "-" + _ContractRows.Oid.ToString()))
_ArrayList.Add(_ContractRows)
End If
Next
If _ArrayList.Count = 0 Then
For Each _ContractRows In e.SelectedObjects
If _ContractRowsModifyData.IsDateExecution Then _ContractRows.DateExecution = _ContractRowsModifyData.DateExecution
If _ContractRowsModifyData.IsPaymentOption Then _ContractRows.PaymentOption = _ocur.GetObjectByKey(Of PaymentOption)(_ContractRowsModifyData.PaymentOption.Oid)
If _ContractRowsModifyData.IsNettoPriceHUF Then _ContractRows.NettoPriceHUF = _ContractRowsModifyData.NettoPriceHUF
If _ContractRowsModifyData.IsNettoPriceDEV Then _ContractRows.NettoPriceDEV = _ContractRowsModifyData.NettoPriceDEV
If _ContractRowsModifyData.IsDescription Then _ContractRows.Description = _ContractRowsModifyData.Description
If _ContractRowsModifyData.IsShortName Then _ContractRows.ShortName = _ContractRowsModifyData.ShortName
If _ContractRowsModifyData.IsInvoicePeriod Then _ContractRows.InvoicePeriod = _ContractRowsModifyData.InvoicePeriod
If _ContractRowsModifyData.IsVAT = True Then _ContractRows.VAT = _ocur.GetObjectByKey(Of VAT)(_ContractRowsModifyData.VAT.Oid)
If _ContractRowsModifyData.IsJobNumberObjects Then _ContractRows.JobNumberObjects = _ocur.GetObjectByKey(Of JobNumberObjects)(_ContractRowsModifyData.JobNumberObjects.Oid)
If _ContractRowsModifyData.IsUniqueObjects Then _ContractRows.UniqueObjects = _ocur.GetObjectByKey(Of UniqueObjects)(_ContractRowsModifyData.UniqueObjects.Oid)
If _ContractRowsModifyData.IsControlling Then _ContractRows.Controlling = _ocur.GetObjectByKey(Of Controlling)(_ContractRowsModifyData.Controlling.Oid)
If _ContractRowsModifyData.IsCostHolder Then _ContractRows.CostHolder = _ocur.GetObjectByKey(Of CostHolder)(_ContractRowsModifyData.CostHolder.Oid)
Next
_ocur.CommitChanges()
End If
If Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RefreshController).RefreshAction.Enabled Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RefreshController).RefreshAction.DoExecute()
End If
' View.Refresh()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")))
Finally
If _ArrayList.Count > 0 Then
Dim ModifyError As String = "Objektum(ok) zárolva van(nak) :" + vbNewLine + vbNewLine
For Each item As ContractRows In _ArrayList
ModifyError += item.Contracts.DocumentNumber.ToString() + " " + item.ShortName.ToString() + vbNewLine
Next
ModifyError += vbNewLine + "Ezért a csoportos módosítás nem lett végrehajtva!"
Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")
MsgBox(String.Format(ModifyError), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)
End If
For Each _ContractRows In e.SelectedObjects
LockingModule.UnLockObject(_uow_lock, GetType(ContractRows), _ContractRows.Oid.ToString(), _User)
Next
End Try
End Sub
Private Sub aConnectContractRowToInvoiceRow_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aConnectContractRowToInvoiceRow.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ContractRows As ContractRows = TryCast(View.SelectedObjects(0), ContractRows)
Dim _CS As CollectionSource = New CollectionSource(_onew, GetType(InvoiceRows))
_CS.BeginUpdateCriteria()
_CS.Criteria.Add("Criteria", CriteriaOperator.Parse("isnull(ContractRows)=True and InvoiceHeader.CustomersFrom.Oid=? and InvoiceHeader.Customers.Oid=? and InvoiceHeader.IsEditable=False and InvoiceHeader.IsStorno=False and InvoiceHeader.IsProforma=False", _
_ContractRows.Contracts.CustomersFrom.Oid, _ContractRows.Contracts.Customers.Oid))
_CS.EndUpdateCriteria()
e.View = Application.CreateListView("InvoiceRows_ListView_ContractRows", _CS, False)
End Sub
Private Sub aConnectContractRowToInvoiceRow_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aConnectContractRowToInvoiceRow.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _ContractRows As ContractRows = TryCast(View.SelectedObjects(0), ContractRows)
Dim _InvoiceRows As InvoiceRows = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), InvoiceRows))
If _InvoiceRows IsNot Nothing Then
Frame.GetController(Of Validation.PersistenceValidationController).Active.SetItemValue("", False)
_InvoiceRows.ContractRows = _ContractRows
_ContractRows.InvoiceRows = _InvoiceRows
_ocur.CommitChanges()
Frame.GetController(Of Validation.PersistenceValidationController).Active.SetItemValue("", True)
End If
End Sub
Private Sub aSyncImmovables_Execute(sender As Object, e As SimpleActionExecuteEventArgs)
'Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
'Dim _ContractRows_Collection As New XPCollection(Of ContractRows)(_onew.Session, CriteriaOperator.Parse("isnull(UniqueObjects)=False"))
'Dim _ContractRows As ContractRows
'Dim _Apartments As Apartments
'Dim _Garages As Garages
'Dim _Offices As Offices
'Dim _Container As Container
'RaiseEvent InitWork(1, 1, _ContractRows_Collection.Count)
'For Each _ContractRows In _ContractRows_Collection
' RaiseEvent DoWork()
' _Apartments = _onew.FindObject(Of Apartments)(CriteriaOperator.Parse("UniqueObjects=?", _ContractRows.UniqueObjects))
' If _Apartments IsNot Nothing Then
' _ContractRows.Apartments = _Apartments
' End If
' _Garages = _onew.FindObject(Of Garages)(CriteriaOperator.Parse("UniqueObjects=?", _ContractRows.UniqueObjects))
' If _Garages IsNot Nothing Then
' _ContractRows.Garages = _Garages
' End If
' _Offices = _onew.FindObject(Of Offices)(CriteriaOperator.Parse("UniqueObjects=?", _ContractRows.UniqueObjects))
' If _Offices IsNot Nothing Then
' _ContractRows.Offices = _Offices
' End If
' _Container = _onew.FindObject(Of Container)(CriteriaOperator.Parse("UniqueObjects=?", _ContractRows.UniqueObjects))
' If _Container IsNot Nothing Then
' _ContractRows.Container = _Container
' End If
' _onew.CommitChanges()
'Next
'RaiseEvent FinalWork
End Sub
End Class