Compare commits

...

3 Commits

Author SHA1 Message Date
9385262f85 Merge branch 'ADMIN' of https://git.it.verag.ag/edv/ADMIN into ADMIN 2025-10-08 10:27:19 +02:00
3fa7fdee27 Asfinag, Plose, etc. 2025-10-08 10:27:05 +02:00
bb9ec487cf Plose-Prüfung, etc. 2025-10-06 15:04:27 +02:00
7 changed files with 1012 additions and 901 deletions

View File

@@ -247,15 +247,15 @@ Public Class cPLOSE_Inv_Data
If Regex.IsMatch(filename, "^[A-Za-z]") Then If Regex.IsMatch(filename, "^[A-Za-z]") Then
Dim match As Match = Regex.Match(filename, "\d+") Dim match As Match = Regex.Match(filename, "\d+")
If match.Success Then If match.Success Then
filename3 = filename.Substring(match.Index).Trim filename3 = filename.Substring(match.Index).Trim
filename4 = filename.Replace("-", "_") filename4 = filename.Replace("-", "_")
End If End If
ElseIf filename.Contains("_dk") Then 'Sonderlogik Dänemark ElseIf filename.Contains("_dk") Then 'Sonderlogik Dänemark
filename3 = filename.Replace(jahrEnd & "-", jahrEnd) filename3 = filename.Replace(jahrEnd & "-", jahrEnd)
filename4 = filename.Replace(jahrEnd & "-", jahrEnd) filename4 = filename.Replace(jahrEnd & "-", jahrEnd)
filename3 = filename3.Replace(" ", "") filename3 = filename3.Replace(" ", "")
@@ -263,43 +263,43 @@ Public Class cPLOSE_Inv_Data
ElseIf filename.Contains("_fy") Then 'Sonderlogik Norwegen ElseIf filename.Contains("_fy") Then 'Sonderlogik Norwegen
Dim indexOfFirst_ = filename.IndexOf("_fy") Dim indexOfFirst_ = filename.IndexOf("_fy")
If filename.Length > indexOfFirst_ + 5 Then If filename.Length > indexOfFirst_ + 5 Then
Dim month = filename.Substring(indexOfFirst_ + 3, 2) Dim month = filename.Substring(indexOfFirst_ + 3, 2)
If IsNumeric(month) Then If IsNumeric(month) Then
Dim test = month.IndexOf(0) Dim test = month.IndexOf(0)
Dim monthWithoutLeadingZero As String = month Dim monthWithoutLeadingZero As String = month
If monthWithoutLeadingZero.IndexOf(0) = 0 Then monthWithoutLeadingZero = monthWithoutLeadingZero.Replace("0", "") If monthWithoutLeadingZero.IndexOf(0) = 0 Then monthWithoutLeadingZero = monthWithoutLeadingZero.Replace("0", "")
filename3 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero) filename3 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero)
filename4 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero) filename4 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero)
filename3 = filename3.Replace(" ", "") filename3 = filename3.Replace(" ", "")
filename4 = filename4.Replace(" ", "") filename4 = filename4.Replace(" ", "")
End If End If
End If
End If
Dim daId As Integer = 0
If filename3 = "" Then
daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "')", "FMZOLL",,, 0))
Else
daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "' or da_name like '%" & filename3 & "' or da_name like '%" & filename4 & "')", "FMZOLL",,, 0))
End If End If
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) End If
Dim Path As String = DS.GET_TOP1_PATH()
If Path <> "" And System.IO.File.Exists(Path) Then Dim daId As Integer = 0
SQL.doSQL("UPDATE [tblPLOSE_Inv_Data] SET plInv_daId = " & DS.da_id & ", plInv_daIdgesetztDatum = getdate() WHERE plInv_Id = " & r.Item("plInv_Id") & " AND plInv_daId is null", "FMZOLL") If filename3 = "" Then
End If daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "')", "FMZOLL",,, 0))
Else
daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "' or da_name like '%" & filename3 & "' or da_name like '%" & filename4 & "')", "FMZOLL",,, 0))
End If
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
Dim Path As String = DS.GET_TOP1_PATH()
If Path <> "" And System.IO.File.Exists(Path) Then
SQL.doSQL("UPDATE [tblPLOSE_Inv_Data] SET plInv_daId = " & DS.da_id & ", plInv_daIdgesetztDatum = getdate() WHERE plInv_Id = " & r.Item("plInv_Id") & " AND plInv_daId is null", "FMZOLL")
End If End If
End If End If
End If
Next Next
@@ -317,6 +317,33 @@ Public Class cPLOSE_Inv_Data
End Function
Public Shared Function checkImport() As Boolean
Dim mehrfachIMportiert_SQL As String = " select plose_Dateiname, count(distinct(plose_Einlesedatum)) as Einlesedatum from tblPLOSE_Details
where plose_Fakturiert = 0
group by plose_Dateiname
having count(distinct(plose_Einlesedatum)) > 1
order by plose_Dateiname"
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dtMehrfachImportiert_DT As DataTable = SQL.loadDgvBySql(mehrfachIMportiert_SQL, "FMZOLL")
If dtMehrfachImportiert_DT.Rows.Count > 0 Then
If vbYes = MsgBox("ACHTUNG, es wurden " & dtMehrfachImportiert_DT.Rows.Count & " Abrechnungsdaten mehrfach importiert!" & vbNewLine & "Info anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtMehrfachImportiert_DT,,, "Mehrfach importierte Dateien")
End If
Return False
Else
Return True
End If
End Function End Function

View File

@@ -3473,6 +3473,7 @@ Public Class usrctlProcedures
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(fd.FileName, Encoding.Default) Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(fd.FileName, Encoding.Default)
MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(";") MyReader.SetDelimiters(";")
MyReader.HasFieldsEnclosedInQuotes = True ' <— Important line! (semicolon inside quotes will be ignored)
Dim currentRow As String() Dim currentRow As String()
While Not MyReader.EndOfData While Not MyReader.EndOfData
Try Try
@@ -3709,7 +3710,27 @@ Public Class usrctlProcedures
End While End While
If savedDY Then If savedDY Then
sql.doSQL("EXECUTE dbo.sp_DeleteDuplicateZollmeldungen", "FMZOLL") 'zuerst alle doppelten löschen und die fehlerhaften zuerst
Dim sql_deleleMultEntries As String = "
WITH Doppelte AS (
SELECT
*,
ROW_NUMBER() OVER (
PARTITION BY Registriernummer_MRN, PositionNo, Positionsunterlagenzeile
ORDER BY (SELECT NULL)
) AS rn
FROM [tbl_DY_Zollmeldungen_Import]
)
DELETE FROM Doppelte
WHERE rn > 1 and importfile is null;"
sql.doSQL(sql_deleleMultEntries, "AVISO")
'dann generell alle doppelten löschen
sql.doSQL("EXECUTE dbo.sp_DeleteDuplicateZollmeldungen", "AVISO")
End If End If
End Using End Using

View File

@@ -1966,6 +1966,8 @@ Public Class cAsfinag
MDMEinarb.ds_total = savedTrans MDMEinarb.ds_total = savedTrans
MDMEinarb.ds_count = counTrans MDMEinarb.ds_count = counTrans
MDMEinarb.importfilename = fi.Name
MDMEinarb.import_date = Now()
If MDMEinarb.ds_total = MDMEinarb.ds_count Then If MDMEinarb.ds_total = MDMEinarb.ds_count Then
MDMEinarb.completed = True MDMEinarb.completed = True

View File

@@ -713,6 +713,8 @@ Public Class frmMDMNachrichtenVerarbeitung
MDMEinarb.ds_total = counTrans MDMEinarb.ds_total = counTrans
MDMEinarb.ds_count = savedTrans MDMEinarb.ds_count = savedTrans
MDMEinarb.importfilename = fi.Name
MDMEinarb.import_date = Now()
If MDMEinarb.ds_total = MDMEinarb.ds_count Then If MDMEinarb.ds_total = MDMEinarb.ds_count Then
MDMEinarb.completed = True MDMEinarb.completed = True

View File

@@ -529,12 +529,13 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
End If End If
Dim dt As New DataTable Dim dt As New DataTable
Dim loopInt As Int16 = 2
Dim deleteTable As Boolean = False Dim deleteTable As Boolean = False
Dim verarbeitungspfad, zielpfad Dim verarbeitungspfad, zielpfad
If programName.Contains("RMC") Then If programName.Contains("RMC") Then
verarbeitungspfad = rmc.VERARBEITUNG_PFAD verarbeitungspfad = rmc.VERARBEITUNG_PFAD
zielpfad = rmc.ZIEL_PFAD zielpfad = rmc.ZIEL_PFAD
loopInt = 3
dt.Columns.Add("KundenNr", GetType(String)) dt.Columns.Add("KundenNr", GetType(String))
dt.Columns.Add("UID", GetType(String)) dt.Columns.Add("UID", GetType(String))
@@ -547,7 +548,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
zielpfad = ids.ZIEL_PFAD zielpfad = ids.ZIEL_PFAD
End If End If
For i = 1 To 2 For i = 1 To loopInt
For Each d In System.IO.Directory.GetFiles(verarbeitungspfad) For Each d In System.IO.Directory.GetFiles(verarbeitungspfad)
Try Try
@@ -587,8 +588,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
'File in Datenarchiv sichern: 'File in Datenarchiv sichern:
'd.breimaier: 2024-06-05 aktuell nur die RMC-Dateien! (später, wenn CSV vollständig, dann alle PDFs importieren! '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! '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!
'd.breimaier: 2025-09-15 laut Christian Schuster erhalten wir nun die Rechnungen mit folgenden Aufbau:
'd.breimaier: 2025-09-15 laut Christian Schuster erhalten wir nun die Rechnungen mit folgenden Aufbau:
'• fixwert invoice '• fixwert invoice
'• Kundennummer 26807 (in der CSV enthalten) '• Kundennummer 26807 (in der CSV enthalten)
@@ -601,8 +601,6 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
Dim fileNamePath As String = d Dim fileNamePath As String = d
'If fi.Name.ToString.StartsWith("invoice_") Then
If RMCNewFormat Then If RMCNewFormat Then
Dim destFilename As String = fi.FullName Dim destFilename As String = fi.FullName
@@ -617,16 +615,22 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
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 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 If fi.Name.ToString.StartsWith("invoice_") Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(fileNamePath))
DS.uploadDataToDATENSERVER(fileNamePath,,,,,, True)
SQL.doSQL("Update [tblRMCImport] SET [rmc_daId]='" & DS.da_id & "' where [rmc_pdfFileName] = '" & DS.da_name & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL") 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 ElseIf (fi.Name.ToString.StartsWith("maut_") AndAlso fi.Name.ToString.Contains("EGR") AndAlso Not fi.Name.ToString.Contains("ALL")) Then 'EasyTrip IT Rechnungen
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(fileNamePath))
DS.uploadDataToDATENSERVER(fileNamePath,,,,,, True)
'EasyTrip sollen mit der Pos-Liste gemerged werden!!!
Dim fileNameEasyTrip As String = fi.Name Dim fileNameEasyTrip As String = fi.Name
fileNameEasyTrip = fileNameEasyTrip.Replace("maut_", "") fileNameEasyTrip = fileNameEasyTrip.Replace("maut_", "")
@@ -680,12 +684,12 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
Dim adress As New VERAG_PROG_ALLGEMEIN.cAdressen(RMC.rmc_UID, RMC.rmc_kdNr) Dim adress As New VERAG_PROG_ALLGEMEIN.cAdressen(RMC.rmc_UID, RMC.rmc_kdNr)
If Not adress.hasEntry Then If Not adress.hasEntry Then
Dim R As DataRow = dt.NewRow Dim R As DataRow = dt.NewRow
R("KundenNr") = RMC.rmc_kdNr R("KundenNr") = RMC.rmc_kdNr
R("UID") = RMC.rmc_UID R("UID") = RMC.rmc_UID
dt.Rows.Add(R) dt.Rows.Add(R)
End If End If
End If End If
@@ -694,23 +698,60 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
End If End If
'copy file to lydia 'copy file to lydia - nicht mehr notwendig!!!
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then 'If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
Dim filepathToLydia = IIf(rmc.PDFRECHNUNGEN <> "", rmc.PDFRECHNUNGEN, "\\share01\F\Juricevic Datensicherung\RMC_RECHNUNGEN\") ' Dim filepathToLydia = IIf(rmc.PDFRECHNUNGEN <> "", rmc.PDFRECHNUNGEN, "\\share01\F\Juricevic Datensicherung\RMC_RECHNUNGEN\")
If fileNamePath.ToString.ToLower.Contains("nto") Then ' If fileNamePath.ToString.ToLower.Contains("nto") Then
frmStartOptions.copyFile(fileNamePath, filepathToLydia & "NETTO\") ' frmStartOptions.copyFile(fileNamePath, filepathToLydia & "NETTO\")
Else ' Else
frmStartOptions.copyFile(fileNamePath, filepathToLydia & "BRUTTO\") ' frmStartOptions.copyFile(fileNamePath, filepathToLydia & "BRUTTO\")
End If ' End If
End If 'End If
End If
Case 3
If (fi.Name.ToString.StartsWith("maut_") AndAlso fi.Name.ToString.Contains("EGR") AndAlso fi.Name.ToString.Contains("ALL")) Then
Dim fileNamePath As String = d
Dim fileNameEasyTrip As String = fi.Name
fileNameEasyTrip = fileNameEasyTrip.Replace("maut_", "")
fileNameEasyTrip = fileNameEasyTrip.Replace("EGR_con", "")
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
invoiceNo = fileNameEasyTrip.Substring(indexOfFIT, 17)
invoiceDate = fileNameEasyTrip.Substring(indexOfFIT + 17, 8)
Dim parsedDate As DateTime = DateTime.ParseExact(invoiceDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)
Dim RMC As New cRMC(kdNr, invoiceNo, parsedDate.ToString("dd.MM.yyyy")) 'easytry über Filename anlegen!
If RMC.hasEntry AndAlso RMC.rmc_daId_InvAtt Is Nothing Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC_ATT", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(fileNamePath))
DS.uploadDataToDATENSERVER(fileNamePath,,,,,, True)
RMC.rmc_daId_InvAtt = DS.da_id
RMC.SAVE()
End If
frmStartOptions.moveFile_DateBack(fileNamePath, 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) If fi.Name.ToLower.Contains("pdf") Then addDGVEinarbeitung("PDF", fi.Name)
dgvEinarbeitung.Refresh() dgvEinarbeitung.Refresh()
End If End If
End Select End Select

File diff suppressed because it is too large Load Diff

View File

@@ -699,6 +699,7 @@ Public Class frmStartOptions
End If End If
MDMEinarb.import_date = Now() MDMEinarb.import_date = Now()
MDMEinarb.importfilename = "API_BatchNr_" & batchrequestNr & "_totalPages_" & totalPages
MDMEinarb.SAVE() MDMEinarb.SAVE()
closeMe() closeMe()
End If End If
@@ -6818,4 +6819,8 @@ repeatRequest:
End If End If
End Sub End Sub
Private Sub LinkLabel54_LinkClicked_1(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lblPlosefoppelteIMporte.LinkClicked
cPLOSE_Inv_Data.checkImport()
End Sub
End Class End Class