Mitarbeiter, etc.

This commit is contained in:
2026-05-04 15:35:37 +02:00
parent a59e388dad
commit 5b38670a9d
4 changed files with 1405 additions and 927 deletions

View File

@@ -6,6 +6,7 @@ Imports System.Security.Cryptography.X509Certificates
Imports System.Text
Imports System.Threading
Imports System.Xml
Imports iTextSharp.text
Imports javax
Imports MDM_Worker
Imports Renci.SshNet
@@ -3512,7 +3513,7 @@ Public Class frmStartOptions
' Datei hochladen
Using fileStream As New FileStream(localFilePath, FileMode.Open)
sftpClient.UploadFile(fileStream, remoteDirectory & Path.GetFileName(localFilePath))
sftpClient.UploadFile(fileStream, remoteDirectory & System.IO.Path.GetFileName(localFilePath))
End Using
Console.WriteLine("Datei erfolgreich hochgeladen!")
@@ -8132,4 +8133,335 @@ repeatRequest:
End Sub
End Class
Private Function checkZugferd(sendNotificationEmails As Boolean) As Boolean
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
'aktuell verwendet Verag360 kein Zugferd und Sammelrechnung 6 geht aktuell noch nicht...
Dim dt As DataTable = SQL.loadDgvBySql("SELECT RK_ID, dsId, Firma_ID, RechnungsNr FROM [Rechnungsausgang] where RK_ID = 2923288 ", "FMZOLL", 100, False)
Dim sumTotal_IMEX As Integer = 0
Dim sumTotal_VERAG As Integer = 0
Dim sumTotal_CS As Integer = 0
Dim sumTotal_US As Integer = 0
Dim sumTotal_AMBAR As Integer = 0
Dim sumTotal_ATILLA As Integer = 0
Dim sumTotal_360 As Integer = 0
Dim sumvalid_IMEX As Integer = 0
Dim sumvalid_VERAG As Integer = 0
Dim sumvalid_CS As Integer = 0
Dim sumvalid_US As Integer = 0
Dim sumvalid_AMBAR As Integer = 0
Dim sumvalid_ATILLA As Integer = 0
Dim sumvalid_360 As Integer = 0
Dim sumInvalid_IMEX As Integer = 0
Dim sumInvalid_VERAG As Integer = 0
Dim sumInvalid_CS As Integer = 0
Dim sumInvalid_US As Integer = 0
Dim sumInvalid_AMBAR As Integer = 0
Dim sumInvalid_ATILLA As Integer = 0
Dim sumInvalid_360 As Integer = 0
Dim sumInvalid_Total As Integer = 0
Dim sumvalid_Total As Integer = 0
Dim sumTotal_Total As Integer = 0
Dim dtVerag As DataTable = dt.Clone()
Dim dtIMEX As DataTable = dt.Clone()
Dim dtAMBAR As DataTable = dt.Clone()
Dim dtUNISPED As DataTable = dt.Clone()
Dim dtCS As DataTable = dt.Clone()
Dim dtATILLA As DataTable = dt.Clone()
Dim dt360 As DataTable = dt.Clone()
For Each row In dt.Rows
Dim rkObj As Object = row("RK_ID")
Dim dsObj As Object = row("dsId")
If rkObj IsNot DBNull.Value AndAlso dsObj IsNot DBNull.Value Then
Dim rkId As Integer
Dim dsId As Integer
If Integer.TryParse(rkObj.ToString(), rkId) AndAlso
Integer.TryParse(dsObj.ToString(), dsId) AndAlso
dsId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsId)
Dim Path As String = DS.GET_TOP1_PATH()
If Path <> "" And System.IO.File.Exists(Path) Then
Try
Dim psi As New ProcessStartInfo()
'psi.FileName = "C:\Program Files\Eclipse Adoptium\jre-11.0.28.6-hotspot\bin\java.exe"
'psi.Arguments = "-jar ""C:\Users\d.breimaier\Downloads\Mustang-CLI-2.21.0.jar"" --no-notices --action validate --source " & Path & ""
Dim Paramslist As New cParameterList(VERAG_PROG_ALLGEMEIN.cAllgemein.PROGID)
psi.FileName = Paramslist.GET_PARAMETER_VALUE("ZUGFeRD_Check_Pfad_JAVA")
psi.Arguments = Paramslist.GET_PARAMETER_VALUE("ZUGFeRD_Check_Pfad_CMD") & Path
'psi.FileName = "C:\Program Files (x86)\Java\jre1.8.0_491\bin\java.exe"
'psi.Arguments = "-jar ""C:\Verag\Mustang-CLI-2.21.0.jar"" --no-notices --action validate --source " & Path & ""
psi.RedirectStandardOutput = True
psi.RedirectStandardError = True
psi.UseShellExecute = False
psi.CreateNoWindow = True
Using p As Process = Process.Start(psi)
Dim output = p.StandardOutput.ReadToEnd()
Dim err = p.StandardError.ReadToEnd()
p.WaitForExit()
If output <> "" Then
Dim tmpPath_Report = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("MUSTANG-REPORT_" & rkObj, ".pdf", , False)
Dim PruefungOK = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.CreateValidationPdf(output, Path, rkId, tmpPath_Report)
If tmpPath_Report <> "" Then
'Process.Start(tmpPath_Report)
Dim fileInfo_ZP As New FileInfo(tmpPath_Report)
Dim ZUGF_DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "ZUGFERD", Now().Year, "", "", fileInfo_ZP.Name, -1, False)
ZUGF_DS.uploadDataToDATENSERVER(tmpPath_Report, fileInfo_ZP.Name, fileInfo_ZP.Extension,,,, True)
SQL.doSQL("Update [Rechnungsausgang] SET zugferdcheck_datetime=getDate(),zugferdcheck = " & IIf(PruefungOK, "1", "0") & ", zugferdcheck_daid = " & ZUGF_DS.da_id & " where RK_ID = " & rkId, "FMZOLL")
Select Case row("Firma_ID")
Case 11
sumTotal_CS += 1
If PruefungOK Then
sumvalid_CS += 1
Else
sumInvalid_CS += 1
dtCS.ImportRow(row)
End If
Case 24
sumTotal_AMBAR += 1
If PruefungOK Then
sumvalid_AMBAR += 1
Else
sumInvalid_AMBAR += 1
dtAMBAR.ImportRow(row)
End If
Case 21, 22, 23
sumTotal_US += 1
If PruefungOK Then
sumvalid_US += 1
Else
sumInvalid_US += 1
dtUNISPED.ImportRow(row)
End If
Case 20
sumTotal_IMEX += 1
If PruefungOK Then
sumvalid_IMEX += 1
Else
sumInvalid_IMEX += 1
dtIMEX.ImportRow(row)
End If
Case 19
sumTotal_360 += 1
If PruefungOK Then
sumvalid_360 += 1
Else
sumInvalid_360 += 1
dt360.ImportRow(row)
End If
Case 7
sumTotal_ATILLA += 1
If PruefungOK Then
sumvalid_ATILLA += 1
Else
sumInvalid_ATILLA += 1
dtATILLA.ImportRow(row)
End If
Case Else
sumTotal_VERAG += 1
If PruefungOK Then
sumvalid_VERAG += 1
Else
sumInvalid_VERAG += 1
dtVerag.ImportRow(row)
End If
End Select
End If
End If
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Return False
End Try
End If
End If
End If
Next
If dt.Rows.Count > 0 Then
If Not sendNotificationEmails Then
'VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, True,,, True)
Else
Dim Betreff = "ZUGFeRD-CHECK"
'hier ungültigen Prüfungen pro Firma
If dtVerag.Rows.Count > 0 Then
Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check")
If empfaneger <> "" Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtVerag,,,,, False,,, True)
Dim anhenge As New List(Of String)
anhenge.Add(path)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(empfaneger, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & Betreff & " VERAG", createMailTextZugferd(sumTotal_VERAG, sumvalid_VERAG, sumInvalid_VERAG, "VERAG"),, True, False,,, anhenge)
End If
End If
If dtIMEX.Rows.Count > 0 Then
Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check")
If empfaneger <> "" Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtIMEX,,,,, False,,, True)
Dim anhenge As New List(Of String)
anhenge.Add(path)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(empfaneger, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & Betreff & " IMEX", createMailTextZugferd(sumTotal_IMEX, sumvalid_IMEX, sumInvalid_IMEX, "IMEX"),, True, False,,, anhenge)
End If
End If
If dtAMBAR.Rows.Count > 0 Then
Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check")
If empfaneger <> "" Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtAMBAR,,,,, False,,, True)
Dim anhenge As New List(Of String)
anhenge.Add(path)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(empfaneger, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & Betreff & " AMBAR", createMailTextZugferd(sumTotal_AMBAR, sumvalid_AMBAR, sumInvalid_AMBAR, "AMBAR"),, True, False,,, anhenge)
End If
End If
If dtUNISPED.Rows.Count > 0 Then
Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check")
If empfaneger <> "" Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtUNISPED,,,,, False,,, True)
Dim anhenge As New List(Of String)
anhenge.Add(path)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(empfaneger, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & Betreff & " UNISPED", createMailTextZugferd(sumTotal_US, sumvalid_US, sumInvalid_US, "UNISPED"),, True, False,,, anhenge)
End If
End If
If dtATILLA.Rows.Count > 0 Then
Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check")
If empfaneger <> "" Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtATILLA,,,,, False,,, True)
Dim anhenge As New List(Of String)
anhenge.Add(path)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(empfaneger, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & Betreff & " ATILLA", createMailTextZugferd(sumTotal_ATILLA, sumvalid_ATILLA, sumInvalid_ATILLA, "ATILLA"),, True, False,,, anhenge)
End If
End If
If dt360.Rows.Count > 0 Then
Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check")
If empfaneger <> "" Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt360,,,,, False,,, True)
Dim anhenge As New List(Of String)
anhenge.Add(path)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(empfaneger, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & Betreff & " VERAG 360", createMailTextZugferd(sumTotal_360, sumvalid_360, sumInvalid_360, "VERAG 360"),, True, False,,, anhenge)
End If
End If
If dtCS.Rows.Count > 0 Then
Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check")
If empfaneger <> "" Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtCS,,,,, False,,, True)
Dim anhenge As New List(Of String)
anhenge.Add(path)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(empfaneger, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & Betreff & "VERAG CS", createMailTextZugferd(sumTotal_CS, sumvalid_CS, sumInvalid_CS, "VERAG CS"),, True, False,,, anhenge)
End If
End If
'hier alle Prüfungen
Dim empfanegerALL = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check")
If empfanegerALL <> "" Then
sumTotal_Total = sumTotal_VERAG + sumTotal_ATILLA + sumTotal_AMBAR + sumTotal_360 + sumTotal_CS + sumTotal_IMEX + sumTotal_US
sumInvalid_Total = sumInvalid_VERAG + sumInvalid_ATILLA + sumInvalid_AMBAR + sumInvalid_360 + sumInvalid_CS + sumInvalid_IMEX + sumInvalid_US
sumvalid_Total = sumvalid_VERAG + sumvalid_ATILLA + sumvalid_AMBAR + sumvalid_360 + sumvalid_CS + sumvalid_IMEX + sumvalid_US
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(empfanegerALL, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & Betreff & " ALL", createMailTextZugferd(sumTotal_Total, sumvalid_Total, sumInvalid_Total, "ALL"),, True, False)
End If
End If
End If
Return True
End Function
Private Function createMailTextZugferd(total As Integer, valid As Integer, invalid As Integer, Firma As String) As String
Dim MailText = "Auflistung der gültigen/ungültigen ZUGFeRD-Prüfungen vom " & Now.ToShortDateString & " für " & Firma & " <br><br>"
MailText &= "<table border=1>"
MailText &= "<tr><td>Gültig</td><td>Ungültig</td><td>Gesamt</td></tr>"
MailText &= "<tr>"
MailText &= "<td><b>" & valid & "</b></td>"
MailText &= "<td><b>" & invalid & "</b></td>"
MailText &= "<td><b>" & total & "</b></td>"
MailText &= "</tr>"
MailText &= "</table>"
MailText &= "<br><br>Erstellt am: " & Now.ToShortDateString & " um " & Now.ToShortTimeString
MailText &= "<br><br>Automatisch generiertes E-Mail."
Return MailText
End Function
Private Sub Button32_Click_1(sender As Object, e As EventArgs) Handles Button32.Click
Dim sendNotificationEmails = False
Select Case MsgBox("Soll eine Info-Mail an die zuständigen Mitarbeiter geschickt werden?", vbYesNoCancel)
Case MsgBoxResult.Cancel : Exit Sub
Case MsgBoxResult.Yes : sendNotificationEmails = True
Case Else
End Select
checkZugferd(sendNotificationEmails)
End Sub
End Class