POS Terminal -> Funktion mei mehreren Kassenterminals pro Kassenplatz bzw Kasse.

This commit is contained in:
2023-03-01 16:04:50 +01:00
parent 57dd4748c5
commit a698f87404
3 changed files with 105 additions and 56 deletions

View File

@@ -22,6 +22,7 @@ Partial Class frmBelegNeu
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
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

View File

@@ -156,6 +156,9 @@
<metadata name="FilialenNr.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ContextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

View File

@@ -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