Files
2017-03-08 11:21:27 +01:00

312 lines
16 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 System.Linq
Imports System.Linq.Expressions
Imports DevExpress.Xpo
Imports DevExpress.Data.Filtering
Imports DevExpress.Xpo.DB
Public Class PCICheckVC
Inherits DevExpress.ExpressApp.ViewController
Public Event InitWork(ByVal _Minimum As Long, ByVal _Step As Long, ByVal _Maximum As Long)
Public Event DoWork()
Public Event FinalWork
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
If View.Id = "PCICheck_ListView_RegistryHeader" Then
AddHandler Frame.GetController(Of RefreshController).RefreshAction.Executed, AddressOf PCICheck_ListView_RegistryHeader_RefreshAction_Executed
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
If View.Id = "PCICheck_ListView_InvoiceHeader" Then
AddHandler Frame.GetController(Of RefreshController).RefreshAction.Executed, AddressOf PCICheck_ListView_InvoiceHeader_RefreshAction_Executed
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
If View.Id = "PCICheck_ListView_GLAccounts" Then
AddHandler Frame.GetController(Of RefreshController).RefreshAction.Executed, AddressOf PCICheck_ListView_GLAccounts_RefreshAction_Executed
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
If View.Id = "PCICheck_ListView_GLRows" Then
AddHandler Frame.GetController(Of RefreshController).RefreshAction.Executed, AddressOf PCICheck_ListView_GLRows_RefreshAction_Executed
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
End Sub
Private Sub PCICheck_ListView_RegistryHeader_RefreshAction_Executed(sender As Object, e As ActionBaseEventArgs)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _PCICheck As PCICheck
Dim _SelectStatementResultRow As SelectStatementResultRow
Dim _SelectedData As DevExpress.Xpo.DB.SelectedData = Nothing
Dim _SQL As String = ""
Dim _RegistryHeader As RegistryHeader
Select Case GLOBAL_SQLType
Case eSQLType.PostgreSQL
_SQL = " SELECT t1.Oid"
_SQL += " FROM RegistryHeader t1 LEFT JOIN PCIGroup t2 ON"
_SQL += " t1.CustomersFrom=t2.CustomersFrom AND "
_SQL += " t1.Customers=t2.Customers AND "
_SQL += " t1.F_ConnectInfo=t2.ConnectInfo AND "
_SQL += " t2.PartnerType=1 LEFT JOIN RegistryType t3 ON"
_SQL += " t1.RegistryType=t3.Oid LEFT JOIN Organization t4 ON"
_SQL += " t1.CustomersFrom=t4.oid LEFT JOIN Organization t5 ON"
_SQL += " t1.Customers = t5.Oid"
_SQL += " WHERE t2.Oid IS NULL AND t1.GCRecord IS NULL AND t1.IsEditable=0 AND"
_SQL += " t1.RegistryAcceptState=0 AND t3.RegistryMainType=0"
Case eSQLType.MSSQL, eSQLType.MySQL
_SQL = " SELECT t1.Oid"
_SQL += " FROM RegistryHeader t1 LEFT JOIN PCIGroup t2 ON"
_SQL += " t1.CustomersFrom=t2.CustomersFrom AND "
_SQL += " t1.Customers=t2.Customers AND "
_SQL += " t1.F_ConnectInfo=t2.ConnectInfo AND "
_SQL += " t2.PartnerType=1 LEFT JOIN RegistryType t3 ON"
_SQL += " t1.RegistryType=t3.Oid LEFT JOIN Organization t4 ON"
_SQL += " t1.CustomersFrom=t4.oid LEFT JOIN Organization t5 ON"
_SQL += " t1.Customers = t5.Oid"
_SQL += " WHERE t2.Oid IS NULL AND t1.GCRecord IS NULL AND t1.IsEditable=0 AND"
_SQL += " t1.RegistryAcceptState=0 AND t3.RegistryMainType=0 and t1.F_GLAccounts is null and t1.IsStorno=0"
End Select
_SelectedData = _ocur.Session.ExecuteQuery(_SQL)
If _SelectedData.ResultSet.Length > 0 Then
RaiseEvent InitWork(1, 1, _SelectedData.ResultSet(0).Rows.Count)
For Each _SelectStatementResultRow In _SelectedData.ResultSet(0).Rows
RaiseEvent DoWork()
_RegistryHeader = _ocur.FindObject(Of RegistryHeader)(CriteriaOperator.Parse("Oid=?", _SelectStatementResultRow.Values(0)))
If _RegistryHeader IsNot Nothing Then
_PCICheck = _ocur.CreateObject(Of PCICheck)()
_PCICheck.RegistryHeader = _RegistryHeader
TryCast(View, ListView).CollectionSource.Add(_PCICheck)
End If
Next
RaiseEvent FinalWork
End If
End Sub
Private Sub PCICheck_ListView_InvoiceHeader_RefreshAction_Executed(sender As Object, e As ActionBaseEventArgs)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _PCICheck As PCICheck
Dim _SelectStatementResultRow As SelectStatementResultRow
Dim _SelectedData As DevExpress.Xpo.DB.SelectedData = Nothing
Dim _SQL As String = ""
Dim _InvoiceHeader As InvoiceHeader
Select Case GLOBAL_SQLType
Case eSQLType.PostgreSQL
_SQL = " SELECT t1.Oid"
_SQL += " FROM InvoiceHeader t1 LEFT JOIN PCIGroup t2 ON"
_SQL += " t1.CustomersFrom=t2.CustomersFrom AND "
_SQL += " t1.Customers=t2.Customers AND "
_SQL += " t1.ConnectInfo=t2.ConnectInfo AND "
_SQL += " t2.PartnerType=0 LEFT JOIN Organization t4 ON"
_SQL += " t1.CustomersFrom=t4.oid LEFT JOIN Organization t5 ON"
_SQL += " t1.Customers = t5.Oid"
_SQL += " WHERE t2.Oid IS NULL AND t1.GCRecord IS NULL AND t1.IsEditable=0 AND"
_SQL += " t1.DocumentNumber<>''"
Case eSQLType.MSSQL, eSQLType.MySQL
_SQL = " SELECT t1.Oid"
_SQL += " FROM InvoiceHeader t1 LEFT JOIN PCIGroup t2 ON"
_SQL += " t1.CustomersFrom=t2.CustomersFrom AND "
_SQL += " t1.Customers=t2.Customers AND "
_SQL += " t1.ConnectInfo=t2.ConnectInfo AND "
_SQL += " t2.PartnerType=0 LEFT JOIN Organization t4 ON"
_SQL += " t1.CustomersFrom=t4.oid LEFT JOIN Organization t5 ON"
_SQL += " t1.Customers = t5.Oid"
_SQL += " WHERE t2.Oid IS NULL AND t1.GCRecord IS NULL AND t1.IsEditable=0 AND"
_SQL += " t1.DocumentNumber<>'' and t1.GLAccounts is null"
End Select
_SelectedData = _ocur.Session.ExecuteQuery(_SQL)
If _SelectedData.ResultSet.Length > 0 Then
RaiseEvent InitWork(1, 1, _SelectedData.ResultSet(0).Rows.Count)
For Each _SelectStatementResultRow In _SelectedData.ResultSet(0).Rows
RaiseEvent DoWork()
_InvoiceHeader = _ocur.FindObject(Of InvoiceHeader)(CriteriaOperator.Parse("Oid=?", _SelectStatementResultRow.Values(0)))
If _InvoiceHeader IsNot Nothing Then
_PCICheck = _ocur.CreateObject(Of PCICheck)()
_PCICheck.InvoiceHeader = _InvoiceHeader
TryCast(View, ListView).CollectionSource.Add(_PCICheck)
End If
Next
RaiseEvent FinalWork
End If
End Sub
Private Sub PCICheck_ListView_GLAccounts_RefreshAction_Executed(sender As Object, e As ActionBaseEventArgs)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _PCICheck As PCICheck
Dim _SelectStatementResultRow As SelectStatementResultRow
Dim _SelectedData As DevExpress.Xpo.DB.SelectedData = Nothing
Dim _SQL As String = ""
Dim _GLAccounts As GLAccounts
Select Case GLOBAL_SQLType
Case eSQLType.PostgreSQL
_SQL = " SELECT t1.Oid"
_SQL += " FROM GLHeader t0 join GLAccounts t1 on "
_SQL += " t0.Oid=t1.Oid LEFT JOIN PCIGroup t2 ON"
_SQL += " t0.CustomersFrom=t2.CustomersFrom AND "
_SQL += " t1.Customers=t2.Customers AND "
_SQL += " t1.ConnectInfo=t2.ConnectInfo AND "
_SQL += " t2.PartnerType=t1.PartnerType LEFT JOIN Organization t4 ON"
_SQL += " t0.CustomersFrom=t4.oid LEFT JOIN Organization t5 ON"
_SQL += " t1.Customers = t5.Oid"
_SQL += " WHERE t2.Oid IS NULL AND t0.GCRecord IS NULL AND t0.IsEditable=0 AND"
_SQL += " t0.DocumentNumber<>''"
Case eSQLType.MSSQL, eSQLType.MySQL
_SQL = " SELECT t1.Oid"
_SQL += " FROM GLHeader t0 join GLAccounts t1 on "
_SQL += " t0.Oid=t1.Oid LEFT JOIN PCIGroup t2 ON"
_SQL += " t0.CustomersFrom=t2.CustomersFrom AND "
_SQL += " t1.Customers=t2.Customers AND "
_SQL += " t1.ConnectInfo=t2.ConnectInfo AND "
_SQL += " t2.PartnerType=t1.PartnerType LEFT JOIN Organization t4 ON"
_SQL += " t0.CustomersFrom=t4.oid LEFT JOIN Organization t5 ON"
_SQL += " t1.Customers = t5.Oid"
_SQL += " WHERE t2.Oid IS NULL AND t0.GCRecord IS NULL AND t0.IsEditable=0 AND"
_SQL += " t0.DocumentNumber<>''"
End Select
_SelectedData = _ocur.Session.ExecuteQuery(_SQL)
If _SelectedData.ResultSet.Length > 0 Then
RaiseEvent InitWork(1, 1, _SelectedData.ResultSet(0).Rows.Count)
For Each _SelectStatementResultRow In _SelectedData.ResultSet(0).Rows
RaiseEvent DoWork()
_GLAccounts = _ocur.FindObject(Of GLAccounts)(CriteriaOperator.Parse("Oid=?", _SelectStatementResultRow.Values(0)))
If _GLAccounts IsNot Nothing Then
_PCICheck = _ocur.CreateObject(Of PCICheck)()
_PCICheck.GLAccounts = _GLAccounts
TryCast(View, ListView).CollectionSource.Add(_PCICheck)
End If
Next
RaiseEvent FinalWork
End If
End Sub
Private Sub PCICheck_ListView_GLRows_RefreshAction_Executed(sender As Object, e As ActionBaseEventArgs)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _PCICheck As PCICheck
Dim _SelectStatementResultRow As SelectStatementResultRow
Dim _SelectedData As DevExpress.Xpo.DB.SelectedData = Nothing
Dim _SQL As String = ""
Dim _GLRows As GLRows
Select Case GLOBAL_SQLType
Case eSQLType.PostgreSQL
_SQL = " SELECT t1.Oid"
_SQL += " FROM GLHeader t0 join GLRows t1 on "
_SQL += " t0.Oid=t1.GLHeader LEFT JOIN PCIDetail t2 ON"
_SQL += " t0.CustomersFrom=t2.CustomersFrom AND "
_SQL += " t1.Customer=t2.Customers AND "
_SQL += " t1.ConnectInfo=t2.ConnectInfo AND "
_SQL += " t2.PartnerType=t1.PartnerType "
_SQL += " WHERE t2.Oid IS NULL AND t0.GCRecord IS NULL AND t0.IsEditable=0 AND"
_SQL += " t0.DocumentNumber<>'' and t1.PartnerType in (0,1) and t1.Customer is not null and t1.GCRecord is null"
_SQL += " and t0.GLDocumentType in (0,2,3,4,5)"
Case eSQLType.MSSQL, eSQLType.MySQL
_SQL = " SELECT t1.Oid"
_SQL += " FROM GLHeader t0 join GLRows t1 on "
_SQL += " t0.Oid=t1.GLHeader LEFT JOIN PCIDetail t2 ON"
_SQL += " t0.CustomersFrom=t2.CustomersFrom AND "
_SQL += " t1.Customer=t2.Customers AND "
_SQL += " t1.ConnectInfo=t2.ConnectInfo AND "
_SQL += " t2.PartnerType=t1.PartnerType "
_SQL += " WHERE t2.Oid IS NULL AND t0.GCRecord IS NULL AND t0.IsEditable=0 AND"
_SQL += " t0.DocumentNumber<>'' and t1.PartnerType in (0,1) and t1.Customer is not null and t1.GCRecord is null"
_SQL += " and t0.GLDocumentType in (0,2,3,4,5)"
End Select
_SelectedData = _ocur.Session.ExecuteQuery(_SQL)
If _SelectedData.ResultSet.Length > 0 Then
RaiseEvent InitWork(1, 1, _SelectedData.ResultSet(0).Rows.Count)
For Each _SelectStatementResultRow In _SelectedData.ResultSet(0).Rows
RaiseEvent DoWork()
_GLRows = _ocur.FindObject(Of GLRows)(CriteriaOperator.Parse("Oid=?", _SelectStatementResultRow.Values(0)))
If _GLRows IsNot Nothing Then
_PCICheck = _ocur.CreateObject(Of PCICheck)()
_PCICheck.GLRows = _GLRows
TryCast(View, ListView).CollectionSource.Add(_PCICheck)
End If
Next
RaiseEvent FinalWork
End If
End Sub
Private Sub aPCICheck_PCICheck_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aPCICheck_PCICheck.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow As New UnitOfWork(_ocur.Session.DataLayer)
Dim _PCICheck As PCICheck
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
For Each _PCICheck In View.SelectedObjects
RaiseEvent DoWork()
If _PCICheck.GLAccounts IsNot Nothing Then
GLFunctions.ReconfigurePCI(_uow, _PCICheck.GLAccounts.CustomersFrom, _PCICheck.GLAccounts.Customers, _PCICheck.GLAccounts.PartnerType, _PCICheck.GLAccounts.ConnectInfo)
ElseIf _PCICheck.InvoiceHeader IsNot Nothing Then
GLFunctions.ReconfigurePCI(_uow, _PCICheck.InvoiceHeader.CustomersFrom, _PCICheck.InvoiceHeader.Customers, 0, _PCICheck.InvoiceHeader.ConnectInfo)
ElseIf _PCICheck.RegistryHeader IsNot Nothing Then
GLFunctions.ReconfigurePCI(_uow, _PCICheck.RegistryHeader.CustomersFrom, _PCICheck.RegistryHeader.Customers, 1, _PCICheck.RegistryHeader.F_ConnectInfo)
ElseIf _PCICheck.GLRows IsNot Nothing Then
GLFunctions.ReconfigurePCI(_uow, _PCICheck.GLRows.GLHeader.CustomersFrom, _PCICheck.GLRows.Customer, _PCICheck.GLRows.PartnerType, _PCICheck.GLRows.ConnectInfo)
End If
Next
RaiseEvent FinalWork
End Sub
Private Sub aViewPCI_PCICheck_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aViewPCI_PCICheck.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _PCICheck As PCICheck = TryCast(View.SelectedObjects(0), PCICheck)
If _PCICheck.GLAccounts IsNot Nothing Then
ViewPDCI.ViewPDCIDetail(_onew, Application, e, _PCICheck.GLAccounts.CustomersFrom, _
_PCICheck.GLAccounts.Customers, _PCICheck.GLAccounts.PartnerType, _
_PCICheck.GLAccounts.ConnectInfo)
ElseIf _PCICheck.InvoiceHeader IsNot Nothing Then
ViewPDCI.ViewPDCIDetail(_onew, Application, e, _PCICheck.InvoiceHeader.CustomersFrom, _
_PCICheck.InvoiceHeader.Customers, 0, _
_PCICheck.InvoiceHeader.ConnectInfo)
ElseIf _PCICheck.RegistryHeader IsNot Nothing Then
ViewPDCI.ViewPDCIDetail(_onew, Application, e, _PCICheck.RegistryHeader.CustomersFrom, _
_PCICheck.RegistryHeader.Customers, 1, _
_PCICheck.RegistryHeader.F_ConnectInfo)
ElseIf _PCICheck.GLRows IsNot Nothing Then
ViewPDCI.ViewPDCIDetail(_onew, Application, e, _PCICheck.GLRows.GLHeader.CustomersFrom, _
_PCICheck.GLRows.Customer, _PCICheck.GLRows.PartnerType, _
_PCICheck.GLRows.ConnectInfo)
End If
End Sub
End Class