POS Payment

This commit is contained in:
2023-03-06 17:09:25 +01:00
parent 944861f14a
commit c705ed1032
2 changed files with 97 additions and 233 deletions

View File

@@ -1061,7 +1061,7 @@ Public Class cRKSV
End Function
'cboPrinter.SelectedItem.ToString
Public Shared Function printKundenBeleg(BELEG As EABeleg, KASSE As cRKSV_Kasse, PERSONAL As cPersonal, printername As String, showDok As Boolean, Optional POSPayment As Boolean = False) As Boolean
Public Shared Function printKundenBeleg(BELEG As EABeleg, KASSE As cRKSV_Kasse, PERSONAL As cPersonal, printername As String, showDok As Boolean) As Boolean
'Dim print As New frmPrintLayout
@@ -1238,10 +1238,6 @@ Public Class cRKSV
rpt.lblGesamtbetrag.Text = CDbl(sum + (sum * s)).ToString("C")
If sum < 0 Then rpt.Label2.Text = "Rechnungskorrektur Nr."
End Sub
If False Then 'POSPayment Then
'Dim Pos = New frmPOSTerminal(rpt, sum)
'Pos.ShowDialog()
End If
'PaperKind = System.Drawing.Printing.PaperKind.Custom
' Me.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom

View File

