This commit is contained in:
2026-09-16 09:01:59 +02:00
parent aa2c495147
commit b4c0ed0c66
16 changed files with 1038 additions and 758 deletions

View File

@@ -284,6 +284,8 @@ Public Class EABeleg
Property EC_daid As Integer = 0 Property EC_daid As Integer = 0
Property FT_ReceiptReference As Object = Nothing Property FT_ReceiptReference As Object = Nothing
Property FT_ReceiptReference_Storno As Object = Nothing Property FT_ReceiptReference_Storno As Object = Nothing
Property FT_MissingSignature As Boolean = False
Property FT_setMissingSignatureFailed As Boolean = False
Property POS As New List(Of EABelegPositionen) Property POS As New List(Of EABelegPositionen)
@@ -364,8 +366,13 @@ Public Class EABeleg
Me.ECZahlungsPerAPI = cSqlDb.checkNullReturnValue(dr.Item("ECZahlungsPerAPI"), Nothing) Me.ECZahlungsPerAPI = cSqlDb.checkNullReturnValue(dr.Item("ECZahlungsPerAPI"), Nothing)
Me.ECTerminalreturnCode = cSqlDb.checkNullReturnValue(dr.Item("ECTerminalreturnCode"), Nothing) Me.ECTerminalreturnCode = cSqlDb.checkNullReturnValue(dr.Item("ECTerminalreturnCode"), Nothing)
Me.EC_daid = cSqlDb.checkNullReturnValue(dr.Item("EC_daid"), Nothing) Me.EC_daid = cSqlDb.checkNullReturnValue(dr.Item("EC_daid"), Nothing)
'Fiskaltrust
Me.FT_ReceiptReference = cSqlDb.checkNullReturnValue(dr.Item("FT_ReceiptReference"), Nothing) Me.FT_ReceiptReference = cSqlDb.checkNullReturnValue(dr.Item("FT_ReceiptReference"), Nothing)
Me.FT_ReceiptReference_Storno = cSqlDb.checkNullReturnValue(dr.Item("FT_ReceiptReference_Storno"), Nothing) Me.FT_ReceiptReference_Storno = cSqlDb.checkNullReturnValue(dr.Item("FT_ReceiptReference_Storno"), Nothing)
Me.FT_MissingSignature = cSqlDb.checkNullReturnValue(dr.Item("FT_MissingSignature"), False)
Me.FT_MissingSignature = cSqlDb.checkNullReturnValue(dr.Item("FT_setMissingSignatureFailed"), False)
If loadPosAswell Then POS = LOAD_POS_List(Mandant, Niederlassung, Benutzer, BelegNr, BelegDat) If loadPosAswell Then POS = LOAD_POS_List(Mandant, Niederlassung, Benutzer, BelegNr, BelegDat)
' MsgBox(POS.Count) ' MsgBox(POS.Count)
@@ -551,8 +558,12 @@ Public Class EABeleg
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("ECZahlungsPerAPI", ECZahlungsPerAPI)) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("ECZahlungsPerAPI", ECZahlungsPerAPI))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("ECTerminalreturnCode", ECTerminalreturnCode)) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("ECTerminalreturnCode", ECTerminalreturnCode))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("EC_daid", EC_daid)) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("EC_daid", EC_daid))
'FISKALTRUST
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_ReceiptReference", FT_ReceiptReference)) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_ReceiptReference", FT_ReceiptReference))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_ReceiptReference_Storno", FT_ReceiptReference_Storno)) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_ReceiptReference_Storno", FT_ReceiptReference_Storno))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_MissingSignature", FT_MissingSignature))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_setMissingSignatureFailed", FT_setMissingSignatureFailed))
'For Each p As System.Reflection.PropertyInfo In Me.GetType().GetProperties() 'For Each p As System.Reflection.PropertyInfo In Me.GetType().GetProperties()
'If p.CanRead Then 'If p.CanRead Then

View File

@@ -10,6 +10,7 @@ Public Class FtReceiptCases
' Test-/Nullbeleg ' Test-/Nullbeleg
Public Const ZeroReceipt As Long = &H4445000000000002L Public Const ZeroReceipt As Long = &H4445000000000002L
' Kassenlebenszyklus
Public Const InitialOperation As Long = &H4445000000000003L Public Const InitialOperation As Long = &H4445000000000003L
Public Const OutOfOperation As Long = &H4445000000000004L Public Const OutOfOperation As Long = &H4445000000000004L
@@ -22,6 +23,12 @@ Public Class FtReceiptCases
Public Const ImplicitTransaction As Long = &H100000000L Public Const ImplicitTransaction As Long = &H100000000L
Public Const ReversalReceipt As Long = &H40000L Public Const ReversalReceipt As Long = &H40000L
Public Const TrainingReceipt As Long = &H20000L Public Const TrainingReceipt As Long = &H20000L
' aktiviert den Late-Signing-Modus
Public Const FailedReceipt As Long = &H10000L
' Receipt-Request:
' bereits verarbeiteten Beleg anhand cbReceiptReference abrufen
Public Const ReceiptRequest As Long = &H800000000000L
End Class End Class
@@ -44,6 +51,17 @@ Public Class FtJournalType
End Class End Class
Public Class ReceiptCaseIntern
Public Const VERKAUF As String = "Verkauf"
Public Const EINGANG As String = "Eingang"
Public Const AUSGANG As String = "Ausgang"
Public Const WIEDERHOLUNG As String = "Retry"
End Class
Public Class FtPayItemCases Public Class FtPayItemCases
'DE 'DE
@@ -71,25 +89,31 @@ Public Class cFiskaltrustClient_chilkat
Private ReadOnly _cashboxId As String Private ReadOnly _cashboxId As String
Private ReadOnly _accessToken As String Private ReadOnly _accessToken As String
Private ReadOnly _country As String Private ReadOnly _country As String
Private ReadOnly _isFiskaltrust As Boolean = False
Public Sub New(baseUrl As String, cashboxId As String, accessToken As String, country As String) Public Sub New(baseUrl As String, cashboxId As String, accessToken As String, country As String)
_baseUrl = baseUrl.TrimEnd("/"c) _baseUrl = baseUrl.TrimEnd("/"c)
_cashboxId = cashboxId _cashboxId = cashboxId
_accessToken = accessToken _accessToken = accessToken
_country = country _country = country
If _cashboxId <> "" AndAlso baseUrl <> "" AndAlso _accessToken <> "" AndAlso _country <> "" Then
_isFiskaltrust = True
Else
_isFiskaltrust = False
End If
End Sub End Sub
Public Function SignReceipt(amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), kindOfPayment As String, posSystemId As String, typOfReceiptCase As String) As String Public Function isFiskaltrust() As Boolean
Return _isFiskaltrust
Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, typOfReceiptCase, "")
Return SendChilkat(GetEndpoint("payment"), payload.Emit())
End Function End Function
Public Function SignReceipt_test(posSystemId As String) As String
Public Function SignReceipt_test(posSystemId As String, TSEisOnline As Boolean) As String
Dim LIST = New List(Of EABelegPositionen) Dim LIST = New List(Of EABelegPositionen)
Dim p = New EABelegPositionen Dim p = New EABelegPositionen
@@ -110,81 +134,134 @@ Public Class cFiskaltrustClient_chilkat
Dim vat = 0 Dim vat = 0
Dim POS = LIST Dim POS = LIST
Dim kindOfPayment = "Cash" Dim kindOfPayment = "Cash"
Try
Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, "Verkauf", "", TSEisOnline)
Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, "Verkauf", "") Return SendChilkat(GetEndpoint("payment"), payload.Emit())
Catch ex As Exception
Return SendChilkat(GetEndpoint("payment"), payload.Emit()) VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function End Function
Public Function ChancelReceipt(reference As String, amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), kindOfPayment As String, posSystemId As String) As String
Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, "Storno", reference)
Return SendChilkat(GetEndpoint("storno"), payload.Emit()) Public Function ChancelReceipt_test(reference As String, posSystemId As String, TSEisOnline As Boolean) As String
Try
Dim LIST = New List(Of EABelegPositionen)
Dim p = New EABelegPositionen
p.Mandant = "VERA"
p.Niederlassung = "SUB"
p.Benutzer = 74
p.BelegDat = Now
p.BelegNr = 1
p.PreislistenNr = 1
p.PreislistenPos = 1
p.LeistungsNr = 300
p.LeistungsBez = "TEST"
p.Preis = 10
p.Anzahl = 1
LIST.Add(p)
Dim amount = 100
Dim vat = 0
Dim POS = LIST
Dim kindOfPayment = "Cash"
Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, "Storno", reference, TSEisOnline)
Return SendChilkat(GetEndpoint("storno"), payload.Emit())
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function End Function
Public Function ChancelReceipt_test(reference As String, posSystemId As String) As String Public Function SignReceipt(amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), kindOfPayment As String, posSystemId As String, typOfReceiptCase As String, reference As String, TESisOnline As Boolean) As String
Try
Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, typOfReceiptCase, reference, TESisOnline)
Dim LIST = New List(Of EABelegPositionen) Return SendChilkat(GetEndpoint("payment"), payload.Emit())
Dim p = New EABelegPositionen Catch ex As Exception
p.Mandant = "VERA" VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
p.Niederlassung = "SUB" End Try
p.Benutzer = 74
p.BelegDat = Now
p.BelegNr = 1
p.PreislistenNr = 1
p.PreislistenPos = 1
p.LeistungsNr = 300
p.LeistungsBez = "TEST"
p.Preis = 10
p.Anzahl = 1
LIST.Add(p)
Dim amount = 100
Dim vat = 0
Dim POS = LIST
Dim kindOfPayment = "Cash"
Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, "Storno", reference)
Return SendChilkat(GetEndpoint("storno"), payload.Emit())
End Function End Function
Public Function SignNullReceipt(posSystemId As String) As String Public Function SignNullReceipt(posSystemId As String) As String
Return SendChilkat(GetEndpoint("payment"), BuildPayloadNullReceipt(posSystemId, _country).Emit()) Try
Return SendChilkat(GetEndpoint("payment"), BuildPayloadNullReceipt(posSystemId, _country).Emit())
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function
Public Function ChancelReceipt(reference As String, amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), kindOfPayment As String, posSystemId As String, TSEisOnline As Boolean) As String
Try
Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, "Storno", reference, TSEisOnline)
Return SendChilkat(GetEndpoint("storno"), payload.Emit())
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function End Function
Public Function SignOutOfOrderReceipt(posSystemId As String) As String Public Function SignOutOfOrderReceipt(posSystemId As String) As String
Return SendChilkat(GetEndpoint("payment"), BuildPayloadOutOfOperationReceipt(posSystemId, _country).Emit()) Try
Return SendChilkat(GetEndpoint("payment"), BuildPayloadOutOfOperationReceipt(posSystemId, _country).Emit())
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function End Function
Public Function SignOInitialOperationReceipt(posSystemId As String) As String Public Function SignTempOutOfOrderReceipt(posSystemId As String) As String
Return SendChilkat(GetEndpoint("payment"), BuildPayloadInitialOperationReceipt(posSystemId, _country).Emit()) Try
Return SendChilkat(GetEndpoint("payment"), BuildPayloadOutOfOperationReceipt(posSystemId, _country).Emit())
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function
Public Function SignInitialOperationReceipt(posSystemId As String) As String
Try
Return SendChilkat(GetEndpoint("payment"), BuildPayloadInitialOperationReceipt(posSystemId, _country).Emit())
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function End Function
Public Function SignClosingReceipt(receiptType As String, posSystemId As String, kind As String) As String Public Function SignClosingReceipt(receiptType As String, posSystemId As String, kind As String) As String
Return SendChilkat(GetEndpoint("payment"), BuildPayloadClosingReceipt(receiptType, posSystemId, kind).Emit()) Try
Return SendChilkat(GetEndpoint("payment"), BuildPayloadClosingReceipt(receiptType, posSystemId, kind).Emit())
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function End Function
Public Function Echo(kassenName As String) As String Public Function Echo(kassenName As String) As String
Try
Dim json As New JsonObject()
json.UpdateString("Message", kassenName & " - VERBINDUNG OK")
Dim json As New JsonObject() Return SendChilkat(GetEndpoint("test"), json.Emit())
json.UpdateString("Message", kassenName & " - VERBINDUNG OK") Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Return SendChilkat(GetEndpoint("test"), json.Emit()) End Try
End Function End Function
Public Function Journal(ftJournalType As Integer) As String Public Function Journal(ftJournalType As Integer) As String
Try
Dim endpoint = GetEndpoint("journal") Dim endpoint = GetEndpoint("journal")
endpoint &= "?type=" & ftJournalType endpoint &= "?type=" & ftJournalType
Return SendChilkat(endpoint, "") Return SendChilkat(endpoint, "")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function End Function
@@ -289,9 +366,12 @@ Public Class cFiskaltrustClient_chilkat
Throw lastEx Throw lastEx
End Function End Function
Private Function BuildPayloadReceipt(amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), kindOfPayment As String, posSystemId As String, _receiptCase As String, _reference As String) As JsonObject Private Function BuildPayloadReceipt(amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), kindOfPayment As String, posSystemId As String, _receiptCase As String, _reference As String, TSEisOnline As Boolean) As JsonObject
Dim json As New JsonObject() Dim json As New JsonObject()
@@ -312,49 +392,64 @@ Public Class cFiskaltrustClient_chilkat
If _receiptCase = "Storno" Then If _receiptCase = "Storno" Then
' New reference for the Storno receipt
json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString()) json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString())
' Reference to the original receipt from the database
json.UpdateString("cbPreviousReceiptReference", _reference) json.UpdateString("cbPreviousReceiptReference", _reference)
' Storno = POS receipt + reversal + implicit transaction If TSEisOnline Then
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.ImplicitTransaction receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.ImplicitTransaction
Else
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.FailedReceipt Or FtReceiptCases.ImplicitTransaction
End If
ElseIf _receiptCase = "Retry" Then
'Receipt-Request nach Kommunikationsfehler
'dieselbe cbReceiptReference verwenden
'dieselben cbChargeItems und cbPayItems mitsenden
'optional dieselbe cbTerminalID
json.UpdateString("cbReceiptReference", _reference)
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReceiptRequest
Else Else
' New reference for a normal receipt ' New reference for a normal receipt
json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString()) json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString())
If TSEisOnline Then
' Normal sale receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ImplicitTransaction
Else
'Select Case _receiptCase receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.FailedReceipt Or FtReceiptCases.ImplicitTransaction
' Case "Eingang" End If
' receipCase = FtReceiptCases.CashIn Or FtReceiptCases.ImplicitTransaction
' Case "Ausgang"
' receipCase = FtReceiptCases.CashOut Or FtReceiptCases.ImplicitTransaction
' Case Else
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ImplicitTransaction
'End Select
End If End If
json.UpdateString("ftReceiptCase", receipCase.ToString()) json.UpdateString("ftReceiptCase", receipCase.ToString())
Dim chargeItems = json.AppendArray("cbChargeItems") Dim chargeItems = json.AppendArray("cbChargeItems")
For Each p In POS For Each p In POS
If chargeItems.AddObjectAt(-1) Then If chargeItems.AddObjectAt(-1) Then
Dim quantity As Double = p.Anzahl
Dim unitPrice As Double = p.Preis
Dim lineAmount As Double = p.Betrag
'bei Storno negieren (BEI DE nur einen Teil)!
'To cancel a receipt, resend it with this flag added to the ftReceiptCase and inverse the cbPayItems OR cbChargeItems (This is not the same behavior as described in the general part — in Germany, this flag requires only one of cbPayItems or cbChargeItems to be negative, and both must not be negative at the same time)'
'https://docs.fiskaltrust.cloud/docs/poscreators/middleware-doc/germany/reference-tables/ftreceiptcase
If _receiptCase = "Storno" Then
quantity = quantity * -1
lineAmount = lineAmount * -1
End If
Dim item As Chilkat.JsonObject = chargeItems.ObjectAt(chargeItems.Size - 1) Dim item As Chilkat.JsonObject = chargeItems.ObjectAt(chargeItems.Size - 1)
item.UpdateInt("Quantity", p.Anzahl) item.UpdateInt("Quantity", quantity)
item.UpdateNumber("Amount", p.Preis.ToString().Replace(",", ".")) item.UpdateNumber("Amount", lineAmount)
item.UpdateNumber("VATRate", vat.ToString().Replace(",", ".")) item.UpdateNumber("VATRate", vat)
item.UpdateString("Description", p.LeistungsBez) item.UpdateString("Description", p.LeistungsBez)
Dim ChargeItemCase As Long Dim ChargeItemCase As Long
@@ -430,8 +525,6 @@ Public Class cFiskaltrustClient_chilkat
json.UpdateString("cbUser", "Admin") json.UpdateString("cbUser", "Admin")
json.UpdateString("ftReceiptCaseData", "") json.UpdateString("ftReceiptCaseData", "")
Dim chargeItems = json.AppendArray("cbChargeItems") Dim chargeItems = json.AppendArray("cbChargeItems")
Dim payItems = json.AppendArray("cbPayItems") Dim payItems = json.AppendArray("cbPayItems")
@@ -573,7 +666,14 @@ Public Class cFiskaltrustClient_chilkat
.ftReceiptIdentification = json.StringOf("ftReceiptIdentification") .ftReceiptIdentification = json.StringOf("ftReceiptIdentification")
.ftReceiptMoment = ftReceiptMoment.GetAsTimestamp(getAsLocal) .ftReceiptMoment = ftReceiptMoment.GetAsTimestamp(getAsLocal)
.ftState = json.StringOf("ftState") .ftState = json.StringOf("ftState")
.ftBeleg_ID = beleg_temp.BelegNr
If beleg_temp Is Nothing Then
.ftBeleg_ID = -1
Else
.ftBeleg_ID = beleg_temp.BelegNr
End If
saved = .SAVE() saved = .SAVE()
If saved AndAlso beleg_temp IsNot Nothing Then If saved AndAlso beleg_temp IsNot Nothing Then
@@ -594,8 +694,8 @@ Public Class cFiskaltrustClient_chilkat
Dim num As Integer = json.SizeOfArray("ftSignatures") Dim num As Integer = json.SizeOfArray("ftSignatures")
If num = 0 Then If num = 0 Then
MsgBox("Signatureinheit liefert keine (gültige) Signatur, Signatureinheit ausgefallen!") MsgBox("Signatureinheit liefert keine (gültige) Signatur, Signatureinheit ausgefallen" & vbNewLine & "Beleg kann nachträglich signiert werden!")
Return True Return False
End If End If
Dim Signatures As Chilkat.JsonArray = json.ArrayOf("ftSignatures") Dim Signatures As Chilkat.JsonArray = json.ArrayOf("ftSignatures")
@@ -714,15 +814,8 @@ Public Class cFiskaltrustClient_chilkat
End If End If
End Function End Function
Private Sub Log(message As String)
Console.WriteLine(message)
End Sub
Public Function PrettyPrintJson(jsonText As String) As String Public Function PrettyPrintJson(jsonText As String) As String
Dim json As New Chilkat.JsonObject() Dim json As New Chilkat.JsonObject()

