126 lines
7.5 KiB
VB.net
126 lines
7.5 KiB
VB.net
Imports Microsoft.VisualBasic
|
|
Imports System
|
|
Imports System.Collections.Generic
|
|
Imports System.ComponentModel
|
|
Imports DevExpress.ExpressApp.Win
|
|
Imports Nuvolar.Module.Win
|
|
Imports DevExpress.ExpressApp
|
|
Imports DevExpress.Xpo
|
|
Imports DevExpress.Data.Filtering
|
|
Imports DevExpress.XtraBars.Alerter
|
|
Imports DevExpress.ExpressApp.Utils
|
|
Imports DevExpress.ExpressApp.Xpo
|
|
Imports Nuvolar.Module.GeneralFunction
|
|
Imports System.Data.SqlClient
|
|
|
|
Partial Public Class NuvolarWindowsFormsApplication
|
|
Inherits WinApplication
|
|
Public Sub New()
|
|
InitializeComponent()
|
|
End Sub
|
|
|
|
Private Sub NuvolarWindowsFormsApplication_DatabaseVersionMismatch(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.DatabaseVersionMismatchEventArgs) Handles MyBase.DatabaseVersionMismatch
|
|
#If EASYTEST Then
|
|
e.Updater.Update()
|
|
e.Handled = True
|
|
#Else
|
|
If System.Diagnostics.Debugger.IsAttached Then
|
|
e.Updater.Update()
|
|
e.Handled = True
|
|
Else
|
|
Throw New InvalidOperationException( _
|
|
"The application cannot connect to the specified database, because the latter doesn't exist or its version is older than that of the application." & vbCrLf & _
|
|
"This error occurred because the automatic database update was disabled when the application was started without debugging." & vbCrLf & _
|
|
"To avoid this error, you should either start the application under Visual Studio in debug mode, or modify the " & _
|
|
"source code of the 'DatabaseVersionMismatch' event handler to enable automatic database update, " & _
|
|
"or manually create a database using the 'DBUpdater' tool." & vbCrLf & _
|
|
"Anyway, refer to the 'Update Application and Database Versions' help topic at http://www.devexpress.com/Help/?document=ExpressApp/CustomDocument2795.htm " & _
|
|
"for more detailed information. If this doesn't help, please contact our Support Team at http://www.devexpress.com/Support/Center/")
|
|
End If
|
|
#End If
|
|
End Sub
|
|
Protected Overrides Function GetTraceLogDirectory() As String
|
|
Return MyBase.GetTraceLogDirectory()
|
|
End Function
|
|
Protected Overrides Function CreateLogonWindowControllers() As System.Collections.Generic.List(Of DevExpress.ExpressApp.Controller)
|
|
Dim _result As System.Collections.Generic.List(Of DevExpress.ExpressApp.Controller)
|
|
Dim _CreateLogonWindowsControllerVC As New CreateLogonWindowsControllerVC
|
|
_result = MyBase.CreateLogonWindowControllers()
|
|
_result.Add(_CreateLogonWindowsControllerVC)
|
|
Return _result
|
|
End Function
|
|
Protected Overrides Sub CreateDefaultObjectSpaceProvider(args As CreateCustomObjectSpaceProviderEventArgs)
|
|
args.ObjectSpaceProvider = New XPObjectSpaceProvider(args.ConnectionString, args.Connection, True)
|
|
End Sub
|
|
Protected Overrides Sub OnLoggedOn(args As DevExpress.ExpressApp.LogonEventArgs)
|
|
MyBase.OnLoggedOn(args)
|
|
Dim _onew As Xpo.XPObjectSpace = Me.ObjectSpaceProvider.CreateObjectSpace()
|
|
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
|
|
Dim _User As DevExpress.Persistent.BaseImpl.User = _onew.FindObject(Of DevExpress.Persistent.BaseImpl.User)(CriteriaOperator.Parse("Oid=?", SecuritySystem.CurrentUserId))
|
|
Nuvolar.Module.LockingModule.ReleaseAllLocking(_uow, _User)
|
|
|
|
Dim cnn As New Object
|
|
|
|
Dim sql As String = ""
|
|
Select Case GLOBAL_SQLType
|
|
Case [Module].eSQLType.MSSQL
|
|
sql = "BEGIN TRANSACTION ROUNDQTT" + vbNewLine
|
|
|
|
sql += "UPDATE StorageComputed SET QTTFree=ROUND(QTTFree,4) WHERE QTTFree<>ROUND(QTTFree,4)" + vbNewLine
|
|
sql += "UPDATE StorageInRows SET QTT=ROUND(QTT,4) WHERE QTT<>ROUND(QTT,4)" + vbNewLine
|
|
sql += "UPDATE StorageInRows SET QTT_Out=ROUND(QTT_Out,4) WHERE QTT_Out<>ROUND(QTT_Out,4)" + vbNewLine
|
|
sql += "UPDATE StorageOutRows SET QTT=ROUND(QTT,4) WHERE QTT<>ROUND(QTT,4)" + vbNewLine
|
|
sql += "UPDATE StorageOutRows SET QTT_To_DeliveryOut=ROUND(QTT_To_DeliveryOut,4) WHERE QTT_To_DeliveryOut<>ROUND(QTT_To_DeliveryOut,4)" + vbNewLine
|
|
sql += "UPDATE DeliveryNoteInRows SET QTT=ROUND(QTT,4) WHERE QTT<>ROUND(QTT,4)" + vbNewLine
|
|
sql += "UPDATE DeliveryNoteOutRows SET QTT=ROUND(QTT,4) WHERE QTT<>ROUND(QTT,4)" + vbNewLine
|
|
sql += "UPDATE DeliveryNoteOutRows SET QTT_Invoiced=ROUND(QTT_Invoiced,4) WHERE QTT_Invoiced<>ROUND(QTT_Invoiced,4)" + vbNewLine
|
|
|
|
sql += "COMMIT TRANSACTION ROUNDQTT;"
|
|
|
|
|
|
Case [Module].eSQLType.MySQL
|
|
sql = "START TRANSACTION;" + vbNewLine
|
|
|
|
sql += "UPDATE StorageComputed SET QTTFree=ROUND(QTTFree,4) WHERE QTTFree<>ROUND(QTTFree,4);" + vbNewLine
|
|
sql += "UPDATE StorageInRows SET QTT=ROUND(QTT,4) WHERE QTT<>ROUND(QTT,4);" + vbNewLine
|
|
sql += "UPDATE StorageInRows SET QTT_Out=ROUND(QTT_Out,4) WHERE QTT_Out<>ROUND(QTT_Out,4);" + vbNewLine
|
|
sql += "UPDATE StorageOutRows SET QTT=ROUND(QTT,4) WHERE QTT<>ROUND(QTT,4);" + vbNewLine
|
|
sql += "UPDATE StorageOutRows SET QTT_To_DeliveryOut=ROUND(QTT_To_DeliveryOut,4) WHERE QTT_To_DeliveryOut<>ROUND(QTT_To_DeliveryOut,4);" + vbNewLine
|
|
sql += "UPDATE DeliveryNoteInRows SET QTT=ROUND(QTT,4) WHERE QTT<>ROUND(QTT,4);" + vbNewLine
|
|
sql += "UPDATE DeliveryNoteOutRows SET QTT=ROUND(QTT,4) WHERE QTT<>ROUND(QTT,4);" + vbNewLine
|
|
sql += "UPDATE DeliveryNoteOutRows SET QTT_Invoiced=ROUND(QTT_Invoiced,4) WHERE QTT_Invoiced<>ROUND(QTT_Invoiced,4);" + vbNewLine
|
|
|
|
sql += "COMMIT;"
|
|
|
|
|
|
Case [Module].eSQLType.PostgreSQL
|
|
sql = "BEGIN;" + vbNewLine
|
|
|
|
sql += "UPDATE ""StorageComputed"" SET ""QTTFree""=ROUND(""QTTFree"",4)"" WHERE ""QTTFree""<>ROUND(""QTTFree"",4);" + vbNewLine
|
|
sql += "UPDATE ""StorageInRows"" SET ""QTT""=ROUND(""QTT"",4)"" WHERE ""QTT""<>ROUND(""QTT"",4);" + vbNewLine
|
|
sql += "UPDATE ""StorageInRows"" SET ""QTT_Out""=ROUND(""QTT_Out"",4)"" WHERE ""QTT_Out""<>ROUND(""QTT_Out"",4);" + vbNewLine
|
|
sql += "UPDATE ""StorageOutRows"" SET ""QTT""=ROUND(""QTT"",4)"" WHERE ""QTT""<>ROUND(""QTT"",4);" + vbNewLine
|
|
sql += "UPDATE ""StorageOutRows"" SET ""QTT_To_DeliveryOut""=ROUND(""QTT_To_DeliveryOut"",4)"" WHERE ""QTT_To_DeliveryOut""<>ROUND(""QTT_To_DeliveryOut"",4);" + vbNewLine
|
|
sql += "UPDATE ""DeliveryNoteInRows"" SET ""QTT""=ROUND(""QTT"",4)"" WHERE ""QTT""<>ROUND(""QTT"",4);" + vbNewLine
|
|
sql += "UPDATE ""DeliveryNoteOutRows"" SET ""QTT""=ROUND(""QTT"",4)"" WHERE ""QTT""<>ROUND(""QTT"",4);" + vbNewLine
|
|
sql += "UPDATE ""DeliveryNoteOutRows"" SET ""QTT_Invoiced""=ROUND(""QTT_Invoiced"",4)"" WHERE ""QTT_Invoiced""<>ROUND(""QTT_Invoiced"",4);" + vbNewLine
|
|
|
|
sql += "COMMIT;"
|
|
End Select
|
|
Try
|
|
Dim _row As Integer = _onew.Session.ExecuteNonQuery(sql)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
Protected Overrides Sub OnLoggingOff(args As DevExpress.ExpressApp.LoggingOffEventArgs)
|
|
MyBase.OnLoggingOff(args)
|
|
Dim _onew As Xpo.XPObjectSpace = Me.ObjectSpaceProvider.CreateObjectSpace()
|
|
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
|
|
Dim _User As DevExpress.Persistent.BaseImpl.User = _onew.FindObject(Of DevExpress.Persistent.BaseImpl.User)(CriteriaOperator.Parse("Oid=?", SecuritySystem.CurrentUserId))
|
|
Nuvolar.Module.LockingModule.ReleaseAllLocking(_uow, _User)
|
|
End Sub
|
|
End Class
|