BH, Helferfunktionen, CHAT Refactor!!!!!!

This commit is contained in:
2026-02-20 13:08:45 +01:00
parent 1256a2aa64
commit 34f124916b
12 changed files with 401 additions and 82 deletions

View File

@@ -320,9 +320,9 @@ Public Class cFakturierung
If RECHNUNG_KD.Zahlungsziel IsNot Nothing AndAlso IsNumeric(RECHNUNG_KD.Zahlungsziel) Then
ZZTage = RECHNUNG_KD.Zahlungsziel
If ZZTage > 14 AndAlso RECHNUNG.Firma_ID = 19 AndAlso RECHNUNG.FilialenNr = 8001 Then
ZZTage = 14
End If
'If ZZTage > 14 AndAlso RECHNUNG.Firma_ID = 19 AndAlso RECHNUNG.FilialenNr = 8001 Then
' ZZTage = 14 'Hier aus DEebitor überschreiben!
'End If
End If
Select Case RECHNUNG.[BelegartenNr]

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.5.3.0")>
<Assembly: AssemblyFileVersion("1.5.3.0")>
<Assembly: AssemblyVersion("1.5.3.1")>
<Assembly: AssemblyFileVersion("1.5.3.1")>

View File

@@ -1,5 +1,7 @@
Imports System.Windows.Documents
Imports com.sun.org.apache.bcel.internal.generic
Imports java.awt.geom
Imports MDM_Worker
Imports VERAG_PROG_ALLGEMEIN
Public Class frmUSTVoffeneAntraege
@@ -1089,57 +1091,88 @@ Public Class frmUSTVoffeneAntraege
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim SQLQuery As String = ""
Dim dtfehlendePDF As New DataTable
Dim dtPartInvoicesIDS As New DataTable
Select Case LIEFERANT.ToString.ToLower
Case "plose" : SQLQuery = "select [plInv_SupplierRechnungsNr] as RechnungsNr,plInv_SupplierRechnungsDatum as Rechnungsdatum,Adressen.AdressenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt as keineMWST from [tblPLOSE_Inv_Data] INNER JOIN Adressen on [plInv_PLOSEKundennummer]=Adressen.PLOSEKundenNr INNER JOIN tblKundenErweitert on AdressenNr = kde_KundenNr where [plInv_daId] is null and cast([plInv_SupplierRechnungsDatum] as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by plInv_SupplierRechnungsNr, Adressen.AdressenNr, Adressen.[Name 1], plInv_SupplierRechnungsDatum, kde_keineMWSt"
Case "rmc" : SQLQuery = "select rmc_reNr as RechnungsNr,rmc_reDatum AS Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt as keineMWST from [tblRMCImport] INNER JOIN Adressen on WölflKundenNr=[rmc_kdNr] or weitereWölflKundenNr=[rmc_kdNr] INNER JOIN tblKundenErweitert on AdressenNr = kde_KundenNr where rmc_daId is null and cast([rmc_reDatum] as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by rmc_reNr, Adressen.AdressenNr, Adressen.[Name 1],rmc_reDatum, kde_keineMWSt "
Case "mse" : SQLQuery = "select invoice_id as RechnungsNr,[invoice_date] as Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt as keineMWST from tblMSEInvoices inner join [tblMSECustomers] on [customer_number] = [customer_id] INNER JOIN Adressen on Adressen.MSEKundenNr = [customer_number] INNER JOIN tblKundenErweitert on AdressenNr = kde_KundenNr where daId is null and cast(invoice_date as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by invoice_id, Adressen.AdressenNr, Adressen.[Name 1], invoice_date, kde_keineMWSt"
Case "uta" : SQLQuery = " SELECT U.Abrechnungsnummer AS Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum AS date) AS Rechnungsdatum,A.AdressenNr AS KundenNr,A.UTAKundenNr AS UTAKundenNr,A.[Name 1] AS Kunde,A.LandKz, kde_keineMWSt as keineMWST FROM tblUTAImportNew U INNER JOIN Adressen A ON A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert on A.AdressenNr = kde_KundenNr WHERE U.daId IS NULL AND CAST(U.Rechnungsdatum AS date) BETWEEN '" & dat_Sum_Von.Value & "' AND '" & dat_Sum_Bis.Value & "' AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum"
Case "ids" : SQLQuery = "select Invoicenumber as RechnungsNr,YearMonthDay as Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde, kde_keineMWSt from tblIDSInvoicesNew Inner join [tbl_IDS_Kunden] on [tbl_IDS_Kunden].CustomerCode =tblIDSInvoicesNew.CustomerCode and isnull([tbl_IDS_Kunden].KdNrAlt, 1) = 0 Inner join Adressen on Adressen.AdressenNr = [tbl_IDS_Kunden].KdNrVERAG INNER JOIN tblKundenErweitert on Adressen.AdressenNr = kde_KundenNr where DocumentName is null and cast(YearMonthDay as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by Invoicenumber, Adressen.AdressenNr, Adressen.[Name 1], YearMonthDay, kde_keineMWSt"
Case Else : SQLQuery = ""
Case "plose"
Dim LIEFERANT As cPLOSE_Inv_Data
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "rmc"
Dim LIEFERANT As cRMC
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "mse"
Dim LIEFERANT As cMSEAPI
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "uta"
Dim LIEFERANT As cUTA
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "ids"
Dim LIEFERANT As cIDS
dtfehlendePDF = LIEFERANT.checkPDFInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
dtPartInvoicesIDS = LIEFERANT.checkPartInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
Case "verag"
MsgBox("PDF wird zur Laufzeit aus RE-Daten generiert")
Exit Sub
Case Else
MsgBox("Funktion nur pro Lieferant möglich!")
Exit Sub
End Select
Dim fehlendePDFs As Integer = 0
If SQLQuery <> "" Then
Dim dtfehlendePDF As DataTable = (New SQL).loadDgvBySql(SQLQuery, "FMZOLL")
MsgBox("Anzahl fehlende PDFs: " & dtfehlendePDF.Rows.Count & IIf(CDate(dat_Sum_Von.Value).Year <= 2024 OrElse CDate(dat_Sum_Bis.Value).Year <= 2024, vbNewLine & "PDF-Rechnungen vor 2025 wurden tlw. nicht importiert!", ""))
If dtfehlendePDF.Rows.Count > 0 Then
If vbYes = MsgBox("Details der fehlenden PDF-Rechnungen anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtfehlendePDF,,, "Fehlende PDF-Rechnungen: " & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString)
MsgBox("Anzahl fehlende PDFs: " & dtfehlendePDF.Rows.Count & IIf(CDate(dat_Sum_Von.Value).Year <= 2024 OrElse CDate(dat_Sum_Bis.Value).Year <= 2024, vbNewLine & "PDF-Rechnungen vor 2025 wurden tlw. nicht importiert!", ""))
If dtfehlendePDF.Rows.Count > 0 Then
If vbYes = MsgBox("Details der fehlenden PDF-Rechnungen anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtfehlendePDF,,, "Fehlende PDF-Rechnungen: " & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString)
End If
End If
'extra bei IDS -> wenn nicht korrekt verarbeitet/gesetzt!!
If LIEFERANT.ToString.ToLower = "ids" Then
Dim IDS As cIDS
Dim dt = IDS.checkInvoices(dat_Sum_Von.Value, dat_Sum_Bis.Value)
If dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt,,, "Fehlende PDF-Teilrechnungen inkl. Datensatz " & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString)
If dt.Rows.Count <= 10 Then
If vbYes = MsgBox(dt.Rows.Count & " Gesamtrechnungen der fehlenden PDF-Teilrechnungen anzeigen?", vbYesNo) Then
For Each row In dt.Rows
If row.item("daId") IsNot Nothing AndAlso IsNumeric(row.item("daId")) AndAlso CInt(row.item("daId")) > 0 Then
Dim DS As New cDATENSERVER(row.item("daId"))
Dim pathPDF = DS.GET_TOP1_PATH
If pathPDF <> "" Then Process.Start(pathPDF)
End If
Next
End If
End If
End If
End If
Else
MsgBox("Funktion nur pro Lieferant möglich!")
End If
'extra bei IDS ->Prüft ob es zur Gesamtrechnung Teilrechnungen gibt!!
If LIEFERANT.ToString.ToLower = "ids" Then
If dtPartInvoicesIDS.Rows.Count > 0 Then
If vbYes = MsgBox("Es fehlen " & dtPartInvoicesIDS.Rows.Count & " Teilrechnungen" & vbNewLine & "Details der fehlenden Teilrechnungen anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtPartInvoicesIDS,,, "Fehlende PDF-Teilrechnungen inkl. Datensatz " & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString)
End If
If dtPartInvoicesIDS.Rows.Count <= 10 Then
If vbYes = MsgBox(dtPartInvoicesIDS.Rows.Count & " Gesamtrechnungen der fehlenden PDF-Teilrechnungen anzeigen?", vbYesNo) Then
For Each row In dtPartInvoicesIDS.Rows
If row.item("daId") IsNot Nothing AndAlso IsNumeric(row.item("daId")) AndAlso CInt(row.item("daId")) > 0 Then
Dim DS As New cDATENSERVER(row.item("daId"))
Dim pathPDF = DS.GET_TOP1_PATH
If pathPDF <> "" Then Process.Start(pathPDF)
End If
Next
End If
End If
End If
End If

View File

@@ -401,7 +401,7 @@ Public Class usrCntlUSTV
' AND cast( [UStVAn_USteuerbetragEUR] as decimal(17,2))-cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))<>0
' AND UStVAn_AntragEingereichtAm is not null
' order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc"
Dim sqlStr = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KundenNr,[UStVAn_Name] as Kundename,Adressen.LandKz as Land_Kunde, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA .LandKz Land_Antrag,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as Währung,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, UStVAn_VZBetrag as Vorauszahlungsbetrag, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr
Dim sqlStr = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KDNR,[UStVAn_Name] as Kundename,Adressen.LandKz as LKZ_KD, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA.LandKz as LKZ,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as WKZ,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, UStVAn_VZBetrag as VZ, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr
FROM [tblUStVAntrag]
inner join [Länderverzeichnis für die Außenhandelsstatistik] as LfdA on UStVAn_LandNr=Landnr
inner join Adressen on AdressenNr=UStVAn_KuNr
@@ -413,7 +413,7 @@ Public Class usrCntlUSTV
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt, {"J1:M" & (dt.Rows.Count + 1)},,,,, True)
cProgramFunctions.genExcelFromDT_NEW(dt, ,,,,, True,,,,,, {"L1:Q" & (dt.Rows.Count + 1)})
Else
MsgBox("Keine Daten!")
End If

View File

@@ -1035,7 +1035,7 @@ Public Class usrCntlBH
End Function
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, ByRef RK_ID As Integer, ByRef Fusstext As String)
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, ByRef RK_ID As Integer, ByRef Fusstext As String, ZahlungszielAusDebitor As Integer)
Try
If KdNr = "" Then Return False
@@ -1105,10 +1105,14 @@ Public Class usrCntlBH
RG.Packstücke_und_Warenbezeichnung = "NACHBERECHNUNG VON VERZUGSZINSEN" & vbNewLine & SPEDBUCH.Vermerk
'RG.EMailRechnungstext = Fusstext
If Not IsDBNull(KD.Zahlungsziel) AndAlso IsNumeric(KD.Zahlungsziel) Then
Dim Zahlungsziel As Integer = CInt(KD.Zahlungsziel)
RG.Nettozahlungsziel = IIf(Zahlungsziel > 14, 14, KD.Zahlungsziel)
End If
'IN DIESEM FALL IMMER AUS DEBITOR NEHMEN!!!
'If Not IsDBNull(KD.Zahlungsziel) AndAlso IsNumeric(KD.Zahlungsziel) Then
' Dim Zahlungsziel As Integer = CInt(KD.Zahlungsziel)
' RG.Nettozahlungsziel = IIf(Zahlungsziel > 14, 14, KD.Zahlungsziel)
'End If
RG.Nettozahlungsziel = ZahlungszielAusDebitor
RG.SteuerpflichtigerGesamtbetrag = 0
RG.SteuerfreierGesamtbetrag = 0
@@ -1245,7 +1249,7 @@ Public Class usrCntlBH
Private Sub btnZNBverrechnen_Click(sender As Object, e As EventArgs) Handles btnZNBverrechnen.Click
If txtZRbis.Text = "" OrElse Not IsDate(txtZRbis.Text) Then
MsgBox("Abrechnungdatum setzen!")
MsgBox("Abrechnungdatum (Zahlungen bis) setzen!")
txtZRbis.Focus()
Exit Sub
End If
@@ -1255,7 +1259,7 @@ Public Class usrCntlBH
LimitBEtrag = CInt(txtAbBetragAbrechnen.Text)
End If
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")
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("Select [kundenNr],SUM([zinsbetrag]) as Zinsbetrag,max(belegZahlungsziel) as belegZahlungsziel , 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 = ""
@@ -1342,7 +1346,7 @@ Public Class usrCntlBH
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
Dim RK_ID As Integer = -1
If Not gen_SPEDBUCH_ByKdNr(R("kundenNr"), SPEDBUCH, CDate(txtZRbis.Text).ToShortDateString, vermerk) Then verarbOK = False
If Not gen_RECHNUNG_BySPEDBUCH(R("kundenNr"), SPEDBUCH, RK_ID, Fußtext) Then verarbOK = False
If Not gen_RECHNUNG_BySPEDBUCH(R("kundenNr"), SPEDBUCH, RK_ID, Fußtext, R("belegZahlungsziel")) Then verarbOK = False
If verarbOK Then
SQL.doSQL("UPDATE [tblMDM_Zinsberechnung] SET [verrechnet]=GETDATE(), RK_ID = " & RK_ID & " WHERE [verrechnet] Is null And kundenNr='" & R("kundenNr") & "' ", "FMZOLL")

View File

@@ -1131,7 +1131,7 @@ Public Class cProgramFunctions
Return ""
End Function
Public Shared Function genExcelFromDT_NEW(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False, Optional openFile As Boolean = True, Optional fitWideToOnePage As Boolean = False) As String
Public Shared Function genExcelFromDT_NEW(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False, Optional openFile As Boolean = True, Optional fitWideToOnePage As Boolean = False, Optional rangeAsBuchhaltung() As String = Nothing) As String
Try
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\" ' My.Computer.FileSystem.GetTempFileName
@@ -1156,6 +1156,16 @@ Public Class cProgramFunctions
Next
End If
If rangeAsBuchhaltung IsNot Nothing Then
For Each r In rangeAsBuchhaltung
Try
wb.Worksheets(0).Range(r).Style.NumberFormat.SetFormat("_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-")
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Next
End If
If HeaderTxt <> "" Then
wb.Worksheets(0).FirstRow.InsertRowsAbove(2)
wb.Worksheets(0).Range("A1").Value = HeaderTxt