Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024

This commit is contained in:
2025-06-27 15:44:30 +02:00
7 changed files with 249 additions and 105 deletions

View File

@@ -1057,7 +1057,13 @@ Public Class frmFaktEmail
Dim extension = ".pdf" Dim extension = ".pdf"
Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(IIf(SammelrechungArt <> 6, RECHNUNG.BelegartenBez & "sanhänge_", RECHNUNG.BelegartenBez & "_") & RgNr & extension, extension,, False, "Zusammenfassung")
Dim Belegsbezeichnung As String = "Beleg"
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.BelegartenBez <> "" Then
Belegsbezeichnung = RECHNUNG.BelegartenBez
End If
Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(IIf(SammelrechungArt <> 6, Belegsbezeichnung & "sanhänge_", Belegsbezeichnung & "_") & RgNr & extension, extension,, False, "Zusammenfassung")
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.Firma_ID = 19 Then If RECHNUNG IsNot Nothing AndAlso RECHNUNG.Firma_ID = 19 Then

View File

@@ -2430,7 +2430,7 @@ Public Class usrCntlFaktAbrechnung
Call przFixeTaxe(RECHNUNG) ' Fixe Taxe errechnen Call przFixeTaxe(RECHNUNG) ' Fixe Taxe errechnen
Call przPP(RECHNUNG) ' Porto/Papiere errechnen Call przPP(RECHNUNG) ' Porto/Papiere errechnen
Call przBS415(RECHNUNG) ' Bankspesen errechnen Call przBS415(RECHNUNG) ' Bankspesen errechnen
Call setFixeTaxeMin(RECHNUNG, 500, 20) ' Mind Fixe Taxe errechnen Call setFixeTaxeMin(RECHNUNG, 500) ' Mind Fixe Taxe errechnen
'Me![SteuerpflichtigerGesamtbetrag] = 0.0# 'Me![SteuerpflichtigerGesamtbetrag] = 0.0#
'Me![SteuerfreierGesamtbetrag] = 0.0# 'Me![SteuerfreierGesamtbetrag] = 0.0#
@@ -3045,19 +3045,15 @@ Public Class usrCntlFaktAbrechnung
' RECHNUNG.POSITIONEN.Add(FixeTaxePOS) ' RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
'...und der Wert gesetzt. '...und der Wert gesetzt.
FixeTaxePOS.Anzahl = 1 FixeTaxePOS.Anzahl = 1
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxe FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxePOS.[Preis]
initSteuerbetraege(RECHNUNG, FixeTaxePOS) initSteuerbetraege(RECHNUNG, FixeTaxePOS)
End If End If
End Sub End Sub
Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double, fixeTaxe As Double) Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double)
Dim FixeTaxe_Berechnungbetrag As Double = 0 Dim FixeTaxe_Berechnungbetrag As Double = 0
Dim PapirePorti As Double = 0
If Not CBool(SQL.DLookup("[PP441]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then
Exit Sub
End If
If Not leistungExistsInPos(RECHNUNG, 441) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist If Not leistungExistsInPos(RECHNUNG, 441) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
@@ -3069,27 +3065,35 @@ Public Class usrCntlFaktAbrechnung
If FixeTaxe_Berechnungbetrag < 0 Then FixeTaxe_Berechnungbetrag *= -1 If FixeTaxe_Berechnungbetrag < 0 Then FixeTaxe_Berechnungbetrag *= -1
If FixeTaxe_Berechnungbetrag < minBetrag Then 'Sucht, ob Fixetaxe schon vorhanden ist,...
Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 441)
'Sucht, ob Fixetaxe schon vorhanden ist,... '... sonst wird eine neue Pos eingefügt...
Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 441) If FixeTaxePOS IsNot Nothing Then
'... sonst wird eine neue Pos eingefügt... 'FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
If FixeTaxePOS IsNot Nothing Then FixeTaxePOS.LeistungsNr = 441 '441 und nicht 440 laut Brigitte weil Steuerfrei!!
'FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe"
FixeTaxePOS.LeistungsNr = 441 '441 und nicht 440 laut Brigitte weil Steuerfrei!! FixeTaxePOS.BerechnungsartNr = 1
FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe" 'RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
FixeTaxePOS.BerechnungsartNr = 1 '...und der Wert gesetzt.
'RECHNUNG.POSITIONEN.Add(FixeTaxePOS) If FixeTaxe_Berechnungbetrag < minBetrag AndAlso CBool(SQL.DLookup("[PP441]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then
'...und der Wert gesetzt.
FixeTaxePOS.Anzahl = 1 FixeTaxePOS.Anzahl = 1
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * fixeTaxe 'Preis wird bewusst überschrieben!!! Else
FixeTaxePOS.Anzahl = 0
End If
initSteuerbetraege(RECHNUNG, FixeTaxePOS) FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxePOS.Preis 'Preis wird bewusst überschrieben!!!
initSteuerbetraege(RECHNUNG, FixeTaxePOS)
If FixeTaxePOS.Anzahl = 0 Then
RECHNUNG.POSITIONEN.Remove(FixeTaxePOS)
End If End If
End If End If
End Sub End Sub

