div. Änderungen (USTVA, Ausewrtung, etc.)

This commit is contained in:
2026-01-22 17:41:06 +01:00
parent a8c6f91f1d
commit 8896aa1def
5 changed files with 311 additions and 67 deletions

View File

@@ -47,7 +47,7 @@ Public Class frmBU_Mahnlauf
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
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
@@ -343,24 +343,23 @@ Public Class frmBU_Mahnlauf
'Wenn <0, dann Guthaben!!
End Function
Public Function increaseMahnstufe(KdNr As Integer, Firma_ID As Integer) As Boolean
Public Function increaseMahnstufe(KdNr As Integer, Firma_ID As Integer, ErhoehungBeiMahnsperre As Boolean) As Boolean '
Dim sqlStr = "UPDATE op_debitor SET si_mahnstufe=(isnull(si_mahnstufe,0)+1),d_mahnung=GETDATE()
WHERE (i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL)
and i_personenkonto='" & KdNr & "' and dec_fremdbrutto>0 and (si_mahnstufe >=0 OR si_mahnstufe is NULL) and d_netto<=getdate()"
and i_personenkonto='" & KdNr & "' and dec_fremdbrutto>0 and (si_mahnstufe >=0 OR si_mahnstufe is NULL) " & IIf(ErhoehungBeiMahnsperre, "", "AND isnull(si_mahnflags,0) <>(1)") & " and d_netto<=getdate()"
Return SQL.doSQL(sqlStr, "FIBU")
End Function
Public Function redoMahnstufe(Firma_ID As Integer, Mahn_Datum As Date) As Boolean
Public Function redoMahnstufe(Firma_ID As Integer, Mahn_Datum As Date, ErhoehungBeiMahnsperre As Boolean) As Boolean
Dim sqlStr = " UPDATE op_debitor SET si_mahnstufe=(si_mahnstufe-1)
WHERE (i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL)
and (si_mahnstufe >0 AND si_mahnstufe is not NULL) and d_mahnung>='" & Mahn_Datum.ToShortDateString & "' and d_netto<=getdate()"
Return SQL.doSQL(sqlStr, "FIBU")
End Function
Public Function cntRedoMahnstufe(Firma_ID As Integer, Mahn_Datum As Date) As Integer
Public Function cntRedoMahnstufe(Firma_ID As Integer, Mahn_Datum As Date, MahnsperreBeruecksichtigen As Boolean) As Integer
Dim sqlStr = " SELECT COUNT(*) FROM op_debitor
WHERE (i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL)
and (si_mahnstufe >0 AND si_mahnstufe is not NULL) and d_mahnung>='" & Mahn_Datum.ToShortDateString & "' and d_netto<=getdate()"
and (si_mahnstufe >0 AND si_mahnstufe is not NULL) " & IIf(MahnsperreBeruecksichtigen, "", "AND isnull(si_mahnflags,0) <>(1)") & " and d_mahnung>='" & Mahn_Datum.ToShortDateString & "' and d_netto<=getdate()"
Return SQL.getValueTxtBySql(sqlStr, "FIBU",,, 0)
End Function
Public Shared Function doMahnung(Mahndruckart As Integer, KdNr As Integer, Firma_ID As Integer, art As String, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional ByRef forceMahnstufe As String = "", Optional showErr As Boolean = True, Optional hideMahnstopp As Boolean = True) As Boolean
@@ -1425,9 +1424,9 @@ Public Class frmBU_Mahnlauf
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
Dim mahnsperre As Boolean = r.Cells("mahnbar").Value
Dim mahnbar As Boolean = r.Cells("mahnbar").Value
If Not cbxMahnsperre.Checked Or (cbxMahnsperre.Checked And mahnsperre) Then
If Not cbxMahnsperre.Checked Or (cbxMahnsperre.Checked And mahnbar) Then ' Mahnsperre -> Kunde mit Mahnsperre wird NICHT gemahnt!
Dim Konto = r.Cells("Konto").Value
Dim FirmaId = cboFirma._value
@@ -1436,18 +1435,18 @@ Public Class frmBU_Mahnlauf
Dim Path = ""
Select Case AUSGABE
Case "PDF"
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId)
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId, Not cbxMahnsperre.Checked)
If doMahnung(4, Konto, FirmaId, "ZE", Path, srchPrinter) Then
PDF_LIST.Add(Path)
End If
Case "MAIL"
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId)
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId, Not cbxMahnsperre.Checked)
doMahnung(2, Konto, FirmaId, "ZE",, srchPrinter)
Case "MAIL_SEND"
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId)
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId, Not cbxMahnsperre.Checked)
doMahnung(5, Konto, FirmaId, "ZE",, srchPrinter)
Case "PRINT"
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId)
If bool_increaseMahnstufe Then increaseMahnstufe(Konto, FirmaId, Not cbxMahnsperre.Checked)
doMahnung(0, Konto, FirmaId, "ZE",, srchPrinter)
End Select
End If
@@ -1525,9 +1524,9 @@ Public Class frmBU_Mahnlauf
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
If MyTextBox2._value <> "" Then
Dim mahndatum As Date = MyTextBox2._value
Dim cntRedo As Integer = cntRedoMahnstufe(cboFirma._value, mahndatum)
Dim cntRedo As Integer = cntRedoMahnstufe(cboFirma._value, mahndatum, Not cbxMahnsperre.Checked)
If vbYes = MsgBox("Möchten Sie wirklich den Mahnzähler zurücksetzen?" & vbNewLine & "Ab Mahndatum: " & mahndatum & vbNewLine & "Betrifft '" & cntRedo & "' Mahnungen/Einträge " & mahndatum, vbYesNoCancel) Then
If redoMahnstufe(cboFirma._value, mahndatum) Then
If redoMahnstufe(cboFirma._value, mahndatum, Not cbxMahnsperre.Checked) Then
MsgBox("Der Mahnzähler wurde erfolgreich zurückgesetzt.")
End If
End If