From a698f874049f8133b333d97f2211d8a01f7e3e85 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 1 Mar 2023 16:04:50 +0100 Subject: [PATCH] POS Terminal -> Funktion mei mehreren Kassenterminals pro Kassenplatz bzw Kasse. --- SDL/kassenbuch/frmBelegNeu.Designer.vb | 8 ++ SDL/kassenbuch/frmBelegNeu.resx | 3 + SDL/kassenbuch/frmBelegNeu.vb | 150 ++++++++++++++++--------- 3 files changed, 105 insertions(+), 56 deletions(-) diff --git a/SDL/kassenbuch/frmBelegNeu.Designer.vb b/SDL/kassenbuch/frmBelegNeu.Designer.vb index 639b45ea..531599b5 100644 --- a/SDL/kassenbuch/frmBelegNeu.Designer.vb +++ b/SDL/kassenbuch/frmBelegNeu.Designer.vb @@ -22,6 +22,7 @@ Partial Class frmBelegNeu 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. _ Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmBelegNeu)) Me.dgvBelegPos = New System.Windows.Forms.DataGridView() Me.clmnAnzahl = New System.Windows.Forms.DataGridViewTextBoxColumn() @@ -136,6 +137,7 @@ Partial Class frmBelegNeu Me.DataGridViewTextBoxColumn8 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.DataGridViewTextBoxColumn9 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.FlowLayoutPanel2 = New System.Windows.Forms.FlowLayoutPanel() + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) CType(Me.dgvBelegPos, System.ComponentModel.ISupportInitialize).BeginInit() Me.pnl.SuspendLayout() Me.pnlData.SuspendLayout() @@ -1661,6 +1663,11 @@ Partial Class frmBelegNeu Me.FlowLayoutPanel2.TabIndex = 3 Me.FlowLayoutPanel2.Visible = False ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(181, 26) + ' 'frmBelegNeu ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) @@ -1801,4 +1808,5 @@ Partial Class frmBelegNeu Friend WithEvents txtzuKassieren As VERAG_PROG_ALLGEMEIN.MyTextBox Friend WithEvents Label22 As System.Windows.Forms.Label Friend WithEvents btnPOS As Button + Friend WithEvents ContextMenuStrip1 As ContextMenuStrip End Class diff --git a/SDL/kassenbuch/frmBelegNeu.resx b/SDL/kassenbuch/frmBelegNeu.resx index 33868bc3..5a022f1c 100644 --- a/SDL/kassenbuch/frmBelegNeu.resx +++ b/SDL/kassenbuch/frmBelegNeu.resx @@ -156,6 +156,9 @@ True + + 17, 17 + diff --git a/SDL/kassenbuch/frmBelegNeu.vb b/SDL/kassenbuch/frmBelegNeu.vb index 1f758a11..f6e8d818 100644 --- a/SDL/kassenbuch/frmBelegNeu.vb +++ b/SDL/kassenbuch/frmBelegNeu.vb @@ -2,6 +2,7 @@ Imports System.Drawing.Printing Imports System.Globalization Imports com.sun.org.apache.xpath.internal.operations +Imports com.sun.xml.internal.ws.api.model Imports DAKOSY_Worker.DEXPRD Imports Microsoft.Win32 Imports SDL.RKSVServer @@ -35,6 +36,10 @@ Public Class frmBelegNeu Private Funktion As Integer Private Betrag As Integer = 0 Private posTerminal As cRKSV_POS + Private dt As DataTable + Private setBreak As Boolean = True + Dim sourceCnTxt As Control = Nothing + Public aktFiliale As Integer = 0 Public aktAbfertigungsNr As Integer = 0 @@ -731,7 +736,7 @@ 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 Dim IsPosPayment As Boolean = False @@ -868,6 +873,12 @@ Public Class frmBelegNeu Me.DialogResult = Windows.Forms.DialogResult.OK 'printBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString) 'Beleg drucken + If IsPosPayment And Betrag > 0 Then + POSpayment(sender, e) + While setBreak + System.Threading.Thread.Sleep(5000) + End While + End If Select Case BELEG.Belegart Case "1" @@ -913,6 +924,8 @@ Public Class frmBelegNeu Me.Cursor = Cursors.Default End If + + Catch ex As Exception Me.DialogResult = Windows.Forms.DialogResult.None Me.Cursor = Cursors.Default @@ -1541,74 +1554,30 @@ Public Class frmBelegNeu MsgBox(response) End Sub - Private Sub btnPOS_Click(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 = "" Then Exit Sub - Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM tblRKSV_POS WHERE [pos_aktiv] = 1 AND [pos_kasse]='" & cboKassen.SelectedItem.Value & "'", "FMZOLL") + dt = SQL.loadDgvBySql("SELECT * FROM tblRKSV_POS WHERE [pos_aktiv] = 1 AND [pos_kasse]='" & cboKassen.SelectedItem.Value & "'", "FMZOLL") Select Case dt.Rows.Count Case 0 MsgBox("Für diese Kasse ist kein aktives POS-Terminal hinterlegt!") Exit Sub Case 1 - - - posTerminal = New cRKSV_POS(dt.Rows(0).Item("pos_id"), dt.Rows(0).Item("pos_kasse")) - - Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True) - Dim Typ As Long - - Try - - ZVTKey.SetValue("Funktion", Funktion, RegistryValueKind.DWord) - Typ = posTerminal.pos_typ - ZVTKey.SetValue("Typ", Typ, RegistryValueKind.DWord) - ZVTKey.SetValue("KasseNr", posTerminal.pos_kassennr, RegistryValueKind.String) - ZVTKey.SetValue("COM", posTerminal.pos_com, RegistryValueKind.String) - ZVTKey.SetValue("IP", posTerminal.pos_ip, RegistryValueKind.String) - ZVTKey.SetValue("Port", CInt(posTerminal.pos_port), RegistryValueKind.DWord) - ZVTKey.SetValue("ComSpeed", CInt(posTerminal.pos_comspeed), RegistryValueKind.DWord) - ZVTKey.SetValue("ComStop", CInt(posTerminal.pos_comstop), RegistryValueKind.DWord) - ZVTKey.SetValue("Lizenz", posTerminal.pos_lizenz, RegistryValueKind.String) - If Funktion = 0 Or Funktion = 4 Then - ZVTKey.SetValue("Betrag", Betrag * 100, RegistryValueKind.DWord) 'CENTbeträge 1€ --> 100 CENT - End If - If Funktion = 3 Then - 'ZVTKey.SetValue("StornoBetrag", CInt("0" & TextBox_Betrag.Text), RegistryValueKind.DWord) - 'ZVTKey.SetValue("StornoBelegNr", CInt("0" & StornoBelegNr.Text), RegistryValueKind.DWord) - End If - If posTerminal.pos_kassendruck Then - ZVTKey.SetValue("Kassedruck", 1, RegistryValueKind.DWord) - Else - ZVTKey.SetValue("Kassedruck", 0, RegistryValueKind.DWord) - 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() - - - Catch ex As Exception - MessageBox.Show("Das Schreiben der Parameter ist fehlgeschlagen: " & ex.Message) - Exit Sub - End Try - ZVTKey.Close() + PosPAyment2() Case Else + ContextMenuStrip1.Items.Clear() + For i As Integer = 0 To dt.Rows.Count - 1 + Dim posMenu = New ToolStripMenuItem() With {.Text = dt.Rows(i).Item("pos_bezeichnung"), .Name = dt.Rows(i).Item("pos_id"), .Font = New Font(Me.Font.FontFamily, Me.Font.Size, FontStyle.Bold)} + AddHandler posMenu.Click, AddressOf mnuItem_Clicked + ContextMenuStrip1.Items.Add(posMenu) + Next + + ContextMenuStrip1.Show(Cursor.Position) End Select @@ -1616,6 +1585,75 @@ Public Class frmBelegNeu End Sub + Private Sub PosPAyment2(Optional posid As Integer = -1) + + + If posid = -1 Then + posTerminal = New cRKSV_POS(dt.Rows(0).Item("pos_id"), dt.Rows(0).Item("pos_kasse")) + Else + posTerminal = New cRKSV_POS(posid, dt.Rows(0).Item("pos_kasse")) + End If + + Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True) + Dim Typ As Long + + Try + + ZVTKey.SetValue("Funktion", Funktion, RegistryValueKind.DWord) + Typ = posTerminal.pos_typ + ZVTKey.SetValue("Typ", Typ, RegistryValueKind.DWord) + ZVTKey.SetValue("KasseNr", posTerminal.pos_kassennr, RegistryValueKind.String) + ZVTKey.SetValue("COM", posTerminal.pos_com, RegistryValueKind.String) + ZVTKey.SetValue("IP", posTerminal.pos_ip, RegistryValueKind.String) + ZVTKey.SetValue("Port", CInt(posTerminal.pos_port), RegistryValueKind.DWord) + ZVTKey.SetValue("ComSpeed", CInt(posTerminal.pos_comspeed), RegistryValueKind.DWord) + ZVTKey.SetValue("ComStop", CInt(posTerminal.pos_comstop), RegistryValueKind.DWord) + ZVTKey.SetValue("Lizenz", posTerminal.pos_lizenz, RegistryValueKind.String) + If Funktion = 0 Or Funktion = 4 Then + ZVTKey.SetValue("Betrag", Betrag * 100, RegistryValueKind.DWord) 'CENTbeträge 1€ --> 100 CENT + End If + If Funktion = 3 Then + 'ZVTKey.SetValue("StornoBetrag", CInt("0" & TextBox_Betrag.Text), RegistryValueKind.DWord) + 'ZVTKey.SetValue("StornoBelegNr", CInt("0" & StornoBelegNr.Text), RegistryValueKind.DWord) + End If + If posTerminal.pos_kassendruck Then + ZVTKey.SetValue("Kassedruck", 1, RegistryValueKind.DWord) + Else + ZVTKey.SetValue("Kassedruck", 0, RegistryValueKind.DWord) + 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() + + + Catch ex As Exception + MessageBox.Show("Das Schreiben der Parameter ist fehlgeschlagen: " & ex.Message) + Exit Sub + End Try + ZVTKey.Close() + + End Sub + + + 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 item IsNot Nothing Then + PosPAyment2(item.Name) + End If + End Sub End Class