Merge branch 'newMaster2024' of https://git.it.verag.ag/edv/SDL into newMaster2024

This commit is contained in:
2026-06-12 14:03:59 +02:00
32 changed files with 1416 additions and 262 deletions

View File

@@ -1,8 +1,7 @@
Imports System.Net.Http
Imports System.Data.SqlClient
Imports System.Net.Http
Imports System.Reflection
Imports System.Text
Imports System.Threading
Imports DocumentFormat.OpenXml.Drawing
Imports DocumentFormat.OpenXml.Wordprocessing
Imports Newtonsoft.Json
Public Class cFiskaltrustClient
@@ -24,9 +23,9 @@ Public Class cFiskaltrustClient
' ================================
' PUBLIC API
' ================================
Public Async Function SignReceiptAsync(amount As Double, vat As Double, POS As List(Of EABelegPositionen)) As Task(Of String)
Public Async Function SignReceiptAsync(amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), KindOfPayment As String, posSystemId As String) As Task(Of String)
Dim payload = BuildPayload(amount, vat, POS)
Dim payload = BuildPayloadReceipt(amount, vat, POS, KindOfPayment, posSystemId)
Dim endpoint = GetEndpoint("payment")
Dim requestContent As StringContent
@@ -46,50 +45,10 @@ Public Class cFiskaltrustClient
Return Await SendAsync(endpoint, payload, requestContent)
End Function
Public Async Function SignReceiptAsync_test() As Task(Of 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)
Public Async Function Echo(KassenName As String) As Task(Of String)
Dim payload = BuildPayload(100, 0, LIST)
Dim endpoint = GetEndpoint("payment")
Dim requestContent As StringContent
If _country = "AT" Then
' Plaintext
'Dim text As String = If(payload?.ToString(), "")
Dim json As String = JsonConvert.SerializeObject(payload)
'requestContent = New StringContent(json, Encoding.UTF8, "text/plain")
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
Else
' JSON Objekt
Dim json As String = JsonConvert.SerializeObject(payload)
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
End If
Return Await SendAsync(endpoint, payload, requestContent)
End Function
Public Async Function Echo() As Task(Of String)
Dim payload = "VERBINDUNGSPRÜFUNG ERFOLGREICH"
Dim payload = KassenName & " - VERBINDUNG OK"
Dim endpoint = GetEndpoint("test")
Dim requestContent As StringContent
@@ -116,7 +75,22 @@ Public Class cFiskaltrustClient
End Function
' Optional: Storno Beispiel
Public Async Function CancelReceiptAsync(reference As String) As Task(Of String)
'reference unique id!
Public Async Function CancelReceiptAsync(reference As String, POS As List(Of EABelegPositionen), amount As Decimal, kindOfPayment As String) As Task(Of String)
' ChargeItems Liste vorbereiten
Dim chargeItems = New List(Of Object)
For Each p In POS
chargeItems.Add(New With {
.Quantity = p.Anzahl,
.Amount = p.Preis,
.VATRate = 0,
.Description = p.LeistungsBez,
.ftChargeItemCase = 4919338167972134929
})
Next
Dim payload = New With {
.ftCashBoxID = _cashboxId,
@@ -124,8 +98,18 @@ Public Class cFiskaltrustClient
.cbTerminalID = "T1",
.cbReceiptReference = reference,
.cbReceiptMoment = DateTime.UtcNow.ToString("o"),
.ftReceiptCase = 4919338172267102210 ' Storno
}
.ftReceiptCase = 4919338172267102210,
.cbChargeItems = chargeItems,
.cbPayItems = New Object() {
New With {
.Quantity = 1.0,
.Amount = amount,
.Description = kindOfPayment,
.ftPayItemCase = 4919338167972134913
}
}
}
Dim requestContent As StringContent
@@ -146,63 +130,252 @@ Public Class cFiskaltrustClient
End Function
Public Async Function SignNullReceiptAsync(posSystemId As String) As Task(Of String)
Dim payload = BuildPayloadNullReceipt(posSystemId, _country)
Dim endpoint = GetEndpoint("payment")
Dim requestContent As StringContent
If _country = "AT" Then
' Plaintext
Dim text As String = If(payload?.ToString(), "")
Dim json As String = JsonConvert.SerializeObject(text)
requestContent = New StringContent(json, Encoding.UTF8, "text/plain")
Else
' JSON Objekt
Dim json As String = JsonConvert.SerializeObject(payload)
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
End If
Return Await SendAsync(endpoint, payload, requestContent)
End Function
Public Async Function SignClosinglReceiptAsync(type As String, posSystemId As String) As Task(Of String)
Dim payload = BuildPayloadCosinglReceipt(type, posSystemId)
Dim endpoint = GetEndpoint("payment")
Dim requestContent As StringContent
If _country = "AT" Then
' Plaintext
Dim text As String = If(payload?.ToString(), "")
Dim json As String = JsonConvert.SerializeObject(text)
requestContent = New StringContent(json, Encoding.UTF8, "text/plain")
Else
' JSON Objekt
Dim json As String = JsonConvert.SerializeObject(payload)
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
End If
Return Await SendAsync(endpoint, payload, requestContent)
End Function
Public Async Function Journal(type As String) As Task(Of String)
Dim payload = ""
Dim endpoint = GetEndpoint("journal")
If type > 0 Then
endpoint &= "?type=" & type
End If
Dim requestContent As StringContent
If _country = "AT" Then
' Plaintext
Dim text As String = If(payload?.ToString(), "")
Dim json As String = JsonConvert.SerializeObject(text)
requestContent = New StringContent(json, Encoding.UTF8, "text/plain")
Else
' JSON Objekt
Dim json As String = JsonConvert.SerializeObject(payload)
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
End If
Return Await SendAsync(endpoint, payload, requestContent)
End Function
Public Async Function SignReceiptAsync_test(posSystemId As String) As Task(Of 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 payload = BuildPayloadReceipt(100, 0, LIST, "Cash", posSystemId)
Dim endpoint = GetEndpoint("payment")
Dim requestContent As StringContent
If _country = "AT" Then
' Plaintext
'Dim text As String = If(payload?.ToString(), "")
Dim json As String = JsonConvert.SerializeObject(payload)
'requestContent = New StringContent(json, Encoding.UTF8, "text/plain")
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
Else
' JSON Objekt
Dim json As String = JsonConvert.SerializeObject(payload)
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
End If
Return Await SendAsync(endpoint, payload, requestContent)
End Function
Public Async Function CancelReceiptAsync_test(reference As String, amount As Decimal, kindOfPayment As String) As Task(Of 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 chargeItems = New List(Of Object)
Dim payload = New With {
.ftCashBoxID = _cashboxId,
.ftPosSystemId = "POS-1",
.cbTerminalID = "T1",
.cbReceiptReference = reference,
.cbReceiptMoment = DateTime.UtcNow.ToString("o"),
.ftReceiptCase = 4919338172267102210,
.cbChargeItems = chargeItems,
.cbPayItems = New Object() {
New With {
.Quantity = 1.0,
.Amount = amount,
.Description = kindOfPayment,
.ftPayItemCase = 4919338167972134913
}
}
}
Dim requestContent As StringContent
If _country = "AT" Then
' Plaintext
Dim text As String = If(payload?.ToString(), "")
Dim json As String = JsonConvert.SerializeObject(text)
requestContent = New StringContent(json, Encoding.UTF8, "text/plain")
Else
' JSON Objekt
Dim json As String = JsonConvert.SerializeObject(payload)
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
End If
Return Await SendAsync(GetEndpoint("payment"), payload, requestContent)
End Function
Private Async Function SendAsync(endpoint As String, payload As Object, requestContent As StringContent) As Task(Of String)
Dim exToThrow As Exception = Nothing
Dim url = _baseUrl & endpoint
Dim retries As Integer = 3
Dim delayMs As Integer = 500
For attempt = 1 To retries
Dim lastException As Exception = Nothing
Dim shouldRetry As Boolean = False
For attempt As Integer = 1 To retries
shouldRetry = False
Try
Using request As New HttpRequestMessage(HttpMethod.Post, url)
request.Headers.Add("cashboxid", _cashboxId)
request.Headers.Add("accesstoken", _accessToken)
request.Content = requestContent
If requestContent IsNot Nothing Then
request.Content = requestContent
End If
Dim response = Await _httpClient.SendAsync(request)
Dim result = Await response.Content.ReadAsStringAsync()
' Logging Hook
Log($"[{DateTime.Now}] Response ({response.StatusCode}): {result}")
Log($"[{DateTime.Now}] Response ({CInt(response.StatusCode)}): {result}")
If response.IsSuccessStatusCode Then
Return result
End If
' Retry only on transient errors
If CType(response.StatusCode, Integer) >= 500 Then
Throw New Exception("Server error: " & result)
Dim statusCode As Integer = CInt(response.StatusCode)
If statusCode >= 500 Then
shouldRetry = True
Throw New Exception($"Server error ({statusCode}): {result}")
Else
' Client error → no retry
Throw New Exception("Client error: " & result)
Throw New Exception($"Client error ({statusCode}): {result}")
End If
End Using
Catch ex As Exception
Log($"[{DateTime.Now}] Attempt {attempt} failed: {ex.Message}")
lastException = ex
If attempt = retries Then
exToThrow = ex
End If
Log($"[{DateTime.Now}] Attempt {attempt} failed: {ex.Message}")
End Try
' Await außerhalb von Catch
If shouldRetry AndAlso attempt < retries Then
Await Task.Delay(delayMs)
End If
Next
If exToThrow IsNot Nothing Then
Await Task.Delay(1000)
Throw exToThrow
If lastException IsNot Nothing Then
Throw lastException
End If
Throw New Exception("Unexpected error")
@@ -210,11 +383,19 @@ Public Class cFiskaltrustClient
End Function
Private Function BuildPayload(amount As Double, vat As Double, POS As List(Of EABelegPositionen)) As Object
Private Function BuildPayloadReceipt(amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), KindOfPayment As String, posSystemId As String) As Object
' ChargeItems Liste vorbereiten
Dim chargeItems = New List(Of Object)
Dim PayItemCase As Long
Select Case KindOfPayment
Case "Cash" : PayItemCase = 4919338167972134913
Case "Card" : PayItemCase = 4919338167972134913 '-> richtigen Type finden
End Select
For Each p In POS
chargeItems.Add(New With {
.Quantity = p.Anzahl,
@@ -228,7 +409,7 @@ Public Class cFiskaltrustClient
' Payload Objekt erstellen
Dim payload = New With {
.ftCashBoxID = _cashboxId,
.ftPosSystemId = "POS-1",
.ftPosSystemId = posSystemId,
.cbTerminalID = "T1",
.cbReceiptReference = Guid.NewGuid().ToString(),
.cbReceiptMoment = DateTime.UtcNow.ToString("o"),
@@ -237,17 +418,78 @@ Public Class cFiskaltrustClient
New With {
.Quantity = 1.0,
.Amount = amount,
.Description = "Cash",
.ftPayItemCase = 4919338167972134913
.Description = KindOfPayment,
.ftPayItemCase = PayItemCase
}
},
.ftReceiptCase = 4919338172267102209
.ftReceiptCase = 4919338172267102209 'IMPLICIT-FLOW -> STANDARD-BARVERKAUF
}
Return payload
End Function
Private Function BuildPayloadNullReceipt(posSystemId As String, country As String) As Object
Dim ftReceiptCase_ As Long
Dim cbReceiptReference_ As String
Select Case country
Case "DE"
ftReceiptCase_ = 4919338172267102210 'NULL-BELEG DE
cbReceiptReference_ = "ZeroReceiptAfterFailure"
Case Else
ftReceiptCase_ = 4707387510509010946 'NULL-BELEG AT
cbReceiptReference_ = "2"
End Select
Dim payload = New With {
.ftCashBoxID = _cashboxId,
.ftPosSystemId = posSystemId,
.cbTerminalID = "T1",
.cbReceiptReference = cbReceiptReference_,
.cbReceiptMoment = DateTime.UtcNow.ToString("o"),
.cbChargeItems = New Object() {},
.cbPayItems = New Object() {},
.ftReceiptCase = ftReceiptCase_
}
Return payload
End Function
Private Function BuildPayloadCosinglReceipt(type As String, posSystemId As String)
'Kassenabschlussbelege
Dim caseID As Long
Select Case type
Case "daily" : caseID = 4919338172267102210
Case "monthly" : caseID = 4919338172267102213
Case "yearly" : caseID = 4919338172267102214
End Select
Dim payload = New With {
.ftCashBoxID = _cashboxId,
.ftPosSystemId = posSystemId,
.cbTerminalID = "T1",
.cbReceiptReference = type & "-closing-" & DateTime.UtcNow.ToString("o"),
.cbReceiptMoment = DateTime.UtcNow.ToString("o"),
.cbChargeItems = New Object() {},
.cbPayItems = New Object() {},
.ftReceiptCase = caseID
}
Return payload
End Function
Private Function GetEndpoint(type As String) As String
@@ -274,6 +516,17 @@ Public Class cFiskaltrustClient
Throw New Exception("Unsupported country")
End Select
ElseIf type = "journal" Then
Select Case _country
Case "DE"
Return "/json/v0/Journal"
Case "AT"
Return "/json/Journal"
Case Else
Throw New Exception("Unsupported country")
End Select
End If
@@ -282,8 +535,405 @@ Public Class cFiskaltrustClient
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 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")
ftID = .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")
.SAVE()
If IsNumeric(.ftSignatureType) AndAlso CInt(.ftSignatureType) = 3 Then
QR_CodeString = .ftData
End If
End With
Next
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
End Class
Public Class cFiskaltrustSignatures
Property ft_id As Integer
Property ftQueueID As Object = Nothing
Property ftQueueItemID As Object = Nothing
Property ftQueueRow As Object = Nothing
Property ftCashBoxIdentification As Object = Nothing
Property ftReceiptIdentification As Object = Nothing
Property ftReceiptMoment As Object = Nothing
Property ftState As Object = Nothing
Property ftCashBoxID As Object = Nothing
Property cbTerminalID As Object = Nothing
Property cbReceiptReference As Object = Nothing
Public hasEntry = False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Sub New()
End Sub
Sub New(ft_id)
Me.ft_id = ft_id
LOAD()
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ft_id", ft_id,, True))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftQueueID", ftQueueID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftQueueItemID", ftQueueItemID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftQueueRow", ftQueueRow))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftCashBoxIdentification", ftCashBoxIdentification))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftReceiptIdentification", ftReceiptIdentification))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftReceiptMoment", ftReceiptMoment))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftState", ftState))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftCashBoxID", ftCashBoxID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("cbTerminalID", cbTerminalID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("cbReceiptReference", cbReceiptReference))
Return list
End Function
Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN " & getInsertCmd() & " END " '&
'" commit tran "
Dim id = SQL.doSQLVarListID(ft_id, sqlstr, "FMZOLL", , list)
Me.ft_id = id
Return id > 0
End Function
Public Sub LOAD()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblRKSV_FT WHERE ft_id=@ft_id ", conn)
cmd.Parameters.AddWithValue("@ft_id", ft_id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
'Public Function getUpdateCmd() As String
' Try
' Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
' Dim str As String = ""
' For Each i In list
' If Not i.isPrimaryParam Then
' str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
' End If
' Next
' str = str.Substring(0, str.Length - 1) 'wg. ','
' Return (" UPDATE [tblTABLE] SET " & str & " WHERE _BASE_id=@_BASE_id ")
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
' End Try
' Return ""
'End Function
Public Function getInsertCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "],"
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO tblRKSV_FT (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
End Class
Public Class cFiskaltrustSignaturPositions
Property ftSignatures As Integer
Property ftSignatureFormat As Object = Nothing
Property ftSignatureType As Object = Nothing
Property ftData As Object = Nothing
Public hasEntry = False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Sub New()
End Sub
Sub New(ftSignatures, ftSignatureType)
Me.ftSignatures = ftSignatures
Me.ftSignatureType = ftSignatureType
LOAD()
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftSignatures", ftSignatures))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftSignatureFormat", ftSignatureFormat))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftSignatureType", ftSignatureType))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftData", ftData))
Return list
End Function
Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN " & getInsertCmd() & " END " '&
'" commit tran "
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
End Function
Public Sub LOAD()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblRKSV_FTSignatures WHERE ftSignatures=@ftSignatures AND ftSignatureType = @ftSignatureType ", conn)
cmd.Parameters.AddWithValue("@ftSignatures", ftSignatures)
cmd.Parameters.AddWithValue("@ftSignatureType", ftSignatureType)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
'Public Function getUpdateCmd() As String
' Try
' Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
' Dim str As String = ""
' For Each i In list
' If Not i.isPrimaryParam Then
' str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
' End If
' Next
' str = str.Substring(0, str.Length - 1) 'wg. ','
' Return (" UPDATE [tblTABLE] SET " & str & " WHERE _BASE_id=@_BASE_id ")
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
' End Try
' Return ""
'End Function
Public Function getInsertCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "],"
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO tblRKSV_FTSignatures (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
End Class

View File

@@ -92,7 +92,7 @@ Public Class cRKSV
End Function
Shared Function insertRKSVFiskaltrust(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)) As Boolean
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)
Try
@@ -125,11 +125,12 @@ Public Class cRKSV
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
Dim StandUmsatzzaehler = umsatzZaehler 'KASSE.rksv_Umsatzzaehler
Dim countryID As String
Dim client As New cFiskaltrustClient(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
Dim result = client.SignReceiptAsync(summeBRUTTO, steuersatz, POS)
Dim result = Await client.SignReceiptAsync(summeBRUTTO, steuersatz, POS, "Cash", kasse.rksv_id)
client.saveRKSV_FT(result, QR_CodeString)
Catch ex As Exception

View File

@@ -189,10 +189,12 @@ Public Class usrcntlCreditsafe
Dim o As Form = Me.FindForm
' If Me.Parent.GetType() Is GetType(Form) Then o = Me.FindForm
Dim Land As String = cboLand._value
For Each row As DataGridViewRow In dgvCreditsafe.SelectedRows
comp = New Company(IIf(IsDBNull(row.Cells("name").Value), "", row.Cells("name").Value),
IIf(IsDBNull(row.Cells("vatNo").Value), "", row.Cells("vatNo").Value),
(cboLand._value),
(Land),
IIf(IsDBNull(row.Cells("safeNo").Value), "", row.Cells("safeNo").Value),
IIf(IsDBNull(row.Cells("regNo").Value), "", row.Cells("regNo").Value),
IIf(IsDBNull(row.Cells("street").Value), "", row.Cells("street").Value),

View File

@@ -965,7 +965,7 @@ Public Class cAutomailversand
If isEinzelrechnung Then
RE_Text = "diese Rechnung"
Else
RE_Text = "alle markieren Rechnungen"
RE_Text = "alle markierten Rechnungen"
End If
If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand deaktivieren?" & vbNewLine & "Die Rechnungen müssen dann manuell per Mail verschickt werden!", vbYesNoCancel) Then
@@ -992,17 +992,17 @@ Public Class cAutomailversand
End If
End Function
Public Shared Function automRechnungsversand_durchführen(Optional isEinzelrechnung As Boolean = False)
Public Shared Function automRechnungsversand_durchführen(Optional isEinzelrechnung As Boolean = False, Optional printAfterSent As Boolean = False)
Dim RE_Text = ""
If isEinzelrechnung Then
RE_Text = "diese Rechnung"
Else
RE_Text = "alle markieren Rechnungen"
RE_Text = "alle markierten Rechnungen"
End If
If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then
If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand JETZT durchführen?" & IIf(printAfterSent, vbNewLine & "Die Rechnungen werden nach dem verschicken ausgedruckt!", "") & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then
Return True
Else
Return False

View File

@@ -3050,7 +3050,7 @@ Public Class cFakturierung
Dim zahlungszieldatum As Date = CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage)
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(RECHNUNG.Firma_ID)
Dim desc As InvoiceDescriptor = InvoiceDescriptor.CreateInvoice(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
Case "AR"
@@ -5773,9 +5773,11 @@ Public Class cFakturierung
End Function
Shared Function addYeartoRgNr(Firma_ID, Buchungsjahr)
'If Buchungsjahr <= 2026 Then 'angedacht das zu korrigieren mit Jahreswechsel -> wird auch eig. im BMD-Export gesetzt, lieber so lassen! : Breimaier 10.06.2026
Select Case Firma_ID
Case "21", "22", "23" : Return Buchungsjahr.ToString.Substring(2) & "-"
End Select
Case "21", "22", "23" : Return Buchungsjahr.ToString.Substring(2) & "-"
End Select
'End If
Return ""
End Function

View File

@@ -32,6 +32,7 @@ Partial Class frmAbrechnungsMaske
Me.Label12 = New System.Windows.Forms.Label()
Me.dgvRechnungen = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.Panel2 = New System.Windows.Forms.Panel()
Me.btn_doMailAutoversand = New System.Windows.Forms.Button()
Me.Button11 = New System.Windows.Forms.Button()
Me.cbxOriginalDrucken = New System.Windows.Forms.CheckBox()
Me.cboSort = New VERAG_PROG_ALLGEMEIN.MyComboBox()
@@ -88,7 +89,6 @@ Partial Class frmAbrechnungsMaske
Me.btnVonJahr = New System.Windows.Forms.Button()
Me.UsrCntlFaktAbrechnung1 = New SDL.usrCntlFaktAbrechnung()
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.btn_doMailAutoversand = New System.Windows.Forms.Button()
Me.pnl.SuspendLayout()
CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer.Panel1.SuspendLayout()
@@ -227,6 +227,21 @@ Partial Class frmAbrechnungsMaske
Me.Panel2.Size = New System.Drawing.Size(561, 97)
Me.Panel2.TabIndex = 0
'
'btn_doMailAutoversand
'
Me.btn_doMailAutoversand.BackgroundImage = Global.SDL.My.Resources.Resources.zauberstab
Me.btn_doMailAutoversand.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.btn_doMailAutoversand.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btn_doMailAutoversand.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btn_doMailAutoversand.Location = New System.Drawing.Point(293, 21)
Me.btn_doMailAutoversand.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3)
Me.btn_doMailAutoversand.Name = "btn_doMailAutoversand"
Me.btn_doMailAutoversand.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0)
Me.btn_doMailAutoversand.Size = New System.Drawing.Size(40, 25)
Me.btn_doMailAutoversand.TabIndex = 29
Me.btn_doMailAutoversand.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.btn_doMailAutoversand.UseVisualStyleBackColor = True
'
'Button11
'
Me.Button11.BackgroundImage = Global.SDL.My.Resources.Resources.email_print1
@@ -527,6 +542,7 @@ Partial Class frmAbrechnungsMaske
Me.cboRechnungsdruck._allowedValuesFreiText = Nothing
Me.cboRechnungsdruck._allowFreiText = False
Me.cboRechnungsdruck._value = ""
Me.cboRechnungsdruck.DropDownWidth = 120
Me.cboRechnungsdruck.FormattingEnabled = True
Me.cboRechnungsdruck.Location = New System.Drawing.Point(453, 23)
Me.cboRechnungsdruck.Margin = New System.Windows.Forms.Padding(2)
@@ -976,21 +992,6 @@ Partial Class frmAbrechnungsMaske
Me.ContextMenuStrip1.Name = "ContextMenuStrip1"
Me.ContextMenuStrip1.Size = New System.Drawing.Size(61, 4)
'
'btn_doMailAutoversand
'
Me.btn_doMailAutoversand.BackgroundImage = Global.SDL.My.Resources.Resources.zauberstab
Me.btn_doMailAutoversand.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.btn_doMailAutoversand.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btn_doMailAutoversand.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btn_doMailAutoversand.Location = New System.Drawing.Point(293, 21)
Me.btn_doMailAutoversand.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3)
Me.btn_doMailAutoversand.Name = "btn_doMailAutoversand"
Me.btn_doMailAutoversand.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0)
Me.btn_doMailAutoversand.Size = New System.Drawing.Size(40, 25)
Me.btn_doMailAutoversand.TabIndex = 29
Me.btn_doMailAutoversand.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.btn_doMailAutoversand.UseVisualStyleBackColor = True
'
'frmAbrechnungsMaske
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)

