Bon, kundenubersicht, etc.
This commit is contained in:
@@ -43,9 +43,10 @@ Public Class frmBonitätsverlauf
|
||||
If KdSearchBox1.KdNr_value > 0 Then
|
||||
With MyDatagridview1
|
||||
Dim sqlstr As String = ""
|
||||
|
||||
Dim KD_ERW As New cKundenErweitert(KdSearchBox1.KdNr_value)
|
||||
|
||||
If KD_ERW.kde_CreditSaveId IsNot Nothing AndAlso KD_ERW.kde_CreditSaveId <> "" AndAlso newView Then
|
||||
If KD_ERW.kde_CreditSaveId IsNot Nothing AndAlso KD_ERW.kde_CreditSaveId <> "" Then
|
||||
|
||||
Dim sqlIndex As String = ""
|
||||
|
||||
@@ -55,13 +56,7 @@ Public Class frmBonitätsverlauf
|
||||
sqlIndex = "ba_CreditSaveBonitaetsIndex"
|
||||
End If
|
||||
|
||||
sqlstr &= "SELECT *
|
||||
FROM (
|
||||
SELECT ba_Datum," & sqlIndex & " ,ba_GruendundsDatum,ba_Umsatz,ba_Mitarbeiter,ba_Hoechstkredit,ba_Sachbearbeiter,ba_Zahlungsweise,ba_GFName,ba_Risikostufe,ba_CreditSaveRisikoklasse,ba_Pruefungstool,ba_GSName,ba_Geschaeftszweck,ba_datenarchivId
|
||||
FROM tblBonitaetsauskunft
|
||||
WHERE ba_KundenNr = " & KdSearchBox1.KdNr_value & "
|
||||
|
||||
UNION ALL
|
||||
Dim sqlNewViewAdd As String = " UNION ALL
|
||||
|
||||
SELECT
|
||||
CAST(e.eventDate AS DATE) AS ba_Datum,MAX(e.crValue) AS " & sqlIndex & ",NULL AS ba_GruendundsDatum,NULL AS ba_Umsatz,NULL AS ba_Mitarbeiter,MAX(e.clValue) AS ba_Hoechstkredit,MAX(e.sachbearbeiter) AS ba_Sachbearbeiter,NULL AS ba_Zahlungsweise,NULL AS ba_GFName,NULL AS ba_Risikostufe,NULL AS ba_CreditSaveRisikoklasse,Source AS ba_Pruefungstool,NULL AS ba_GSName,NULL AS ba_Geschaeftszweck,NULL AS ba_datenarchivId
|
||||
@@ -71,7 +66,7 @@ Public Class frmBonitätsverlauf
|
||||
e.portfolioId,
|
||||
e.eventDate,
|
||||
e.sachbearbeiter,
|
||||
CASE WHEN e.localEventCode = 'CR' OR e.globalEventCode = 'CR' THEN e.newValueCR ELSE 0 END AS crValue,
|
||||
CASE WHEN e.localEventCode = 'CR' OR e.globalEventCode = 'CR' THEN " & IIf(Not KD_ERW.kde_CreditSaveId.ToLower.Contains("at"), "e.newValueCRIndex", "e.newValueCR") & " ELSE 0 END AS crValue,
|
||||
CASE WHEN e.localEventCode = 'CL' OR e.globalEventCode = 'CL' THEN e.newValueCL ELSE 0 END AS clValue,
|
||||
'creditsafe API' AS Source
|
||||
FROM [VERAG].[dbo].[tblCreditsafeEvents] e
|
||||
@@ -81,10 +76,20 @@ Public Class frmBonitätsverlauf
|
||||
AND b.ba_Pruefungstool = 'creditsafe API'
|
||||
AND (e.localEventCode IN ('CL','CR') OR e.globalEventCode IN ('CL','CR'))
|
||||
) e
|
||||
GROUP BY e.companyId, e.portfolioId, CAST(e.eventDate AS DATE), Source
|
||||
) AS Temp
|
||||
GROUP BY e.companyId, e.portfolioId, CAST(e.eventDate AS DATE), Source"
|
||||
|
||||
|
||||
sqlstr &= "SELECT *
|
||||
FROM (
|
||||
SELECT ba_Datum," & sqlIndex & " ,ba_GruendundsDatum,ba_Umsatz,ba_Mitarbeiter,ba_Hoechstkredit,ba_Sachbearbeiter,ba_Zahlungsweise,ba_GFName,ba_Risikostufe,ba_CreditSaveRisikoklasse,ba_Pruefungstool,ba_GSName,ba_Geschaeftszweck,ba_datenarchivId
|
||||
FROM tblBonitaetsauskunft
|
||||
WHERE ba_KundenNr = " & KdSearchBox1.KdNr_value & IIf(newView, sqlNewViewAdd, "") & ") AS Temp
|
||||
ORDER BY Temp.ba_Datum DESC;"
|
||||
|
||||
Else
|
||||
|
||||
sqlstr = "SELECT * FROM [tblBonitaetsauskunft] where ba_KundenNr=" & KdSearchBox1.KdNr_value & " ORDER BY ba_Datum DESC"
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
@@ -3185,6 +3185,7 @@ Public Class usrCntlKundenuebersicht
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
'#wenn PDF und JSON in einem geht, dann folgende Zeile auskommentieren!
|
||||
pdfObject = cs.getPDF(company, failureDesc)
|
||||
|
||||
'cs.AddCompanyToPortfolio(company)
|
||||
@@ -3352,14 +3353,17 @@ Public Class usrCntlKundenuebersicht
|
||||
|
||||
If cs.authenticate() = "200" Then
|
||||
Dim company As New cCreditSafeAPI.Company("", "", "", "", KUNDE_ERW.kde_CreditSaveNo, KUNDE_ERW.kde_CreditSaveId, Nothing, "", "", "", "", "", "", "", "", "", KUNDE.KundenNr)
|
||||
company.lastChecked = IIf(IsDate(lastChecked), lastChecked, Today().AddDays(-1))
|
||||
company.lastChecked = IIf(IsDate(lastChecked), lastChecked, Today().AddDays(-30))
|
||||
|
||||
Dim currentBonID As Integer = SQL.getValueTxtBySql("Select Top(1) isnull(ba_id, -1) FROM [tblBonitaetsauskunft] where ba_KundenNr = " & KUNDE.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, checklastDate)
|
||||
If cs.getCompanyEvents(company, dt, checklastDate, True) = "Error" Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
|
||||
If dt.Rows.Count > 0 Then
|
||||
Dim frm As New Form
|
||||
@@ -3387,7 +3391,14 @@ Public Class usrCntlKundenuebersicht
|
||||
frm.Controls.Add(dgv)
|
||||
frm.StartPosition = FormStartPosition.CenterScreen
|
||||
|
||||
frm.ShowDialog()
|
||||
If frm.ShowDialog().Cancel Then
|
||||
initCreditsave()
|
||||
setKD(kdNr)
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
@@ -219,6 +219,7 @@ Public Class cCreditSafeAPI
|
||||
|
||||
|
||||
If acceptContentType.Contains("application/pdf") Then
|
||||
'If acceptContentType.Contains("application/json+pdf") Or acceptContentType.Contains("application/json") Then
|
||||
|
||||
responseJson = rest.FullRequestNoBodyBd(method, url, pdfData)
|
||||
If (rest.LastMethodSuccess <> True) Then
|
||||
@@ -419,14 +420,20 @@ Public Class cCreditSafeAPI
|
||||
End Function
|
||||
|
||||
|
||||
Shared Function getCompanyEvents(company As Company, ByRef dtEvents As DataTable, Optional checklastChecked As Boolean = False) As String
|
||||
Shared Function getCompanyEvents(company As Company, ByRef dtEvents As DataTable, Optional checklastChecked As Boolean = False, Optional updateKunden As Boolean = False) As String
|
||||
|
||||
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
|
||||
|
||||
'rest.AddQueryParam("from", Today().AddDays(-1))
|
||||
|
||||
Dim failureDesc As String
|
||||
Dim myUrl As String = API_STRING & "/v1/monitoring/companies/" & company.creditSafeId & "/events" & IIf(checklastChecked, "?startDate=" & company.lastChecked, "")
|
||||
Dim myUrl As String = API_STRING & "/v1/monitoring/companies/" & company.creditSafeId & "/events" & IIf(checklastChecked, "?startDate=" & company.lastChecked.ToString("yyyy-MM-ddTHH:mm:ss"), "")
|
||||
Dim jsonRespString = SendGetRequestWithAuthHeader(myUrl, company, "application/json", "GET", token, failureDesc)
|
||||
|
||||
If failureDesc <> "" Then
|
||||
MsgBox(failureDesc)
|
||||
Return "Error"
|
||||
End If
|
||||
|
||||
Dim json As New Chilkat.JsonObject
|
||||
Dim success As Boolean = json.Load(jsonRespString)
|
||||
@@ -464,10 +471,10 @@ Public Class cCreditSafeAPI
|
||||
|
||||
Dim CL As Double = -1
|
||||
Dim CR As Integer = -1
|
||||
Dim CL_Date As Date = company.lastChecked
|
||||
Dim CR_Date As Date = company.lastChecked
|
||||
Dim CL_Datum As Date = company.lastChecked
|
||||
Dim CR_Datum As Date = company.lastChecked
|
||||
|
||||
For i = 0 To 1
|
||||
' For i = 0 To 1
|
||||
|
||||
|
||||
Dim j As Integer = 0
|
||||
@@ -522,6 +529,7 @@ Public Class cCreditSafeAPI
|
||||
cEvent.oldValueCL = cEvent.oldValue
|
||||
ElseIf cEvent.localEventCode = "CR" Or cEvent.globalEventCode = "CR" Then
|
||||
cEvent.oldValueCR = cEvent.oldValue
|
||||
cEvent.oldValueCRIndex = calculatedBonIndexFromBonScore(cEvent.oldValue, cEvent.oldRiskClass)
|
||||
End If
|
||||
|
||||
Else
|
||||
@@ -533,6 +541,7 @@ Public Class cCreditSafeAPI
|
||||
cEvent.oldValue = Regex.Replace(cEvent.oldValue, "\s+", "")
|
||||
cEvent.oldValue = Regex.Replace(cEvent.oldValue, "[^\d]", "")
|
||||
cEvent.oldValueCR = cEvent.oldValue
|
||||
cEvent.oldValueCRIndex = calculatedBonIndexFromBonScore(cEvent.oldValue, cEvent.oldRiskClass)
|
||||
End If
|
||||
|
||||
End If
|
||||
@@ -542,10 +551,11 @@ Public Class cCreditSafeAPI
|
||||
If cEvent.newValue IsNot Nothing AndAlso IsNumeric(cEvent.newValue) AndAlso Not cEvent.newValue.ToString.Contains("€") Then
|
||||
If cEvent.localEventCode = "CL" Or cEvent.globalEventCode = "CL" Then
|
||||
cEvent.newValueCL = cEvent.newValue
|
||||
setCL_CR_Entry(CDate(cEvent.eventDate), "CL", cEvent.newValueCL, CL, CR, CL_Date, CR_Date)
|
||||
setCL_CR_Entry(CDate(cEvent.eventDate), "CL", cEvent.newValueCL, CL, CR, CL_Datum, CR_Datum)
|
||||
ElseIf cEvent.localEventCode = "CR" Or cEvent.globalEventCode = "CR" Then
|
||||
cEvent.newValueCR = cEvent.newValue
|
||||
setCL_CR_Entry(CDate(cEvent.eventDate), "CR", cEvent.newValueCR, CL, CR, CL_Date, CR_Date)
|
||||
cEvent.newValueCRIndex = calculatedBonIndexFromBonScore(cEvent.newValue, cEvent.newRiskClass)
|
||||
setCL_CR_Entry(CDate(cEvent.eventDate), "CR", cEvent.newValueCR, CL, CR, CL_Datum, CR_Datum)
|
||||
End If
|
||||
Else
|
||||
|
||||
@@ -553,13 +563,14 @@ Public Class cCreditSafeAPI
|
||||
cEvent.newValue = Regex.Replace(cEvent.newValue, "\s+", "")
|
||||
cEvent.newValue = Regex.Replace(cEvent.newValue, "[^\d]", "")
|
||||
cEvent.newValueCL = cEvent.newValue
|
||||
setCL_CR_Entry(CDate(cEvent.eventDate), "CL", cEvent.newValueCL, CL, CR, CL_Date, CR_Date)
|
||||
setCL_CR_Entry(CDate(cEvent.eventDate), "CL", cEvent.newValueCL, CL, CR, CL_Datum, CR_Datum)
|
||||
|
||||
ElseIf cEvent.localEventCode = "CR" Or cEvent.globalEventCode = "CR" Then
|
||||
cEvent.newValue = Regex.Replace(cEvent.newValue, "\s+", "")
|
||||
cEvent.newValue = Regex.Replace(cEvent.newValue, "[^\d]", "")
|
||||
cEvent.newValueCR = cEvent.newValue
|
||||
setCL_CR_Entry(CDate(cEvent.eventDate), "CR", cEvent.newValueCR, CL, CR, CL_Date, CR_Date)
|
||||
cEvent.newValueCRIndex = calculatedBonIndexFromBonScore(cEvent.newValue, cEvent.newRiskClass)
|
||||
setCL_CR_Entry(CDate(cEvent.eventDate), "CR", cEvent.newValueCR, CL, CR, CL_Datum, CR_Datum)
|
||||
End If
|
||||
|
||||
End If
|
||||
@@ -573,7 +584,7 @@ Public Class cCreditSafeAPI
|
||||
|
||||
j = j + 1
|
||||
End While
|
||||
Next
|
||||
'Next
|
||||
|
||||
|
||||
|
||||
@@ -586,19 +597,49 @@ Public Class cCreditSafeAPI
|
||||
'viewEvents = New DataView(dtEvents, "localEventCode IN ('CL','CR') or e.globalEventCode IN ('CL','CR')", "", DataViewRowState.CurrentRows)
|
||||
End If
|
||||
|
||||
If company.kdNr > 0 Then
|
||||
If company.kdNr > 0 AndAlso updateKunden Then
|
||||
Dim KUNDE As New cKunde(company.kdNr)
|
||||
|
||||
If KUNDE.Bonitätsdatum <= CL_Date Or KUNDE.Bonitätsdatum <= CR_Date Then
|
||||
If KUNDE.Bonitätsdatum <= CL_Datum Or KUNDE.Bonitätsdatum <= CR_Datum Then
|
||||
|
||||
If KUNDE.Bonität <> CR Then
|
||||
KUNDE.Bonität = CR
|
||||
KUNDE.Bonitätsdatum = CDate(CR_Date)
|
||||
Dim Index As Double = -1
|
||||
Dim ADR As New cAdressen(KUNDE.KundenNr)
|
||||
Dim riskClass As String = ""
|
||||
Dim riskClassChanged As Boolean = False
|
||||
|
||||
If Not (ADR.LandKz = "AT" Or ADR.LandKz = "A") Then 'bei nicht österr. den Index nehmen, sonst den Score
|
||||
Index = calculatedBonIndexFromBonScore(CR, riskClass)
|
||||
Else
|
||||
calculatedBonIndexFromBonScore(CR, riskClass)
|
||||
End If
|
||||
|
||||
If KUNDE.Höchstkredit <> CL Then
|
||||
If Index <> -1 Then
|
||||
If KUNDE.Bonität <> Index Then
|
||||
KUNDE.Bonität = Index
|
||||
riskClassChanged = True
|
||||
KUNDE.Bonitätsdatum = CDate(CR_Datum)
|
||||
End If
|
||||
Else
|
||||
If KUNDE.Bonität <> CR AndAlso CR <> 0 Then
|
||||
KUNDE.Bonität = CR
|
||||
riskClassChanged = True
|
||||
KUNDE.Bonitätsdatum = CDate(CR_Datum)
|
||||
End If
|
||||
|
||||
If KUNDE.Höchstkredit <> CL AndAlso CL <> -1 Then
|
||||
KUNDE.Höchstkredit = CL
|
||||
KUNDE.Bonitätsdatum = CDate(CL_Date)
|
||||
riskClassChanged = True
|
||||
If KUNDE.Bonitätsdatum <= CDate(CL_Datum) Then
|
||||
KUNDE.Bonitätsdatum = CDate(CL_Datum)
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If riskClassChanged Then
|
||||
Dim KUNDE_ERW As New cKundenErweitert(KUNDE.KundenNr)
|
||||
KUNDE_ERW.kde_CreditSaveBonitaetsklasse = riskClass
|
||||
KUNDE_ERW.SAVE()
|
||||
End If
|
||||
|
||||
KUNDE.SAVE()
|
||||
@@ -613,14 +654,14 @@ Public Class cCreditSafeAPI
|
||||
|
||||
End Function
|
||||
|
||||
Private Shared Sub setCL_CR_Entry(cs_date As Date, type As String, value As Object, CL As Double, CR As Integer, CL_Date As Date, CR_Date As Date)
|
||||
Private Shared Sub setCL_CR_Entry(ByVal cs_date As Date, ByVal type As String, ByRef value As Object, ByRef CL As Double, ByRef CR As Integer, ByRef CL_Datum As Date, ByRef CR_Datum As Date)
|
||||
|
||||
Select Case type
|
||||
|
||||
Case "CR"
|
||||
Dim saveCR As Boolean = False
|
||||
If CR_Date <= cs_date Then
|
||||
cs_date = CR_Date
|
||||
If CR_Datum <= cs_date Then
|
||||
CR_Datum = cs_date
|
||||
saveCR = True
|
||||
End If
|
||||
|
||||
@@ -628,8 +669,8 @@ Public Class cCreditSafeAPI
|
||||
|
||||
Case "CL"
|
||||
Dim saveCL As Boolean = False
|
||||
If CL_Date <= cs_date Then
|
||||
cs_date = CL_Date
|
||||
If CL_Datum <= cs_date Then
|
||||
CL_Datum = cs_date
|
||||
saveCL = True
|
||||
End If
|
||||
|
||||
@@ -975,6 +1016,124 @@ Public Class cCreditSafeAPI
|
||||
|
||||
End Function
|
||||
|
||||
Shared Function calculatedBonIndexFromBonScore(score As Integer, ByRef riskClass As String) As Double
|
||||
|
||||
Select Case score
|
||||
Case 91 To 100
|
||||
riskClass = "A"
|
||||
Case 81 To 90
|
||||
riskClass = "A"
|
||||
Case 71 To 80
|
||||
riskClass = "B"
|
||||
Case 61 To 70
|
||||
riskClass = "B"
|
||||
Case 51 To 60
|
||||
riskClass = "C"
|
||||
Case 35 To 50
|
||||
riskClass = "C"
|
||||
Case 25 To 34
|
||||
riskClass = "D"
|
||||
Case 15 To 24
|
||||
riskClass = "D"
|
||||
Case 1 To 14
|
||||
riskClass = "D"
|
||||
Case Else
|
||||
riskClass = "E"
|
||||
End Select
|
||||
|
||||
|
||||
Select Case score
|
||||
Case 0
|
||||
Return 6
|
||||
Case 1 To 10
|
||||
Return 5
|
||||
Case 11 To 12
|
||||
Return 4.9
|
||||
Case 13 To 14
|
||||
Return 4.8
|
||||
Case 15 To 16
|
||||
Return 4.7
|
||||
Case 17 To 18
|
||||
Return 4.6
|
||||
Case 19 To 20
|
||||
Return 4.5
|
||||
Case 21 To 22
|
||||
Return 4.4
|
||||
Case 23 To 25
|
||||
Return 4.3
|
||||
Case 26 To 28
|
||||
Return 4.2
|
||||
Case 29 To 31
|
||||
Return 4.1
|
||||
Case 32 To 34
|
||||
Return 4
|
||||
Case 35 To 38
|
||||
Return 3.9
|
||||
Case 39 To 41
|
||||
Return 3.8
|
||||
Case 42 To 44
|
||||
Return 3.7
|
||||
Case 45 To 47
|
||||
Return 3.6
|
||||
Case 48 To 50
|
||||
Return 3.5
|
||||
Case 51 To 52
|
||||
Return 3.4
|
||||
Case 53 To 54
|
||||
Return 3.3
|
||||
Case 55 To 56
|
||||
Return 3.2
|
||||
Case 57 To 58
|
||||
Return 3.1
|
||||
Case 59 To 60
|
||||
Return 3
|
||||
Case 61 To 62
|
||||
Return 2.9
|
||||
Case 63 To 64
|
||||
Return 2.8
|
||||
Case 65 To 66
|
||||
Return 2.7
|
||||
Case 67 To 68
|
||||
Return 2.6
|
||||
Case 69 To 70
|
||||
Return 2.5
|
||||
Case 71 To 72
|
||||
Return 2.4
|
||||
Case 73 To 74
|
||||
Return 2.3
|
||||
Case 75 To 76
|
||||
Return 2.2
|
||||
Case 77 To 78
|
||||
Return 2.1
|
||||
Case 79 To 80
|
||||
Return 2
|
||||
Case 81 To 82
|
||||
Return 1.9
|
||||
Case 83 To 84
|
||||
Return 1.8
|
||||
Case 85 To 86
|
||||
Return 1.7
|
||||
Case 87 To 88
|
||||
Return 1.6
|
||||
Case 89 To 90
|
||||
Return 1.5
|
||||
Case 91 To 92
|
||||
Return 1.4
|
||||
Case 93 To 94
|
||||
Return 1.3
|
||||
Case 95 To 96
|
||||
Return 1.2
|
||||
Case 97 To 98
|
||||
Return 1.1
|
||||
Case 99 To 100
|
||||
Return 1
|
||||
Case Else
|
||||
Return 6
|
||||
End Select
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
|
||||
Public Class CreditSafeUser
|
||||
Public Property username As String
|
||||
@@ -1067,6 +1226,10 @@ Public Class cCreditSafeAPI
|
||||
Property oldValueCL As Object = Nothing
|
||||
Property newValueCL As Object = Nothing
|
||||
Property kundenNr As Integer
|
||||
Property newValueCRIndex As Object = Nothing
|
||||
Property oldValueCRIndex As Object = Nothing
|
||||
Property oldRiskClass As String
|
||||
Property newRiskClass As String
|
||||
|
||||
Public hasEntry = False
|
||||
|
||||
@@ -1095,6 +1258,8 @@ Public Class cCreditSafeAPI
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("oldValueCL", oldValueCL))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("newValueCL", newValueCL))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kundenNr", kundenNr))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("newValueCRIndex", newValueCRIndex))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("oldValueCRIndex", oldValueCRIndex))
|
||||
|
||||
|
||||
Return list
|
||||
|
||||
Reference in New Issue
Block a user