plose, StartOpt.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user