Wenn Daten von Creditsafe nicht ausreichend für einen Creditreport, wird im Aviso abgebrochen und darauf hingewiesen (um unnötige Abfragen abzufangen)! Weitere Hinweise bei NonActive/Pending/Other-Kunden.

This commit is contained in:
2023-05-03 14:53:10 +02:00
parent 1949d67f54
commit d17485be1a
5 changed files with 193 additions and 111 deletions

View File

@@ -100,6 +100,7 @@ Partial Class usrcntlCreditsafe
Me.dgvCreditsafe.AKTUALISIERUNGS_INTERVALL = -1 Me.dgvCreditsafe.AKTUALISIERUNGS_INTERVALL = -1
Me.dgvCreditsafe.AllowUserToAddRows = False Me.dgvCreditsafe.AllowUserToAddRows = False
Me.dgvCreditsafe.AllowUserToDeleteRows = False Me.dgvCreditsafe.AllowUserToDeleteRows = False
Me.dgvCreditsafe.AllowUserToOrderColumns = True
Me.dgvCreditsafe.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Me.dgvCreditsafe.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)

View File

@@ -1,4 +1,6 @@
 
Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports itextsharp.text.pdf
Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN
@@ -8,6 +10,7 @@ Public Class usrcntlCreditsafe
Dim land As String Dim land As String
Dim dataTable As New DataTable() Dim dataTable As New DataTable()
Public comp As Company Public comp As Company
Dim uidDefault As String
Sub New() Sub New()
InitializeComponent() InitializeComponent()
@@ -19,7 +22,9 @@ Public Class usrcntlCreditsafe
Sub New(_UID As String, _name As String, _land As String) Sub New(_UID As String, _name As String, _land As String)
InitializeComponent() InitializeComponent()
txtUID.Text = _UID uidDefault = _UID
_name = _name.Replace(Chr(34), "") 'Anführungszeichen entfernen
_name = _name.Replace(Chr(176), "") '° entfernen
txtFirma.Text = _name txtFirma.Text = _name
land = _land land = _land
init() init()
@@ -28,7 +33,6 @@ Public Class usrcntlCreditsafe
End Sub End Sub
Private Sub init() Private Sub init()
user = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_CSuser user = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_CSuser
pw = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_CSpwd pw = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_CSpwd
@@ -38,7 +42,7 @@ Public Class usrcntlCreditsafe
cbxLand.fillWithSQL(" SELECT [Länderverzeichnis für die Außenhandelsstatistik].LandKz,[Länderverzeichnis für die Außenhandelsstatistik].LandBez " & cbxLand.fillWithSQL(" SELECT [Länderverzeichnis für die Außenhandelsstatistik].LandKz,[Länderverzeichnis für die Außenhandelsstatistik].LandBez " &
" FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN [Währungstabelle] ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = [Währungstabelle].[Währungsschlüssel] " & " FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN [Währungstabelle] ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = [Währungstabelle].[Währungsschlüssel] " &
" WHERE ([Währungstabelle].[MitgliedslandEU] = 1) " & " WHERE ([Währungstabelle].[MitgliedslandEU] = 1 Or [Länderverzeichnis für die Außenhandelsstatistik].LandKz = 'TR' Or [Länderverzeichnis für die Außenhandelsstatistik].LandKz = 'GB' Or [Länderverzeichnis für die Außenhandelsstatistik].LandKz = 'RS') " &
" ORDER BY [Länderverzeichnis für die Außenhandelsstatistik].LandKz ", , "FMZOLL", True) " ORDER BY [Länderverzeichnis für die Außenhandelsstatistik].LandKz ", , "FMZOLL", True)
cbxLand.changeItem(land) cbxLand.changeItem(land)
@@ -46,6 +50,22 @@ Public Class usrcntlCreditsafe
btnUebernehmen.Enabled = False btnUebernehmen.Enabled = False
Cursor = Cursors.Default Cursor = Cursors.Default
If uidDefault <> "" Then
uidDefault = uidDefault.Replace(" ", "")
uidDefault = uidDefault.Trim()
If uidDefault.ToUpper.StartsWith("ATU") Then
uidDefault = uidDefault.Replace("ATU", "")
txtUID.Text = "ATU " & uidDefault
Else
txtUID.Text = uidDefault
End If
End If
End Sub End Sub
Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
@@ -140,33 +160,64 @@ Public Class usrcntlCreditsafe
.Columns("dateOfLatestChange").HeaderText = "letzte Änderung" .Columns("dateOfLatestChange").HeaderText = "letzte Änderung"
End With End With
For Each row As DataGridViewRow In dgvCreditsafe.Rows
If Not IsDBNull(row.Cells("status").Value) Then
Dim akiv As String = (row.Cells("status").Value.ToString).ToLower
If akiv = "active" Then
row.DefaultCellStyle.BackColor = Color.LightGreen
ElseIf akiv = "nonactive" Then
row.DefaultCellStyle.BackColor = Color.IndianRed
Else
row.DefaultCellStyle.BackColor = Color.LightYellow
End If
End If
Next
End If End If
End Sub End Sub
Private Sub btnUebernehmen_Click(sender As Object, e As EventArgs) Handles btnUebernehmen.Click Private Sub btnUebernehmen_Click(sender As Object, e As EventArgs) Handles btnUebernehmen.Click
If dgvCreditsafe.SelectedRows.Count <> 1 Then
btnUebernehmen.DialogResult = DialogResult.None
Exit Sub
Else
For Each row As DataGridViewRow In dgvCreditsafe.SelectedRows
comp = New Company(IIf(IsDBNull(row.Cells("name").Value), "", row.Cells("name").Value),
IIf(IsDBNull(row.Cells("vatNo").Value), "", row.Cells("vatNo").Value),
IIf(IsDBNull(row.Cells("country").Value), "", row.Cells("country").Value),
IIf(IsDBNull(row.Cells("safeNo").Value), "", row.Cells("safeNo").Value),
IIf(IsDBNull(row.Cells("regNo").Value), "", row.Cells("regNo").Value),
IIf(IsDBNull(row.Cells("street").Value), "", row.Cells("street").Value),
IIf(IsDBNull(row.Cells("city").Value), "", row.Cells("city").Value),
IIf(IsDBNull(row.Cells("postCode").Value), "", row.Cells("postCode").Value),
IIf(IsDBNull(row.Cells("id").Value), "", row.Cells("id").Value),
IIf(IsDBNull(row.Cells("phoneNo").Value), "", row.Cells("phoneNo").Value),
IIf(IsDBNull(row.Cells("dateOfLatestChange").Value), "", row.Cells("dateOfLatestChange").Value))
Next Dim o As Form = Nothing
btnUebernehmen.DialogResult = DialogResult.OK If Me.Parent.GetType() Is GetType(Form) Then o = Me.Parent
For Each row As DataGridViewRow In dgvCreditsafe.SelectedRows
comp = New Company(IIf(IsDBNull(row.Cells("name").Value), "", row.Cells("name").Value),
IIf(IsDBNull(row.Cells("vatNo").Value), "", row.Cells("vatNo").Value),
IIf(IsDBNull(row.Cells("country").Value), "", row.Cells("country").Value),
IIf(IsDBNull(row.Cells("safeNo").Value), "", row.Cells("safeNo").Value),
IIf(IsDBNull(row.Cells("regNo").Value), "", row.Cells("regNo").Value),
IIf(IsDBNull(row.Cells("street").Value), "", row.Cells("street").Value),
IIf(IsDBNull(row.Cells("city").Value), "", row.Cells("city").Value),
IIf(IsDBNull(row.Cells("postCode").Value), "", row.Cells("postCode").Value),
IIf(IsDBNull(row.Cells("id").Value), "", row.Cells("id").Value),
IIf(IsDBNull(row.Cells("phoneNo").Value), "", row.Cells("phoneNo").Value),
IIf(IsDBNull(row.Cells("dateOfLatestChange").Value), "", row.Cells("dateOfLatestChange").Value),
IIf(IsDBNull(row.Cells("status").Value), "", row.Cells("status").Value))
Next
If comp.safeNo Is Nothing Or comp.safeNo = "" Then
lblWarning.Text = "Daten von Creditsafe sind unvollständig, es kann kein Creditreport erstellt werden!"
o.DialogResult = DialogResult.None
ElseIf comp.status.ToLower <> "active" Then
Dim a As MsgBoxResult = MsgBox("Das Unternehmen " & comp.name & " besitzt den Status: " & comp.status & vbNewLine & "Trotzdem fortfahren?", vbYesNo)
If a = vbYes Then
o.DialogResult = DialogResult.OK
Exit Sub
Else
o.DialogResult = DialogResult.None
End If
Else
lblWarning.Text = ""
o.DialogResult = DialogResult.OK
Exit Sub
End If End If
End Sub End Sub
@@ -184,9 +235,10 @@ Public Class usrcntlCreditsafe
Public Property postCode As String Public Property postCode As String
Public Property phoneNo As String Public Property phoneNo As String
Public Property dateOfLatestChange As Date Public Property dateOfLatestChange As Date
Public Property status As String
Public Sub New(_name As String, _vatNo As String, _country As String, _safeNo As String, _regNo As String, _street As String, _city As String, _postCode As String, _credissafeId As String, _phoneNo As String, _dateOfLatestChange As DateTime) Public Sub New(_name As String, _vatNo As String, _country As String, _safeNo As String, _regNo As String, _street As String, _city As String, _postCode As String, _credissafeId As String, _phoneNo As String, _dateOfLatestChange As DateTime, _status As String)
name = _name name = _name
vatNo = _vatNo vatNo = _vatNo
country = _country country = _country
@@ -198,6 +250,7 @@ Public Class usrcntlCreditsafe
credissafeId = _credissafeId credissafeId = _credissafeId
phoneNo = _phoneNo phoneNo = _phoneNo
dateOfLatestChange = dateOfLatestChange dateOfLatestChange = dateOfLatestChange
status = _status
End Sub End Sub

