Creditsafe Verbesserungen, Mehrfach-UID-Verwendung eingebaut.

This commit is contained in:
2023-04-24 13:14:35 +02:00
parent 9519d0612a
commit b4bb2a04a6
6 changed files with 2155 additions and 2128 deletions

View File

@@ -2721,7 +2721,7 @@ Public Class usrCntlKundenuebersicht
Private Sub btnCreditsafe_Click(sender As Object, e As EventArgs) Handles btnCreditsafe.Click Private Sub btnCreditsafe_Click(sender As Object, e As EventArgs) Handles btnCreditsafe.Click
Dim UID As String = "" Dim UID As String = ""
Dim land As String = checkNullStr(ADRESSE.UstIdKz) Dim land As String = "" 'checkNullStr(ADRESSE.UstIdKz)
Dim name As String = checkNullStr(ADRESSE.Name_1) Dim name As String = checkNullStr(ADRESSE.Name_1)
Cursor = Cursors.WaitCursor Cursor = Cursors.WaitCursor
@@ -2735,9 +2735,19 @@ Public Class usrCntlKundenuebersicht
UID = checkNullStr(ADRESSE.UstIdKz) & " " & checkNullStr(ADRESSE.UstIdNr) UID = checkNullStr(ADRESSE.UstIdKz) & " " & checkNullStr(ADRESSE.UstIdNr)
End If End If
Select Case checkNullStr(ADRESSE.LandKz)
Case "A", "" : land = "AT"
Case "D" : land = "DE"
Case Else
land = ADRESSE.LandKz
End Select
Using UserControl1 As usrcntlCreditsafe = New usrcntlCreditsafe(UID, name, land) Using UserControl1 As usrcntlCreditsafe = New usrcntlCreditsafe(UID, name, land)
Using tmpForm As Form = New Form() Using tmpForm As Form = New Form()
tmpForm.Width = UserControl1.Width tmpForm.Width = UserControl1.Width + 10
tmpForm.Height = UserControl1.Height + 40 tmpForm.Height = UserControl1.Height + 40
tmpForm.Text = "Creditsafe-Firmensuche" tmpForm.Text = "Creditsafe-Firmensuche"
tmpForm.StartPosition = tmpForm.StartPosition.CenterParent tmpForm.StartPosition = tmpForm.StartPosition.CenterParent
@@ -2758,27 +2768,24 @@ Public Class usrCntlKundenuebersicht
'If cs.authenticate(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_CSuser, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_CSpwd) = "200" Then 'If cs.authenticate(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_CSuser, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_CSpwd) = "200" Then
If cs.authenticate("creditsafe@verag.ag", "^AZcBVTBUIHTT5SQ1C9OOH") = "200" Then If cs.authenticate("creditsafe@verag.ag", "^AZcBVTBUIHTT5SQ1C9OOH") = "200" Then
'Prüfung wird benötigt, da deutsche Abfragen einen Reasoncode benötigen!
If checkNullStr(ADRESSE.LandKz) = "" Then If checkNullStr(ADRESSE.LandKz) = "" Then
MsgBox("Land im Kunden muss hinterlegt sein!") MsgBox("Land im Kunden muss hinterlegt sein!")
Exit Sub Exit Sub
End If End If
Dim laenderKZ As String
Select Case ADRESSE.LandKz Select Case ADRESSE.LandKz
Case "A" : laenderKZ = "AT" Case "A" : land = "AT"
Case "D" : laenderKZ = "DE" Case "D" : land = "DE"
Case Else Case Else
laenderKZ = "AT" land = ADRESSE.LandKz
End Select End Select
Dim company As New cCreditSafeAPI.Company("", "", land, KUNDE_ERW.kde_CreditSaveNo, KUNDE_ERW.kde_CreditSaveId, Nothing)
Dim company As New cCreditSafeAPI.Company("", "", laenderKZ, KUNDE_ERW.kde_CreditSaveNo, KUNDE_ERW.kde_CreditSaveId, Nothing)
Dim pdfObject As Byte() = Nothing Dim pdfObject As Byte() = Nothing
If lblBonitaetsdatum._value <> Nothing Then If lblBonitaetsdatum._value <> Nothing Then
@@ -2788,7 +2795,7 @@ Public Class usrCntlKundenuebersicht
If cs.checkDateOfLastRequest(company) < lastChecked Then If cs.checkDateOfLastRequest(company) < lastChecked Then
Dim a As MsgBoxResult = MsgBox("Seit der letzen Abfrage (" & lastChecked.ToShortDateString & ") wurde bei Creditsafe keine Änderung gemacht!" & vbNewLine & "Trotzdem Creditreport-Daten aktualisieren?", vbYesNo) Dim a As MsgBoxResult = MsgBox("Seit der letzen Abfrage (" & lastChecked.ToShortDateString & ") wurde bei Creditsafe keine Änderung gemacht!" & vbNewLine & "Trotzdem Creditreport-Daten aktualisieren?", vbYesNo)
If a = vbYes Then If a = vbYes Then
MsgBox(cs.getReport(company, True, pdfObject)) cs.getReport(company, True, pdfObject)
setCreditSafeEntry(company, pdfObject, kdNr) setCreditSafeEntry(company, pdfObject, kdNr)
End If End If
@@ -2799,7 +2806,7 @@ Public Class usrCntlKundenuebersicht
End If End If
Else Else
MsgBox(cs.getReport(company, True, pdfObject)) cs.getReport(company, True, pdfObject)
setCreditSafeEntry(company, pdfObject, kdNr) setCreditSafeEntry(company, pdfObject, kdNr)
End If End If
@@ -2819,6 +2826,10 @@ Public Class usrCntlKundenuebersicht
Private Sub setCreditSafeEntry(company As cCreditSafeAPI.Company, PDF As Byte(), krn As Integer) Private Sub setCreditSafeEntry(company As cCreditSafeAPI.Company, PDF As Byte(), krn As Integer)
If company.csFailure <> "" Then
MsgBox(company.csFailure)
Exit Sub
End If
Dim cBonitaetsauskunft = New VERAG_PROG_ALLGEMEIN.cBonitaetsauskunft Dim cBonitaetsauskunft = New VERAG_PROG_ALLGEMEIN.cBonitaetsauskunft
@@ -2854,12 +2865,12 @@ Public Class usrCntlKundenuebersicht
cBonitaetsauskunft.ba_MaId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID cBonitaetsauskunft.ba_MaId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
cBonitaetsauskunft.ba_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME cBonitaetsauskunft.ba_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
cBonitaetsauskunft.ba_Hoechstkredit = cProgramFunctions.isLeerNothingDbl(company.csMaxCreditAmount) cBonitaetsauskunft.ba_Hoechstkredit = IIf(company.csMaxCreditAmount <> "", CDbl(company.csMaxCreditAmount), 0) 'cProgramFunctions.isLeerNothingDbl(CDbl(company.csMaxCreditAmount), 0)
cBonitaetsauskunft.ba_Bankverbindung = "" cBonitaetsauskunft.ba_Bankverbindung = ""
cBonitaetsauskunft.ba_Zahlungsweise = "" cBonitaetsauskunft.ba_Zahlungsweise = ""
cBonitaetsauskunft.ba_GFName = "" cBonitaetsauskunft.ba_GFName = ""
cBonitaetsauskunft.ba_Sonstiges = "" cBonitaetsauskunft.ba_Sonstiges = ""
cBonitaetsauskunft.ba_GruendundsDatum = company.csDFoundingDate cBonitaetsauskunft.ba_GruendundsDatum = IIf(company.csDFoundingDate > New Date("01.01.1900"), company.csDFoundingDate, "")
If cBonitaetsauskunft.SAVE Then If cBonitaetsauskunft.SAVE Then
SQL.doSQL("UPDATE Kunden SET Bonität='" & cBonitaetsauskunft.ba_BonitaetsIndex & "', Bonitätsdatum='" & cBonitaetsauskunft.ba_Datum & "', Höchstkredit=" & If(cBonitaetsauskunft.ba_Hoechstkredit Is Nothing, "null", "'" & cBonitaetsauskunft.ba_Hoechstkredit & "'") & " WHERE KundenNr='" & cBonitaetsauskunft.ba_KundenNr & "'", "FMZOLL") SQL.doSQL("UPDATE Kunden SET Bonität='" & cBonitaetsauskunft.ba_BonitaetsIndex & "', Bonitätsdatum='" & cBonitaetsauskunft.ba_Datum & "', Höchstkredit=" & If(cBonitaetsauskunft.ba_Hoechstkredit Is Nothing, "null", "'" & cBonitaetsauskunft.ba_Hoechstkredit & "'") & " WHERE KundenNr='" & cBonitaetsauskunft.ba_KundenNr & "'", "FMZOLL")

