Mahnlauf, FaktAbrechnung, Fremdrechnungen, MDM-Functions

This commit is contained in:
2026-01-21 14:47:59 +01:00
parent 6e00c67dd8
commit 07c62b5d54
11 changed files with 339 additions and 110 deletions

View File

@@ -25,6 +25,8 @@ Partial Class frmBU_Mahnlauf
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmBU_Mahnlauf))
Me.Panel1 = New System.Windows.Forms.Panel()
Me.lblBetreuer = New System.Windows.Forms.Label()
Me.cboBetreuer = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cbxKontotyp = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.txtZahlEingaenge = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cbxZahlungseingaenge = New System.Windows.Forms.CheckBox()
@@ -62,8 +64,7 @@ Partial Class frmBU_Mahnlauf
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.MyTextBox2 = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cboBetreuer = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.lblBetreuer = New System.Windows.Forms.Label()
Me.cbxNewDGV = New System.Windows.Forms.CheckBox()
Me.Panel1.SuspendLayout()
Me.pnlTop.SuspendLayout()
Me.Panel2.SuspendLayout()
@@ -73,6 +74,7 @@ Partial Class frmBU_Mahnlauf
'
'Panel1
'
Me.Panel1.Controls.Add(Me.cbxNewDGV)
Me.Panel1.Controls.Add(Me.lblBetreuer)
Me.Panel1.Controls.Add(Me.cboBetreuer)
Me.Panel1.Controls.Add(Me.cbxKontotyp)
@@ -95,6 +97,28 @@ Partial Class frmBU_Mahnlauf
Me.Panel1.Size = New System.Drawing.Size(1514, 132)
Me.Panel1.TabIndex = 0
'
'lblBetreuer
'
Me.lblBetreuer.AutoSize = True
Me.lblBetreuer.Location = New System.Drawing.Point(329, 114)
Me.lblBetreuer.Name = "lblBetreuer"
Me.lblBetreuer.Size = New System.Drawing.Size(50, 13)
Me.lblBetreuer.TabIndex = 50
Me.lblBetreuer.Text = "Betreuer:"
Me.lblBetreuer.Visible = False
'
'cboBetreuer
'
Me.cboBetreuer._allowedValuesFreiText = Nothing
Me.cboBetreuer._allowFreiText = False
Me.cboBetreuer._value = ""
Me.cboBetreuer.FormattingEnabled = True
Me.cboBetreuer.Location = New System.Drawing.Point(410, 111)
Me.cboBetreuer.Name = "cboBetreuer"
Me.cboBetreuer.Size = New System.Drawing.Size(97, 21)
Me.cboBetreuer.TabIndex = 49
Me.cboBetreuer.Visible = False
'
'cbxKontotyp
'
Me.cbxKontotyp._allowedValuesFreiText = Nothing
@@ -602,27 +626,18 @@ Partial Class frmBU_Mahnlauf
Me.MyTextBox2.TabIndex = 39
Me.MyTextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
'
'cboBetreuer
'cbxNewDGV
'
Me.cboBetreuer._allowedValuesFreiText = Nothing
Me.cboBetreuer._allowFreiText = False
Me.cboBetreuer._value = ""
Me.cboBetreuer.FormattingEnabled = True
Me.cboBetreuer.Location = New System.Drawing.Point(410, 111)
Me.cboBetreuer.Name = "cboBetreuer"
Me.cboBetreuer.Size = New System.Drawing.Size(97, 21)
Me.cboBetreuer.TabIndex = 49
Me.cboBetreuer.Visible = False
'
'lblBetreuer
'
Me.lblBetreuer.AutoSize = True
Me.lblBetreuer.Location = New System.Drawing.Point(329, 114)
Me.lblBetreuer.Name = "lblBetreuer"
Me.lblBetreuer.Size = New System.Drawing.Size(50, 13)
Me.lblBetreuer.TabIndex = 50
Me.lblBetreuer.Text = "Betreuer:"
Me.lblBetreuer.Visible = False
Me.cbxNewDGV.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.cbxNewDGV.AutoSize = True
Me.cbxNewDGV.Checked = True
Me.cbxNewDGV.CheckState = System.Windows.Forms.CheckState.Checked
Me.cbxNewDGV.Location = New System.Drawing.Point(1118, 54)
Me.cbxNewDGV.Name = "cbxNewDGV"
Me.cbxNewDGV.Size = New System.Drawing.Size(88, 17)
Me.cbxNewDGV.TabIndex = 51
Me.cbxNewDGV.Text = "neue Ansicht"
Me.cbxNewDGV.UseVisualStyleBackColor = True
'
'frmBU_Mahnlauf
'
@@ -689,4 +704,5 @@ Partial Class frmBU_Mahnlauf
Friend WithEvents Label9 As Label
Friend WithEvents lblBetreuer As Label
Friend WithEvents cboBetreuer As VERAG_PROG_ALLGEMEIN.MyComboBox
Friend WithEvents cbxNewDGV As CheckBox
End Class

View File

