Creditsave-Rountine, Mailsender, etc.

This commit is contained in:
2025-09-03 10:04:56 +02:00
parent 01a8f1f7ad
commit 18f433f345
6 changed files with 830 additions and 277 deletions

View File

@@ -1,24 +1,18 @@
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.IO
Imports System.Net
Imports System.Net.Security
Imports System.Security.Cryptography.X509Certificates
Imports System.Text
Imports System.Threading
Imports System.Xml
Imports com.sun.media.sound
Imports com.sun.org.apache.xerces.internal.impl.dv.xs
Imports DAKOSY_Worker
Imports MDM_Worker
Imports Org.BouncyCastle.Bcpg
Imports Renci.SshNet
Imports sun.java2d
Imports TELOTEC_Worker
Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.cTelotecAPI
Public Class frmStartOptions
Dim WithEvents timer As New Timer
Dim WithEvents timer As New System.Windows.Forms.Timer
Private Sub lklAufschubkontenATLASEZOLL_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lklAufschubkontenATLASEZOLL.LinkClicked, LinkLabel3.LinkClicked
Dim f As New frmRoutineManager("AUFSCHUB", True, cbxHistory.Checked)
@@ -4870,6 +4864,8 @@ Public Class frmStartOptions
checkTBLandTWLNr()
getLatestBatchNrMSE()
ElseIf tbcntr.SelectedIndex = 5 Then
countmissingCSinPortfolio()
End If
End Sub
@@ -6255,7 +6251,147 @@ weiter:
End Sub
Private Sub btnCreditsaveLauf_Click(sender As Object, e As EventArgs) Handles btnCreditsaveLauf.Click
'Existing companies in the portfolio will be skipped, and only new unique entries will be added.
Dim sql As New SQL
Dim cs = New cCreditSafeAPI("creditsafe")
Dim addCreditsave As Boolean = False
If cs.authenticate() = "200" Then addCreditsave = True
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 where isnull(tblKundenErweitert.kde_CreditSaveId,'') <> '' and kde_CreditSaveId <> 'True' and kde_CreditSaveId <>'False' and isnull(kde_CreditSaveNo,'') <> '' and kde_CSPortfolioAdded = 0 group by kde_CreditSaveNo, kde_CreditSaveId"
Dim dtCreditsafe_CSV As DataTable = sql.loadDgvBySql(creditsave, "FMZOLL")
If dtCreditsafe_CSV.Rows.Count = 0 Then
addCreditsave = False
Else
Dim Path As String = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genCSVFromDT(dtCreditsafe_CSV,,, "importcsv")
If Path <> "" Then
If cs.AddCompaniesCSVToPortfolio(Path) <> "OK" Then 'bei Fehler abbrechen!
Exit While
End If
End If
End If
Dim displayView = New DataView(dtCreditsafe_CSV, "", "Safe Number", DataViewRowState.CurrentRows)
Dim distinctDT_CSV As DataTable = displayView.ToTable(True, "Safe Number")
Dim CS_ID As String = ""
Dim counter = 0
For Each row As DataRow In distinctDT_CSV.Rows
CS_ID &= "'" & row.Item("Safe Number") & "'"
counter = counter + 1
If (distinctDT_CSV.Rows.Count <> 1 And counter <> distinctDT_CSV.Rows.Count) Then CS_ID &= ","
Next
If CS_ID <> "" Then
addCreditsave = sql.doSQL("Update tblKundenErweitert set kde_CSPortfolioAdded = 1 where kde_CreditSaveNo in (" & CS_ID & ")", "FMZOLL")
End If
End While
End Sub
Private Sub countmissingCSinPortfolio()
Dim count As Integer = 0
Dim sql As New SQL
Dim sqlCount As String = sql.getValueTxtBySql("select isnull(count(*),0) from tblKundenErweitert where isnull(tblKundenErweitert.kde_CreditSaveId,'') <> '' and kde_CreditSaveId <> 'True' and kde_CreditSaveId <>'False' and isnull(kde_CreditSaveNo,'') <> '' and kde_CSPortfolioAdded = 0 group by kde_CreditSaveNo, kde_CreditSaveId", "FMZOLL")
If sqlCount <> "" AndAlso IsNumeric(sqlCount) Then count = CInt(sqlCount)
lblMissingCS.Text &= count
End Sub
Private Sub Button28_Click_1(sender As Object, e As EventArgs) Handles Button28.Click
Dim datumString = ""
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True
If cbCheckDate.Checked Then
If txtCSDate.Text <> "" AndAlso IsDate(txtCSDate.Text) Then
datumString = txtCSDate.Text
Else
MsgBox("Datum hat falsches Format!" & vbNewLine & "Vorgang wird abgebrochen!")
Exit Sub
End If
Else
datumString = Today.ToShortDateString
End If
Dim creditsave As String = "
select ba_KundenNr FROM tblBonitaetsauskunft WHERE ba_Pruefungstool = 'creditsafe API'
EXCEPT
SELECT * FROM ( SELECT ba_KundenNr
FROM tblBonitaetsauskunft
WHERE ba_Pruefungstool = 'creditsafe API' and cast(ba_Datum as Date) >= '" & datumString & "'
UNION ALL
SELECT e.KundenNr
FROM (
SELECT e.KundenNr,
e.eventDate,
'creditsafe API' AS Source
FROM [VERAG].[dbo].[tblCreditsafeEvents] e
INNER JOIN [VERAG].[dbo].[tblBonitaetsauskunft] b
ON e.bonId = b.ba_id
WHERE b.ba_Pruefungstool = 'creditsafe API'
AND (e.localEventCode IN ('CL','CR') OR e.globalEventCode IN ('CL','CR'))
) e
WHERE cast(e.eventDate as Date) >= '" & datumString & "'
GROUP BY Source, e.KundenNr, cast(e.eventDate as Date)
) AS Temp"
Dim dtCreditsafe As DataTable = (New SQL).loadDgvBySql(creditsave, "FMZOLL")
If dtCreditsafe.Rows.Count = 0 Then Exit Sub
Dim cs = New cCreditSafeAPI("creditsafe")
If cs.authenticate() = "200" Then
For Each row As DataRow In dtCreditsafe.Rows
Dim KUNDE_ERW As New cKundenErweitert(row("ba_KundenNr"))
Dim company As New cCreditSafeAPI.Company("", "", "", "", KUNDE_ERW.kde_CreditSaveNo, KUNDE_ERW.kde_CreditSaveId, Nothing, "", "", "", "", "", "", "", "", "", KUNDE_ERW.kde_KundenNr)
If txtCSDate.Text <> "" AndAlso IsDate(txtCSDate.Text) Then
company.lastChecked = CDate(txtCSDate.Text)
End If
Dim currentBonID As Integer = (New SQL).getValueTxtBySql("Select Top(1) isnull(ba_id, -1) FROM [tblBonitaetsauskunft] where ba_KundenNr = " & KUNDE_ERW.kde_KundenNr & " AND [ba_Pruefungstool] = 'creditsafe API' ORDER BY ba_Datum DESC", "FMZOLL")
If currentBonID > 0 Then company.csBonID = currentBonID
Dim dt As New DataTable()
cs.getCompanyEvents(company, dt, cbCheckDate.Checked)
Thread.Sleep(2000)
Next
End If
End Sub
Private Sub cbCheckDate_CheckedChanged(sender As Object, e As EventArgs) Handles cbCheckDate.CheckedChanged
End Sub
End Class