File diff suppressed because it is too large Load Diff

View File

@@ -353,6 +353,7 @@ Public Class usrcntlKundeBearbeitenFull
cbxSonst_CsvMautbericht.Checked = loadValue(ADRESSE.ExportMautberichtCSV, False) cbxSonst_CsvMautbericht.Checked = loadValue(ADRESSE.ExportMautberichtCSV, False)
cbxSonst_CsvMSE.Checked = loadValue(ADRESSE.MSEExportCSV, False) cbxSonst_CsvMSE.Checked = loadValue(ADRESSE.MSEExportCSV, False)
cbxSonst_CsvUTA.Checked = loadValue(ADRESSE.UTAExportCSV, False) cbxSonst_CsvUTA.Checked = loadValue(ADRESSE.UTAExportCSV, False)
cbxUIDMehrfachverwendung.Checked = KUNDE_ERW.kde_UIDMehrfachverwendung
txtAbf_ZollVmVom.Enabled = cbxAbf_ZollVM.Checked txtAbf_ZollVmVom.Enabled = cbxAbf_ZollVM.Checked
@@ -582,6 +583,7 @@ Public Class usrcntlKundeBearbeitenFull
KUNDE_ERW.AutoFakturierung = cbxAutoFakturierung.Checked KUNDE_ERW.AutoFakturierung = cbxAutoFakturierung.Checked
KUNDE_ERW.Veranlagungskunde = cbxVeranlagungskunde.Checked KUNDE_ERW.Veranlagungskunde = cbxVeranlagungskunde.Checked
KUNDE_ERW.kde_Abrechnung_SendungsdatenAusSTB = cbxSndDatenAusSTB.Checked KUNDE_ERW.kde_Abrechnung_SendungsdatenAusSTB = cbxSndDatenAusSTB.Checked
KUNDE_ERW.kde_UIDMehrfachverwendung = cbxUIDMehrfachverwendung.Checked
KUNDE_ERW.kde_VERAG_INTERFACE_ID = isLeerNothing(txtVERAG_Schnittstellen_ID.Text) KUNDE_ERW.kde_VERAG_INTERFACE_ID = isLeerNothing(txtVERAG_Schnittstellen_ID.Text)
KUNDE_ERW.kde_BesonderheitenNeu = cbxBesonderheitenNEU.Checked KUNDE_ERW.kde_BesonderheitenNeu = cbxBesonderheitenNEU.Checked
@@ -678,7 +680,7 @@ Public Class usrcntlKundeBearbeitenFull
Dim err = "" Dim err = ""
If Not ADRESSE.VALID(err, KUNDE) Then If Not ADRESSE.VALID(err, KUNDE, cbxUIDMehrfachverwendung.Checked) Then
txtERROR.Text = err : Exit Sub txtERROR.Text = err : Exit Sub
End If End If
If Not KUNDE.VALID(err) Then If Not KUNDE.VALID(err) Then

