Provisionsabrechnung
This commit is contained in:
@@ -362,7 +362,12 @@ Public Class MyTextBox
|
||||
|
||||
' +2 = zwei Tage von heute weg
|
||||
If Me.Text <> "" AndAlso Not IsDate(Me.Text) AndAlso IsNumeric(Me.Text) Then
|
||||
Me.Text = Now.AddDays(Int(Me.Text)).ToShortDateString
|
||||
Try
|
||||
Me.Text = Now.AddDays(Int(Me.Text)).ToShortDateString
|
||||
Catch ex As Exception
|
||||
sender.ForeColor = System.Drawing.Color.Red
|
||||
Me._value = Propvalue
|
||||
End Try
|
||||
End If
|
||||
If (Me.Text.Length >= 6 And Me.Text.Length <= 10) AndAlso IsDate(Me.Text.Replace(",", ".")) AndAlso CDate(Me.Text) > CDate("01.01.1900") Then
|
||||
'MsgBox(Me.Text)
|
||||
|
||||
@@ -114,4 +114,88 @@
|
||||
End Try
|
||||
Return 99
|
||||
End Function
|
||||
|
||||
Public Shared Function GetBenutzerBerechtigungsBezeichnungen(prog_Id As Integer) As List(Of String)
|
||||
Dim result As New List(Of String)
|
||||
Console.WriteLine("=== Starte GetBenutzerBerechtigungsBezeichnungen für prog_Id=" & prog_Id & " ===")
|
||||
|
||||
' Basisprüfungen
|
||||
If String.IsNullOrWhiteSpace(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) Then
|
||||
Console.WriteLine("Abbruch: kein Benutzername gesetzt.")
|
||||
Return result
|
||||
End If
|
||||
|
||||
Dim benutzerBer As cBerechtigungenBenutzerGruppenZuordnung_List = VERAG_PROG_ALLGEMEIN.cAllgemein.BENUTZER_BERECHTIGUNGS_GRUPPEN
|
||||
If benutzerBer Is Nothing OrElse benutzerBer.LIST Is Nothing Then
|
||||
Console.WriteLine("Abbruch: Benutzer hat keine Berechtigungsgruppen.")
|
||||
Return result
|
||||
End If
|
||||
If BER_LIST Is Nothing OrElse BER_LIST.LIST Is Nothing Then
|
||||
Console.WriteLine("Abbruch: BER_LIST nicht geladen.")
|
||||
Return result
|
||||
End If
|
||||
|
||||
' Benutzergruppen für das Programm vorbereiten
|
||||
Dim userGruppen = benutzerBer.LIST.Where(Function(b) b.berbgz_progId = prog_Id).ToList()
|
||||
Console.WriteLine("Benutzergruppen für prog_Id gefunden: " & userGruppen.Count)
|
||||
|
||||
Dim seen As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
|
||||
|
||||
' Alle Berechtigungsobjekte durchlaufen
|
||||
For Each obj In BER_LIST.LIST
|
||||
If obj Is Nothing OrElse obj.bero_progId <> prog_Id Then Continue For
|
||||
|
||||
Dim bez As String = If(obj.bero_bezeichnung, "")
|
||||
If bez = "" OrElse seen.Contains(bez) Then Continue For
|
||||
|
||||
Console.WriteLine("Prüfe Berechtigung: " & bez)
|
||||
|
||||
Dim effektiveStufe As Integer = 99
|
||||
|
||||
' Gruppen/Firma/Niederlassung/Abteilung prüfen
|
||||
For Each ll In obj.BER_OBJ_ZUORD
|
||||
If ll.beroz_art = "G" AndAlso userGruppen.Any(Function(g) g.berbgz_bergrId = ll.beroz_bergrId) Then
|
||||
Console.WriteLine($" -> Gruppe {ll.Bezeichnung} passt, Stufe={ll.beroz_berechtigungsstufe}")
|
||||
If ll.beroz_berechtigungsstufe < effektiveStufe Then effektiveStufe = ll.beroz_berechtigungsstufe
|
||||
ElseIf ll.beroz_art = "F" AndAlso ll.Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Then
|
||||
Console.WriteLine($" -> Firma {ll.Bezeichnung} passt, Stufe={ll.beroz_berechtigungsstufe}")
|
||||
If ll.beroz_berechtigungsstufe < effektiveStufe Then effektiveStufe = ll.beroz_berechtigungsstufe
|
||||
ElseIf ll.beroz_art = "N" AndAlso ll.Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG Then
|
||||
Console.WriteLine($" -> Niederlassung {ll.Bezeichnung} passt, Stufe={ll.beroz_berechtigungsstufe}")
|
||||
If ll.beroz_berechtigungsstufe < effektiveStufe Then effektiveStufe = ll.beroz_berechtigungsstufe
|
||||
ElseIf ll.beroz_art = "A" AndAlso ll.Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG Then
|
||||
Console.WriteLine($" -> Abteilung {ll.Bezeichnung} passt, Stufe={ll.beroz_berechtigungsstufe}")
|
||||
If ll.beroz_berechtigungsstufe < effektiveStufe Then effektiveStufe = ll.beroz_berechtigungsstufe
|
||||
End If
|
||||
Next
|
||||
|
||||
If effektiveStufe <> 99 Then
|
||||
Console.WriteLine($" -> Hinzugefügt: {bez} (effektive Stufe={effektiveStufe})")
|
||||
result.Add(bez)
|
||||
seen.Add(bez)
|
||||
Else
|
||||
Console.WriteLine($" -> Keine Berechtigung für {bez}")
|
||||
End If
|
||||
Next
|
||||
|
||||
result.Sort(StringComparer.OrdinalIgnoreCase)
|
||||
Console.WriteLine("=== Fertig: " & result.Count & " Berechtigungen gefunden ===")
|
||||
Return result
|
||||
End Function
|
||||
|
||||
Public Shared Function GetBenutzerBerechtigungsBezeichnungen_FormatWhereIn_SDL() As String
|
||||
Dim BER As List(Of String) = GetBenutzerBerechtigungsBezeichnungen(7) '7=Prog_id von SDL 'VERAG_PROG_ALLGEMEIN.cAllgemein.PROGID) sdl
|
||||
Return FormatWhereIn(BER)
|
||||
|
||||
End Function
|
||||
Private Shared Function FormatWhereIn(berechtigungen As List(Of String)) As String
|
||||
If berechtigungen Is Nothing OrElse berechtigungen.Count = 0 Then
|
||||
Return "()"
|
||||
End If
|
||||
|
||||
' Strings für SQL korrekt in Hochkommas packen, einfache Quotes escapen
|
||||
Dim escaped = berechtigungen.Select(Function(b) "'" & b.Replace("'", "''") & "'")
|
||||
Return "(" & String.Join(",", escaped) & ")"
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
@@ -721,7 +721,7 @@ Public Class SQL
|
||||
|
||||
Return o 'While Schleife wird hier verlassen
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & vbNewLine & "SQL:" & sql, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
End Try
|
||||
|
||||
Return Nothing
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Reflection
|
||||
Imports DocumentFormat.OpenXml.Drawing.Diagrams
|
||||
|
||||
Public Class cKunde
|
||||
Property KundenNr As Object = Nothing
|
||||
@@ -201,8 +202,9 @@ Public Class cKunde
|
||||
'Prüfung Neuanlage:
|
||||
If If(FilialenNr Is Nothing, "", FilialenNr).ToString = "" Then ERROR_TXT = "Bitte geben Sie die zuständige Filiale an!" : Return False 'Es gibt alte Einträge ohne FilialenNr
|
||||
If checkEORI() Then ERROR_TXT = "Die EORI Nummer existiert bereits!" & vbNewLine & "Bitte prüfen, damit es zu keiner doppelten Erfassung des Kunden kommt." : Return False
|
||||
If Abfertigungsverbot And (If(Abfertigungsverbot_Grund, "") = "" OrElse Abfertigungsverbot_seit Is Nothing) Then ERROR_TXT = "Wenn Abfertigungsverbot gesetzt, muss ein Grund und Datum angegeben werden!" : Return False
|
||||
End If
|
||||
Return True
|
||||
Return True
|
||||
End Function
|
||||
Function checkEORI() As Boolean
|
||||
If If(EORITIN, String.Empty) <> String.Empty Then
|
||||
|
||||
@@ -102,7 +102,9 @@ Public Class cKundenErweitert
|
||||
Property kde_CSPortfolioAdded As Boolean = False
|
||||
|
||||
|
||||
|
||||
Property kde_Provisionsverguetung As Boolean = False
|
||||
Property kde_Provisionsverguetung_ProzentDL As Object = Nothing
|
||||
Property kde_Provisionsverguetung_GSAnKdNr As Object = Nothing
|
||||
|
||||
|
||||
|
||||
@@ -205,6 +207,9 @@ Public Class cKundenErweitert
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_BezFIBU", kde_BezFIBU))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Kopfsammelrechnung", kde_Kopfsammelrechnung))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_CSPortfolioAdded", kde_CSPortfolioAdded))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Provisionsverguetung", kde_Provisionsverguetung))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Provisionsverguetung_ProzentDL", kde_Provisionsverguetung_ProzentDL))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Provisionsverguetung_GSAnKdNr", kde_Provisionsverguetung_GSAnKdNr))
|
||||
|
||||
Return list
|
||||
End Function
|
||||
|
||||
@@ -59,6 +59,7 @@ Public Class cAllgemein
|
||||
Public Shared AUTO_ABF_NR As Boolean = True
|
||||
|
||||
Public Shared BENUTZER_BERECHTIGUNGS_GRUPPEN As cBerechtigungenBenutzerGruppenZuordnung_List = Nothing
|
||||
Public Shared BENUTZER_BERECHTIGUNGS_GRUPPEN_WHEREIN_SDL As String = "('XXXXXXXX')"
|
||||
Public Shared PARAMS As cParameterList = Nothing
|
||||
Public Shared TRANSLATE As cTranslate_LIST = Nothing
|
||||
Public Shared TRANSLATE_AUTO As cTranslateAuto_LIST = Nothing
|
||||
@@ -160,7 +161,7 @@ Public Class cAllgemein
|
||||
|
||||
Public Shared Sub LOAD_BER()
|
||||
BENUTZER_BERECHTIGUNGS_GRUPPEN = New cBerechtigungenBenutzerGruppenZuordnung_List(USRID)
|
||||
|
||||
BENUTZER_BERECHTIGUNGS_GRUPPEN_WHEREIN_SDL = VERAG_PROG_ALLGEMEIN.cBerechtignunen.GetBenutzerBerechtigungsBezeichnungen_FormatWhereIn_SDL()
|
||||
End Sub
|
||||
|
||||
Public Shared Sub LOAD_CHAT_EMOJIS()
|
||||
|
||||
Reference in New Issue
Block a user