View File

@@ -1,5 +1,7 @@
Imports System.IO
Imports GrapeCity.ActiveReports.PageReportModel
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class frmAbrechnungsMaske
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -39,6 +41,7 @@ Public Class frmAbrechnungsMaske
cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("E-MAIL", "2"))
cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MAIL+KOPIE", "5"))
cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AUTO-MAIL", "6"))
cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AUTO-MAIL + KOPIE", "7"))
cboRechnungsdruck.changeItem("")
cboSort.Items.Clear()
@@ -198,7 +201,7 @@ Public Class frmAbrechnungsMaske
Else
' sqlstr &= " SELECT FilialenNr, AbfertigungsNr, UnterNr, Firma_ID, Status, Sammelrechnung, Sachbearbeiter, SteuerpflichtigerGesamtbetrag, SteuerfreierGesamtbetrag, RechnungsNr, RechnungsDatum, DruckDatumZeit, Buchungsjahr, RK_ID"
sqlstr &= " SELECT cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, isnull(Rechnungsausgang.RechnungsNr,'-') as ReNr, FilialenNr, AbfertigungsNr, cast(FilialenNr as varchar) + ' ' + cast(AbfertigungsNr as varchar) as PosNr,UnterNr, Firma_ID,Rechnungsausgang.Sammelrechnung as Art, [RechnungsName 1] as Rechnungsempfänger, (isnull(SteuerpflichtigerGesamtbetrag,0) + isnull(SteuerfreierGesamtbetrag,0)) as Betrag, RK_ID,RechnungsLandKz,RechnungsKundenNr"
sqlstr &= " SELECT cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, isnull(Rechnungsausgang.RechnungsNr,'-') as ReNr, FilialenNr, AbfertigungsNr, cast(FilialenNr as varchar) + ' ' + cast(AbfertigungsNr as varchar) as PosNr,UnterNr, Firma_ID,Rechnungsausgang.Sammelrechnung as Art, [RechnungsName 1] as Rechnungsempfänger, (isnull(SteuerpflichtigerGesamtbetrag,0) + isnull(SteuerfreierGesamtbetrag,0)) as Betrag, RK_ID,RechnungsLandKz,RechnungsKundenNr, ReErfZeitstempel"
sqlstr &= ",(CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' WHEN Rechnungsdruck=5 THEN 'MAIL+KOPIE' ELSE '-' END) as Rechnungsdruck, isnull(BelegartenKz, '') as BelegartenKz "
sqlstr &= " FROM Rechnungsausgang INNER JOIN Adressen ON AdressenNr=Rechnungsausgang.RechnungsKundenNr"
sqlstr &= " WHERE 1=1 "
@@ -217,6 +220,7 @@ Public Class frmAbrechnungsMaske
.Columns("Firma_ID").Visible = False
.Columns("RechnungsLandKz").Visible = False
.Columns("RechnungsKundenNr").Visible = False
.Columns("ReErfZeitstempel").Visible = False
.Columns("PosNr").HeaderText = "Pos-Nr."
If .Columns.Contains("BelegartenKz") Then
@@ -235,7 +239,7 @@ Public Class frmAbrechnungsMaske
If .Columns.Contains("AUTO_sent") Then
.Columns("AUTO_sent").Width = 40
If cboRechnungsdruck._value <> "6" Then
If (cboRechnungsdruck._value <> "6" AndAlso cboRechnungsdruck._value <> "7") Then
.Columns("AUTO_sent").Visible = False
Else
.Columns("AUTO_sent").Visible = True
@@ -328,8 +332,9 @@ Public Class frmAbrechnungsMaske
If cboRechnungsdruck._value <> "" Then
Select Case cboRechnungsdruck._value
Case 6 : sqlstr &= " And isnull(Automailversand,0)=1 " : enableAUTOMAIL_BTN = True
Case 2 : sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' And isnull(Automailversand,0)=0" : enableAUTOMAIL_BTN = True
Case 6 : sqlstr &= " And Rechnungsdruck='2' And isnull(Automailversand,0)=1 " : enableAUTOMAIL_BTN = True
Case 7 : sqlstr &= " And Rechnungsdruck='5' And isnull(Automailversand,0)=1 " : enableAUTOMAIL_BTN = True
Case 2 : sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' And isnull(Automailversand,0)=0" : enableAUTOMAIL_BTN = False
Case 5 : sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' And isnull(Automailversand,0)=0" : enableAUTOMAIL_BTN = False
Case Else
sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' And isnull(Automailversand,0)=0 " : enableAUTOMAIL = False
@@ -976,10 +981,13 @@ Public Class frmAbrechnungsMaske
Private Sub btn_doMailAutoversand_Click(sender As Object, e As EventArgs) Handles btn_doMailAutoversand.Click
Dim printAfterSent As Boolean = False
If cboRechnungsdruck._value = "7" Then printAfterSent = True
If dgvRechnungen.SelectedRows.Count > 0 Then
If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub
If Not cAutomailversand.automRechnungsversand_durchführen(printAfterSent) Then Exit Sub
Dim ListOfRK_ID As New List(Of Integer)
@@ -987,10 +995,25 @@ Public Class frmAbrechnungsMaske
If noRE_NR Then MsgBox("ACHTUNG, RechnungsNr wurde nicht gesetzt." & vbNewLine & "Vorgang wird abgebrochen!") : Exit Sub
For Each row As DataGridViewRow In dgvRechnungen.SelectedRows
Dim selectedRows = dgvRechnungen.SelectedRows.Cast(Of DataGridViewRow)
Select Case cboSort._value
Case "EZ"
selectedRows = selectedRows.OrderBy(Function(r) CDate(r.Cells("ReErfZeitstempel").Value))
Case Else
selectedRows = selectedRows _
.OrderBy(Function(r) r.Cells("FilialenNr").Value) _
.ThenBy(Function(r) r.Cells("AbfertigungsNr").Value) _
.ThenBy(Function(r) r.Cells("RK_ID").Value)
End Select
For Each row As DataGridViewRow In selectedRows
If row.Cells("RK_ID").Value IsNot DBNull.Value AndAlso IsNumeric(row.Cells("RK_ID").Value) Then
If Not IsDBNull(row.Cells("RK_ID").Value) AndAlso IsNumeric(row.Cells("RK_ID").Value) Then
ListOfRK_ID.Add(CInt(row.Cells("RK_ID").Value))
End If
Next
@@ -999,6 +1022,16 @@ Public Class frmAbrechnungsMaske
fun.sendMailEinzelrechnungen(cboFirma._value, Today(), cboSachbearbeiter._value, ListOfRK_ID)
initDGV()
If printAfterSent Then
For Each row In ListOfRK_ID
cFakturierung.doRechnungsDruck(row,,, 1,, cboPrinter.Text)
Next
End If
End If

