FIBU, cFakt, etc.

This commit is contained in:
2025-10-28 17:13:19 +01:00
parent 51d41b979e
commit a1889578d8
7 changed files with 995 additions and 686 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -61,9 +61,19 @@ Public Class usrCntlBH
Dim isMDM As Boolean = False
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_abteilung = "MDM" OrElse VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_nname = "Breimaier" Then isMDM = True
If isMDM Then txtnichtabrechneteKunden.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where verrechnet is null", "FMZOLL",,, "0")
If isMDM Then
txtnichtabrechneteKunden.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where verrechnet is null", "FMZOLL",,, "0")
If IsNumeric(txtnichtabrechneteKunden.Text) AndAlso CInt(txtnichtabrechneteKunden.Text) > 0 Then
btnDel_.Visible = True
Else
btnDel_.Visible = False
End If
MyListBox1.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [VERAG].[dbo].[tblFirma] where Firma_ID NOT IN (20) order by [Firma_ID] ", False, "FMZOLL")
Else
End If
MyListBox1.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [VERAG].[dbo].[tblFirma] where Firma_ID NOT IN (20) order by [Firma_ID] ", False, "FMZOLL")
For i = 0 To MyListBox1.Items.Count - 1
If isMDM Then
@@ -836,30 +846,30 @@ Public Class usrCntlBH
SELECT
op_debitor.i_personenkonto AS KDNR,
op_debitor.c_urbelegid AS BelegNr,
op_debitor.i_personenkonto AS KundenNr,
op_debitor.d_rechnung AS Belegdatum,
--ISNULL(op_debitor.OWNFIELD_Belegdatum, '01.01.2000') AS origbelegdatum,
op_debitor.eur_bruttobetrag AS Bruttobetrag,
op_debitor.eur_zahlung AS Zahlungsbetrag,
op_debitor.d_netto AS Nettodatum,
op_debitor.c_bemerkung AS Buchungstext,
op_debitor.c_bemerkung AS Buchungstext,
op_debitor.d_rechnung AS Belegdatum,
op_debitor.d_netto AS Fällig,
op_debitor.d_zahlung AS Zahlungsdatum,
ISNULL(op_debitor.c_zahlziel, '0/0/20') AS ZZ_in_OP,
--ISNULL(op_debitor.OWNFIELD_Belegdatum, '01.01.2000') AS origbelegdatum,
DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + 0 ), op_debitor.d_rechnung), op_debitor.d_zahlung) as ÜberschreitungInTagen,
op_debitor.eur_zahlung AS Zahlungsbetrag,
isnull(kde_zinssatz," & zinssatz.ToString.Replace(",", ".") & ") AS Zinssatz_Kunde,
ISNULL(fibu_konto.c_zahlziel, '0/0/20') AS ZZ_in_Debitor,
ISNULL(dbo.fibu_zahlziel.si_ntage,20) as ZZinTage,
DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + " & toleranztage & "), op_debitor.d_rechnung) as ReZielZahlungsdatum,
DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + 0 ), op_debitor.d_rechnung), op_debitor.d_zahlung) as ÜberschreitungInTagen,
case when DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + " & toleranztage & " ), op_debitor.d_rechnung), op_debitor.d_zahlung) > 0 then
case when DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + " & toleranztage & " ), op_debitor.d_rechnung), op_debitor.d_zahlung) > 0 then
Round(op_debitor.eur_bruttobetrag * isnull(kde_zinssatz,9.5) / 100 * DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + " & toleranztage & " ), op_debitor.d_rechnung), op_debitor.d_zahlung) / 360,2)
Round(op_debitor.eur_bruttobetrag * isnull(kde_zinssatz,9.5) / 100 * DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) ), op_debitor.d_rechnung), op_debitor.d_zahlung) / 360,2)
else 0 end as Zinsbetrag,
cast(0 as bit) as abgerechnet,
cast(0 as bit) as abgerechnet
op_debitor.eur_bruttobetrag AS Bruttobetrag,
ISNULL(op_debitor.c_zahlziel, '0/0/20') AS ZZ_in_OP,
ISNULL(fibu_konto.c_zahlziel, '0/0/20') AS ZZ_in_Debitor,
ISNULL(dbo.fibu_zahlziel.si_ntage,20) as ZZinTage,
DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + " & toleranztage & "), op_debitor.d_rechnung) as ReZielZahlungsdatum
FROM op_debitor INNER JOIN fibu_konto ON (op_debitor.i_personenkonto = fibu_konto.i_konto)
inner join [FMZOLL\SQLFMZOLL].[VERAG].[dbo].[tblKundenErweitert] on kde_KundenNr = op_debitor.i_personenkonto
left join fibu_zahlziel on dbo.fibu_zahlziel.i_firm_refid = dbo.op_debitor.i_firm_refid and dbo.fibu_zahlziel.c_zahlziel = ISNULL(fibu_konto.c_zahlziel, '0/0/20')
@@ -871,7 +881,7 @@ Public Class usrCntlBH
AND op_debitor.i_personenkonto >= @KundeVon AND op_debitor.i_personenkonto <= @KundeBis
AND op_debitor.d_zahlung >= @ZahlungVon AND op_debitor.d_zahlung <= @ZahlungBis
AND DATEDIFF(DAY, DATEADD(DAY, (isnull(dbo.fibu_zahlziel.si_ntage,0) + " & toleranztage & "), op_debitor.d_rechnung), op_debitor.d_zahlung) > 0
AND Left(op_debitor.c_bemerkung,2) <> 'AR'
AND Left(op_debitor.c_bemerkung,2) <> 'AR' AND Left(op_debitor.c_bemerkung,2) <> 'DA' AND Left(op_debitor.c_bemerkung,2) <> 'AU' AND Left(op_debitor.c_bemerkung,2) <> 'RE' AND Left(op_debitor.c_bemerkung,2) <> 'VI' AND Left(op_debitor.c_bemerkung,2) <> 'Ha'
AND op_debitor.c_bemerkung not like '%nicht verzinsen%'
ORDER BY op_debitor.i_personenkonto, op_debitor.c_urbelegid desc, op_debitor.d_rechnung, ISNULL(op_debitor.OWNFIELD_Belegdatum, '01.01.2000')"
@@ -889,7 +899,7 @@ Public Class usrCntlBH
If r.Item("Zinsbetrag") > 0 Then
Dim zins As New cMDMZinsberechnung(r.Item("KundenNr"), r.Item("BelegNr"))
Dim zins As New cMDMZinsberechnung(r.Item("KDNR"), r.Item("BelegNr"))
If zins.hasEntry AndAlso zins.verrechnet IsNot Nothing Then
counter += 1
@@ -928,9 +938,24 @@ Public Class usrCntlBH
Dim dtTemp As New DataTable
dtTemp = dt.Select("Zinsbetrag > 0").CopyToDataTable
If dtTemp.Columns.Contains("Bruttobetrag") Then dtTemp.Columns.Remove("Bruttobetrag")
If dtTemp.Columns.Contains("ZZ_in_OP") Then dtTemp.Columns.Remove("ZZ_in_OP")
If dtTemp.Columns.Contains("ZZ_in_Debitor") Then dtTemp.Columns.Remove("ZZ_in_Debitor")
If dtTemp.Columns.Contains("ZZinTage") Then dtTemp.Columns.Remove("ZZinTage")
If dtTemp.Columns.Contains("ReZielZahlungsdatum") Then dtTemp.Columns.Remove("ReZielZahlungsdatum")
If dtTemp.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dtTemp, {"D1:D" & (dt.Rows.Count + 1), "E1:E" & (dt.Rows.Count + 1), "O1:O" & (dt.Rows.Count + 1)})
cProgramFunctions.genExcelFromDT_NEW(dtTemp, {"H1:H" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1)})
txtnichtabrechneteKunden.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where verrechnet is null", "FMZOLL",,, "0")
If IsNumeric(txtnichtabrechneteKunden.Text) AndAlso CInt(txtnichtabrechneteKunden.Text) > 0 Then
btnDel_.Visible = True
Else
btnDel_.Visible = False
End If
End If
End If
@@ -1199,8 +1224,12 @@ Public Class usrCntlBH
End Sub
Private Sub btnZNBverrechnen_Click(sender As Object, e As EventArgs) Handles btnZNBverrechnen.Click
Dim LimitBEtrag As Integer = -1
If txtAbBetragAbrechnen._value <> "" AndAlso IsNumeric(txtAbBetragAbrechnen._value) Then
LimitBEtrag = CInt(txtAbBetragAbrechnen._value)
End If
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("Select [kundenNr], zahlungsperiode_start,zahlungsperiode_ende FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where [verrechnet] Is null group by [kundenNr], zahlungsperiode_start, zahlungsperiode_ende ", "FMZOLL")
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("Select [kundenNr],SUM([zinsbetrag]) as Zinsbetrag, zahlungsperiode_start,zahlungsperiode_ende FROM [VERAG].[dbo].[tblMDM_Zinsberechnung] where [verrechnet] Is null group by [kundenNr], zahlungsperiode_start, zahlungsperiode_ende" & IIf(LimitBEtrag > 0, " having SUM([zinsbetrag]) >= " & LimitBEtrag, ""), "FMZOLL")
If dt_Main.Rows.Count > 0 Then
Dim kundenNr As String = ""
@@ -1234,8 +1263,14 @@ Public Class usrCntlBH
End If
If dt_Main.Rows.Count = 0 Then
MsgBox("keine zu verrechnenden Datensätze!")
Exit Sub
End If
If vbYes = MsgBox("Möchten Sie für " & dt_Main.Rows.Count & " Kunden die Zinsbelastung verrechnen?" & vbNewLine & "Es werden nur Rechnungen erstellt, deren Gesamtbelastung über " & LimitBEtrag & " EUR liegt!", vbYesNoCancel) Then
If vbYes = MsgBox("Möchten Sie für " & dt_Main.Rows.Count & " Kunden die Zinsbelastung verrechnen?", vbYesNoCancel) Then
For Each R In dt_Main.Rows
@@ -1311,14 +1346,14 @@ Public Class usrCntlBH
End Sub
Private Sub txtUID_Monat_TextChanged(sender As Object, e As EventArgs) Handles txtUID_Monat.TextChanged
calcUIDPruefungen()
countIDPruefungen()
End Sub
Private Sub cbxFirmaUID_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxFirmaUID.SelectedIndexChanged
calcUIDPruefungen()
countIDPruefungen()
End Sub
Private Sub calcUIDPruefungen()
Private Sub countIDPruefungen()
If txtUID_Jahr.Text <> "" AndAlso IsNumeric(txtUID_Jahr.Text) AndAlso txtUID_Jahr.Text.Length = 4 Then
@@ -1348,4 +1383,19 @@ Public Class usrCntlBH
End If
End Sub
Private Sub btnWikiStatusmails_Click(sender As Object, e As EventArgs) Handles btnWikiStatusmails.Click
Dim webAddress As String = "https://wiki.verag.ag/software/sdl/zinsnachberechnung"
Process.Start(webAddress)
End Sub
Private Sub btnDel__Click(sender As Object, e As EventArgs) Handles btnDel_.Click
If vbYes = MsgBox("Möchten Sie die alle nicht verrechneten Zinsbelastungen löschen?", vbYesNoCancel) Then
SQL.doSQL("delete from [tblMDM_Zinsberechnung] WHERE [verrechnet] Is null", "FMZOLL")
End If
End Sub
End Class