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 End Function
'cboPrinter.SelectedItem.ToString '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 'Dim print As New frmPrintLayout
@@ -1238,10 +1238,6 @@ Public Class cRKSV
rpt.lblGesamtbetrag.Text = CDbl(sum + (sum * s)).ToString("C") rpt.lblGesamtbetrag.Text = CDbl(sum + (sum * s)).ToString("C")
If sum < 0 Then rpt.Label2.Text = "Rechnungskorrektur Nr." If sum < 0 Then rpt.Label2.Text = "Rechnungskorrektur Nr."
End Sub End Sub
If False Then 'POSPayment Then
'Dim Pos = New frmPOSTerminal(rpt, sum)
'Pos.ShowDialog()
End If
'PaperKind = System.Drawing.Printing.PaperKind.Custom 'PaperKind = System.Drawing.Printing.PaperKind.Custom
' Me.PageSettings.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 Dim allowPrint = False
Public printErfolgreich = False Public printErfolgreich = False
Public defaultPrinter = "" Public defaultPrinter = ""
Dim TESTBUCHUNG = True
Private EasyZVT_Worker As System.ComponentModel.BackgroundWorker = New System.ComponentModel.BackgroundWorker() Private EasyZVT_Worker As System.ComponentModel.BackgroundWorker = New System.ComponentModel.BackgroundWorker()
Private Funktion As Integer 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/" ' 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 If Not printRoutine() Then
printErfolgreich = False Exit Sub
If BELEG.gebucht Or BELEG.gebuchtStorno Then End If
' KASSE.LOAD(cboKassen._value) setRKSV()
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
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 End Sub
@@ -1518,39 +1340,20 @@ Public Class frmBelegNeu
Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True) Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True)
Dim response As String = "" Dim returnCode = CInt(ZVTKey.GetValue("Ergebnis"))
response &= ZVTKey.GetValue("Ergebnis") & vbNewLine Dim response As String = ZVTKey.GetValue("ErgebnisText")
response &= 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() ZVTKey.Close()
MsgBox(response) MsgBox(response)
setBreak = False If returnCode = 0 Then 'Zahlung wurde erfolgreich durchgeführt
setRKSV()
End If
End Sub End Sub
Private Sub POSpayment(sender As Object, e As EventArgs) Handles btnPOS.Click Private Sub POSpayment(sender As Object, e As EventArgs) Handles btnPOS.Click
If cboKassen.SelectedItem.Text = "" Or Betrag <= 0 Then If cboKassen.SelectedItem.Text = "" Or Betrag <= 0 Then
Exit Sub Exit Sub
End If End If
@@ -1562,6 +1365,9 @@ Public Class frmBelegNeu
Case 0 Case 0
MsgBox("Für diese Kasse ist kein aktives POS-Terminal hinterlegt!") MsgBox("Für diese Kasse ist kein aktives POS-Terminal hinterlegt!")
Case 1 Case 1
If Not printRoutine() Then
Exit Sub
End If
SetRegEntries() SetRegEntries()
Case Else Case Else
@@ -1617,17 +1423,7 @@ Public Class frmBelegNeu
End If End If
ZVTKey.SetValue("Ergebnis", 1000, RegistryValueKind.DWord) ' Zur Sicherheit, falls EasyZVT gar nicht installiert ist oder nicht gestartet werden kann 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("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() EasyZVT_Worker.RunWorkerAsync()
@@ -1644,14 +1440,16 @@ Public Class frmBelegNeu
Private Sub mnuItem_Clicked(sender As Object, e As EventArgs) 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. ContextMenuStrip1.Hide() 'Sometimes the menu items can remain open. May not be necessary for you.
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem) Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If Not printRoutine() Then
Exit Sub
End If
If item IsNot Nothing Then If item IsNot Nothing Then
SetRegEntries(item.Name) SetRegEntries(item.Name)
End If End If
End Sub End Sub
Private Sub printRoutine() Private Function printRoutine()
Try Try
printErfolgreich = False 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 Case "2" : If cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") Then Me.Close() 'Beleg drucken
End Select End Select
Else Else
Dim TESTBUCHUNG = False TESTBUCHUNG = False
' VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM() ' VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM()
If cRKSV.isforbiddenDate Then 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.") 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 End If
Me.Cursor = Cursors.WaitCursor Me.Cursor = Cursors.WaitCursor
@@ -1684,11 +1482,33 @@ Public Class frmBelegNeu
End If End If
datatoBeleg() 'Daten werden in "BELEG" geldaen 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 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
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 Dim summeNETTO As Double = 0
For Each p In BELEG.POS : summeNETTO += p.Betrag : Next For Each p In BELEG.POS : summeNETTO += p.Betrag : Next
@@ -1781,8 +1601,57 @@ Public Class frmBelegNeu
Me.DialogResult = Windows.Forms.DialogResult.OK 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 End If
Catch ex As Exception Catch ex As Exception
Me.DialogResult = Windows.Forms.DialogResult.None Me.DialogResult = Windows.Forms.DialogResult.None
Me.Cursor = Cursors.Default Me.Cursor = Cursors.Default
@@ -1792,7 +1661,6 @@ Public Class frmBelegNeu
Me.Close() Me.Close()
End Try End Try
End Sub End Sub