View File

@@ -27,8 +27,8 @@ Public Class frmFaktSammelRgDrucken
End Sub
Private Sub RadioButton_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton.CheckedChanged, RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged, RadioButton4.CheckedChanged, RadioButton6.CheckedChanged, RadioButton5.CheckedChanged
lblSB.Visible = False : cboSB.Visible = False : btn.Enabled = True : Button9.Enabled = True : Button8.Enabled = True : cbxMWST.Visible = False : pnlAUTOMailversand.Visible = False : cbxAUTOMail.Visible = False : MyListBox1.Enabled = True : btnNurExport.Enabled = True : btnNurImport.Enabled = True : btnKeine.Enabled = True
lblSB.Visible = False : cboSB.Visible = False : btn.Enabled = True : Button9.Enabled = True : Button8.Enabled = True : cbxMWST.Visible = False : pnlAUTOMailversand.Visible = False : cbxAUTOMail.Visible = False : MyListBox1.Visible = True : btnNurExport.Visible = True : btnNurImport.Visible = True : btnKeine.Visible = True
lblAbfertigungsarten.Visible = True
cboSB.changeItem("")
If DirectCast(sender, RadioButton).Checked Then Sammelrechung = sender.tag
Select Case Sammelrechung
@@ -53,7 +53,7 @@ Public Class frmFaktSammelRgDrucken
Case 6 : txtZeitraumBis.Text = Now.AddDays(-1).ToShortDateString : lblSB.Visible = True : cboSB.Visible = True
cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) : btn.Enabled = False : Button9.Enabled = False : Button2.Enabled = False
cbxMWST.Visible = True : pnlAUTOMailversand.Visible = True : cbxAUTOMail.Visible = True : Label5.Visible = False : cboFaktGrp.Visible = False
MyListBox1.Enabled = False : btnNurExport.Enabled = False : btnNurImport.Enabled = False : btnKeine.Enabled = False
MyListBox1.Visible = False : btnNurExport.Visible = False : btnNurImport.Visible = False : btnKeine.Visible = False : lblAbfertigungsarten.Visible = False
Case 7 : txtZeitraumBis.Text = Now.ToShortDateString : lblSB.Visible = True : cboSB.Visible = True : cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME)
@@ -671,10 +671,20 @@ Public Class frmFaktSammelRgDrucken
Dim abfertigungsarten = getValues()
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True)
If Not RechnungsNrisSet Then
MsgBox("Fehler bei RechnungsNr-Erzeugung!")
Dim IM_EX As Boolean = False
IM_EX = r.Cells("IM_EX").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("IM_EX").Value) AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value <> ""
If abfertigungsarten = "" AndAlso IM_EX Then
MsgBox("Achtung, Rechnung für Kunde " & r.Cells("RechnungsKundenNr").Value & " wurde nicht gesetzt, weil keine Abfertigungsart ausgewählt wurde!")
Else
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True)
If Not RechnungsNrisSet Then
MsgBox("Fehler bei RechnungsNr-Erzeugung!")
End If
End If
Me.Enabled = True
End If
End If
@@ -691,6 +701,8 @@ Public Class frmFaktSammelRgDrucken
Me.Enabled = True
Me.Cursor = Cursors.Default
cbxAUTOMail.Checked = Not cbxAUTOMail.Checked
End If
End If
@@ -709,6 +721,8 @@ Public Class frmFaktSammelRgDrucken
'setMailversand(false, Firma, Sammelrechung, 2)
setMailversand_ALL(False, Firma, Sammelrechung)
cbxAUTOMail.Checked = Not cbxAUTOMail.Checked
End If
End If
@@ -835,11 +849,13 @@ Public Class frmFaktSammelRgDrucken
Button4.Enabled = cbxAUTOMail.Checked
Button7.Enabled = cbxAUTOMail.Checked
Button3.Enabled = Not cbxAUTOMail.Checked
Button6.Enabled = cbxAUTOMail.Checked
Else
Button7.Enabled = False
Button4.Enabled = False
Button3.Enabled = False
Button6.Enabled = False
End If

