MDM Einarb (ASfinag), etc.

This commit is contained in:
2025-10-06 10:47:00 +02:00
parent eb603ccabb
commit 09cd251c81
7 changed files with 304 additions and 155 deletions

View File

@@ -6,6 +6,7 @@ Imports System.Security.Cryptography.X509Certificates
Imports System.Text
Imports System.Threading
Imports System.Xml
Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports MDM_Worker
Imports Renci.SshNet
Imports VERAG_PROG_ALLGEMEIN
@@ -660,27 +661,45 @@ Public Class frmStartOptions
Else
Dim totalPages = 0
Dim batchrequestNr = 0
Dim counTrans As Integer = 0
Dim savedTrans As Integer = 0
Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now())
MDMEinarb.setInvoicingDate(Now(), MDMEinarb)
'getNewestTransactions - Only returns the first page of transactions, subsequent pages are to be requested via /transactions with batch_seq_nr and page_nr.
fehler = mse.getNewestTransactions(token, dt, batchrequestNr, totalPages, 0, True)
fehler = mse.getNewestTransactions(token, dt, batchrequestNr, totalPages, 0, True, savedTrans)
If fehler <> "" Then
API.UPDTAE_ERR("Batch-Nr: " & batchrequestNr & "-" & totalPages, fehler, "getNewestTransactions")
closeMe()
Exit Sub
Else
counTrans += dt.Rows.Count
End If
If totalPages > 1 Then
For i = 2 To totalPages
If dt.Rows.Count > 0 Then dt.Clear()
fehler = mse.getTransactionsFromBatchNrAndPage(token, dt, batchrequestNr, totalPages, i)
fehler = mse.getTransactionsFromBatchNrAndPage(token, dt, batchrequestNr, totalPages, i, savedTrans)
If fehler <> "" Then
API.UPDTAE_ERR("Batch-Nr: " & batchrequestNr & "-" & totalPages, fehler, "getTransactionsFromBatchNrAndPage")
closeMe()
Exit Sub
Else
counTrans += dt.Rows.Count
End If
i = i + 1
Next
End If
API.UPDTAE_OK(,, PARAM & " Batch-Nr: " & batchrequestNr & "-" & totalPages)
MDMEinarb.ds_count += savedTrans
MDMEinarb.ds_total += counTrans
If MDMEinarb.ds_count = MDMEinarb.ds_total Then
MDMEinarb.completed = True
MDMEinarb.completed_date = Now()
End If
MDMEinarb.import_date = Now()
MDMEinarb.SAVE()
closeMe()
End If
@@ -3306,7 +3325,7 @@ Public Class frmStartOptions
Private Function ValidateServerCertificate(sender As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) As Boolean
Return True
End Function
Function getUID_Pruefung(maxAnz As Integer, Mail_FIMRA As String, Mail_betreff As String, Mail_To As String, Optional Mail_CC As String = "", Optional Mail_BCC As String = "", Optional TageZurueck As String = "", Optional setKundenvermerk As Boolean = False, Optional finanzOnline As Boolean = True, Optional veroegerungMs As Integer = 1000) As Boolean
Function getUID_Pruefung(maxAnz As Integer, Mail_FIMRA As String, Mail_betreff As String, Mail_To As String, Optional Mail_CC As String = "", Optional Mail_BCC As String = "", Optional TageZurueck As String = "", Optional setKundenvermerk As Boolean = False, Optional finanzOnline As Boolean = True, Optional veroegerungMs As Integer = 1500) As Boolean
Dim firmatmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Try
VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = Mail_FIMRA
@@ -4075,17 +4094,17 @@ Public Class frmStartOptions
End If
SDL.Sachbearbeiter = "ASFINAG"
Dim Validto = SQl.checkNullStr(oRDR.GetValue("DatumVertragsabschluss"))
Dim Validto = SQL.checkNullStr(oRDR.GetValue("DatumVertragsabschluss"))
SDL.KartenNr = SQl.checkNullStr(oRDR.GetValue("CardNumber"))
SDL.KartenNr = SQL.checkNullStr(oRDR.GetValue("CardNumber"))
If Validto <> "" Then
SDL.GültigBis = DateAdd("d", -1, DateAdd("m", 1, DateSerial("20" & Mid(oRDR.GetValue("CardNumber"), 1, 2), Mid(Validto, 3, 2), 1)))
End If
SDL.OBUID = SQl.checkNullStr(oRDR.GetValue("OBUID"))
SDL.Vertragsabschlussdatum = SQl.checkNullStr(oRDR.GetValue("DatumVertragsabschluss"))
SDL.Kategorie = SQl.checkNullStr(oRDR.GetValue("Kategorie"))
SDL.Schadstoffklasse = SQl.checkNullStr(oRDR.GetValue("Schadstoffklasse"))
SDL.Status = SQl.checkNullStr(oRDR.GetValue("Status"))
SDL.OBUID = SQL.checkNullStr(oRDR.GetValue("OBUID"))
SDL.Vertragsabschlussdatum = SQL.checkNullStr(oRDR.GetValue("DatumVertragsabschluss"))
SDL.Kategorie = SQL.checkNullStr(oRDR.GetValue("Kategorie"))
SDL.Schadstoffklasse = SQL.checkNullStr(oRDR.GetValue("Schadstoffklasse"))
SDL.Status = SQL.checkNullStr(oRDR.GetValue("Status"))
SDL.SAVE()
End If
@@ -4131,21 +4150,21 @@ Public Class frmStartOptions
End If
SDL.Sachbearbeiter = "ASFINAG" & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "_TEST", "")
Dim Validto = SQl.checkNullStr(row.Item("contractDate"))
Dim Validto = SQL.checkNullStr(row.Item("contractDate"))
SDL.KartenNr = SQl.checkNullStr(row.Item("cardNumber"))
SDL.KartenNr = SQL.checkNullStr(row.Item("cardNumber"))
If Validto <> "" Then
'MsgBox(Mid(row.Item("ValidTo"), 1, 2) & " " & Mid(row.Item("ValidTo"), 3, 2))
SDL.GültigBis = DateAdd("d", -1, DateAdd("m", 1, DateSerial("20" & Mid(row.Item("ValidTo"), 1, 2), Mid(row.Item("ValidTo"), 3, 2), 1))) 'noch im DETAIL checken!
End If
SDL.OBUID = SQl.checkNullStr(row.Item("OBUID"))
SDL.Vertragsabschlussdatum = SQl.checkNullStr(row.Item("contractDate"))
SDL.Kategorie = SQl.checkNullStr(row.Item("vehicleCategory"))
SDL.Schadstoffklasse = SQl.checkNullStr(row.Item("emissionCategory"))
SDL.Status = SQl.checkNullStr(row.Item("status"))
SDL.Nationalitaet = SQl.checkNullStr(row.Item("nationality"))
SDL.CO2Kategorie = SQl.checkNullStr(row.Item("CO2EmissionsClass"))
SDL.OBUID = SQL.checkNullStr(row.Item("OBUID"))
SDL.Vertragsabschlussdatum = SQL.checkNullStr(row.Item("contractDate"))
SDL.Kategorie = SQL.checkNullStr(row.Item("vehicleCategory"))
SDL.Schadstoffklasse = SQL.checkNullStr(row.Item("emissionCategory"))
SDL.Status = SQL.checkNullStr(row.Item("status"))
SDL.Nationalitaet = SQL.checkNullStr(row.Item("nationality"))
SDL.CO2Kategorie = SQL.checkNullStr(row.Item("CO2EmissionsClass"))
SDL.SAVE()
End If
@@ -5090,7 +5109,12 @@ Public Class frmStartOptions
Dim totalPages = 0
Dim batchrequestNr = 0
fehler = mse.getNewestTransactions(token, dt, batchrequestNr, totalPages, 0, cbxOnlyBilledTransactions.Checked)
Dim counTrans As Integer = 0
Dim savedTrans As Integer = 0
Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now())
MDMEinarb.setInvoicingDate(Now(), MDMEinarb)
fehler = mse.getNewestTransactions(token, dt, batchrequestNr, totalPages, 0, cbxOnlyBilledTransactions.Checked, savedTrans)
If fehler <> "" Then
MsgBox(fehler)
@@ -5102,7 +5126,7 @@ Public Class frmStartOptions
For i = 2 To totalPages
If dt.Rows.Count > 0 Then dt.Clear()
fehler = mse.getTransactionsFromBatchNrAndPage(token, dt, batchrequestNr, totalPages, i)
fehler = mse.getTransactionsFromBatchNrAndPage(token, dt, batchrequestNr, totalPages, i, savedTrans)
If fehler <> "" Then
MsgBox(fehler)
@@ -5117,6 +5141,17 @@ Public Class frmStartOptions
End If
MDMEinarb.ds_count += savedTrans
MDMEinarb.ds_total += counTrans
If MDMEinarb.ds_count = MDMEinarb.ds_total Then
MDMEinarb.completed = True
MDMEinarb.completed_date = Now()
End If
MDMEinarb.import_date = Now()
MDMEinarb.SAVE()
End If
@@ -5209,7 +5244,7 @@ Public Class frmStartOptions
For i = 2 To totalPages
If transactions.Rows.Count > 0 Then transactions.Clear()
fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, i)
fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, i, 0)
If fehler <> "" Then
MsgBox(fehler)
@@ -5245,6 +5280,11 @@ Public Class frmStartOptions
Dim transactions As New DataTable
Dim invoice As New DataTable
Dim counTrans As Integer = 0
Dim savedTrans As Integer = 0
Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now())
MDMEinarb.setInvoicingDate(Now(), MDMEinarb)
If fehler <> "" Then
MsgBox(fehler)
Me.Visible = True
@@ -5260,11 +5300,15 @@ Public Class frmStartOptions
End If
fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, 1)
fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, 1, savedTrans)
If fehler <> "" Then
MsgBox(fehler)
Me.Visible = True
Exit Sub
Else
counTrans += transactions.Rows.Count
End If
@@ -5272,11 +5316,15 @@ Public Class frmStartOptions
For i = 2 To totalPages
If transactions.Rows.Count > 0 Then transactions.Rows.Clear()
fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, i)
fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, i, savedTrans)
If fehler <> "" Then
MsgBox(fehler)
Me.Visible = True
Exit Sub
Else
counTrans += transactions.Rows.Count
End If
Next
@@ -5284,6 +5332,17 @@ Public Class frmStartOptions
MsgBox("DONE")
MDMEinarb.ds_count += savedTrans
MDMEinarb.ds_total += counTrans
If MDMEinarb.ds_count = MDMEinarb.ds_total Then
MDMEinarb.completed = True
MDMEinarb.completed_date = Now()
End If
MDMEinarb.import_date = Now()
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then MDMEinarb.SAVE()
End If
Me.Visible = True
@@ -6347,7 +6406,7 @@ weiter:
If sqlCountUploaded <> "" AndAlso IsNumeric(sqlCountUploaded) Then countUploaeded = CInt(sqlCountUploaded)
lblCS_DB.Text = sqlCountUploaded
lblCS_DB.Text = " VON " & sqlCountUploaded
lblMissingCS.Text &= countMissing
@@ -6648,10 +6707,14 @@ repeatRequest:
Dim where As String = ""
If Not sync Then where = " and kde_CSPortfolioAdded = 0"
If Not sync Then
where = " and kde_CSPortfolioAdded = 0"
Else
addCreditsave = (New SQL).doSQL("Update tblKundenErweitert set kde_CSPortfolioAdded = 0 where kde_CSPortfolioAdded = 1", "FMZOLL")
End If
While addCreditsave
Dim creditsave As String = "select kde_CreditSaveNo 'Safe Number', '' as 'Local Org No.',left(kde_CreditSaveId,2) as 'Country Code', '' as Reference, '' as 'Free Text', '' as 'Personal Limit' from tblKundenErweitert inner join Adressen on Adressen.AdressenNr = kde_KundenNr where isnull(tblKundenErweitert.kde_CreditSaveId,'') <> '' and kde_CreditSaveId <> 'True' and kde_CreditSaveId <>'False' and isnull(kde_CreditSaveNo,'') <> '' " & where & " and Adressen.Auswahl = 'A' group by kde_CreditSaveNo, kde_CreditSaveId"
Dim creditsave As String = "select kde_CreditSaveNo 'Safe Number', '' as 'Local Org No.',left(kde_CreditSaveId,2) as 'Country Code', '' as Reference, '' as 'Free Text', '' as 'Personal Limit' from tblKundenErweitert inner join Adressen on Adressen.AdressenNr = kde_KundenNr inner join Rechnungsausgang on Rechnungsausgang.RechnungsKundenNr = Adressen.AdressenNr where isnull(tblKundenErweitert.kde_CreditSaveId,'') <> '' and kde_CreditSaveId <> 'True' and kde_CreditSaveId <>'False' and isnull(kde_CreditSaveNo,'') <> '' " & where & " and Adressen.Auswahl = 'A' and cast(RechnungsDatum as Date) >= ' " & Today().AddYears(-1) & "' group by kde_CreditSaveNo, kde_CreditSaveId"
Dim dtCreditsafe_CSV As DataTable = (New SQL).loadDgvBySql(creditsave, "FMZOLL")
If dtCreditsafe_CSV.Rows.Count = 0 Then
@@ -6686,7 +6749,9 @@ repeatRequest:
addCreditsave = (New SQL).doSQL("Update tblKundenErweitert set kde_CSPortfolioAdded = 1 where kde_CreditSaveNo in (" & CS_ID & ")", "FMZOLL")
End If
If sync Then addCreditsave = False
If sync Then
addCreditsave = False
End If
End While
@@ -6694,7 +6759,7 @@ repeatRequest:
Dim countUploaeded As Integer = 0
Dim sql As New SQL
lblCSPortfolio.Text = "im Portfolio:"
lblCSPortfolio.Text = "im CS-Portfolio:"
lblMissingCS.Text = "hochzuladende Unternehmen in CS: "
Dim sqlCountNotUploaded As String = sql.getValueTxtBySql("select count(distinct(kde_CreditSaveNo)) from tblKundenErweitert where isnull(tblKundenErweitert.kde_CreditSaveId,'') <> '' and kde_CreditSaveId <> 'True' and kde_CreditSaveId <>'False' and isnull(kde_CreditSaveNo,'') <> '' and kde_CSPortfolioAdded = 0", "FMZOLL")
@@ -6707,11 +6772,50 @@ repeatRequest:
lblMissingCS.Text &= countMissing
lblCS_DB.Text = sqlCountUploaded
lblCS_DB.Text = " VON" & sqlCountUploaded
End Sub
Private Sub cbCheckDate_CheckedChanged(sender As Object, e As EventArgs) Handles cbCheckDate.CheckedChanged
txtCSDate.Enabled = cbCheckDate.Checked
If cbCheckDate.Checked Then txtCSDate.Text = ""
End Sub
Private Sub LinkLabel53_LinkClicked_2(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel53.LinkClicked
Dim fehlendePDFzuRE As String = "select rmc_daId,rmc_pdfFileName, Year(cast(rmc_importDatum as Date)) as rmc_importDatumYear FROM [tblRMCImport] where rmc_daId is null and cast(rmc_importDatum as Date) >= '02.10.2025' "
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dtRechnnungsdaten As DataTable = SQL.loadDgvBySql(fehlendePDFzuRE, "FMZOLL")
If dtRechnnungsdaten.Rows.Count > 0 Then
For Each r As DataRow In dtRechnnungsdaten.Rows
Dim dateinameSearch As String = r.Item("rmc_pdfFileName")
If dateinameSearch.Contains("bto") Then
dateinameSearch = dateinameSearch.Replace("bto.pdf", "bto%.pdf")
ElseIf dateinameSearch.Contains("nto") Then
dateinameSearch = dateinameSearch.Replace("nto.pdf", "nto%.pdf")
End If
If dateinameSearch <> "" Then
Dim daId As Integer = 0
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= 'RMC' AND da_uOrdner2= '" & r.Item("rmc_importDatumYear") & "' AND da_name like '%" & dateinameSearch & "'", "FMZOLL",,, 0))
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 [tblRMCImport] SET [rmc_daId]='" & DS.da_id & "', rmc_daIdgesetztDatum = getdate() where [rmc_pdfFileName] = '" & r.Item("rmc_pdfFileName") & "' ", "FMZOLL")
End If
End If
End If
Next
End If
End Sub
End Class