View File

@@ -45,9 +45,11 @@ Public Class frmBU_Mahnlauf
ORDER BY KTO.c_name" ORDER BY KTO.c_name"
Dim sqlStringVerag360 = "SELECT i_personenkonto Konto,KTO.c_name, KTO.c_landid Land,Kunden.Abfertigungsverbot as AV,max(KTO.dec_aktuellersaldo) as Saldo,/*KTO.c_plz + ' ' + KTO.c_ort Ort,isnull(KTO.c_email,'') Email, */ " & Dim sqlStringVerag360 = "SELECT i_personenkonto Konto,KTO.c_name, KTO.c_landid Land,Kunden.Abfertigungsverbot as AV,max(KTO.dec_aktuellersaldo) as Saldo,/*KTO.c_plz + ' ' + KTO.c_ort Ort,isnull(KTO.c_email,'') Email, */ " &
"sum(eur_bruttobetrag+eur_zahlung) as Ausstand,cast(max(d_rechnung)as date) as 'ältesteRg',/*min(op.d_netto) Faelligkeit,*/max(si_mahnstufe) as MS,max(Kunden.UStV_Summe3470BetragEUR) as '3470',max(Kunden.Versicherungssumme) as V, "sum(eur_bruttobetrag+eur_zahlung) as Ausstand,cast(min(d_rechnung)as date) as 'ältesteRg',/*min(op.d_netto) Faelligkeit,*/max(si_mahnstufe) as MS,max(Kunden.UStV_Summe3470BetragEUR) as '3470',max(Kunden.Versicherungssumme) as V,
max(KTO.dec_aktuellersaldo) - isnull(CASE WHEN Max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) > max(Kunden.UStV_SummeErstattungsbetragEUR) THEN max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) - max(Kunden.UStV_SummeErstattungsbetragEUR) ELSE 0 END ,0) - isnull(max(Kunden.UStV_Summe3470BetragEUR),0) + isnull(max(Kunden.UStV_SummeVZBetragEUR),0) - isnull(max(Kunden.UStV_SummeVorschaubetragEUR),0) - isnull(CASE WHEN ISNULL(max(Kunden.BankgarantieGültigBis), GETDATE()) < GETDATE() THEN 0 ELSE ISNULL(max(Kunden.BankgarantieBetrag), 0) END,0) as Risiko, " & If(KdNr > 0, " (select SUM(isnull(eur_bruttobetrag,0)+isnull(eur_zahlung,0)) from op_debitor as OP RIGHT join fibu_konto KTO on i_personenkonto=i_konto AND KTO.i_firm_refid=OP.i_firm_refid Where i_personenkonto ='" & KdNr & "' AND OP.i_firm_refid = '19' AND dt_geloescht IS NULL and isnull(si_mahnflags,0) <>(1)) ", "max(KTO.dec_aktuellersaldo) ") & "
- isnull(CASE WHEN Max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) > max(Kunden.UStV_SummeErstattungsbetragEUR) THEN max(Kunden.UStV_SummeUmsatzsteuerbetragEUR) - max(Kunden.UStV_SummeErstattungsbetragEUR) ELSE 0 END ,0) - isnull(max(Kunden.UStV_Summe3470BetragEUR),0) + isnull(max(Kunden.UStV_SummeVZBetragEUR),0) - isnull(max(Kunden.UStV_SummeVorschaubetragEUR),0) - isnull(CASE WHEN ISNULL(max(Kunden.BankgarantieGültigBis), GETDATE()) < GETDATE() THEN 0 ELSE ISNULL(max(Kunden.BankgarantieBetrag), 0) END,0) as Risiko,
sum(case when OP.c_typ = 'g' then isnull(OP.eur_bruttobetrag, 0) + isnull(OP.eur_zahlung, 0) else 0 end) as Gutschrift, cast(MAX(d_mahnung)as date) Mahndatum, sum(case when OP.c_typ = 'g' then isnull(OP.eur_bruttobetrag, 0) + isnull(OP.eur_zahlung, 0) else 0 end) as Gutschrift, cast(MAX(d_mahnung)as date) Mahndatum,
case case

View File

@@ -366,9 +366,9 @@ Partial Class usrCntlKundenAvisoMailBenachrichtigung
Me.btnWikiStatusmails.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnWikiStatusmails.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.btnWikiStatusmails.FlatAppearance.BorderSize = 0 Me.btnWikiStatusmails.FlatAppearance.BorderSize = 0
Me.btnWikiStatusmails.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnWikiStatusmails.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnWikiStatusmails.Location = New System.Drawing.Point(454, 3) Me.btnWikiStatusmails.Location = New System.Drawing.Point(6, 25)
Me.btnWikiStatusmails.Name = "btnWikiStatusmails" Me.btnWikiStatusmails.Name = "btnWikiStatusmails"
Me.btnWikiStatusmails.Size = New System.Drawing.Size(25, 20) Me.btnWikiStatusmails.Size = New System.Drawing.Size(32, 25)
Me.btnWikiStatusmails.TabIndex = 70 Me.btnWikiStatusmails.TabIndex = 70
Me.btnWikiStatusmails.UseVisualStyleBackColor = True Me.btnWikiStatusmails.UseVisualStyleBackColor = True
' '