View File

@@ -1908,7 +1908,7 @@ Public Class usrCntlFaktAbrechnung
End If
Next
'-----------------------------
addCBamFlyer(dgvAnhaenge)
'addCBamFlyer(dgvAnhaenge)
'-----------------------------
'ANHÄNGE SELEKTIEREN
'-----------------------------
@@ -5550,24 +5550,24 @@ mwst:
Return enableAUTOMAIL
End Select
'BEI EINZELRECHNUNG WIRD STATUS 0 und 2 geprüft
'STATUS 0-_> Rechnung angelegt
'STATUS 1-_> Einzel-Rg gedruckt
'STATUS 2-_> Anlagen zur Rg gedruckt
'STATUS 3-_> Sammel-Rg gedruckt
'STATUS 4-_> ? irgendwas mit SR 6 Maut/Diesel??
If cboSammelrechnung._value = 0 AndAlso lblDruckDatum.Text = "" AndAlso RD_DRUCK = 2 Then ' (RECHNUNG.Status <> 4 ANDAlso RECHNUNG.Status <> 0) WARUM NOCHMALS??
If RECHNUNG IsNot Nothing AndAlso (RECHNUNG.Status <> 0 AndAlso RECHNUNG.Status <> 2) Then
Return enableAUTOMAIL = False
Else
enableAUTOMAIL = True
End If
'BEI EINZELRECHNUNG WIRD STATUS 0 und 2 geprüft
'STATUS 0-_> Rechnung angelegt
'STATUS 1-_> Einzel-Rg gedruckt
'STATUS 2-_> Anlagen zur Rg gedruckt
'STATUS 3-_> Sammel-Rg gedruckt
'STATUS 4-_> ? irgendwas mit SR 6 Maut/Diesel??
If cboSammelrechnung._value = 0 AndAlso lblDruckDatum.Text = "" AndAlso RD_DRUCK = 2 Then ' (RECHNUNG.Status <> 4 ANDAlso RECHNUNG.Status <> 0) WARUM NOCHMALS??
If RECHNUNG IsNot Nothing AndAlso (RECHNUNG.Status <> 0 AndAlso RECHNUNG.Status <> 2) Then
Return enableAUTOMAIL = False
Else
enableAUTOMAIL = False
enableAUTOMAIL = True
End If
Else
enableAUTOMAIL = False
End If
@@ -5608,18 +5608,18 @@ mwst:
End Select
'BEI EINZELRECHNUNG WIRD STATUS 0 und 2 geprüft
'BEI EINZELRECHNUNG WIRD STATUS 0 und 2 geprüft
'STATUS 0-_> Rechnung angelegt
'STATUS 1-_> Einzel-Rg gedruckt
'STATUS 2-_> Anlagen zur Rg gedruckt
'STATUS 3-_> Sammel-Rg gedruckt
'STATUS 4-_> ? irgendwas mit SR 6 Maut/Diesel??
'STATUS 0-_> Rechnung angelegt
'STATUS 1-_> Einzel-Rg gedruckt
'STATUS 2-_> Anlagen zur Rg gedruckt
'STATUS 3-_> Sammel-Rg gedruckt
'STATUS 4-_> ? irgendwas mit SR 6 Maut/Diesel??
If RECHNUNG.Sammelrechnung = 0 AndAlso RECHNUNG.DruckDatumZeit Is Nothing AndAlso RD_DRUCK = 2 AndAlso (RECHNUNG.Status = 0 Or RECHNUNG.Status = 2) Then ' (RECHNUNG.Status <> 4 ANDAlso RECHNUNG.Status <> 0) WARUM NOCHMALS??
enableAUTOMAIL = True
Else
enableAUTOMAIL = False
If RECHNUNG.Sammelrechnung = 0 AndAlso RECHNUNG.DruckDatumZeit Is Nothing AndAlso (RD_DRUCK = 2 Or RD_DRUCK = 5) AndAlso (RECHNUNG.Status = 0 Or RECHNUNG.Status = 2) Then ' (RECHNUNG.Status <> 4 ANDAlso RECHNUNG.Status <> 0) WARUM NOCHMALS??
enableAUTOMAIL = True
Else
enableAUTOMAIL = False

View File

@@ -3065,6 +3065,8 @@ Public Class FormularManagerNEU
gesColli = 0
gesGewicht = 0
rpt.TextBox13.Visible = False 'lfdNr von ABT nicht anzeigen
rpt.txtLKW.Text = AVISO.LKW_Nr
rpt.txtLKWId.Text = AVISO.AvisoID

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.5.5.2")>
<Assembly: AssemblyFileVersion("1.5.5.2")>
<Assembly: AssemblyVersion("1.5.5.4")>
<Assembly: AssemblyFileVersion("1.5.5.4")>

View File

@@ -1034,7 +1034,7 @@ Partial Class usrCntlSpeditionsBuchSuche
Me.MenuStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem14})
Me.MenuStrip2.Location = New System.Drawing.Point(16, 71)
Me.MenuStrip2.Name = "MenuStrip2"
Me.MenuStrip2.Size = New System.Drawing.Size(163, 27)
Me.MenuStrip2.Size = New System.Drawing.Size(283, 27)
Me.MenuStrip2.TabIndex = 93
Me.MenuStrip2.Text = "Kundenauswertungen"
'
@@ -1052,14 +1052,14 @@ Partial Class usrCntlSpeditionsBuchSuche
'
Me.ToolStripMenuItem1.Image = Global.SDL.My.Resources.Resources.Excel_logo
Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1"
Me.ToolStripMenuItem1.Size = New System.Drawing.Size(336, 24)
Me.ToolStripMenuItem1.Size = New System.Drawing.Size(344, 30)
Me.ToolStripMenuItem1.Text = "Kundenbericht (Zeitraum auswählen)"
'
'ToolStripMenuItem19
'
Me.ToolStripMenuItem19.Image = Global.SDL.My.Resources.Resources.Excel_logo
Me.ToolStripMenuItem19.Name = "ToolStripMenuItem19"
Me.ToolStripMenuItem19.Size = New System.Drawing.Size(336, 24)
Me.ToolStripMenuItem19.Size = New System.Drawing.Size(344, 30)
Me.ToolStripMenuItem19.Text = "Detailkundenbericht (Zeitraum auswählen)"
'
'Button15

View File