View File

@@ -89,7 +89,7 @@ Public Class cRKSV
End Function End Function
Shared Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, beleg_temp As EABeleg, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef typOfReceiptCase As String) As Boolean Shared Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, beleg_temp As EABeleg, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef typOfReceiptCase As String, Optional reference As String = "", Optional TSEisOnline As Boolean = True) As Boolean
Try Try
@@ -133,7 +133,7 @@ Public Class cRKSV
'End If 'End If
Else Else
Dim client As New cFiskaltrustClient_chilkat(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country) Dim client As New cFiskaltrustClient_chilkat(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
Dim result = client.SignReceipt(summeBRUTTO, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id, typOfReceiptCase) Dim result = client.SignReceipt(summeBRUTTO, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id, typOfReceiptCase, reference, TSEisOnline)
If result <> "" Then If result <> "" Then
Return client.saveRKSV_FT(result, QR_CodeString, beleg_temp, False) Return client.saveRKSV_FT(result, QR_CodeString, beleg_temp, False)
Else Else
@@ -968,7 +968,7 @@ Public Class cRKSV
End Try End Try
Return False Return False
End Function End Function
Shared Function stornoRKSV_FT(ByVal kasse As cRKSV_Kasse, ByVal beleg_temp As EABeleg, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef answer As String) As Boolean Shared Function stornoRKSV_FT(ByVal kasse As cRKSV_Kasse, ByVal beleg_temp As EABeleg, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef answer As String, TSEisOnline As Boolean) As Boolean
Try Try
If beleg_temp.rksv_BelegId <= 0 Then If beleg_temp.rksv_BelegId <= 0 Then
@@ -1013,7 +1013,7 @@ Public Class cRKSV
Else Else
Dim client As New cFiskaltrustClient_chilkat(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country) Dim client As New cFiskaltrustClient_chilkat(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
Dim result = client.ChancelReceipt(beleg_temp.FT_ReceiptReference, beleg_temp.rksv_umsatz, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id) Dim result = client.ChancelReceipt(beleg_temp.FT_ReceiptReference, beleg_temp.rksv_umsatz, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id, TSEisOnline)
If result <> "" Then If result <> "" Then
client.saveRKSV_FT(result, QR_CodeString, beleg_temp, True) client.saveRKSV_FT(result, QR_CodeString, beleg_temp, True)
Else Else

View File

@@ -404,6 +404,12 @@ Public Class cAutomailversand
Subject = Subject.Replace("%Belegtyp%", belegtyp) Subject = Subject.Replace("%Belegtyp%", belegtyp)
Subject = Subject.Replace("%BelegNr%", txtRgNr) Subject = Subject.Replace("%BelegNr%", txtRgNr)
If RECHNUNG IsNot Nothing Then
Subject = Subject.Replace("%FilialNr%%AbfertigungsNr%-%UnterNr%", RECHNUNG.FilialenNr & "-" & RECHNUNG.AbfertigungsNr & "-" & RECHNUNG.UnterNr)
Else
Subject = Subject.Replace("%FilialNr%%AbfertigungsNr%-%UnterNr%", "")
End If
TextHTML &= r.txt_text TextHTML &= r.txt_text
TextHTML = TextHTML.Replace("%Belegtyp%", belegtyp) TextHTML = TextHTML.Replace("%Belegtyp%", belegtyp)

View File

@@ -3058,6 +3058,9 @@ Public Class cFakturierung
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(RECHNUNG.Firma_ID) Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(RECHNUNG.Firma_ID)
Dim desc As InvoiceDescriptor = InvoiceDescriptor.CreateInvoice(addYeartoRgNr(FIRMA.Firma_ID, RECHNUNG.Buchungsjahr) & RECHNUNG.RechnungsNr, RECHNUNG.RechnungsDatum, IIf(FIRMA.Firma_ID = 26, CurrencyCodes.GBP, CurrencyCodes.EUR)) Dim desc As InvoiceDescriptor = InvoiceDescriptor.CreateInvoice(addYeartoRgNr(FIRMA.Firma_ID, RECHNUNG.Buchungsjahr) & RECHNUNG.RechnungsNr, RECHNUNG.RechnungsDatum, IIf(FIRMA.Firma_ID = 26, CurrencyCodes.GBP, CurrencyCodes.EUR))
Select Case RECHNUNG.BelegartenKz Select Case RECHNUNG.BelegartenKz
Case "AR" Case "AR"
desc.Name = "SPEDITIONSRECHNUNG" desc.Name = "SPEDITIONSRECHNUNG"
@@ -3108,29 +3111,34 @@ Public Class cFakturierung
' Optionally, to support Peppol----------------------------- ' Optionally, to support Peppol-----------------------------
If RECHNUNG.FilialenNr > 0 AndAlso RECHNUNG.AbfertigungsNr > 0 Then
Dim lrn = RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr
desc.AddAdditionalReferencedDocument(lrn, AdditionalReferencedDocumentTypeCode.ReferenceDocument)
End If
If Not IsDBNull(RECHNUNG.RechnungsUstIdNr) AndAlso RECHNUNG.RechnungsUstIdNr IsNot Nothing AndAlso Not IsDBNull(RECHNUNG.RechnungsUstIdKz) AndAlso RECHNUNG.RechnungsUstIdKz IsNot Nothing Then If Not IsDBNull(RECHNUNG.RechnungsUstIdNr) AndAlso RECHNUNG.RechnungsUstIdNr IsNot Nothing AndAlso Not IsDBNull(RECHNUNG.RechnungsUstIdKz) AndAlso RECHNUNG.RechnungsUstIdKz IsNot Nothing Then
desc.AddBuyerTaxRegistration(RECHNUNG.RechnungsUstIdKz & RECHNUNG.RechnungsUstIdNr, TaxRegistrationSchemeID.VA) desc.AddBuyerTaxRegistration(RECHNUNG.RechnungsUstIdKz & RECHNUNG.RechnungsUstIdNr, TaxRegistrationSchemeID.VA)
If vatBuyer Then If vatBuyer Then
desc.SetBuyerElectronicAddress(RECHNUNG.RechnungsUstIdKz & RECHNUNG.RechnungsUstIdNr, vatBuyer) desc.SetBuyerElectronicAddress(RECHNUNG.RechnungsUstIdKz & RECHNUNG.RechnungsUstIdNr, vatBuyer)
desc.SetSellerElectronicAddress(FIRMA.Firma_UID.ToString.Replace("UID: ", ""), vatSeller) desc.SetSellerElectronicAddress(FIRMA.Firma_UID.ToString.Replace("UID: ", ""), vatSeller)
End If
End If
'-----------------------------
desc.ActualDeliveryDate = (RECHNUNG.Abfertigungsdatum)
Dim steuerProzent As Double = SQL.DLookup(" isnull([Steuersatz %],0)", "[Steuertabelle] ", "[Steuerschlüssel]='" & checkNull(RECHNUNG.Steuerschlüssel) & "'", "FMZOLL", 0)
Dim steuerProzenFaktor As Double = 0
If steuerProzent > 0 AndAlso steuerProzent < 1 Then
steuerProzenFaktor = steuerProzent * 100
End If End If
End If
'-----------------------------
desc.ActualDeliveryDate = (RECHNUNG.Abfertigungsdatum)
Dim steuerProzent As Double = SQL.DLookup(" isnull([Steuersatz %],0)", "[Steuertabelle] ", "[Steuerschlüssel]='" & checkNull(RECHNUNG.Steuerschlüssel) & "'", "FMZOLL", 0) Dim sumNetto As Double = 0
Dim steuerProzenFaktor As Double = 0 For Each p In RECHNUNG.POSITIONEN
If steuerProzent > 0 AndAlso steuerProzent < 1 Then
steuerProzenFaktor = steuerProzent * 100
End If
Dim tradeLineItemNew As TradeLineItem = desc.AddTradeLineItem(
Dim sumNetto As Double = 0
For Each p In RECHNUNG.POSITIONEN
Dim tradeLineItemNew As TradeLineItem = desc.AddTradeLineItem(
name:=p.LeistungsBez, name:=p.LeistungsBez,
billedQuantity:=Convert.ToDecimal(p.Anzahl), billedQuantity:=Convert.ToDecimal(p.Anzahl),
unitCode:=QuantityCodes.C62, ' immer in Stück unitCode:=QuantityCodes.C62, ' immer in Stück
@@ -3140,27 +3148,27 @@ Public Class cFakturierung
taxPercent:=IIf(p.Steuerpflichtig, Convert.ToDecimal(RECHNUNG.Steuersatz_Proz * 100), 0), taxPercent:=IIf(p.Steuerpflichtig, Convert.ToDecimal(RECHNUNG.Steuersatz_Proz * 100), 0),
taxType:=IIf(p.Steuerpflichtig, TaxTypes.VAT, TaxTypes.VAT) taxType:=IIf(p.Steuerpflichtig, TaxTypes.VAT, TaxTypes.VAT)
) )
Dim netUnitPrice = Convert.ToDecimal(p.Preis) Dim netUnitPrice = Convert.ToDecimal(p.Preis)
Dim grossUnitPrice = IIf(p.Steuerpflichtig, Convert.ToDecimal(p.Preis * (1 + RECHNUNG.Steuersatz_Proz)), Convert.ToDecimal(p.Preis)) Dim grossUnitPrice = IIf(p.Steuerpflichtig, Convert.ToDecimal(p.Preis * (1 + RECHNUNG.Steuersatz_Proz)), Convert.ToDecimal(p.Preis))
Dim netPricePos = netUnitPrice * Convert.ToDecimal(p.Anzahl) Dim netPricePos = netUnitPrice * Convert.ToDecimal(p.Anzahl)
sumNetto += netPricePos sumNetto += netPricePos
Next Next
'Summe aller Rechnungspositions-Nettobeträge der Rechnung 'Summe aller Rechnungspositions-Nettobeträge der Rechnung
Dim lineTotalAmont = sumNetto Dim lineTotalAmont = sumNetto
'Der Gesamtbetrag der Umsatzsteuer für die Rechnung, 'Der Gesamtbetrag der Umsatzsteuer für die Rechnung,
'IIf(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, Math.Round(Convert.ToDecimal(RECHNUNG.SteuerpflichtigerGesamtbetrag) / (100 + steuerProzenFaktor) * 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, MidpointRounding.AwayFromZero), 0) Dim taxTotalAmount = IIf(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, Math.Round(Convert.ToDecimal(RECHNUNG.SteuerpflichtigerGesamtbetrag) / (100 + steuerProzenFaktor) * steuerProzenFaktor, 2, MidpointRounding.AwayFromZero), 0)
' Die Gesamtsumme der Rechnung ohne Umsatzsteuer ' RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0 ' Die Gesamtsumme der Rechnung ohne Umsatzsteuer ' RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0
Dim taxBasisAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0 - taxTotalAmount) Dim taxBasisAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0 - taxTotalAmount)
'Der Gesamtbetrag der Rechnung mit Umsatzsteuer '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) 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 '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) Dim duePayableAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag)
desc.SetTotals( desc.SetTotals(
lineTotalAmount:=Convert.ToDecimal(lineTotalAmont), lineTotalAmount:=Convert.ToDecimal(lineTotalAmont),
chargeTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Zuschläge der Dokumentenebene chargeTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Zuschläge der Dokumentenebene
allowanceTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Abschläge der Dokumenteneben allowanceTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Abschläge der Dokumenteneben
@@ -3173,96 +3181,96 @@ Public Class cFakturierung
) )
desc.AddTradePaymentTerms(RECHNUNG.TextZZ, zahlungszieldatum) desc.AddTradePaymentTerms(RECHNUNG.TextZZ, zahlungszieldatum)
'If RECHNUNG.TextZZ.ToString.Contains("Abbuchungsauftrag") Then 'If RECHNUNG.TextZZ.ToString.Contains("Abbuchungsauftrag") Then
' desc.SetPaymentMeansSepaDirectDebit("", "") ' desc.SetPaymentMeansSepaDirectDebit("", "")
'Else 'Else
desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, RECHNUNG.TextZZ) desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, RECHNUNG.TextZZ)
'End If 'End If
Dim isReverseCharge = isReverseChargeSumme(FIRMA, RECHNUNG) Dim isReverseCharge = isReverseChargeSumme(FIRMA, RECHNUNG)
If isReverseCharge Then If isReverseCharge Then
Select Case RECHNUNG.RechnungSprache Select Case RECHNUNG.RechnungSprache
Case "EN" : desc.AddNote("The VAT liability is transferred to the recipient of the service (reverse charge system).", SubjectCodes.AAI) Case "EN" : desc.AddNote("The VAT liability is transferred to the recipient of the service (reverse charge system).", SubjectCodes.AAI)
Case Else : desc.AddNote("Die Umsatzsteuerschuld geht auf den Leistungsempfänger über (Reverse Charge Verfahren).", SubjectCodes.AAI) Case Else : desc.AddNote("Die Umsatzsteuerschuld geht auf den Leistungsempfänger über (Reverse Charge Verfahren).", SubjectCodes.AAI)
End Select End Select
End If End If
If RECHNUNG.SteuerfreierGesamtbetrag > 0 Then If RECHNUNG.SteuerfreierGesamtbetrag > 0 Then
desc.AddApplicableTradeTax(Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag), 0, 0, TaxTypes.VAT, TaxCategoryCodes.Z) desc.AddApplicableTradeTax(Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag), 0, 0, TaxTypes.VAT, TaxCategoryCodes.Z)
End If End If
If RECHNUNG.SteuerpflichtigerGesamtbetrag > 0 Then If RECHNUNG.SteuerpflichtigerGesamtbetrag > 0 Then
desc.AddApplicableTradeTax(Convert.ToDecimal(taxBasisAmount - RECHNUNG.SteuerfreierGesamtbetrag), Convert.ToDecimal(steuerProzenFaktor), Convert.ToDecimal(taxTotalAmount), TaxTypes.VAT, IIf(isReverseCharge, TaxCategoryCodes.AE, TaxCategoryCodes.S)) desc.AddApplicableTradeTax(Convert.ToDecimal(taxBasisAmount - RECHNUNG.SteuerfreierGesamtbetrag), Convert.ToDecimal(steuerProzenFaktor), Convert.ToDecimal(taxTotalAmount), TaxTypes.VAT, IIf(isReverseCharge, TaxCategoryCodes.AE, TaxCategoryCodes.S))
End If End If
Select Case FIRMA.Firma_ID Select Case FIRMA.Firma_ID
Case 21, 22, 23 '"UNISPED" Case 21, 22, 23 '"UNISPED"
If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, ""))
If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, ""))
Case 26 'VERAG-UNISPED" Case 26 'VERAG-UNISPED"
If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, ""))
If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, ""))
Case 24 'AMBAR" Case 24 'AMBAR"
If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, ""))
If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, ""))
'Änderung Ticket_Nr.: 6983 'Änderung Ticket_Nr.: 6983
'desc.AddCreditorFinancialAccount("TR90 0006 2001 6040 0009 0804 66", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") 'desc.AddCreditorFinancialAccount("TR90 0006 2001 6040 0009 0804 66", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto")
desc.AddCreditorFinancialAccount("TR67 0006 2000 5440 0009 0513 57", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") desc.AddCreditorFinancialAccount("TR67 0006 2000 5440 0009 0513 57", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto")
Case 20 '"IMEX" Case 20 '"IMEX"
If RECHNUNG.RechnungsLandKz = "TR" Then If RECHNUNG.RechnungsLandKz = "TR" Then
desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "",,, "Garanti Bank") desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "",,, "Garanti Bank")
Else
If hasVK(RECHNUNG) Then
desc.AddCreditorFinancialAccount("AT35 4480 0365 7822 0002", "VBOEATWWOOE",,, "Volksbank Oberösterreich AG")
Else Else
If hasEUSTZOLL(RECHNUNG.RechnungsNr) Then If hasVK(RECHNUNG) Then
desc.AddCreditorFinancialAccount("AT62 4480 0365 7822 0001", "VBOEATWWOOE", ) desc.AddCreditorFinancialAccount("AT35 4480 0365 7822 0002", "VBOEATWWOOE",,, "Volksbank Oberösterreich AG")
Else Else
desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "VBOEATWWOOE", ,, "Volksbank Oberösterreich AG") If hasEUSTZOLL(RECHNUNG.RechnungsNr) Then
desc.AddCreditorFinancialAccount("AT62 4480 0365 7822 0001", "VBOEATWWOOE", )
Else
desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "VBOEATWWOOE", ,, "Volksbank Oberösterreich AG")
End If
End If End If
End If End If
End If
Case 19 Case 19
If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, ""))
Case Else 'VERAG,ATILLA Case Else 'VERAG,ATILLA
If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, ""))
If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, ""))
End Select End Select
Dim tmpPathZugpferd = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("ZUGFeRD_Invoice_" & RECHNUNG.RechnungsNr, ".xml", True, False) Dim tmpPathZugpferd = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("ZUGFeRD_Invoice_" & RECHNUNG.RechnungsNr, ".xml", True, False)
Using stream As New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write, FileShare.None) Using stream As New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write, FileShare.None)
desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort) desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort)
End Using End Using
Return tmpPathZugpferd Return tmpPathZugpferd
'Dim stream As FileStream = New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write) 'Dim stream As FileStream = New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write)
'desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort) 'desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort)
'stream.Flush() 'stream.Flush()
'stream.Close() 'stream.Close()
'Return tmpPathZugpferd 'Return tmpPathZugpferd
ElseIf Not einzelrechnung AndAlso SR_DT IsNot Nothing Then ElseIf Not einzelrechnung AndAlso SR_DT IsNot Nothing Then
'--------------------------------------------------------------------------------- '---------------------------------------------------------------------------------
'--------------------------------SAMMELRECHNUNG----------------------------------- '--------------------------------SAMMELRECHNUNG-----------------------------------
'--------------------------------------------------------------------------------- '---------------------------------------------------------------------------------
Dim ROW As DataRow = SR_DT.Rows(0) Dim ROW As DataRow = SR_DT.Rows(0)
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(ROW("Firma_ID")) Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(ROW("Firma_ID"))
Dim RECHNUNG_AD As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) Dim RECHNUNG_AD As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr"))
@@ -3297,6 +3305,17 @@ Public Class cFakturierung
End Select End Select
If Not IsDBNull(ROW("FilialenNr")) AndAlso Not IsDBNull(ROW("AbfertigungsNr")) Then
Dim filialenNr As String = ROW("FilialenNr").ToString().Trim()
Dim abfertigungsNr As String = ROW("AbfertigungsNr").ToString().Trim()
If filialenNr <> String.Empty AndAlso abfertigungsNr <> String.Empty Then
Dim lrn As String = filialenNr & "/" & abfertigungsNr
desc.AddAdditionalReferencedDocument(lrn, AdditionalReferencedDocumentTypeCode.ReferenceDocument)
End If
End If
'Die „Berechnung BT-10“ bezieht sich auf das Feld BT-10 „Buyer reference“ (Käuferreferenz) in der elektronischen Rechnung, speziell im XRechnung-Standard. Dieses Feld dient zur Angabe der Leitweg-ID 'Die „Berechnung BT-10“ bezieht sich auf das Feld BT-10 „Buyer reference“ (Käuferreferenz) in der elektronischen Rechnung, speziell im XRechnung-Standard. Dieses Feld dient zur Angabe der Leitweg-ID
'für öffentliche Auftraggeber oder anderer Referenzinformationen für interne Zuordnungsprozesse. 'für öffentliche Auftraggeber oder anderer Referenzinformationen für interne Zuordnungsprozesse.
'Die Leitweg-ID ist in Deutschland eine Pflichtangabe für elektronische Rechnungen an die Bundesverwaltung und muss vom Rechnungssteller vom Auftraggeber erhalten werden. 'Die Leitweg-ID ist in Deutschland eine Pflichtangabe für elektronische Rechnungen an die Bundesverwaltung und muss vom Rechnungssteller vom Auftraggeber erhalten werden.

