Compare commits

..

2 Commits

Author SHA1 Message Date
3f54bba380 barverkauf, etc. 2026-07-31 15:28:27 +02:00
90fffa9572 USTVA - doppelte Rechnungspos, etc. 2026-07-31 10:49:53 +02:00
13 changed files with 324 additions and 141 deletions

View File

@@ -282,6 +282,9 @@ Public Class EABeleg
Property ECZahlungsPerAPI As Boolean = False
Property ECTerminalreturnCode As Object = Nothing
Property EC_daid As Integer = 0
Property FT_ReceiptReference As Object = Nothing
Property FT_ReceiptReference_Storno As Object = Nothing
Property POS As New List(Of EABelegPositionen)
@@ -362,6 +365,8 @@ Public Class EABeleg
Me.ECZahlungsPerAPI = cSqlDb.checkNullReturnValue(dr.Item("ECZahlungsPerAPI"), Nothing)
Me.ECTerminalreturnCode = cSqlDb.checkNullReturnValue(dr.Item("ECTerminalreturnCode"), Nothing)
Me.EC_daid = cSqlDb.checkNullReturnValue(dr.Item("EC_daid"), Nothing)
Me.FT_ReceiptReference = cSqlDb.checkNullReturnValue(dr.Item("FT_ReceiptReference"), Nothing)
Me.FT_ReceiptReference_Storno = cSqlDb.checkNullReturnValue(dr.Item("FT_ReceiptReference_Storno"), Nothing)
If loadPosAswell Then POS = LOAD_POS_List(Mandant, Niederlassung, Benutzer, BelegNr, BelegDat)
' MsgBox(POS.Count)
@@ -547,6 +552,8 @@ Public Class EABeleg
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("ECZahlungsPerAPI", ECZahlungsPerAPI))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("ECTerminalreturnCode", ECTerminalreturnCode))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("EC_daid", EC_daid))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_ReceiptReference", FT_ReceiptReference))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_ReceiptReference_Storno", FT_ReceiptReference_Storno))
'For Each p As System.Reflection.PropertyInfo In Me.GetType().GetProperties()
'If p.CanRead Then

View File

@@ -1,9 +1,13 @@

Imports System.Data.SqlClient
Imports System.IO
Imports System.Reflection
Imports Chilkat
Imports Gma.QrCodeNet.Encoding
Imports GrapeCity.DataVisualization.Chart
Imports itextsharp.text.pdf.qrcode
Imports Newtonsoft.Json
Imports QRCoder
Public Class FtReceiptCases
@@ -460,7 +464,7 @@ Public Class cFiskaltrustClient_chilkat
Return Terminal_ID & "_" & Application.ProductVersion
End Function
Public Function saveRKSV_FT(ByRef result_zahlung As String, ByRef QR_CodeString As String) As Boolean
Public Function saveRKSV_FT(ByRef result_zahlung As String, ByRef QR_CodeString As String, ByRef beleg_temp As EABeleg, ByRef isStorno As Boolean) As Boolean
If result_zahlung <> "" Then
Dim json As New Chilkat.JsonObject
@@ -498,6 +502,18 @@ Public Class cFiskaltrustClient_chilkat
.ftState = json.StringOf("ftState")
saved = .SAVE()
If saved AndAlso beleg_temp IsNot Nothing Then
If isStorno Then
beleg_temp.FT_ReceiptReference_Storno = .cbReceiptReference
beleg_temp.SAVE()
Else
beleg_temp.FT_ReceiptReference = .cbReceiptReference
End If
End If
End With
@@ -525,10 +541,29 @@ Public Class cFiskaltrustClient_chilkat
.ftSignatureFormat = SignObj.StringOf("ftSignatureFormat")
.ftSignatureType = SignObj.StringOf("ftSignatureType")
saved = .SAVE()
If IsNumeric(.ftSignatureType) AndAlso CInt(.ftSignatureType) = IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True, 0, 3) Then
'If IsNumeric(.ftSignatureType) AndAlso CInt(.ftSignatureType) = IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True, 0, 3) Then
' QR_CodeString = .ftData
End If
'End If
'https://receipts.fiskaltrust.eu/{ftQueueID}/{ftQueueItemID}
Dim URL_FT As String = ""
If Not String.IsNullOrWhiteSpace(ftSig.ftQueueID) AndAlso Not String.IsNullOrWhiteSpace(ftSig.ftQueueItemID) Then
URL_FT = $"https://receipts.fiskaltrust.eu/{ftSig.ftQueueID}/{ftSig.ftQueueItemID}"
Using qrGenerator As New QRCodeGenerator()
Using qrData As QRCodeData = qrGenerator.CreateQrCode(URL_FT, QRCodeGenerator.ECCLevel.Q)
Dim qrCode As New PngByteQRCode(qrData)
Dim qrBytes As Byte() = qrCode.GetGraphic(20)
Dim qrBase64 As String = Convert.ToBase64String(qrBytes)
QR_CodeString = qrBase64
End Using
End Using
End If
End With
Next

