From 2afdb174cc5b5805d24a9f7ff8d86546a17ca939 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 25 Jun 2025 12:03:31 +0200 Subject: [PATCH 1/8] faktEmail Bugfix --- SDL/Fakturierung/frmFaktEmail.vb | 8 +++++++- SDL/My Project/AssemblyInfo.vb | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 714dc60f..b4fc0757 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -1057,7 +1057,13 @@ Public Class frmFaktEmail 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 diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 20c7010a..8b68c701 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + From fe17b29564b0115b7dc4f2efa34b953723d72f13 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 25 Jun 2025 13:25:34 +0200 Subject: [PATCH 2/8] Mailbenachrichtigungen --- .../Classes/cEmailBenachrichtigung.vb | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb index f36ebdff..36f90bf6 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb @@ -1,6 +1,7 @@  Imports System.Data.SqlClient Imports System.Reflection +Imports com.sun.xml.internal.rngom.digested Public Class cEmailBenachrichtigungList Property eb_KundenNr As Object = Nothing @@ -122,22 +123,24 @@ Public Class cEmailBenachrichtigung Dim Firmen As New cFirmenDAL Dim Firma As New cFirma - 'Prüfen, ob die Art für den Kunden im Kundenstamm aktiviert ist: - If art = 3 Then '> Ankunft Export - 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 AnkungMail = 0 Then - art = 1 - 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 + Dim kdn_er As New cKundenErweitert(Kdnr) + If kdn_er IsNot Nothing Then + If art = 3 Then '> Ankunft Export + Dim AnkunftMail = CBool((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("EmailAnkunft_Export", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", False)) + If AnkunftMail Then + art = 1 + End If + ElseIf art = 4 Then '> Freigabe Export + Dim FreigabeMail = CBool((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("EmailFreigabe_Export", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", False)) + If FreigabeMail Then + art = 2 + End If + End If + + End If 'In diesen Strings werden die Mailadressen übergeben: Emails = "" From 884fd87a3ea09fd8fe1f26e64e567757e2109ea3 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 25 Jun 2025 13:40:47 +0200 Subject: [PATCH 3/8] Fix Benachrichtigung --- .../Classes/cEmailBenachrichtigung.vb | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb index 36f90bf6..d2318eba 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb @@ -126,22 +126,19 @@ Public Class cEmailBenachrichtigung 'Prüfen, ob die Art für den Kunden im Kundenstamm aktiviert ist: Dim kdn_er As New cKundenErweitert(Kdnr) - If kdn_er IsNot Nothing Then - If art = 3 Then '> Ankunft Export - Dim AnkunftMail = CBool((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("EmailAnkunft_Export", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", False)) - If AnkunftMail Then - art = 1 - End If - ElseIf art = 4 Then '> Freigabe Export - Dim FreigabeMail = CBool((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("EmailFreigabe_Export", "[tblKundenErweitert]", "kde_KundenNr=" & Kdnr, "FMZOLL", False)) - If FreigabeMail Then - art = 2 - End If + If art = 3 Then '> Ankunft Export + If kdn_er Is Nothing OrElse Not kdn_er.EmailAnkunft_Export Then + 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 + + 'In diesen Strings werden die Mailadressen übergeben: Emails = "" Emails_CC = "" From 4b40d5ffcfa8e1139c38ab6abcbd506889dabb96 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 25 Jun 2025 13:49:21 +0200 Subject: [PATCH 4/8] fix Mailbenachrichtigungen --- .../Classes/cEmailBenachrichtigung.vb | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb index d2318eba..23a3a611 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb @@ -123,20 +123,19 @@ Public Class cEmailBenachrichtigung Dim Firmen As New cFirmenDAL Dim Firma As New cFirma + If Kdnr Is Nothing OrElse Not IsNumeric(Kdnr) Then Exit Sub + 'Prüfen, ob die Art für den Kunden im Kundenstamm aktiviert ist: - Dim kdn_er As New cKundenErweitert(Kdnr) - - If art = 3 Then '> Ankunft Export - If kdn_er Is Nothing OrElse Not kdn_er.EmailAnkunft_Export Then - art = 1 + If art = 3 Then '> Ankunft Export + If kdn_er Is Nothing OrElse Not kdn_er.EmailAnkunft_Export Then + 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 - ElseIf art = 4 Then '> Freigabe Export - If kdn_er Is Nothing OrElse Not kdn_er.EmailFreigabe_Export Then - art = 2 - End If - End If - 'In diesen Strings werden die Mailadressen übergeben: @@ -144,7 +143,7 @@ Public Class cEmailBenachrichtigung Emails_CC = "" Emails_BCC = "" - If Kdnr Is Nothing OrElse Not IsNumeric(Kdnr) Then Exit Sub + ' Dim Avisierer As New cKunde(hAuftraggeber_kdnr) ' Dim Fraechter As New cKunde(hFrächter_kdnr) Dim Kdnr_Mails As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(Kdnr, art) From a08e27deead668d1d5272c7a97a325b96823b57c Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 26 Jun 2025 15:33:05 +0200 Subject: [PATCH 5/8] Mahnlauf, Mailbenachrichtung, Fakt, MDMEinarbeitung, etc. --- SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 35 ++++----- SDL/buchhaltung/frmBU_Mahnlauf.vb | 4 +- ...undenAvisoMailBenachrichtigung.Designer.vb | 4 +- SDL/mdm/frmMDMDatenverarbetiung.vb | 72 ++++++++++++++----- SDL/seriendruck/usrCntlFakturierung.vb | 36 +++++----- .../Classes/cEmailBenachrichtigung.vb | 1 + 6 files changed, 98 insertions(+), 54 deletions(-) diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index 713ef9f6..e684a02a 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -2430,7 +2430,7 @@ Public Class usrCntlFaktAbrechnung Call przFixeTaxe(RECHNUNG) ' Fixe Taxe errechnen Call przPP(RECHNUNG) ' Porto/Papiere errechnen Call przBS415(RECHNUNG) ' Bankspesen errechnen - Call setFixeTaxeMin(RECHNUNG, 500, 20) ' Mind Fixe Taxe errechnen + 'Call setFixeTaxeMin(RECHNUNG, 500, 20) ' Mind Fixe Taxe errechnen 'Me![SteuerpflichtigerGesamtbetrag] = 0.0# 'Me![SteuerfreierGesamtbetrag] = 0.0# @@ -3069,24 +3069,27 @@ Public Class usrCntlFaktAbrechnung 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) - '... sonst wird eine neue Pos eingefügt... - If FixeTaxePOS IsNot Nothing Then - 'FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen - FixeTaxePOS.LeistungsNr = 441 '441 und nicht 440 laut Brigitte weil Steuerfrei!! - FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe" - FixeTaxePOS.BerechnungsartNr = 1 - 'RECHNUNG.POSITIONEN.Add(FixeTaxePOS) - '...und der Wert gesetzt. + 'Sucht, ob Fixetaxe schon vorhanden ist,... + Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 441) + '... sonst wird eine neue Pos eingefügt... + If FixeTaxePOS IsNot Nothing Then + 'FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen + FixeTaxePOS.LeistungsNr = 441 '441 und nicht 440 laut Brigitte weil Steuerfrei!! + FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe" + FixeTaxePOS.BerechnungsartNr = 1 + 'RECHNUNG.POSITIONEN.Add(FixeTaxePOS) + '...und der Wert gesetzt. + If FixeTaxe_Berechnungbetrag < minBetrag Then FixeTaxePOS.Anzahl = 1 - FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * fixeTaxe 'Preis wird bewusst überschrieben!!! - - initSteuerbetraege(RECHNUNG, FixeTaxePOS) + Else + FixeTaxePOS.Anzahl = 0 End If + FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * fixeTaxe 'Preis wird bewusst überschrieben!!! + initSteuerbetraege(RECHNUNG, FixeTaxePOS) + End If + If FixeTaxePOS.Anzahl = 0 Then + RECHNUNG.POSITIONEN.Remove(FixeTaxePOS) End If diff --git a/SDL/buchhaltung/frmBU_Mahnlauf.vb b/SDL/buchhaltung/frmBU_Mahnlauf.vb index 84e250bd..ffd1812e 100644 --- a/SDL/buchhaltung/frmBU_Mahnlauf.vb +++ b/SDL/buchhaltung/frmBU_Mahnlauf.vb @@ -45,9 +45,9 @@ Public Class frmBU_Mahnlauf 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, */ " & - "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, + (select(SUM(isnull(eur_bruttobetrag,0)+isnull(eur_zahlung)) 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)) - 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, case diff --git a/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb b/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb index fdcff50e..e78f3bfd 100644 --- a/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb +++ b/SDL/kunden/usrCntlKundenAvisoMailBenachrichtigung.Designer.vb @@ -366,9 +366,9 @@ Partial Class usrCntlKundenAvisoMailBenachrichtigung Me.btnWikiStatusmails.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnWikiStatusmails.FlatAppearance.BorderSize = 0 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.Size = New System.Drawing.Size(25, 20) + Me.btnWikiStatusmails.Size = New System.Drawing.Size(32, 25) Me.btnWikiStatusmails.TabIndex = 70 Me.btnWikiStatusmails.UseVisualStyleBackColor = True ' diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index e68066c8..7ce6c346 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -1243,7 +1243,11 @@ Public Class frmMDMDatenverarbetiung Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN) If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) For Each f In Directory.GetFiles(dirAnhang) - File.Delete(f) + Try + File.Delete(f) + Catch ex As Exception + + End Try Next End If If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang) @@ -1393,7 +1397,11 @@ Public Class frmMDMDatenverarbetiung 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) For Each f In Directory.GetFiles(dirAnhang) - File.Delete(f) + Try + File.Delete(f) + Catch ex As Exception + + End Try Next Else Directory.CreateDirectory(dirAnhang) @@ -1539,7 +1547,11 @@ Public Class frmMDMDatenverarbetiung 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) For Each f In Directory.GetFiles(dirAnhang) - File.Delete(f) + Try + File.Delete(f) + Catch ex As Exception + + End Try Next Else Directory.CreateDirectory(dirAnhang) @@ -3425,13 +3437,14 @@ Public Class frmMDMDatenverarbetiung Dim sqlstr As String = "" Dim useNettogesamtbetrag As Boolean = False + 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 Case "PLOSE" - Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True) - - RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0 - + 'Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True) + 'RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0 ' 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] " @@ -3451,13 +3464,13 @@ Public Class frmMDMDatenverarbetiung For Each r In dt.Rows Dim BLNr = r("plp_LeistungsNr") + 'Dim BProz = r("plose_BruttobetragWaehrungAbbuchung") Dim NettoBetrag As Double = r("plose_NettobetragWaehrungAbbuchung") Dim BruttoBetrag As Double = r("plose_BruttobetragWaehrungAbbuchung") Dim LeistungsNr As Integer = r("plp_LeistungsNr") - allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag) 'Rückvergütung Consortio !! @@ -3483,7 +3496,9 @@ Public Class frmMDMDatenverarbetiung Dim NettoBetrag As Double = r("Netto") Dim BruttoBetrag As Double = r("Brutto") 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) @@ -3504,14 +3519,17 @@ Public Class frmMDMDatenverarbetiung 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 BruttoBetrag As Double = r("Brutto") Dim UstBetrag As Double = BruttoBetrag = NettoBetrag Dim LeistungsNr As Integer = r("LeistungsNr") - Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True) + + allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag) @@ -3537,13 +3555,17 @@ Public Class frmMDMDatenverarbetiung 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 Dim NettoBetrag As Double = r("Netto") Dim BruttoBetrag As Double = r("Brutto") Dim UstBetrag As Double = r("UST") Dim LeistungsNr As Integer = r("LeistungsNr") - Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True) + allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag, UstBetrag) @@ -3587,7 +3609,9 @@ Public Class frmMDMDatenverarbetiung 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 @@ -3598,7 +3622,6 @@ Public Class frmMDMDatenverarbetiung Dim Rabatt As Double = r("SummevonRabattbetrag") Dim LeistungsNr As Integer = r("LeistungsNr") 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! @@ -3612,16 +3635,17 @@ Public Class frmMDMDatenverarbetiung RG.Steuersatz_Proz = dtSt.Rows(0)(0) End If + 'cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag) + 'Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen -> NICHT NOTWENDIG WEIL 440 nicht FÜR Sammelrechnung verwendet wird! + 'Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen -> NICHT NOTWENDIG WEIL 440 nicht FÜR Sammelrechnung verwendet wird! + + Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen + Call usrCntlFaktAbrechnung.setFixeTaxeMin(RG, 500, 20) ' Fixe Taxe 441 errechnen cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag) 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 If test Then @@ -3681,6 +3705,12 @@ Public Class frmMDMDatenverarbetiung POS.BGebProzent = o.BGebProzent POS.BGebMinBetrag = o.BGebMinBetrag + If POS.LeistungsNr = 441 Then + MsgBox("") + End If + + + RG.POSITIONEN.Add(POS) @@ -3753,6 +3783,12 @@ Public Class frmMDMDatenverarbetiung POS.Anzahl = 1 ' POS.BGebLeistungsNr = BGebLeistungsNr + + If POS.LeistungsNr = 441 Then + MsgBox("") + End If + + RG.POSITIONEN.Add(POS) End If diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index 43190619..d28b7491 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -44,6 +44,8 @@ Public Class usrcntlFakturierung '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 countPDF = 0 If Directory.Exists(PathMautberichte) Then @@ -54,12 +56,12 @@ Public Class usrcntlFakturierung Next End If Else - MsgBox("Mautbericht-Pfad " & PathMautberichte & " nicht verfügbar!") + If FaktAbt Then MsgBox("Mautbericht-Pfad " & PathMautberichte & " nicht verfügbar!") End If 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 GBMautberichte.Enabled = True @@ -285,8 +287,10 @@ Public Class usrcntlFakturierung 'Rechnungstext im RK eintragen showPic(setRechnungstext(Sachbearbeiter, rechnungsdatum, dtSammelrechnungen), PictureBox3) - ' Porto/Papiere berechnen. - showPic(PortoPapiere(Sachbearbeiter, rechnungsdatum), PictureBox4) + '--NICHT BENÖTIGT! + ' Porto/Papiere berechnen. + 'showPic(PortoPapiere(Sachbearbeiter, rechnungsdatum), PictureBox4) + '--NICHT BENÖTIGT! 'Berechnet Banküberweisung/Bankspesen. showPic(Bankspesen(Sachbearbeiter, rechnungsdatum), PictureBox5) @@ -545,22 +549,22 @@ Public Class usrcntlFakturierung If Not IsDBNull(r("BetragExclusivFT")) AndAlso r("BetragExclusivFT") > 0 Then - If Not IsDBNull(r("BetragExclusivPP")) AndAlso r("BetragExclusivPP") > 0 Then - - If r("BetragExclusivPP") < 500 Then - intZlr = r("AnzahlPP") - 1 - Else - intZlr = r("AnzahlPP") - End If + If r("BetragExclusivFT") < 500 Then + intZlr = r("AnzahlFT") - 1 Else - If (0 - r("BetragExclusivPP")) < 500 Then - intZlr = r("AnzahlPP") - 1 - Else - intZlr = r("AnzahlPP") - 1 - End If + intZlr = r("AnzahlFT") End If + + Else + If (0 - r("BetragExclusivFT")) < 500 Then + intZlr = r("AnzahlFT") - 1 + Else + intZlr = r("AnzahlFT") - 1 + End If + End If + If intZlr > 0 Then diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb index 23a3a611..936d9fe5 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb @@ -124,6 +124,7 @@ Public Class cEmailBenachrichtigung 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: Dim kdn_er As New cKundenErweitert(Kdnr) From 38b1bc74a934e0b1109b449dcb77234c092c0711 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 26 Jun 2025 15:51:50 +0200 Subject: [PATCH 6/8] Mahnlauf --- SDL/buchhaltung/frmBU_Mahnlauf.vb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SDL/buchhaltung/frmBU_Mahnlauf.vb b/SDL/buchhaltung/frmBU_Mahnlauf.vb index ffd1812e..b1e79596 100644 --- a/SDL/buchhaltung/frmBU_Mahnlauf.vb +++ b/SDL/buchhaltung/frmBU_Mahnlauf.vb @@ -47,7 +47,9 @@ Public Class frmBU_Mahnlauf 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(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, - (select(SUM(isnull(eur_bruttobetrag,0)+isnull(eur_zahlung)) 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)) - 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, case From 32e10aee12d848613b6d462edfd4e3375716d366 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 26 Jun 2025 17:00:51 +0200 Subject: [PATCH 7/8] faktAbrechnung --- SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index e684a02a..b589fbc7 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -3054,7 +3054,7 @@ Public Class usrCntlFaktAbrechnung Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double, fixeTaxe As Double) 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 @@ -3084,13 +3084,18 @@ Public Class usrCntlFaktAbrechnung Else FixeTaxePOS.Anzahl = 0 End If + FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * fixeTaxe 'Preis wird bewusst überschrieben!!! + initSteuerbetraege(RECHNUNG, FixeTaxePOS) + + If FixeTaxePOS.Anzahl = 0 Then + RECHNUNG.POSITIONEN.Remove(FixeTaxePOS) + End If + End If - If FixeTaxePOS.Anzahl = 0 Then - RECHNUNG.POSITIONEN.Remove(FixeTaxePOS) - End If + End Sub From 6339fe8645b5939e189202cf071cc7409e30b5f2 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 27 Jun 2025 15:19:28 +0200 Subject: [PATCH 8/8] FixeTaxe441 bei Sammelrechnung --- SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 14 +- SDL/mdm/frmMDMDatenverarbetiung.vb | 164 ++++++++++++++++------ SDL/seriendruck/usrCntlFakturierung.vb | 10 +- 3 files changed, 138 insertions(+), 50 deletions(-) diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index b589fbc7..215e8275 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -2430,7 +2430,7 @@ Public Class usrCntlFaktAbrechnung Call przFixeTaxe(RECHNUNG) ' Fixe Taxe errechnen Call przPP(RECHNUNG) ' Porto/Papiere 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![SteuerfreierGesamtbetrag] = 0.0# @@ -3045,20 +3045,16 @@ Public Class usrCntlFaktAbrechnung ' RECHNUNG.POSITIONEN.Add(FixeTaxePOS) '...und der Wert gesetzt. FixeTaxePOS.Anzahl = 1 - FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxe + FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxePOS.[Preis] initSteuerbetraege(RECHNUNG, FixeTaxePOS) End If 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 - 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 For Each POS In RECHNUNG.POSITIONEN @@ -3079,13 +3075,13 @@ Public Class usrCntlFaktAbrechnung FixeTaxePOS.BerechnungsartNr = 1 'RECHNUNG.POSITIONEN.Add(FixeTaxePOS) '...und der Wert gesetzt. - If FixeTaxe_Berechnungbetrag < minBetrag Then + If FixeTaxe_Berechnungbetrag < minBetrag AndAlso CBool(SQL.DLookup("[PP441]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then FixeTaxePOS.Anzahl = 1 Else FixeTaxePOS.Anzahl = 0 End If - FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * fixeTaxe 'Preis wird bewusst überschrieben!!! + FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxePOS.Preis 'Preis wird bewusst überschrieben!!! initSteuerbetraege(RECHNUNG, FixeTaxePOS) diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index 7ce6c346..f195f4be 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -1,5 +1,6 @@ Imports System.Data.OleDb Imports System.IO +Imports com.sun.xml.internal.rngom Imports itextsharp.text.pdf Imports MDM_Worker Imports VERAG_PROG_ALLGEMEIN @@ -1220,28 +1221,26 @@ Public Class frmMDMDatenverarbetiung End If Next End If - - If verarbOK Then - 'UPDATE Fakturiert - SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL") - End If - If True Then 'cnt Mod 10 = 0 Then - txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count - Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100 - pbPloseAnh_Proz.Value = proz - lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" - 'GroupBox12.Refresh() - My.Application.DoEvents() - End If - cnt += 1 - Next - If test Then Return True + 'UPDATE Fakturiert + SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL") + End If + If True Then 'cnt Mod 10 = 0 Then + txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count + Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100 + pbPloseAnh_Proz.Value = proz + lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" + 'GroupBox12.Refresh() + My.Application.DoEvents() + End If + cnt += 1 + Next + If test Then Return True - ' ANHÄNGE WERDEN NCIHT BENÖTIGT:: - 'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren - Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN) - If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) + ' ANHÄNGE WERDEN NCIHT BENÖTIGT:: + 'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren + Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN) + If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) For Each f In Directory.GetFiles(dirAnhang) Try File.Delete(f) @@ -1250,16 +1249,16 @@ Public Class frmMDMDatenverarbetiung End Try Next End If - If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang) - For Each f In Directory.GetFiles(dir) - File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True) - Next - pbPloseAnh_Proz.Value = 100 - txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count - lblPloseAnh_Proz.Text = "100.00 %" - Return True - End If - Return False + If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang) + For Each f In Directory.GetFiles(dir) + File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True) + Next + pbPloseAnh_Proz.Value = 100 + txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count + lblPloseAnh_Proz.Text = "100.00 %" + Return True + End If + Return False End Function Function genRGAtt_MSE(mseParam As cMSEAPI) As Boolean Dim top = "" @@ -3437,6 +3436,10 @@ Public Class frmMDMDatenverarbetiung Dim sqlstr As String = "" 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 @@ -3636,11 +3639,11 @@ Public Class frmMDMDatenverarbetiung End If 'cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag) - 'Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen -> NICHT NOTWENDIG WEIL 440 nicht FÜR Sammelrechnung verwendet wird! - 'Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen -> NICHT NOTWENDIG WEIL 440 nicht FÜR Sammelrechnung verwendet wird! + '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, 20) ' Fixe Taxe 441 errechnen + Call usrCntlFaktAbrechnung.setFixeTaxeMin(RG, 500) ' Fixe Taxe 441 errechnen cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag) @@ -3705,12 +3708,6 @@ Public Class frmMDMDatenverarbetiung POS.BGebProzent = o.BGebProzent POS.BGebMinBetrag = o.BGebMinBetrag - If POS.LeistungsNr = 441 Then - MsgBox("") - End If - - - RG.POSITIONEN.Add(POS) @@ -3839,6 +3836,9 @@ Public Class frmMDMDatenverarbetiung Dim cnt = 0 Dim cntTotal = MyDatagridview1.Rows.Count() + checkFixeTaxeImOffert("PLOSE", VERAGKdNr_DT) + + For Each r As DataGridViewRow In MyDatagridview1.Rows 'KUNDEN-NR / PLOSE KD-NR results = VERAGKdNr_DT.Select("PLOSEKundenNr = '" & r.Cells("plose_POLSEKundennummer").Value & "'") @@ -3930,6 +3930,10 @@ Public Class frmMDMDatenverarbetiung 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 VERAGLeistungsNr = -1 Dim found = False @@ -3956,7 +3960,7 @@ Public Class frmMDMDatenverarbetiung pruefData_UTA = True 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 & "' GROUP BY tblUTAImportNew.Kundennummer, Adressen.UTAKundenNr HAVING (((Adressen.UTAKundenNr) Is Null))", "FMZOLL") @@ -3998,6 +4002,13 @@ Public Class frmMDMDatenverarbetiung 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 @@ -4088,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, "")) 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! Dim fehlendeTransactionen As Integer = 0 @@ -4134,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") + checkFixeTaxeImOffert("IDS", dt) + checkFixeTaxeImOffert("IDS_AT", dt) + If dt.Rows.Count > 0 Then Dim counter As Integer = 0 For Each r In dt.Rows @@ -4903,4 +4927,64 @@ RabattBerechnen: Return checkDate 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 diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index d28b7491..1aca9573 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -544,6 +544,11 @@ Public Class usrcntlFakturierung 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. ' Zähler auf die Anzahl der fixe Taxe Löschungen einstellen. @@ -556,6 +561,7 @@ Public Class usrcntlFakturierung End If Else + If (0 - r("BetragExclusivFT")) < 500 Then intZlr = r("AnzahlFT") - 1 Else @@ -619,6 +625,8 @@ Public Class usrcntlFakturierung 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("SteuerfreierBetrag")) AndAlso IsNumeric(row("SteuerfreierBetrag")) Then stfregesBetr = stfregesBetr - CDbl(row("SteuerfreierBetrag")) @@ -628,7 +636,7 @@ Public Class usrcntlFakturierung isSet = RECHNUNG.SAVE(False) End If - If intZlr = 0 Then Exit For + If intZlr <= 0 Then Exit For Next