View File

@@ -5,7 +5,9 @@ Imports System.Reflection
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports System.Windows.Documents Imports System.Windows.Documents
Imports com.sun.tools.internal.ws.wsdl.document.mime Imports com.sun.tools.internal.ws.wsdl.document.mime
Imports DAKOSY_Worker.Abgabenbescheid_008
Imports GrapeCity.ActiveReports Imports GrapeCity.ActiveReports
Imports GrapeCity.DataVisualization.TypeScript
Imports itextsharp.text.pdf Imports itextsharp.text.pdf
Imports Microsoft.Office.Interop Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN
@@ -1171,136 +1173,136 @@ Public Class frmFormulare
For Each c In MyFlowLayoutPanel1.Controls For Each c In MyFlowLayoutPanel1.Controls
Dim pfadList As List(Of String) = FormularManagerNEU.genPDF(c,,,,, listMail) Dim pfadList As List(Of String) = FormularManagerNEU.genPDF(c,,,,, listMail)
For Each pfad In pfadList For Each pfad In pfadList
If pfad <> "" Then list.Add(pfad) If pfad <> "" Then list.Add(pfad)
Next
Next Next
Next
Dim dest_path = "" Dim dest_path = ""
If list.Count = 0 Then Me.Cursor = Cursors.Default : Exit Sub If list.Count = 0 Then Me.Cursor = Cursors.Default : Exit Sub
If list.Count = 1 Then If list.Count = 1 Then
dest_path = list(0) dest_path = list(0)
Else Else
dest_path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & attachmentName & ".pdf", ".pdf", False, False) dest_path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & attachmentName & ".pdf", ".pdf", False, False)
If Not FormularManagerNEU.MergePdfFiles(list, dest_path) Then If Not FormularManagerNEU.MergePdfFiles(list, dest_path) Then
dest_path = "" : MsgBox("Fehler PDF") dest_path = "" : MsgBox("Fehler PDF")
End If
End If End If
End If
If dest_path <> "" Then If dest_path <> "" Then
If sender Is Button2 Then If sender Is Button2 Then
Process.Start(dest_path) Process.Start(dest_path)
ElseIf sender Is btn Then ElseIf sender Is btn Then
'System.Diagnostics.Process.Start("mailto:" & "" & "?subject=" & "?" & "&body=" & "?" & "&attachment=" & dest_path) 'System.Diagnostics.Process.Start("mailto:" & "" & "?subject=" & "?" & "&body=" & "?" & "&attachment=" & dest_path)
Try Try
If listMail IsNot Nothing AndAlso listMail.Count > 0 Then If listMail IsNot Nothing AndAlso listMail.Count > 0 Then
For Each l In listMail For Each l In listMail
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
'Dim StandAcc = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getdefaultOutlookAccount(outl)
'If StandAcc IsNot Nothing Then Mail.SendUsingAccount = StandAcc
If l.MailHTMLText <> "" Then Mail.HTMLBody = l.MailHTMLText
If l.Mail_To <> "" Then Mail.To = l.Mail_To
If l.Mail_CC <> "" Then Mail.CC = l.Mail_CC
If l.Mail_BCC <> "" Then Mail.CC = l.Mail_BCC
If l.Mail_Subject <> "" Then Mail.Subject = l.Mail_Subject
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
Try
Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR")
Mail.HTMLBody &= cFakturierung.getSignature(cboTextKonserveSprache._value, 24, False, True)
Catch ex2 As Exception
MsgBox(ex2.Message)
End Try
End If
Mail.Attachments.Add(dest_path, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & attachmentName & ".pdf")
Mail.Display()
Next
Else
Dim outl As New Outlook.Application Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0) Mail = outl.CreateItem(0)
'MsgBox(VERAG_PROG_ALLGEMEIN.cProgramFunctions.printdefaultOutlookAccount(outl))
'Dim StandAcc = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getdefaultOutlookAccount(outl) 'Dim StandAcc = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getdefaultOutlookAccount(outl)
'Mail.SendUsingAccount = outl.Session.DefaultAccount 'If StandAcc IsNot Nothing Then Mail.SendUsingAccount = StandAcc
If l.MailHTMLText <> "" Then Mail.HTMLBody = l.MailHTMLText
If l.Mail_To <> "" Then Mail.To = l.Mail_To
If l.Mail_CC <> "" Then Mail.CC = l.Mail_CC
If l.Mail_BCC <> "" Then Mail.CC = l.Mail_BCC
If l.Mail_Subject <> "" Then Mail.Subject = l.Mail_Subject
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
Try Try
Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR") Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR")
Mail.HTMLBody &= cFakturierung.getSignature(cboTextKonserveSprache._value, 24, True, True) Mail.HTMLBody &= cFakturierung.getSignature(cboTextKonserveSprache._value, 24, False, True)
Catch ex2 As Exception Catch ex2 As Exception
MsgBox(ex2.Message) MsgBox(ex2.Message)
End Try End Try
End If End If
If Me.txtEmail.Text <> "" Then Mail.To = Me.txtEmail.Text
If cboTextkonserve._value <> "" AndAlso cboTextKonserveSprache._value <> "" Then
Dim tX As New VERAG_PROG_ALLGEMEIN.cTextkonserve("FRM_MNGR_MailText", cboTextkonserve._value, cboTextKonserveSprache._value, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
Dim TextHTML = "" Mail.Attachments.Add(dest_path, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & attachmentName & ".pdf")
TextHTML &= tX.txt_text Mail.Display()
TextHTML &= "<br>"
TextHTML &= "<br>" Next
TextHTML &= "Mit freundlichen Grüßen<br>" Else
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>" Dim outl As New Outlook.Application
TextHTML &= "<br>"
TextHTML &= cFakturierung.getSignature(cboTextKonserveSprache._value, tX.txt_firmaSig, True, True) Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
'MsgBox(VERAG_PROG_ALLGEMEIN.cProgramFunctions.printdefaultOutlookAccount(outl))
'Dim StandAcc = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getdefaultOutlookAccount(outl)
'Mail.SendUsingAccount = outl.Session.DefaultAccount
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>" If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
Try
Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR")
Mail.HTMLBody &= cFakturierung.getSignature(cboTextKonserveSprache._value, 24, True, True)
Catch ex2 As Exception
MsgBox(ex2.Message)
End Try
Mail.Subject = IIf(tX.txt_betreff <> "", tX.txt_betreff, " ") End If
If AVISO IsNot Nothing Then If Me.txtEmail.Text <> "" Then Mail.To = Me.txtEmail.Text
Mail.Subject = Mail.Subject.Replace("%LKW%", AVISO.LKW_Nr) If cboTextkonserve._value <> "" AndAlso cboTextKonserveSprache._value <> "" Then
Mail.Subject = Mail.Subject.Replace("%LKWKennzeichen%", AVISO.LKW_Nr) Dim tX As New VERAG_PROG_ALLGEMEIN.cTextkonserve("FRM_MNGR_MailText", cboTextkonserve._value, cboTextKonserveSprache._value, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
End If
Mail.Subject = Mail.Subject.Replace("%LKW%", "") Dim TextHTML = ""
Mail.Subject = Mail.Subject.Replace("%LKWKennzeichen%", "") TextHTML &= tX.txt_text
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Mit freundlichen Grüßen<br>"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
TextHTML &= "<br>"
TextHTML &= cFakturierung.getSignature(cboTextKonserveSprache._value, tX.txt_firmaSig, True, True)
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
Mail.Subject = IIf(tX.txt_betreff <> "", tX.txt_betreff, " ")
If AVISO IsNot Nothing Then
Mail.Subject = Mail.Subject.Replace("%LKW%", AVISO.LKW_Nr)
Mail.Subject = Mail.Subject.Replace("%LKWKennzeichen%", AVISO.LKW_Nr)
End If End If
Mail.Subject = Mail.Subject.Replace("%LKW%", "")
Mail.Subject = Mail.Subject.Replace("%LKWKennzeichen%", "")
End If
Mail.Attachments.Add(dest_path, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & attachmentName & ".pdf") Mail.Attachments.Add(dest_path, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & attachmentName & ".pdf")
Mail.Display() Mail.Display()
End If
'Dim matilPath = "C:\TEMP\VERAG_Mail.msg"
' Mail.SaveAs(matilPath)
' Process.Start(matilPath)
Catch ex As Exception
MsgBox("Fehler beim erstellen der E-Mail:" & vbNewLine & ex.Message & ex.StackTrace)
End Try
ElseIf sender Is btnPrint Then
'VERAG_PROG_ALLGEMEIN.cFormularManager.PrintFile(dest_path, "")
If dest_path.ToUpper.EndsWith("PDF") Then
VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({dest_path}, cboPrinter.SelectedItem.ToString)
Else
VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaGS(dest_path, cboPrinter.SelectedItem.ToString)
End If End If
'Dim matilPath = "C:\TEMP\VERAG_Mail.msg"
' Mail.SaveAs(matilPath)
' Process.Start(matilPath)
Catch ex As Exception
MsgBox("Fehler beim erstellen der E-Mail:" & vbNewLine & ex.Message & ex.StackTrace)
End Try
ElseIf sender Is btnPrint Then
'VERAG_PROG_ALLGEMEIN.cFormularManager.PrintFile(dest_path, "")
If dest_path.ToUpper.EndsWith("PDF") Then
VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({dest_path}, cboPrinter.SelectedItem.ToString)
Else
VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaGS(dest_path, cboPrinter.SelectedItem.ToString)
End If End If
End If End If
End If End If
End If
printed = True printed = True
Catch ex As Exception Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace) MsgBox(ex.Message & ex.StackTrace)
@@ -1316,7 +1318,10 @@ Public Class frmFormulare
Dim ADR As New cAdressen(KundenNr) Dim ADR As New cAdressen(KundenNr)
If ADR.Name_1 IsNot Nothing AndAlso ADR.Name_1 <> "" Then If ADR.Name_1 IsNot Nothing AndAlso ADR.Name_1 <> "" Then
Bez = "_" & ADR.Name_1
Bez = "_" & ADR.Name_1.ToString
Bez = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(Bez)
Bez = Regex.Replace(Bez, "[" & Regex.Escape(New String(System.IO.Path.GetInvalidFileNameChars())) & "]", "_")
End If End If

View File

@@ -147,6 +147,7 @@ Partial Class frmBelegNeu
Me.FlowLayoutPanel2 = New System.Windows.Forms.FlowLayoutPanel() Me.FlowLayoutPanel2 = New System.Windows.Forms.FlowLayoutPanel()
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cm_FT = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.cm_FT = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.lblTSEisOffline = New System.Windows.Forms.Label()
CType(Me.dgvBelegPos, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvBelegPos, System.ComponentModel.ISupportInitialize).BeginInit()
Me.pnl.SuspendLayout() Me.pnl.SuspendLayout()
Me.pnlData.SuspendLayout() Me.pnlData.SuspendLayout()
@@ -648,6 +649,7 @@ Partial Class frmBelegNeu
'pnlData 'pnlData
' '
Me.pnlData.BackColor = System.Drawing.Color.FromArgb(CType(CType(244, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(244, Byte), Integer)) Me.pnlData.BackColor = System.Drawing.Color.FromArgb(CType(CType(244, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(244, Byte), Integer))
Me.pnlData.Controls.Add(Me.lblTSEisOffline)
Me.pnlData.Controls.Add(Me.cboBuchungsoforterzeugen) Me.pnlData.Controls.Add(Me.cboBuchungsoforterzeugen)
Me.pnlData.Controls.Add(Me.lblErr_Fahrer) Me.pnlData.Controls.Add(Me.lblErr_Fahrer)
Me.pnlData.Controls.Add(Me.lblErr_Pass) Me.pnlData.Controls.Add(Me.lblErr_Pass)
@@ -1784,6 +1786,20 @@ Partial Class frmBelegNeu
Me.cm_FT.Name = "ContextMenuStrip1" Me.cm_FT.Name = "ContextMenuStrip1"
Me.cm_FT.Size = New System.Drawing.Size(61, 4) Me.cm_FT.Size = New System.Drawing.Size(61, 4)
' '
'lblTSEisOffline
'
Me.lblTSEisOffline.AutoSize = True
Me.lblTSEisOffline.BackColor = System.Drawing.Color.Red
Me.lblTSEisOffline.Cursor = System.Windows.Forms.Cursors.Default
Me.lblTSEisOffline.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblTSEisOffline.ForeColor = System.Drawing.Color.White
Me.lblTSEisOffline.Location = New System.Drawing.Point(154, 35)
Me.lblTSEisOffline.Name = "lblTSEisOffline"
Me.lblTSEisOffline.Size = New System.Drawing.Size(125, 20)
Me.lblTSEisOffline.TabIndex = 50
Me.lblTSEisOffline.Text = "TSE ist Offline"
Me.lblTSEisOffline.Visible = False
'
'frmBelegNeu 'frmBelegNeu
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!)
@@ -1935,4 +1951,5 @@ Partial Class frmBelegNeu
Friend WithEvents cboBuchungsoforterzeugen As CheckBox Friend WithEvents cboBuchungsoforterzeugen As CheckBox
Friend WithEvents Button4 As Button Friend WithEvents Button4 As Button
Friend WithEvents cm_FT As ContextMenuStrip Friend WithEvents cm_FT As ContextMenuStrip
Friend WithEvents lblTSEisOffline As Label
End Class End Class

View File

@@ -45,6 +45,7 @@ Public Class frmBelegNeu
Public aktFiliale As Integer = 0 Public aktFiliale As Integer = 0
Public aktAbfertigungsNr As Integer = 0 Public aktAbfertigungsNr As Integer = 0
Dim tseIsOnline As Boolean = False
Public Sub New(PERSONAL As cPersonal, PERSONAL_LG As cPersonal, EA As String) Public Sub New(PERSONAL As cPersonal, PERSONAL_LG As cPersonal, EA As String)
@@ -231,9 +232,8 @@ Public Class frmBelegNeu
' Case "WAI" : cboFiliale.changeItem(5103) ' Case "WAI" : cboFiliale.changeItem(5103)
' End Select ' End Select
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", "SDL") Then
Button4.Visible = True Button4.Visible = checkFiskaltrust()
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
cboKassen.Enabled = True cboKassen.Enabled = True
@@ -1704,49 +1704,59 @@ Public Class frmBelegNeu
Dim answer = "" Dim answer = ""
Dim verarbeitet As Boolean = False Dim verarbeitet As Boolean = False
Dim isFiskaltrust As Boolean = False Dim isFiskaltrust = checkFiskaltrust()
If KASSE.rksv_FT_RestServiceURL <> "" Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, QR_CodeString, LastJWS, "Verkauf")
'result.Wait()
verarbeitet = result
isFiskaltrust = True
Else
verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
End If
If Not verarbeitet AndAlso Not isFiskaltrust Then If isFiskaltrust Then
If Not TESTBUCHUNG Then Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, QR_CodeString, LastJWS, ReceiptCaseIntern.VERKAUF)
verarbeitet = result
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, If(EA = "E", summeBRUTTO * -1, summeBRUTTO)) Else
cRKSV.DELETE(BELEG, KASSE.rksv_firma) verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
End If End If
Dim Errmsg = "Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer
MsgBox(Errmsg, MsgBoxStyle.Critical) If Not verarbeitet Then
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(Errmsg, "", System.Reflection.MethodInfo.GetCurrentMethod.Name)
Me.Cursor = Cursors.Default : warnClose = False : Me.Close() : Exit Sub If Not isFiskaltrust Then
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, If(EA = "E", summeBRUTTO * -1, summeBRUTTO))
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
Dim Errmsg = "Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer
MsgBox(Errmsg, MsgBoxStyle.Critical)
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(Errmsg, "", System.Reflection.MethodInfo.GetCurrentMethod.Name)
Me.Cursor = Cursors.Default : warnClose = False : Me.Close() : Exit Sub
Else
BELEG.FT_MissingSignature = True
End If
If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
End If End If
If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
'If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, 0, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service 'If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, 0, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
' If Not TESTBUCHUNG Then ' If Not TESTBUCHUNG Then
' KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summe * -1) ' KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summe * -1)
' cRKSV.DELETE(BELEG) ' cRKSV.DELETE(BELEG)
' End If ' End If
' MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical) ' MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' ' Me.Cursor = Cursors.Default ' ' Me.Cursor = Cursors.Default
' 'BELEG = cRKSV.STORNO(BELEG, "Programmfehler") ' 'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' ' MsgBox("Programmfehler bei der digitalen Signatur.") ' ' MsgBox("Programmfehler bei der digitalen Signatur.")
' Return False ' Return False
'End If 'End If
'KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString) 'KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
' Dim TEST_KASSE = (BELEG.Niederlassung = "WAI") ' Dim TEST_KASSE = (BELEG.Niederlassung = "WAI")
If KASSE.rksvDE_aktiv Then ' WENN für die Kasse die RKSV DEUTSCHLAND gilt If KASSE.rksvDE_aktiv Then ' WENN für die Kasse die RKSV DEUTSCHLAND gilt
Dim answer = "" Dim answer = ""
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
@@ -1873,6 +1883,21 @@ Public Class frmBelegNeu
End Function
Private Function checkFiskaltrust()
If PERSONAL.cRKSV_Kasse IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_Country IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
Return client_chilkat.isFiskaltrust()
Else
Return False
End If
End Function End Function
Private Sub openZahlungsbeleg(daid As Integer) Private Sub openZahlungsbeleg(daid As Integer)
@@ -1896,84 +1921,29 @@ Public Class frmBelegNeu
Private Sub cboKassen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboKassen.SelectedIndexChanged Private Sub cboKassen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboKassen.SelectedIndexChanged
KASSE.LOAD(cboKassen._value) KASSE.LOAD(cboKassen._value)
'Button4.Visible = KASSE.rksv_FT_RestServiceURL <> ""
If KASSE IsNot Nothing AndAlso KASSE.rksv_aktiv AndAlso KASSE.rksv_FT_RestServiceURL IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
If client_chilkat.isFiskaltrust() Then
Dim result As String = client_chilkat.Echo(KASSE.rksv_bez & " " & KASSE.rksv_FT_Country & " - ")
If result IsNot Nothing AndAlso result.Contains("VERBINDUNG OK") Then
tseIsOnline = True
End If
lblTSEisOffline.Visible = Not tseIsOnline
End If
End If
End Sub End Sub
Private Sub Button4_ClickAsync(sender As Object, e As EventArgs) Handles Button4.Click Private Sub Button4_ClickAsync(sender As Object, e As EventArgs) Handles Button4.Click
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then If Not cm_FT.Items.ContainsKey("ft_neusignierung") AndAlso BELEG IsNot Nothing AndAlso (BELEG.gebucht Or BELEG.gebuchtStorno) AndAlso BELEG.FT_setMissingSignatureFailed Then
'nur im Testsystem! Dim ids = New ToolStripMenuItem() With {.Text = "Beleg neu signieren", .Name = "ft_neusignierung", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
If Not cm_FT.Items.ContainsKey("bar") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Barverkauf", .Name = "bar", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids)
End If
If Not cm_FT.Items.ContainsKey("storno") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Storno", .Name = "storno", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids)
End If
End If
If Not cm_FT.Items.ContainsKey("null") Then
Dim plose = New ToolStripMenuItem() With {.Text = "Nullbeleg", .Name = "null", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
cm_FT.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If
If Not cm_FT.Items.ContainsKey("monthly") Then
Dim rmc = New ToolStripMenuItem() With {.Text = "Monatabschluss", .Name = "monthly", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(rmc)
End If
If Not cm_FT.Items.ContainsKey("daily") Then
Dim rmc = New ToolStripMenuItem() With {.Text = "Tagesabschluss", .Name = "daily", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(rmc)
End If
If Not cm_FT.Items.ContainsKey("yearly") Then
Dim uta = New ToolStripMenuItem() With {.Text = "Jahresabschluss", .Name = "yearly", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler uta.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(uta)
End If
If Not cm_FT.Items.ContainsKey("test") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Verbindungstest", .Name = "verbindungstest", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids)
End If
If Not cm_FT.Items.ContainsKey("version") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Version", .Name = "version", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids)
End If
If Not cm_FT.Items.ContainsKey("signatures") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Signaturen", .Name = "signatures", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids)
End If
If Not cm_FT.Items.ContainsKey("action") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Action", .Name = "action", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids)
End If
If Not cm_FT.Items.ContainsKey("queueitem") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Queue", .Name = "queueitem", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids)
End If
If Not cm_FT.Items.ContainsKey("exportJournal") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Journal - EXPORT", .Name = "exportJournal", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids) cm_FT.Items.Add(ids)
End If End If
@@ -1994,154 +1964,65 @@ Public Class frmBelegNeu
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country) Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
If item.Name = "null" Then If item.Name = "ft_neusignierung" Then
If vbYes = MsgBox("Möchten Sie wirklich einen 0-Beleg an die TSE schicken?", vbYesNoCancel) Then If BELEG IsNot Nothing Then
If vbYes = MsgBox("Möchten den nicht signierten Beleg " & BELEG.BelegNr & " an die TSE schicken?", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignNullReceipt(KASSE.rksv_id) Dim result As Boolean = False
If BELEG.gebucht Or BELEG.gebuchtStorno Then
Dim summeBRUTTO As Double = BELEG.rksv_umsatz
Dim QR_CodeString As String = ""
Dim LastJWS As String = ""
Dim EA As String = ""
Dim kindOfReceiptCase As String = ""
Select Case BELEG.Beleg_TYP
Case "0"
Return False 'null Belege nicht senden!
Case "E" 'Eingang/Ausgang
If BELEG.Belegart = "1" Then
EA = "E"
Else
EA = "A"
End If
Case "L"
If BELEG.Belegart = "1" Then
EA = "E"
Else
EA = "A"
End If
Case Else
If BELEG.Belegart = "1" Then
EA = "E"
Else
EA = "A"
End If
End Select
If result <> "" Then result = cRKSV.insertRKSVFiskaltrustAsync(PERSONAL.cRKSV_Kasse, BELEG, BELEG.rksv_BelegId, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), False, QR_CodeString, LastJWS, "", "", tseIsOnline) 'receiptCase leer und Reference leer!!!!!
MsgBox(client_chilkat.PrettyPrintJson(result)) If result Then
BELEG.FT_setMissingSignatureFailed = False
End If BELEG.SAVE()
MsgBox("Beleg erfolgreich gesendet!")
End If
ElseIf item.Name = "verbindungstest" Then
Dim result As String = client_chilkat.Echo(KASSE.rksv_bez & " " & KASSE.rksv_FT_Country & " - ")
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
End If
ElseIf item.Name = "storno" Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
If vbYes = MsgBox("Möchten Sie wirklich einen Teststorno durchführen?", vbYesNoCancel) Then
Dim result As String = client_chilkat.ChancelReceipt_test("-1", KASSE.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
End If
End If
Else
MsgBox("ACHTUNG, im Produktivsystem nicht möglich!")
End If
ElseIf item.Name = "bar" Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
If vbYes = MsgBox("Möchten Sie wirklich einen Testzahlung durchführen?", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignReceipt_test(KASSE.rksv_id)
If result <> "" Then
If vbYes = MsgBox(result & vbNewLine & vbNewLine & "Testdaten in DB speichern?", vbYesNoCancel) Then
Dim QR_CodeString As String = ""
client_chilkat.saveRKSV_FT(result, QR_CodeString, Nothing, False)
End If End If
Else
Return False
End If
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
End If End If
End If
Else
MsgBox("ACHTUNG, im Produktivsystem nicht möglich!")
End If
If result Then
ElseIf item.Name = "monthly" Then init()
End If
If vbYes = MsgBox("Möchten Sie wirklich einen Monatsbeleg an die TSE schicken, anschließend kann dieses Monat kein Beleg mehr signiert werden!", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignClosingReceipt(item.Name, KASSE.rksv_id, item.Name)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
End If End If
End If End If
ElseIf item.Name = "daily" Then
'Nur DE
If KASSE.rksv_FT_Country = "DE" Then
Dim result As String = client_chilkat.SignClosingReceipt(item.Name, KASSE.rksv_id, item.Name)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
End If
Else
MsgBox("nicht für AT-Kassen möglich!")
End If
ElseIf item.Name = "yearly" Then
If vbYes = MsgBox("Möchten Sie wirklich einen Jahresbeleg an die TSE schicken, anschließend kann in diesem Jahr kein Beleg mehr signiert werden!", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignClosingReceipt(item.Name, KASSE.rksv_id, item.Name)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
End If
End If
ElseIf (item.Name = "version" Or item.Name = "action" Or item.Name = "signatures" Or item.Name = "queueitem" Or item.Name = "exportJournal") Then
Dim result As String = ""
Select Case item.Name
Case "version" : result = client_chilkat.Journal(FtJournalType.VersionInformation)
Case "action" : result = client_chilkat.Journal(FtJournalType.ActionJournal)
Case "signatures" : result = client_chilkat.Journal(FtJournalType.ReceiptJournal)
Case "queueitem" : result = client_chilkat.Journal(FtJournalType.QueueItemJournal)
Case "exportJournal" : result = client_chilkat.Journal(FtJournalType.ReceiptJournal)
End Select
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
If item.Name = "exportJournal" Then
client_chilkat.exportJournal(result)
End If
End If
End If End If

View File

@@ -224,13 +224,16 @@ Public Class frmFremdbeleg
End If End If
Dim answer = "" Dim answer = ""
Dim isFiskaltrust As Boolean = False
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
Dim isFiskaltrust As Boolean = client_chilkat.isFiskaltrust()
If KASSE.rksv_aktiv Then If KASSE.rksv_aktiv Then
Dim verarbeitet As Boolean = False Dim verarbeitet As Boolean = False
If KASSE.rksv_FT_RestServiceURL <> "" Then If KASSE.rksv_FT_RestServiceURL <> "" Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, IIf(Art = 1, "Eingang", "Ausgang")) Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, IIf(Art = 1, ReceiptCaseIntern.EINGANG, ReceiptCaseIntern.AUSGANG))
'result.Wait() 'result.Wait()
verarbeitet = result verarbeitet = result
Else Else
@@ -238,17 +241,24 @@ Public Class frmFremdbeleg
End If End If
If Not verarbeitet AndAlso Not isFiskaltrust Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service If Not verarbeitet Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, BELEG.rksv_umsatz * -1) If Not isFiskaltrust Then
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, BELEG.rksv_umsatz * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
'MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
Else
BELEG.FT_MissingSignature = True 'nachträgliche Signierung, Beleg NICHT löschen!!
End If End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' BELEG = cRKSV.STORNO(BELEG, "Programmfehler") End If
'MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If End If
End If
If KASSE.rksvDE_aktiv Then If KASSE.rksvDE_aktiv Then
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service

View File

@@ -66,6 +66,8 @@ Partial Class frmKassenbuch
Me.Label14 = New System.Windows.Forms.Label() Me.Label14 = New System.Windows.Forms.Label()
Me.Label13 = New System.Windows.Forms.Label() Me.Label13 = New System.Windows.Forms.Label()
Me.pnlMain = New System.Windows.Forms.Panel() Me.pnlMain = New System.Windows.Forms.Panel()
Me.pbInitialStart = New System.Windows.Forms.PictureBox()
Me.lblInitStart = New System.Windows.Forms.Label()
Me.lblFiskaltrustHeader = New System.Windows.Forms.Label() Me.lblFiskaltrustHeader = New System.Windows.Forms.Label()
Me.picTSEOnline = New System.Windows.Forms.PictureBox() Me.picTSEOnline = New System.Windows.Forms.PictureBox()
Me.lblTSEOnline = New System.Windows.Forms.Label() Me.lblTSEOnline = New System.Windows.Forms.Label()
@@ -95,8 +97,6 @@ Partial Class frmKassenbuch
Me.UsrCntlTestsystem1 = New VERAG_PROG_ALLGEMEIN.usrCntlTestsystem() Me.UsrCntlTestsystem1 = New VERAG_PROG_ALLGEMEIN.usrCntlTestsystem()
Me.Button1 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button()
Me.cm_FT = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.cm_FT = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.lblInitStart = New System.Windows.Forms.Label()
Me.pbInitialStart = New System.Windows.Forms.PictureBox()
CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DataGridView2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DataGridView2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.pnlTop.SuspendLayout() Me.pnlTop.SuspendLayout()
@@ -104,13 +104,13 @@ Partial Class frmKassenbuch
Me.pnlSuche.SuspendLayout() Me.pnlSuche.SuspendLayout()
Me.pnlSearch.SuspendLayout() Me.pnlSearch.SuspendLayout()
Me.pnlMain.SuspendLayout() Me.pnlMain.SuspendLayout()
CType(Me.pbInitialStart, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picTSEOnline, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.picTSEOnline, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picNULLbeleg, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.picNULLbeleg, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picJahres, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.picJahres, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picMonats, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.picMonats, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picTages, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.picTages, System.ComponentModel.ISupportInitialize).BeginInit()
Me.pnl.SuspendLayout() Me.pnl.SuspendLayout()
CType(Me.pbInitialStart, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout() Me.SuspendLayout()
' '
'Label2 'Label2
@@ -668,6 +668,29 @@ Partial Class frmKassenbuch
Me.pnlMain.Size = New System.Drawing.Size(778, 433) Me.pnlMain.Size = New System.Drawing.Size(778, 433)
Me.pnlMain.TabIndex = 425 Me.pnlMain.TabIndex = 425
' '
'pbInitialStart
'
Me.pbInitialStart.BackgroundImage = Global.SDL.My.Resources.Resources.ok
Me.pbInitialStart.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.pbInitialStart.Location = New System.Drawing.Point(614, 67)
Me.pbInitialStart.Name = "pbInitialStart"
Me.pbInitialStart.Size = New System.Drawing.Size(27, 20)
Me.pbInitialStart.TabIndex = 452
Me.pbInitialStart.TabStop = False
Me.pbInitialStart.Visible = False
'
'lblInitStart
'
Me.lblInitStart.AutoSize = True
Me.lblInitStart.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblInitStart.ForeColor = System.Drawing.Color.Black
Me.lblInitStart.Location = New System.Drawing.Point(655, 71)
Me.lblInitStart.Name = "lblInitStart"
Me.lblInitStart.Size = New System.Drawing.Size(70, 16)
Me.lblInitStart.TabIndex = 451
Me.lblInitStart.Text = "Initial Start "
Me.lblInitStart.Visible = False
'
'lblFiskaltrustHeader 'lblFiskaltrustHeader
' '
Me.lblFiskaltrustHeader.AutoSize = True Me.lblFiskaltrustHeader.AutoSize = True
@@ -834,7 +857,7 @@ Partial Class frmKassenbuch
Me.lbldailyCashboxClosing.AutoSize = True Me.lbldailyCashboxClosing.AutoSize = True
Me.lbldailyCashboxClosing.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lbldailyCashboxClosing.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lbldailyCashboxClosing.ForeColor = System.Drawing.Color.Red Me.lbldailyCashboxClosing.ForeColor = System.Drawing.Color.Red
Me.lbldailyCashboxClosing.Location = New System.Drawing.Point(361, 5) Me.lbldailyCashboxClosing.Location = New System.Drawing.Point(363, 5)
Me.lbldailyCashboxClosing.Name = "lbldailyCashboxClosing" Me.lbldailyCashboxClosing.Name = "lbldailyCashboxClosing"
Me.lbldailyCashboxClosing.Size = New System.Drawing.Size(410, 16) Me.lbldailyCashboxClosing.Size = New System.Drawing.Size(410, 16)
Me.lbldailyCashboxClosing.TabIndex = 436 Me.lbldailyCashboxClosing.TabIndex = 436
@@ -972,7 +995,7 @@ Partial Class frmKassenbuch
'lblRKSV_KASSEN_Bez 'lblRKSV_KASSEN_Bez
' '
Me.lblRKSV_KASSEN_Bez.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblRKSV_KASSEN_Bez.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblRKSV_KASSEN_Bez.Location = New System.Drawing.Point(463, 3) Me.lblRKSV_KASSEN_Bez.Location = New System.Drawing.Point(542, 3)
Me.lblRKSV_KASSEN_Bez.Name = "lblRKSV_KASSEN_Bez" Me.lblRKSV_KASSEN_Bez.Name = "lblRKSV_KASSEN_Bez"
Me.lblRKSV_KASSEN_Bez.Size = New System.Drawing.Size(231, 13) Me.lblRKSV_KASSEN_Bez.Size = New System.Drawing.Size(231, 13)
Me.lblRKSV_KASSEN_Bez.TabIndex = 426 Me.lblRKSV_KASSEN_Bez.TabIndex = 426
@@ -1025,29 +1048,6 @@ Partial Class frmKassenbuch
Me.cm_FT.Name = "ContextMenuStrip1" Me.cm_FT.Name = "ContextMenuStrip1"
Me.cm_FT.Size = New System.Drawing.Size(61, 4) Me.cm_FT.Size = New System.Drawing.Size(61, 4)
' '
'lblInitStart
'
Me.lblInitStart.AutoSize = True
Me.lblInitStart.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblInitStart.ForeColor = System.Drawing.Color.Black
Me.lblInitStart.Location = New System.Drawing.Point(655, 71)
Me.lblInitStart.Name = "lblInitStart"
Me.lblInitStart.Size = New System.Drawing.Size(70, 16)
Me.lblInitStart.TabIndex = 451
Me.lblInitStart.Text = "Initial Start "
Me.lblInitStart.Visible = False
'
'pbInitialStart
'
Me.pbInitialStart.BackgroundImage = Global.SDL.My.Resources.Resources.ok
Me.pbInitialStart.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.pbInitialStart.Location = New System.Drawing.Point(614, 67)
Me.pbInitialStart.Name = "pbInitialStart"
Me.pbInitialStart.Size = New System.Drawing.Size(27, 20)
Me.pbInitialStart.TabIndex = 452
Me.pbInitialStart.TabStop = False
Me.pbInitialStart.Visible = False
'
'frmKassenbuch 'frmKassenbuch
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -1072,6 +1072,7 @@ Partial Class frmKassenbuch
Me.pnlSearch.PerformLayout() Me.pnlSearch.PerformLayout()
Me.pnlMain.ResumeLayout(False) Me.pnlMain.ResumeLayout(False)
Me.pnlMain.PerformLayout() Me.pnlMain.PerformLayout()
CType(Me.pbInitialStart, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.picTSEOnline, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.picTSEOnline, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.picNULLbeleg, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.picNULLbeleg, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.picJahres, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.picJahres, System.ComponentModel.ISupportInitialize).EndInit()
@@ -1079,7 +1080,6 @@ Partial Class frmKassenbuch
CType(Me.picTages, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.picTages, System.ComponentModel.ISupportInitialize).EndInit()
Me.pnl.ResumeLayout(False) Me.pnl.ResumeLayout(False)
Me.pnl.PerformLayout() Me.pnl.PerformLayout()
CType(Me.pbInitialStart, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False) Me.ResumeLayout(False)
End Sub End Sub

View File

@@ -1,5 +1,4 @@
Imports GrapeCity.DataVisualization.TypeScript Imports DocumentFormat.OpenXml.Drawing
Imports SDL.RKSVServer
Public Class frmKassenbuch Public Class frmKassenbuch
Dim SQL As New SQL Dim SQL As New SQL
@@ -22,6 +21,7 @@ Public Class frmKassenbuch
Dim InitialStartIsCreated As Boolean = True Dim InitialStartIsCreated As Boolean = True
Dim OutOfOrderIsCreated As Boolean = False Dim OutOfOrderIsCreated As Boolean = False
Dim TSEIsOnline As Boolean = False Dim TSEIsOnline As Boolean = False
Dim MiddlewareIsOnline As Boolean = False
Dim isADMIN As Boolean = False Dim isADMIN As Boolean = False
@@ -106,7 +106,7 @@ Public Class frmKassenbuch
End Sub End Sub
Private Sub InitFiskaltrust(isOnline As Boolean, tagesabschluss As Boolean, Montagsabschluss As Boolean, Jahresabschluss As Boolean, NULLBeleg As Boolean, initialStart As Boolean) Private Sub InitFiskaltrust(TSEisOnline As Boolean, tagesabschluss As Boolean, Montagsabschluss As Boolean, Jahresabschluss As Boolean, NULLBeleg As Boolean, initialStart As Boolean)
lblTSEOnline.Visible = True lblTSEOnline.Visible = True
lblTages.Visible = True lblTages.Visible = True
@@ -123,7 +123,7 @@ Public Class frmKassenbuch
picTSEOnline.Visible = True picTSEOnline.Visible = True
pbInitialStart.Visible = True pbInitialStart.Visible = True
showPic(isOnline, picTSEOnline) showPic(TSEisOnline, picTSEOnline)
showPic(tagesabschluss, picTages) showPic(tagesabschluss, picTages)
showPic(monatsabschlussIsSet, picMonats) showPic(monatsabschlussIsSet, picMonats)
showPic(Jahresabschluss, picJahres) showPic(Jahresabschluss, picJahres)
@@ -158,9 +158,6 @@ Public Class frmKassenbuch
btnBelegAusgang.Enabled = False btnBelegAusgang.Enabled = False
pnl.Visible = True pnl.Visible = True
'sqlstr = "SELECT Sum(tblKassenbuch.Soll) AS Soll, Sum(tblKassenbuch.Haben) AS Haben, (Sum(tblKassenbuch.Soll)-Sum(tblKassenbuch.Haben)) AS Saldo " & 'sqlstr = "SELECT Sum(tblKassenbuch.Soll) AS Soll, Sum(tblKassenbuch.Haben) AS Haben, (Sum(tblKassenbuch.Soll)-Sum(tblKassenbuch.Haben)) AS Saldo " &
' " FROM Personal INNER JOIN tblKassenbuch ON Personal.ID = tblKassenbuch.Benutzer " & ' " FROM Personal INNER JOIN tblKassenbuch ON Personal.ID = tblKassenbuch.Benutzer " &
' " WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' AND tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' " & ' " WHERE tblKassenbuch.Mandant='" & PERSONAL.Mandant & "' AND tblKassenbuch.Niederlassung='" & PERSONAL.Niederlassung & "' " &
@@ -209,64 +206,86 @@ Public Class frmKassenbuch
End If End If
If PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken IsNot Nothing Then lbldailyCashboxClosing.Text = ""
resetFIskaltrust() If PERSONAL.cRKSV_Kasse IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_Country IsNot Nothing Then
lbldailyCashboxClosing.Visible = True
Button11.Visible = True
Dim tagesabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Day(ftReceiptMoment) = Day(GETDATE()) and ftEndOfDayReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL"))
If tagesabschluss > 0 Then tagesabschlussIsSet = True
Dim monatsabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Month(ftReceiptMoment) = Month(GETDATE()) and ftEndOfMonthReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL"))
If monatsabschluss > 0 Then monatsabschlussIsSet = True
Dim jahresabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Year(ftReceiptMoment) = Year(GETDATE()) and ftEndOfYearReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL"))
If jahresabschluss > 0 Then jahresabschlussIsSet = True
If PERSONAL.cRKSV_Kasse.rksv_FT_ZeroReceiptCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_ZeroReceiptCreated) Then
NULLBelegIsCreated = False
End If
If Not (PERSONAL.cRKSV_Kasse.rksv_FT_OutOfOrderCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_OutOfOrderCreated)) Then
OutOfOrderIsCreated = True
End If
If PERSONAL.cRKSV_Kasse.rksv_FT_InitialStartCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_InitialStartCreated) Then
InitialStartIsCreated = False
End If
Dim client_chilkat As New cFiskaltrustClient_chilkat(PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL, PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID, PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken, PERSONAL.cRKSV_Kasse.rksv_FT_Country) Dim client_chilkat As New cFiskaltrustClient_chilkat(PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL, PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID, PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken, PERSONAL.cRKSV_Kasse.rksv_FT_Country)
Dim result As String = client_chilkat.Echo(PERSONAL.cRKSV_Kasse.rksv_bez & " " & PERSONAL.cRKSV_Kasse.rksv_FT_Country & " - ") If client_chilkat.isFiskaltrust() Then
If result.Contains("VERBINDUNG OK") Then resetFIskaltrust()
TSEIsOnline = True
End If
InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated) lbldailyCashboxClosing.Visible = True
Button11.Visible = True
If Not NULLBelegIsCreated Then Dim tagesabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Day(ftReceiptMoment) = Day(GETDATE()) and ftEndOfDayReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL"))
diasableBarverkauf("NULLBELEG") If tagesabschluss > 0 Then tagesabschlussIsSet = True
ElseIf tagesabschlussIsSet Then
diasableBarverkauf("TAGESABSCHLUSS") Dim monatsabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Month(ftReceiptMoment) = Month(GETDATE()) and ftEndOfMonthReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL"))
ElseIf OutOfOrderIsCreated Then If monatsabschluss > 0 Then monatsabschlussIsSet = True
diasableBarverkauf("OUTOFORDER")
Else Dim jahresabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Year(ftReceiptMoment) = Year(GETDATE()) and ftEndOfYearReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL"))
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then If jahresabschluss > 0 Then jahresabschlussIsSet = True
btnBelegKunde.Enabled = True If PERSONAL.cRKSV_Kasse.rksv_FT_ZeroReceiptCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_ZeroReceiptCreated) Then
btnBelegAusgang.Enabled = True NULLBelegIsCreated = False
btnBelegEingang.Enabled = True
btnBelegGSKunde.Enabled = True
btnBelegLeihgeld.Enabled = True
btnStorno.Enabled = True
End If End If
If Not (PERSONAL.cRKSV_Kasse.rksv_FT_OutOfOrderCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_OutOfOrderCreated)) Then
OutOfOrderIsCreated = True
End If
If PERSONAL.cRKSV_Kasse.rksv_FT_InitialStartCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_InitialStartCreated) Then
InitialStartIsCreated = False
End If
Dim result As String = client_chilkat.Echo(PERSONAL.cRKSV_Kasse.rksv_bez & " " & PERSONAL.cRKSV_Kasse.rksv_FT_Country & " - ")
If result IsNot Nothing Then
If result.Contains("VERBINDUNG OK") Then
TSEIsOnline = True
MiddlewareIsOnline = True
Else
TSEIsOnline = False
MiddlewareIsOnline = True
End If
Else
TSEIsOnline = False
MiddlewareIsOnline = False
End If
InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated)
If Not MiddlewareIsOnline Then
diasableBarverkauf("MIDDLEWARE")
ElseIf Not InitialStartIsCreated Then
diasableBarverkauf("INITIALSTART")
ElseIf tagesabschlussIsSet Then
diasableBarverkauf("TAGESABSCHLUSS")
ElseIf OutOfOrderIsCreated Then
diasableBarverkauf("OUTOFORDER")
Else
lbldailyCashboxClosing.Text = ""
If Not TSEIsOnline Then
lbldailyCashboxClosing.Text = "TSE ist OFFLINE: Belege werden nachträglich signiert!"
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then
btnBelegKunde.Enabled = True
btnBelegAusgang.Enabled = True
btnBelegEingang.Enabled = True
btnBelegGSKunde.Enabled = True
btnBelegLeihgeld.Enabled = True
btnStorno.Enabled = True
End If
End If
Else
lbldailyCashboxClosing.Visible = False
Button11.Visible = False
End If End If
Else
lbldailyCashboxClosing.Visible = False
Button11.Visible = False
End If End If
@@ -277,9 +296,11 @@ Public Class frmKassenbuch
Private Sub diasableBarverkauf(status) Private Sub diasableBarverkauf(status)
Select Case status Select Case status
Case "NULLBELEG" : lbldailyCashboxClosing.Text = "Es wurde noch kein 0-Beleg über FT erstellt!" ' Case "NULLBELEG" : lbldailyCashboxClosing.Text = "Es wurde kein 0-Beleg erstellt (OPTIONAL)"
Case "TAGESABSCHLUSS" : lbldailyCashboxClosing.Text = "Tagesabschluss für heute wurde bereits durchgeführt!" Case "INITIALSTART" : lbldailyCashboxClosing.Text = "Kasse wurde noch nicht gestartet!"
Case "TAGESABSCHLUSS" : lbldailyCashboxClosing.Text = "Tagesabschluss wurde bereits durchgeführt!"
Case "OUTOFORDER" : lbldailyCashboxClosing.Text = "STATUS: INAKTIV!" Case "OUTOFORDER" : lbldailyCashboxClosing.Text = "STATUS: INAKTIV!"
Case "MIDDLEWARE" : lbldailyCashboxClosing.Text = "Middleware ist OFFLINE!"
End Select End Select
btnBelegKunde.Enabled = False btnBelegKunde.Enabled = False
@@ -321,7 +342,7 @@ Public Class frmKassenbuch
End Sub End Sub
Dim searchdate As Date = CDate("01." & Now.Month & "." & Now.Year) Dim searchdate As Date = CDate("01." & Now.Month & "." & Now.Year)
Sub initDgv() Sub initDgv(Optional isFiskaltrust As Boolean = False)
With DataGridView2 With DataGridView2
.Columns.Clear() .Columns.Clear()
@@ -343,9 +364,10 @@ Public Class frmKassenbuch
If PERSONAL.isLeihgeldkasse Then If PERSONAL.isLeihgeldkasse Then
lgTxt = ",[Fahrer],[Passnummer] " lgTxt = ",[Fahrer],[Passnummer] "
End If End If
.SET_SQL("SELECT b.rksv_BelegId, b.BelegDat, CASE WHEN b.Belegart=1 THEN 'E' ELSE 'A' END as Belegart,CASE WHEN b.Beleg_TYP='E' THEN rksv_umsatz ELSE (SELECT sum( betrag ) FROM tblEABelegposition WHERE (b.BelegNr = tblEABelegposition.BelegNr) AND (b.BelegDat = tblEABelegposition.BelegDat) AND (b.Benutzer = tblEABelegposition.Benutzer) AND (b.Niederlassung = tblEABelegposition.Niederlassung) AND (b.Mandant = tblEABelegposition.Mandant ) ) END as Betrag, b.Ordnungsbegriff, b.BelegNr, b.Frachtführer, " & .SET_SQL("SELECT b.rksv_BelegId, b.BelegDat, CASE WHEN b.Belegart=1 THEN 'E' ELSE 'A' END as Belegart,CASE WHEN b.Beleg_TYP='E' THEN rksv_umsatz ELSE (SELECT sum( betrag ) FROM tblEABelegposition WHERE (b.BelegNr = tblEABelegposition.BelegNr) AND (b.BelegDat = tblEABelegposition.BelegDat) AND (b.Benutzer = tblEABelegposition.Benutzer) AND (b.Niederlassung = tblEABelegposition.Niederlassung) AND (b.Mandant = tblEABelegposition.Mandant ) ) END as Betrag, b.Ordnungsbegriff, b.BelegNr, b.Frachtführer, " &
" CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP & lgTxt & ", b.ECZahlungsPerAPI as EC,b.ECZahlungsNr as ECNr, mit_username as kassiert" & " CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP & lgTxt & ", b.ECZahlungsPerAPI as EC,b.ECZahlungsNr as ECNr, mit_username as kassiert,[FT_MissingSignature]" &
" FROM tblEABelegnummer as b LEFT JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & " .[ADMIN].[dbo].[tblMitarbeiter] on durchfuehrender_Benutzer = mit_id WHERE b.Mandant='" & PERSONAL.Mandant & "' AND b.Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' " & " FROM tblEABelegnummer as b LEFT JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & " .[ADMIN].[dbo].[tblMitarbeiter] on durchfuehrender_Benutzer = mit_id WHERE b.Mandant='" & PERSONAL.Mandant & "' AND b.Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' AND b.rksv_BelegId > -1" &
" ORDER BY b.rksv_BelegId DESC, b.[upsize_ts] desc;", "FMZOLL") " ORDER BY b.rksv_BelegId DESC, b.[upsize_ts] desc;", "FMZOLL")
' .DataSource = SQL.loadDgvBySql("SELECT b.rksv_BelegId, b.BelegDat, CASE WHEN b.Belegart=1 THEN 'E' ELSE 'A' END as Belegart,CASE WHEN b.Beleg_TYP='E' THEN rksv_umsatz ELSE (SELECT sum( betrag ) FROM tblEABelegposition WHERE (b.BelegNr = tblEABelegposition.BelegNr) AND (b.BelegDat = tblEABelegposition.BelegDat) AND (b.Benutzer = tblEABelegposition.Benutzer) AND (b.Niederlassung = tblEABelegposition.Niederlassung) AND (b.Mandant = tblEABelegposition.Mandant ) ) END as Betrag, b.Ordnungsbegriff, b.BelegNr, b.Frachtführer, " & ' .DataSource = SQL.loadDgvBySql("SELECT b.rksv_BelegId, b.BelegDat, CASE WHEN b.Belegart=1 THEN 'E' ELSE 'A' END as Belegart,CASE WHEN b.Beleg_TYP='E' THEN rksv_umsatz ELSE (SELECT sum( betrag ) FROM tblEABelegposition WHERE (b.BelegNr = tblEABelegposition.BelegNr) AND (b.BelegDat = tblEABelegposition.BelegDat) AND (b.Benutzer = tblEABelegposition.Benutzer) AND (b.Niederlassung = tblEABelegposition.Niederlassung) AND (b.Mandant = tblEABelegposition.Mandant ) ) END as Betrag, b.Ordnungsbegriff, b.BelegNr, b.Frachtführer, " &
' " CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP & ' " CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP &
@@ -385,10 +407,22 @@ Public Class frmKassenbuch
.Columns("Passnummer").Visible = False .Columns("Passnummer").Visible = False
End If End If
If .Columns.Contains("FT_MissingSignature") Then
.Columns("FT_MissingSignature").HeaderText = "fehl Sig."
.Columns("FT_MissingSignature").Width = 45
For Each r As DataGridViewRow In .Rows
If Not IsDBNull(r.Cells("FT_MissingSignature").Value) AndAlso r.Cells("FT_MissingSignature").Value Then
r.DefaultCellStyle.ForeColor = Color.Red
End If
Next
End If
If master_Kasse Then If master_Kasse Then
.Columns("BenutzerBez").HeaderText = "Benutzer" 'gibts bei bei master .Columns("BenutzerBez").HeaderText = "Benutzer" 'gibts bei bei master
End If End If
For Each r As DataGridViewRow In .Rows For Each r As DataGridViewRow In .Rows
If r.Cells("storniert").Value = "JA" Then If r.Cells("storniert").Value = "JA" Then
r.DefaultCellStyle.ForeColor = Color.Red r.DefaultCellStyle.ForeColor = Color.Red
@@ -1160,9 +1194,11 @@ Public Class frmKassenbuch
If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso IsNumeric(KASSETmp.rksv_FT_CashboxID) AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso IsNumeric(KASSETmp.rksv_FT_CashboxID) AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country) Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country)
If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer) Then If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer, TSEIsOnline) Then
MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub Exit Sub
Else
BELEGTmp.rksv_qr = QRQString
End If End If
Else Else
@@ -1242,7 +1278,7 @@ Public Class frmKassenbuch
If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country) Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country)
If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer) Then If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer, TSEIsOnline) Then
MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub Exit Sub
End If End If
@@ -1363,7 +1399,7 @@ Public Class frmKassenbuch
End If End If
End Sub End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim f As New frmKassenbuchPWD(PERSONAL) Dim f As New frmKassenbuchPWD(PERSONAL)
If f.ShowDialog() = Windows.Forms.DialogResult.OK Then If f.ShowDialog() = Windows.Forms.DialogResult.OK Then
@@ -1546,6 +1582,8 @@ Public Class frmKassenbuch
Private Sub Button11_Click_1(sender As Object, e As EventArgs) Handles Button11.Click Private Sub Button11_Click_1(sender As Object, e As EventArgs) Handles Button11.Click
cm_FT.Items.Clear()
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
'nur im Testsystem! 'nur im Testsystem!
If Not cm_FT.Items.ContainsKey("bar") AndAlso isADMIN Then If Not cm_FT.Items.ContainsKey("bar") AndAlso isADMIN Then
@@ -1574,7 +1612,7 @@ Public Class frmKassenbuch
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If End If
If Not cm_FT.Items.ContainsKey("initialstart") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then If Not cm_FT.Items.ContainsKey("initialstart") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated AndAlso Not InitialStartIsCreated Then
Dim plose = New ToolStripMenuItem() With {.Text = "Initial Start", .Name = "initialstart", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} Dim plose = New ToolStripMenuItem() With {.Text = "Initial Start", .Name = "initialstart", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
cm_FT.Items.Add(plose) cm_FT.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
@@ -1634,6 +1672,13 @@ Public Class frmKassenbuch
cm_FT.Items.Add(ids) cm_FT.Items.Add(ids)
End If End If
If Not cm_FT.Items.ContainsKey("setMissingSignatures") Then
Dim ids = New ToolStripMenuItem() With {.Text = "fehlende Signaturen nachtragen", .Name = "setMissingSignatures", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
cm_FT.Items.Add(ids)
End If
cm_FT.Show(Cursor.Position) cm_FT.Show(Cursor.Position)
End Sub End Sub
@@ -1674,6 +1719,93 @@ Public Class frmKassenbuch
End If End If
ElseIf item.Name = "setMissingSignatures" Then
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [tblEABelegnummer] WHERE [rksv_id]='" & PERSONAL.cRKSV_KasseID & "' AND isnull(FT_MissingSignature,0)=1", "FMZOLL")
If dt.Rows.Count = 0 Then
MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " existieren keine unsignierten Belege!")
Return False
End If
If vbYes = MsgBox("Möchten die " & dt.Rows.Count & " nicht signierten Belege an die TSE schicken?", vbYesNoCancel) Then
Dim result As Boolean = False
For Each r As DataRow In dt.Rows
Dim BELEG = New EABeleg("LOAD", r("Mandant"), r("Niederlassung"), r("Benutzer"), r("BelegNr"), r("BelegDat"))
Dim summeBRUTTO As Double = BELEG.rksv_umsatz
Dim QR_CodeString As String = ""
Dim LastJWS As String = ""
Dim EA As String = ""
Dim kindOfReceiptCase As String = ""
Select Case BELEG.Beleg_TYP
Case "0"
Continue For 'null Belege nicht senden!
Case "E" 'Eingang/Ausgang
If BELEG.Belegart = "1" Then
EA = "E"
Else
EA = "A"
End If
Case "L"
If BELEG.Belegart = "1" Then
EA = "E"
Else
EA = "A"
End If
Case Else
If BELEG.Belegart = "1" Then
EA = "E"
Else
EA = "A"
End If
End Select
kindOfReceiptCase = ReceiptCaseIntern.WIEDERHOLUNG
result = cRKSV.insertRKSVFiskaltrustAsync(PERSONAL.cRKSV_Kasse, BELEG, BELEG.rksv_BelegId, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), False, QR_CodeString, LastJWS, kindOfReceiptCase, BELEG.FT_ReceiptReference)
If result Then
BELEG.FT_MissingSignature = False
BELEG.SAVE()
Else
MsgBox("Fehler bei der nachträglichen Signierung von BelegNr: " & BELEG.BelegNr & vbNewLine & "Beleg wurde nicht in der QUEUE gefunden!" & vbNewLine & "Beleg muss erneut an Fiskaltrust gesendet werden!")
BELEG.FT_MissingSignature = False
BELEG.FT_setMissingSignatureFailed = True
BELEG.SAVE()
End If
Next
If result Then
init()
End If
End If
ElseIf item.Name = "tempoutoforder" Then
If vbYes = MsgBox("Möchten Sie einen temp. Ausfall an die TSE schicken?" & vbNewLine & "Falls die TSE zwar Online ist, jedoch ein technischer Fehler beim Signieren besteht", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignOutOfOrderReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_OUTOFORDERBELEG()
init()
End If
End If
ElseIf item.Name = "outoforder" Then ElseIf item.Name = "outoforder" Then
@@ -1701,7 +1833,7 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen Start an die TSE schicken?", vbYesNoCancel) Then If vbYes = MsgBox("Möchten Sie einen Start an die TSE schicken?", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignOInitialOperationReceipt(PERSONAL.cRKSV_Kasse.rksv_id) Dim result As String = client_chilkat.SignInitialOperationReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then If result <> "" Then
@@ -1733,7 +1865,7 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie wirklich einen Teststorno durchführen?" & vbNewLine & "NIEMALS auf einer produktiven TSE durchführen!", vbYesNoCancel) Then If vbYes = MsgBox("Möchten Sie wirklich einen Teststorno durchführen?" & vbNewLine & "NIEMALS auf einer produktiven TSE durchführen!", vbYesNoCancel) Then
Dim result As String = client_chilkat.ChancelReceipt_test("-1", PERSONAL.cRKSV_Kasse.rksv_id) Dim result As String = client_chilkat.ChancelReceipt_test("-1", PERSONAL.cRKSV_Kasse.rksv_id, TSEIsOnline)
If result <> "" Then If result <> "" Then
@@ -1754,7 +1886,7 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie wirklich einen Testzahlung durchführen?" & vbNewLine & "NIEMALS auf einer produktiven TSE durchführen!", vbYesNoCancel) Then If vbYes = MsgBox("Möchten Sie wirklich einen Testzahlung durchführen?" & vbNewLine & "NIEMALS auf einer produktiven TSE durchführen!", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignReceipt_test(PERSONAL.cRKSV_Kasse.rksv_id) Dim result As String = client_chilkat.SignReceipt_test(PERSONAL.cRKSV_Kasse.rksv_id, TSEIsOnline)
If result <> "" Then If result <> "" Then
@@ -1853,7 +1985,7 @@ Public Class frmKassenbuch
ElseIf (item.Name = "version" Or item.Name = "action" Or item.Name = "signatures" Or item.Name = "queueitem" Or item.Name = "exportJournal") Then ElseIf (item.Name = "version" Or item.Name = "action" Or item.Name = "signatures" Or item.Name = "queueitem" Or item.Name = "exportJournal") Then
Dim result As String = "" Dim result As String = ""
Select Case item.Name Select Case item.Name
Case "version" : result = client_chilkat.Journal(FtJournalType.VersionInformation) Case "version" : result = client_chilkat.Journal(FtJournalType.VersionInformation)
Case "action" : result = client_chilkat.Journal(FtJournalType.ActionJournal) Case "action" : result = client_chilkat.Journal(FtJournalType.ActionJournal)

View File

@@ -1,5 +1,6 @@
 
Imports GrapeCity.ActiveReports Imports GrapeCity.ActiveReports
Imports java.security.acl
Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN
Public Class frmNacherfassungLeihgeld Public Class frmNacherfassungLeihgeld
@@ -363,143 +364,158 @@ Public Class frmNacherfassungLeihgeld
Dim QR_CodeString As String = "" Dim QR_CodeString As String = ""
Dim LastJWS As String = "" Dim LastJWS As String = ""
Dim isFiskaltrust As Boolean = False Dim isFiskaltrust As Boolean = False
If KASSE.rksv_FT_RestServiceURL IsNot Nothing AndAlso KASSE.rksv_FT_CashboxID IsNot Nothing AndAlso KASSE.rksv_FT_AccessToken IsNot Nothing AndAlso KASSE.rksv_FT_Country IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
isFiskaltrust = client_chilkat.isFiskaltrust()
End If
If KASSE.rksv_aktiv Then ' WENN für die Kasse die RKSV gilt If KASSE.rksv_aktiv Then ' WENN für die Kasse die RKSV gilt
Dim answer = "" Dim answer = ""
Dim verarbeitet As Boolean = False Dim verarbeitet As Boolean = False
If KASSE.rksv_FT_RestServiceURL <> "" Then If isFiskaltrust Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, "Verkauf") Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, "Verkauf")
'result.Wait() 'result.Wait()
verarbeitet = result verarbeitet = result
Else
verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
End If
If Not verarbeitet AndAlso Not isFiskaltrust Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summeBRUTTO * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
If KASSE.rksvDE_aktiv Then ' WENN für die Kasse die RKSV gilt
Dim answer = ""
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summeBRUTTO * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If
If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If KASSE.rksv_KassaGuid = "KASSE_01" Then
BELEG.rksv_jws = Nothing
BELEG.rksv_qr = Nothing
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
End If
'RKSV-Daten beim Beleg ergänzen:
BELEG.rksv_jws = LastJWS
BELEG.rksv_qr = QR_CodeString
BELEG.rksv_BelegId = RKSV_Beleg_Id
BELEG.rksv_id = KASSE.rksv_id
BELEG.rksv_umsatz = summeBRUTTO
BELEG.rksv_aktiv = (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv)
BELEG.SAVE()
'Zuerst, damit Provisionsbetrag auf Aktendeckel gedruckt wird...
Dim barbetrag As Double = 0
Dim BelegNrProvision = 0
If cbxProvision.Checked Then
printProvision(barbetrag, BelegNrProvision, cbxProvinMAKassa.Checked)
End If
'printBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString) 'Beleg drucken
cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") 'Beleg drucken
If cboPrintAktendeckel.Checked Then printLGAktendeckel("PRINT", barbetrag, BelegNrProvision)
'nur bei VERAG die fragen
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" OrElse VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" OrElse vbYes = MsgBox("Daten ins Speditionsbuch eintragen?", vbYesNoCancel) Then
Dim abbruch As Boolean = False
If cRKSV.SpedBuchExists(BELEG) Then
If vbYes = MsgBox("Speditionsbuch Eintrag existiert bereits - Daten überschreiben?", vbYesNoCancel) Then
abbruch = True
End If
End If
If Not abbruch Then
cRKSV.insertToSpedBuch(PERSONAL, PERSONAL_LG, BELEG, AvisoID, , barbetrag, BelegNrProvision)
Dim spedBuchExisting As Boolean = cRKSV.SpedBuchExists(BELEG)
If Not spedBuchExisting Then
MsgBox("Speditionsbuch-Eintrag fehlgeschlagen!!")
Else Else
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then 'nur bei VERAG verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If vbYes = MsgBox("Speditionsbuch anzeigen?", vbYesNoCancel) Then
Dim frmNacherfassung As New frmNacherfassungNEU()
frmNacherfassung.srchFiliale = BELEG.FilialenNr
frmNacherfassung.srchAbfertigungsnummer = BELEG.AbfertigungsNr
frmNacherfassung.srchUnterNr = 0
frmNacherfassung.ShowDialog(Me)
End If
End If
End If End If
If Not verarbeitet Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not isFiskaltrust Then
If Not TESTBUCHUNG Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" AndAlso spedBuchExisting Then KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summeBRUTTO * -1)
Dim verarbOK As Boolean = True cRKSV.DELETE(BELEG, KASSE.rksv_firma)
Dim SPEDBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(BELEG.FilialenNr, BELEG.AbfertigungsNr)
SPEDBUCH.BelegNr = BelegNrFIBU
Dim RK_ID As Integer = -1
If Not gen_RECHNUNG_BySPEDBUCH(BELEG.KundenNr, SPEDBUCH, RK_ID, cbxOP_sofort_buchen.Checked, summeBRUTTO, summeNETTO, BELEG) Then verarbOK = False
If RK_ID > 0 Then
Dim RECHNUNG As New cRechnungsausgang(RK_ID)
RECHNUNG.KdAuftragsNr = BelegNrFIBU
If Not cFakturierung.doRechnungsDruck(RECHNUNG, Today(),, 4) Then verarbOK = False
If RECHNUNG.[DruckDatumZeit] IsNot Nothing Then
RECHNUNG.[DruckDatumZeit] = Nothing
RECHNUNG.SAVE_DruckDatumZeit()
End If End If
End If MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
If verarbOK Then
'MsgBox("Rechnung erstellt!")
Else Else
MsgBox("Fehler bei Rechnungserstellung!") BELEG.FT_MissingSignature = True
End If End If
End If End If
If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
If KASSE.rksvDE_aktiv Then ' WENN für die Kasse die RKSV gilt
Dim answer = ""
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summeBRUTTO * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If
If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If KASSE.rksv_KassaGuid = "KASSE_01" Then
BELEG.rksv_jws = Nothing
BELEG.rksv_qr = Nothing
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
End If End If
'RKSV-Daten beim Beleg ergänzen:
BELEG.rksv_jws = LastJWS
BELEG.rksv_qr = QR_CodeString
BELEG.rksv_BelegId = RKSV_Beleg_Id
BELEG.rksv_id = KASSE.rksv_id
BELEG.rksv_umsatz = summeBRUTTO
BELEG.rksv_aktiv = (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv)
BELEG.SAVE()
'Zuerst, damit Provisionsbetrag auf Aktendeckel gedruckt wird...
Dim barbetrag As Double = 0
Dim BelegNrProvision = 0
If cbxProvision.Checked Then
printProvision(barbetrag, BelegNrProvision, cbxProvinMAKassa.Checked)
End If
'printBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString) 'Beleg drucken
cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") 'Beleg drucken
If cboPrintAktendeckel.Checked Then printLGAktendeckel("PRINT", barbetrag, BelegNrProvision)
'nur bei VERAG die fragen
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" OrElse VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" OrElse vbYes = MsgBox("Daten ins Speditionsbuch eintragen?", vbYesNoCancel) Then
Dim abbruch As Boolean = False
If cRKSV.SpedBuchExists(BELEG) Then
If vbYes = MsgBox("Speditionsbuch Eintrag existiert bereits - Daten überschreiben?", vbYesNoCancel) Then
abbruch = True
End If
End If
If Not abbruch Then
cRKSV.insertToSpedBuch(PERSONAL, PERSONAL_LG, BELEG, AvisoID, , barbetrag, BelegNrProvision)
Dim spedBuchExisting As Boolean = cRKSV.SpedBuchExists(BELEG)
If Not spedBuchExisting Then
MsgBox("Speditionsbuch-Eintrag fehlgeschlagen!!")
Else
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then 'nur bei VERAG
If vbYes = MsgBox("Speditionsbuch anzeigen?", vbYesNoCancel) Then
Dim frmNacherfassung As New frmNacherfassungNEU()
frmNacherfassung.srchFiliale = BELEG.FilialenNr
frmNacherfassung.srchAbfertigungsnummer = BELEG.AbfertigungsNr
frmNacherfassung.srchUnterNr = 0
frmNacherfassung.ShowDialog(Me)
End If
End If
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" AndAlso spedBuchExisting Then
Dim verarbOK As Boolean = True
Dim SPEDBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(BELEG.FilialenNr, BELEG.AbfertigungsNr)
SPEDBUCH.BelegNr = BelegNrFIBU
Dim RK_ID As Integer = -1
If Not gen_RECHNUNG_BySPEDBUCH(BELEG.KundenNr, SPEDBUCH, RK_ID, cbxOP_sofort_buchen.Checked, summeBRUTTO, summeNETTO, BELEG) Then verarbOK = False
If RK_ID > 0 Then
Dim RECHNUNG As New cRechnungsausgang(RK_ID)
RECHNUNG.KdAuftragsNr = BelegNrFIBU
If Not cFakturierung.doRechnungsDruck(RECHNUNG, Today(),, 4) Then verarbOK = False
If RECHNUNG.[DruckDatumZeit] IsNot Nothing Then
RECHNUNG.[DruckDatumZeit] = Nothing
RECHNUNG.SAVE_DruckDatumZeit()
End If
End If
If verarbOK Then
'MsgBox("Rechnung erstellt!")
Else
MsgBox("Fehler bei Rechnungserstellung!")
End If
End If
End If
End If
Me.Close()
Me.DialogResult = Windows.Forms.DialogResult.OK
Me.Cursor = Cursors.Default
End If End If
Me.Close()
Me.DialogResult = Windows.Forms.DialogResult.OK
Me.Cursor = Cursors.Default
End If
Catch ex As Exception Catch ex As Exception
Me.Cursor = Cursors.Default Me.Cursor = Cursors.Default
MsgBox("Allgemeiner Programmfehler - Belegerfassung wird geschlossen!" & If(BELEG.rksv_BelegId > 0, "ACHTUNG: BELEG BEREITS SIGNIERT!!!", "") & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) MsgBox("Allgemeiner Programmfehler - Belegerfassung wird geschlossen!" & If(BELEG.rksv_BelegId > 0, "ACHTUNG: BELEG BEREITS SIGNIERT!!!", "") & vbNewLine & vbNewLine & ex.Message & ex.StackTrace)

