Files
SDL/SDL/kunden/frmBonitätsverlauf.vb
2025-09-24 12:12:03 +02:00

235 lines
10 KiB
VB.net

Imports VERAG_PROG_ALLGEMEIN
Public Class frmBonitätsverlauf
Public kdnr = -1
Public newView As Boolean = False
Sub New(kdnr)
InitializeComponent()
Me.kdnr = kdnr
End Sub
Sub New(kdnr As Integer, PARENT_FORMULARMANAGER As frmFormulare)
InitializeComponent()
Me.kdnr = kdnr
Me.PARENT_FORMULARMANAGER = PARENT_FORMULARMANAGER
End Sub
Sub New(kdnr As Integer, PARENT_USRCNTL As usrcntlCreditreformBoniAuskunft)
InitializeComponent()
Me.kdnr = kdnr
Me.PARENT_USRCNTL = PARENT_USRCNTL
End Sub
Public PARENT_FORMULARMANAGER As frmFormulare = Nothing
Public PARENT_USRCNTL As usrcntlCreditreformBoniAuskunft = Nothing
Private Sub frmBonitätsverlauf_Load(sender As Object, e As EventArgs) Handles Me.Load
KdSearchBox1.initKdBox(Me)
AddHandler KdSearchBox1.PropertyChanged, Sub()
initDGV()
End Sub
KdSearchBox1.KdNr = kdnr
End Sub
Sub initDGV()
Try
Me.Cursor = Cursors.WaitCursor
MyDatagridview1.Columns.Clear()
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 <> "" Then
Dim sqlIndex As String = ""
If KD_ERW.kde_CreditSaveId.ToLower.Contains("at") Then
sqlIndex = "ba_CreditSaveBonitaetsScore"
Else
sqlIndex = "ba_CreditSaveBonitaetsIndex"
End If
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,MAX(e.newRiskClass) 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,
e.newRiskClass,
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
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"
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
.SET_SQL(sqlstr, "FMZOLL")
.LOAD()
.RowHeadersVisible = False
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.Columns("ba_datenarchivId").Visible = False
.Columns("ba_Umsatz").DefaultCellStyle.Format = "C2"
.Columns("ba_Hoechstkredit").DefaultCellStyle.Format = "C2"
Dim c As New DataGridViewImageColumn
c.Name = "PDF" : c.HeaderText = "Bericht"
c.Image = My.Resources.pdf_gray : c.ImageLayout = DataGridViewImageCellLayout.Zoom
c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White
c.DefaultCellStyle.Tag = "PDF anzeigen"
.Columns.Add(c)
For Each r As DataGridViewRow In .Rows
If r.Cells("ba_datenarchivId").Value IsNot DBNull.Value AndAlso CInt(r.Cells("ba_datenarchivId").Value) > 0 Then
DirectCast(r.Cells("PDF"), DataGridViewImageCell).Value = My.Resources.pdf
End If
Next
For Each cc As DataGridViewColumn In .Columns
cc.HeaderText = cc.Name.Replace("ba_", "")
Next
If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
End With
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Me.Cursor = Cursors.Default
End Sub
Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click
Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDGV_NEW(MyDatagridview1, False)
Me.Cursor = Cursors.Default
End Sub
Private Sub FlatButton7_Click(sender As Object, e As EventArgs) Handles FlatButton7.Click
initDGV()
End Sub
Private Sub MyDatagridview1_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles MyDatagridview1.CellDoubleClick
If e.RowIndex < 0 Then Exit Sub
If MyDatagridview1.Columns(e.ColumnIndex).Name = "PDF" Then
openPDF(sender, e)
Else
If PARENT_USRCNTL IsNot Nothing Then
PARENT_USRCNTL.LoadValues(MyDatagridview1.Rows(e.RowIndex).Cells("ba_id").Value)
Me.Close()
ElseIf PARENT_FORMULARMANAGER IsNot Nothing Then
Dim found = False
For Each c In PARENT_FORMULARMANAGER.MyFlowLayoutPanel1.Controls
If c.GetType.ToString = GetType(usrcntlCreditreformBoniAuskunft).ToString Then
DirectCast(c, usrcntlCreditreformBoniAuskunft).LoadValues(MyDatagridview1.Rows(e.RowIndex).Cells("ba_id").Value)
found = True
End If
Next
If found Then Me.Close() : Exit Sub
Else
Dim f As New frmFormulare
f.Show()
f.addForm("Boniteatsauskunft", {MyDatagridview1.Rows(e.RowIndex).Cells("ba_id").Value})
End If
End If
End Sub
Private Sub openPDF(sender As Object, e As DataGridViewCellEventArgs)
If MyDatagridview1.Rows(e.RowIndex).Cells("ba_datenarchivId").Value IsNot DBNull.Value AndAlso CInt(MyDatagridview1.Rows(e.RowIndex).Cells("ba_datenarchivId").Value) > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(MyDatagridview1.Rows(e.RowIndex).Cells("ba_datenarchivId").Value)
DS.OPEN_SINGLE(True)
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnCreditsafeDetails.Click
Try
Dim SQL_String = "SELECT
[createdDate] as Datum
,[ruleName] as Bezeichnung
,[globalEventCode] as Code
,[oldValue] as alterWert
,[newValue] as neuerWert
,[sachbearbeiter] as Sachbearbeiter
,[oldValueCL] as KreditlimitAlt
,[newValueCL] as KreditlimitNeu
,[oldValueCR] as BonRateAlt
,[newValueCR] as BonRateNeu
,[newValueCRIndex] as BonIndexNeu
,[oldValueCRIndex] as BonIndexAlt
,[oldRiskClass] as RiskoklasseAlt
,[newRiskClass] as RiskoklasseNeu
FROM [VERAG].[dbo].[tblCreditsafeEvents] where [kundenNr] = " & KdSearchBox1.KdNr & " order by eventDate desc"
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim frm As New Form
frm.Text = "Creditsafe-Details"
Dim dgv As New DataGridView()
Dim dt As DataTable = SQL.loadDgvBySql(SQL_String, "FMZOLL")
dgv.DataSource = dt
If dgv IsNot Nothing Then
frm.Size = New Size(1500, 500)
dgv.Size = New Size(frm.Size.Width - 10, frm.Size.Height - 10)
dgv.Dock = DockStyle.Fill
dgv.Anchor = AnchorStyles.Left
dgv.Anchor = AnchorStyles.Top
dgv.ReadOnly = True
frm.Controls.Add(dgv)
frm.StartPosition = FormStartPosition.CenterScreen
frm.ShowDialog()
End If
Catch ex As System.Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
End Class