Compare commits
2 Commits
cb02f2ac14
...
22fd208b55
| Author | SHA1 | Date | |
|---|---|---|---|
| 22fd208b55 | |||
| 123f06f3b1 |
@@ -542,6 +542,17 @@ Public Class cFiskaltrustClient
|
||||
Throw New Exception("Unsupported country")
|
||||
End Select
|
||||
|
||||
ElseIf type = "storno" Then
|
||||
|
||||
Select Case _country
|
||||
Case "DE"
|
||||
Return "/json/v1/Sign"
|
||||
Case "AT"
|
||||
Return "/json/Sign"
|
||||
Case Else
|
||||
Throw New Exception("Unsupported country")
|
||||
End Select
|
||||
|
||||
End If
|
||||
|
||||
|
||||
@@ -702,7 +713,7 @@ Public Class cFiskaltrustClient
|
||||
|
||||
End Function
|
||||
|
||||
Public Function getVersion(Terminal_ID) As String
|
||||
Private Function getVersion(Terminal_ID) As String
|
||||
|
||||
Return Terminal_ID & "_" & Application.ProductVersion
|
||||
|
||||
|
||||
635
SDL/Classes/cFiskaltrustClient_chilkat.vb
Normal file
635
SDL/Classes/cFiskaltrustClient_chilkat.vb
Normal file
@@ -0,0 +1,635 @@
|
||||
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Reflection
|
||||
Imports Chilkat
|
||||
Imports GrapeCity.DataVisualization.Chart
|
||||
Imports Newtonsoft.Json
|
||||
|
||||
Public Class FtReceiptCases
|
||||
|
||||
' Normaler Verkauf
|
||||
Public Const PosReceipt As Long = &H4445000000000001L
|
||||
|
||||
' Test-/Nullbeleg
|
||||
Public Const ZeroReceipt As Long = &H4445000000000002L
|
||||
|
||||
Public Const InitialOperation As Long = &H4445000000000003L
|
||||
Public Const OutOfOperation As Long = &H4445000000000004L
|
||||
|
||||
' Tagesabschluss (Z-Bericht)
|
||||
Public Const MonthlyClosing As Long = &H4445000000000005L
|
||||
Public Const YearlyClosing As Long = &H4445000000000006L
|
||||
Public Const DailyClosing As Long = &H4445000000000007L
|
||||
|
||||
' Flags
|
||||
Public Const ImplicitTransaction As Long = &H100000000L
|
||||
Public Const ReversalReceipt As Long = &H40000L
|
||||
Public Const TrainingReceipt As Long = &H20000L
|
||||
|
||||
End Class
|
||||
|
||||
Public Class FtChargeItemCase
|
||||
|
||||
Public Const RevenueNormal As Long = &H4445000000000001L ' 19 %
|
||||
Public Const RevenueReduced As Long = &H4445000000000002L ' 7 %
|
||||
Public Const RevenueTaxFree As Long = &H4445000000000005L ' 0 %
|
||||
|
||||
End Class
|
||||
|
||||
Public Class FtJournalType
|
||||
|
||||
Public Const VersionInformation As Integer = 0
|
||||
Public Const ActionJournal As Integer = 1
|
||||
Public Const ReceiptJournal As Integer = 2
|
||||
Public Const QueueItemJournal As Integer = 3
|
||||
|
||||
End Class
|
||||
|
||||
Public Class FtPayItemCases
|
||||
|
||||
' Barzahlung
|
||||
Public Const Cash As Long = &H4445000000000001L
|
||||
|
||||
' EC-/Girokarte
|
||||
Public Const DebitCard As Long = &H4445000000000004L
|
||||
|
||||
' Kreditkarte
|
||||
Public Const CreditCard As Long = &H4445000000000005L
|
||||
|
||||
' Online-Zahlung (PayPal, Klarna, etc.)
|
||||
Public Const OnlinePayment As Long = &H4445000000000006L
|
||||
|
||||
' Gutschein
|
||||
Public Const Voucher As Long = &H444500000000000DL
|
||||
|
||||
End Class
|
||||
|
||||
Public Class cFiskaltrustClient_chilkat
|
||||
|
||||
Private ReadOnly _baseUrl As String
|
||||
Private ReadOnly _cashboxId As String
|
||||
Private ReadOnly _accessToken As String
|
||||
Private ReadOnly _country As String
|
||||
|
||||
Public Sub New(baseUrl As String, cashboxId As String, accessToken As String, country As String)
|
||||
_baseUrl = baseUrl.TrimEnd("/"c)
|
||||
_cashboxId = cashboxId
|
||||
_accessToken = accessToken
|
||||
_country = country
|
||||
End Sub
|
||||
|
||||
Public Function SignReceipt(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, "Verkauf", "")
|
||||
|
||||
Return SendChilkat(GetEndpoint("payment"), payload.Emit())
|
||||
|
||||
End Function
|
||||
|
||||
Public Function SignReceipt_test(posSystemId As String) As String
|
||||
|
||||
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, "Verkauf", "")
|
||||
|
||||
Return SendChilkat(GetEndpoint("payment"), payload.Emit())
|
||||
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())
|
||||
End Function
|
||||
|
||||
Public Function ChancelReceipt_test(reference As String, posSystemId As String) As String
|
||||
|
||||
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)
|
||||
|
||||
Return SendChilkat(GetEndpoint("storno"), payload.Emit())
|
||||
End Function
|
||||
|
||||
|
||||
Public Function SignNullReceipt(posSystemId As String) As String
|
||||
Return SendChilkat(GetEndpoint("payment"), BuildPayloadNullReceipt(posSystemId, _country).Emit())
|
||||
End Function
|
||||
|
||||
Public Function SignClosingReceipt(receiptType As String, posSystemId As String, kind As String) As String
|
||||
|
||||
Return SendChilkat(GetEndpoint("payment"), BuildPayloadClosingReceipt(receiptType, posSystemId, kind).Emit())
|
||||
End Function
|
||||
|
||||
Public Function Echo(kassenName As String) As String
|
||||
|
||||
Dim json As New JsonObject()
|
||||
json.UpdateString("Message", kassenName & " - VERBINDUNG OK")
|
||||
|
||||
Return SendChilkat(GetEndpoint("test"), json.Emit())
|
||||
|
||||
End Function
|
||||
|
||||
Public Function Journal(ftJournalType As Integer) As String
|
||||
|
||||
Dim endpoint = GetEndpoint("journal")
|
||||
|
||||
endpoint &= "?type=" & ftJournalType
|
||||
|
||||
Return SendChilkat(endpoint, "")
|
||||
End Function
|
||||
|
||||
Private Function SendChilkat(endpoint As String, payload As String, Optional isGet As Boolean = False) As String
|
||||
|
||||
Dim retries As Integer = 3
|
||||
Dim lastEx As Exception = Nothing
|
||||
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
|
||||
Dim rest As New Chilkat.Rest
|
||||
Dim failureDesc As String
|
||||
rest.VerboseLogging = True
|
||||
|
||||
|
||||
For i As Integer = 1 To retries
|
||||
|
||||
Try
|
||||
|
||||
Dim uri As New Uri(_baseUrl)
|
||||
|
||||
If Not rest.Connect(uri.Host, uri.Port, uri.Scheme = "https", True) Then
|
||||
|
||||
Throw New Exception(rest.LastErrorText)
|
||||
failureDesc = rest.LastErrorText
|
||||
Return failureDesc
|
||||
|
||||
End If
|
||||
|
||||
rest.AddHeader("cashboxid", _cashboxId)
|
||||
rest.AddHeader("accesstoken", _accessToken)
|
||||
|
||||
Dim response As String
|
||||
|
||||
If isGet Then
|
||||
response = rest.FullRequestNoBody("GET", uri.AbsoluteUri & endpoint)
|
||||
Else
|
||||
|
||||
|
||||
If _country = "AT" Then
|
||||
rest.AddHeader("Content-Type", "text/plain")
|
||||
response = rest.FullRequestString("POST", uri.AbsoluteUri & endpoint, payload)
|
||||
Else
|
||||
rest.AddHeader("Content-Type", "application/json")
|
||||
response = rest.FullRequestString("POST", uri.AbsoluteUri & endpoint, payload)
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
|
||||
If rest.ResponseStatusCode >= 200 AndAlso rest.ResponseStatusCode < 300 Then
|
||||
Return response
|
||||
Else
|
||||
failureDesc = rest.LastErrorText
|
||||
End If
|
||||
|
||||
Throw New Exception("HTTP " & rest.ResponseStatusCode & ": " & response)
|
||||
|
||||
Catch ex As Exception
|
||||
lastEx = ex
|
||||
Threading.Thread.Sleep(500)
|
||||
End Try
|
||||
|
||||
Next
|
||||
|
||||
Throw lastEx
|
||||
|
||||
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
|
||||
|
||||
Dim json As New JsonObject()
|
||||
|
||||
json.UpdateString("ftCashBoxID", _cashboxId)
|
||||
json.UpdateString("ftPosSystemId", getVersion(posSystemId))
|
||||
json.UpdateString("cbTerminalID", posSystemId)
|
||||
|
||||
If _reference <> "" Then
|
||||
json.UpdateString("cbReceiptReference", _reference)
|
||||
Else
|
||||
json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString())
|
||||
End If
|
||||
|
||||
json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o"))
|
||||
|
||||
Dim receipCase As Long
|
||||
Select Case _receiptCase
|
||||
|
||||
Case "Storno"
|
||||
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.ImplicitTransaction 'Storno
|
||||
|
||||
Case Else
|
||||
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ImplicitTransaction 'Verkauf
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
json.UpdateString("ftReceiptCase", receipCase)
|
||||
|
||||
|
||||
Dim chargeItems = json.AppendArray("cbChargeItems")
|
||||
|
||||
For Each p In POS
|
||||
|
||||
If chargeItems.AddObjectAt(-1) Then
|
||||
Dim item As Chilkat.JsonObject = chargeItems.ObjectAt(chargeItems.Size - 1)
|
||||
item.UpdateInt("Quantity", p.Anzahl)
|
||||
item.UpdateNumber("Amount", p.Preis.ToString().Replace(",", "."))
|
||||
item.UpdateNumber("VATRate", vat.ToString().Replace(",", "."))
|
||||
item.UpdateString("Description", p.LeistungsBez)
|
||||
|
||||
Dim ChargeItemCase As Long
|
||||
Select Case vat
|
||||
|
||||
Case 19D
|
||||
ChargeItemCase = FtChargeItemCase.RevenueNormal
|
||||
|
||||
Case 7D
|
||||
ChargeItemCase = FtChargeItemCase.RevenueReduced
|
||||
|
||||
Case 0D
|
||||
ChargeItemCase = FtChargeItemCase.RevenueTaxFree
|
||||
|
||||
Case Else
|
||||
Throw New Exception("Unbekannter Steuersatz")
|
||||
End Select
|
||||
|
||||
|
||||
item.UpdateString("ftChargeItemCase", ChargeItemCase)
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
|
||||
Dim payItems = json.AppendArray("cbPayItems")
|
||||
payItems.AddObjectAt(-1)
|
||||
Dim pay As Chilkat.JsonObject = payItems.ObjectAt(payItems.Size - 1)
|
||||
pay.UpdateInt("Quantity", 1)
|
||||
pay.UpdateNumber("Amount", amount.ToString().Replace(",", "."))
|
||||
pay.UpdateString("Description", kindOfPayment)
|
||||
|
||||
Select Case kindOfPayment
|
||||
Case "Cash"
|
||||
pay.UpdateString("ftPayItemCase", FtPayItemCases.Cash)
|
||||
Case "Card"
|
||||
pay.UpdateString("ftPayItemCase", FtPayItemCases.DebitCard)
|
||||
End Select
|
||||
|
||||
|
||||
Return json
|
||||
|
||||
End Function
|
||||
|
||||
Private Function BuildPayloadNullReceipt(posSystemId As String, country As String) As JsonObject
|
||||
|
||||
Dim json As New JsonObject()
|
||||
|
||||
json.UpdateString("ftCashBoxID", _cashboxId)
|
||||
json.UpdateString("ftPosSystemId", getVersion(posSystemId))
|
||||
json.UpdateString("cbTerminalID", posSystemId)
|
||||
json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o"))
|
||||
json.UpdateString("ftReceiptCase", (FtReceiptCases.ZeroReceipt Or FtReceiptCases.ImplicitTransaction).ToString())
|
||||
json.UpdateString("cbReceiptReference", "ZeroReceiptAfterFailure")
|
||||
|
||||
Dim chargeItems = json.AppendArray("cbChargeItems")
|
||||
Dim payItems = json.AppendArray("cbPayItems")
|
||||
|
||||
Return json
|
||||
End Function
|
||||
|
||||
Private Function BuildPayloadInitialOperationReceipt(posSystemId As String, country As String) As JsonObject
|
||||
|
||||
Dim json As New JsonObject()
|
||||
|
||||
json.UpdateString("ftCashBoxID", _cashboxId)
|
||||
json.UpdateString("ftPosSystemId", getVersion(posSystemId))
|
||||
json.UpdateString("cbTerminalID", posSystemId)
|
||||
json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o"))
|
||||
json.UpdateString("ftReceiptCase", (FtReceiptCases.InitialOperation).ToString())
|
||||
json.UpdateString("cbReceiptReference", "INIT")
|
||||
|
||||
json.UpdateString("cbUser", "Admin")
|
||||
json.UpdateString("ftReceiptCaseData", "")
|
||||
|
||||
|
||||
|
||||
Dim chargeItems = json.AppendArray("cbChargeItems")
|
||||
Dim payItems = json.AppendArray("cbPayItems")
|
||||
|
||||
Return json
|
||||
End Function
|
||||
|
||||
Private Function BuildPayloadOutOfOperationReceipt(posSystemId As String, country As String) As JsonObject
|
||||
|
||||
Dim json As New JsonObject()
|
||||
|
||||
json.UpdateString("ftCashBoxID", _cashboxId)
|
||||
json.UpdateString("ftPosSystemId", getVersion(posSystemId))
|
||||
json.UpdateString("cbTerminalID", posSystemId)
|
||||
json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o"))
|
||||
json.UpdateString("ftReceiptCase", (FtReceiptCases.OutOfOperation).ToString())
|
||||
json.UpdateString("cbReceiptReference", "OutOfOperation")
|
||||
|
||||
json.UpdateString("cbUser", "Admin")
|
||||
json.UpdateString("ftReceiptCaseData", "")
|
||||
|
||||
Dim chargeItems = json.AppendArray("cbChargeItems")
|
||||
Dim payItems = json.AppendArray("cbPayItems")
|
||||
|
||||
Return json
|
||||
End Function
|
||||
|
||||
Private Function BuildPayloadClosingReceipt(receiptType As String, posSystemId As String, kind As String) As JsonObject
|
||||
|
||||
Dim json As New JsonObject()
|
||||
|
||||
json.UpdateString("ftCashBoxID", _cashboxId)
|
||||
json.UpdateString("ftPosSystemId", getVersion(posSystemId))
|
||||
json.UpdateString("cbTerminalID", posSystemId)
|
||||
json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o"))
|
||||
Dim chargeItems = json.AppendArray("cbChargeItems")
|
||||
Dim payItems = json.AppendArray("cbPayItems")
|
||||
|
||||
|
||||
|
||||
Select Case kind
|
||||
Case "yearly"
|
||||
|
||||
json.UpdateString("cbReceiptReference", "yearly-closing-" & DateTime.UtcNow.ToString("o"))
|
||||
json.UpdateString("ftReceiptCase", (FtReceiptCases.YearlyClosing Or FtReceiptCases.ImplicitTransaction).ToString())
|
||||
|
||||
Case "monthly"
|
||||
|
||||
json.UpdateString("cbReceiptReference", "monthly-closing-" & DateTime.UtcNow.ToString("o"))
|
||||
json.UpdateString("ftReceiptCase", (FtReceiptCases.MonthlyClosing Or FtReceiptCases.ImplicitTransaction).ToString())
|
||||
|
||||
Case Else 'daily
|
||||
json.UpdateString("cbReceiptReference", "daily-closing-" & DateTime.UtcNow.ToString("o"))
|
||||
json.UpdateString("ftReceiptCase", (FtReceiptCases.DailyClosing Or FtReceiptCases.ImplicitTransaction).ToString())
|
||||
|
||||
End Select
|
||||
|
||||
Return json
|
||||
End Function
|
||||
|
||||
Private Function GetEndpoint(type As String) As String
|
||||
|
||||
Select Case type
|
||||
|
||||
Case "payment"
|
||||
|
||||
Select Case _country
|
||||
Case "DE" : Return "/json/v1/Sign"
|
||||
Case "AT" : Return "/json/Sign"
|
||||
End Select
|
||||
|
||||
Case "test"
|
||||
|
||||
Select Case _country
|
||||
Case "DE" : Return "/json/v1/Echo"
|
||||
Case "AT" : Return "/json/Echo"
|
||||
End Select
|
||||
|
||||
Case "journal"
|
||||
|
||||
Select Case _country
|
||||
Case "DE" : Return "/json/v0/Journal"
|
||||
Case "AT" : Return "/json/Journal"
|
||||
End Select
|
||||
|
||||
Case "storno"
|
||||
|
||||
Select Case _country
|
||||
Case "DE" : Return "/json/v1/Sign"
|
||||
Case "AT" : Return "/json/Sign"
|
||||
End Select
|
||||
|
||||
|
||||
End Select
|
||||
|
||||
Throw New Exception("Unsupported country")
|
||||
|
||||
End Function
|
||||
|
||||
Private Function getVersion(Terminal_ID As String) As String
|
||||
Return Terminal_ID & "_" & Application.ProductVersion
|
||||
End Function
|
||||
|
||||
Public Function saveRKSV_FT(ByRef result_zahlung As String, ByRef QR_CodeString As String) As Boolean
|
||||
|
||||
If result_zahlung <> "" Then
|
||||
Dim json As New Chilkat.JsonObject
|
||||
Dim success As Boolean = json.Load(result_zahlung)
|
||||
If (success <> True) Then
|
||||
Debug.WriteLine(json.LastErrorText)
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
||||
Dim saved As Boolean = False
|
||||
|
||||
Dim ftSig As New cFiskaltrustSignatures()
|
||||
|
||||
Dim ftReceiptMoment As New Chilkat.CkDateTime
|
||||
Dim dt As New Chilkat.DtObj
|
||||
Dim getAsLocal As Boolean = False
|
||||
|
||||
Dim ftID As Integer = -1
|
||||
|
||||
success = json.DateOf("ftReceiptMoment", ftReceiptMoment)
|
||||
Debug.WriteLine(ftReceiptMoment.GetAsTimestamp(getAsLocal))
|
||||
|
||||
With ftSig
|
||||
|
||||
.ftCashBoxID = json.StringOf("ftCashBoxID")
|
||||
.ftQueueID = json.StringOf("ftQueueID")
|
||||
.ftQueueItemID = json.StringOf("ftQueueItemID")
|
||||
.ftQueueRow = json.IntOf("ftQueueRow")
|
||||
.cbTerminalID = json.StringOf("cbTerminalID")
|
||||
.cbReceiptReference = json.StringOf("cbReceiptReference")
|
||||
.ftCashBoxIdentification = json.StringOf("ftCashBoxIdentification")
|
||||
.ftReceiptIdentification = json.StringOf("ftReceiptIdentification")
|
||||
.ftReceiptMoment = ftReceiptMoment.GetAsTimestamp(getAsLocal)
|
||||
.ftState = json.StringOf("ftState")
|
||||
saved = .SAVE()
|
||||
|
||||
End With
|
||||
|
||||
|
||||
Dim num As Integer = json.SizeOfArray("ftSignatures")
|
||||
If num = 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim Signatures As Chilkat.JsonArray = json.ArrayOf("ftSignatures")
|
||||
If (json.LastMethodSuccess = False) Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim numSignatures As Integer = Signatures.Size
|
||||
|
||||
For i = 0 To numSignatures - 1
|
||||
|
||||
|
||||
Dim SignObj As Chilkat.JsonObject = Signatures.ObjectAt(i)
|
||||
Dim ftSigPos As New cFiskaltrustSignaturPositions()
|
||||
|
||||
With ftSigPos
|
||||
.ftSignatures = ftSig.ft_id
|
||||
.ftData = SignObj.StringOf("Data")
|
||||
.ftSignatureFormat = SignObj.StringOf("ftSignatureFormat")
|
||||
.ftSignatureType = SignObj.StringOf("ftSignatureType")
|
||||
saved = .SAVE()
|
||||
If IsNumeric(.ftSignatureType) AndAlso CInt(.ftSignatureType) = IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True, 0, 3) Then
|
||||
'QR_CodeString = .ftData
|
||||
End If
|
||||
|
||||
End With
|
||||
|
||||
Next
|
||||
|
||||
|
||||
Return saved
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Function exportJournal(ByRef result_Journal As String) As Boolean
|
||||
|
||||
If result_Journal <> "" Then
|
||||
Dim jsonArr As New Chilkat.JsonArray
|
||||
Dim success As Boolean = jsonArr.Load(result_Journal)
|
||||
If (success <> True) Then
|
||||
Debug.WriteLine(jsonArr.LastErrorText)
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
||||
Dim dt As New DataTable
|
||||
|
||||
dt.Columns.Add("ftReceiptJournalId", GetType(String))
|
||||
dt.Columns.Add("ftReceiptMoment", GetType(String))
|
||||
dt.Columns.Add("ftReceiptNumber", GetType(String))
|
||||
dt.Columns.Add("ftReceiptTotal", GetType(String))
|
||||
dt.Columns.Add("ftQueueId", GetType(String))
|
||||
dt.Columns.Add("ftReceiptHash", GetType(String))
|
||||
dt.Columns.Add("ftQueueItemId", GetType(String))
|
||||
dt.Columns.Add("TimeStamp", GetType(String))
|
||||
|
||||
Dim i = 0
|
||||
Dim num As Integer = jsonArr.Size
|
||||
If num = 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim tmstmp As New Chilkat.CkDateTime
|
||||
Dim getAsLocal As Boolean = False
|
||||
|
||||
|
||||
While i < num
|
||||
|
||||
Dim SignObj As Chilkat.JsonObject = jsonArr.ObjectAt(i)
|
||||
Dim R As DataRow = dt.NewRow
|
||||
|
||||
With SignObj
|
||||
|
||||
R("ftReceiptJournalId") = .StringOf("ftReceiptJournalId")
|
||||
R("ftReceiptMoment") = .StringOf("ftReceiptMoment")
|
||||
R("ftReceiptNumber") = .IntOf("ftReceiptNumber")
|
||||
R("ftReceiptTotal") = .StringOf("ftReceiptTotal")
|
||||
R("ftQueueId") = .StringOf("ftQueueId")
|
||||
R("ftQueueItemId") = .StringOf("ftQueueItemId")
|
||||
R("ftReceiptHash") = .StringOf("ftReceiptHash")
|
||||
R("TimeStamp") = tmstmp.GetAsTimestamp(getAsLocal)
|
||||
|
||||
End With
|
||||
|
||||
dt.Rows.Add(R)
|
||||
|
||||
i = i + 1
|
||||
End While
|
||||
|
||||
If dt.Rows.Count > 0 Then
|
||||
|
||||
Dim Path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt)
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub Log(message As String)
|
||||
Console.WriteLine(message)
|
||||
End Sub
|
||||
|
||||
Public Function PrettyPrintJson(jsonText As String) As String
|
||||
|
||||
Dim json As New Chilkat.JsonObject()
|
||||
|
||||
If Not json.Load(jsonText) Then
|
||||
Return jsonText
|
||||
End If
|
||||
|
||||
json.EmitCompact = False
|
||||
|
||||
Return json.Emit()
|
||||
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
@@ -92,7 +92,7 @@ Public Class cRKSV
|
||||
End Function
|
||||
|
||||
|
||||
Shared Async Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, CompanyGUID As String, ByVal umsatzZaehler As Double, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, POS As List(Of EABelegPositionen), QR_CodeString As String, LastJWS As String) As Task(Of Boolean)
|
||||
Shared Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, CompanyGUID As String, ByVal umsatzZaehler As Double, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, POS As List(Of EABelegPositionen), ByRef QR_CodeString As String, ByRef LastJWS As String) As Boolean
|
||||
Try
|
||||
|
||||
|
||||
@@ -123,21 +123,35 @@ Public Class cRKSV
|
||||
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
|
||||
Dim StandUmsatzzaehler = umsatzZaehler 'KASSE.rksv_Umsatzzaehler
|
||||
|
||||
Dim client As New cFiskaltrustClient(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
|
||||
If False Then
|
||||
'Dim client As New cFiskaltrustClient(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
|
||||
|
||||
|
||||
Dim result = Await client.SignReceiptAsync(summeBRUTTO, steuersatz, POS, "Cash", kasse.rksv_id)
|
||||
If result <> "" Then
|
||||
Return client.saveRKSV_FT(result, QR_CodeString)
|
||||
'Dim result = Await client.SignReceiptAsync(summeBRUTTO, steuersatz, POS, "Cash", kasse.rksv_id)
|
||||
'If result <> "" Then
|
||||
' Return client.saveRKSV_FT(result, QR_CodeString)
|
||||
'Else
|
||||
' Return False
|
||||
'End If
|
||||
Else
|
||||
Return False
|
||||
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, POS, "Cash", kasse.rksv_id)
|
||||
If result <> "" Then
|
||||
Return client.saveRKSV_FT(result, QR_CodeString)
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
|
||||
Return False
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
@@ -16,7 +16,6 @@ Public Class cAutomailversand
|
||||
'STATUS 3-_> Sammel-Rg gedruckt
|
||||
'STATUS 4-_> ? irgendwas mit SR 6 Maut/Diesel??
|
||||
|
||||
|
||||
'NUR STATUS 2 -> d.b. Rechnungsdatum + RechnungsNr vergeben!
|
||||
|
||||
Dim rechnungenMailversand = ""
|
||||
@@ -160,7 +159,7 @@ Public Class cAutomailversand
|
||||
|
||||
setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr)
|
||||
If do_SR(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError, AbfertigungsNr, faktGruppe) Then
|
||||
loadAndSetAnhaenge(SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf)
|
||||
loadAndSetAnhaenge_new(SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf)
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
|
||||
|
||||
@@ -249,6 +248,7 @@ Public Class cAutomailversand
|
||||
setEmpfaengerMail_ER(SPEDBUCH, AD, MailTo, MailtoCC, MailtoBCC, "")
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
||||
|
||||
MailTo = ""
|
||||
MailtoCC = ""
|
||||
MailtoBCC = setAccountToSend(FirmaID)
|
||||
@@ -275,7 +275,7 @@ Public Class cAutomailversand
|
||||
Dim Mailsubject As String = ""
|
||||
Dim HTMLMail As String = ""
|
||||
setEmailText(r, FirmaID, RECHNUNG.RechnungsNr, Mailsubject, HTMLMail, RECHNUNG.Sammelrechnung, dt, RECHNUNG.BelegartenNr, SPEDBUCH, RECHNUNG)
|
||||
loadAndSetAnhaenge(dt, ATTACHMENTS, listPDFs, RECHNUNG, SPEDBUCH, KDE_ERW.kde_merge_pdf)
|
||||
loadAndSetAnhaenge_new(dt, ATTACHMENTS, listPDFs, RECHNUNG, SPEDBUCH, KDE_ERW.kde_merge_pdf)
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
|
||||
|
||||
@@ -530,18 +530,124 @@ Public Class cAutomailversand
|
||||
|
||||
End Function
|
||||
|
||||
Private Sub loadAndSetAnhaenge_new(SR_DT As DataTable, ATTACHMENTS As List(Of cFakt_MailATTach), listPDFs As List(Of String), Optional RECHNUNG As cRechnungsausgang = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing, Optional mergeAllPDFS As Boolean = False)
|
||||
|
||||
Dim zielPfad_PDFZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Anhang.pdf", ".pdf",, False, "Zusammenfassung")
|
||||
|
||||
'====================================================
|
||||
' EINZELRECHNUNG
|
||||
'====================================================
|
||||
If RECHNUNG IsNot Nothing Then
|
||||
|
||||
Dim mergeList As New List(Of String)
|
||||
|
||||
' Beleg
|
||||
Dim belegName = If(RECHNUNG.BelegartenKz = "AR", "Rechnung.pdf", "Gutschrift.pdf")
|
||||
|
||||
For Each pdf In listPDFs
|
||||
ATTACHMENTS.Add(New cFakt_MailATTach(pdf, belegName))
|
||||
Next
|
||||
|
||||
' Rechnungsanhänge
|
||||
RECHNUNG.LOAD_ANHAENGE()
|
||||
|
||||
For Each anh In RECHNUNG.ANHAENGE
|
||||
|
||||
HandlePdf(anh.dsId, anh.Bezeichnung, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False, mergeList, ATTACHMENTS)
|
||||
|
||||
Next
|
||||
|
||||
' Zoll-Unterlagen
|
||||
LoadZollAttachments(SPEDBUCH, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False, mergeList, ATTACHMENTS)
|
||||
|
||||
' Zusammenfassung erzeugen
|
||||
AddMergedPdf(mergeList, zielPfad_PDFZusammenfassung, ATTACHMENTS)
|
||||
|
||||
' Beleg + Anhänge zusammenführen
|
||||
If mergeAllPDFS AndAlso ATTACHMENTS.Count > 1 Then
|
||||
|
||||
Dim prefix = If(RECHNUNG.BelegartenKz = "AR", "Rechnungs", "Gutschrifts")
|
||||
|
||||
Dim zielPfad = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(prefix & "anhang.pdf", ".pdf",, False, "Zusammenfassung")
|
||||
|
||||
Dim pdfs As New List(Of String)
|
||||
pdfs = ATTACHMENTS.Select(Function(a) a.Pfad.ToString).ToList()
|
||||
|
||||
If FormularManagerNEU.MergePdfFiles(pdfs, zielPfad) Then
|
||||
ATTACHMENTS.Clear()
|
||||
ATTACHMENTS.Add(New cFakt_MailATTach(zielPfad, ""))
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Return
|
||||
|
||||
End If
|
||||
|
||||
'====================================================
|
||||
' SAMMELRECHNUNG
|
||||
'====================================================
|
||||
If SR_DT Is Nothing OrElse SR_DT.Rows.Count = 0 Then Return
|
||||
|
||||
Dim mergeListSR As New List(Of String)(listPDFs)
|
||||
|
||||
' Zoll-Unterlagen
|
||||
For Each row As DataRow In SR_DT.Rows
|
||||
|
||||
Dim spedbuchTemp As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(row("FilialenNr"), row("AbfertigungsNr"), row("SpeditionsbuchUnterNr"))
|
||||
Dim filialenNr = If(IsDBNull(row("FilialenNr")), 0, CInt(row("FilialenNr")))
|
||||
Dim firmaId = If(IsDBNull(row("Firma_ID")), 0, CInt(row("Firma_ID")))
|
||||
|
||||
LoadZollAttachments(spedbuchTemp, filialenNr, firmaId, True, mergeListSR, ATTACHMENTS)
|
||||
|
||||
Next
|
||||
|
||||
' Rechnungsanhänge
|
||||
For Each row As DataRow In SR_DT.Rows
|
||||
|
||||
Dim filialenNr = If(IsDBNull(row("FilialenNr")), 0, CInt(row("FilialenNr")))
|
||||
|
||||
Dim firmaId = If(IsDBNull(row("Firma_ID")), 0, CInt(row("Firma_ID")))
|
||||
|
||||
Dim anhaenge = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(row("RK_ID"))
|
||||
|
||||
If anhaenge Is Nothing Then Continue For
|
||||
|
||||
For Each anh In anhaenge
|
||||
|
||||
HandlePdf(anh.dsId, anh.Bezeichnung, filialenNr, firmaId, True, mergeListSR, ATTACHMENTS)
|
||||
|
||||
Next
|
||||
|
||||
Next
|
||||
|
||||
' Zusammenfassung erzeugen
|
||||
AddMergedPdf(mergeListSR, zielPfad_PDFZusammenfassung, ATTACHMENTS)
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub loadAndSetAnhaenge(SR_DT As DataTable, ATTACHMENTS As List(Of cFakt_MailATTach), listPDFs As List(Of String), Optional RECHNUNG As cRechnungsausgang = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing, Optional mergeAllPDFS As Boolean = False)
|
||||
|
||||
'---- Zusammenfassung der PDFs in 3 Schritten:
|
||||
|
||||
'1--> Beleg
|
||||
'2--> Anhänge der Rechnung
|
||||
'3--> Zoll-Anhänge aus SPED-BUCH
|
||||
|
||||
Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Attachment.pdf", ".pdf",, False, "Zusammenfassung")
|
||||
Dim pdfAnhang_merge As Boolean = False
|
||||
|
||||
'----------------------------------------------------------------- EINZELRECHNUNGEN------------------------------------------------
|
||||
If RECHNUNG IsNot Nothing Then
|
||||
|
||||
'1--> Beleg
|
||||
For Each l In listPDFs
|
||||
ATTACHMENTS.Add(New cFakt_MailATTach(l, If(RECHNUNG.BelegartenKz = "AR", "Rechnung.pdf", "Gutschrift.pdf")))
|
||||
Next
|
||||
|
||||
'2--> Anhänge der Rechnung
|
||||
Dim zsmf_ER As New List(Of String)
|
||||
RECHNUNG.LOAD_ANHAENGE()
|
||||
|
||||
@@ -549,7 +655,7 @@ Public Class cAutomailversand
|
||||
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId)
|
||||
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
|
||||
If pdfAnhang_merge Then
|
||||
If path <> "" Then
|
||||
@@ -568,7 +674,7 @@ Public Class cAutomailversand
|
||||
|
||||
Next
|
||||
|
||||
|
||||
'3--> Zoll-Anhänge aus SPED-BUCH
|
||||
If SPEDBUCH IsNot Nothing Then
|
||||
|
||||
Dim ZOLL = IIf(SPEDBUCH.DokumentId_Mitteilung IsNot Nothing, "AT", "DE")
|
||||
@@ -577,7 +683,7 @@ Public Class cAutomailversand
|
||||
Case "DE"
|
||||
If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg)
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
If pdfAnhang_merge Then
|
||||
zsmf_ER.Add(path)
|
||||
Else
|
||||
@@ -587,7 +693,7 @@ Public Class cAutomailversand
|
||||
End If
|
||||
If SPEDBUCH.DokumentId_VBD IsNot Nothing Then
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_VBD)
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
If pdfAnhang_merge Then
|
||||
zsmf_ER.Add(path)
|
||||
Else
|
||||
@@ -601,11 +707,11 @@ Public Class cAutomailversand
|
||||
If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then
|
||||
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg)
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
If pdfAnhang_merge Then
|
||||
zsmf_ER.Add(path)
|
||||
Else
|
||||
ATTACHMENTS.Add(New cFakt_MailATTach(path, "Verzollungsnachweis.pdf"))
|
||||
ATTACHMENTS.Add(New cFakt_MailATTach(path, "Verzollungsnachweis.pdf"))
|
||||
End If
|
||||
|
||||
End If
|
||||
@@ -613,7 +719,7 @@ Public Class cAutomailversand
|
||||
|
||||
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Mitteilung)
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False)
|
||||
If pdfAnhang_merge Then
|
||||
zsmf_ER.Add(path)
|
||||
Else
|
||||
@@ -689,7 +795,7 @@ Public Class cAutomailversand
|
||||
Case "DE"
|
||||
If SPEDBUCH_TEMP.DokumentId_Steuerbeleg IsNot Nothing Then
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH_TEMP.DokumentId_Steuerbeleg)
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, FilialenNr, FIRMA_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, False)
|
||||
If pdfAnhang_merge Then
|
||||
zsmf_SR.Add(path)
|
||||
Else
|
||||
@@ -699,7 +805,7 @@ Public Class cAutomailversand
|
||||
End If
|
||||
If SPEDBUCH_TEMP.DokumentId_VBD IsNot Nothing Then
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH_TEMP.DokumentId_VBD)
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, FilialenNr, FIRMA_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, False)
|
||||
If pdfAnhang_merge Then
|
||||
zsmf_SR.Add(path)
|
||||
Else
|
||||
@@ -713,7 +819,7 @@ Public Class cAutomailversand
|
||||
If SPEDBUCH_TEMP.DokumentId_Steuerbeleg IsNot Nothing Then
|
||||
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH_TEMP.DokumentId_Steuerbeleg)
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, FilialenNr, FIRMA_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, False)
|
||||
If pdfAnhang_merge Then
|
||||
zsmf_SR.Add(path)
|
||||
Else
|
||||
@@ -725,7 +831,7 @@ Public Class cAutomailversand
|
||||
|
||||
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH_TEMP.DokumentId_Mitteilung)
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, FilialenNr, FIRMA_ID, False)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, False)
|
||||
If pdfAnhang_merge Then
|
||||
zsmf_SR.Add(path)
|
||||
Else
|
||||
@@ -755,7 +861,7 @@ Public Class cAutomailversand
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId)
|
||||
|
||||
'hier die LOGIK, was alles zusammengefasst werden soll!
|
||||
pdfAnhang_merge = PDFS_zusammenfassen(path, FilialenNr, FIRMA_ID, True)
|
||||
pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, True)
|
||||
|
||||
If pdfAnhang_merge Then
|
||||
If path <> "" Then
|
||||
@@ -826,10 +932,17 @@ Public Class cAutomailversand
|
||||
End Sub
|
||||
|
||||
|
||||
Private Function PDFS_zusammenfassen(path As String, Filiale As Integer, Firma As Integer, isSR As Boolean)
|
||||
Private Function mergeSinglePDFDocuments(path As String, Filiale As Integer, Firma As Integer, isSR As Boolean)
|
||||
|
||||
Dim zusammenfassen As Boolean = False
|
||||
|
||||
'True
|
||||
' → mergeList
|
||||
' → später zu einer PDF zusammenführen
|
||||
|
||||
'False
|
||||
' → sofort als separates Mail-Attachment
|
||||
|
||||
Select Case Firma
|
||||
Case 19
|
||||
If Filiale = 4817 Then
|
||||
@@ -846,8 +959,7 @@ Public Class cAutomailversand
|
||||
If Not isSR Then
|
||||
Return True
|
||||
Else
|
||||
|
||||
'mit Marlene sprechen!
|
||||
'laut Marlene nichts zusammenfassen (außer CBAM)! Mail am 19.06.2026
|
||||
If Not (path.ToString.ToLower.Contains("flyercbam")) Then
|
||||
Return True
|
||||
End If
|
||||
@@ -887,6 +999,95 @@ Public Class cAutomailversand
|
||||
|
||||
End Function
|
||||
|
||||
Private Sub AddToMergeList(list As List(Of String), path As String)
|
||||
|
||||
If String.IsNullOrWhiteSpace(path) Then Return
|
||||
|
||||
If Not list.Any(Function(p) System.IO.Path.GetFileName(p).Equals(System.IO.Path.GetFileName(path), StringComparison.OrdinalIgnoreCase)) Then
|
||||
|
||||
list.Add(path)
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub AddAttachmentIfNotExists(attachments As List(Of cFakt_MailATTach), path As String, bezeichnung As String)
|
||||
|
||||
If String.IsNullOrWhiteSpace(path) Then Return
|
||||
|
||||
Dim fileName = System.IO.Path.GetFileName(path)
|
||||
|
||||
If Not attachments.Any(Function(a) System.IO.Path.GetFileName(a.Pfad).Equals(fileName, StringComparison.OrdinalIgnoreCase)) Then
|
||||
|
||||
attachments.Add(New cFakt_MailATTach(path, bezeichnung))
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub HandlePdf(docId As Object, displayName As String, filiale As Integer, firma As Integer, isSR As Boolean, mergeList As List(Of String), attachments As List(Of cFakt_MailATTach))
|
||||
|
||||
If docId Is Nothing Then Return
|
||||
|
||||
Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(docId)
|
||||
|
||||
If mergeSinglePDFDocuments(path, filiale, firma, isSR) Then
|
||||
AddToMergeList(mergeList, path)
|
||||
Else
|
||||
AddAttachmentIfNotExists(attachments, path, displayName)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub LoadZollAttachments(spedbuch As cSpeditionsbuch, filiale As Integer, firma As Integer, isSR As Boolean, mergeList As List(Of String), attachments As List(Of cFakt_MailATTach), Optional FiskalMail As Boolean = False)
|
||||
|
||||
If spedbuch Is Nothing Then Return
|
||||
|
||||
Dim isAT = spedbuch.DokumentId_Mitteilung IsNot Nothing
|
||||
|
||||
If FiskalMail Then
|
||||
attachments.Clear() 'liste leeren
|
||||
End If
|
||||
|
||||
If isAT Then
|
||||
HandlePdf(spedbuch.DokumentId_Steuerbeleg, "Verzollungsnachweis.pdf", filiale, firma, isSR, mergeList, attachments)
|
||||
|
||||
HandlePdf(spedbuch.DokumentId_Mitteilung, "Versandschein.pdf", filiale, firma, isSR, mergeList, attachments)
|
||||
|
||||
Else
|
||||
|
||||
HandlePdf(spedbuch.DokumentId_Steuerbeleg, "Steuerbescheid.pdf", filiale, firma, isSR, mergeList, attachments)
|
||||
|
||||
If Not FiskalMail Then 'bei FIskal-Mail nicht mitschicken
|
||||
HandlePdf(spedbuch.DokumentId_VBD, "Abgabenbescheid.pdf", filiale, firma, isSR, mergeList, attachments)
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub AddMergedPdf(mergeList As List(Of String), zielPfad As String, attachments As List(Of cFakt_MailATTach))
|
||||
|
||||
If Not mergeList.Any Then Return
|
||||
|
||||
If mergeList.Count = 1 Then
|
||||
|
||||
Dim fi As New FileInfo(mergeList(0))
|
||||
attachments.Add(New cFakt_MailATTach(mergeList(0), fi.Name))
|
||||
|
||||
Return
|
||||
End If
|
||||
|
||||
If FormularManagerNEU.MergePdfFiles(mergeList, zielPfad) Then
|
||||
|
||||
Dim fi As New FileInfo(zielPfad)
|
||||
attachments.Add(New cFakt_MailATTach(zielPfad, fi.Name))
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing, Optional RECHNUNG As cRechnungsausgang = Nothing, Optional FISKAL As cFiskal_Daten = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing) As Boolean
|
||||
|
||||
|
||||
@@ -1246,11 +1447,11 @@ Public Class cAutomailversand
|
||||
End If
|
||||
|
||||
Dim AD As New cAdressen(kundenNr)
|
||||
Dim KD As New cKunde(kundenNr)
|
||||
Dim Sprache As String = "EN"
|
||||
Dim attachList As New List(Of String)
|
||||
Dim KD As New cKunde(kundenNr)
|
||||
Dim Sprache As String = "EN"
|
||||
Dim attachList As New List(Of String)
|
||||
|
||||
Subject = "Meldung innergemeinschaftlicher Erwerb - " & AD.Ordnungsbegriff
|
||||
Subject = "Meldung innergemeinschaftlicher Erwerb - " & AD.Ordnungsbegriff
|
||||
|
||||
Select Case RechnungsLandKz
|
||||
Case "A", "AT", "D", "DE", "CH" : Sprache = "DE"
|
||||
@@ -1303,54 +1504,62 @@ Public Class cAutomailversand
|
||||
|
||||
|
||||
|
||||
If showMail Then
|
||||
If showMail Then
|
||||
|
||||
Dim outl As New Outlook.Application
|
||||
Dim Mail_StbFA As Microsoft.Office.Interop.Outlook.MailItem
|
||||
Mail_StbFA = outl.CreateItem(0)
|
||||
Mail_StbFA.Subject = Subject
|
||||
Dim outl As New Outlook.Application
|
||||
Dim Mail_StbFA As Microsoft.Office.Interop.Outlook.MailItem
|
||||
Mail_StbFA = outl.CreateItem(0)
|
||||
Mail_StbFA.Subject = Subject
|
||||
|
||||
If FirmaID = 24 Then Mail_StbFA.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
|
||||
If FirmaID = 24 Then Mail_StbFA.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
|
||||
|
||||
|
||||
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID,,,, "")
|
||||
TextHTML &= "</div>"
|
||||
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID,,,, "")
|
||||
TextHTML &= "</div>"
|
||||
|
||||
Mail_StbFA.HTMLBody = TextHTML
|
||||
Mail_StbFA.HTMLBody = TextHTML
|
||||
|
||||
|
||||
Mail_StbFA.To = MailTo
|
||||
Mail_StbFA.CC = MailCC
|
||||
Mail_StbFA.To = MailTo
|
||||
Mail_StbFA.CC = MailCC
|
||||
|
||||
''-----------------------------------------------------------------
|
||||
''Steuerbescheid anfügen
|
||||
''-----------------------------------------------------------------
|
||||
'getAnhaenge(False)
|
||||
''-----------------------------------------------------------------
|
||||
''Steuerbescheid anfügen
|
||||
''-----------------------------------------------------------------
|
||||
'getAnhaenge(False)
|
||||
|
||||
''Anhang an Mail anfügen
|
||||
''-----------------------------------------------------------------
|
||||
'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked)
|
||||
''-----------------------------------------------------------------
|
||||
''Anhang an Mail anfügen
|
||||
''-----------------------------------------------------------------
|
||||
'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked)
|
||||
''-----------------------------------------------------------------
|
||||
|
||||
LoadZollAttachments(SPEDBUCH, SPEDBUCH.FilialenNr, FirmaID, False, attachList, Nothing, True)
|
||||
|
||||
For Each att In attachList
|
||||
Mail_StbFA.Attachments.Add(att, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
|
||||
Next
|
||||
|
||||
Mail_StbFA.Display()
|
||||
|
||||
Else
|
||||
|
||||
LoadZollAttachments(SPEDBUCH, SPEDBUCH.FilialenNr, FirmaID, False, attachList, Nothing, True)
|
||||
|
||||
Dim accountToSend = setAccountToSend(FirmaID)
|
||||
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, Subject, TextHTML, accountToSend, False, False, MailCC, accountToSend, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend))
|
||||
|
||||
''-----------------------------------------------------------------
|
||||
''Steuerbescheid anfügen
|
||||
''-----------------------------------------------------------------
|
||||
'getAnhaenge(False)
|
||||
|
||||
''Anhang an Mail anfügen
|
||||
''-----------------------------------------------------------------
|
||||
'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked)
|
||||
''-----------------------------------------------------------------
|
||||
|
||||
|
||||
Mail_StbFA.Display()
|
||||
|
||||
Else
|
||||
Dim accountToSend = setAccountToSend(FirmaID)
|
||||
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, Subject, TextHTML, accountToSend, False, False, MailCC, accountToSend, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend))
|
||||
|
||||
''-----------------------------------------------------------------
|
||||
''Steuerbescheid anfügen
|
||||
''-----------------------------------------------------------------
|
||||
'getAnhaenge(False)
|
||||
|
||||
''Anhang an Mail anfügen
|
||||
''-----------------------------------------------------------------
|
||||
'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked)
|
||||
''-----------------------------------------------------------------
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.5.5.4")>
|
||||
<Assembly: AssemblyFileVersion("1.5.5.4")>
|
||||
<Assembly: AssemblyVersion("1.5.5.5")>
|
||||
<Assembly: AssemblyFileVersion("1.5.5.5")>
|
||||
|
||||
10
SDL/My Project/Resources.Designer.vb
generated
10
SDL/My Project/Resources.Designer.vb
generated
@@ -2591,6 +2591,16 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property Ustveu_Rechnungsanlagen_DE() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("Ustveu_Rechnungsanlagen_DE", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
||||
'''</summary>
|
||||
|
||||
@@ -991,4 +991,7 @@
|
||||
<data name="auto_mailversand_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\auto_mailversand_small.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Ustveu_Rechnungsanlagen_DE" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Ustveu-Rechnungsanlagen-DE.xls;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
||||
BIN
SDL/Resources/Ustveu-Rechnungsanlagen-DE.xls
Normal file
BIN
SDL/Resources/Ustveu-Rechnungsanlagen-DE.xls
Normal file
Binary file not shown.
@@ -796,6 +796,7 @@
|
||||
<Compile Include="Classes\cEP0735_Versand.vb" />
|
||||
<Compile Include="Classes\cEPBes.vb" />
|
||||
<Compile Include="Classes\cFinanzOnlineWebService.vb" />
|
||||
<Compile Include="Classes\cFiskaltrustClient_chilkat.vb" />
|
||||
<Compile Include="Classes\cFiskal_Daten.vb" />
|
||||
<Compile Include="Classes\cFormularVorlagen.vb" />
|
||||
<Compile Include="Classes\cGenWord.vb" />
|
||||
@@ -1411,7 +1412,8 @@
|
||||
<Compile Include="mdm\PLOSE\rptPLOSE_Konsortium.vb">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="USTV\VATRefund.vb" />
|
||||
<Compile Include="USTV\VATRefund_HR.vb" />
|
||||
<Compile Include="USTV\VATRefund_RO.vb" />
|
||||
<Compile Include="USTV\usrCntlUSTV.Designer.vb">
|
||||
<DependentUpon>usrCntlUSTV.vb</DependentUpon>
|
||||
</Compile>
|
||||
@@ -5062,6 +5064,7 @@
|
||||
</None>
|
||||
<None Include="Resources\SR_EVOLOG.xlsx" />
|
||||
<None Include="Resources\SR_TransFerry360.xlsx" />
|
||||
<None Include="Resources\Ustveu-Rechnungsanlagen-DE.xls" />
|
||||
<None Include="Resources\VERAG_CBAM_Report_Template.xlsx" />
|
||||
<None Include="Resources\Zoll\EORI_UID.dotx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
|
||||
286
SDL/USTV/VATRefund_HR.vb
Normal file
286
SDL/USTV/VATRefund_HR.vb
Normal file
@@ -0,0 +1,286 @@
|
||||
|
||||
|
||||
Public Class GlobalVATRefundApplication_HR
|
||||
|
||||
Public Property Applicant As Applicant_
|
||||
Public Property Representative As Representative_
|
||||
Public Property RefundPeriod As RefundPeriod_
|
||||
Public Property BankAccount As BankAccount_
|
||||
Public Property RefundRequest As RefundRequest_
|
||||
|
||||
Public Function ToXml() As Chilkat.Xml
|
||||
|
||||
Dim xml As New Chilkat.Xml
|
||||
|
||||
xml.Tag = "p:GlobalVATRefundApplication"
|
||||
|
||||
xml.AddAttribute("xmlns:p", "http://VATRefund/")
|
||||
xml.AddAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")
|
||||
xml.AddAttribute("xsi:type", "p:GlobalVATRefundApplication")
|
||||
|
||||
' Applicant
|
||||
xml.UpdateChildContent("applicant|nameType", Applicant.NameType)
|
||||
xml.UpdateChildContent("applicant|nameFree", Applicant.NameFree)
|
||||
xml.UpdateChildContent("applicant|addressFree", Applicant.AddressFree)
|
||||
xml.UpdateChildContent("applicant|telephone", Applicant.Telephone)
|
||||
|
||||
xml.UpdateChildContent("applicant|country|countryISOCode",
|
||||
Applicant.CountryISOCode)
|
||||
|
||||
xml.UpdateChildContent("applicant|country|memberStatePreferences|countryMSCode",
|
||||
Applicant.CountryISOCode)
|
||||
|
||||
xml.UpdateChildContent("applicant|identification|VATId",
|
||||
Applicant.VATId)
|
||||
|
||||
xml.UpdateChildContent("applicant|identification|identificationCountry|countryISOCode",
|
||||
Applicant.CountryISOCode)
|
||||
|
||||
xml.UpdateChildContent("applicant|identification|identificationCountry|memberStatePreferences|countryMSCode",
|
||||
Applicant.CountryISOCode)
|
||||
|
||||
xml.UpdateChildContent("applicant|email",
|
||||
Applicant.Email)
|
||||
|
||||
' Representative
|
||||
xml.UpdateChildContent("representative|nameFree",
|
||||
Representative.Name)
|
||||
|
||||
xml.UpdateChildContent("representative|addressFree",
|
||||
Representative.Address)
|
||||
|
||||
xml.UpdateChildContent("representative|telephone",
|
||||
Representative.Telephone)
|
||||
|
||||
xml.UpdateChildContent("representative|country|countryISOCode",
|
||||
Representative.CountryISOCode)
|
||||
|
||||
xml.UpdateChildContent("representative|identification|identificationType",
|
||||
Representative.IdentificationType)
|
||||
|
||||
xml.UpdateChildContent("representative|identification|identificationNumber",
|
||||
Representative.IdentificationNumber)
|
||||
|
||||
xml.UpdateChildContent("representative|identification|identificationCountry|countryISOCode",
|
||||
Representative.CountryISOCode)
|
||||
|
||||
xml.UpdateChildContent("representative|email",
|
||||
Representative.Email)
|
||||
|
||||
' RefundPeriod
|
||||
xml.UpdateChildContent("refundPeriod|fromDate",
|
||||
RefundPeriod.FromDate)
|
||||
|
||||
xml.UpdateChildContent("refundPeriod|toDate",
|
||||
RefundPeriod.ToDate)
|
||||
|
||||
' businessDescription
|
||||
xml.UpdateChildContent("businessDescription", "")
|
||||
|
||||
' Bank
|
||||
xml.UpdateChildContent("defaultBankAccount|IBAN",
|
||||
BankAccount.IBAN)
|
||||
|
||||
xml.UpdateChildContent("defaultBankAccount|BIC",
|
||||
BankAccount.BIC)
|
||||
|
||||
xml.UpdateChildContent("defaultBankAccount|ownerName",
|
||||
BankAccount.OwnerName)
|
||||
|
||||
xml.UpdateChildContent("defaultBankAccount|details|ownerType",
|
||||
BankAccount.OwnerType)
|
||||
|
||||
xml.UpdateChildContent("defaultBankAccount|details|currency|currencyISO",
|
||||
BankAccount.CurrencyISO)
|
||||
|
||||
xml.UpdateChildContent("version",
|
||||
DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"))
|
||||
|
||||
' RefundRequest
|
||||
xml.UpdateChildContent("refundRequest|refundMemberState|countryISOCode", RefundRequest.RefundMemberState)
|
||||
|
||||
For i As Integer = 0 To RefundRequest.PurchaseInformation.Count - 1
|
||||
|
||||
Dim p = RefundRequest.PurchaseInformation(i)
|
||||
|
||||
Dim path = $"refundRequest|purchaseInformation[{i}]"
|
||||
|
||||
xml.UpdateChildContent(path & "|sequence", p.Sequence.ToString)
|
||||
|
||||
xml.UpdateChildContent(path & "|simplifiedInvoice", p.SimplifiedInvoice.ToString.ToLower)
|
||||
|
||||
xml.UpdateChildContent(path & "|referenceNumber", p.ReferenceNumber)
|
||||
|
||||
xml.UpdateChildContent(path & "|issuingDate", p.IssuingDate)
|
||||
|
||||
xml.UpdateChildContent(path & "|transactionDescription|taxableAmount|amount",
|
||||
p.TransactionDescription.TaxableAmount.Amount.ToString(Globalization.CultureInfo.InvariantCulture))
|
||||
|
||||
xml.UpdateChildContent(path & "|transactionDescription|taxableAmount|currency|currencyISO",
|
||||
p.TransactionDescription.TaxableAmount.CurrencyISO)
|
||||
|
||||
xml.UpdateChildContent(path & "|transactionDescription|VATAmount|amount",
|
||||
p.TransactionDescription.VATAmount.Amount.ToString(Globalization.CultureInfo.InvariantCulture))
|
||||
|
||||
xml.UpdateChildContent(path & "|transactionDescription|VATAmount|currency|currencyISO",
|
||||
p.TransactionDescription.VATAmount.CurrencyISO)
|
||||
|
||||
xml.UpdateChildContent(path & "|deduction|deductibleAmount|amount",
|
||||
p.Deduction.DeductibleAmount.Amount.ToString(Globalization.CultureInfo.InvariantCulture))
|
||||
|
||||
xml.UpdateChildContent(path & "|deduction|deductibleAmount|currency|currencyISO",
|
||||
p.Deduction.DeductibleAmount.CurrencyISO)
|
||||
|
||||
xml.UpdateChildContent(path & "|goodsDescription|code",
|
||||
p.GoodsDescription.Code)
|
||||
|
||||
xml.UpdateChildContent(path & "|EUSupplier|nameFree",
|
||||
p.EUSupplier.NameFree)
|
||||
|
||||
xml.UpdateChildContent(path & "|EUSupplier|addressFree",
|
||||
p.EUSupplier.AddressFree)
|
||||
|
||||
xml.UpdateChildContent(path & "|EUSupplier|country|countryISOCode",
|
||||
p.EUSupplier.CountryISOCode)
|
||||
|
||||
xml.UpdateChildContent(path & "|EUSupplier|identification|VATId",
|
||||
p.EUSupplier.VATId)
|
||||
|
||||
xml.UpdateChildContent(path & "|EUSupplier|identification|identificationCountry|countryISOCode",
|
||||
p.EUSupplier.CountryISOCode)
|
||||
|
||||
xml.UpdateChildContent(path & "|state", "N")
|
||||
|
||||
Next
|
||||
|
||||
Dim idx As Integer = 1
|
||||
|
||||
For Each d In RefundRequest.DocumentCopy
|
||||
|
||||
Dim path = $"refundRequest|documentCopy[{idx}]"
|
||||
|
||||
xml.UpdateChildContent(path & "|fileType", d.FileType)
|
||||
xml.UpdateChildContent(path & "|filename", d.FileName)
|
||||
xml.UpdateChildContent(path & "|description", d.Description)
|
||||
xml.UpdateChildContent(path & "|file", d.Base64Content)
|
||||
|
||||
idx += 1
|
||||
|
||||
Next
|
||||
|
||||
|
||||
xml.UpdateChildContent("refundRequest|state", "N")
|
||||
|
||||
xml.UpdateChildContent("submittedLocale", "de")
|
||||
|
||||
Return xml
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
Public Class Applicant_
|
||||
Public Property NameType As String
|
||||
Public Property NameFree As String
|
||||
Public Property AddressFree As String
|
||||
Public Property Telephone As String
|
||||
Public Property CountryISOCode As String
|
||||
Public Property VATId As String
|
||||
Public Property Email As String
|
||||
End Class
|
||||
|
||||
Public Class Representative_
|
||||
Public Property Name As String
|
||||
Public Property Address As String
|
||||
Public Property Telephone As String
|
||||
Public Property CountryISOCode As String
|
||||
Public Property IdentificationType As String
|
||||
Public Property IdentificationNumber As String
|
||||
Public Property Email As String
|
||||
End Class
|
||||
|
||||
Public Class RefundPeriod_
|
||||
Public Property FromDate As String
|
||||
Public Property ToDate As String
|
||||
End Class
|
||||
|
||||
Public Class BankAccount_
|
||||
Public Property IBAN As String
|
||||
Public Property BIC As String
|
||||
Public Property OwnerName As String
|
||||
Public Property OwnerType As String
|
||||
Public Property CurrencyISO As String
|
||||
End Class
|
||||
|
||||
Public Class Purchase_
|
||||
|
||||
Public Property Sequence As Integer
|
||||
Public Property SimplifiedInvoice As Boolean
|
||||
Public Property ReferenceNumber As String
|
||||
Public Property IssuingDate As String
|
||||
Public Property TransactionDescription As TransactionDescription_
|
||||
Public Property Deduction As Deduction_
|
||||
Public Property GoodsDescription As GoodsDescription_
|
||||
Public Property EUSupplier As EUSupplier_
|
||||
Public Property State As String = "N"
|
||||
|
||||
End Class
|
||||
|
||||
Public Class DocumentCopy_
|
||||
|
||||
Public Property FileType As String
|
||||
Public Property FileName As String
|
||||
Public Property Description As String
|
||||
Public Property Base64Content As String
|
||||
|
||||
End Class
|
||||
|
||||
Public Class RefundRequest_
|
||||
|
||||
Public Property RefundMemberState As String
|
||||
Public Property PurchaseInformation As New List(Of Purchase_)
|
||||
Public Property DocumentCopy As New List(Of DocumentCopy_)
|
||||
Public Property State As String = "N"
|
||||
|
||||
End Class
|
||||
|
||||
Public Class TransactionDescription_
|
||||
|
||||
Public Property TaxableAmount As MoneyAmount_
|
||||
Public Property VATAmount As MoneyAmount_
|
||||
|
||||
End Class
|
||||
|
||||
Public Class Deduction_
|
||||
|
||||
Public Property DeductibleAmount As MoneyAmount_
|
||||
|
||||
End Class
|
||||
|
||||
Public Class MoneyAmount_
|
||||
|
||||
Public Property Amount As Decimal
|
||||
Public Property CurrencyISO As String = "EUR"
|
||||
|
||||
End Class
|
||||
|
||||
Public Class GoodsDescription_
|
||||
|
||||
Public Property Code As String
|
||||
|
||||
End Class
|
||||
|
||||
Public Class EUSupplier_
|
||||
|
||||
Public Property NameFree As String
|
||||
Public Property AddressFree As String
|
||||
Public Property CountryISOCode As String
|
||||
Public Property VATId As String
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
Imports Chilkat
|
||||
|
||||
'=========================
|
||||
' HAUFENKLASSEN
|
||||
'=========================
|
||||
Public Class VATRefundApplication
|
||||
Public Class VATRefundApplication_RO
|
||||
Public Property CodF1 As FormInfo
|
||||
Public Property RefundPeriod As Period
|
||||
Public Property ApplicationReference As ApplicationReference
|
||||
@@ -24,9 +21,6 @@ Public Class VATRefundApplication
|
||||
ImportInformation = New ImportInformation()
|
||||
End Sub
|
||||
|
||||
'=========================
|
||||
' Methode um das XML zu erzeugen
|
||||
'=========================
|
||||
Public Function ToXml() As Xml
|
||||
Dim xml As New Xml
|
||||
xml.Tag = "VATRefundApplication"
|
||||
File diff suppressed because it is too large
Load Diff
46
SDL/USTV/usrCntlUSTV.Designer.vb
generated
46
SDL/USTV/usrCntlUSTV.Designer.vb
generated
@@ -23,12 +23,13 @@ Partial Class usrCntlUSTV
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
|
||||
Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(usrCntlUSTV))
|
||||
Me.pnlFilter = New System.Windows.Forms.Panel()
|
||||
Me.dgvUSTV = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Panel1 = New System.Windows.Forms.Panel()
|
||||
Me.btnoffeneAntraege = New System.Windows.Forms.Button()
|
||||
Me.txtSucheID = New System.Windows.Forms.TextBox()
|
||||
Me.MyComboBox1 = New VERAG_PROG_ALLGEMEIN.MyComboBox()
|
||||
Me.Label12 = New System.Windows.Forms.Label()
|
||||
@@ -84,7 +85,7 @@ Partial Class usrCntlUSTV
|
||||
Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.ContextMenuStrip3 = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.ContextMenuStrip4 = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.btnoffeneAntraege = New System.Windows.Forms.Button()
|
||||
Me.btn_Zahlungen_importieren = New System.Windows.Forms.Button()
|
||||
CType(Me.dgvUSTV, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.Panel1.SuspendLayout()
|
||||
Me.Panel2.SuspendLayout()
|
||||
@@ -106,8 +107,8 @@ Partial Class usrCntlUSTV
|
||||
Me.dgvUSTV.AKTUALISIERUNGS_INTERVALL = -1
|
||||
Me.dgvUSTV.AllowUserToAddRows = False
|
||||
Me.dgvUSTV.AllowUserToDeleteRows = False
|
||||
DataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
|
||||
Me.dgvUSTV.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle3
|
||||
DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
|
||||
Me.dgvUSTV.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2
|
||||
Me.dgvUSTV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
|
||||
Me.dgvUSTV.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.dgvUSTV.Location = New System.Drawing.Point(0, 108)
|
||||
@@ -178,6 +179,18 @@ Partial Class usrCntlUSTV
|
||||
Me.Panel1.Size = New System.Drawing.Size(1737, 108)
|
||||
Me.Panel1.TabIndex = 0
|
||||
'
|
||||
'btnoffeneAntraege
|
||||
'
|
||||
Me.btnoffeneAntraege.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.btnoffeneAntraege.ForeColor = System.Drawing.Color.Black
|
||||
Me.btnoffeneAntraege.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.btnoffeneAntraege.Location = New System.Drawing.Point(806, 24)
|
||||
Me.btnoffeneAntraege.Name = "btnoffeneAntraege"
|
||||
Me.btnoffeneAntraege.Size = New System.Drawing.Size(83, 40)
|
||||
Me.btnoffeneAntraege.TabIndex = 79
|
||||
Me.btnoffeneAntraege.Text = "offene Anträge"
|
||||
Me.btnoffeneAntraege.UseVisualStyleBackColor = True
|
||||
'
|
||||
'txtSucheID
|
||||
'
|
||||
Me.txtSucheID.Location = New System.Drawing.Point(554, 36)
|
||||
@@ -780,6 +793,7 @@ Partial Class usrCntlUSTV
|
||||
'Panel3
|
||||
'
|
||||
Me.Panel3.AutoSize = True
|
||||
Me.Panel3.Controls.Add(Me.btn_Zahlungen_importieren)
|
||||
Me.Panel3.Controls.Add(Me.btn3470)
|
||||
Me.Panel3.Controls.Add(Me.Button4)
|
||||
Me.Panel3.Controls.Add(Me.btnVZ)
|
||||
@@ -940,17 +954,20 @@ Partial Class usrCntlUSTV
|
||||
Me.ContextMenuStrip4.Name = "ContextMenuStrip1"
|
||||
Me.ContextMenuStrip4.Size = New System.Drawing.Size(61, 4)
|
||||
'
|
||||
'btnoffeneAntraege
|
||||
'btn_Zahlungen_importieren
|
||||
'
|
||||
Me.btnoffeneAntraege.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.btnoffeneAntraege.ForeColor = System.Drawing.Color.Black
|
||||
Me.btnoffeneAntraege.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.btnoffeneAntraege.Location = New System.Drawing.Point(806, 24)
|
||||
Me.btnoffeneAntraege.Name = "btnoffeneAntraege"
|
||||
Me.btnoffeneAntraege.Size = New System.Drawing.Size(83, 40)
|
||||
Me.btnoffeneAntraege.TabIndex = 79
|
||||
Me.btnoffeneAntraege.Text = "offene Anträge"
|
||||
Me.btnoffeneAntraege.UseVisualStyleBackColor = True
|
||||
Me.btn_Zahlungen_importieren.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.btn_Zahlungen_importieren.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!)
|
||||
Me.btn_Zahlungen_importieren.ForeColor = System.Drawing.Color.Black
|
||||
Me.btn_Zahlungen_importieren.Image = Global.SDL.My.Resources.Resources.Excel_logo
|
||||
Me.btn_Zahlungen_importieren.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.btn_Zahlungen_importieren.Location = New System.Drawing.Point(665, 6)
|
||||
Me.btn_Zahlungen_importieren.Name = "btn_Zahlungen_importieren"
|
||||
Me.btn_Zahlungen_importieren.Size = New System.Drawing.Size(132, 40)
|
||||
Me.btn_Zahlungen_importieren.TabIndex = 31
|
||||
Me.btn_Zahlungen_importieren.Text = "Erstattungspos. importieren"
|
||||
Me.btn_Zahlungen_importieren.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
Me.btn_Zahlungen_importieren.UseVisualStyleBackColor = True
|
||||
'
|
||||
'usrCntlUSTV
|
||||
'
|
||||
@@ -1030,4 +1047,5 @@ Partial Class usrCntlUSTV
|
||||
Friend WithEvents btn3470 As Button
|
||||
Friend WithEvents ContextMenuStrip4 As ContextMenuStrip
|
||||
Friend WithEvents btnoffeneAntraege As Button
|
||||
Friend WithEvents btn_Zahlungen_importieren As Button
|
||||
End Class
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.Linq.Expressions
|
||||
Imports System.Text
|
||||
Imports GrapeCity.DataVisualization.TypeScript
|
||||
Imports Microsoft.Office.Interop
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
|
||||
@@ -729,10 +732,10 @@ Public Class usrCntlUSTV
|
||||
|
||||
|
||||
MsgBox("Funktion nicht implementiert!")
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -1745,4 +1748,273 @@ Public Class usrCntlUSTV
|
||||
cbxDifferenzbetrag.CheckState = CheckState.Checked
|
||||
init(,,, True)
|
||||
End Sub
|
||||
|
||||
Private Sub btn_Zahlungen_importieren_Click(sender As Object, e As EventArgs) Handles btn_Zahlungen_importieren.Click
|
||||
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
Try
|
||||
|
||||
Dim fd As New OpenFileDialog
|
||||
fd.InitialDirectory = "\\share01.verag.ost.dmn\F\19 VERAG 360 - MDM\MWST Eingänge\"
|
||||
fd.Filter = "Excel Dateien (*.xlsx)|*.xlsx"
|
||||
|
||||
If fd.ShowDialog() <> DialogResult.OK Then Exit Sub
|
||||
|
||||
If Not fd.FileName.ToUpper().EndsWith(".XLSX") Then
|
||||
MessageBox.Show("Bitte eine XLSX-Datei auswählen.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim exclApp As Object = Nothing
|
||||
Dim Datei As Object = Nothing
|
||||
Dim Blatt As Object = Nothing
|
||||
|
||||
Dim dt As New DataTable
|
||||
|
||||
If dt IsNot Nothing And Not dt.Columns.Contains("name") Then
|
||||
|
||||
dt.Columns.Add("AntragID", GetType(String))
|
||||
dt.Columns.Add("Steuerbetrag", GetType(Double))
|
||||
dt.Columns.Add("Bank", GetType(String))
|
||||
dt.Columns.Add("BelegNr", GetType(String))
|
||||
dt.Columns.Add("GS", GetType(String))
|
||||
dt.Columns.Add("RZVZ", GetType(String))
|
||||
dt.Columns.Add("Info", GetType(String))
|
||||
dt.Columns.Add("3470", GetType(String))
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Try
|
||||
|
||||
exclApp = CreateObject("Excel.Application")
|
||||
exclApp.DisplayAlerts = False
|
||||
exclApp.CutCopyMode = False
|
||||
|
||||
Datei = exclApp.Workbooks.Open(fd.FileName)
|
||||
Blatt = Datei.Worksheets(1)
|
||||
|
||||
' Header einlesen
|
||||
Dim headerMap As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase)
|
||||
|
||||
For col As Integer = 1 To Blatt.UsedRange.Columns.Count
|
||||
|
||||
Dim header As String = Convert.ToString(Blatt.Cells(3, col).Value).Trim()
|
||||
|
||||
If header <> "" AndAlso Not headerMap.ContainsKey(header) Then
|
||||
headerMap.Add(header, col)
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
' Pflichtspalten prüfen
|
||||
Dim requiredHeaders As String() = {
|
||||
"ID",
|
||||
"Steuerbetrag",
|
||||
"BANK",
|
||||
"BelNr",
|
||||
"GS",
|
||||
"RZVZ",
|
||||
"3470",
|
||||
"INFO"
|
||||
}
|
||||
|
||||
For Each h As String In requiredHeaders
|
||||
|
||||
If Not headerMap.ContainsKey(h) Then
|
||||
MsgBox("Pflichtspalte nicht gefunden: " & h)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
Dim letzteZeile As Integer = Blatt.UsedRange.Rows.Count
|
||||
|
||||
For row As Integer = 4 To letzteZeile
|
||||
|
||||
Dim USTAV_ID As String =
|
||||
getTrimedString(Convert.ToString(Blatt.Cells(row, headerMap("ID")).Value), 6)
|
||||
|
||||
Dim Zahlungsbetrag As String =
|
||||
Convert.ToString(Blatt.Cells(row, headerMap("Steuerbetrag")).Value)
|
||||
|
||||
Dim Kuerzel As String =
|
||||
getTrimedString(Convert.ToString(Blatt.Cells(row, headerMap("Spalte1")).Value), 6)
|
||||
|
||||
Dim Bank As String =
|
||||
Convert.ToString(Blatt.Cells(row, headerMap("BANK")).Value)
|
||||
|
||||
Dim GS As String =
|
||||
Convert.ToString(Blatt.Cells(row, headerMap("GS")).Value)
|
||||
|
||||
Dim RZVZ As String =
|
||||
Convert.ToString(Blatt.Cells(row, headerMap("RZVZ")).Value)
|
||||
|
||||
Dim INFO As String =
|
||||
Convert.ToString(Blatt.Cells(row, headerMap("INFO")).Value)
|
||||
|
||||
Dim _3470 As String =
|
||||
Convert.ToString(Blatt.Cells(row, headerMap("3470")).Value)
|
||||
|
||||
If String.IsNullOrWhiteSpace(USTAV_ID) Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
If IsNumeric(USTAV_ID) AndAlso Bank <> "" AndAlso IsNumeric(Bank) AndAlso GS <> "" Then
|
||||
|
||||
|
||||
Dim R As DataRow = dt.NewRow
|
||||
R("AntragID") = USTAV_ID
|
||||
R("Steuerbetrag") = Zahlungsbetrag
|
||||
R("Bank") = Bank
|
||||
R("BelegNr") = Kuerzel
|
||||
R("GS") = GS
|
||||
R("RZVZ") = RZVZ
|
||||
R("Info") = INFO
|
||||
|
||||
dt.Rows.Add(R)
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
|
||||
If dt.Rows.Count > 0 Then
|
||||
|
||||
If vbYes = MsgBox("Es wurden " & dt.Rows.Count & " Datensätze erkannt. " & vbNewLine & "Sollen diese eingearbeitet werden?", vbYesNoCancel) Then
|
||||
|
||||
For Each r As DataRow In dt.Rows
|
||||
|
||||
Dim USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(r.Item("AntragID"))
|
||||
|
||||
If USTV_ANTRAG.hasEntry Then
|
||||
|
||||
Select Case r.Item("3470").ToString.ToLower
|
||||
Case "ja"
|
||||
If Not USTV_ANTRAG.UStVAn_3470 Then
|
||||
USTV_ANTRAG.UStVAn_3470 = True
|
||||
USTV_ANTRAG.SAVE()
|
||||
End If
|
||||
|
||||
'Case "nein"
|
||||
' If USTV_ANTRAG.UStVAn_3470 Then
|
||||
' USTV_ANTRAG.UStVAn_3470 = False
|
||||
' USTV_ANTRAG.SAVE()
|
||||
' End If
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
|
||||
Dim UStV_ERS = New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen()
|
||||
UStV_ERS.UStVEr_ID = USTV_ANTRAG.getMaxPosNrErst()
|
||||
UStV_ERS.UStVEr_interneNr = USTV_ANTRAG.getMaxinternePosNrErst()
|
||||
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
Else
|
||||
Exit Sub
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Finally
|
||||
|
||||
If Datei IsNot Nothing Then
|
||||
Datei.Close(False)
|
||||
End If
|
||||
|
||||
If exclApp IsNot Nothing Then
|
||||
exclApp.Quit()
|
||||
End If
|
||||
|
||||
If Blatt IsNot Nothing Then
|
||||
Runtime.InteropServices.Marshal.ReleaseComObject(Blatt)
|
||||
End If
|
||||
|
||||
If Datei IsNot Nothing Then
|
||||
Runtime.InteropServices.Marshal.ReleaseComObject(Datei)
|
||||
End If
|
||||
|
||||
If exclApp IsNot Nothing Then
|
||||
Runtime.InteropServices.Marshal.ReleaseComObject(exclApp)
|
||||
End If
|
||||
|
||||
Blatt = Nothing
|
||||
Datei = Nothing
|
||||
exclApp = Nothing
|
||||
|
||||
GC.Collect()
|
||||
GC.WaitForPendingFinalizers()
|
||||
|
||||
End Try
|
||||
|
||||
Catch ex As Exception
|
||||
|
||||
MessageBox.Show(ex.Message & Environment.NewLine & ex.StackTrace)
|
||||
|
||||
End Try
|
||||
|
||||
Me.Refresh()
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Function getTrimedString(s As String, l As Integer) As String
|
||||
Try
|
||||
If s Is Nothing Then Return ""
|
||||
If s.ToString.Length > l Then
|
||||
Return s.Substring(0, l)
|
||||
End If
|
||||
Return s.ToString
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("getTrimedString: " & ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return ""
|
||||
End Function
|
||||
Function getTrimedStringACCES(s As Object, l As Integer) As String
|
||||
|
||||
Try
|
||||
If s Is Nothing Then Return ""
|
||||
If s Is DBNull.Value Then Return ""
|
||||
If s.ToString.Length > l Then
|
||||
Return s.Substring(0, l)
|
||||
End If
|
||||
Return s
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("getTrimedString: " & ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return ""
|
||||
End Function
|
||||
Function getTrimedStringACCESEUR(s As Object, l As Integer) As String
|
||||
|
||||
Try
|
||||
If s Is Nothing Then Return ""
|
||||
If s Is DBNull.Value Then Return ""
|
||||
If s.ToString.Length > l Then
|
||||
Return s.Substring(0, l)
|
||||
End If
|
||||
|
||||
If IsNumeric(s) Then
|
||||
Return CDbl(s).ToString("C2")
|
||||
End If
|
||||
|
||||
Return s
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("getTrimedString: " & ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return ""
|
||||
End Function
|
||||
|
||||
Function isleernothing(s) As Object
|
||||
If s Is DBNull.Value Then Return Nothing
|
||||
If s.ToString.Trim = "" Then Return Nothing
|
||||
Return s.trim
|
||||
End Function
|
||||
End Class
|
||||
|
||||
@@ -1708,7 +1708,7 @@ Public Class frmBU_Mahnlauf
|
||||
|
||||
'noch keine Unterscheidung der Abteilungen bei MDM, daher hardcodiert.
|
||||
Dim MautVertrMail = "z.batinic@verag.ag;alex@verag.ag;maut.ro@verag.ag;ma@verag.ag;n.ljubas@verag.ag;s.vidovic@verag.ag;"
|
||||
Dim MautFaktMail = "s.kriegner@verag.ag;"
|
||||
Dim MautFaktMail = "s.kriegner@verag.ag;mmdabrechnung@verag.ag;"
|
||||
|
||||
Select Case cbxKontotyp._value
|
||||
Case "A" : Mail.To = MautVertrMail & MautFaktMail
|
||||
|
||||
2
SDL/kassenbuch/frmBelegNeu.Designer.vb
generated
2
SDL/kassenbuch/frmBelegNeu.Designer.vb
generated
@@ -1782,7 +1782,7 @@ Partial Class frmBelegNeu
|
||||
'cm_FT
|
||||
'
|
||||
Me.cm_FT.Name = "ContextMenuStrip1"
|
||||
Me.cm_FT.Size = New System.Drawing.Size(61, 4)
|
||||
Me.cm_FT.Size = New System.Drawing.Size(181, 26)
|
||||
'
|
||||
'frmBelegNeu
|
||||
'
|
||||
|
||||
@@ -1705,8 +1705,8 @@ Public Class frmBelegNeu
|
||||
Dim verarbeitet As Boolean = False
|
||||
If KASSE.rksv_FT_RestServiceURL <> "" Then
|
||||
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, BELEG.POS, QR_CodeString, LastJWS)
|
||||
result.Wait()
|
||||
verarbeitet = result.Result
|
||||
'result.Wait()
|
||||
verarbeitet = result
|
||||
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
|
||||
@@ -1941,8 +1941,26 @@ Public Class frmBelegNeu
|
||||
cm_FT.Items.Add(ids)
|
||||
End If
|
||||
|
||||
If Not cm_FT.Items.ContainsKey("journal") Then
|
||||
Dim ids = New ToolStripMenuItem() With {.Text = "Journal", .Name = "journal", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
||||
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
|
||||
@@ -1961,50 +1979,90 @@ Public Class frmBelegNeu
|
||||
|
||||
KASSE.LOAD(cboKassen._value)
|
||||
|
||||
Dim client As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
|
||||
'Dim client As New cFiskaltrustClient(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
|
||||
'beide
|
||||
Dim result As String = Await client.SignNullReceiptAsync(KASSE.rksv_id)
|
||||
MsgBox(result)
|
||||
'Dim result As String = Await client.SignNullReceiptAsync(KASSE.rksv_id)
|
||||
|
||||
Dim result As String = client_chilkat.SignNullReceipt(KASSE.rksv_id)
|
||||
|
||||
|
||||
If result <> "" Then
|
||||
|
||||
MsgBox(client_chilkat.PrettyPrintJson(result))
|
||||
|
||||
End If
|
||||
|
||||
|
||||
ElseIf item.Name = "test" Then
|
||||
'beide
|
||||
Dim result As String = Await client.Echo(KASSE.rksv_bez & " " & KASSE.rksv_FT_Country & " - ")
|
||||
MsgBox(result)
|
||||
'Dim result As String = Await client.Echo(KASSE.rksv_bez & " " & KASSE.rksv_FT_Country & " - ")
|
||||
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
|
||||
'beide
|
||||
Dim result As String = Await client.CancelReceiptAsync_test("-1", 100, "Cash", KASSE.rksv_id)
|
||||
MsgBox(result)
|
||||
'Dim result As String = Await client.CancelReceiptAsync_test("-1", 100, "Cash", KASSE.rksv_id)
|
||||
Dim result As String = client_chilkat.ChancelReceipt_test("-1", KASSE.rksv_id)
|
||||
|
||||
If result <> "" Then
|
||||
|
||||
MsgBox(client_chilkat.PrettyPrintJson(result))
|
||||
|
||||
End If
|
||||
|
||||
ElseIf item.Name = "bar" Then
|
||||
'beide
|
||||
Dim result As String = Await client.SignReceiptAsync_test(KASSE.rksv_id)
|
||||
'Dim result As String = Await client.SignReceiptAsync_test(KASSE.rksv_id)
|
||||
Dim result As String = client_chilkat.SignReceipt_test(KASSE.rksv_id)
|
||||
|
||||
If result <> "" Then
|
||||
If vbYes = MsgBox("Testdaten in DB speichern?", vbYesNoCancel) Then
|
||||
|
||||
If vbYes = MsgBox(result & vbNewLine & vbNewLine & "Testdaten in DB speichern?", vbYesNoCancel) Then
|
||||
Dim QR_CodeString As String = ""
|
||||
client.saveRKSV_FT(result, QR_CodeString)
|
||||
client_chilkat.saveRKSV_FT(result, QR_CodeString)
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
|
||||
MsgBox(result)
|
||||
|
||||
If result <> "" Then
|
||||
|
||||
MsgBox(client_chilkat.PrettyPrintJson(result))
|
||||
|
||||
End If
|
||||
|
||||
ElseIf item.Name = "monthly" Then
|
||||
'beide
|
||||
Dim result As String = Await client.SignClosinglReceiptAsync(item.Name, KASSE.rksv_id)
|
||||
MsgBox(result)
|
||||
'Dim result As String = Await client.SignClosinglReceiptAsync(item.Name, KASSE.rksv_id)
|
||||
Dim result As String = client_chilkat.SignClosingReceipt(item.Name, KASSE.rksv_id, item.Name)
|
||||
|
||||
If result <> "" Then
|
||||
|
||||
MsgBox(client_chilkat.PrettyPrintJson(result))
|
||||
|
||||
End If
|
||||
|
||||
ElseIf item.Name = "daily" Then
|
||||
'Nur DE
|
||||
If KASSE.rksv_FT_Country = "DE" Then
|
||||
Dim result As String = Await client.SignClosinglReceiptAsync(item.Name, KASSE.rksv_id)
|
||||
MsgBox(result)
|
||||
'Dim result As String = Await client.SignClosinglReceiptAsync(item.Name, KASSE.rksv_id)
|
||||
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
|
||||
@@ -2012,13 +2070,31 @@ Public Class frmBelegNeu
|
||||
|
||||
ElseIf item.Name = "yearly" Then
|
||||
|
||||
Dim result As String = Await client.SignClosinglReceiptAsync(item.Name, KASSE.rksv_id)
|
||||
MsgBox(result)
|
||||
' Dim result As String = Await client.SignClosinglReceiptAsync(item.Name, KASSE.rksv_id)
|
||||
Dim result As String = client_chilkat.SignClosingReceipt(item.Name, KASSE.rksv_id, item.Name)
|
||||
If result <> "" Then
|
||||
|
||||
ElseIf item.Name = "journal" Then
|
||||
MsgBox(client_chilkat.PrettyPrintJson(result))
|
||||
|
||||
Dim result As String = Await client.Journal(2)
|
||||
MsgBox(result)
|
||||
End If
|
||||
|
||||
ElseIf (item.Name = "version" Or item.Name = "action" Or item.Name = "signatures" Or item.Name = "queueitem") Then
|
||||
|
||||
'Dim result As String = Await client.Journal(2)
|
||||
|
||||
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)
|
||||
End Select
|
||||
|
||||
If result <> "" Then
|
||||
|
||||
MsgBox(client_chilkat.PrettyPrintJson(result))
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
@@ -2030,6 +2106,8 @@ Public Class frmBelegNeu
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
Class TestRKSVW
|
||||
|
||||
@@ -4916,7 +4916,7 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land
|
||||
End Sub
|
||||
|
||||
Sub setBillingDateCompleted(Lieferant_ As String, date_ As Date)
|
||||
SQL.doSQL("UPDATE tblMDMEinarbeitung SET cast(billingdate as Date)='" & date_.ToShortDateString & "' WHERE supplier = " & Lieferant_ & " AND billingdate is null ", "FMZOLL")
|
||||
SQL.doSQL("UPDATE tblMDMEinarbeitung SET billingdate ='" & date_.ToShortDateString & "' WHERE supplier = '" & Lieferant_ & "' AND billingdate is null ", "FMZOLL")
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
@@ -195,9 +195,9 @@ Namespace My
|
||||
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.SpecialSettingAttribute(Global.System.Configuration.SpecialSetting.ConnectionString), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=192.168.0.90\DEVSQL;Initial Catalog=AVISO_new;Integrated Security=fal"& _
|
||||
"se;User ID=AppUser;Password=yp/THDd?xM+pZ$;Pooling=true;Min Pool Size=20;Max Poo"& _
|
||||
"l Size=250")> _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=192.168.0.90\DEVSQL;Initial Catalog=AVISO;Integrated Security=false;U"& _
|
||||
"ser ID=AppUser;Password=yp/THDd?xM+pZ$;Pooling=true;Min Pool Size=20;Max Pool Si"& _
|
||||
"ze=250")> _
|
||||
Public ReadOnly Property AVISOConnectionStringTEST() As String
|
||||
Get
|
||||
Return CType(Me("AVISOConnectionStringTEST"),String)
|
||||
|
||||
@@ -65,9 +65,9 @@
|
||||
<Setting Name="AVISOConnectionStringTEST" Type="(Connection string)" Scope="Application">
|
||||
<DesignTimeValue Profile="(Default)"><?xml version="1.0" encoding="utf-16"?>
|
||||
<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<ConnectionString>Data Source=192.168.0.90\DEVSQL;Initial Catalog=AVISO_new;Integrated Security=false;User ID=AppUser;Password=yp/THDd?xM+pZ$;Pooling=true;Min Pool Size=20;Max Pool Size=250</ConnectionString>
|
||||
<ConnectionString>Data Source=192.168.0.90\DEVSQL;Initial Catalog=AVISO;Integrated Security=false;User ID=AppUser;Password=yp/THDd?xM+pZ$;Pooling=true;Min Pool Size=20;Max Pool Size=250</ConnectionString>
|
||||
</SerializableConnectionString></DesignTimeValue>
|
||||
<Value Profile="(Default)">Data Source=192.168.0.90\DEVSQL;Initial Catalog=AVISO_new;Integrated Security=false;User ID=AppUser;Password=yp/THDd?xM+pZ$;Pooling=true;Min Pool Size=20;Max Pool Size=250</Value>
|
||||
<Value Profile="(Default)">Data Source=192.168.0.90\DEVSQL;Initial Catalog=AVISO;Integrated Security=false;User ID=AppUser;Password=yp/THDd?xM+pZ$;Pooling=true;Min Pool Size=20;Max Pool Size=250</Value>
|
||||
</Setting>
|
||||
<Setting Name="AVISOConnectionString" Type="(Connection string)" Scope="Application">
|
||||
<DesignTimeValue Profile="(Default)"><?xml version="1.0" encoding="utf-16"?>
|
||||
|
||||
Reference in New Issue
Block a user