@@ -1800,7 +1800,7 @@ Public Class usrCntlSpeditionsBuchSuche
If existingRow Is Nothing Then
Dim filialNrTemp = SQL.getValueTxtBySql("SELECT grz_filialNr from tblGrenzstelle where grz_BezeichnungCBO = '" & grenzstelle & "'", "AVISO")
Dim filialNrTemp = SQL.getValueTxtBySql("SELECT grz_filialNr from tblGrenzstelle where grz_Grenzstelle = '" & grenzstelle & "'", "AVISO")
If filialNrTemp <> "" AndAlso IsNumeric(filialNrTemp) Then
filialNr = CInt(filialNrTemp)
End If
@@ -1809,27 +1809,27 @@ Public Class usrCntlSpeditionsBuchSuche
If existingRow IsNot Nothing Then
existingRow("Anzahl") = CInt(existingRow("Anzahl")) + anz
existingRow("BAR") = CDbl(existingRow("BAR")) + bar
existingRow("HANDLING") = CDbl(existingRow("HANDLING")) + handling
existingRow("zu_kassieren_BAR") = CDbl(existingRow("zu_kassieren_BAR")) + zukassBAR
Else
Dim R As DataRow = dt_summen.NewRow()
R("Anzahl") = anz
R("BAR") = bar
R("HANDLING") = handling
R("zu_kassieren_BAR") = zukassBAR
R("Grenzstelle") = grenzstelle
R("FilialNr") = filialNr
dt_summen.Rows.Add(R)
End If
existingRow("Anzahl") = CInt(existingRow("Anzahl")) + anz
existingRow("BAR") = CDbl(existingRow("BAR")) + bar
existingRow("HANDLING") = CDbl(existingRow("HANDLING")) + handling
existingRow("zu_kassieren_BAR") = CDbl(existingRow("zu_kassieren_BAR")) + zukassBAR
Else
Dim R As DataRow = dt_summen.NewRow()
R("Anzahl") = anz
R("BAR") = bar
R("HANDLING") = handling
R("zu_kassieren_BAR") = zukassBAR
R("Grenzstelle") = grenzstelle
R("FilialNr") = filialNr
dt_summen.Rows.Add(R)
End If
sumAnz += anz
End If
sumAnz += anz
sumBar += bar
sumhandling += handling
sumzukassBAR += zukassBAR
@@ -1853,7 +1853,7 @@ Public Class usrCntlSpeditionsBuchSuche
Dim sb As New System.Text.StringBuilder
sb.AppendLine(String.Format("{0,-15} {1,6} {2,12} {3,15} {4,15}", "Grenzstelle", "Anz", "Bar", "Kassiert BAR", "Handling"))
sb.AppendLine(String.Format("{0,-15} {1,6} {2,12} {3,15} {4,15}", "Grenzstelle", "Anz", "zu kassieren", "kassiert", "Handling"))
sb.AppendLine(New String("-"c, 65))
@@ -1861,11 +1861,11 @@ Public Class usrCntlSpeditionsBuchSuche
Dim grenzstelle As String = If(IsDBNull(r_("Grenzstelle")), "", r_("Grenzstelle").ToString())
Dim anz As Integer = If(IsDBNull(r_("Anzahl")), 0, CInt(r_("Anzahl")))
Dim bar As Double = If(IsDBNull(r_("BAR")), 0, CDbl(r_("BAR")))
Dim kass As Double = If(IsDBNull(r_("zu_kassieren_BAR")), 0, CDbl(r_("zu_kassieren_BAR")))
Dim bar As Double = If(IsDBNull(r_("BAR")), 0, CDbl(r_("BAR")))
Dim handling As Double = If(IsDBNull(r_("HANDLING")), 0, CDbl(r_("HANDLING")))
sb.AppendLine(String.Format("{0,-15} {1,6} {2,12:N2} {3,15:N2} {4,15:N2}", grenzstelle, anz, bar, kass, handling))
sb.AppendLine(String.Format("{0,-15} {1,6} {2,12:N2} {3,15:N2} {4,15:N2}", grenzstelle, anz, kass, bar, handling))
Next
SumText = sb.ToString()
@@ -3119,11 +3119,8 @@ Public Class usrCntlSpeditionsBuchSuche
Dim Abfertigungsart As Integer
OffertenNr = 2 : Abfertigungsart = 23
If isGutschrift Then
RG.Anlage_1 = "SA Handling " & grenzstelle
Else
RG.Anlage_1 = "SA Gutschrift " & grenzstelle
End If
RG.Anlage_1 = "SA " & grenzstelle
If grenzstelle = "NKD" AndAlso VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID = 1 Then
RG.Firma_ID = 11 'wenn NKD
@@ -3241,8 +3238,6 @@ Public Class usrCntlSpeditionsBuchSuche
If RG.SAVE Then
RK_ID = RG.RK_ID
Return True
Else
Return False
@@ -3968,6 +3963,10 @@ Public Class usrCntlSpeditionsBuchSuche
Private Sub DataGridView_CellContentClick(sender As Object, e As DataGridViewCellEventArgs)
End Sub
Private Sub ToolStripMenuItem14_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem14.Click
End Sub
End Class
Class cSpeditionsbuchReport

View File

@@ -596,7 +596,7 @@ Public Class usrCntlATLAS_NCTS004
If Not ncts_OUT.SAVE_ALL() Then Exit Sub
Dim saveFile = ""
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(ncts_OUT, saveFile, cboDakosyAction._value, Application.StartupPath) Then
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(ncts_OUT, saveFile, cboDakosyAction._value, Application.StartupPath, cDy_ART) Then
If saveFile <> "" Then
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, Me.FIRMA_DY) Then
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
@@ -697,7 +697,7 @@ Public Class usrCntlATLAS_NCTS004
If vbYes = MsgBox("Erfolgreich erstellt! Soll(en) die Ausfuhr-Gestellung(en) abgeschickt werden?", vbYesNoCancel) Then
Dim saveFile = ""
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(NCTS_OUT, saveFile, cboDakosyAction._value, Application.StartupPath) Then
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(NCTS_OUT, saveFile, cboDakosyAction._value, Application.StartupPath, cDy_ART) Then
If saveFile <> "" Then
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, Me.FIRMA_DY) Then
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)

View File

@@ -627,9 +627,6 @@ Public Class frmBU_Mahnlauf
End If
Dim MahnTEXT_VOR = ""
Dim MahnTEXT_NACH = ""
Dim MAHNTEXT As String = "Zahlungserinnerung"
@@ -699,7 +696,14 @@ Public Class frmBU_Mahnlauf
Dim Verzugszinsen As Double = 0
Dim Verzugtage = DateDiff(DateInterval.Day, CDate(rpt.Fields.Item("Faelligkeit").Value), Now)
If Verzugtage > 0 And Ausstand > 0 Then
If Firma_ID = 19 And MAHNSTUFE > 1 Then 'erst ab Mahnstufe 2 sollen bei MDM Verzugszinsen berechnet werden.
If Firma_ID = 19 Then
If MAHNSTUFE > 1 Then 'erst ab Mahnstufe 2 sollen bei MDM Verzugszinsen berechnet werden.
Verzugszinsen = ZinssatzVerzugszinsen / 365 * Ausstand * Verzugtage
VerzugszinsenGes += Verzugszinsen
End If
Else
Verzugszinsen = ZinssatzVerzugszinsen / 365 * Ausstand * Verzugtage
VerzugszinsenGes += Verzugszinsen
End If

View File

@@ -146,6 +146,7 @@ Partial Class frmBelegNeu
Me.DataGridViewTextBoxColumn9 = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.FlowLayoutPanel2 = New System.Windows.Forms.FlowLayoutPanel()
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cm_FT = New System.Windows.Forms.ContextMenuStrip(Me.components)
CType(Me.dgvBelegPos, System.ComponentModel.ISupportInitialize).BeginInit()
Me.pnl.SuspendLayout()
Me.pnlData.SuspendLayout()
@@ -1778,6 +1779,11 @@ Partial Class frmBelegNeu
Me.ContextMenuStrip1.Name = "ContextMenuStrip1"
Me.ContextMenuStrip1.Size = New System.Drawing.Size(61, 4)
'
'cm_FT
'
Me.cm_FT.Name = "ContextMenuStrip1"
Me.cm_FT.Size = New System.Drawing.Size(61, 4)
'
'frmBelegNeu
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!)
@@ -1928,4 +1934,5 @@ Partial Class frmBelegNeu
Friend WithEvents LinkLabel1 As LinkLabel
Friend WithEvents cboBuchungsoforterzeugen As CheckBox
Friend WithEvents Button4 As Button
Friend WithEvents cm_FT As ContextMenuStrip
End Class

View File

@@ -159,6 +159,9 @@
<metadata name="ContextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="cm_FT.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>173, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>86</value>
</metadata>

View File

@@ -1,5 +1,6 @@
Imports System.Drawing.Printing
Imports System.Globalization
Imports Microsoft.Office.Core
Imports Microsoft.Win32
Imports SDL.RKSVServer
Imports VERAG_PROG_ALLGEMEIN
@@ -1578,7 +1579,7 @@ Public Class frmBelegNeu
If cbxBelegOffnen.Checked AndAlso BELEG.EC_daid > 0 Then
openZahlungsbeleg(BELEG.EC_daid)
End If
Me.Close()
Me.Close()
End If
Case "2" : If cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") Then
If cbxBelegOffnen.Checked AndAlso BELEG.EC_daid > 0 Then
@@ -1703,15 +1704,18 @@ Public Class frmBelegNeu
Dim verarbeitet As Boolean = False
If KASSE.rksv_FT_RestServiceURL <> "" Then
verarbeitet = cRKSV.insertRKSVFiskaltrust(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, BELEG.POS)
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)
verarbeitet = result.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
If Not verarbeitet 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)
@@ -1720,7 +1724,7 @@ Public Class frmBelegNeu
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
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
@@ -1885,29 +1889,136 @@ Public Class frmBelegNeu
Process.Start("https://wiki.verag.ag/de/software/aviso/howtos/Bankomat")
End Sub
Private Async Function Button4_ClickAsync(sender As Object, e As EventArgs) As Task Handles Button4.Click
Try
Private Sub cboKassen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboKassen.SelectedIndexChanged
KASSE.LOAD(cboKassen._value)
Button4.Visible = KASSE.rksv_FT_RestServiceURL <> ""
End Sub
Private Sub Button4_ClickAsync(sender As Object, e As EventArgs) Handles Button4.Click
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("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
If Not cm_FT.Items.ContainsKey("test") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Verbindungstest", .Name = "test", .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("journal") Then
Dim ids = New ToolStripMenuItem() With {.Text = "Journal", .Name = "journal", .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)
End Sub
Private Async Function mnuItemAuftrauege_Clicked(sender As Object, e As EventArgs) As Task(Of Object)
cm_FT.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If item IsNot Nothing Then
KASSE.LOAD(cboKassen._value)
If KASSE.rksv_FT_RestServiceURL <> "" Then
Dim client As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
Dim result As String = Await client.Echo()
Dim result2 As String = Await client.SignReceiptAsync_test()
MsgBox(result)
MsgBox(result2)
Else
MsgBox("keine Rest-Service URL hinterlegt!")
Dim client As New cFiskaltrustClient(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)
ElseIf item.Name = "test" Then
'beide
Dim result As String = Await client.Echo(KASSE.rksv_bez & " " & KASSE.rksv_FT_Country & " - ")
MsgBox(result)
ElseIf item.Name = "storno" Then
'beide
Dim result As String = Await client.CancelReceiptAsync_test("-1", 100, "Cash")
MsgBox(result)
ElseIf item.Name = "bar" Then
'beide
Dim result As String = Await client.SignReceiptAsync_test(KASSE.rksv_id)
MsgBox(result)
ElseIf item.Name = "monthly" Then
'beide
Dim result As String = Await client.SignClosinglReceiptAsync(item.Name, KASSE.rksv_id)
MsgBox(result)
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)
Else
MsgBox("nicht für AT-Kassen möglich!")
End If
ElseIf item.Name = "yearly" Then
Dim result As String = Await client.SignClosinglReceiptAsync(item.Name, KASSE.rksv_id)
MsgBox(result)
ElseIf item.Name = "journal" Then
Dim result As String = Await client.Journal(2)
MsgBox(result)
End If
Catch ex As Exception
End Try
End If
End Function
End Class
Class TestRKSVW

View File

