From 2905d7ac0f900ae2f1a3a3508ceadc7033cc0278 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 3 Sep 2025 10:13:36 +0200 Subject: [PATCH] credtisafe, etc. --- SDL/USTV/usrCntlUSTV.vb | 4 +- SDL/kunden/frmBonitätsverlauf.vb | 98 ++++++------------- SDL/kunden/usrCntlKundenuebersicht.vb | 64 +++++------- VERAG_PROG_ALLGEMEIN/AVISO/cDatenbankAVISO.vb | 2 +- .../Classes/cKundenErweitert.vb | 5 + .../Creditsafe/cCreditSafeAPI.vb | 8 +- .../Schnittstellen/cSyska_Interface.vb | 2 +- 7 files changed, 68 insertions(+), 115 deletions(-) diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb index 0fde37b4..1e28ab5e 100644 --- a/SDL/USTV/usrCntlUSTV.vb +++ b/SDL/USTV/usrCntlUSTV.vb @@ -305,14 +305,14 @@ Public Class usrCntlUSTV init() cboJahr.Items.Clear() cboJahr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) - For i = 0 To 10 + For i = 0 To Now().Year - 2005 cboJahr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(Now.Year - i, Now.Year - i)) Next cboJahr.changeItem(Now.Year - 1) cboJahrBis.Items.Clear() cboJahrBis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) - For i = 0 To 10 + For i = 0 To Now().Year - 2005 cboJahrBis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(Now.Year - i, Now.Year - i)) Next cboJahrBis.changeItem(Now.Year) diff --git a/SDL/kunden/frmBonitätsverlauf.vb b/SDL/kunden/frmBonitätsverlauf.vb index 9ea0832f..61cd80d6 100644 --- a/SDL/kunden/frmBonitätsverlauf.vb +++ b/SDL/kunden/frmBonitätsverlauf.vb @@ -50,80 +50,44 @@ Public Class frmBonitätsverlauf Dim sqlIndex As String = "" If KD_ERW.kde_CreditSaveId.ToLower.Contains("at") Then - sqlIndex = ",ba_CreditSaveBonitaetsScore" + sqlIndex = "ba_CreditSaveBonitaetsScore" Else - sqlIndex = ",ba_CreditSaveBonitaetsIndex" + sqlIndex = "ba_CreditSaveBonitaetsIndex" End If - - - sqlstr &= " -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 - - -SELECT - cast(e.eventDate as Date), - MAX(e.crValue) AS TotalCR, - NULL, - NULL, - NULL, - MAX(e.clValue) AS TotalCL, - MAX(sachbearbeiter), - NULL, - NULL, - NULL, - NULL, - Source, - NULL, - NULL, - NULL -FROM (SELECT - e.companyId, - 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 = 'CL' OR e.globalEventCode ='CL' THEN e.newValueCL ELSE 0 END AS clValue, - 'creditsafe API' AS Source - FROM [VERAG].[dbo].[tblCreditsafeEvents] e - INNER JOIN [VERAG].[dbo].[tblBonitaetsauskunft] b - ON e.bonId = b.ba_id - WHERE b.ba_KundenNr = " & KdSearchBox1.KdNr_value & " - 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 - order by ba_Datum desc" - - Else - - sqlstr &= "SELECT ba_Datum - ,ba_Sachbearbeiter - ,ba_BonitaetsIndex - ,ba_CreditSaveBonitaetsIndex - ,ba_CreditSaveBonitaetsScore - ,ba_GruendundsDatum - ,ba_Umsatz - ,ba_Mitarbeiter - ,ba_Hoechstkredit - ,ba_Zahlungsweise - ,ba_GFName - ,ba_Risikostufe - ,ba_CreditSaveRisikoklasse - ,ba_Pruefungstool - ,ba_GSName - ,ba_Geschaeftszweck - ,ba_datenarchivId - FROM tblBonitaetsauskunft where ba_KundenNr=" & KdSearchBox1.KdNr_value & " ORDER BY ba_Datum DESC" + 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 + + 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 + FROM ( + SELECT + e.companyId, + 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 = 'CL' OR e.globalEventCode = 'CL' THEN e.newValueCL ELSE 0 END AS clValue, + 'creditsafe API' AS Source + FROM [VERAG].[dbo].[tblCreditsafeEvents] e + INNER JOIN [VERAG].[dbo].[tblBonitaetsauskunft] b + ON e.bonId = b.ba_id + WHERE b.ba_KundenNr = " & KdSearchBox1.KdNr_value & " + 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 + ORDER BY Temp.ba_Datum DESC;" End If - .SET_SQL(sqlstr, "FMZOLL") .LOAD() diff --git a/SDL/kunden/usrCntlKundenuebersicht.vb b/SDL/kunden/usrCntlKundenuebersicht.vb index 6c18ec12..4be5956b 100644 --- a/SDL/kunden/usrCntlKundenuebersicht.vb +++ b/SDL/kunden/usrCntlKundenuebersicht.vb @@ -2850,40 +2850,44 @@ Public Class usrCntlKundenuebersicht Dim lastChecked As Date = Date.ParseExact(lblBonitaetsdatum._value, "dd.MM.yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo) company.lastChecked = IIf(IsDate(lastChecked), lastChecked, Today().AddDays(-1)) - cs.AddCompanyToPortfolio(company) + If Not KUNDE_ERW.kde_CSPortfolioAdded Then + Dim AddCompValue As String = cs.AddCompanyToPortfolio(company) + If AddCompValue = "Conflict" Or AddCompValue = "OK" Or AddCompValue Is Nothing Then SQL.doSQL("Update tblKundenErweitert set kde_CSPortfolioAdded = 1 where kde_CreditSaveId = '" & KUNDE_ERW.kde_CreditSaveId & "'", "FMZOLL") + End If + If lastChecked = Today Then - Dim bonaus = VERAG_PROG_ALLGEMEIN.cBonitaetsauskunft.LOADByKdNrDate(kdNr, Today) - If bonaus IsNot Nothing Then - If bonaus.ba_Pruefungstool = "creditsafe API" AndAlso bonaus.ba_datenarchivId > -1 Then - MsgBox("Heute wurde bereits eine erfolgreiche Abfrage durchgeführt" & vbNewLine & "Vorgang wird abgebrochen!") - Cursor = Cursors.Default - btnCreditsafe.Enabled = True - Exit Sub + Dim bonaus = VERAG_PROG_ALLGEMEIN.cBonitaetsauskunft.LOADByKdNrDate(kdNr, Today) + If bonaus IsNot Nothing Then + If bonaus.ba_Pruefungstool = "creditsafe API" AndAlso bonaus.ba_datenarchivId > -1 Then + MsgBox("Heute wurde bereits eine erfolgreiche Abfrage durchgeführt" & vbNewLine & "Vorgang wird abgebrochen!") + Cursor = Cursors.Default + btnCreditsafe.Enabled = True + Exit Sub + End If End If End If - End If - 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) - If a = vbYes 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) + If a = vbYes Then - setCreditsafereportEntry(cs, company, True) 'doppelte Abfragen mitprotokollieren + setCreditsafereportEntry(cs, company, True) 'doppelte Abfragen mitprotokollieren + + End If + + Else + setCreditsafereportEntry(cs, company) End If - Else + setCreditsafereportEntry(cs, company) - End If - Else - - setCreditsafereportEntry(cs, company) - End If @@ -3370,28 +3374,6 @@ Public Class usrCntlKundenuebersicht If dt.Columns.Contains("createdDate") Then dt.Columns("createdDate").ColumnMapping = MappingType.Hidden End If - If checklastDate Then - - 'Update KUNDEN - - '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") - - ' company.csBonID = cBonitaetsauskunft.ba_id - - ' Dim KDERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(kdNr) - ' KDERW.kde_CreditSaveBonitaetsIndex = cBonitaetsauskunft.ba_CreditSaveBonitaetsIndex - ' KDERW.kde_CreditSaveBonitaetsScore = cBonitaetsauskunft.ba_CreditSaveBonitaetsScore - ' KDERW.kde_CreditSaveBonitaetsklasse = cBonitaetsauskunft.ba_CreditSaveRisikoklasse - ' KDERW.kde_BonitaetsStufe = cBonitaetsauskunft.ba_Risikostufe - ' KDERW.SAVE() - ' updateDatenarchivId() - 'End If - - - - End If - dgv.DataSource = dt If dgv IsNot Nothing Then diff --git a/VERAG_PROG_ALLGEMEIN/AVISO/cDatenbankAVISO.vb b/VERAG_PROG_ALLGEMEIN/AVISO/cDatenbankAVISO.vb index 6f5a622d..1eef2876 100644 --- a/VERAG_PROG_ALLGEMEIN/AVISO/cDatenbankAVISO.vb +++ b/VERAG_PROG_ALLGEMEIN/AVISO/cDatenbankAVISO.vb @@ -1572,7 +1572,7 @@ Public Class cAvisoDAL id = (Convert.ToInt32(cmd.ExecuteScalar())) ' MsgBox(id) Else - cmd.ExecuteNonQuery() + If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then cmd.ExecuteNonQuery() End If Catch ex As SqlException diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cKundenErweitert.vb b/VERAG_PROG_ALLGEMEIN/Classes/cKundenErweitert.vb index 911525cf..914bea2e 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cKundenErweitert.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cKundenErweitert.vb @@ -99,6 +99,10 @@ Public Class cKundenErweitert Property kde_BezFIBU As Object = Nothing Property kde_Kopfsammelrechnung As Boolean = False + Property kde_CSPortfolioAdded As Boolean = False + + + @@ -200,6 +204,7 @@ Public Class cKundenErweitert list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Erstattungsart", kde_Erstattungsart)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_BezFIBU", kde_BezFIBU)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Kopfsammelrechnung", kde_Kopfsammelrechnung)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_CSPortfolioAdded", kde_CSPortfolioAdded)) Return list End Function diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/Creditsafe/cCreditSafeAPI.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/Creditsafe/cCreditSafeAPI.vb index bf795503..8d6238ed 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/Creditsafe/cCreditSafeAPI.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/Creditsafe/cCreditSafeAPI.vb @@ -511,7 +511,7 @@ Public Class cCreditSafeAPI cEvent.eventDate = R("eventDate") cEvent.createdDate = R("createdDate") cEvent.importDate = Now() - cEvent.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + cEvent.Sachbearbeiter = IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME Is Nothing, "AUTO", VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) cEvent.oldValue = R("oldValue") cEvent.newValue = R("newValue") @@ -568,6 +568,7 @@ Public Class cCreditSafeAPI cEvent.bonId = company.csBonID End If + cEvent.kundenNr = company.kdNr cEvent.SAVE() j = j + 1 @@ -604,7 +605,7 @@ Public Class cCreditSafeAPI End If - End If + End If @@ -1065,7 +1066,7 @@ Public Class cCreditSafeAPI Property newValueCR As Object = Nothing Property oldValueCL As Object = Nothing Property newValueCL As Object = Nothing - + Property kundenNr As Integer Public hasEntry = False @@ -1093,6 +1094,7 @@ Public Class cCreditSafeAPI list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("newValueCR", newValueCR)) 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)) Return list diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb index f98c23fa..3d747fea 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb @@ -1488,7 +1488,7 @@ Public Class cSyska_Interface For Each r_OP In dt_OP.Rows Try - If KdNr > 1 Then OP_ID_CNT = SQL.getValueTxtBySql("SELECT isnull(MAX(OP_ID),0)+1 FROM [Offene Posten]", "FMZOLL") 'Wenn ein Kunde geändert wird, wird die höchste ID ermittelt + If KdNr > 1 Then OP_ID_CNT = SQL.getValueTxtBySql("SELECT isnull(MAX(OP_ID),0)+1 FROM [Offene Posten] AND Firma_ID = '" & Firma_ID & "'", "FMZOLL") 'Wenn ein Kunde geändert wird, wird die höchste ID ermittelt --> höchste ID des OPS der FIRMA!!!! Dim OP As New VERAG_PROG_ALLGEMEIN.cOffene_Posten()