Änderungen Rechnungsnummernveragbe, Fiskalkunden, Creditsafe-API Fehlerausgabe verbessert, Gesamtsicherheitem (Feature für Refrerenzbetragänderungen)

This commit is contained in:
2023-07-05 13:48:53 +02:00
parent 08c6039246
commit 3926ec909f
7 changed files with 86 additions and 20 deletions

View File

@@ -29,6 +29,7 @@ Public Class cAufschubKonten
Sub New(brgakto_gs_standort As String)
Me.brgakto_gs_standort = brgakto_gs_standort
LOADStandort()
brgakto_betrag = getReferenzbetrag(Today)
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
@@ -172,7 +173,8 @@ Public Class cAufschubKonten
Return SQL.doSQL("Update [tblBrgAufschubKonten] Set brgakto_gs_aktSaldo = CAST(REPLACE('" & brgakto_gs_aktSaldo & "' ,',','.')AS decimal(18,2)) WHERE brgakto_gs_standort = '" & brgakto_gs_standort & "'", "ADMIN")
End Function
Public Function CalcSaldo() As String
Public Function CalcSaldo(Optional dtDate As DataTable = Nothing) As String
Dim SaldoString As String =
"select
@@ -189,18 +191,32 @@ Public Class cAufschubKonten
when gsp_art = 'Open' then (gsp_sicherheitsbetrag * -1)
when gsp_art = 'Close' then gsp_sicherheitsbetrag
end)
as SicherheitsSaldoPositionen from [tblGesamtsicherheitsPositionen] Where gsp_gsid IN (select gs_gsId from [tblGesamtsicherheit] where gs_standort = '" & brgakto_gs_standort & "' ))"
as SicherheitsSaldoPositionen from [tblGesamtsicherheitsPositionen] Where gsp_gsid IN (select gs_gsId from [tblGesamtsicherheit] where gs_standort = '" & brgakto_gs_standort & "' And ISNULL(gs_ReferenzAenderung,0) = 0 ))"
Dim dt As New DataTable
Dim mrn As Double = 0
dt = SQL.loadDgvBySql(SaldoString, "AVISO", 100, True)
If dt.Rows(0).Item(0).ToString.Length > 0 Then
mrn = dt.Rows(0).Item(0)
End If
Dim mrn As Double = 0
dt = SQL.loadDgvBySql(SaldoString, "AVISO", 100, True)
If dt.Rows(0).Item(0).ToString.Length > 0 Then
mrn = dt.Rows(0).Item(0)
End If
brgakto_gs_aktSaldo = brgakto_betrag + mrn
brgakto_gs_aktSaldo = getReferenzbetrag(Today) + mrn
updateSaldo()
Return brgakto_gs_aktSaldo
End Function
Public Function getReferenzbetrag(nowDate As Date) As Double
Try
Return SQL.getValueTxtBySql("select TOP (1) brgarefb_refbetrag from [tblBrgAufschubReferenzberaege] where [brgarefb_gsid]='" & brgakto_id & "' and brgarefb_gs_aktiv = 1 And [brgarefb_gueltig_ab] <= '" & nowDate & "' order by [brgarefb_gueltig_ab] desc", "ADMIN",,,,)
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Function
End Class

View File