View File

@@ -144,7 +144,7 @@ Public Class cAdressen
Dim kundenNameUID = "" Dim kundenNameUID = ""
Function VALID(ByRef ERROR_TXT, KD) As Boolean Function VALID(ByRef ERROR_TXT As String, KD As cKunde, Optional ByVal UIDMehfachverwendung As Boolean = False) As Boolean
If If(Ordnungsbegriff, "") = "" Then ERROR_TXT = "Bitte geben Sie einen Ordnungsbegriff ein!" : Return False If If(Ordnungsbegriff, "") = "" Then ERROR_TXT = "Bitte geben Sie einen Ordnungsbegriff ein!" : Return False
If If(Name_1, "") = "" Then ERROR_TXT = "Bitte geben Sie den Firmenwortlaut ein!" : Return False If If(Name_1, "") = "" Then ERROR_TXT = "Bitte geben Sie den Firmenwortlaut ein!" : Return False
If If(LandKz, "") = "" Then ERROR_TXT = "Bitte geben Sie das Land an!" : Return False If If(LandKz, "") = "" Then ERROR_TXT = "Bitte geben Sie das Land an!" : Return False
@@ -153,18 +153,18 @@ Public Class cAdressen
If If(Straße, "") = "" Then ERROR_TXT = "Bitte geben Sie die Straße an!" : Return False If If(Straße, "") = "" Then ERROR_TXT = "Bitte geben Sie die Straße an!" : Return False
If Not hasEntry Then If Not hasEntry Then
'Prüfung Neuanlage: Nur Hinweismeldung! -> speichern soll trotzdem möglich sein! 'Prüfung Neuanlage: Nur Hinweismeldung! -> speichern soll trotzdem möglich sein!
If checkUID(KD, kundenNameUID) Then ERROR_TXT = "Die UID Nummer existiert bereits " & kundenNameUID & "!" & vbNewLine & "Bitte prüfen, damit es zu keiner doppelten Erfassung des Kunden kommt." : Return True If checkUID(KD, kundenNameUID, UIDMehfachverwendung) Then ERROR_TXT = "Die UID Nummer existiert bereits " & kundenNameUID & "!" & vbNewLine & "Bitte prüfen, damit es zu keiner doppelten Erfassung des Kunden kommt." : Return False
Else Else
Try Try
Dim kunde = DirectCast(KD, cKunde) Dim kunde = DirectCast(KD, cKunde)
Dim addresseTemp = New cAdressen(kunde.KundenNr) Dim addresseTemp = New cAdressen(kunde.KundenNr)
If Not (addresseTemp.UstIdKz = UstIdKz And addresseTemp.UstIdNr = UstIdNr) Then If Not (addresseTemp.UstIdKz = UstIdKz And addresseTemp.UstIdNr = UstIdNr) Then
'Nur Hinweismeldung! -> speichern soll trotzdem möglich sein! 'Nur Hinweismeldung! -> speichern soll trotzdem möglich sein!
If checkUID(KD, kundenNameUID) Then ERROR_TXT = "Die UID Nummer existiert bereits " & kundenNameUID & "!" & vbNewLine & "Bitte prüfen, damit es zu keiner doppelten Erfassung des Kunden kommt." : Return True If checkUID(KD, kundenNameUID, UIDMehfachverwendung) Then ERROR_TXT = "Die UID Nummer existiert bereits " & kundenNameUID & "!" & vbNewLine & "Bitte prüfen, damit es zu keiner doppelten Erfassung des Kunden kommt." : Return False
End If End If
Catch ex As Exception Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try End Try
@@ -172,8 +172,8 @@ Public Class cAdressen
Return True Return True
End Function End Function
Function checkUID(KD As cKunde, ByRef kundenNameUID As String) As Boolean Function checkUID(KD As cKunde, ByRef kundenNameUID As String, UIDMehfachverwendung As Boolean) As Boolean
If If(UstIdKz, String.Empty) <> String.Empty And If(UstIdNr, String.Empty) <> String.Empty Then If If(UstIdKz, String.Empty) <> String.Empty And If(UstIdNr, String.Empty) <> String.Empty And Not UIDMehfachverwendung Then
kundenNameUID = SQL.getValueTxtBySql("SELECT TOP(1) '(' + Cast([AdressenNr] AS NVARCHAR) +' - '+ Cast([Name 1] AS NVARCHAR) + ')' FROM [Adressen] INNER JOIN Kunden ON KundenNr=AdressenNr WHERE [UstIdKz]='" & UstIdKz & "' AND [UstIdNr]='" & UstIdNr & "' and kunden.FilialenNr='" & KD.FilialenNr & "'", "FMZOLL") kundenNameUID = SQL.getValueTxtBySql("SELECT TOP(1) '(' + Cast([AdressenNr] AS NVARCHAR) +' - '+ Cast([Name 1] AS NVARCHAR) + ')' FROM [Adressen] INNER JOIN Kunden ON KundenNr=AdressenNr WHERE [UstIdKz]='" & UstIdKz & "' AND [UstIdNr]='" & UstIdNr & "' and kunden.FilialenNr='" & KD.FilialenNr & "'", "FMZOLL")
If kundenNameUID IsNot "" Then If kundenNameUID IsNot "" Then
Return True Return True

