Files
SDL/VERAG_PROG_ALLGEMEIN/cAllgemein.vb
2020-03-12 14:49:31 +01:00

263 lines
11 KiB
VB.net

Imports System.Data.SqlClient
Public Class cAllgemein
Public Shared FIRMA As String
Public Shared NIEDERLASSUNG As String 'SUB, WAI, ...
Public Shared ABTEILUNG As String 'QS ZOLL ...
Public Shared STAMMFILIALE As String 'IMEX,UNISPED;ATILLA...
Public Shared CLUSTER As String = "" 'Firmenverbund
' Public Shared SPECIFIC As cSPECIFIC = New cSPECIFIC
Public Shared ERR_OP_GLOBAL As String = ERROR_OP.SHOW
' Public Shared AVISO_SERVER As String = "[BUCHHALTUNG\SQLEXPRESS]"
'Public Shared AVISO_SERVER As String = "[SQL01.verag.ost.dmn\VERAG]"
'Public Shared AVISO_SERVER As String = "[SQLGUIDE.verag.ost.dmn\VERAG]"
Public Shared AVISO_SERVER As String = "[SQLGUIDE01.verag.ost.dmn\SQLEXPRESS]"
Public Shared BÜRO As String
Public Shared dpi As Integer
Public Shared TESTSYSTEM As Boolean = True
Public Shared PROGNAME = ""
Public Shared PROGID As Integer
Public Shared PROGVERSION As String = ""
Public Shared USRNAME As String
'Public Shared USRBER As Integer
Public Shared USRID As Integer
Public Shared USR_VNAME As String
Public Shared USR_NNAME As String
Public Shared USRKURZNAME As String
Public Shared USR_HrFrNAME As String
Public Shared FIRMA_ID As Integer
Public Shared FIRMA_NAME As String
Public Shared AUTO_ABF_NR As Boolean = True
Public Shared BENUTZER_BERECHTIGUNGS_GRUPPEN As cBerechtigungenBenutzerGruppenZuordnung_List = Nothing
Public Shared PARAMS As cParameterList = Nothing
Public Shared SESSION As New cSession
Shared SQL As New SQL
Public Shared MITARBEITER As cMitarbeiter
Public Const LeerDatum As Date = #12/30/1899# 'wird als leerer Datumswert verwendet, da sonst Probleme bei Null/Date
Public Shared Sub LOAD_DATA()
MITARBEITER = New cMitarbeiter
If MITARBEITER.LOAD(USRID) Then
USR_NNAME = MITARBEITER.mit_nname
USR_VNAME = MITARBEITER.mit_vname
USR_HrFrNAME = ""
Select Case MITARBEITER.mit_geschlecht
Case "m" : USR_HrFrNAME = "Herr "
Case "w" : USR_HrFrNAME = "Frau "
End Select
USR_HrFrNAME &= MITARBEITER.mit_nname
If FIRMA = "" Then FIRMA = If(MITARBEITER.mit_firma = "BEIDE", "VERAG", MITARBEITER.mit_firma)
cSPECIFIC.FIRMA_BgColor = Drawing.Color.FromArgb(0, 54, 128)
Select Case FIRMA
Case "VERAG"
CLUSTER = "FRONTOFFICE"
Case "IMEX"
STAMMFILIALE = "5501"
CLUSTER = "FRONTOFFICE"
Case "UNISPED"
STAMMFILIALE = "5601"
cSPECIFIC.FIRMA_BgColor = Drawing.Color.FromArgb(200, 0, 0)
CLUSTER = "FRONTOFFICE"
Case "AMBAR"
STAMMFILIALE = "5701"
Case "ATILLA"
STAMMFILIALE = "4801"
Case "FRONTOFFICE"
STAMMFILIALE = "5801"
CLUSTER = "FRONTOFFICE"
End Select
USRNAME = (MITARBEITER.mit_vname & " " & MITARBEITER.mit_nname)
If NIEDERLASSUNG = "" Then NIEDERLASSUNG = MITARBEITER.mit_niederlassung
If ABTEILUNG = "" Then ABTEILUNG = MITARBEITER.mit_abteilung
Else
MITARBEITER = Nothing
End If
LOAD_PARAM()
End Sub
Public Shared Sub LOAD_BER()
BENUTZER_BERECHTIGUNGS_GRUPPEN = New cBerechtigungenBenutzerGruppenZuordnung_List(USRID)
End Sub
Public Shared Sub LOAD_PARAM()
PARAMS = New cParameterList(PROGID, FIRMA)
End Sub
Public Shared Function getMaxPosNrIncrement(FilialeNr As Integer, year As Integer) As Integer
Dim cnt = 0
Dim returnValue = -1
Dim newMaxwert = CInt(year.ToString.Substring(2, 2) & "000000") '16000000
Do
Dim conn As SqlConnection = VERAG_PROG_ALLGEMEIN.SQL.GetNewOpenConnectionFMZOLL
Dim sql As String = " begin tran" &
" if exists (select * from tblPosNr with (updlock,serializable) WHERE FilialeNr = @FilialeNr AND Jahr = @Jahr) " &
" begin " &
" UPDATE tblPosNr " &
" SET wert=(select MAX(wert) FROM tblPosNr WHERE FilialeNr = @FilialeNr AND Jahr = @Jahr)+1 " &
" WHERE FilialeNr = @FilialeNr AND Jahr = @Jahr " &
" End " &
" Else " &
" begin " &
" INSERT INTO tblPosNr " &
" (wert,FilialeNr,Jahr) " &
" VALUES(@newMaxwert, @FilialeNr,@Jahr) " &
" End " &
" commit tran " &
" SELECT isnull(wert,-1) FROM tblPosNr WHERE FilialeNr = @FilialeNr AND Jahr = @Jahr"
Dim dr As SqlDataReader
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@FilialeNr", FilialeNr)
cmd.Parameters.AddWithValue("@Jahr", year)
cmd.Parameters.AddWithValue("@newMaxwert", newMaxwert)
Try
dr = cmd.ExecuteReader()
If dr.Read Then returnValue = CInt(dr.Item(0))
Catch ex As Exception
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Fehler mit der Datenbankverbindung:" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Datenbankfehler")
Finally
dr.Close()
End Try
End Using
cnt += 1
Loop While (SpedBuchExists(FilialeNr, returnValue) And cnt < 100000)
' conn.Close()
Return returnValue
End Function
Public Shared Function isCLUSTER() As Boolean
Return (FIRMA = CLUSTER)
End Function
Public Shared Function getFirmaFromFiliale2(FilialenNr As Object, Optional defaultVERAG As Boolean = True) As String
Dim FirmaTMP = ""
If FilialenNr IsNot Nothing AndAlso IsNumeric(FilialenNr) Then
FirmaTMP = SQL.getValueTxtBySql("SELECT TOP 1 [Firma] FROM [Filialen] WHERE FilialenNr='" & FilialenNr & "' ", "FMZOLL")
End If
If defaultVERAG AndAlso FirmaTMP = "" Then FirmaTMP = "VERAG"
Return FirmaTMP
End Function
Public Shared Function getFirmaFromFiliale(FilialenNr As Object, Optional defaultVERAG As Boolean = True) As String
Dim FirmaTMP = ""
If FilialenNr IsNot Nothing AndAlso IsNumeric(FilialenNr) Then
FirmaTMP = SQL.getValueTxtBySql("SELECT TOP 1 [Firma] FROM [Filialen] WHERE FilialenNr='" & FilialenNr & "' AND ( Firma='" & FIRMA & "' OR Cluster='" & CLUSTER & "')", "FMZOLL")
End If
If defaultVERAG AndAlso FirmaTMP = "" Then FirmaTMP = "VERAG"
Return FirmaTMP
End Function
Public Shared Function getFirmaFromKdNr(KundenNr As Integer, Optional defaultVERAG As Boolean = True) As String
Dim FirmaTMP = SQL.getValueTxtBySql("SELECT TOP 1 [Firma] FROM [Filialen] inner join Kunden ON Kunden.FilialenNr=Filialen.FilialenNr WHERE KundenNr='" & KundenNr & "' ", "FMZOLL")
If defaultVERAG AndAlso FirmaTMP = "" Then FirmaTMP = "VERAG"
Return FirmaTMP
End Function
Public Shared Function SpedBuchExists(FilialenNr As Integer, AbfertigungsNr As Integer) As Boolean
Return (CInt(SQL.getValueTxtBySql("SELECT count(*) FROM Speditionsbuch WHERE FilialenNr=" & FilialenNr & " AND AbfertigungsNr=" & AbfertigungsNr & " ", "FMZOLL")) > 0)
End Function
Class cSPECIFIC
Public Shared FIRMA_BgColor As System.Drawing.Color = Drawing.Color.FromArgb(0, 54, 128)
Public Shared FIRMA_ForeColor As System.Drawing.Color = Drawing.Color.White
End Class
Public Shared Sub buildConnectionDATENARCHIV()
Exit Sub
buildConnectionDATENARCHIV_NEW()
' buildConnectionDATENARCHIV_OLD()
End Sub
Public Shared Sub buildConnectionDATENARCHIV_OLD()
Try
Dim netuse As New System.Diagnostics.ProcessStartInfo()
netuse.FileName = "C:\Windows\system32\net"
' netuse.Arguments = "use \\192.168.0.91\Datenarchiv /User:VERAGOST\AVISOSMB BmWr501956"
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "UNISPED" Then
netuse.Arguments = "use \\192.168.0.91\Datenarchiv /User:VERAGOST\AVISOSMB BmWr501956"
Else
netuse.Arguments = "use \\192.168.0.91\Datenarchiv /User:VERAGOST\AVISOSMB BmWr501956"
End If
netuse.CreateNoWindow = True
netuse.WindowStyle = ProcessWindowStyle.Hidden
System.Diagnostics.Process.Start(netuse)
Catch ex As Exception
MsgBox("ERR: DATENARCHIV Netzwerkzugriff fehlgeschlagen...")
End Try
End Sub
Public Shared Sub buildConnectionDATENARCHIV_NEW()
Try
Dim netuse As New System.Diagnostics.ProcessStartInfo()
netuse.FileName = "C:\Windows\system32\net"
' netuse.Arguments = "use \\datenarchiv.verag.ost.dmn\Datenarchiv /User:VERAGOST\AVISOSMB BmWr501956"
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "UNISPED" Then
netuse.Arguments = "use " & VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir(False) & " /User:VERAGOST\AVISOSMB BmWr501956"
Else
netuse.Arguments = "use " & VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir(False) & " /User:VERAGOST\AVISOSMB BmWr501956"
End If
netuse.CreateNoWindow = True
netuse.WindowStyle = ProcessWindowStyle.Hidden
System.Diagnostics.Process.Start(netuse)
Catch ex As Exception
MsgBox("ERR: DATENARCHIV Netzwerkzugriff fehlgeschlagen...")
End Try
End Sub
Public Shared Function getSTAMMFILIALE() As String
If IsNumeric(VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE) Then
Return VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE
Else
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "VERAG"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG
Case "SUB" : Return 4803
Case "SBG" : Return 5003
Case "WAI" : Return 5103
Case "NKD" : Return 5303
Case "NEU" : Return 4819
End Select
Case "IMEX" : Return 5501
Case "UNISPED" : Return 5601
Case "AMBAR" : Return 5701
Case "ATILLA" : Return 4801
Case "FRONTOFFICE" : Return 5801
End Select
End If
Return ""
End Function
End Class