creditsafeAPI Monitoring, Kundenuebersicht, Zugferd, etc.

This commit is contained in:
2025-08-29 16:42:15 +02:00
parent fcb243e9a9
commit 1de5f5b8b5
4 changed files with 139 additions and 14 deletions

View File

@@ -2163,14 +2163,16 @@ Public Class cFakturierung
'Summe aller Rechnungspositions-Nettobeträge der Rechnung
Dim lineTotalAmont = sumNetto
'Der Gesamtbetrag der Umsatzsteuer für die Rechnung,
'IIf(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, Math.Round(Convert.ToDecimal(RECHNUNG.SteuerpflichtigerGesamtbetrag) / (100 + steuerProzenFaktor) * steuerProzenFaktor, 2), 0)
Dim taxTotalAmount = IIf(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, Math.Round(Convert.ToDecimal(RECHNUNG.SteuerpflichtigerGesamtbetrag) / (100) * steuerProzenFaktor, 2), 0)
'IIf(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, Math.Round(Convert.ToDecimal(RECHNUNG.SteuerpflichtigerGesamtbetrag) / (100 + steuerProzenFaktor) * steuerProzenFaktor, 2), 0) ??????????????????
Dim taxTotalAmount = IIf(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, Math.Round(Convert.ToDecimal(RECHNUNG.SteuerpflichtigerGesamtbetrag) / (100 + steuerProzenFaktor) * steuerProzenFaktor, 2), 0)
' Die Gesamtsumme der Rechnung ohne Umsatzsteuer ' RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0
Dim taxBasisAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0)
Dim taxBasisAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0 - taxTotalAmount)
'Der Gesamtbetrag der Rechnung mit Umsatzsteuer
Dim grandTotalAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + taxTotalAmount)
'Dim grandTotalAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + taxTotalAmount)
Dim grandTotalAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag)
'Der ausstehende Betrag, um dessen Zahlung gebeten wird. Dieser Betrag ist der Rechnungsgesamtbetrag einschließlich Umsatzsteuer abzüglich des im Voraus gezahlten Betrages.Im Falle einer vollständig beglichenen Rechnung ist dieser Betrag gleich null. Der Betrag kann negativ sein; In diesem Fall schuldet der Verkäufer dem Käufer den Betrag
Dim duePayableAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + taxTotalAmount)
'Dim duePayableAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + taxTotalAmount)
Dim duePayableAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag)
desc.SetTotals(
lineTotalAmount:=Convert.ToDecimal(lineTotalAmont),
@@ -2468,9 +2470,11 @@ Public Class cFakturierung
Dim taxBasisAmount = Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei + Gesamt_RG_BetragSteuerpflichtig + 0 - 0)
'Der Gesamtbetrag der Rechnung mit Umsatzsteuer
Dim grandTotalAmount = Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei + Gesamt_RG_BetragSteuerpflichtig + taxTotalAmount)
'Der ausstehende Betrag, um dessen Zahlung gebeten wird. Dieser Betrag ist der Rechnungsgesamtbetrag einschließlich Umsatzsteuer abzüglich des im Voraus gezahlten Betrages.Im Falle einer vollständig beglichenen Rechnung ist dieser Betrag gleich null. Der Betrag kann negativ sein; In diesem Fall schuldet der Verkäufer dem Käufer den Betrag
Dim duePayableAmount = Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei + Gesamt_RG_BetragSteuerpflichtig + taxTotalAmount)
desc.SetTotals(
lineTotalAmount:=Convert.ToDecimal(lineTotalAmont),
chargeTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Zuschläge der Dokumentenebene

View File

@@ -262,6 +262,7 @@ Partial Class usrCntlKundenuebersicht
Me.btnOP = New System.Windows.Forms.Button()
Me.ContextMenuStrip5 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ToolStripMenuItem12 = New System.Windows.Forms.ToolStripMenuItem()
Me.PictureBox7 = New System.Windows.Forms.PictureBox()
Me.cntxtAddVM.SuspendLayout()
Me.tbWeitereKundenDetails.SuspendLayout()
Me.tbOfferten.SuspendLayout()
@@ -314,6 +315,7 @@ Partial Class usrCntlKundenuebersicht
Me.ContextMenuStrip2.SuspendLayout()
Me.ContextMenuStrip4.SuspendLayout()
Me.ContextMenuStrip5.SuspendLayout()
CType(Me.PictureBox7, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'cntxtAddVM
@@ -1402,6 +1404,7 @@ Partial Class usrCntlKundenuebersicht
'
Me.Panel4.BackColor = System.Drawing.Color.WhiteSmoke
Me.Panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Panel4.Controls.Add(Me.PictureBox7)
Me.Panel4.Controls.Add(Me.PictureBox6)
Me.Panel4.Controls.Add(Me.FlatButton2)
Me.Panel4.Controls.Add(Me.btnCreditsafe)
@@ -1425,7 +1428,7 @@ Partial Class usrCntlKundenuebersicht
Me.PictureBox6.BackgroundImage = Global.SDL.My.Resources.Resources.fragezeichen
Me.PictureBox6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.PictureBox6.Cursor = System.Windows.Forms.Cursors.Hand
Me.PictureBox6.Location = New System.Drawing.Point(639, 4)
Me.PictureBox6.Location = New System.Drawing.Point(308, 2)
Me.PictureBox6.Name = "PictureBox6"
Me.PictureBox6.Size = New System.Drawing.Size(18, 19)
Me.PictureBox6.TabIndex = 132
@@ -3427,6 +3430,18 @@ Partial Class usrCntlKundenuebersicht
Me.ToolStripMenuItem12.Size = New System.Drawing.Size(150, 30)
Me.ToolStripMenuItem12.Text = "Schnelldruck"
'
'PictureBox7
'
Me.PictureBox7.BackgroundImage = Global.SDL.My.Resources.Resources.warning2
Me.PictureBox7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.PictureBox7.Cursor = System.Windows.Forms.Cursors.Hand
Me.PictureBox7.Location = New System.Drawing.Point(638, 3)
Me.PictureBox7.Name = "PictureBox7"
Me.PictureBox7.Size = New System.Drawing.Size(18, 19)
Me.PictureBox7.TabIndex = 133
Me.PictureBox7.TabStop = False
Me.PictureBox7.Visible = False
'
'usrCntlKundenuebersicht
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -3516,6 +3531,7 @@ Partial Class usrCntlKundenuebersicht
Me.ContextMenuStrip2.ResumeLayout(False)
Me.ContextMenuStrip4.ResumeLayout(False)
Me.ContextMenuStrip5.ResumeLayout(False)
CType(Me.PictureBox7, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -3747,4 +3763,5 @@ Partial Class usrCntlKundenuebersicht
Friend WithEvents EORI As DataGridViewTextBoxColumn
Friend WithEvents NL As DataGridViewTextBoxColumn
Friend WithEvents BIN As DataGridViewTextBoxColumn
Friend WithEvents PictureBox7 As PictureBox
End Class

View File

@@ -671,6 +671,9 @@ Public Class usrCntlKundenuebersicht
Button3.BackgroundImage = My.Resources.fragezeichen
' Button4.Visible = False
' Button5.Visible = False
PictureBox7.Visible = IIf(KUNDE_ERW.kde_CreditSaveId <> "", True, False)
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name,, "Es ist ein Fehler beim Laden der Firmendaten - Allgemein aufgetreten!")
End Try
@@ -3104,6 +3107,8 @@ Public Class usrCntlKundenuebersicht
pdfObject = cs.getPDF(company, failureDesc)
cs.AddCompanyToPortfolio(company)
cs.getSubscriptionCountries(dt)
If dt.Rows.Count > 0 AndAlso dt.AsEnumerable.Any(Function(c) company.country = c.Item("countryIso2").ToString) Then
@@ -3257,15 +3262,57 @@ Public Class usrCntlKundenuebersicht
End If
End Sub
Private Sub lblBonitaet_TextChanged(sender As Object, e As EventArgs) Handles lblBonitaet.TextChanged
End Sub
Private Sub PictureBox7_Click(sender As Object, e As EventArgs) Handles PictureBox7.Click
Private Sub lblBonitaetRisikostufe_TextChanged(sender As Object, e As EventArgs) Handles lblBonitaetRisikostufe.TextChanged
Dim lastChecked As Date = Date.ParseExact(lblBonitaetsdatum._value, "dd.MM.yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo)
End Sub
Private Sub Label39_Click(sender As Object, e As EventArgs) Handles Label39.Click
Dim cs = New cCreditSafeAPI("creditsafe")
If cs.authenticate() = "200" Then
Dim company As New cCreditSafeAPI.Company("", "", "", "", KUNDE_ERW.kde_CreditSaveNo, KUNDE_ERW.kde_CreditSaveId, Nothing, "", "", "", "", "", "", "", "", "")
company.lastChecked = IIf(IsDate(lastChecked), lastChecked, Today().AddDays(-1))
Dim dt As New DataTable()
cs.getCompanyEvents(company, dt)
If dt.Rows.Count > 0 Then
Dim frm As New Form
Dim dgv As New DataGridView()
If dt.Columns.Contains("eventid") Then dt.Columns("eventid").ColumnMapping = MappingType.Hidden
If dt.Columns.Contains("companyId") Then dt.Columns("companyId").ColumnMapping = MappingType.Hidden
If dt.Columns.Contains("portfolioId") Then dt.Columns("portfolioId").ColumnMapping = MappingType.Hidden
If dt.Columns.Contains("localEventCode") Then dt.Columns("localEventCode").ColumnMapping = MappingType.Hidden
If dt.Columns.Contains("globalEventCode") Then dt.Columns("globalEventCode").ColumnMapping = MappingType.Hidden
If dt.Columns.Contains("createdDate") Then dt.Columns("createdDate").ColumnMapping = MappingType.Hidden
If dgv.Columns.Contains("newValue") Then dgv.Columns("newValue").HeaderText = "Nachher"
If dgv.Columns.Contains("oldValue") Then dgv.Columns("oldValue").HeaderText = "Vorher"
If dgv.Columns.Contains("eventDate") Then dgv.Columns("eventDate").HeaderText = "Geändert am"
dgv.DataSource = dt
If dgv IsNot Nothing Then
frm.Size = New Size(750, 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
Else
MsgBox("Keine Creditsafe-Änderungen seit " & lastChecked.ToShortDateString)
End If
End If
End Sub
End Class

View File

@@ -96,7 +96,7 @@ Public Class cCreditSafeAPI
Shared Function SendGetRequestWithAuthHeader(url As String, company As Company, acceptContentType As String, method As String, authenticationToken As String, ByRef failureDesc As String) As String
Shared Function SendGetRequestWithAuthHeader(url As String, company As Company, acceptContentType As String, method As String, authenticationToken As String, ByRef failureDesc As String, Optional isMonitoring As Boolean = False) As String
Try
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
@@ -117,7 +117,7 @@ Public Class cCreditSafeAPI
rest.ClearAllQueryParams()
If company IsNot Nothing Then
If company IsNot Nothing AndAlso Not isMonitoring Then
setSearchParam(rest, company)
@@ -131,6 +131,42 @@ Public Class cCreditSafeAPI
Dim responseJson As String
Dim pdfData As New Chilkat.BinData
If isMonitoring Then
Dim json As New Chilkat.JsonObject
success = json.UpdateString("id", company.creditSafeId)
success = json.UpdateString("personalReference", "VERAG AG")
success = json.UpdateString("freeText", "hinzugefügt am " & Today.ToShortDateString)
success = json.UpdateString("personalLimit", "")
Debug.WriteLine(json.Emit())
Dim sbRequestBody As New Chilkat.StringBuilder
json.EmitSb(sbRequestBody)
Dim sbResponseBody As New Chilkat.StringBuilder
success = rest.FullRequestSb(method, url, sbRequestBody, sbResponseBody)
If (success <> True) Then
Debug.WriteLine(rest.LastErrorText)
failureDesc = rest.LastErrorText
Return failureDesc
Else
If (rest.ResponseStatusCode <> 200) Then
failureDesc = rest.ResponseStatusText & IIf(responseJson <> "", vbNewLine & responseJson, "")
Return failureDesc
Else
Return responseJson
End If
End If
End If
If acceptContentType.Contains("application/pdf") Then
responseJson = rest.FullRequestNoBodyBd(method, url, pdfData)
@@ -193,6 +229,10 @@ Public Class cCreditSafeAPI
End Function
Shared Function authenticate(Optional username As String = "", Optional password As String = "") As String
Dim myUri As String = API_STRING & "/v1/authenticate"
@@ -208,6 +248,16 @@ Public Class cCreditSafeAPI
End Function
Shared Function AddCompanyToPortfolio(company As Company, Optional PortfolioID As String = "1662419") As String
Dim myUri As String = API_STRING & "/v1/monitoring/portfolios/" & PortfolioID & "/companies" 'Default
Dim jsonRespString = SendGetRequestWithAuthHeader(myUri, company, "application/json", "POST", token, "", True)
Return jsonRespString
End Function
Shared Function searchCompanies(company As Company, ByRef dataTable As DataTable) As String
@@ -377,8 +427,8 @@ Public Class cCreditSafeAPI
R("ruleName") = compObj.StringOf("ruleName")
R("localEventCode") = compObj.StringOf("localEventCode")
R("globalEventCode") = compObj.StringOf("globalEventCode")
R("newValue") = compObj.StringOf("newValue")
R("oldValue") = compObj.StringOf("oldValue")
R("newValue") = compObj.StringOf("newValue")
R("eventDate") = dateTime.GetAsTimestamp(getAsLocal)
R("createdDate") = dateTime.GetAsTimestamp(getAsLocal)
dtEvents.Rows.Add(R)
@@ -387,6 +437,13 @@ Public Class cCreditSafeAPI
End While
Next
If dtEvents.Rows.Count > 1 Then
dtEvents.DefaultView.Sort = "eventDate ASC"
dtEvents = dtEvents.DefaultView.ToTable
End If
Return "Anzahl gefundener Datensätze: " & numCompanies
End Function