View File

@@ -1,5 +1,6 @@
Imports System.Data.OleDb Imports System.Data.OleDb
Imports System.IO Imports System.IO
Imports com.sun.xml.internal.rngom
Imports itextsharp.text.pdf Imports itextsharp.text.pdf
Imports MDM_Worker Imports MDM_Worker
Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN
@@ -1220,42 +1221,44 @@ Public Class frmMDMDatenverarbetiung
End If End If
Next Next
End If End If
If verarbOK Then If verarbOK Then
'UPDATE Fakturiert 'UPDATE Fakturiert
SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL") SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL")
End If End If
If True Then 'cnt Mod 10 = 0 Then If True Then 'cnt Mod 10 = 0 Then
txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count
Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100 Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100
pbPloseAnh_Proz.Value = proz pbPloseAnh_Proz.Value = proz
lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" lblPloseAnh_Proz.Text = proz.ToString("N2") & " %"
'GroupBox12.Refresh() 'GroupBox12.Refresh()
My.Application.DoEvents() My.Application.DoEvents()
End If End If
cnt += 1 cnt += 1
Next Next
If test Then Return True If test Then Return True
' ANHÄNGE WERDEN NCIHT BENÖTIGT:: ' ANHÄNGE WERDEN NCIHT BENÖTIGT::
'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren 'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren
Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN) Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN)
If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True)
For Each f In Directory.GetFiles(dirAnhang) For Each f In Directory.GetFiles(dirAnhang)
File.Delete(f) Try
File.Delete(f)
Catch ex As Exception
End Try
Next Next
End If End If
If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang) If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang)
For Each f In Directory.GetFiles(dir) For Each f In Directory.GetFiles(dir)
File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True) File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True)
Next Next
pbPloseAnh_Proz.Value = 100 pbPloseAnh_Proz.Value = 100
txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count
lblPloseAnh_Proz.Text = "100.00 %" lblPloseAnh_Proz.Text = "100.00 %"
Return True Return True
End If End If
Return False Return False
End Function End Function
Function genRGAtt_MSE(mseParam As cMSEAPI) As Boolean Function genRGAtt_MSE(mseParam As cMSEAPI) As Boolean
Dim top = "" Dim top = ""
@@ -1393,7 +1396,11 @@ Public Class frmMDMDatenverarbetiung
Dim dirAnhang = IIf(test, mseParam.ANLAGEN & "TEST\", mseParam.ANLAGEN) & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "Test", "") & Now.ToShortDateString Dim dirAnhang = IIf(test, mseParam.ANLAGEN & "TEST\", mseParam.ANLAGEN) & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "Test", "") & Now.ToShortDateString
If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True)
For Each f In Directory.GetFiles(dirAnhang) For Each f In Directory.GetFiles(dirAnhang)
File.Delete(f) Try
File.Delete(f)
Catch ex As Exception
End Try
Next Next
Else Else
Directory.CreateDirectory(dirAnhang) Directory.CreateDirectory(dirAnhang)
@@ -1539,7 +1546,11 @@ Public Class frmMDMDatenverarbetiung
Dim dirAnhang = IIf(test, idsParam.ANLAGEN & "TEST\", idsParam.ANLAGEN) & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "Test", "") & Now.ToShortDateString Dim dirAnhang = IIf(test, idsParam.ANLAGEN & "TEST\", idsParam.ANLAGEN) & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "Test", "") & Now.ToShortDateString
If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True)
For Each f In Directory.GetFiles(dirAnhang) For Each f In Directory.GetFiles(dirAnhang)
File.Delete(f) Try
File.Delete(f)
Catch ex As Exception
End Try
Next Next
Else Else
Directory.CreateDirectory(dirAnhang) Directory.CreateDirectory(dirAnhang)
@@ -3425,13 +3436,18 @@ Public Class frmMDMDatenverarbetiung
Dim sqlstr As String = "" Dim sqlstr As String = ""
Dim useNettogesamtbetrag As Boolean = False Dim useNettogesamtbetrag As Boolean = False
'If KdNr = "401715" Or KdNr = "401943" Or KdNr = "402179" Or KdNr = "402598" Or KdNr = "402656" Or KdNr = "402688" Or KdNr = "402719" Or KdNr = "402888" Or KdNr = "402933" Then
'MsgBox("Test")
'End If
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
Select Case Lieferant Select Case Lieferant
Case "PLOSE" Case "PLOSE"
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True) 'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
' RG.LOAD_POSITIONEN_FROM_OFFERTE(OFFERTE) ' RG.LOAD_POSITIONEN_FROM_OFFERTE(OFFERTE)
sqlstr &= " SELECT [plp_LeistungsNr],sum([plose_NettobetragWaehrungAbbuchung]) as plose_NettobetragWaehrungAbbuchung,sum([plose_MWSTBetragWaehrungAbbuchung]) as [plose_MWSTBetragWaehrungAbbuchung],sum([plose_BruttobetragWaehrungAbbuchung]) as [plose_BruttobetragWaehrungAbbuchung] " sqlstr &= " SELECT [plp_LeistungsNr],sum([plose_NettobetragWaehrungAbbuchung]) as plose_NettobetragWaehrungAbbuchung,sum([plose_MWSTBetragWaehrungAbbuchung]) as [plose_MWSTBetragWaehrungAbbuchung],sum([plose_BruttobetragWaehrungAbbuchung]) as [plose_BruttobetragWaehrungAbbuchung] "
@@ -3451,13 +3467,13 @@ Public Class frmMDMDatenverarbetiung
For Each r In dt.Rows For Each r In dt.Rows
Dim BLNr = r("plp_LeistungsNr") Dim BLNr = r("plp_LeistungsNr")
'Dim BProz = r("plose_BruttobetragWaehrungAbbuchung") 'Dim BProz = r("plose_BruttobetragWaehrungAbbuchung")
Dim NettoBetrag As Double = r("plose_NettobetragWaehrungAbbuchung") Dim NettoBetrag As Double = r("plose_NettobetragWaehrungAbbuchung")
Dim BruttoBetrag As Double = r("plose_BruttobetragWaehrungAbbuchung") Dim BruttoBetrag As Double = r("plose_BruttobetragWaehrungAbbuchung")
Dim LeistungsNr As Integer = r("plp_LeistungsNr") Dim LeistungsNr As Integer = r("plp_LeistungsNr")
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag) allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
'Rückvergütung Consortio !! 'Rückvergütung Consortio !!
@@ -3483,7 +3499,9 @@ Public Class frmMDMDatenverarbetiung
Dim NettoBetrag As Double = r("Netto") Dim NettoBetrag As Double = r("Netto")
Dim BruttoBetrag As Double = r("Brutto") Dim BruttoBetrag As Double = r("Brutto")
Dim LeistungsNr As Integer = r("LeistungsNr") Dim LeistungsNr As Integer = r("LeistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag) allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
@@ -3504,14 +3522,17 @@ Public Class frmMDMDatenverarbetiung
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
For Each r In dt.Rows 'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
For Each r In dt.Rows
Dim NettoBetrag As Double = r("Netto") Dim NettoBetrag As Double = r("Netto")
Dim BruttoBetrag As Double = r("Brutto") Dim BruttoBetrag As Double = r("Brutto")
Dim UstBetrag As Double = BruttoBetrag = NettoBetrag Dim UstBetrag As Double = BruttoBetrag = NettoBetrag
Dim LeistungsNr As Integer = r("LeistungsNr") Dim LeistungsNr As Integer = r("LeistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag) allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag)
@@ -3537,13 +3558,17 @@ Public Class frmMDMDatenverarbetiung
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", 1200) Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", 1200)
'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
For Each r In dt.Rows For Each r In dt.Rows
Dim NettoBetrag As Double = r("Netto") Dim NettoBetrag As Double = r("Netto")
Dim BruttoBetrag As Double = r("Brutto") Dim BruttoBetrag As Double = r("Brutto")
Dim UstBetrag As Double = r("UST") Dim UstBetrag As Double = r("UST")
Dim LeistungsNr As Integer = r("LeistungsNr") Dim LeistungsNr As Integer = r("LeistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag) allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag)
@@ -3587,7 +3612,9 @@ Public Class frmMDMDatenverarbetiung
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", 1200) Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", 1200)
'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
For Each r In dt.Rows For Each r In dt.Rows
@@ -3598,7 +3625,6 @@ Public Class frmMDMDatenverarbetiung
Dim Rabatt As Double = r("SummevonRabattbetrag") Dim Rabatt As Double = r("SummevonRabattbetrag")
Dim LeistungsNr As Integer = r("LeistungsNr") Dim LeistungsNr As Integer = r("LeistungsNr")
Dim LeistungsBez As String = r("LeistungsBez") Dim LeistungsBez As String = r("LeistungsBez")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag - Rabatt, UstBetrag, LeistungsBez) 'bei IDS muss ebenfalls die LeistungsBez ident sein! allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag - Rabatt, UstBetrag, LeistungsBez) 'bei IDS muss ebenfalls die LeistungsBez ident sein!
@@ -3612,16 +3638,17 @@ Public Class frmMDMDatenverarbetiung
RG.Steuersatz_Proz = dtSt.Rows(0)(0) RG.Steuersatz_Proz = dtSt.Rows(0)(0)
End If End If
'cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
'Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen -> NICHT NOTWENDIG WEIL 440 nicht mehr FÜR Sammelrechnung verwendet wird!
'Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen -> NICHT NOTWENDIG WEIL 440/PP nicht mehr FÜR Sammelrechnung verwendet wird!
Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen
Call usrCntlFaktAbrechnung.setFixeTaxeMin(RG, 500) ' Fixe Taxe 441 errechnen
cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag) cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
RG.Text = (cFakturierung.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim RG.Text = (cFakturierung.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim
Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen
Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen
Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen
Call usrCntlFaktAbrechnung.setFixeTaxeMin(RG, 500, 20) ' Fixe Taxe 441 errechnen
RE = RG RE = RG
If test Then If test Then
@@ -3753,6 +3780,12 @@ Public Class frmMDMDatenverarbetiung
POS.Anzahl = 1 POS.Anzahl = 1
' POS.BGebLeistungsNr = BGebLeistungsNr ' POS.BGebLeistungsNr = BGebLeistungsNr
If POS.LeistungsNr = 441 Then
MsgBox("")
End If
RG.POSITIONEN.Add(POS) RG.POSITIONEN.Add(POS)
End If End If
@@ -3803,6 +3836,9 @@ Public Class frmMDMDatenverarbetiung
Dim cnt = 0 Dim cnt = 0
Dim cntTotal = MyDatagridview1.Rows.Count() Dim cntTotal = MyDatagridview1.Rows.Count()
checkFixeTaxeImOffert("PLOSE", VERAGKdNr_DT)
For Each r As DataGridViewRow In MyDatagridview1.Rows For Each r As DataGridViewRow In MyDatagridview1.Rows
'KUNDEN-NR / PLOSE KD-NR 'KUNDEN-NR / PLOSE KD-NR
results = VERAGKdNr_DT.Select("PLOSEKundenNr = '" & r.Cells("plose_POLSEKundennummer").Value & "'") results = VERAGKdNr_DT.Select("PLOSEKundenNr = '" & r.Cells("plose_POLSEKundennummer").Value & "'")
@@ -3894,6 +3930,10 @@ Public Class frmMDMDatenverarbetiung
ORDER BY cardnumber", "FMZOLL") ORDER BY cardnumber", "FMZOLL")
Dim dtKunden As DataTable = SQL.loadDgvBySql("SELECT Distinct(Kreditkarten.AdressenNr FROM dbo.tblAsfinagMaut", "FMZOLL")
checkFixeTaxeImOffert("ASFINAG", dtKunden)
Dim VERAGKdNr = -1 Dim VERAGKdNr = -1
Dim VERAGLeistungsNr = -1 Dim VERAGLeistungsNr = -1
Dim found = False Dim found = False
@@ -3920,7 +3960,7 @@ Public Class frmMDMDatenverarbetiung
pruefData_UTA = True pruefData_UTA = True
Try Try
Dim dtUTAKundennummern As DataTable = SQL.loadDgvBySql("SELECT Distinct(tblUTAImportNew.Kundennummer) Dim dtUTAKundennummern As DataTable = SQL.loadDgvBySql("Select Distinct(tblUTAImportNew.Kundennummer)
FROM tblUTAImportNew LEFT JOIN Adressen ON tblUTAImportNew.Kundennummer = Adressen.UTAKundenNr WHERE cast(tblUTAImportNew.Rechnungsdatum as Date) = '" & DateTimePicker2.Text & "' FROM tblUTAImportNew LEFT JOIN Adressen ON tblUTAImportNew.Kundennummer = Adressen.UTAKundenNr WHERE cast(tblUTAImportNew.Rechnungsdatum as Date) = '" & DateTimePicker2.Text & "'
GROUP BY tblUTAImportNew.Kundennummer, Adressen.UTAKundenNr GROUP BY tblUTAImportNew.Kundennummer, Adressen.UTAKundenNr
HAVING (((Adressen.UTAKundenNr) Is Null))", "FMZOLL") HAVING (((Adressen.UTAKundenNr) Is Null))", "FMZOLL")
@@ -3962,6 +4002,13 @@ Public Class frmMDMDatenverarbetiung
End If End If
Dim dtKundenNr As DataTable = SQL.loadDgvBySql("SELECT Distinct(Adressen.AdressenNr)
FROM tblUTAImportNew LEFT JOIN Adressen ON tblUTAImportNew.Kundennummer = Adressen.UTAKundenNr
WHERE cast(tblUTAImportNew.Rechnungsdatum as Date) = '" & DateTimePicker2.Text & "'
GROUP BY Adressen.AdressenNr", "FMZOLL")
checkFixeTaxeImOffert("UTA", dtKundenNr)
Dim fehlendeRechnungen As Integer = 0 Dim fehlendeRechnungen As Integer = 0
@@ -4052,6 +4099,16 @@ Public Class frmMDMDatenverarbetiung
MsgBox("Es sind " & nichtAufAbgerechnetGesetzteTransactionen & " Transaktionen in der Datenbank, die noch nicht auf VERRECHNET gesetzt sind!" & vbNewLine & "Diese Transaktionen (von Rechnung " & DateTimePicker2.Text & ") müssen aktualisiert werden. (bitte an Administrator wenden)." & IIf(hint <> "", vbNewLine & hint, "")) MsgBox("Es sind " & nichtAufAbgerechnetGesetzteTransactionen & " Transaktionen in der Datenbank, die noch nicht auf VERRECHNET gesetzt sind!" & vbNewLine & "Diese Transaktionen (von Rechnung " & DateTimePicker2.Text & ") müssen aktualisiert werden. (bitte an Administrator wenden)." & IIf(hint <> "", vbNewLine & hint, ""))
End If End If
Dim dt As DataTable = SQL.loadDgvBySql("SELECT Distinct(Adressen.AdressenNr)
FROM [VERAG].[dbo].[tblMSESettlements] as bills
left join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id]
left join [VERAG].[dbo].[tblMSECustomers] as cust on cust.partner_customer_number = trans.partner_haulier_id
left join [VERAG].[dbo].[tblMSEInvoices] as inv on inv.[invoice_id] = bills.[invoice_number] and inv.customer_number = cust.[customer_id] and trans.transaction_country = inv.country
left join adressen ON cust.[customer_id] = Adressen.MSEKundenNr
WHERE bills.[invoice_date] = '" & DateTimePicker2.Text & "' ", "FMZOLL")
checkFixeTaxeImOffert("MSE", dt)
'das muss die letzte Prüfung sein, da uU eine Transaktion fehlen kann! 'das muss die letzte Prüfung sein, da uU eine Transaktion fehlen kann!
Dim fehlendeTransactionen As Integer = 0 Dim fehlendeTransactionen As Integer = 0
@@ -4098,6 +4155,9 @@ Public Class frmMDMDatenverarbetiung
Dim dt As DataTable = SQL.loadDgvBySql("Select distinct(tblIDSTransactionsNew.KdNrVERAG) from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "'", "FMZOLL") Dim dt As DataTable = SQL.loadDgvBySql("Select distinct(tblIDSTransactionsNew.KdNrVERAG) from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "'", "FMZOLL")
checkFixeTaxeImOffert("IDS", dt)
checkFixeTaxeImOffert("IDS_AT", dt)
If dt.Rows.Count > 0 Then If dt.Rows.Count > 0 Then
Dim counter As Integer = 0 Dim counter As Integer = 0
For Each r In dt.Rows For Each r In dt.Rows
@@ -4867,4 +4927,64 @@ RabattBerechnen:
Return checkDate Return checkDate
End Function End Function
Private Function checkFixeTaxeImOffert(Lieferant As String, dt As DataTable) As Boolean
Dim OffertenNr As Integer = -1
If Lieferant = "" Then Return False
Select Case Lieferant
Case "PLOSE" : OffertenNr = 80
Case "ASFINAG" : OffertenNr = 11
Case "UTA" : OffertenNr = 30
Case "MSE" : OffertenNr = 23
Case "IDS" : OffertenNr = 17
Case "IDS_AT" : OffertenNr = 21
Case Else
Return False
End Select
Dim AdressenNr As String = ""
If dt.Rows.Count > 0 Then
If dt.Columns.Contains("AdressenNr") Or dt.Columns.Contains("KdNrVERAG") Then
Dim dtNew As DataTable = dt.Rows.Cast(Of DataRow)().Where(Function(row) Not row.ItemArray.All(Function(field) field Is DBNull.Value Or field.Equals(""))).CopyToDataTable()
If dtNew.Rows.Count > 0 Then
Dim counter = 0
For Each r As DataRow In dtNew.Rows
AdressenNr &= r.Item(0)
counter = counter + 1
If (dtNew.Rows.Count <> 0 And counter <> dtNew.Rows.Count) Then
AdressenNr &= ","
End If
Next
End If
End If
End If
Dim sqlStringOffertMehrfach = "select COUNT(*) as Anzahl ,OffertenNr, KundenNr LeistungsNr from Offertenpositionen where LeistungsNr = 441 and OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ") group by KundenNr, LeistungsNr, OffertenNr having COUNT(*) > 1"
Dim dtOfferten As DataTable = SQL.loadDgvBySql(sqlStringOffertMehrfach, "FMZOLL")
If dtOfferten.Rows.Count > 0 Then
MsgBox("Es sind bei " & dtOfferten.Rows.Count & " Kunden das Offert 441 mehrfach hinterlegt, das muss korrigiert werden, ansonten kann die Fixe Taxe nicht berechnet werden!")
cProgramFunctions.genExcelCSVFromDT(dtOfferten, True)
Return False
End If
Dim sqlStringFehlendeOffertenNr = "select KundenNr, OffertenNr from Offertenpositionen where OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ")
GROUP by KundenNr, OffertenNr
EXCEPT
select KundenNr, OffertenNr from Offertenpositionen where LeistungsNr = 441 and OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ")
GROUP by KundenNr, OffertenNr"
Dim dtfehlendeOfferten As DataTable = SQL.loadDgvBySql(sqlStringFehlendeOffertenNr, "FMZOLL")
If dtfehlendeOfferten.Rows.Count > 0 Then
MsgBox("Es fehlen bei " & dtfehlendeOfferten.Rows.Count & " Kunden das Offert 441, bitte hinterlegen ansonten wird die Fixe Taxe nicht gesetzt!")
cProgramFunctions.genExcelCSVFromDT(dtfehlendeOfferten, True)
Return True
End If
End Function
End Class End Class

View File

@@ -44,6 +44,8 @@ Public Class usrcntlFakturierung
'PathMautberichte = "C:\Users\d.breimaier\Desktop\MDM\Mautgesamtberichte\" 'PathMautberichte = "C:\Users\d.breimaier\Desktop\MDM\Mautgesamtberichte\"
Dim FaktAbt As Boolean = IIf(VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG("MDM_FAKTURIERUNG", "SDL") = 0, True, False)
countCSV = 0 countCSV = 0
countPDF = 0 countPDF = 0
If Directory.Exists(PathMautberichte) Then If Directory.Exists(PathMautberichte) Then
@@ -54,12 +56,12 @@ Public Class usrcntlFakturierung
Next Next
End If End If
Else Else
MsgBox("Mautbericht-Pfad " & PathMautberichte & " nicht verfügbar!") If FaktAbt Then MsgBox("Mautbericht-Pfad " & PathMautberichte & " nicht verfügbar!")
End If End If
lblAnzahlMautberichte.Text = countCSV + countPDF & "x Mautberichte (" & countCSV & "x CSV " & countPDF & "x PDF )" lblAnzahlMautberichte.Text = countCSV + countPDF & "x Mautberichte (" & countCSV & "x CSV " & countPDF & "x PDF )"
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG("MDM_FAKTURIERUNG", "SDL") = 0 Then If FaktAbt Then
btnMDMSammelrechnung.Enabled = True btnMDMSammelrechnung.Enabled = True
GBMautberichte.Enabled = True GBMautberichte.Enabled = True
@@ -285,8 +287,10 @@ Public Class usrcntlFakturierung
'Rechnungstext im RK eintragen 'Rechnungstext im RK eintragen
showPic(setRechnungstext(Sachbearbeiter, rechnungsdatum, dtSammelrechnungen), PictureBox3) showPic(setRechnungstext(Sachbearbeiter, rechnungsdatum, dtSammelrechnungen), PictureBox3)
' Porto/Papiere berechnen. '--NICHT BENÖTIGT!
showPic(PortoPapiere(Sachbearbeiter, rechnungsdatum), PictureBox4) ' Porto/Papiere berechnen.
'showPic(PortoPapiere(Sachbearbeiter, rechnungsdatum), PictureBox4)
'--NICHT BENÖTIGT!
'Berechnet Banküberweisung/Bankspesen. 'Berechnet Banküberweisung/Bankspesen.
showPic(Bankspesen(Sachbearbeiter, rechnungsdatum), PictureBox5) showPic(Bankspesen(Sachbearbeiter, rechnungsdatum), PictureBox5)
@@ -540,27 +544,33 @@ Public Class usrcntlFakturierung
Dim intZlr As Integer = 0 Dim intZlr As Integer = 0
If r("RechnungsKundenNr") = "401715" Or r("RechnungsKundenNr") = "401943" Or r("RechnungsKundenNr") = "402179" Or r("RechnungsKundenNr") = "402598" Or r("RechnungsKundenNr") = "402656" Or r("RechnungsKundenNr") = "402688" Or r("RechnungsKundenNr") = "402719" Or r("RechnungsKundenNr") = "402888" Or r("RechnungsKundenNr") = "402933" Or r("RechnungsKundenNr") = "401733" Or r("RechnungsKundenNr") = "402245" Or r("RechnungsKundenNr") = "402712" Or r("RechnungsKundenNr") = "402065" Or r("RechnungsKundenNr") = "402712" Or r("RechnungsKundenNr") = "401908" Or r("RechnungsKundenNr") = "401829" Or r("RechnungsKundenNr") = "203083" Then
'MsgBox("Test")
End If
' Bei BetragExclusivFT kleiner als 500€ wird 1x fixe Taxe verrechnet, bei grösser/gleich 500€ wird kein fixe Taxe verrechnet. ' Bei BetragExclusivFT kleiner als 500€ wird 1x fixe Taxe verrechnet, bei grösser/gleich 500€ wird kein fixe Taxe verrechnet.
' Zähler auf die Anzahl der fixe Taxe Löschungen einstellen. ' Zähler auf die Anzahl der fixe Taxe Löschungen einstellen.
If Not IsDBNull(r("BetragExclusivFT")) AndAlso r("BetragExclusivFT") > 0 Then If Not IsDBNull(r("BetragExclusivFT")) AndAlso r("BetragExclusivFT") > 0 Then
If Not IsDBNull(r("BetragExclusivPP")) AndAlso r("BetragExclusivPP") > 0 Then If r("BetragExclusivFT") < 500 Then
intZlr = r("AnzahlFT") - 1
If r("BetragExclusivPP") < 500 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP")
End If
Else Else
If (0 - r("BetragExclusivPP")) < 500 Then intZlr = r("AnzahlFT")
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP") - 1
End If
End If End If
Else
If (0 - r("BetragExclusivFT")) < 500 Then
intZlr = r("AnzahlFT") - 1
Else
intZlr = r("AnzahlFT") - 1
End If
End If End If
If intZlr > 0 Then If intZlr > 0 Then
@@ -615,6 +625,8 @@ Public Class usrcntlFakturierung
intZlr = intZlr - row("Anzahl") intZlr = intZlr - row("Anzahl")
If intZlr < 0 Then Exit For
If Not IsDBNull(row("SteuerpflichtigerBetrag")) AndAlso IsNumeric(row("SteuerpflichtigerBetrag")) Then stgesBetr = stgesBetr - CDbl(row("SteuerpflichtigerBetrag")) If Not IsDBNull(row("SteuerpflichtigerBetrag")) AndAlso IsNumeric(row("SteuerpflichtigerBetrag")) Then stgesBetr = stgesBetr - CDbl(row("SteuerpflichtigerBetrag"))
If Not IsDBNull(row("SteuerfreierBetrag")) AndAlso IsNumeric(row("SteuerfreierBetrag")) Then stfregesBetr = stfregesBetr - CDbl(row("SteuerfreierBetrag")) If Not IsDBNull(row("SteuerfreierBetrag")) AndAlso IsNumeric(row("SteuerfreierBetrag")) Then stfregesBetr = stfregesBetr - CDbl(row("SteuerfreierBetrag"))
@@ -624,7 +636,7 @@ Public Class usrcntlFakturierung
isSet = RECHNUNG.SAVE(False) isSet = RECHNUNG.SAVE(False)
End If End If
If intZlr = 0 Then Exit For If intZlr <= 0 Then Exit For
Next Next

View File

@@ -1,6 +1,7 @@
 
Imports System.Data.SqlClient Imports System.Data.SqlClient
Imports System.Reflection Imports System.Reflection
Imports com.sun.xml.internal.rngom.digested
Public Class cEmailBenachrichtigungList Public Class cEmailBenachrichtigungList
Property eb_KundenNr As Object = Nothing Property eb_KundenNr As Object = Nothing
@@ -122,21 +123,20 @@ Public Class cEmailBenachrichtigung
Dim Firmen As New cFirmenDAL Dim Firmen As New cFirmenDAL
Dim Firma As New cFirma Dim Firma As New cFirma
If Kdnr Is Nothing OrElse Not IsNumeric(Kdnr) Then Exit Sub
If Kdnr < 0 Then Exit Sub
'Prüfen, ob die Art für den Kunden im Kundenstamm aktiviert ist: 'Prüfen, ob die Art für den Kunden im Kundenstamm aktiviert ist:
If art = 3 Then '> Ankunft Export Dim kdn_er As New cKundenErweitert(Kdnr)
Dim AnkungMail = IIf((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(EmailAnkunft_Export,0)", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", "0") = "False", "0", (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(EmailAnkunft_Export,0)", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", "0")) If art = 3 Then '> Ankunft Export
If AnkungMail = 0 Then If kdn_er Is Nothing OrElse Not kdn_er.EmailAnkunft_Export Then
art = 1 art = 1
End If
ElseIf art = 4 Then '> Freigabe Export
If kdn_er Is Nothing OrElse Not kdn_er.EmailFreigabe_Export Then
art = 2
End If
End If End If
End If
If art = 4 Then '> Freigabe Export
Dim FreigabeMail = IIf((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(EmailFreigabe_Export,0)", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", "0") = "False", "0", (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(EmailFreigabe_Export,0)", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", "0"))
If FreigabeMail = 0 Then
art = 2
End If
End If
'In diesen Strings werden die Mailadressen übergeben: 'In diesen Strings werden die Mailadressen übergeben:
@@ -144,7 +144,7 @@ Public Class cEmailBenachrichtigung
Emails_CC = "" Emails_CC = ""
Emails_BCC = "" Emails_BCC = ""
If Kdnr Is Nothing OrElse Not IsNumeric(Kdnr) Then Exit Sub
' Dim Avisierer As New cKunde(hAuftraggeber_kdnr) ' Dim Avisierer As New cKunde(hAuftraggeber_kdnr)
' Dim Fraechter As New cKunde(hFrächter_kdnr) ' Dim Fraechter As New cKunde(hFrächter_kdnr)
Dim Kdnr_Mails As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(Kdnr, art) Dim Kdnr_Mails As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(Kdnr, art)