View File

@@ -72,6 +72,7 @@ Public Class cKundenErweitert
Property kde_FakturierungSR_Details As Boolean = False Property kde_FakturierungSR_Details As Boolean = False
Property kde_Fakturierung_Sprache As Object = Nothing Property kde_Fakturierung_Sprache As Object = Nothing
Property kde_TOBB_KundenNr As Object = Nothing Property kde_TOBB_KundenNr As Object = Nothing
Property kde_UIDMehrfachverwendung As Boolean = False
Property kde_Abrechnung_SendungsdatenAusSTB As Boolean = False Property kde_Abrechnung_SendungsdatenAusSTB As Boolean = False
Dim SQL As New SQL Dim SQL As New SQL
@@ -147,6 +148,7 @@ Public Class cKundenErweitert
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_CreditSaveId", kde_CreditSaveId)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_CreditSaveId", kde_CreditSaveId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Abrechnung_SendungsdatenAusSTB", kde_Abrechnung_SendungsdatenAusSTB)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Abrechnung_SendungsdatenAusSTB", kde_Abrechnung_SendungsdatenAusSTB))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_CreditSaveNo", kde_CreditSaveNo)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_CreditSaveNo", kde_CreditSaveNo))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_UIDMehrfachverwendung", kde_UIDMehrfachverwendung))
Return list Return list
End Function End Function