View File

@@ -1,10 +1,7 @@
Imports System.Net.Http
Imports System.Text
Imports GrapeCity.ActiveReports
Imports GrapeCity.DataVisualization.Options
Imports Newtonsoft.json
Imports GrapeCity.ActiveReports
Imports SDL.RKSVServer
Imports VERAG_PROG_ALLGEMEIN.DSFinVKService
Imports VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService
Public Class cRKSV
Shared SQL As New SQL
@@ -92,7 +89,7 @@ Public Class cRKSV
End Function
Shared Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, CompanyGUID As String, ByVal umsatzZaehler As Double, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, POS As List(Of EABelegPositionen), ByRef QR_CodeString As String, ByRef LastJWS As String) As Boolean
Shared Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, beleg_temp As EABeleg, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, ByRef QR_CodeString As String, ByRef LastJWS As String) As Boolean
Try
@@ -103,7 +100,7 @@ Public Class cRKSV
credentials.Username = "Admin"
credentials.Password = "verag#2"
credentials.CashboxID = kasse.rksv_FT_CashboxID
credentials.CompanyGUID = CompanyGUID
credentials.CompanyGUID = kasse.rksv_CompanyGUID
Dim AccessToken As String = kasse.rksv_FT_AccessToken
Dim jws As String = String.Empty
@@ -112,16 +109,18 @@ Public Class cRKSV
'Dim answer As String = String.Empty
Dim Belegnummer = RKSV_Beleg_Id
Dim BelegDatumUhrzeit = belegDat ' BELEG.BelegDat
Dim BelegDatumUhrzeit = beleg_temp.BelegDat
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & steuerSchluessel & "' ", "FMZOLL")
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & beleg_temp.Steuerschlüssel & "' ", "FMZOLL")
Dim BetragSatzNormal = IIf(steuersatz = 0.2, summeBRUTTO, 0.0) 'summe
Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summeBRUTTO, 0.0)
Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summeBRUTTO, 0.0)
Dim BetragSatzNull = IIf(steuersatz = 0.0, summeBRUTTO, 0.0)
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
Dim StandUmsatzzaehler = umsatzZaehler 'KASSE.rksv_Umsatzzaehler
Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler
Dim kindOfPayment As String = getKindOfPayment(beleg_temp)
If False Then
'Dim client As New cFiskaltrustClient(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
@@ -134,9 +133,9 @@ Public Class cRKSV
'End If
Else
Dim client As New cFiskaltrustClient_chilkat(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
Dim result = client.SignReceipt(summeBRUTTO, steuersatz, POS, "Cash", kasse.rksv_id)
Dim result = client.SignReceipt(summeBRUTTO, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id)
If result <> "" Then
Return client.saveRKSV_FT(result, QR_CodeString)
Return client.saveRKSV_FT(result, QR_CodeString, beleg_temp, False)
Else
Return False
End If
@@ -144,11 +143,6 @@ Public Class cRKSV
End If
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
Return False
@@ -915,18 +909,13 @@ Public Class cRKSV
Dim client As RKSVWcfClient = New RKSVWcfClient()
client.Endpoint.Address = New System.ServiceModel.EndpointAddress(getRKSVLink(kasse))
client.Open()
' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
Dim credentials As New SDL.RKSVServer.DBUserCredentials
credentials.Database = "RKSVWcfDB"
credentials.Server = "AVISO\SQLEXPRESS"
credentials.Username = "Admin"
credentials.Password = "verag#2"
'credentials.CashboxID = kasse '"VERAG-SUB-KASSE-ZOLL"
'credentials.CompanyGUID = CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
credentials.CashboxID = kasse.rksv_bez '"VERAG-SUB-KASSE-ZOLL"
credentials.CompanyGUID = kasse.rksv_CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
@@ -952,23 +941,6 @@ Public Class cRKSV
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler 'KASSE.rksv_Umsatzzaehler
' Dim BetragSatzNormal = summe * -1
' Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summe, 0.0) * -1
' Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summe, 0.0) * -1
' Dim BetragSatzNull = IIf(steuersatz = 0.0, summe, 0.0) * -1
' Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summe, 0.0) * -1
' Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler
' Dim BetragSatzBesonders = 0
' Dim BetragSatzBesonders = 0
' Dim BetragSatzBesonders = 0
'client.ExportJWS
' MsgBox(credentials.CashboxID & " credentials.CashboxID")
' MsgBox(credentials.CompanyGUID & " credentials.CompanyGUID")
If (client.SignStornoReceipt(credentials, Belegnummer, BelegDatumUhrzeit, BetragSatzNormal, BetragSatzErm1, BetragSatzErm2, BetragSatzBesonders, BetragSatzNull, jws, qr, ocra, answer)) Then
QR_CodeString = qr
@@ -996,6 +968,82 @@ Public Class cRKSV
End Try
Return False
End Function
Shared Function stornoRKSV_FT(ByVal kasse As cRKSV_Kasse, ByVal beleg_temp As EABeleg, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef answer As String) As Boolean
Try
If beleg_temp.rksv_BelegId <= 0 Then
MsgBox("Keine RKSV-Beleg-ID")
Return False
End If
Dim credentials As New SDL.RKSVServer.DBUserCredentials
credentials.Database = "RKSVWcfDB"
credentials.Server = "AVISO\SQLEXPRESS"
credentials.Username = "Admin"
credentials.Password = "verag#2"
credentials.CashboxID = kasse.rksv_bez '"VERAG-SUB-KASSE-ZOLL"
credentials.CompanyGUID = kasse.rksv_CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
Dim jws As String = String.Empty
Dim qr As String = String.Empty
Dim ocra As String = String.Empty
'Dim answer As String = String.Empty
Dim Belegnummer = beleg_temp.rksv_BelegId
Dim BelegDatumUhrzeit = beleg_temp.BelegDat
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & beleg_temp.Steuerschlüssel & "' ", "FMZOLL")
Dim BetragSatzNormal = IIf(steuersatz = 0.2, beleg_temp.rksv_umsatz, 0.0) 'summe
Dim BetragSatzErm1 = IIf(steuersatz = 0.1, beleg_temp.rksv_umsatz, 0.0)
Dim BetragSatzErm2 = IIf(steuersatz = 0.13, beleg_temp.rksv_umsatz, 0.0)
Dim BetragSatzNull = IIf(steuersatz = 0.0, beleg_temp.rksv_umsatz, 0.0)
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, beleg_temp.rksv_umsatz, 0.0)
Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler 'KASSE.rksv_Umsatzzaehler
Dim kindOfPayment As String = getKindOfPayment(beleg_temp)
If False Then
Else
Dim client As New cFiskaltrustClient_chilkat(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
Dim result = client.ChancelReceipt(beleg_temp.FT_ReceiptReference, beleg_temp.rksv_umsatz, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id)
If result <> "" Then
Return client.saveRKSV_FT(result, QR_CodeString, beleg_temp, True)
Else
Return False
End If
End If
Return True
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
End Try
Return False
End Function
Private Shared Function getKindOfPayment(beleg As EABeleg) As String
If beleg Is Nothing Then Return ""
Dim kindOfPayment As String = "Cash"
If beleg.ECZahlungsNr IsNot Nothing AndAlso IsNumeric(beleg.ECZahlungsNr) AndAlso beleg.ECZahlungsNr > 0 Then
kindOfPayment = "Card"
End If
Return kindOfPayment
End Function
'Beleg storno und Kassenbuch Gegenbuchung
Shared Function STORNO(BELEG As EABeleg, ByVal grund As String, Firma As String, Optional stornoGegenbuchen As Boolean = False) As EABeleg

View File

@@ -985,8 +985,6 @@ Public Class cFakturierung
Case 24
rpt.picVERAG.Image = My.Resources.ambar_boarder
rpt.Picture1.Image = Nothing
rpt.txtWarenwert.Visible = False
rpt.lblWarenWertUeberschrift.Visible = False
Case 26
rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo
@@ -1527,7 +1525,7 @@ Public Class cFakturierung
' Case 26 : rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo : rpt.Picture1.Image = Nothing
' Case 23 : rpt.picVERAG.Image = My.Resources.Unisped_ZS_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_ZS_AT
' Case 24 : rpt.picVERAG.Image = My.Resources.ambar_boarder : rpt.Picture1.Image = Nothing
' rpt.txtAvisierer.Visible = False : rpt.lblAvisiererUeberschrift.Visible = False : rpt.txtWarenwert.Visible = False : rpt.lblWarenWertUeberschrift.Visible = False
' rpt.txtAvisierer.Visible = False : rpt.lblAvisiererUeberschrift.Visible = False :
'End Select
@@ -1585,6 +1583,9 @@ Public Class cFakturierung
rpt.txtWarenwert.Visible = False
rpt.txtGrenze.Visible = False
rpt.txtGrenzeUeberschrift.Visible = False
ElseIf firma.Firma_ID = 24 Then
rpt.txtWarenwert.Visible = False
rpt.lblWarenWertUeberschrift.Visible = False
End If
rpt.txtZollbelegNr.Text = If(Rechnung.BelegNr, "")
@@ -2300,7 +2301,7 @@ Public Class cFakturierung
' Case 26 : rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo : rpt.Picture1.Image = Nothing
' Case 23 : rpt.picVERAG.Image = My.Resources.Unisped_ZS_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_ZS_AT
' Case 24 : rpt.picVERAG.Image = My.Resources.ambar_boarder : rpt.Picture1.Image = Nothing
' rpt.txtWarenwert.Visible = False : rpt.lblWarenWertUeberschrift.Visible = False
'
'End Select
@@ -2331,6 +2332,9 @@ Public Class cFakturierung
rpt.txtGrenzeUeberschrift.Visible = False
rpt.lblWarenWertUeberschrift.Visible = False
rpt.txtWarenwert.Visible = False
Case 24
rpt.txtWarenwert.Visible = False
rpt.lblWarenWertUeberschrift.Visible = False
End Select
rpt.lblKundenNr.Text = If(RECHNUNG.RechnungsKundenNr > 0, RECHNUNG.RechnungsKundenNr, "")
@@ -3751,7 +3755,7 @@ Public Class cFakturierung
Return getSignature(RECHNUNG.RechnungsLandKz, RECHNUNG.Firma_ID,,,,,,,, useLogosFromDB)
End Function
Shared Function getSignature(Optional landKz = "", Optional firma = -1, Optional individuell = False, Optional displayFirmenmane = True, Optional special = "", Optional additionalLine = "", Optional departmentmailadress = True, Optional fakturierung = False, Optional firmenSignature = False, Optional useLogosFromDB = False) As String
Shared Function getSignature(Optional landKz = "", Optional firma = -1, Optional individuell = False, Optional displayFirmenmane = True, Optional special = "", Optional additionalLine = "", Optional departmentmailadress = True, Optional fakturierung = False, Optional firmenSignature = False, Optional useSignatureFromDB = False) As String
getSignature = ""
firma = getFirmaNr(firma)
@@ -3768,7 +3772,7 @@ Public Class cFakturierung
Dim firma_temp As New cFirmen(firma)
If useLogosFromDB AndAlso (firma_temp.Firma_Logo IsNot Nothing OrElse firma_temp.Firma_Logo_Erweitert IsNot Nothing) Then
If useSignatureFromDB AndAlso (firma_temp.Firma_Logo IsNot Nothing OrElse firma_temp.Firma_Logo_Erweitert IsNot Nothing) Then
Dim logo As Byte()

View File

@@ -1021,7 +1021,7 @@ Public Class frmFaktSammelRgDrucken
Dim ShowInfo As String = ""
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked, ShowInfo)
If cbxMailoeffnen.Checked Then
If cbxMailoeffnen.Checked AndAlso Not ShowInfo.Contains("Empfänger") Then
ShowInfo = ""
End If