@@ -64,7 +64,14 @@ Public Class frmKassenbuch
KennwortTime = Now
initDgv() 'nur set
init()
cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] WHERE ([rksv_aktiv]=1 OR [rksvde_aktiv]=1 or rksv_id=4) ", False, "FMZOLL") ' [rksv_firma]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' AND
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] ", False, "FMZOLL")
Else
cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] WHERE ([rksv_aktiv]=1 OR [rksvde_aktiv]=1 or rksv_id=4) ", False, "FMZOLL")
End If
' [rksv_firma]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' AND
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then
btnBelegKunde.Enabled = False
@@ -742,42 +749,70 @@ Public Class frmKassenbuch
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
MsgBox("Leider noch nicht verfügbar")
Exit Sub
Dim client As RKSVWcfClient = New RKSVWcfClient()
client.Endpoint.Address = New System.ServiceModel.EndpointAddress("http://192.168.0.106:8733/Design_Time_Addresses/RKSVCompleteServer/Service1/?singleWsdl")
client.Open()
' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
Dim credentials As New SDL.RKSVServer.DBUserCredentials
Private Async Function Button4_ClickAsync(sender As Object, e As EventArgs) As Task Handles Button4.Click
credentials.Database = "RKSVWcfDB"
credentials.Server = "AVISO\SQLEXPRESS"
Select Case cboKassen._value
Case "VERAG-SUB-KASSE-ZOLL"
credentials.Username = "Admin"
credentials.Password = "verag#2"
credentials.CashboxID = "VERAG-SUB-KASSE-ZOLL"
credentials.CompanyGUID = "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox
Dim certificate = ""
Dim certificateChain = ""
Dim exportResult = ""
cRKSV.getDEP(certificate, exportResult)
If KASSE.rksv_FT_RestServiceURL <> "" Then
Dim client_FT As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
'hier noch eine Auwahlmöglichkeit bauen!
Dim Journalid = 2 'ReceiptJournal
'4919338167972134914 -> DSFinV-K export
'4919338167972134915 -> TAR file export
'2 -> ReceiptJournal
Dim result = Await client_FT.Journal(Journalid)
If result <> "" Then
client_FT.exportJournal(result)
End If
Else
'If (client.ExportJWS()) Then
' Else
'MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
' End If
Case ""
MsgBox("Keine Kasse gewählt!")
Exit Sub
End Select
MsgBox("Leider noch nicht verfügbar")
End Sub
'Dim client As RKSVWcfClient = New RKSVWcfClient()
'client.Endpoint.Address = New System.ServiceModel.EndpointAddress("http://192.168.0.106:8733/Design_Time_Addresses/RKSVCompleteServer/Service1/?singleWsdl")
'client.Open()
'' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
'Dim credentials As New SDL.RKSVServer.DBUserCredentials
'credentials.Database = "RKSVWcfDB"
'credentials.Server = "AVISO\SQLEXPRESS"
'Select Case cboKassen._value
' Case "VERAG-SUB-KASSE-ZOLL"
' credentials.Username = "Admin"
' credentials.Password = "verag#2"
' credentials.CashboxID = "VERAG-SUB-KASSE-ZOLL"
' credentials.CompanyGUID = "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
' Dim certificate = ""
' Dim certificateChain = ""
' Dim exportResult = ""
' cRKSV.getDEP(certificate, exportResult)
' 'If (client.ExportJWS()) Then
' ' Else
' 'MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
' ' End If
' Case ""
' MsgBox("Keine Kasse gewählt!")
'End Select
End If
End Function
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
@@ -1103,15 +1138,26 @@ Public Class frmKassenbuch
End If
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Private Async Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Label18.ForeColor = Color.Black
If Not IsNumeric(cboKassen._value) Then
Label18.ForeColor = Color.Red
Exit Sub
End If
Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox
cRKSV.printNULLBeleg(KASSE, PERSONAL, True, KASSE.rksv_firma)
If KASSE.rksv_FT_RestServiceURL <> "" 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.SignNullReceiptAsync(RKSV.rksv_id)
Dim QR_CodeString As String = ""
client.saveRKSV_FT(result, QR_CodeString)
Else
cRKSV.printNULLBeleg(KASSE, PERSONAL, True, KASSE.rksv_firma)
End If
' End If
End Sub

View File

@@ -256,7 +256,7 @@ Public Class frmKundenUebersichtZollRgDetails
Console.WriteLine(err)
If output <> "" Then
Dim tmpPath_Report = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("MUSTANG-REPORT", ".pdf", , False)
Dim tmpPath_Report = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("MUSTANG-REPORT.pdf", ".pdf", , False)
VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.CreateValidationPdf(output, Path_temp, RK_ID, tmpPath_Report)
If tmpPath_Report <> "" Then Process.Start(tmpPath_Report)
End If

View File

@@ -1315,7 +1315,7 @@ Public Class usrcntlKundeBearbeitenFull
Case "4001000-4099999" : cbxFiBu.Checked = True : cboFirma.changeItem("26") : cboFiliale.changeItem("7002")
Case "728000-799999" : cbxFiBu.Checked = True : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
Case "30000-49999" : cbxFiBu.Checked = True : cboFirma.changeItem("11") : cboFiliale.changeItem("4803")
Case "500000-599999" : cbxFiBu.Checked = True : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
Case "500000-599999" : cbxFiBu.Checked = True : cboFirma.changeItem("11") : cboFiliale.changeItem("4803")
Case "900000-999999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
Case "800000-899999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
Case "9900000-9999999" : cbxFiBu.Checked = False : cboFirma.changeItem("17") : cboFiliale.changeItem("5801")
@@ -1666,11 +1666,18 @@ Public Class usrcntlKundeBearbeitenFull
txtTel.Text = f.UsrcntlCreditsafe1.comp.phoneNo
If f.UsrcntlCreditsafe1.comp.country IsNot Nothing Then
cbxLandKz.changeItem(f.UsrcntlCreditsafe1.comp.country.Substring(0, 1))
cbxLandKz.changeItem(f.UsrcntlCreditsafe1.comp.country.Substring(0, 2))
If cbxLandKz._value = "" Then
cbxLandKz.changeItem(f.UsrcntlCreditsafe1.comp.country.Substring(0, 1))
End If
End If
If f.UsrcntlCreditsafe1.comp.vatNo <> "" Then
cboUSt_UstIdNrLand.changeItem(f.UsrcntlCreditsafe1.comp.vatNo.Substring(0, 2))
If f.UsrcntlCreditsafe1.comp.country <> "" Then

View File