@@ -4,8 +4,6 @@ Imports System.Data.SqlClient
Public Class cRechnungsnummern
Property SpeditionsbuchNr As String = "" 'FIRMA!
Property Buchungsjahr As String = ""
Property VonRechnungsNr As Integer = -1
Property BisRechnungsNr As Integer = -1
Property LfdRechnungsNr As Integer = 0
@@ -58,9 +56,9 @@ Public Class cRechnungsnummern
LfdRechnungsNr = VonRechnungsNr
'-------------------------------------
LOADANDUPDATE(SpeditionsbuchNr, Buchungsjahr, LfdRechnungsNr, VonRechnungsNr, BisRechnungsNr)
'LOAD(SpeditionsbuchNr, Buchungsjahr)
LOAD(SpeditionsbuchNr, Buchungsjahr)
End Sub
@@ -108,7 +106,7 @@ Public Class cRechnungsnummern
Dim RG_NR As New VERAG_PROG_ALLGEMEIN.cRechnungsnummern(SpeditionsbuchNr, Buchungsjahr)
aktuelleRechnungsnummer = RG_NR.LfdRechnungsNr ' --> Die in der DB gespeicherte RgNr wird verwendet
CHECK_RGNR_NEW = RG_NR.LfdRechnungsNr ' --> Die in der DB gespeicherte RgNr wird verwendet
RG_NR.INCREASE_RGNR() ' ..... und gelcih wieder hcoh zählen
'RG_NR.INCREASE_RGNR() ' ..... und gelcih wieder hcoh zählen
System.Threading.Thread.Sleep(50) ' nur, um abzuwarten falls parallel eine Nr vergeben wird
End While
@@ -162,6 +160,42 @@ Public Class cRechnungsnummern
' Return Nothing
End Sub
Public Sub LOADANDUPDATE(ByVal SpeditionsbuchNr As String, ByVal Buchungsjahr As String, ByRef LfdRechnungsNr As Integer, ByVal VonRechnungsNr As String, ByVal BisRechnungsNr As String)
Try
Using conn As SqlConnection = cSqlDb.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(
"BEGIN TRAN IF EXISTS (SELECT * FROM Rechnungsnummern WITH(updlock,serializable) WHERE [SpeditionsbuchNr]=@SpeditionsbuchNr AND Buchungsjahr=@Buchungsjahr)
BEGIN
UPDATE dbo.Rechnungsnummern SET LfdRechnungsNr= (SELECT [LfdRechnungsNr] as newNr FROM dbo.Rechnungsnummern WHERE [SpeditionsbuchNr]=@Speditionsbuchnr AND Buchungsjahr=@Buchungsjahr) + 1 WHERE [SpeditionsbuchNr]=@Speditionsbuchnr AND Buchungsjahr=@Buchungsjahr
SELECT [LfdRechnungsNr] FROM dbo.Rechnungsnummern WHERE [SpeditionsbuchNr]=@Speditionsbuchnr AND Buchungsjahr=@Buchungsjahr
END;
else
BEGIN
INSERT INTO [Rechnungsnummern](SpeditionsbuchNr,[Buchungsjahr],[VonRechnungsNr],[BisRechnungsNr],[LfdRechnungsNr])
OUTPUT @LfdRechnungsNr AS [LfdRechnungsNr]
VALUES (@SpeditionsbuchNr, @Buchungsjahr,@VonRechnungsNr,@BisRechnungsNr,@LfdRechnungsNr)
END
COMMIT TRAN", conn)
cmd.Parameters.AddWithValue("@SpeditionsbuchNr", SpeditionsbuchNr)
cmd.Parameters.AddWithValue("@Buchungsjahr", Buchungsjahr)
cmd.Parameters.AddWithValue("@LfdRechnungsNr", LfdRechnungsNr)
cmd.Parameters.AddWithValue("@VonRechnungsNr", VonRechnungsNr)
cmd.Parameters.AddWithValue("@BisRechnungsNr", BisRechnungsNr)
Dim dr = cmd.ExecuteScalar()
LfdRechnungsNr = dr
End Using
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
' Return Nothing
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.MyListItem2)

View File

@@ -124,7 +124,7 @@ Public Class cCreditSafeAPI
Return failureDesc
Else
If (rest.ResponseStatusCode <> 200) Then
For i = 0 To 4 'Versuche das PDF 5x abzufragen (funktioniert ab und zu nicht).
For i = 0 To 15 'Versuche das PDF 16x abzufragen (funktioniert ab und zu nicht).
responseJson = rest.FullRequestNoBodyBd(method, url, pdfData)
If rest.ResponseStatusCode = 200 Then Exit For
Thread.Sleep(500)
@@ -293,9 +293,12 @@ Public Class cCreditSafeAPI
'Abfragen für DE benötigen einen Reason-Code
myUrl &= "?customData=de_reason_code::3"
myUrl &= "&?language=DE"
Else
ElseIf company.country = "AT" Then
myUrl &= "?language=DE"
Else
myUrl &= "?language=EN"
End If
Dim acceptContentType = "application/json"
@@ -465,7 +468,16 @@ Public Class cCreditSafeAPI
Dim failureDesc As String = ""
Dim jsonRespString = SendGetRequestWithAuthHeader(myUrl, Nothing, acceptContentType, "GET", token, failureDesc)
If failureDesc <> "" Then Return Nothing
If failureDesc <> "" Then
Dim jsonFailure As New Chilkat.JsonObject
Dim success As Boolean = jsonFailure.Load(jsonRespString)
If (success <> True) Then
failure = jsonFailure.LastErrorText
Return Nothing
End If
failure = jsonFailure.StringOf("details")
Return Nothing
End If
If jsonRespString IsNot Nothing Then
Dim success = pdfData2.AppendEncoded(jsonRespString, "base64")

View File

@@ -23,8 +23,8 @@ Public Class cSicherheiten
Property gs_warenort As String
Property gs_zollsatz As Object
Property gs_avisoId As Integer
Property gs_isRundungsdiff As Boolean
Property gs_ReferenzAenderung As Boolean
Public hasEntry = False
@@ -68,6 +68,7 @@ Public Class cSicherheiten
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_zollsatz", gs_zollsatz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_avisoId", gs_avisoId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_isRundungsdiff", gs_isRundungsdiff))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_ReferenzAenderung", gs_ReferenzAenderung))
Return list
End Function