From 409fb2d14aa3a1ec99e66b2bbcf3cc626af7f4a6 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 13 Mar 2023 14:25:02 +0100 Subject: [PATCH] Stornierung von Belegen mit EC-Zahlung erfordert nun extra Berechtigung, Zahlungsmittel wird im Beleg angezeigt. --- SDL/Classes/cRKSV.vb | 14 +++++ SDL/kassenbuch/frmBelegNeu.Designer.vb | 38 +++++++++++-- SDL/kassenbuch/frmBelegNeu.resx | 3 + SDL/kassenbuch/frmBelegNeu.vb | 1 + SDL/kassenbuch/frmKassenbuch.vb | 78 ++++++++++++++++---------- 5 files changed, 98 insertions(+), 36 deletions(-) diff --git a/SDL/Classes/cRKSV.vb b/SDL/Classes/cRKSV.vb index 7fcff0cf..f5e97ff7 100644 --- a/SDL/Classes/cRKSV.vb +++ b/SDL/Classes/cRKSV.vb @@ -113,6 +113,20 @@ Public Class cRKSV KBEntryGB = New cKassenbuch("LOAD", BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma), j1) Return True End Function + + Shared Function getZahlungsmittel(BELEG As EABeleg, PERSONAL As cPersonal, Firma As String) As String + Dim zm = SQL.getValueTxtBySql("SELECT [Finanzwege] FROM [tblKassenbuch] " & + " WHERE [Mandant]='" & PERSONAL.Mandant & "' AND [Niederlassung]='" & PERSONAL.Niederlassung & "' AND [Benutzer]='" & PERSONAL.ID & "' AND [Geschäftsjahr]='" & cRKSV.getGJ_FIRMA(BELEG.BelegDat, Firma) & "' AND [BelegNr] ='" & BELEG.BelegNr & "' and Steuer <=0 AND Soll <> 0", "FMZOLL") + + + If zm Is DBNull.Value Or zm = Nothing Then + Return "-" + End If + + Return zm + End Function + + Shared Function getDEP(ByVal kasse_id As Integer, ByRef exportResult As String) As Boolean Dim KASSE As New cRKSV_Kasse(kasse_id) diff --git a/SDL/kassenbuch/frmBelegNeu.Designer.vb b/SDL/kassenbuch/frmBelegNeu.Designer.vb index 1adf6a52..a85cb33f 100644 --- a/SDL/kassenbuch/frmBelegNeu.Designer.vb +++ b/SDL/kassenbuch/frmBelegNeu.Designer.vb @@ -141,6 +141,8 @@ 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.Label28 = New System.Windows.Forms.Label() + Me.lblZahlungsmittel = New System.Windows.Forms.Label() CType(Me.dgvBelegPos, System.ComponentModel.ISupportInitialize).BeginInit() Me.pnl.SuspendLayout() Me.pnlData.SuspendLayout() @@ -410,7 +412,7 @@ Partial Class frmBelegNeu ' Me.Label12.AutoSize = True Me.Label12.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label12.Location = New System.Drawing.Point(352, 87) + Me.Label12.Location = New System.Drawing.Point(352, 101) Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(60, 13) Me.Label12.TabIndex = 13 @@ -420,7 +422,7 @@ Partial Class frmBelegNeu ' Me.Label16.AutoSize = True Me.Label16.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label16.Location = New System.Drawing.Point(352, 67) + Me.Label16.Location = New System.Drawing.Point(352, 81) Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(84, 13) Me.Label16.TabIndex = 11 @@ -642,6 +644,8 @@ Partial Class frmBelegNeu 'pnlData ' Me.pnlData.BackColor = System.Drawing.Color.FromArgb(CType(CType(244, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(244, Byte), Integer)) + Me.pnlData.Controls.Add(Me.Label28) + Me.pnlData.Controls.Add(Me.lblZahlungsmittel) Me.pnlData.Controls.Add(Me.txtzuKassieren) Me.pnlData.Controls.Add(Me.Label22) Me.pnlData.Controls.Add(Me.cbxSplittung) @@ -866,7 +870,7 @@ Partial Class frmBelegNeu Me.lblErr_steuer.AutoSize = True Me.lblErr_steuer.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblErr_steuer.ForeColor = System.Drawing.Color.Red - Me.lblErr_steuer.Location = New System.Drawing.Point(376, 48) + Me.lblErr_steuer.Location = New System.Drawing.Point(376, 62) Me.lblErr_steuer.Name = "lblErr_steuer" Me.lblErr_steuer.Size = New System.Drawing.Size(244, 13) Me.lblErr_steuer.TabIndex = 9 @@ -936,7 +940,7 @@ Partial Class frmBelegNeu Me.txtSteuersatz._Waehrung = False Me.txtSteuersatz._WaehrungZeichen = True Me.txtSteuersatz.ForeColor = System.Drawing.Color.Black - Me.txtSteuersatz.Location = New System.Drawing.Point(441, 84) + Me.txtSteuersatz.Location = New System.Drawing.Point(441, 98) Me.txtSteuersatz.MaxLineLength = -1 Me.txtSteuersatz.MaxLines_Warning = "" Me.txtSteuersatz.MaxLines_Warning_Label = Nothing @@ -952,7 +956,7 @@ Partial Class frmBelegNeu Me.cboSteuerschlüssel._value = "" Me.cboSteuerschlüssel.CausesValidation = False Me.cboSteuerschlüssel.FormattingEnabled = True - Me.cboSteuerschlüssel.Location = New System.Drawing.Point(441, 64) + Me.cboSteuerschlüssel.Location = New System.Drawing.Point(441, 78) Me.cboSteuerschlüssel.Name = "cboSteuerschlüssel" Me.cboSteuerschlüssel.Size = New System.Drawing.Size(179, 21) Me.cboSteuerschlüssel.TabIndex = 20 @@ -1708,6 +1712,28 @@ Partial Class frmBelegNeu Me.ContextMenuStrip1.Name = "ContextMenuStrip1" Me.ContextMenuStrip1.Size = New System.Drawing.Size(61, 4) ' + 'Label28 + ' + Me.Label28.AutoSize = True + Me.Label28.BackColor = System.Drawing.Color.Transparent + Me.Label28.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label28.Location = New System.Drawing.Point(406, 38) + Me.Label28.Name = "Label28" + Me.Label28.Size = New System.Drawing.Size(78, 13) + Me.Label28.TabIndex = 46 + Me.Label28.Text = "Zahlungsmittel:" + ' + 'lblZahlungsmittel + ' + Me.lblZahlungsmittel.AutoSize = True + Me.lblZahlungsmittel.BackColor = System.Drawing.Color.Transparent + Me.lblZahlungsmittel.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblZahlungsmittel.Location = New System.Drawing.Point(494, 35) + Me.lblZahlungsmittel.Name = "lblZahlungsmittel" + Me.lblZahlungsmittel.Size = New System.Drawing.Size(14, 17) + Me.lblZahlungsmittel.TabIndex = 47 + Me.lblZahlungsmittel.Text = "-" + ' 'frmBelegNeu ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) @@ -1853,4 +1879,6 @@ Partial Class frmBelegNeu Friend WithEvents Panel1 As Panel Friend WithEvents Label27 As Label Friend WithEvents Label26 As Label + Friend WithEvents Label28 As Label + Friend WithEvents lblZahlungsmittel As Label End Class diff --git a/SDL/kassenbuch/frmBelegNeu.resx b/SDL/kassenbuch/frmBelegNeu.resx index 5a022f1c..5923be0e 100644 --- a/SDL/kassenbuch/frmBelegNeu.resx +++ b/SDL/kassenbuch/frmBelegNeu.resx @@ -159,6 +159,9 @@ 17, 17 + + 86 + diff --git a/SDL/kassenbuch/frmBelegNeu.vb b/SDL/kassenbuch/frmBelegNeu.vb index 243c01dc..07779db0 100644 --- a/SDL/kassenbuch/frmBelegNeu.vb +++ b/SDL/kassenbuch/frmBelegNeu.vb @@ -314,6 +314,7 @@ Public Class frmBelegNeu Sub init() 'lblRgNr.Text = "12345 / TR" lblBelegDatum.Text = BELEG.BelegDat.ToShortDateString + lblZahlungsmittel.Text = cRKSV.getZahlungsmittel(BELEG, PERSONAL, PERSONAL.cRKSV_Kasse.rksv_firma) lblkundeKdNr.Text = IIf(BELEG.KundenNr > 0, BELEG.KundenNr, "") kdkunde.Text = BELEG.Ordnungsbegriff If BELEG.KundenNr > 0 Then kdkunde.KdNr = BELEG.KundenNr diff --git a/SDL/kassenbuch/frmKassenbuch.vb b/SDL/kassenbuch/frmKassenbuch.vb index 36f173bb..77af8635 100644 --- a/SDL/kassenbuch/frmKassenbuch.vb +++ b/SDL/kassenbuch/frmKassenbuch.vb @@ -1,4 +1,5 @@ -Imports SDL.RKSVServer +Imports DocumentFormat.OpenXml.Drawing +Imports SDL.RKSVServer Public Class frmKassenbuch Dim SQL As New SQL @@ -917,8 +918,21 @@ Public Class frmKassenbuch Exit Sub End If + Dim zahlungsmittel = cRKSV.getZahlungsmittel(BELEGTmp, PERSONAL, PERSONAL.cRKSV_Kasse.rksv_firma) + If zahlungsmittel = "EC" Then + If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("POS_Zahlungen_stornieren", Me) Then + If Not vbYes = MsgBox("Dieser Beleg wurde mittels EC gezahlt, Zahlung muss ebenfalls manuell auf Terminal storniert werden!", vbYesNoCancel) Then + Exit Sub + End If + + Else + MsgBox("Der aktuelle Benutzer ist nicht berechtigt EC-Zahlungen zu stornieren!") + Exit Sub + End If + + End If 'NUR KB @@ -981,20 +995,20 @@ Public Class frmKassenbuch ' BELEGTmp = New EABeleg("LOAD", PERSONAL.Mandant, PERSONAL.Niederlassung, dt.Rows(0)("Benutzer"), dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) Dim PERSONALTmp As cPersonal = FMZOLL_SQL.getPersonalById(BELEGTmp.Benutzer) - If master_Kasse = False Then - If BELEGTmp.Benutzer <> PERSONAL.ID Then MsgBox("Der Beleg wurde von einem anderen Beutzer erstellt. " & vbNewLine & " Bitte wenden Sie sich an: '" & PERSONALTmp.Name & "'.") : Exit Sub - End If - Dim grund = InputBox("Möchten Sie den Beleg wirklich storinieren?" & vbNewLine & vbNewLine & "Betrag: " & BELEGTmp.rksv_umsatz & vbNewLine & "Datum: " & BELEGTmp.BelegDat & vbNewLine & vbNewLine & "Bitte geben Sie einen Stornogrund an:" & vbNewLine, "Storno") - If grund = "" Then - MsgBox("Kein Stornotext, Aktion wird abgebrochen") - Exit Sub - End If + If master_Kasse = False Then + If BELEGTmp.Benutzer <> PERSONAL.ID And Not zahlungsmittel = "EC" Then MsgBox("Der Beleg wurde von einem anderen Beutzer erstellt. " & vbNewLine & " Bitte wenden Sie sich an: '" & PERSONALTmp.Name & "'.") : Exit Sub + End If + Dim grund = InputBox("Möchten Sie den Beleg wirklich storinieren?" & vbNewLine & vbNewLine & "Betrag: " & BELEGTmp.rksv_umsatz & vbNewLine & "Datum: " & BELEGTmp.BelegDat & vbNewLine & vbNewLine & "Bitte geben Sie einen Stornogrund an:" & vbNewLine, "Storno") + If grund = "" Then + MsgBox("Kein Stornotext, Aktion wird abgebrochen") + Exit Sub + End If - If BELEGTmp.BelegNr <= 0 Then MsgBox("Fehler beim Laden der Belegdaten") : Exit Sub + If BELEGTmp.BelegNr <= 0 Then MsgBox("Fehler beim Laden der Belegdaten") : Exit Sub - If Not BELEGTmp.gebuchtStorno Then 'f.cbxStornoErzwingenAdmin.Checked=stono erzwingen + If Not BELEGTmp.gebuchtStorno Then 'f.cbxStornoErzwingenAdmin.Checked=stono erzwingen Dim OLD_rksv_BelegId = BELEGTmp.rksv_BelegId Dim KASSETmp As New cRKSV_Kasse(BELEGTmp.rksv_id) @@ -1040,33 +1054,35 @@ Public Class frmKassenbuch End If End If - Select Case BELEGTmp.Beleg_TYP 'dt.Rows(0)("Beleg_TYP") - Case "E" - Dim KBEntry As cKassenbuch = Nothing - Dim KBEntryGB As cKassenbuch = Nothing + Select Case BELEGTmp.Beleg_TYP 'dt.Rows(0)("Beleg_TYP") + Case "E" + Dim KBEntry As cKassenbuch = Nothing + Dim KBEntryGB As cKassenbuch = Nothing If cRKSV.getKB(BELEGTmp, PERSONALTmp, KBEntry, KBEntryGB, KASSETmp.rksv_firma) Then cRKSV.printFremdBeleg(BELEGTmp, KASSETmp, PERSONALTmp, KBEntry, KBEntryGB, "") 'Beleg drucken End If Case "L" - cRKSV.printKundenBelegLG(BELEGTmp, KASSETmp, PERSONALTmp, "", "LG") 'Beleg drucken - Case "A" - cRKSV.printKundenBelegLG(BELEGTmp, KASSETmp, PERSONALTmp, "", "A") 'Beleg drucken - Case Else - cRKSV.printKundenBeleg(BELEGTmp, KASSETmp, PERSONALTmp, "", False) 'Beleg drucken - End Select - - MsgBox("Beleg storniert!") - 'Dim frmBeleg As New frmBelegNeu(PERSONAL, PERSONAL.Mandant, PERSONAL.Niederlassung, dt.Rows(0)("Benutzer"), dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) - ' frmBeleg.ShowDialog(Me) - ' init() If Not BELEGTmp.gebuchtStorno Then - Else - MsgBox("Beleg wurde bereits storniert!") - End If - init() + cRKSV.printKundenBelegLG(BELEGTmp, KASSETmp, PERSONALTmp, "", "LG") 'Beleg drucken + Case "A" + cRKSV.printKundenBelegLG(BELEGTmp, KASSETmp, PERSONALTmp, "", "A") 'Beleg drucken + Case Else + cRKSV.printKundenBeleg(BELEGTmp, KASSETmp, PERSONALTmp, "", False) 'Beleg drucken + End Select + MsgBox("Beleg storniert!") + 'Dim frmBeleg As New frmBelegNeu(PERSONAL, PERSONAL.Mandant, PERSONAL.Niederlassung, dt.Rows(0)("Benutzer"), dt.Rows(0)("BelegNr"), dt.Rows(0)("BelegDat")) + ' frmBeleg.ShowDialog(Me) + ' init() If Not BELEGTmp.gebuchtStorno Then Else - MsgBox("Keine Daten gefunden!") + MsgBox("Beleg wurde bereits storniert!") End If + init() + Else + MsgBox("Keine Daten gefunden!") End If + init() + Else + MsgBox("Keine Daten gefunden!") + End If End Sub