@@ -4865,10 +4865,17 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land
Select Case Lieferant
Case "PLOSE"
If SQL.doSQL("UPDATE tblPLOSE_Details SET plose_Fakturiert=1 WHERE plose_Fakturiert = 0 AND plose_DatumTransaktion between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' ", "FMZOLL") Then
setBillingDateCompleted(Lieferant, datPloseAnhang.Value)
PictureBox1.Visible = True
End If
Case "UTA"
If SQL.doSQL("UPDATE [tblUTAImportNew] set charged=1 where chargedDatetime is not null and isnull(charged,0) = 0 And tblUTAImportNew.Rechnungsdatum = '" & DateTimePicker2.Text & "'", "FMZOLL") Then
setBillingDateCompleted(Lieferant, datPloseAnhang.Value)
setBillingDateCompleted("UTA_VERAG", datPloseAnhang.Value)
PictureBox1.Visible = True
End If
Case "MSE"
@@ -4877,6 +4884,9 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land
inner join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id]
inner join [VERAG].[dbo].[tblMSECustomers] as cust on cust.partner_customer_number = trans.partner_haulier_id
where bills.invoice_date = '" & DateTimePicker2.Text & "' and trans.chargedDatetime is not null and isnull(trans.charged,0) = 0 ", "FMZOLL") Then
setBillingDateCompleted(Lieferant, datPloseAnhang.Value)
PictureBox1.Visible = True
End If
@@ -4887,6 +4897,9 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land
PictureBox1.Visible = True
End If
setBillingDateCompleted(Lieferant, datPloseAnhang.Value)
setBillingDateCompleted("IDS_Details", datPloseAnhang.Value)
Case "IDS_AT"
If SQL.doSQL("UPDATE [VERAG].[dbo].[tblIDSTransactionsNew] Set charged = 1
FROM [VERAG].[dbo].[tblIDSTransactionsNew]
@@ -4897,8 +4910,16 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land
MsgBox("Funktion setFakturiert für den Lieferant " & Lieferant & " nicht definiert!")
End Select
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")
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
If test Then
@@ -5000,6 +5021,9 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land
If f.DialogResult = DialogResult.OK Then
datum = f.Datum
SQL.doSQL("DELETE FROM tblAsfinagMaut", "FMZOLL")
setBillingDateCompleted("ASFINAG", f.Datum)
If SQL.doSQL("Update Abrechnungsdatum SET Abrechnungsdatum = '" & f.Datum.ToShortDateString & "'", "ASFINAG") Then
If SQL.doSQL("UPDATE dbo.TTRBody SET Abrechnungsdatum = '" & f.Datum.ToShortDateString & "' WHERE (PKHistory = 0) AND (PKFileName LIKE N'" & checkifTestfiles() & ".%') AND (FileCreationDate <= '" & (f.Datum).AddDays(1).ToShortDateString & "') AND abrechnungsdatum IS NULL AND belegerstellungsdatum IS NULL", "ASFINAG") Then

View File

@@ -22,9 +22,8 @@ Partial Class usrcntlFremdrechnungen
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim DataGridViewCellStyle5 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Dim DataGridViewCellStyle6 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Me.PDFHochladenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.FlowLayoutPanel = New System.Windows.Forms.FlowLayoutPanel()
Me.btnSDL_Alle = New System.Windows.Forms.Button()
@@ -36,11 +35,13 @@ Partial Class usrcntlFremdrechnungen
Me.btnVERAGCardNew = New System.Windows.Forms.Button()
Me.btnSDL_PLOSE = New System.Windows.Forms.Button()
Me.btnSDL_RMC = New System.Windows.Forms.Button()
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip()
Me.PDFLöschenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.RechnungsanhangHochladenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.RechnungsanhangloeschenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.lblmissingPDFs = New System.Windows.Forms.Label()
Me.Label10 = New System.Windows.Forms.Label()
Me.lblCountMissingInvoices = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
@@ -69,8 +70,8 @@ Partial Class usrcntlFremdrechnungen
Me.Button8 = New System.Windows.Forms.Button()
Me.Panel3 = New System.Windows.Forms.Panel()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.dgvLFRechnung = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.dgvDetails = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.dgvLFRechnung = New VERAG_PROG_ALLGEMEIN.MyDatagridview()
Me.dgvDetails = New VERAG_PROG_ALLGEMEIN.MyDatagridview()
Me.Panel4 = New System.Windows.Forms.Panel()
Me.FlowLayoutPanel.SuspendLayout()
Me.ContextMenuStrip1.SuspendLayout()
@@ -300,6 +301,8 @@ Partial Class usrcntlFremdrechnungen
Me.Panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
Me.Panel1.BackColor = System.Drawing.SystemColors.ControlLightLight
Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Panel1.Controls.Add(Me.lblmissingPDFs)
Me.Panel1.Controls.Add(Me.Label10)
Me.Panel1.Controls.Add(Me.lblCountMissingInvoices)
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Controls.Add(Me.Label2)
@@ -332,6 +335,29 @@ Partial Class usrcntlFremdrechnungen
Me.Panel1.Size = New System.Drawing.Size(260, 907)
Me.Panel1.TabIndex = 23
'
'lblmissingPDFs
'
Me.lblmissingPDFs.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.lblmissingPDFs.BackColor = System.Drawing.Color.White
Me.lblmissingPDFs.Location = New System.Drawing.Point(173, 88)
Me.lblmissingPDFs.Name = "lblmissingPDFs"
Me.lblmissingPDFs.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.lblmissingPDFs.Size = New System.Drawing.Size(74, 13)
Me.lblmissingPDFs.TabIndex = 69
Me.lblmissingPDFs.Text = "0"
Me.lblmissingPDFs.TextAlign = System.Drawing.ContentAlignment.TopRight
Me.lblmissingPDFs.Visible = False
'
'Label10
'
Me.Label10.AutoSize = True
Me.Label10.Location = New System.Drawing.Point(4, 88)
Me.Label10.Name = "Label10"
Me.Label10.Size = New System.Drawing.Size(80, 13)
Me.Label10.TabIndex = 68
Me.Label10.Text = "fehlende PDFs:"
Me.Label10.Visible = False
'
'lblCountMissingInvoices
'
Me.lblCountMissingInvoices.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
@@ -674,8 +700,8 @@ Partial Class usrcntlFremdrechnungen
Me.dgvLFRechnung.AllowUserToDeleteRows = False
Me.dgvLFRechnung.AllowUserToResizeColumns = False
Me.dgvLFRechnung.AllowUserToResizeRows = False
DataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
Me.dgvLFRechnung.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle5
DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
Me.dgvLFRechnung.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1
Me.dgvLFRechnung.BackgroundColor = System.Drawing.Color.White
Me.dgvLFRechnung.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvLFRechnung.Location = New System.Drawing.Point(4, 3)
@@ -692,8 +718,8 @@ Partial Class usrcntlFremdrechnungen
Me.dgvDetails.AllowUserToDeleteRows = False
Me.dgvDetails.AllowUserToResizeColumns = False
Me.dgvDetails.AllowUserToResizeRows = False
DataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
Me.dgvDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle6
DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
Me.dgvDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2
Me.dgvDetails.BackgroundColor = System.Drawing.Color.White
Me.dgvDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvDetails.Location = New System.Drawing.Point(-1, 3)
@@ -783,4 +809,6 @@ Partial Class usrcntlFremdrechnungen
Friend WithEvents Label1 As Label
Friend WithEvents RechnungsanhangHochladenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents RechnungsanhangloeschenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents lblmissingPDFs As Label
Friend WithEvents Label10 As Label
End Class

View File

@@ -597,6 +597,7 @@ Public Class usrcntlFremdrechnungen
Dim btcNotSet As Integer = 0
Dim missingInvoices As Integer = 0
'Dim missingPDFs As Integer = 0
Dim uta As cUTA
Dim ids As cIDS

View File

@@ -46,6 +46,7 @@ Partial Class usrcntlFakturierung
Me.Button18 = New System.Windows.Forms.Button()
Me.Label44 = New System.Windows.Forms.Label()
Me.GBSammelrechnung = New System.Windows.Forms.GroupBox()
Me.btnRE_Text = New System.Windows.Forms.Button()
Me.btnFixeTaxe = New System.Windows.Forms.Button()
Me.Label11 = New System.Windows.Forms.Label()
Me.PictureBox6 = New System.Windows.Forms.PictureBox()
@@ -99,7 +100,11 @@ Partial Class usrcntlFakturierung
Me.btnRePos = New System.Windows.Forms.Button()
Me.Validation1 = New SDL.EORI.validation()
Me.btnWikiStatusmails = New System.Windows.Forms.Button()
Me.btnRE_Text = New System.Windows.Forms.Button()
Me.brnSR_abgeschlossen = New System.Windows.Forms.Button()
Me.PictureBox11 = New System.Windows.Forms.PictureBox()
Me.Label12 = New System.Windows.Forms.Label()
Me.Label13 = New System.Windows.Forms.Label()
Me.PictureBox12 = New System.Windows.Forms.PictureBox()
Me.GroupBox1.SuspendLayout()
Me.GBMautberichte.SuspendLayout()
CType(Me.dgvMautbericht, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -114,6 +119,8 @@ Partial Class usrcntlFakturierung
CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBox11, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBox12, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'GroupBox1
@@ -344,6 +351,11 @@ Partial Class usrcntlFakturierung
'
'GBSammelrechnung
'
Me.GBSammelrechnung.Controls.Add(Me.PictureBox12)
Me.GBSammelrechnung.Controls.Add(Me.Label13)
Me.GBSammelrechnung.Controls.Add(Me.PictureBox11)
Me.GBSammelrechnung.Controls.Add(Me.Label12)
Me.GBSammelrechnung.Controls.Add(Me.brnSR_abgeschlossen)
Me.GBSammelrechnung.Controls.Add(Me.btnRE_Text)
Me.GBSammelrechnung.Controls.Add(Me.btnFixeTaxe)
Me.GBSammelrechnung.Controls.Add(Me.Label11)
@@ -399,10 +411,22 @@ Partial Class usrcntlFakturierung
Me.GBSammelrechnung.Enabled = False
Me.GBSammelrechnung.Location = New System.Drawing.Point(10, 356)
Me.GBSammelrechnung.Name = "GBSammelrechnung"
Me.GBSammelrechnung.Size = New System.Drawing.Size(880, 403)
Me.GBSammelrechnung.Size = New System.Drawing.Size(880, 456)
Me.GBSammelrechnung.TabIndex = 14
Me.GBSammelrechnung.TabStop = False
'
'btnRE_Text
'
Me.btnRE_Text.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnRE_Text.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.btnRE_Text.Location = New System.Drawing.Point(744, 223)
Me.btnRE_Text.Name = "btnRE_Text"
Me.btnRE_Text.Size = New System.Drawing.Size(107, 32)
Me.btnRE_Text.TabIndex = 127
Me.btnRE_Text.Text = "RE-Text setzen"
Me.btnRE_Text.UseVisualStyleBackColor = True
Me.btnRE_Text.Visible = False
'
'btnFixeTaxe
'
Me.btnFixeTaxe.FlatStyle = System.Windows.Forms.FlatStyle.Flat
@@ -829,7 +853,7 @@ Partial Class usrcntlFakturierung
'
Me.btn_setRENr.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btn_setRENr.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.btn_setRENr.Location = New System.Drawing.Point(10, 191)
Me.btn_setRENr.Location = New System.Drawing.Point(10, 203)
Me.btn_setRENr.Name = "btn_setRENr"
Me.btn_setRENr.Size = New System.Drawing.Size(121, 49)
Me.btn_setRENr.TabIndex = 32
@@ -943,17 +967,54 @@ Partial Class usrcntlFakturierung
Me.btnWikiStatusmails.TabIndex = 72
Me.btnWikiStatusmails.UseVisualStyleBackColor = True
'
'btnRE_Text
'brnSR_abgeschlossen
'
Me.btnRE_Text.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnRE_Text.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.btnRE_Text.Location = New System.Drawing.Point(744, 223)
Me.btnRE_Text.Name = "btnRE_Text"
Me.btnRE_Text.Size = New System.Drawing.Size(107, 32)
Me.btnRE_Text.TabIndex = 127
Me.btnRE_Text.Text = "RE-Text setzen"
Me.btnRE_Text.UseVisualStyleBackColor = True
Me.btnRE_Text.Visible = False
Me.brnSR_abgeschlossen.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.brnSR_abgeschlossen.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.brnSR_abgeschlossen.Location = New System.Drawing.Point(10, 388)
Me.brnSR_abgeschlossen.Name = "brnSR_abgeschlossen"
Me.brnSR_abgeschlossen.Size = New System.Drawing.Size(121, 49)
Me.brnSR_abgeschlossen.TabIndex = 128
Me.brnSR_abgeschlossen.Text = "SR abschliesen"
Me.brnSR_abgeschlossen.UseVisualStyleBackColor = True
'
'PictureBox11
'
Me.PictureBox11.BackgroundImage = Global.SDL.My.Resources.Resources.ok
Me.PictureBox11.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.PictureBox11.Location = New System.Drawing.Point(148, 398)
Me.PictureBox11.Name = "PictureBox11"
Me.PictureBox11.Size = New System.Drawing.Size(14, 14)
Me.PictureBox11.TabIndex = 130
Me.PictureBox11.TabStop = False
Me.PictureBox11.Visible = False
'
'Label12
'
Me.Label12.Location = New System.Drawing.Point(168, 398)
Me.Label12.Name = "Label12"
Me.Label12.Size = New System.Drawing.Size(224, 17)
Me.Label12.TabIndex = 129
Me.Label12.Text = "Sammelrechnung abgeschlossen"
'
'Label13
'
Me.Label13.Location = New System.Drawing.Point(168, 412)
Me.Label13.Name = "Label13"
Me.Label13.Size = New System.Drawing.Size(224, 17)
Me.Label13.TabIndex = 131
Me.Label13.Text = "Auswertung per Mail geschickt"
'
'PictureBox12
'
Me.PictureBox12.BackgroundImage = Global.SDL.My.Resources.Resources.ok
Me.PictureBox12.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.PictureBox12.Location = New System.Drawing.Point(148, 414)
Me.PictureBox12.Name = "PictureBox12"
Me.PictureBox12.Size = New System.Drawing.Size(14, 14)
Me.PictureBox12.TabIndex = 132
Me.PictureBox12.TabStop = False
Me.PictureBox12.Visible = False
'
'usrcntlFakturierung
'
@@ -968,7 +1029,7 @@ Partial Class usrcntlFakturierung
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.GroupBox1)
Me.Name = "usrcntlFakturierung"
Me.Size = New System.Drawing.Size(1149, 782)
Me.Size = New System.Drawing.Size(1149, 815)
Me.GroupBox1.ResumeLayout(False)
Me.GBMautberichte.ResumeLayout(False)
Me.GBMautberichte.PerformLayout()
@@ -985,6 +1046,8 @@ Partial Class usrcntlFakturierung
CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBox11, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBox12, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -1065,4 +1128,9 @@ Partial Class usrcntlFakturierung
Friend WithEvents PictureBox6 As PictureBox
Friend WithEvents btnFixeTaxe As Button
Friend WithEvents btnRE_Text As Button
Friend WithEvents PictureBox11 As PictureBox
Friend WithEvents Label12 As Label
Friend WithEvents brnSR_abgeschlossen As Button
Friend WithEvents PictureBox12 As PictureBox
Friend WithEvents Label13 As Label
End Class

View File

@@ -1946,6 +1946,37 @@ Public Class usrcntlFakturierung
btn_Mautanh_entfernen.Enabled = sammelrechnung0vorhanden
Dim SR_vorhanden As Integer = CInt((New SQL).getValueTxtBySqlVarList("SELECT COUNT(*) From tblMDMEinarbeitung
where cast(billingdate as Date) = '" & CDate(dtRechnungsdatum.Text) & "'", "FMZOLL",, 0))
If SR_vorhanden > 0 Then
Dim SR_nicht_abgeschlossen As Integer = CInt((New SQL).getValueTxtBySqlVarList("SELECT COUNT(*) From tblMDMEinarbeitung where cast(billingdate as Date) = '" & CDate(dtRechnungsdatum.Text) & "' AND isnull(billing_completed,0) = 0", "FMZOLL",, 0))
If SR_nicht_abgeschlossen > 0 Then
brnSR_abgeschlossen.Enabled = True
showPic(False, PictureBox11)
showPic(False, PictureBox12)
Else
brnSR_abgeschlossen.Enabled = False
showPic(True, PictureBox11)
showPic(True, PictureBox12)
End If
Else
brnSR_abgeschlossen.Enabled = False
showPic(False, PictureBox11)
showPic(False, PictureBox12)
End If
End Sub
@@ -2259,4 +2290,117 @@ Public Class usrcntlFakturierung
showPic(setRechnungstext(Sachbearbeiter, rechnungsdatum, dtSammelrechnungen, setText), PictureBox3)
End Sub
Private Sub brnSR_abgeschlossen_Click(sender As Object, e As EventArgs) Handles brnSR_abgeschlossen.Click
Dim setAbschlossen As Boolean = False
Dim rechnungsdatum As Date = CDate(dtRechnungsdatum.Text)
Dim res As MsgBoxResult
res = MsgBox("Möchten Sie die MDM Sammelrechnung für den " & rechnungsdatum.ToShortDateString & " abschließen?", vbYesNoCancel)
Select Case res
Case MsgBoxResult.Yes : setAbschlossen = True
Case MsgBoxResult.Cancel : Exit Sub
End Select
If setAbschlossen Then
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
If SQL.doSQL("Update tblMDMEinarbeitung set billing_completed = 1, billing_completed_user = '" & cAllgemein.USRKURZNAME & "' where cast(billingdate as Date) = '" & rechnungsdatum.ToShortDateString & "' and isnull(billing_completed,0) = 0 ", "FMZOLL") Then
showPic(True, PictureBox11)
If rechnungsdatum.Day = Date.DaysInMonth(rechnungsdatum.Year, rechnungsdatum.Month) Then
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
Dim firstDayOfMonth As Date = New Date(rechnungsdatum.Year, rechnungsdatum.Month, 1)
Dim path = createAuswertung(firstDayOfMonth, rechnungsdatum)
If path <> "" Then
If sendAuswertung(path, firstDayOfMonth, rechnungsdatum) Then
showPic(True, PictureBox12)
Else
showPic(False, PictureBox12)
End If
End If
Else
showPic(False, PictureBox12)
End If
End If
Else
showPic(False, PictureBox11)
End If
End If
End Sub
Private Function createAuswertung(von As Date, bis As Date) As String
Dim SQLString = "SELECT year(rechnungsdatum)Year,MONTH(rechnungsdatum)Month,RechnungsKundenNr CustomerNo, Adressen.Ordnungsbegriff Customer,Adressen.LandKz Ctry, Offertenstamm.OffertenNr, Offertenstamm.OffertenBez,leistungen.LeistungsNr ProdNo,leistungen.LeistungsBez ProdDscr, /*count(distinct([Rechnungsausgang].Rk_ID)) CountInv,*/ sum(RechnungsausgangPositionen.SteuerfreierBetrag+RechnungsausgangPositionen.SteuerpflichtigerBetrag)NetSum,ReverseCharge
FROM [VERAG].[dbo].[Rechnungsausgang]
inner join Adressen on RechnungsKundenNr=AdressenNr
inner join RechnungsausgangPositionen on Rechnungsausgang.RK_ID= RechnungsausgangPositionen.rk_id
inner join leistungen on leistungen.LeistungsNr=RechnungsausgangPositionen.LeistungsNr
inner join Offertenstamm on Offertenstamm.OffertenNr=Rechnungsausgang.OffertenNr
where Firma_ID=19
AND cast(RechnungsDatum as Date) >= '" & von.ToShortDateString & "'
AND cast(RechnungsDatum as Date) <= '" & bis.ToShortDateString & "'
group by year(rechnungsdatum),MONTH(rechnungsdatum),RechnungsKundenNr,Offertenstamm.OffertenNr,Offertenstamm.OffertenBez,Adressen.Ordnungsbegriff,Adressen.LandKz , leistungen.LeistungsNr,leistungen.LeistungsBez,ReverseCharge
order by Year,Month,CustomerNo,Offertenstamm.OffertenNr,Offertenstamm.OffertenBez,leistungen.LeistungsNr"
Dim dt As DataTable = (New SQL).loadDgvBySql(SQLString, "FMZOLL", 300)
If dt.Rows.Count > 0 Then
Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False, "Report-Invoice-Data_" & von.ToShortDateString & "-" & bis.ToShortDateString)
Return filepath
Else
Return ""
End If
End Function
Private Function sendAuswertung(pfad As String, von As Date, bis As Date)
Dim betreff = ""
Dim pfadList As New List(Of String)
pfadList.Add(pfad)
Dim EMails As String = "mahin.abbasi@360pays.com;lara.jednacak@360pays.com"
Dim EMails_CC As String = ""
Dim EMails_BCC As String = cMitarbeiter.GetEMailRecipientForEmailNotification("Auswertung-360Pays", 19)
Dim Body = "Attached is the report for the Verag 360 invoices from " & von.ToShortDateString & " to " & bis.ToShortDateString & "." &
"<br><br>Created on: " & Now.ToShortDateString & " at " & Now.ToShortTimeString &
"<br><br><br>Automatically generated email. Please do not reply to this email."
betreff = betreff.Replace(vbNewLine, "").Replace(vbCr, "").Replace(vbLf, "").Replace(vbCrLf, "").Replace(System.Environment.NewLine, " ")
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_MDM_AUSWERTUNG)
API.api_EMail = EMails
API.api_EMailCC = EMails_CC
API.api_EMailBCC = EMails_BCC
API.api_EMailSubject = betreff
API.api_EMailText = Body
API.api_EMailAttCnt = pfadList.Count
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, betreff, Body,, False, False, EMails_CC, EMails_BCC, pfadList) Then
API.UPDTAE_OK()
brnSR_abgeschlossen.Enabled = False
Else
API.UPDTAE_ERR()
End If
End Function
End Class