View File

@@ -3147,13 +3147,13 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land
sqlGroup = " CASE WHEN tblIDSTransactionsNew.OutletCode BETWEEN 4473 AND 4474 THEN 'Austria Suben' ELSE tblIDSTransactionsNew.OutletCountry END" sqlGroup = " CASE WHEN tblIDSTransactionsNew.OutletCode BETWEEN 4473 AND 4474 THEN 'Austria Suben' ELSE tblIDSTransactionsNew.OutletCountry END"
End Select End Select
sqlstr &= " SELECT Adressen.AdressenNr, Adressen.[Name 1], Adressen.[Name 2], Adressen.Straße, Adressen.LandKz, Adressen.PLZ, Adressen.Ort, Adressen.UstIdKz, Adressen.UstIdNr, tblIDSTransactionsNew.[CustomerCode], " & sqlSelect & ", tbl_IDS_Produkte.ProductDescription, tbl_IDS_Länder.Steuersatz, tblIDSTransactionsNew.Rechenwert, tblIDSTransactionsNew.Kz, Sum(tblIDSTransactionsNew.[TransactionVolume]) AS Liter, Sum(tblIDSTransactionsNew.[TotalNetAmount]) AS Nettobetrag, Sum(tblIDSTransactionsNew.[VATAmount]) AS Steuerbetrag, sqlstr &= " SELECT Adressen.AdressenNr, Adressen.[Name 1], Adressen.[Name 2], Adressen.Straße, Adressen.LandKz, Adressen.PLZ, Adressen.Ort, Adressen.UstIdKz, Adressen.UstIdNr, tblIDSTransactionsNew.[CustomerCode], " & sqlSelect & ", tbl_IDS_Produkte.ProductDescription,tbl_IDS_Stationen.OutletName, tbl_IDS_Länder.Steuersatz, tblIDSTransactionsNew.Rechenwert, tblIDSTransactionsNew.Kz, Sum(tblIDSTransactionsNew.[TransactionVolume]) AS Liter, Sum(tblIDSTransactionsNew.[TotalNetAmount]) AS Nettobetrag, Sum(tblIDSTransactionsNew.[VATAmount]) AS Steuerbetrag,
case when Sum([TransactionVolume]) =0 THEN 0 ELSE Sum([TotalNetAmount])/Sum([TransactionVolume]) END AS NettopreisProLiter, case when Sum([TransactionVolume]) =0 THEN 0 ELSE Sum([TotalNetAmount])/Sum([TransactionVolume]) END AS NettopreisProLiter,
Sum(tblIDSTransactionsNew.Rabattbetrag) AS [SummevonRabattbetrag], Sum(tblIDSTransactionsNew.Rabattbetrag) AS [SummevonRabattbetrag],
case when Sum([TransactionVolume]) =0 THEN 0 ELSE Sum([Rabattbetrag])/Sum([TransactionVolume]) END AS RabattbetragProLiter case when Sum([TransactionVolume]) =0 THEN 0 ELSE Sum([Rabattbetrag])/Sum([TransactionVolume]) END AS RabattbetragProLiter
FROM ((tblIDSTransactionsNew INNER JOIN tbl_IDS_Länder ON tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode) INNER JOIN tbl_IDS_Produkte ON tblIDSTransactionsNew.[ProductTypeCode] = tbl_IDS_Produkte.ProductTypeCode) INNER JOIN Adressen ON tblIDSTransactionsNew.KdNrVERAG = Adressen.AdressenNr FROM ((tblIDSTransactionsNew INNER JOIN tbl_IDS_Länder ON tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode) INNER JOIN tbl_IDS_Produkte ON tblIDSTransactionsNew.[ProductTypeCode] = tbl_IDS_Produkte.ProductTypeCode INNER JOIN tbl_IDS_Stationen ON tblIDSTransactionsNew.OutletCountryCode = tbl_IDS_Stationen.OutletCountryCode and tblIDSTransactionsNew.OutletCode = tbl_IDS_Stationen.OutletCode) INNER JOIN Adressen ON tblIDSTransactionsNew.KdNrVERAG = Adressen.AdressenNr
WHERE cast(tblIDSTransactionsNew.YearMonthDay as Date) = '" & DateTimePicker2.Text & "' AND tblIDSTransactionsNew.KdNrVERAG = " & KdNr & sqlWhere & " WHERE cast(tblIDSTransactionsNew.YearMonthDay as Date) = '" & DateTimePicker2.Text & "' AND tblIDSTransactionsNew.KdNrVERAG = " & KdNr & sqlWhere & "
GROUP BY Adressen.AdressenNr, Adressen.[Name 1], Adressen.[Name 2], Adressen.Straße, Adressen.LandKz, Adressen.PLZ, Adressen.Ort, Adressen.UstIdKz, Adressen.UstIdNr, tblIDSTransactionsNew.[CustomerCode], " & sqlGroup & ", tbl_IDS_Produkte.ProductDescription, tbl_IDS_Länder.Steuersatz, tblIDSTransactionsNew.Rechenwert, tblIDSTransactionsNew.Kz; GROUP BY Adressen.AdressenNr, Adressen.[Name 1], Adressen.[Name 2], Adressen.Straße, Adressen.LandKz, Adressen.PLZ, Adressen.Ort, Adressen.UstIdKz, Adressen.UstIdNr, tblIDSTransactionsNew.[CustomerCode], " & sqlGroup & ", tbl_IDS_Produkte.ProductDescription, tbl_IDS_Länder.Steuersatz, tblIDSTransactionsNew.Rechenwert, tblIDSTransactionsNew.Kz,tbl_IDS_Stationen.OutletName;
" "
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
@@ -3210,7 +3210,12 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land
rpt.txtKunde.Text = SQL.isDbnullEmpty(rpt.Fields.Item("AdressenNr").Value, "") rpt.txtKunde.Text = SQL.isDbnullEmpty(rpt.Fields.Item("AdressenNr").Value, "")
rpt.txtKunde.Text &= " " & SQL.isDbnullEmpty(rpt.Fields.Item("Name 1").Value, "") rpt.txtKunde.Text &= " " & SQL.isDbnullEmpty(rpt.Fields.Item("Name 1").Value, "")
rpt.txtProduktBeschreibung.Text = SQL.isDbnullEmpty(rpt.Fields.Item("ProductDescription").Value, "") Dim Station As String = SQL.isDbnullEmpty(rpt.Fields.Item("OutletName").Value, "")
If Station <> "" Then
Station = " (" & Station & ")"
End If
rpt.txtProduktBeschreibung.Text = SQL.isDbnullEmpty(rpt.Fields.Item("ProductDescription").Value, "") & Station
rpt.txtLiter.Text = SQL.isDbnullEmpty(rpt.Fields.Item("Liter").Value, "") rpt.txtLiter.Text = SQL.isDbnullEmpty(rpt.Fields.Item("Liter").Value, "")
rpt.txtPreis.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("NettopreisProLiter").Value, 4, "") rpt.txtPreis.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("NettopreisProLiter").Value, 4, "")

