128 lines
4.8 KiB
VB.net
128 lines
4.8 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 ERR_OP_GLOBAL As String = ERROR_OP.SHOW
|
|
|
|
|
|
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 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)
|
|
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 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
|
|
|
|
|
|
|
|
|
|
|
|
End Class
|