View File

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

View File

@@ -470,6 +470,9 @@
<Reference Include="QRCode">
<HintPath>..\..\..\dll\QRCode.dll</HintPath>
</Reference>
<Reference Include="QRCoder, Version=1.8.0.0, Culture=neutral, PublicKeyToken=c4ed5b9ae8358a28, processorArchitecture=MSIL">
<HintPath>..\..\..\Aviso\AVISO\packages\QRCoder.1.8.0\lib\net40\QRCoder.dll</HintPath>
</Reference>
<Reference Include="Registrierkasse">
<HintPath>..\..\..\dll\Registrierkasse.dll</HintPath>
</Reference>

View File

@@ -122,7 +122,6 @@ Partial Class frmMDM_USTVAntrag
Me.dgvUSTVPositionen = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.pnlAntragsPosDetails = New System.Windows.Forms.Panel()
Me.Panel2 = New System.Windows.Forms.Panel()
Me.UstCntlUSTV_AntragPosition1 = New SDL.ustCntlUSTV_AntragPosition()
Me.Panel4 = New System.Windows.Forms.Panel()
Me.cbxKIUploaddelete = New System.Windows.Forms.CheckBox()
Me.scanUSTVA = New VERAG_PROG_ALLGEMEIN.usrcntlPDFScan()
@@ -133,7 +132,6 @@ Partial Class frmMDM_USTVAntrag
Me.Panel3 = New System.Windows.Forms.Panel()
Me.dgvErstattungspositionen = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.pnlErstattungsdetails = New System.Windows.Forms.Panel()
Me.UstCntlUSTV_AntragErstattungen1 = New SDL.ustCntlUSTV_ErstattungPosition()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button3 = New System.Windows.Forms.Button()
@@ -150,6 +148,8 @@ Partial Class frmMDM_USTVAntrag
Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripMenuItem3 = New System.Windows.Forms.ToolStripMenuItem()
Me.FakturiertToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.UstCntlUSTV_AntragPosition1 = New SDL.ustCntlUSTV_AntragPosition()
Me.UstCntlUSTV_AntragErstattungen1 = New SDL.ustCntlUSTV_ErstattungPosition()
Me.pnlBottom.SuspendLayout()
CType(Me.pbXMLExport, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.pbMail, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -527,7 +527,7 @@ Partial Class frmMDM_USTVAntrag
Me.KdSearchBox1.KdNr = "-1"
Me.KdSearchBox1.kdNrField = Nothing
Me.KdSearchBox1.KdNrNullInt = Nothing
Me.KdSearchBox1.Location = New System.Drawing.Point(298, 10)
Me.KdSearchBox1.Location = New System.Drawing.Point(284, 12)
Me.KdSearchBox1.Name = "KdSearchBox1"
Me.KdSearchBox1.nurAktive = True
Me.KdSearchBox1.searchActive = True
@@ -560,7 +560,7 @@ Partial Class frmMDM_USTVAntrag
Me.lblKdNr.ForeColor = System.Drawing.Color.White
Me.lblKdNr.Location = New System.Drawing.Point(79, 62)
Me.lblKdNr.Name = "lblKdNr"
Me.lblKdNr.Size = New System.Drawing.Size(422, 18)
Me.lblKdNr.Size = New System.Drawing.Size(390, 18)
Me.lblKdNr.TabIndex = 21
Me.lblKdNr.Text = "0000000"
'
@@ -1575,7 +1575,7 @@ Partial Class frmMDM_USTVAntrag
Me.lblFirma.ForeColor = System.Drawing.Color.White
Me.lblFirma.Location = New System.Drawing.Point(79, 42)
Me.lblFirma.Name = "lblFirma"
Me.lblFirma.Size = New System.Drawing.Size(422, 18)
Me.lblFirma.Size = New System.Drawing.Size(390, 18)
Me.lblFirma.TabIndex = 3
Me.lblFirma.Text = "VERAG Spedition AG"
'
@@ -1670,14 +1670,6 @@ Partial Class frmMDM_USTVAntrag
Me.Panel2.Size = New System.Drawing.Size(1428, 263)
Me.Panel2.TabIndex = 1
'
'UstCntlUSTV_AntragPosition1
'
Me.UstCntlUSTV_AntragPosition1.Dock = System.Windows.Forms.DockStyle.Fill
Me.UstCntlUSTV_AntragPosition1.Location = New System.Drawing.Point(154, 0)
Me.UstCntlUSTV_AntragPosition1.Name = "UstCntlUSTV_AntragPosition1"
Me.UstCntlUSTV_AntragPosition1.Size = New System.Drawing.Size(1272, 261)
Me.UstCntlUSTV_AntragPosition1.TabIndex = 0
'
'Panel4
'
Me.Panel4.BackColor = System.Drawing.Color.WhiteSmoke
@@ -1823,14 +1815,6 @@ Partial Class frmMDM_USTVAntrag
Me.pnlErstattungsdetails.Size = New System.Drawing.Size(1426, 261)
Me.pnlErstattungsdetails.TabIndex = 0
'
'UstCntlUSTV_AntragErstattungen1
'
Me.UstCntlUSTV_AntragErstattungen1.Dock = System.Windows.Forms.DockStyle.Fill
Me.UstCntlUSTV_AntragErstattungen1.Location = New System.Drawing.Point(154, 0)
Me.UstCntlUSTV_AntragErstattungen1.Name = "UstCntlUSTV_AntragErstattungen1"
Me.UstCntlUSTV_AntragErstattungen1.Size = New System.Drawing.Size(1270, 259)
Me.UstCntlUSTV_AntragErstattungen1.TabIndex = 2
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke
@@ -1949,6 +1933,22 @@ Partial Class frmMDM_USTVAntrag
Me.FakturiertToolStripMenuItem.Text = "Fakturiert zurücksetzen"
Me.FakturiertToolStripMenuItem.Visible = False
'
'UstCntlUSTV_AntragPosition1
'
Me.UstCntlUSTV_AntragPosition1.Dock = System.Windows.Forms.DockStyle.Fill
Me.UstCntlUSTV_AntragPosition1.Location = New System.Drawing.Point(154, 0)
Me.UstCntlUSTV_AntragPosition1.Name = "UstCntlUSTV_AntragPosition1"
Me.UstCntlUSTV_AntragPosition1.Size = New System.Drawing.Size(1272, 261)
Me.UstCntlUSTV_AntragPosition1.TabIndex = 0
'
'UstCntlUSTV_AntragErstattungen1
'
Me.UstCntlUSTV_AntragErstattungen1.Dock = System.Windows.Forms.DockStyle.Fill
Me.UstCntlUSTV_AntragErstattungen1.Location = New System.Drawing.Point(154, 0)
Me.UstCntlUSTV_AntragErstattungen1.Name = "UstCntlUSTV_AntragErstattungen1"
Me.UstCntlUSTV_AntragErstattungen1.Size = New System.Drawing.Size(1270, 259)
Me.UstCntlUSTV_AntragErstattungen1.TabIndex = 2
'
'frmMDM_USTVAntrag
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)