@@ -8,10 +8,10 @@ Public Class frmBU_Mahnlauf
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim listOfTextconserven As cTextkonserve_LIST
Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click
initDGV(cbxZahlungseingaenge.Checked)
initDGV(cbxZahlungseingaenge.Checked, cbxNewDGV.Checked)
End Sub
Sub initDGV(Optional zahlungseingaenge As Boolean = False)
Sub initDGV(Optional zahlungseingaenge As Boolean = False, Optional newDGV As Boolean = False)
With MyDatagridview1
.Columns.Clear()
@@ -45,6 +45,57 @@ Public Class frmBU_Mahnlauf
" & If(MyComboBox1._value > 0, " and max(si_mahnstufe)>='" & MyComboBox1._value & "'", "") & "
ORDER BY KTO.c_name"
Dim sqlStr_New = "WITH EmailCTE AS (
SELECT
kkd_KundenNr," & IIf(Firma_ID = 7, "MAX(CASE WHEN kkd_kkaId = 18 THEN kkd_Email END) AS EmailMAhnungAtilla", "") & ",MAX(CASE WHEN kkd_kkaId = 10 THEN kkd_Email END) AS EmailMahnung
FROM [FMZOLL\SQLFMZOLL].[VERAG].[dbo].[tblKundenKontakt]
WHERE kkd_kkaId IN (" & IIf(Firma_ID = 7, "10, 18", "10") & ")
GROUP BY kkd_KundenNr
)
SELECT
OP.i_personenkonto AS Konto,
KTO.c_name,
KTO.c_landid AS Land,
KTO.c_plz + ' ' + KTO.c_ort AS Ort,
COALESCE(" & IIf(Firma_ID = 7, "E.EmailMAhnungAtilla,", "") & "E.EmailMahnung, '') AS Email,
ISNULL(K.VK, '') AS VK,
KTO.c_zahlziel AS Zahlungsziel,
COUNT(*) AS Anzahl,
SUM(OP.eur_bruttobetrag + OP.eur_zahlung) AS Ausstand,
MIN(OP.d_netto) AS Faelligkeit,
MAX(OP.si_mahnstufe) AS Mahnstufe,
CAST(MAX(OP.d_mahnung) AS date) AS Mahndatum," &
If(cbxNurFaellig.Checked, "", "SUM(CASE WHEN OP.d_netto<getDATE() THEN (eur_bruttobetrag+eur_zahlung) ELSE 0 END) Summe_Faellig,") & "
CAST(ISNULL(si_mahnung,0) AS bit) AS mahnbar
FROM op_debitor OP
JOIN fibu_konto KTO
ON OP.i_personenkonto = KTO.i_konto
AND OP.i_firm_refid = KTO.i_firm_refid
LEFT JOIN EmailCTE E ON E.kkd_KundenNr = OP.i_personenkonto
LEFT JOIN (
SELECT KundenNr, Vorkasse AS VK
FROM [FMZOLL\SQLFMZOLL].[VERAG].[dbo].Kunden
) K
ON K.KundenNr = OP.i_personenkonto
WHERE OP.i_firm_refid = '" & Firma_ID & "'
AND OP.dt_geloescht IS NULL" & If(cbxNurFaellig.Checked, " AND OP.d_netto <= GETDATE() AND ISNULL(si_mahnflags,0) <> 1 ", "") & "
" & If(KdNr > 0, " AND i_personenkonto ='" & KdNr & "'", "") & "
" & If(KdTxt <> "", " AND KTO.c_name LIKE '" & KdTxt.Replace("*", "%") & "'", "") & "
GROUP BY
OP.i_personenkonto,
KTO.c_name,
KTO.c_landid,
KTO.c_plz,
KTO.c_ort,
KTO.c_zahlziel,
ISNULL(si_mahnung,0),
COALESCE(" & IIf(Firma_ID = 7, "E.EmailMAhnungAtilla,", "") & "E.EmailMahnung, ''),
ISNULL(K.VK,'')
HAVING SUM(OP.eur_bruttobetrag + OP.eur_zahlung) > '" & MyTextBox1._value & "'
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(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,
@@ -94,7 +145,7 @@ Public Class frmBU_Mahnlauf
'MsgBox(sqlStr)
Dim dt_OP As DataTable = SQL.loadDgvBySql(If(Firma_ID = 19, IIf(zahlungseingaenge, sqlStringVerag360Zahlungseingaenge, sqlStringVerag360), sqlStr), "FIBU")
Dim dt_OP As DataTable = SQL.loadDgvBySql(If(Firma_ID = 19, IIf(zahlungseingaenge, sqlStringVerag360Zahlungseingaenge, sqlStringVerag360), IIf(newDGV, sqlStr_New, sqlStr)), "FIBU")
.DataSource = dt_OP
If .Columns.Count = 0 Then Exit Sub
@@ -1524,12 +1575,14 @@ Public Class frmBU_Mahnlauf
cbxZahlungseingaenge.Visible = True
cboBetreuer.Visible = True
lblBetreuer.Visible = True
cbxNewDGV.Visible = False
Else
cbxZahlungseingaenge.Visible = False
cbxZahlungseingaenge.Checked = False
cboBetreuer.Visible = False
lblBetreuer.Visible = False
cbxNewDGV.Visible = True
End If
End Sub
@@ -1541,7 +1594,7 @@ Public Class frmBU_Mahnlauf
If Not VERAG_PROG_ALLGEMEIN.cSyska_Interface.OP_Einlesen(cboFirma._value) Then
MsgBox("Fehler beim aktualisieren der OPs aus Syska!")
Else
initDGV(cbxZahlungseingaenge.Checked)
initDGV(cbxZahlungseingaenge.Checked, cbxNewDGV.Checked)
End If