View File

@@ -90,7 +90,7 @@
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<AssemblyOriginatorKeyFile>SDL_TemporaryKey.pfx</AssemblyOriginatorKeyFile> <AssemblyOriginatorKeyFile>Test.pfx</AssemblyOriginatorKeyFile>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Accessibility" /> <Reference Include="Accessibility" />

View File

@@ -569,64 +569,7 @@ Public Class usrCntlKundenuebersicht
' End If ' End If
' End If ' End If
initCreditsave()
If ADRESSE.LandKz = "AT" Or ADRESSE.LandKz = "A" Then
lblBonitaet.Text = If(KUNDE_ERW.kde_CreditSaveBonitaetsScore, "")
Else
lblBonitaet.Text = If(KUNDE_ERW.kde_CreditSaveBonitaetsIndex, "")
End If
If lblBonitaet.Text = "" Then
lblBonitaet.Text = If(KUNDE.Bonität, "")
End If
lblBonitaetRisikostufe.Text = If(KUNDE_ERW.kde_CreditSaveBonitaetsklasse, "")
If lblBonitaetRisikostufe.Text = "" Then
lblBonitaetRisikostufe.Text = If(KUNDE_ERW.kde_BonitaetsStufe, "")
End If
' select case backgrounndcolor
Select Case lblBonitaetRisikostufe.Text
Case "A", "1"
lblBonitaetRisikostufe.BackColor = Color.Green
lblBonitaetRisikostufe.ForeColor = Color.White
Case "B", "2"
lblBonitaetRisikostufe.BackColor = Color.LightGreen
lblBonitaetRisikostufe.ForeColor = Color.Black
Case "C", "3"
lblBonitaetRisikostufe.BackColor = Color.Yellow
lblBonitaetRisikostufe.ForeColor = Color.Black
Case "D", "4"
lblBonitaetRisikostufe.BackColor = Color.Orange
lblBonitaetRisikostufe.ForeColor = Color.Black
Case "E", "5"
lblBonitaetRisikostufe.BackColor = Color.Red
lblBonitaetRisikostufe.ForeColor = Color.White
Case "F", "6"
lblBonitaetRisikostufe.BackColor = Color.Red
lblBonitaetRisikostufe.ForeColor = Color.White
Case Else
lblBonitaetRisikostufe.BackColor = Color.WhiteSmoke
lblBonitaetRisikostufe.ForeColor = Color.Black
End Select
If lblBonitaet.Text = "0" Then lblBonitaet.Text = ""
If KUNDE.Bonitätsdatum IsNot Nothing AndAlso IsDate(KUNDE.Bonitätsdatum) Then
lblBonitaetsdatum.Text = CDate(KUNDE.Bonitätsdatum).ToShortDateString
Else
lblBonitaetsdatum.Text = ""
End If
lblHoechstkredit._value = If(IsNumeric(If(KUNDE.Höchstkredit, "")), KUNDE.Höchstkredit, "")
'txtKundenbetreuer.Text = If(KUNDE_ERW.kde_qsTeamMAName, "") 'txtKundenbetreuer.Text = If(KUNDE_ERW.kde_qsTeamMAName, "")
@@ -2757,6 +2700,7 @@ Public Class usrCntlKundenuebersicht
KUNDE_ERW.kde_CreditSaveId = UserControl1.comp.credissafeId KUNDE_ERW.kde_CreditSaveId = UserControl1.comp.credissafeId
KUNDE_ERW.kde_CreditSaveNo = UserControl1.comp.safeNo KUNDE_ERW.kde_CreditSaveNo = UserControl1.comp.safeNo
KUNDE_ERW.SAVE() KUNDE_ERW.SAVE()
End If End If
@@ -2857,13 +2801,24 @@ Public Class usrCntlKundenuebersicht
cBonitaetsauskunft.ba_Datum = Now() cBonitaetsauskunft.ba_Datum = Now()
If company.country = "AT" Then If company.country = "AT" Then
cBonitaetsauskunft.ba_CreditSaveBonitaetsScore = If(IsNumeric(company.csIndex), CInt(company.csIndex), 0)
cBonitaetsauskunft.ba_Pruefungstool = "creditsafe AT" cBonitaetsauskunft.ba_Pruefungstool = "creditsafe AT"
Else Else
cBonitaetsauskunft.ba_CreditSaveBonitaetsIndex = If(IsNumeric(company.csIndex), CDbl(company.csIndex), 0)
cBonitaetsauskunft.ba_Pruefungstool = "creditsafe" cBonitaetsauskunft.ba_Pruefungstool = "creditsafe"
End If End If
If (IsNumeric(company.csIndex)) Then
company.csIndex = company.csIndex.Replace(".", ",")
cBonitaetsauskunft.ba_CreditSaveBonitaetsIndex = CDbl(company.csIndex)
Else
cBonitaetsauskunft.ba_CreditSaveBonitaetsIndex = 0
End If
If (IsNumeric(company.csScore)) Then
cBonitaetsauskunft.ba_CreditSaveBonitaetsScore = CInt(company.csScore)
Else
cBonitaetsauskunft.ba_CreditSaveBonitaetsScore = 0
End If
cBonitaetsauskunft.ba_CreditSaveRisikoklasse = cProgramFunctions.isLeerNothing(company.csRiskclass) cBonitaetsauskunft.ba_CreditSaveRisikoklasse = cProgramFunctions.isLeerNothing(company.csRiskclass)
@@ -2887,7 +2842,7 @@ Public Class usrCntlKundenuebersicht
KDERW.SAVE() KDERW.SAVE()
updateDatenarchivId() updateDatenarchivId()
End If End If
initCreditsave()
End Sub End Sub
Private Sub FlatButton2_Click(sender As Object, e As EventArgs) Handles FlatButton2.Click Private Sub FlatButton2_Click(sender As Object, e As EventArgs) Handles FlatButton2.Click
@@ -2906,4 +2861,65 @@ Public Class usrCntlKundenuebersicht
Button2.BackgroundImage = SDL.My.Resources.Resources.pdf_gray Button2.BackgroundImage = SDL.My.Resources.Resources.pdf_gray
End If End If
End Sub End Sub
Private Sub initCreditsave()
If ADRESSE.LandKz = "AT" Or ADRESSE.LandKz = "A" Then
lblBonitaet.Text = If(KUNDE_ERW.kde_CreditSaveBonitaetsScore, "")
Else
lblBonitaet.Text = If(KUNDE_ERW.kde_CreditSaveBonitaetsIndex, "")
End If
If lblBonitaet.Text = "" Then
lblBonitaet.Text = If(KUNDE.Bonität, "")
End If
lblBonitaetRisikostufe.Text = If(KUNDE_ERW.kde_CreditSaveBonitaetsklasse, "")
If lblBonitaetRisikostufe.Text = "" Then
lblBonitaetRisikostufe.Text = If(KUNDE_ERW.kde_BonitaetsStufe, "")
End If
' select case backgrounndcolor
Select Case lblBonitaetRisikostufe.Text
Case "A", "1"
lblBonitaetRisikostufe.BackColor = Color.Green
lblBonitaetRisikostufe.ForeColor = Color.White
Case "B", "2"
lblBonitaetRisikostufe.BackColor = Color.LightGreen
lblBonitaetRisikostufe.ForeColor = Color.Black
Case "C", "3"
lblBonitaetRisikostufe.BackColor = Color.Yellow
lblBonitaetRisikostufe.ForeColor = Color.Black
Case "D", "4"
lblBonitaetRisikostufe.BackColor = Color.Orange
lblBonitaetRisikostufe.ForeColor = Color.Black
Case "E", "5"
lblBonitaetRisikostufe.BackColor = Color.Red
lblBonitaetRisikostufe.ForeColor = Color.White
Case "F", "6"
lblBonitaetRisikostufe.BackColor = Color.Red
lblBonitaetRisikostufe.ForeColor = Color.White
Case Else
lblBonitaetRisikostufe.BackColor = Color.WhiteSmoke
lblBonitaetRisikostufe.ForeColor = Color.Black
End Select
If lblBonitaet.Text = "0" Then lblBonitaet.Text = ""
If KUNDE.Bonitätsdatum IsNot Nothing AndAlso IsDate(KUNDE.Bonitätsdatum) Then
lblBonitaetsdatum.Text = CDate(KUNDE.Bonitätsdatum).ToShortDateString
Else
lblBonitaetsdatum.Text = ""
End If
lblHoechstkredit._value = If(IsNumeric(If(KUNDE.Höchstkredit, "")), KUNDE.Höchstkredit, "")
End Sub
End Class End Class

