plose, StartOpt.

This commit is contained in:
2025-09-19 12:02:56 +02:00
parent ab5a23c062
commit 79e6765c62
4 changed files with 313 additions and 121 deletions

View File

@@ -4,6 +4,7 @@ Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Web
Imports System.Xml
Imports io.konik.zugferd
Imports Renci.SshNet
Imports Renci.SshNet.Sftp
Imports VERAG_PROG_ALLGEMEIN
@@ -23,6 +24,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
Dim Dateiname = ""
Public year As Integer
Public UtaTestkunden As Boolean = False
Public RMCNewFormat As Boolean = True
Sub New(programName As String)
@@ -526,11 +528,17 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
Exit Sub
End If
Dim dt As New DataTable
Dim deleteTable As Boolean = False
Dim verarbeitungspfad, zielpfad
If programName.Contains("RMC") Then
verarbeitungspfad = rmc.VERARBEITUNG_PFAD
zielpfad = rmc.ZIEL_PFAD
dt.Columns.Add("KundenNr", GetType(String))
dt.Columns.Add("UID", GetType(String))
ElseIf programName.Contains("UTA") Then
verarbeitungspfad = uta.VERARBEITUNG_PFAD
zielpfad = uta.ZIEL_PFAD
@@ -552,6 +560,8 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
If programName.Contains("RMC") Then
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True
Select Case i
Case 1
@@ -561,7 +571,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
If fi.Extension.ToLower = ".csv" Then
If Not found Then
If readRMC(d) <> "" Then found = True
If readRMC(d, programName) <> "" Then found = True
End If
If found Then cntDatenEingelesen += 1
End If
@@ -580,30 +590,126 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
'd.breimaier: 2024-06-05 aktuell nur die RMC-Dateien! (später, wenn CSV vollständig, dann alle PDFs importieren!
'd.breimaier: 2024-06-17 laut Christian Schuster von Comcore (EDV-BEtr. von RMC) nicht möglich CSV mit easytrip und sofico Datensätzen zu ergängen!
If fi.Name.ToString.StartsWith("invoice_") Then
'd.breimaier: 2025-09-15 laut Christian Schuster erhalten wir nun die Rechnungen mit folgenden Aufbau:
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d))
'• fixwert invoice
'• Kundennummer 26807 (in der CSV enthalten)
'• Abrechnungnummer 5549 (Stimmt mit der Abrechnungsnummer im Dateinamen der CSV überein)
'• RechnungsNr "262014347" (in der CSV enthalten) - nicht verwechseln mit RechngsNrSL
'• Das Land AT, DE, FR...
'• zuletzt steht orig. Das ist für euch nicht wichtig, bedeutet nur das ist das Original und keine Kopie
DS.uploadDataToDATENSERVER(d,,,,,, True)
'easytrip-Rechnungen sind immer ITALIEN!
Dim fileNamePath As String = d
'If fi.Name.ToString.StartsWith("invoice_") Then
If RMCNewFormat Then
Dim destFilename As String = fi.FullName
destFilename = destFilename.Replace(".pdf", IIf(programName.ToLower.Contains("nto"), "_nto", "_bto") & ".pdf")
System.IO.File.Move(fi.FullName, destFilename) 'Datei umbenennen
fileNamePath = destFilename
End If
If fi.Name.ToString.StartsWith("invoice_") OrElse (fi.Name.ToString.StartsWith("maut_") AndAlso fi.Name.ToString.Contains("EGR") AndAlso Not fi.Name.ToString.Contains("ALL")) Then 'RMC Eigenrechnungen
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(fileNamePath))
DS.uploadDataToDATENSERVER(fileNamePath,,,,,, True)
If fi.Name.ToString.StartsWith("invoice_") Then
SQL.doSQL("Update [tblRMCImport] SET [rmc_daId]='" & DS.da_id & "' where [rmc_pdfFileName] = '" & DS.da_name & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL")
ElseIf (fi.Name.ToString.StartsWith("maut_") AndAlso fi.Name.ToString.Contains("EGR") AndAlso Not fi.Name.ToString.Contains("ALL")) Then 'EasyTrip IT Rechnungen
Dim fileNameEasyTrip As String = fi.Name
fileNameEasyTrip = fileNameEasyTrip.Replace("maut_", "")
fileNameEasyTrip = fileNameEasyTrip.Replace("EGR_con", "")
'maut_24952_EGR_con00079883FITFIT2002A25-07993920250908120506AT70DE_341929194_.pdf
'24952_00079883FITFIT2002A25-07993920250908120506AT70DE_341929194_.pdf
'RechnungNr: FIT2002A25-079939
'Datum: 08/09/2025
'Land: IT
'VAT: DE_341929194
Dim indexOfFIT = fileNameEasyTrip.LastIndexOf("FITFIT") + 3
Dim kdNr As String = fileNameEasyTrip.Substring(0, 5)
Dim invoiceNo As String = "" 'FIT2002A25-079939
Dim invoiceDate As String = "" '20250908
Dim UID As String = "" 'DE_341929194
Dim RMC As New cRMC() 'easytry über Filename anlegen!
invoiceNo = fileNameEasyTrip.Substring(indexOfFIT, 17)
invoiceDate = fileNameEasyTrip.Substring(indexOfFIT + 17, 8)
Dim parsedDate As DateTime = DateTime.ParseExact(invoiceDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)
UID = fileNameEasyTrip.Substring(fileNameEasyTrip.IndexOf("AT70") + 4, 12)
UID = UID.Replace("_", "")
RMC.rmc_reDatum = parsedDate.ToString("dd.MM.yyyy")
RMC.rmc_importDatum = Now()
RMC.rmc_kdNr = kdNr
RMC.rmc_UID = UID
RMC.rmc_landKZ = "IT"
RMC.rmc_landBezeichnung = "Italien"
RMC.rmc_reDatum = parsedDate
RMC.rmc_reNr = invoiceNo
RMC.rmc_waehrung = "EUR"
RMC.rmc_daId = DS.da_id
RMC.rmc_pdfFileName = fi.Name
'EasyTrip können die Beträge initual nicht ausgelesen werden, dürfen aber nicht 0 sein!
RMC.rmc_betragBrutto = 0.01
RMC.rmc_betragMWST = 0.01
RMC.rmc_betragNetto = 0.01
RMC.rmc_euroBrutto = 0.01
If RMC.SAVE() Then
Dim adress As New VERAG_PROG_ALLGEMEIN.cAdressen(RMC.rmc_UID, RMC.rmc_kdNr)
If Not adress.hasEntry Then
Dim R As DataRow = dt.NewRow
R("KundenNr") = RMC.rmc_kdNr
R("UID") = RMC.rmc_UID
dt.Rows.Add(R)
End If
End If
End If
SQL.doSQL("Update [tblRMCImport] SET [rmc_daId]='" & DS.da_id & "' where [rmc_pdfFileName] = '" & DS.da_name & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL")
End If
'copy file to lydia
Dim filepathToLydia = IIf(rmc.PDFRECHNUNGEN <> "", rmc.PDFRECHNUNGEN, "\\share01\F\Juricevic Datensicherung\RMC_RECHNUNGEN\")
If Dateiname.ToString.ToLower.Contains("nto") Then
frmStartOptions.copyFile(d, filepathToLydia & "NETTO\")
Else
frmStartOptions.copyFile(d, filepathToLydia & "BRUTTO\")
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
Dim filepathToLydia = IIf(rmc.PDFRECHNUNGEN <> "", rmc.PDFRECHNUNGEN, "\\share01\F\Juricevic Datensicherung\RMC_RECHNUNGEN\")
If Dateiname.ToString.ToLower.Contains("nto") Then
frmStartOptions.copyFile(fileNamePath, filepathToLydia & "NETTO\")
Else
frmStartOptions.copyFile(fileNamePath, filepathToLydia & "BRUTTO\")
End If
End If
frmStartOptions.moveFile_DateBack(d, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
frmStartOptions.moveFile_DateBack(fileNamePath, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
If fi.Name.ToLower.Contains("pdf") Then addDGVEinarbeitung("PDF", fi.Name)
dgvEinarbeitung.Refresh()
End If
@@ -955,6 +1061,23 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
If programName.Contains("UTA") Then uta.importUTALeistungen()
If programName.Contains("RMC") Then
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
If dt.Rows.Count > 0 Then
Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False,)
If filepath <> "" Then
Dim anhenge As New List(Of String)
anhenge.Add(filepath)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("juricevic@verag.ag", "Wölfl-UIDNr (EASYTRIP)", "Im Anhang die zu prüfenden Kunden von WÖLFL EasyTrip: " & vbNewLine & "*Automatic generated e-mail*",,,,, "d.breimaier@verag.ag", anhenge)
End If
End If
End If
End If
End Sub
@@ -979,7 +1102,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
End Sub
Function readRMC(d As String) As String
Function readRMC(d As String, typ As String) As String
Try
Dim fi As FileInfo = New FileInfo(d)
@@ -989,6 +1112,10 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
Dim fileNr = filetimestamp.Substring(0, IIf(filetimestamp.Length > 8, filetimestamp.Length - 8, filetimestamp.Length))
Dim fileType = IIf(fi.Name.ToLower.Contains("nto"), "netto", "brutto")
If RMCNewFormat Then
fileType = IIf(typ.ToLower.Contains("nto"), "netto", "brutto")
End If
Dim dt As New DataTable
dt.Columns.Add("KundenNr", GetType(String))
dt.Columns.Add("Kunde", GetType(String))
@@ -1030,13 +1157,14 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
End Using
addDGVEinarbeitung("RMC: Detail" & kdNr, readRMC)
If dt.Rows.Count > 0 Then
Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False,)
If filepath <> "" Then
Dim anhenge As New List(Of String)
anhenge.Add(filepath)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("juricevic@verag.ag", "Wölfl-UIDNr", "Im Anhang die zu prüfenden Kunden von WÖLFL für Importdatei: " & fi.Name & vbNewLine & "Pro Importdatei wird ein Email generiert/gesendet" & vbNewLine & "*Automatic generated e-mail*",,,,, "d.breimaier@verag.ag", anhenge)
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
If dt.Rows.Count > 0 Then
Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False,)
If filepath <> "" Then
Dim anhenge As New List(Of String)
anhenge.Add(filepath)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("juricevic@verag.ag", "Wölfl-UIDNr", "Im Anhang die zu prüfenden Kunden von WÖLFL für Importdatei: " & fi.Name & vbNewLine & "Pro Importdatei wird ein Email generiert/gesendet" & vbNewLine & "*Automatic generated e-mail*",,,,, "d.breimaier@verag.ag", anhenge)
End If
End If
End If
@@ -1142,7 +1270,15 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
End If
RMC.rmc_euroBrutto = SQL.isleernothing(currentRow(13))
RMC.rmc_pdfFileName = "invoice_" & RMC.rmc_kdNr & "_" & filenr & "_" & RMC.rmc_sammelReNr & IIf(fileType = "netto", "_nto_e_verag.pdf", "_bto_e_verag.pdf")
If RMCNewFormat Then
RMC.rmc_pdfFileName = "invoice_" & RMC.rmc_kdNr & "_" & filenr & "_" & RMC.rmc_sammelReNr & "_" & RMC.rmc_landKZ & "_orig" & IIf(fileType = "netto", "_nto", "_bto") & ".pdf"
Else
RMC.rmc_pdfFileName = "invoice_" & RMC.rmc_kdNr & "_" & filenr & "_" & RMC.rmc_sammelReNr & IIf(fileType = "netto", "_nto_e_verag.pdf", "_bto_e_verag.pdf")
End If
If RMC.SAVE() Then
If kdNr <> RMC.rmc_kdNr Then