View File

@@ -206,13 +206,23 @@ Public Class cCreditSafeAPI
End Function End Function
Shared Function getReport(ByRef company As Company, withPDF As Boolean, ByRef bytes As Byte()) As String Shared Function getReport(ByRef company As Company, withPDF As Boolean, ByRef bytes As Byte()) As String
Dim myUrl As String = API_STRING & "/v1/companies/" & company.creditSafeId Dim myUrl As String = API_STRING & "/v1/companies/" & company.creditSafeId & "/"
myUrl &= "/?language=DE" If company.country = "DE" Then
myUrl &= "&?template=full" 'Abfragen für DE benötigen einen Reason-Code
myUrl &= "?customData=de_reason_code::2"
myUrl &= "&?language=DE&?template=full"
Else
myUrl &= "?language=DE&?template=full"
End If
Dim acceptContentType = "application/json" Dim acceptContentType = "application/json"
If withPDF Then If withPDF Then
acceptContentType &= "+pdf" acceptContentType &= "+pdf"
End If End If
Dim jsonRespString = SendGetRequestWithAuthHeader(myUrl, Nothing, acceptContentType, "GET", token) Dim jsonRespString = SendGetRequestWithAuthHeader(myUrl, Nothing, acceptContentType, "GET", token)
Dim json As New Chilkat.JsonObject Dim json As New Chilkat.JsonObject
@@ -244,14 +254,14 @@ Public Class cCreditSafeAPI
If (json.LastMethodSuccess = True) Then If (json.LastMethodSuccess = True) Then
Dim companyIDObj As Chilkat.JsonObject = reportObj.ObjectOf("companyIdentification") Dim companyIDObj As Chilkat.JsonObject = reportObj.ObjectOf("companyIdentification")
If (json.LastMethodSuccess = True) Then If (reportObj.LastMethodSuccess = True) Then
Dim basicInfoObj As Chilkat.JsonObject = companyIDObj.ObjectOf("basicInformation") Dim basicInfoObj As Chilkat.JsonObject = companyIDObj.ObjectOf("basicInformation")
If (json.LastMethodSuccess = True) Then If (companyIDObj.LastMethodSuccess = True) Then
Dim dateTime As New Chilkat.CkDateTime Dim dateTime As New Chilkat.CkDateTime
Dim getAsLocal As Boolean = False Dim getAsLocal As Boolean = False
basicInfoObj.DateOf("companyRegistrationDate", DateTime) basicInfoObj.DateOf("companyRegistrationDate", dateTime)
company.csDFoundingDate = dateTime.GetAsTimestamp(getAsLocal) company.csDFoundingDate = dateTime.GetAsTimestamp(getAsLocal)
Debug.WriteLine(dateTime) Debug.WriteLine(dateTime)
@@ -266,23 +276,23 @@ Public Class cCreditSafeAPI
Dim creditScoreObj As Chilkat.JsonObject = reportObj.ObjectOf("creditScore") Dim creditScoreObj As Chilkat.JsonObject = reportObj.ObjectOf("creditScore")
If (json.LastMethodSuccess = True) Then If (reportObj.LastMethodSuccess = True) Then
Dim creditRatingObj As Chilkat.JsonObject = creditScoreObj.ObjectOf("currentCreditRating") Dim creditRatingObj As Chilkat.JsonObject = creditScoreObj.ObjectOf("currentCreditRating")
If (json.LastMethodSuccess = True) Then If (creditScoreObj.LastMethodSuccess = True) Then
company.csRiskclass = creditRatingObj.StringOf("commonValue") company.csRiskclass = creditRatingObj.StringOf("commonValue")
Dim creditLimitObj As Chilkat.JsonObject = creditRatingObj.ObjectOf("creditLimit") Dim creditLimitObj As Chilkat.JsonObject = creditRatingObj.ObjectOf("creditLimit")
If (json.LastMethodSuccess = True) Then If (creditRatingObj.LastMethodSuccess = True) Then
company.csMaxCreditAmount = creditLimitObj.StringOf("value") company.csMaxCreditAmount = creditLimitObj.StringOf("value")
Else Else
Debug.WriteLine("creditRating object not found.") Debug.WriteLine("creditRating object not found.")
End If End If
Dim providerValueObj As Chilkat.JsonObject = creditRatingObj.ObjectOf("providerValue") Dim providerValueObj As Chilkat.JsonObject = creditRatingObj.ObjectOf("providerValue")
If (json.LastMethodSuccess = True) Then If (creditRatingObj.LastMethodSuccess = True) Then
company.csIndex = providerValueObj.StringOf("value") company.csIndex = providerValueObj.StringOf("value")
Else Else
Debug.WriteLine("providerValue object not found.") Debug.WriteLine("providerValue object not found.")
@@ -301,8 +311,7 @@ Public Class cCreditSafeAPI
End If End If
Else Else
Debug.WriteLine("report object not found.") company.csFailure = json.StringOf("details")
Return "report object not found"
End If End If
If withPDF Then If withPDF Then
@@ -399,9 +408,10 @@ Public Class cCreditSafeAPI
Public Property lastChecked As Date Public Property lastChecked As Date
Public Property csIndex As String Public Property csIndex As String
Public Property csRiskclass As String Public Property csRiskclass As String
Public Property csMaxCreditAmount As Double Public Property csMaxCreditAmount As String
Public Property csDFoundingDate As Date Public Property csDFoundingDate As Date
Public Property csPDF As String Public Property csPDF As String
Public Property csFailure As String
Public Sub New(_name As String, _vatNo As String, _country As String, _creditsafeNo As String, _creditSafeId As String, _lastChecked As Date) Public Sub New(_name As String, _vatNo As String, _country As String, _creditsafeNo As String, _creditSafeId As String, _lastChecked As Date)