312 lines
16 KiB
VB.net
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
|