View File

@@ -64,6 +64,10 @@ Public Class cNCTSGestellungsadressen
Public Function SAVE() As Boolean Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
If Not VERAG_PROG_ALLGEMEIN.cProgramFunctions.ValidateSQLFieldLengths(list, "tblNCTSGestellungsadressen", "", "FMZOLL") Then
Return False
End If
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblNCTSGestellungsadressen WITH(updlock,serializable) WHERE nga_id=@nga_id) " & Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblNCTSGestellungsadressen WITH(updlock,serializable) WHERE nga_id=@nga_id) " &
" BEGIN " & getUpdateCmd() & " END " & " BEGIN " & getUpdateCmd() & " END " &

View File

@@ -2512,7 +2512,7 @@ Public Class DATENVERVER_OPTIONS
End Function End Function
Public Shared Function addZugferdXML(pdfPath As String, xmlPath As String) As String Public Shared Function addZugferdXML(pdfPath As String, xmlPath As String, Optional fixedIssuerAssignedID As Boolean = True) As String
Dim tempFile As String = pdfPath & ".tmp" Dim tempFile As String = pdfPath & ".tmp"
@@ -2522,6 +2522,12 @@ Public Class DATENVERVER_OPTIONS
Dim xmlBytes = File.ReadAllBytes(xmlPath) Dim xmlBytes = File.ReadAllBytes(xmlPath)
If fixedIssuerAssignedID Then
fixIssuerAssignedID(xmlBytes)
End If
Dim fileName As String = "factur-x.xml" Dim fileName As String = "factur-x.xml"
If HasAttachment(pdf, fileName) Then If HasAttachment(pdf, fileName) Then
@@ -2557,6 +2563,75 @@ Public Class DATENVERVER_OPTIONS
End Function End Function
Public Shared Sub fixIssuerAssignedID(ByRef xmlBytes As Byte())
Dim xmlDoc As New System.Xml.XmlDocument()
xmlDoc.PreserveWhitespace = True
Using ms As New MemoryStream(xmlBytes)
xmlDoc.Load(ms)
End Using
Dim ns As New System.Xml.XmlNamespaceManager(xmlDoc.NameTable)
ns.AddNamespace(
"ram",
"urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
)
Dim documents = xmlDoc.SelectNodes(
"//ram:AdditionalReferencedDocument",
ns
)
For Each document As XmlElement In documents
Dim idNode As XmlNode =
document.SelectSingleNode("ram:ID", ns)
If idNode Is Nothing Then
Continue For
End If
' Wert der bisherigen ID merken
Dim idValue As String = idNode.InnerText
' Neue IssuerAssignedID erzeugen
Dim issuerAssignedID As XmlElement =
xmlDoc.CreateElement(
"ram",
"IssuerAssignedID",
"urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
)
issuerAssignedID.InnerText = idValue
' ID entfernen
document.RemoveChild(idNode)
' IssuerAssignedID an ERSTE Stelle setzen
document.InsertBefore(
issuerAssignedID,
document.FirstChild
)
Next
Using ms As New MemoryStream()
xmlDoc.Save(ms)
xmlBytes = ms.ToArray()
End Using
End Sub
Private Shared Function HasAttachment(pdf As iText.Kernel.Pdf.PdfDocument, fileName As String) As Boolean Private Shared Function HasAttachment(pdf As iText.Kernel.Pdf.PdfDocument, fileName As String) As Boolean
Dim catalog = pdf.GetCatalog().GetPdfObject() Dim catalog = pdf.GetCatalog().GetPdfObject()

