From 57dd4748c529f2ba3264eb6c987d6ea7e429d989 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 1 Mar 2023 13:53:56 +0100 Subject: [PATCH] POS in Kassa eingebaut. --- SDL/kassenbuch/frmBelegNeu.Designer.vb | 30 ++--- SDL/kassenbuch/frmBelegNeu.vb | 162 +++++++++++++++++++++++-- 2 files changed, 170 insertions(+), 22 deletions(-) diff --git a/SDL/kassenbuch/frmBelegNeu.Designer.vb b/SDL/kassenbuch/frmBelegNeu.Designer.vb index fcd17e15..639b45ea 100644 --- a/SDL/kassenbuch/frmBelegNeu.Designer.vb +++ b/SDL/kassenbuch/frmBelegNeu.Designer.vb @@ -97,6 +97,7 @@ Partial Class frmBelegNeu Me.Label1 = New System.Windows.Forms.Label() Me.kdkunde = New VERAG_PROG_ALLGEMEIN.KdSearchBox() Me.pnlOPt = New System.Windows.Forms.Panel() + Me.btnPOS = New System.Windows.Forms.Button() Me.cbxBelegOffnen = New System.Windows.Forms.CheckBox() Me.lblStorno = New System.Windows.Forms.Label() Me.Label17 = New System.Windows.Forms.Label() @@ -135,7 +136,6 @@ 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.btnPOS = New System.Windows.Forms.Button() CType(Me.dgvBelegPos, System.ComponentModel.ISupportInitialize).BeginInit() Me.pnl.SuspendLayout() Me.pnlData.SuspendLayout() @@ -1194,6 +1194,20 @@ Partial Class frmBelegNeu Me.pnlOPt.Size = New System.Drawing.Size(624, 92) Me.pnlOPt.TabIndex = 6 ' + 'btnPOS + ' + Me.btnPOS.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnPOS.ForeColor = System.Drawing.Color.Black + Me.btnPOS.Image = Global.SDL.My.Resources.Resources.verag_Card1 + Me.btnPOS.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnPOS.Location = New System.Drawing.Point(486, 33) + Me.btnPOS.Name = "btnPOS" + Me.btnPOS.Padding = New System.Windows.Forms.Padding(0, 0, 5, 0) + Me.btnPOS.Size = New System.Drawing.Size(64, 59) + Me.btnPOS.TabIndex = 16 + Me.btnPOS.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnPOS.UseVisualStyleBackColor = True + ' 'cbxBelegOffnen ' Me.cbxBelegOffnen.AutoSize = True @@ -1647,20 +1661,6 @@ Partial Class frmBelegNeu Me.FlowLayoutPanel2.TabIndex = 3 Me.FlowLayoutPanel2.Visible = False ' - 'btnPOS - ' - Me.btnPOS.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnPOS.ForeColor = System.Drawing.Color.Black - Me.btnPOS.Image = Global.SDL.My.Resources.Resources.verag_Card1 - Me.btnPOS.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnPOS.Location = New System.Drawing.Point(486, 33) - Me.btnPOS.Name = "btnPOS" - Me.btnPOS.Padding = New System.Windows.Forms.Padding(0, 0, 5, 0) - Me.btnPOS.Size = New System.Drawing.Size(64, 59) - Me.btnPOS.TabIndex = 16 - Me.btnPOS.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnPOS.UseVisualStyleBackColor = True - ' 'frmBelegNeu ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) diff --git a/SDL/kassenbuch/frmBelegNeu.vb b/SDL/kassenbuch/frmBelegNeu.vb index 5bf815b1..1f758a11 100644 --- a/SDL/kassenbuch/frmBelegNeu.vb +++ b/SDL/kassenbuch/frmBelegNeu.vb @@ -1,7 +1,11 @@ Imports System.Data.SqlClient Imports System.Drawing.Printing Imports System.Globalization +Imports com.sun.org.apache.xpath.internal.operations +Imports DAKOSY_Worker.DEXPRD +Imports Microsoft.Win32 Imports SDL.RKSVServer +Imports VERAG_PROG_ALLGEMEIN.TESTJSON Public Class frmBelegNeu Implements System.ComponentModel.INotifyPropertyChanged @@ -30,6 +34,7 @@ Public Class frmBelegNeu Private EasyZVT_Worker As System.ComponentModel.BackgroundWorker = New System.ComponentModel.BackgroundWorker() Private Funktion As Integer Private Betrag As Integer = 0 + Private posTerminal As cRKSV_POS Public aktFiliale As Integer = 0 Public aktAbfertigungsNr As Integer = 0 @@ -228,7 +233,7 @@ Public Class frmBelegNeu Label17.Visible = True btnPrint.Text = "Beleg Kopie" & vbNewLine & "drucken" End If - + If BELEG.Belegart = "1" Then EA = "E" Label19.Text = "Kunden-Beleg" @@ -247,7 +252,7 @@ Public Class frmBelegNeu init() End If - + initArt() 'Einnahme/AusgabeBeleg lblMandant_niederlassung.Text = PERSONAL.Niederlassung @@ -281,6 +286,9 @@ Public Class frmBelegNeu cboFiliale.Enabled = False End If + AddHandler EasyZVT_Worker.DoWork, New ComponentModel.DoWorkEventHandler(AddressOf EasyZVT_Async) + AddHandler EasyZVT_Worker.RunWorkerCompleted, New System.ComponentModel.RunWorkerCompletedEventHandler(AddressOf EasyZVT_OnCompleted) + End Sub @@ -308,7 +316,7 @@ Public Class frmBelegNeu Case Else : cbxSplittung.Checked = Not If(BELEG.LKW_Beleg, False) End Select - + aktFiliale = BELEG.FilialenNr aktAbfertigungsNr = BELEG.AbfertigungsNr @@ -723,7 +731,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 @@ -1106,7 +1114,8 @@ Public Class frmBelegNeu ' If EA = "E" Then lblBetrag_Netto.Text = sum.ToString("C") lblBetrag_Steuern.Text = (sum * txtSteuersatz._value).ToString("C") - lblBetrag_Brutto.Text = (sum + sum * txtSteuersatz._value).ToString("C") + Betrag = (sum + sum * txtSteuersatz._value) + lblBetrag_Brutto.Text = (Betrag).ToString("C") ' Else ' lblBetrag_Netto.Text = (-1 * sum).ToString("C") ' lblBetrag_Steuern.Text = (-1 * (sum * txtSteuersatz._value)).ToString("C") @@ -1423,7 +1432,8 @@ Public Class frmBelegNeu End If End Sub - + + Function cntPosFilAbf(FilialenNr, AbfertigungsNr) As Integer For Each b In BELEG.POS @@ -1462,13 +1472,151 @@ Public Class frmBelegNeu End If Next - + 'neu Laden FlowLayoutPanel.Controls.Clear() iniChangePNL() End Sub + Private Sub EasyZVT_Async(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) + ' Programmstart von ZVTStart.exe und warten auf Programmende + + Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True) + Try + Dim ZVTStart As String = ZVTKey.GetValue("Start") + Dim Proc As System.Diagnostics.Process + + If (Len(ZVTStart) > 1) Then + ZVTKey.SetValue("Ergebnis", 1000, RegistryValueKind.DWord) ' Wenn das Ergebnis 1000 bleibt konnte EasyZVT nicht gestartet werden + Proc = System.Diagnostics.Process.Start(ZVTStart) + System.Threading.Thread.Sleep(posTerminal.pos_wartezeit) ' Warte xx Sekunden bis Prozess ZVTStart geladen ist, dann erst anfangen Flag Aktiv abzufragen + While ZVTKey.GetValue("Aktiv") = 1 + System.Threading.Thread.Sleep(500) ' Warten... + + End While + + Else + MsgBox("EasyZVT ist nicht installiert. Bitte im Internet Explorer über www.easyzvt.de/publish installieren") + End If + Catch ex As Exception + MessageBox.Show("Der Programmstart ist fehlgeschlagen: " & ex.Message) + Exit Sub + End Try + ZVTKey.Close() + End Sub + Private Sub EasyZVT_OnCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) + ' Diese Funktion wird automatisch aufgerufen wenn der Worker-Thread seine Arbeit beendet + ' und EasyZVT seine Ausgabewerte in die Registry zurückgeschrieben hat + + + Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True) + Dim response As String = "" + response &= ZVTKey.GetValue("Ergebnis") & vbNewLine + 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() + MsgBox(response) + End Sub + + Private Sub btnPOS_Click(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") + + 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() + + Case Else + + End Select + + + + + End Sub + + End Class