View File

@@ -57,7 +57,6 @@ Public Class frmMDM_USTVAntrag
lblGesamtErstattungFW.Text = "-"
lblDiffernezbetragFW.Text = "-"
lblGesamtUSteuer.Text="-"
lblGesamtErstattung.Text = "-"
lblDiffernezbetrag.Text = "-"
@@ -75,11 +74,6 @@ Public Class frmMDM_USTVAntrag
If UStVAn_ID <= 0 Then Exit Sub
'.SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId]
' FROM [tblUStVPositionen]
' left join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
' where UStVAn_ID='" & UStVAn_ID & "' ORDER BY UStVPo_ID", "FMZOLL")
.SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] " & IIf(cbxInterneNr.Checked, ",[UStVPo_interneNr] as intNr", "") & " ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Nettobetrag],[UStVPo_NettobetragEUR],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_Strasse] as StrasseOnly,leist.[UstV_Leistender_StrasseNr] as StrassenNrOnly,leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], [UStVPo_daId_loeschbar] ,[UStVPo_VZ],[UStVPo_VZ_RKID] ,cast(case when isnull([UStVPo_VZ_RKID],0) = 0 then 0 else 1 end as bit) as VZabrechnet
FROM [tblUStVPositionen]
LEFT JOIN [tblUStVLeistender] as leist
@@ -187,6 +181,9 @@ Public Class frmMDM_USTVAntrag
If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c)
Dim invoiceNumbers As New HashSet(Of String)
For Each r As DataGridViewRow In .Rows
Dim da_id As Integer = -1
@@ -203,6 +200,18 @@ Public Class frmMDM_USTVAntrag
DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf
End If
If Not (r.Cells("UStVPo_SchnittstellenNr").Value = 4 OrElse r.Cells("UStVPo_SchnittstellenNr").Value = 9) AndAlso Not r.Cells("UStVPo_ReNr").Value.ToString.ToLower.StartsWith("bis") Then 'MSE und "SAMMELBERIFF" ausnehmen
Dim rechnungsNr = CStr(r.Cells("UStVPo_ReNr").Value)
If Not String.IsNullOrWhiteSpace(rechnungsNr) Then
If Not invoiceNumbers.Add(rechnungsNr) Then
r.Cells("UStVPo_ReNr").Style.BackColor = Color.IndianRed
End If
End If
End If
Next
If .Columns.Count > 1 Then
@@ -1817,6 +1826,8 @@ Public Class frmMDM_USTVAntrag
If UStVAn_ID > 0 Then
dgvUSTVPositionen.GetOrder()
getValue(USTV_ANTRAG)
@@ -1827,6 +1838,18 @@ Public Class frmMDM_USTVAntrag
VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen_USTVA(USTV_ANTRAG.UStVAn_ID)
Dim invoiceNumbers As New HashSet(Of String)
For Each r In dgvUSTVPositionen.Rows
Dim rechnungsNr = CStr(r.Cells("UStVPo_ReNr").Value)
If Not String.IsNullOrWhiteSpace(rechnungsNr) Then
If Not invoiceNumbers.Add(rechnungsNr) Then
MessageBox.Show($"Doppelt erfasste RechnungsNr vorhanden: {rechnungsNr}")
Exit For
End If
End If
Next
If USTV_ANTRAG.UStVAn_Währungscode IsNot Nothing AndAlso USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso USTV_ANTRAG.UStVAn_Währungscode <> "" Then
Dim averageUmrechnungskurs As Double = 1
Dim invoicedateOK As Boolean = True
@@ -1843,6 +1866,7 @@ Public Class frmMDM_USTVAntrag
End If
Next
averageUmrechnungskurs = averageUmrechnungskurs / dgvUSTVPositionen.Rows.Count
End If

