Mahnlauf, Mailbenachrichtung, Fakt, MDMEinarbeitung, etc.

This commit is contained in:
2025-06-26 15:33:05 +02:00
parent 4b40d5ffcf
commit a08e27deea
6 changed files with 98 additions and 54 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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
'

View File

@@ -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

View File

@@ -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)
'--NICHT BENÖTIGT!
' Porto/Papiere berechnen.
showPic(PortoPapiere(Sachbearbeiter, rechnungsdatum), PictureBox4)
'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

View File

@@ -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)