@@ -31,6 +31,7 @@ Public Class frmBelegNeu
Dim allowPrint = False
Public printErfolgreich = False
Public defaultPrinter = ""
Dim TESTBUCHUNG = True
Private EasyZVT_Worker As System.ComponentModel.BackgroundWorker = New System.ComponentModel.BackgroundWorker()
Private Funktion As Integer
@@ -742,192 +743,13 @@ Public Class frmBelegNeu
' Dim RKSV_Service_Location = "\\192.168.0.106:8733/Design_Time_Addresses/RKSVCompleteServer/Service1/"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click ' btnPOS.Click
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click 'btnPOS.Click
Try
printErfolgreich = False
If BELEG.gebucht Or BELEG.gebuchtStorno Then
' KASSE.LOAD(cboKassen._value)
If BELEG.rksv_id > 0 Then KASSE.LOAD(BELEG.rksv_id)
Select Case BELEG.Belegart
Case "1" : If cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, cbxBelegOffnen.Checked) Then Me.Close()
Case "2" : If cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") Then Me.Close() 'Beleg drucken
End Select
Else
Dim TESTBUCHUNG = False
' VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM()
If cRKSV.isforbiddenDate Then
MsgBox("Die Kasse wir am Monatsende abgeschlossen. Es dürfen keine weiteren Belege erstellt werden. Bitte veruchen Sie den Vorgang nach Mitternacht erneut.")
Exit Sub
End If
If Not printRoutine() Then
Exit Sub
End If
setRKSV()
Me.Cursor = Cursors.WaitCursor
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
KASSE.LOAD(6) 'Laden der Kasse anhand der Auswahlbox
Else
KASSE.LOAD(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox
End If
BELEG.rksv_id = KASSE.rksv_id ' bei Fehler wird sonst die ID nicht richtig übernommen
If kdkunde.Text.Trim.Length > 50 Then
kdkunde.Text = kdkunde.Text.Trim.Substring(0, 50)
End If
datatoBeleg() 'Daten werden in "BELEG" geldaen
If Not validValues() Then Me.Cursor = Cursors.Default : Exit Sub
If Not allowPrint Then
If Not vbYes = MsgBox("Beim Druckvorgang werden die Beleg-Daten ins Kassenbuch eingetragen. Danach sind keine Änderungen mehr möglich." & vbNewLine & vbNewLine & "Soll der Vorgang gestartet werden?", vbYesNoCancel) Then Me.Cursor = Cursors.Default : Exit Sub
End If
Dim summeNETTO As Double = 0
For Each p In BELEG.POS : summeNETTO += p.Betrag : Next
Dim summeBRUTTO = summeNETTO
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & BELEG.Steuerschlüssel & "' ", "FMZOLL")
If IsNumeric(steuersatz) Then summeBRUTTO += (summeNETTO * steuersatz)
' If EA = "A" Then
' summeNETTO *= -1
' steuersatz *= -1
' summeBRUTTO *= -1
' End If
Dim oldBelegZaehler = KASSE.rksv_BelegIdZaehler 'Flls Fehler bei Signatur
Dim RKSV_Beleg_Id = KASSE.INCREASE_BELEG_UMSATZ(If(TESTBUCHUNG, 0, If(EA = "E", summeBRUTTO, summeBRUTTO * -1))) 'Bei Ausgabebeleg wird der Umsatz vermindert
If RKSV_Beleg_Id < 0 Then
Me.Cursor = Cursors.Default : warnClose = False : Me.Close() : Exit Sub
End If
' MsgBox(BELEG.POS.Count)
Dim JournalNr = 0
If Not cRKSV.insertKB(PERSONAL, BELEG, KASSE.rksv_id, RKSV_Beleg_Id, KASSE.rksv_aktiv, JournalNr, KASSE.rksv_firma) Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summeBRUTTO * -1)
MsgBox("Programmfehler bei Eintrag ins Kassenbuch.")
Me.Cursor = Cursors.Default : warnClose = False : Me.Close() : Exit Sub
End If
' QR_Image = Nothing
Dim QR_CodeString As String = ""
Dim LastJWS As String = ""
If KASSE.rksv_aktiv Then ' WENN für die Kasse die RKSV ÖSTERREICH gilt
Dim answer = ""
If Not 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) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, If(EA = "E", summeBRUTTO * -1, summeBRUTTO))
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
Me.Cursor = Cursors.Default : warnClose = False : Me.Close() : Exit Sub
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
'If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, 0, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
' If Not TESTBUCHUNG Then
' KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summe * -1)
' cRKSV.DELETE(BELEG)
' End If
' MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' ' Me.Cursor = Cursors.Default
' 'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' ' MsgBox("Programmfehler bei der digitalen Signatur.")
' Return False
'End If
'KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
' Dim TEST_KASSE = (BELEG.Niederlassung = "WAI")
If KASSE.rksvDE_aktiv Then ' WENN für die Kasse die RKSV DEUTSCHLAND gilt
Dim answer = ""
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, If(EA = "E", summeBRUTTO * -1, summeBRUTTO))
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
Me.Cursor = Cursors.Default : warnClose = False : Me.Close() : Exit Sub
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If KASSE.rksv_KassaGuid = "KASSE_01" Then 'Testkasse
BELEG.rksv_jws = Nothing
BELEG.rksv_qr = Nothing
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
End If
'RKSV-Daten beim Beleg ergänzen:
BELEG.rksv_jws = LastJWS
BELEG.rksv_qr = QR_CodeString
BELEG.rksv_BelegId = RKSV_Beleg_Id
BELEG.rksv_id = KASSE.rksv_id
BELEG.rksv_umsatz = summeBRUTTO
BELEG.rksv_aktiv = KASSE.rksv_aktiv
BELEG.gebucht = True
BELEG.SAVE()
Me.DialogResult = Windows.Forms.DialogResult.OK
'printBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString) 'Beleg drucken
Select Case BELEG.Belegart
Case "1"
If cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, cbxBelegOffnen.Checked) Then
'WARTEN
printErfolgreich = True
End If
Case "2"
If cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") Then
'WARTEN
printErfolgreich = True
End If
End Select
If warnClose Then 'Dann automatisch erstellt, zb Leihgeld --> Spedbuch bereits dort erfasst
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then 'Or VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "WAI" Then
If vbYes = MsgBox("Daten ins Speditionsbuch eintragen?", vbYesNoCancel) Then
Dim abbruch As Boolean = False
If cRKSV.SpedBuchExists(BELEG) Then
If vbYes <> MsgBox("Speditionsbuch Eintrag existiert bereits - Daten überschreiben?", vbYesNoCancel) Then
abbruch = True
End If
End If
If Not abbruch Then
cRKSV.insertToSpedBuch(PERSONAL, PERSONAL_LG, BELEG, AvisoID, SendungID)
If Not cRKSV.SpedBuchExists(BELEG) Then
MsgBox("Speditionsbuch-Eintrag fehlgeschlagen!!")
Else
If vbYes = MsgBox("Speditionsbuch anzeigen?", vbYesNoCancel) Then
Dim frmNacherfassung As New frmNacherfassungNEU()
frmNacherfassung.srchFiliale = BELEG.FilialenNr
frmNacherfassung.srchAbfertigungsnummer = BELEG.AbfertigungsNr
frmNacherfassung.srchUnterNr = 0
frmNacherfassung.ShowDialog(Me)
End If
End If
End If
End If
End If
End If
Me.Close()
Me.Cursor = Cursors.Default
End If
Catch ex As Exception
Me.DialogResult = Windows.Forms.DialogResult.None
Me.Cursor = Cursors.Default
printErfolgreich = False
MsgBox("Allgemeiner Programmfehler - Belegerfassung wird geschlossen!" & ex.Message & ex.StackTrace)
warnClose = False
Me.Close()
End Try
End Sub
@@ -1518,39 +1340,20 @@ Public Class frmBelegNeu
Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True)
Dim response As String = ""
response &= ZVTKey.GetValue("Ergebnis") & vbNewLine
response &= ZVTKey.GetValue("ErgebnisText")
Dim returnCode = CInt(ZVTKey.GetValue("Ergebnis"))
Dim response As String = ZVTKey.GetValue("ErgebnisText")
'TextBox_Drucktext.Text = Replace(ZVTKey.GetValue("Drucktext"), vbLf, vbCrLf)
'TextBox_Drucktext2.Text = Replace(ZVTKey.GetValue("Drucktext2"), vbLf, vbCrLf)
'TextBox_BelegNr.Text = ZVTKey.GetValue("BelegNr").ToString
'TextBox_Betrag.Text = ""
'If CheckBoxAutodruck.Checked Then
' If Len(TextBox_Drucktext.Text) > 1 Then
' Button_Kundenbeleg_drucken.PerformClick()
' End If
' If Len(TextBox_Drucktext2.Text) > 1 Then
' Button_Haendlerbeleg_drucken.PerformClick()
' End If
'End If
'TextBox_Betrag.Focus()
'Button_Autorisierung.Enabled = True
'Button_Diagnose.Enabled = True
'Button_Tagesabschluss.Enabled = True
'Button_Storno.Enabled = True
'Button_Gutschrift.Enabled = True
ZVTKey.Close()
MsgBox(response)
setBreak = False
If returnCode = 0 Then 'Zahlung wurde erfolgreich durchgeführt
setRKSV()
End If
End Sub
Private Sub POSpayment(sender As Object, e As EventArgs) Handles btnPOS.Click
If cboKassen.SelectedItem.Text = "" Or Betrag <= 0 Then
Exit Sub
End If
@@ -1562,6 +1365,9 @@ Public Class frmBelegNeu
Case 0
MsgBox("Für diese Kasse ist kein aktives POS-Terminal hinterlegt!")
Case 1
If Not printRoutine() Then
Exit Sub
End If
SetRegEntries()
Case Else
@@ -1617,17 +1423,7 @@ Public Class frmBelegNeu
End If
ZVTKey.SetValue("Ergebnis", 1000, RegistryValueKind.DWord) ' Zur Sicherheit, falls EasyZVT gar nicht installiert ist oder nicht gestartet werden kann
ZVTKey.SetValue("ErgebnisText", "EasyZVT konnte nicht gestartet werden", RegistryValueKind.String)
'ZVTKey.SetValue("DemoDruckername", comboInstalledPrinters.Text, RegistryValueKind.String)
'If CheckBoxAutodruck.Checked Then
' ZVTKey.SetValue("DemoAutodruck", 1, RegistryValueKind.DWord)
'Else
' ZVTKey.SetValue("DemoAutodruck", 0, RegistryValueKind.DWord)
'End If
'If CheckBoxDummy.Checked Then
' ZVTKey.SetValue("DemoDummydruck", 1, RegistryValueKind.DWord)
'Else
' ZVTKey.SetValue("DemoDummydruck", 0, RegistryValueKind.DWord)
'End If
EasyZVT_Worker.RunWorkerAsync()
@@ -1644,14 +1440,16 @@ Public Class frmBelegNeu
Private Sub mnuItem_Clicked(sender As Object, e As EventArgs)
ContextMenuStrip1.Hide() 'Sometimes the menu items can remain open. May not be necessary for you.
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If Not printRoutine() Then
Exit Sub
End If
If item IsNot Nothing Then
SetRegEntries(item.Name)
End If
End Sub
Private Sub printRoutine()
Private Function printRoutine()
Try
printErfolgreich = False
@@ -1663,11 +1461,11 @@ Public Class frmBelegNeu
Case "2" : If cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") Then Me.Close() 'Beleg drucken
End Select
Else
Dim TESTBUCHUNG = False
TESTBUCHUNG = False
' VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM()
If cRKSV.isforbiddenDate Then
MsgBox("Die Kasse wir am Monatsende abgeschlossen. Es dürfen keine weiteren Belege erstellt werden. Bitte veruchen Sie den Vorgang nach Mitternacht erneut.")
Exit Sub
Return False
End If
Me.Cursor = Cursors.WaitCursor
@@ -1684,11 +1482,33 @@ Public Class frmBelegNeu
End If
datatoBeleg() 'Daten werden in "BELEG" geldaen
If Not validValues() Then Me.Cursor = Cursors.Default : Exit Sub
If Not validValues() Then Me.Cursor = Cursors.Default : Return False
If Not allowPrint Then
If Not vbYes = MsgBox("Beim Druckvorgang werden die Beleg-Daten ins Kassenbuch eingetragen. Danach sind keine Änderungen mehr möglich." & vbNewLine & vbNewLine & "Soll der Vorgang gestartet werden?", vbYesNoCancel) Then Me.Cursor = Cursors.Default : Exit Sub
If Not vbYes = MsgBox("Beim Druckvorgang werden die Beleg-Daten ins Kassenbuch eingetragen. Danach sind keine Änderungen mehr möglich." & vbNewLine & vbNewLine & "Soll der Vorgang gestartet werden?", vbYesNoCancel) Then Me.Cursor = Cursors.Default : Return False
End If
End If
Return True
Me.Cursor = Cursors.Default
Catch ex As Exception
Me.DialogResult = Windows.Forms.DialogResult.None
Me.Cursor = Cursors.Default
printErfolgreich = False
MsgBox("Allgemeiner Programmfehler - Belegerfassung wird geschlossen!" & ex.Message & ex.StackTrace)
warnClose = False
Me.Close()
End Try
End Function
Private Sub setRKSV()
Try
If Not BELEG.gebucht And Not BELEG.gebuchtStorno Then
Me.Cursor = Cursors.WaitCursor
Dim summeNETTO As Double = 0
For Each p In BELEG.POS : summeNETTO += p.Betrag : Next
@@ -1781,8 +1601,57 @@ Public Class frmBelegNeu
Me.DialogResult = Windows.Forms.DialogResult.OK
'printBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString) 'Beleg drucken
Select Case BELEG.Belegart
Case "1"
If cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, cbxBelegOffnen.Checked) Then
'WARTEN
printErfolgreich = True
End If
Case "2"
If cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") Then
'WARTEN
printErfolgreich = True
End If
End Select
If warnClose Then 'Dann automatisch erstellt, zb Leihgeld --> Spedbuch bereits dort erfasst
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then 'Or VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "WAI" Then
If vbYes = MsgBox("Daten ins Speditionsbuch eintragen?", vbYesNoCancel) Then
Dim abbruch As Boolean = False
If cRKSV.SpedBuchExists(BELEG) Then
If vbYes <> MsgBox("Speditionsbuch Eintrag existiert bereits - Daten überschreiben?", vbYesNoCancel) Then
abbruch = True
End If
End If
If Not abbruch Then
cRKSV.insertToSpedBuch(PERSONAL, PERSONAL_LG, BELEG, AvisoID, SendungID)
If Not cRKSV.SpedBuchExists(BELEG) Then
MsgBox("Speditionsbuch-Eintrag fehlgeschlagen!!")
Else
If vbYes = MsgBox("Speditionsbuch anzeigen?", vbYesNoCancel) Then
Dim frmNacherfassung As New frmNacherfassungNEU()
frmNacherfassung.srchFiliale = BELEG.FilialenNr
frmNacherfassung.srchAbfertigungsnummer = BELEG.AbfertigungsNr
frmNacherfassung.srchUnterNr = 0
frmNacherfassung.ShowDialog(Me)
End If
End If
End If
End If
End If
End If
Me.Close()
Me.Cursor = Cursors.Default
End If
Catch ex As Exception
Me.DialogResult = Windows.Forms.DialogResult.None
Me.Cursor = Cursors.Default
@@ -1792,7 +1661,6 @@ Public Class frmBelegNeu
Me.Close()
End Try
End Sub