View File

@@ -31,6 +31,7 @@ Public Enum cAPI_ART
AVISO_OUT_SAMMELRECHNUNG = 84
AVISO_OUT_EINZELRECHNUNG = 85
SDL_OUT_RS_ORIGINALRECHNUNGEN = 86
SDL_OUT_MDM_AUSWERTUNG = 87
End Enum

View File

@@ -1,5 +1,6 @@
Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Text.RegularExpressions
Public Class cAdressen
Property Auswahl As Object = Nothing
@@ -166,7 +167,7 @@ Public Class cAdressen
'Prüfung Neuanlage: Nur Hinweismeldung! -> speichern soll trotzdem möglich sein!
If checkUID(KD, kundenNameUID, UIDMehfachverwendung) Then ERROR_TXT = "Die UID Nummer existiert bereits " & kundenNameUID & "!" & vbNewLine & "Bitte prüfen, damit es zu keiner doppelten Erfassung des Kunden kommt." : Return False
Else
Try
Try
Dim kunde = DirectCast(KD, cKunde)
Dim addresseTemp = New cAdressen(kunde.KundenNr)
If Not (addresseTemp.UstIdKz = UstIdKz And addresseTemp.UstIdNr = UstIdNr) Then
@@ -314,7 +315,7 @@ Public Class cAdressen
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL(False)
Using cmd As New SqlCommand("Select TOP(1) * FROM Adressen WHERE (UstIdKz + UstIdNr='" & UIDNr & "' or Steuernummer ='" & UIDNr & "') AND (WölflKundenNr = " & woelflKdNr & " OR weitereWölflKundenNr = " & woelflKdNr & ") " & IIf(isWoelfKdNr, " AND (AdressenNr LIKE '15%' or AdressenNr LIKE '18%')", ""), conn)
Using cmd As New SqlCommand("Select TOP(1) * FROM Adressen WHERE (UstIdKz + UstIdNr='" & UIDNr & "' or Steuernummer ='" & Regex.Replace(UIDNr, "[^0-9.-]", "") & "') AND (WölflKundenNr = " & woelflKdNr & " OR weitereWölflKundenNr = " & woelflKdNr & ") " & IIf(isWoelfKdNr, " AND (AdressenNr LIKE '15%' or AdressenNr LIKE '18%')", ""), conn)
Dim dr = cmd.ExecuteReader()
If dr.Read Then

View File

@@ -13,6 +13,9 @@ Public Class cMDMEinarbeitung
Property completed_date As Object = Nothing
Property import_date As Object = Nothing
Property importfilename As Object = Nothing
Property billingdate As Object = Nothing
Property billing_completed As Boolean = False
Public hasEntry = False
@@ -48,6 +51,8 @@ Public Class cMDMEinarbeitung
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("completed_date", completed_date))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("import_date", import_date))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("importfilename", importfilename))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("billingdate", billingdate))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("billing_completed", billing_completed))
Return list
End Function

View File

@@ -1,8 +1,6 @@

Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Web.Configuration
Imports io.konik.zugferd
Public Class cRMC
Property rmc_id As Integer

View File

@@ -317,6 +317,7 @@ Public Class cUIDPruefung
Case "AMBAR" : where = " And Filialen.FilialenNr IN (5701) "
Case "IMEX" : where = " And Filialen.FilialenNr IN (5501) "
Case "ATILLA" : where = " And Filialen.FilialenNr IN (4801) "
Case "VERAG 360 GmbH" : where = " And Filialen.FilialenNr IN (8001) "
Case "UNISPED" : where = " AND Filialen.firma='UNISPED' "
Case Else : where = " AND Filialen.firma='VERAG' " '" And isnull(FilialenNr,'') Not IN (5501,5701)"
End Select

View File

@@ -5,7 +5,6 @@ Imports System.Net
Imports System.Reflection
Imports System.Text.RegularExpressions
Imports System.Threading
Imports iTextSharp.text.pdf
Public Class cCreditSafeAPI