View File

@@ -225,7 +225,13 @@ Public Class cVERAG_CustomsDeclarations
' CBAM Pattern (HSCode) ' CBAM Pattern (HSCode)
' ------------------------------------------------------------ ' ------------------------------------------------------------
Dim cbamWhere As String = VERAG_PROG_ALLGEMEIN.cGreendeal_CBAM_Trn.BuildCBAMPatternWhereClause("i.zaItem_HSCode") Dim cbamWhere As String = VERAG_PROG_ALLGEMEIN.cGreendeal_CBAM_Trn.BuildCBAMPatternWhereClause("i.zaItem_HSCode")
Dim cbamWhereSnd As String = " AND " & cbamWhere.Replace("i.zaItem_HSCode", "zaItem_HSCode") Dim cbamWhereSnd As String = " AND " & cbamWhere.Replace("i.zaItem_HSCode", "zaItem_HSCode") &
" AND zaItem_OriginCountry NOT IN (
'EU','AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR',
'DE','GR','HU','IE','IT','LV','LT','LU','MT','NL',
'PL','PT','RO','SK','SI','ES','SE',
'CH','NO','IS','LI','XI'
)"
Dim cbamWhereISOCntry As String = " i.zaItem_OriginCountry NOT IN ( Dim cbamWhereISOCntry As String = " i.zaItem_OriginCountry NOT IN (
/*EU-27 (ISO2)*/ /*EU-27 (ISO2)*/