View File

@@ -3,6 +3,7 @@ Imports System.Linq.Expressions
Imports System.Text
Imports GrapeCity.DataVisualization.TypeScript
Imports Microsoft.Office.Interop
Imports org.BouncyCastle.Math.EC.Endo
Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
@@ -681,6 +682,12 @@ Public Class usrCntlUSTV
ContextMenuStrip1.Items.Add(pdf)
End If
If Not ContextMenuStrip1.Items.ContainsKey("checkAntragspositionen") Then
Dim pos = New ToolStripMenuItem() With {.Text = "Antragspositionen prüfen", .Name = "checkAntragspositionen", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler pos.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(pos)
End If
ContextMenuStrip1.Show(Cursor.Position)
@@ -729,8 +736,12 @@ Public Class usrCntlUSTV
ElseIf item.Name = "checkPDF" Then
checkPDF()
Else
ElseIf item.Name = "checkAntragspositionen" Then
checkAntragspositionen(CInt(cboJahr._value), CInt(cboJahrBis._value))
Else
MsgBox("Funktion nicht implementiert!")
End If
@@ -787,6 +798,27 @@ Public Class usrCntlUSTV
End Function
Private Function checkAntragspositionen(RechnungsjahrVon As Integer, RechnungsjahrBis As Integer) As Boolean
Dim sqlStr = "SELECT [UStVAn_ID] as AntragsID,cast([UStVPo_ReDat] as date) as Rechnungsdatum,[UStVPo_ReNr] as RechnungsNr
FROM [VERAG].[dbo].[tblUStVPositionen] where Year([UStVPo_ReDat]) >= " & RechnungsjahrVon & " and Year([UStVPo_ReDat]) <= " & RechnungsjahrBis & "
group by [UStVAn_ID] ,[UStVPo_ReNr], [UStVPo_ReDat]
HAVING COUNT(*) > 1
order by [UStVAn_ID] desc"
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, True,,, True)
Return True
Else
MsgBox("Keine Daten!")
Return False
End If
End Function
Private Sub mailmitExcelauswertung()
Try