View File

@@ -1,4 +1,5 @@
Imports System.IO Imports System.Diagnostics.Eventing.Reader
Imports System.IO
Imports System.Net Imports System.Net
Imports System.Text Imports System.Text
Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls
@@ -270,6 +271,27 @@ Public Class cCreditSafeAPI
Dim reportObj As Chilkat.JsonObject = json.ObjectOf("report") Dim reportObj As Chilkat.JsonObject = json.ObjectOf("report")
If (json.LastMethodSuccess = True) Then If (json.LastMethodSuccess = True) Then
If company.country = "DE" Then ' nur bei DE ausführen!
Dim companyAddInformObj As Chilkat.JsonObject = reportObj.ObjectOf("additionalInformation")
If (reportObj.LastMethodSuccess = True) Then
Dim companyMiscObj As Chilkat.JsonObject = companyAddInformObj.ObjectOf("misc")
If (companyAddInformObj.LastMethodSuccess = True) Then
Dim deCurrentRatingObj As Chilkat.JsonObject = companyMiscObj.ObjectOf("deCurrentRating")
If (companyAddInformObj.LastMethodSuccess = True) Then
If (deCurrentRatingObj.LastMethodSuccess = True) Then
company.csIndex = deCurrentRatingObj.StringOf("value")
Else
Debug.WriteLine("deCurrentRatingObj object not found.")
End If
Debug.WriteLine("companyMiscObj object not found.")
End If
Debug.WriteLine("companyAddInformObj object not found.")
End If
Debug.WriteLine("reportObj object not found.")
End If
End If
Dim companyIDObj As Chilkat.JsonObject = reportObj.ObjectOf("companyIdentification") Dim companyIDObj As Chilkat.JsonObject = reportObj.ObjectOf("companyIdentification")
If (reportObj.LastMethodSuccess = True) Then If (reportObj.LastMethodSuccess = True) Then
@@ -310,7 +332,7 @@ Public Class cCreditSafeAPI
Dim providerValueObj As Chilkat.JsonObject = creditRatingObj.ObjectOf("providerValue") Dim providerValueObj As Chilkat.JsonObject = creditRatingObj.ObjectOf("providerValue")
If (creditRatingObj.LastMethodSuccess = True) Then If (creditRatingObj.LastMethodSuccess = True) Then
company.csIndex = providerValueObj.StringOf("value") company.csScore = providerValueObj.StringOf("value")
Else Else
Debug.WriteLine("providerValue object not found.") Debug.WriteLine("providerValue object not found.")
@@ -331,19 +353,6 @@ Public Class cCreditSafeAPI
company.csFailure = json.StringOf("details") company.csFailure = json.StringOf("details")
End If End If
'If withPDF Then
' Dim sb As New Chilkat.StringBuilder
' json.StringOfSb("pdfReportStream", sb)
' Dim bd As New Chilkat.BinData
' bd.AppendEncodedSb(sb, "base64")
' bytes = Convert.FromBase64String(sb.ToString)
' Return "mitPDF"
'End If
Return "ohnePDF" Return "ohnePDF"
End Function End Function
@@ -354,10 +363,10 @@ Public Class cCreditSafeAPI
If company.country = "DE" Then If company.country = "DE" Then
'Abfragen für DE benötigen einen Reason-Code 'Abfragen für DE benötigen einen Reason-Code
myUrl &= "?customData=de_reason_code::2" myUrl &= "?customData=de_reason_code::2"
myUrl &= "&?language=DE" myUrl &= "&?language=DE&?template=full"
Else Else
myUrl &= "?language=DE" myUrl &= "?language=DE&?template=full"
End If End If
Dim acceptContentType = "application/pdf" Dim acceptContentType = "application/pdf"
@@ -393,19 +402,21 @@ Public Class cCreditSafeAPI
If company.creditsafeNo <> "" Then If company.creditsafeNo <> "" Then
rest.AddQueryParam("safeNo", company.creditsafeNo) rest.AddQueryParam("safeNo", company.creditsafeNo)
Else
If company.vatNo <> "" Then
rest.AddQueryParam("vatNo", company.vatNo)
Else Else
If company.name <> "" Then
rest.AddQueryParam("name", company.name)
End If
End If
End If If company.vatNo <> "" Then
rest.AddQueryParam("vatNo", company.vatNo)
Else
If company.name <> "" Then
rest.AddQueryParam("name", company.name)
End If
End If
End If
End Sub End Sub
@@ -462,6 +473,7 @@ Public Class cCreditSafeAPI
Public Property creditsafeNo As String Public Property creditsafeNo As String
Public Property lastChecked As Date Public Property lastChecked As Date
Public Property csIndex As String Public Property csIndex As String
Public Property csScore As String
Public Property csRiskclass As String Public Property csRiskclass As String
Public Property csMaxCreditAmount As String Public Property csMaxCreditAmount As String
Public Property csDFoundingDate As Date Public Property csDFoundingDate As Date