View File

@@ -1704,7 +1704,7 @@ Public Class frmBelegNeu
Dim verarbeitet As Boolean = False
If KASSE.rksv_FT_RestServiceURL <> "" Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, BELEG.POS, QR_CodeString, LastJWS)
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, QR_CodeString, LastJWS)
'result.Wait()
verarbeitet = result
Else
@@ -2028,7 +2028,7 @@ Public Class frmBelegNeu
If vbYes = MsgBox(result & vbNewLine & vbNewLine & "Testdaten in DB speichern?", vbYesNoCancel) Then
Dim QR_CodeString As String = ""
client_chilkat.saveRKSV_FT(result, QR_CodeString)
client_chilkat.saveRKSV_FT(result, QR_CodeString, Nothing, False)
End If
Else
Return False

View File

@@ -207,6 +207,8 @@ Public Class frmKassenbuch
' " ORDER BY b.rksv_BelegId DESC;", "FMZOLL")
.LOAD()
If .Rows.Count = 0 Then Exit Sub
.Columns("Betrag").DefaultCellStyle.Format = "C"
.Columns("Betrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns("Ordnungsbegriff").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
@@ -273,6 +275,8 @@ Public Class frmKassenbuch
' " " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' ORDER BY JournalNr DESC", "FMZOLL")
.LOAD()
If .Rows.Count = 0 Then Exit Sub
.Columns("JournalNr").Width = 55
.Columns("JournalNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("Brutto").DefaultCellStyle.Format = "C"
@@ -1007,10 +1011,24 @@ Public Class frmKassenbuch
Dim LastJWS As String = ""
Dim answer = ""
If KASSETmp.rksv_aktiv Then
If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso IsNumeric(KASSETmp.rksv_FT_CashboxID) AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country)
If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer) Then
MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
Else
If Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then
MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
End If
End If
If KASSETmp.rksvDE_aktiv Then
Dim PERSONALTmp1 As cPersonal = FMZOLL_SQL.getPersonalById(BELEGTmp.Benutzer)
@@ -1075,6 +1093,15 @@ Public Class frmKassenbuch
Dim LastJWS As String = ""
Dim answer = ""
If KASSETmp.rksv_aktiv Then
If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country)
If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer) Then
MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
Else
If Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, If(BELEGTmp.rksv_BelegIdStorno, BELEGTmp.rksv_BelegId), BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then
'FEHLER!!
If KASSETmp.rksv_StornoIncreaseBelegCnt Then BELEGTmp.rksv_BelegIdStorno = Nothing
@@ -1083,6 +1110,8 @@ Public Class frmKassenbuch
Exit Sub
End If
End If
End If
If KASSETmp.rksvDE_aktiv Then
If Not cRKSV.stornoRKSV_DE(PERSONALTmp, BELEGTmp, KASSETmp, If(BELEGTmp.rksv_BelegIdStorno, BELEGTmp.rksv_BelegId), BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, False, answer) Then
'FEHLER!!

View File

@@ -71,6 +71,7 @@
<package id="Microsoft.Extensions.Primitives" version="5.0.0" targetFramework="net48" />
<package id="Newtonsoft.Json" version="13.0.4" targetFramework="net48" />
<package id="Portable.BouncyCastle" version="1.8.5" targetFramework="net48" />
<package id="QRCoder" version="1.8.0" targetFramework="net48" />
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
<package id="System.Diagnostics.DiagnosticSource" version="5.0.0" targetFramework="net48" />
<package id="System.Interactive.Async" version="4.0.0" targetFramework="net48" />