731 lines
22 KiB
VB.net
731 lines
22 KiB
VB.net
Imports System.Drawing.Printing
|
|
Imports System.Security.Authentication.ExtendedProtection
|
|
Imports com.sun.tools.corba.se.idl.constExpr
|
|
Imports DocumentFormat.OpenXml.Drawing.Diagrams
|
|
Imports java.awt.print
|
|
Imports Microsoft.Win32
|
|
Imports TAlex.WPF.Helpers
|
|
|
|
Public Class frmPOSTerminal
|
|
|
|
Dim currentPOS As cRKSV_POS
|
|
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
'Public Sub New(ByVal _rptKundenBeleg, betrag)
|
|
' rptKundenBeleg = _rptKundenBeleg
|
|
' betrag = CInt(betrag)
|
|
|
|
'End Sub
|
|
|
|
Public Sub New(_kasse, _kassenId)
|
|
InitializeComponent()
|
|
kasse = _kasse
|
|
kassenID = _kassenId
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
' Erstellt durch Jan Groetzner, Groetzner Unternehmensberatung, Seevetal
|
|
' Version: 02.03.2020
|
|
' Kontakt: easyzvt@groetzner.de
|
|
|
|
' Dieser Quellcode dient als Beispielimplementierung zur Einbindung von EasyZVT in die eigene Kassenanwendung.
|
|
' Der Code und auch Teile davon dürfen frei kopiert und in der Kassenanwendung verwendet werden
|
|
|
|
Private EasyZVT_Worker As System.ComponentModel.BackgroundWorker = New System.ComponentModel.BackgroundWorker()
|
|
Private Funktion As Integer
|
|
Private rptKundenBeleg As rptKundenBeleg
|
|
Private Betrag As Integer
|
|
Private kasse As String
|
|
Private kassenID As Integer
|
|
|
|
Private WithEvents PDoc As Printing.PrintDocument
|
|
|
|
Private Sub SetRegistryParameter()
|
|
'Funktion holt Werte direkt aus der Oberfläche (TextBox_...) und schreibt diese in die Registry als Eingabeparameter für EasyZVT.
|
|
'Im wahren Leben stehen diese Werte in Datenbankeinträgen der Stammdatenverwaltung in der Hauptanwendung
|
|
|
|
Dim ZVTKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\GUB\ZVT", True)
|
|
Dim TypSelected As String
|
|
Dim Typ As Long
|
|
|
|
If ZVTKey Is Nothing Then
|
|
MsgBox("EasyZVT ist nicht installiert." & vbNewLine & "In der Master-Kasse unter POS-Terminal als Systemadministrator installieren!")
|
|
Exit Sub
|
|
End If
|
|
|
|
Try
|
|
|
|
ZVTKey.SetValue("Funktion", Funktion, RegistryValueKind.DWord)
|
|
TypSelected = Strings.Left(cbx_Typ.Text, 2).Replace(":", "")
|
|
Typ = TypSelected
|
|
ZVTKey.SetValue("Typ", Typ, RegistryValueKind.DWord)
|
|
ZVTKey.SetValue("KasseNr", txt_KasseNr.Text, RegistryValueKind.String)
|
|
ZVTKey.SetValue("COM", cbx_COM.Text, RegistryValueKind.String)
|
|
ZVTKey.SetValue("IP", txt_IP.Text, RegistryValueKind.String)
|
|
ZVTKey.SetValue("Port", CInt(txt_Port.Text), RegistryValueKind.DWord)
|
|
ZVTKey.SetValue("ComSpeed", CInt(cbx_ComSpeed.Text), RegistryValueKind.DWord)
|
|
ZVTKey.SetValue("ComStop", CInt(cbx_ComStop.Text), RegistryValueKind.DWord)
|
|
ZVTKey.SetValue("Lizenz", txt_Lizenz.Text, RegistryValueKind.String)
|
|
|
|
If txtPfad.Text <> "" Then
|
|
ZVTKey.SetValue("Protokollpfad", txtPfad.Text, RegistryValueKind.String)
|
|
End If
|
|
|
|
|
|
If CheckBox1.Checked And txtPfad.Text <> "" Then
|
|
ZVTKey.SetValue("Ausgabepfad", txtPfad.Text, RegistryValueKind.String)
|
|
End If
|
|
|
|
|
|
Select Case Funktion
|
|
Case 0, 4
|
|
Betrag = CInt("0" & txt_Betrag.Text)
|
|
ZVTKey.SetValue("Betrag", Betrag, RegistryValueKind.DWord)
|
|
|
|
Case 3
|
|
ZVTKey.SetValue("StornoBetrag", CInt("0" & txt_Betrag.Text), RegistryValueKind.DWord)
|
|
ZVTKey.SetValue("StornoBelegNr", CInt("0" & StornoBelegNr.Text), RegistryValueKind.DWord)
|
|
|
|
Case 12 'Sprache
|
|
ZVTKey.SetValue("Sprache", cbx_Sprache.Text, RegistryValueKind.DWord)
|
|
|
|
End Select
|
|
|
|
If cbx_Kassedruck.Checked 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 cbx_Autodruck.Checked Then
|
|
ZVTKey.SetValue("DemoAutodruck", 1, RegistryValueKind.DWord)
|
|
Else
|
|
ZVTKey.SetValue("DemoAutodruck", 0, RegistryValueKind.DWord)
|
|
End If
|
|
If cbx_Dummy.Checked Then
|
|
ZVTKey.SetValue("DemoDummydruck", 1, RegistryValueKind.DWord)
|
|
Else
|
|
ZVTKey.SetValue("DemoDummydruck", 0, RegistryValueKind.DWord)
|
|
End If
|
|
btn_Autorisierung.Enabled = False
|
|
btn_Diagnose.Enabled = False
|
|
btn_Tagesabschluss.Enabled = False
|
|
btn_Storno.Enabled = False
|
|
btn_Gutschrift.Enabled = False
|
|
btn_Sprache.Enabled = False
|
|
btn_Druckwiederh.Enabled = False
|
|
btn_Kontostand.Enabled = False
|
|
|
|
|
|
txt_ErgebnisText.Text = "EasyZVT-Zahlung aktiv"
|
|
TextBox_Aktiv.Text = "warte auf Aktiv=0"
|
|
|
|
Catch ex As Exception
|
|
MessageBox.Show("Das Schreiben der Parameter ist fehlgeschlagen: " & ex.Message)
|
|
Exit Sub
|
|
End Try
|
|
ZVTKey.Close()
|
|
|
|
EasyZVT_Worker.RunWorkerAsync()
|
|
|
|
End Sub
|
|
|
|
Private Sub Autorisierung()
|
|
If txt_Betrag.Text = "" Then
|
|
txt_Betrag.Focus()
|
|
Exit Sub
|
|
End If
|
|
Funktion = 0
|
|
SetRegistryParameter()
|
|
|
|
|
|
End Sub
|
|
Private Sub Button_Autorisierung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Autorisierung.Click
|
|
'Zahlung per Klick auslösen
|
|
Autorisierung()
|
|
End Sub
|
|
Private Sub TextBox_Betrag_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
|
|
|
|
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(currentPOS.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...
|
|
If TextBox_Aktiv.BackColor = Color.Gray Then ' kleine Spielerei :-)
|
|
TextBox_Aktiv.BackColor = Color.Red
|
|
Else
|
|
TextBox_Aktiv.BackColor = Color.Gray
|
|
End If
|
|
End While
|
|
TextBox_Aktiv.BackColor = Color.Gray
|
|
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)
|
|
TextBox_Aktiv.Text = ""
|
|
txt_Ergebnis.Text = ZVTKey.GetValue("Ergebnis")
|
|
txt_ErgebnisText.Text = ZVTKey.GetValue("ErgebnisText")
|
|
txt_Drucktext.Text = Replace(ZVTKey.GetValue("Drucktext"), vbLf, vbCrLf)
|
|
txt_Drucktext2.Text = Replace(ZVTKey.GetValue("Drucktext2"), vbLf, vbCrLf)
|
|
|
|
txt_BelegNr.Text = ZVTKey.GetValue("BelegNr").ToString
|
|
txt_Kartentyp.Text = ZVTKey.GetValue("Kartentyp").ToString
|
|
txt_Betrag.Text = ""
|
|
|
|
If cbx_Autodruck.Checked Then
|
|
If Len(txt_Drucktext.Text) > 1 Then
|
|
btn_Kundenbeleg_drucken.PerformClick()
|
|
End If
|
|
If Len(txt_Drucktext2.Text) > 1 Then
|
|
btn_Haendlerbeleg_drucken.PerformClick()
|
|
End If
|
|
|
|
End If
|
|
|
|
txt_Betrag.Focus()
|
|
btn_Autorisierung.Enabled = True
|
|
btn_Diagnose.Enabled = True
|
|
btn_Tagesabschluss.Enabled = True
|
|
btn_Storno.Enabled = True
|
|
btn_Gutschrift.Enabled = True
|
|
btn_Sprache.Enabled = True
|
|
btn_Druckwiederh.Enabled = True
|
|
btn_Kontostand.Enabled = True
|
|
ZVTKey.Close()
|
|
End Sub
|
|
|
|
|
|
Private Sub Button_Diagnose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Diagnose.Click
|
|
Funktion = 1
|
|
SetRegistryParameter()
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button_Tagesabschluss_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Tagesabschluss.Click
|
|
Funktion = 2
|
|
SetRegistryParameter()
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button_Storno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Storno.Click
|
|
If txt_Betrag.Text = "" Then
|
|
txt_Betrag.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
If StornoBelegNr.Text = "" Then
|
|
StornoBelegNr.Focus()
|
|
Exit Sub
|
|
End If
|
|
|
|
Funktion = 3
|
|
SetRegistryParameter()
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button_Gutschrift_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Gutschrift.Click
|
|
If txt_Betrag.Text = "" Then
|
|
txt_Betrag.Focus()
|
|
Exit Sub
|
|
End If
|
|
Funktion = 4
|
|
SetRegistryParameter()
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub btn_Druckwiederh_Click(sender As Object, e As EventArgs) Handles btn_Druckwiederh.Click
|
|
Funktion = 5
|
|
SetRegistryParameter()
|
|
|
|
End Sub
|
|
|
|
Private Sub btn_Kontostand_Click(sender As Object, e As EventArgs) Handles btn_Kontostand.Click
|
|
Funktion = 7
|
|
SetRegistryParameter()
|
|
|
|
End Sub
|
|
|
|
Private Sub btn_Sprache_Click(sender As Object, e As EventArgs) Handles btn_Sprache.Click
|
|
Funktion = 13
|
|
SetRegistryParameter()
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub PDoc_SeiteDrucken(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PDoc.PrintPage
|
|
|
|
'Dim Textfont As Font = TextBox_Kassenbon.Font
|
|
Dim Hoehe, Breite As Integer
|
|
Dim Links, Oben As Integer
|
|
With PDoc.DefaultPageSettings
|
|
'Hoehe = .PaperSize.Height - .Margins.Top - .Margins.Bottom
|
|
'Breite = .PaperSize.Width - .Margins.Left - .Margins.Right
|
|
Hoehe = 500 ' 5,00 Zoll
|
|
Breite = 270 ' = 2,70 zoll
|
|
'Links = PDoc.DefaultPageSettings.Margins.Left
|
|
'Oben = PDoc.DefaultPageSettings.Margins.Top
|
|
Links = 10
|
|
Oben = 10
|
|
End With
|
|
' Einen Rahmen zeichnen
|
|
Dim Rahmen As New Rectangle(Links, Oben, Breite, Hoehe)
|
|
e.Graphics.DrawRectangle(Pens.Blue, Rahmen)
|
|
' In den Rahmen den Kassenbontext zeichnen
|
|
Dim StrFormat As StringFormat
|
|
StrFormat = New StringFormat(StringFormatFlags.LineLimit)
|
|
'e.Graphics.DrawString(TextBox_Kassenbon.Text, Textfont, Brushes.Black, Rahmen, StrFormat)
|
|
e.HasMorePages = False
|
|
|
|
End Sub
|
|
Private Sub PopulateInstalledPrintersCombo()
|
|
' Add list of installed printers found to the combo box.
|
|
' The pkInstalledPrinters string will be used to provide the display string.
|
|
Dim i As Integer
|
|
Dim pkInstalledPrinters As String
|
|
|
|
For i = 0 To PrinterSettings.InstalledPrinters.Count - 1
|
|
pkInstalledPrinters = PrinterSettings.InstalledPrinters.Item(i)
|
|
comboInstalledPrinters.Items.Add(pkInstalledPrinters)
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub comboInstalledPrinters_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
|
|
End Sub
|
|
|
|
Sub initDgv()
|
|
With dgvTerminals
|
|
|
|
.Columns.Clear()
|
|
|
|
.SET_SQL("SELECT [pos_id],[pos_aktiv],[pos_kassennr],[pos_bezeichnung] ,[pos_kasse]
|
|
,[pos_ip] FROM [VERAG].[dbo].[tblRKSV_POS] WHERE [pos_kasse] =" & kassenID, "FMZOLL")
|
|
|
|
.LOAD()
|
|
|
|
If .Columns.Count < 1 Then Exit Sub
|
|
|
|
|
|
.Columns("pos_id").Visible = False
|
|
.Columns("pos_bezeichnung").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft
|
|
.Columns("pos_bezeichnung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns("pos_bezeichnung").HeaderText = "Terminal"
|
|
.Columns("pos_kassennr").Width = 40
|
|
.Columns("pos_kassennr").HeaderText = "K-Nr"
|
|
.Columns("pos_aktiv").Width = 25
|
|
.Columns("pos_aktiv").HeaderText = ""
|
|
.Columns("pos_kasse").Visible = False
|
|
.Columns("pos_ip").HeaderText = "IP-Adresse"
|
|
.Columns("pos_ip").Width = 100
|
|
|
|
End With
|
|
End Sub
|
|
|
|
Private Sub frmPOSTerminal_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
|
|
Try
|
|
btnPfad.Visible = True
|
|
Text = kasse & " - POS Terminal einstellen "
|
|
lblWarning.Text = ""
|
|
btnNew.Enabled = False
|
|
initDgv()
|
|
|
|
AddHandler EasyZVT_Worker.DoWork, New System.ComponentModel.DoWorkEventHandler(AddressOf EasyZVT_Async)
|
|
AddHandler EasyZVT_Worker.RunWorkerCompleted, New System.ComponentModel.RunWorkerCompletedEventHandler(AddressOf EasyZVT_OnCompleted)
|
|
|
|
If dgvTerminals.Columns.Count < 1 Then
|
|
loadCurrentPOS()
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MessageBox.Show("Fehler beim Einlesen der Standardwerte: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub loadCurrentPOS()
|
|
|
|
btnNew.Enabled = False
|
|
|
|
If dgvTerminals.SelectedRows.Count > 0 Then
|
|
|
|
currentPOS = New cRKSV_POS(dgvTerminals.SelectedRows(0).Cells("pos_Id").Value, dgvTerminals.SelectedRows(0).Cells("pos_kasse").Value)
|
|
|
|
txt_KassenBez.Text = currentPOS.pos_bezeichnung
|
|
cbx_aktiv.Checked = currentPOS.pos_aktiv
|
|
txt_Wartezeit.Text = currentPOS.pos_wartezeit / 1000
|
|
txt_KasseNr.Text = currentPOS.pos_kassennr
|
|
cbx_COM.Text = currentPOS.pos_com
|
|
txt_IP.Text = currentPOS.pos_ip
|
|
txt_Port.Text = currentPOS.pos_port
|
|
cbx_ComSpeed.Text = currentPOS.pos_comspeed
|
|
cbx_ComStop.Text = currentPOS.pos_comstop
|
|
txt_Lizenz.Text = currentPOS.pos_lizenz
|
|
txtFIBU.Text = currentPOS.pos_FIBU
|
|
txtPfad.Text = currentPOS.pos_Protokollpfad
|
|
CheckBox1.Checked = currentPOS.pos_XML
|
|
|
|
|
|
If currentPOS.pos_kassendruck Then
|
|
cbx_Kassedruck.Checked = True
|
|
Else
|
|
cbx_Kassedruck.Checked = False
|
|
End If
|
|
|
|
cbx_Typ.SelectedIndex = cbx_Typ.FindString(currentPOS.pos_typ)
|
|
PopulateInstalledPrintersCombo()
|
|
'comboInstalledPrinters.SelectedIndex = comboInstalledPrinters.FindString(ZVTKey.GetValue("DemoDruckername", ""))
|
|
If Not currentPOS.pos_demoausdruck Then
|
|
cbx_Autodruck.Checked = False
|
|
Else
|
|
cbx_Autodruck.Checked = True
|
|
End If
|
|
|
|
If Not currentPOS.pos_demodummyausdruck Then
|
|
cbx_Dummy.Checked = False
|
|
Else
|
|
cbx_Dummy.Checked = True
|
|
End If
|
|
|
|
|
|
For Each tempTabPages As TabPage In TabControl1.TabPages
|
|
If Not tempTabPages.Name = "TabPage3" Then
|
|
For Each c As Control In tempTabPages.Controls
|
|
If TypeOf (c) Is CheckBox Then
|
|
AddHandler CType(c, CheckBox).CheckedChanged, AddressOf SomethingChanged
|
|
ElseIf TypeOf (c) Is TextBox Then
|
|
AddHandler CType(c, TextBox).TextChanged, AddressOf SomethingChanged
|
|
ElseIf TypeOf (c) Is ComboBox Then
|
|
AddHandler CType(c, ComboBox).SelectedValueChanged, AddressOf SomethingChanged
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub savePOS()
|
|
|
|
|
|
If dgvTerminals.SelectedRows.Count > 0 Then
|
|
If Not checkConstraints() Then
|
|
Exit Sub
|
|
End If
|
|
|
|
currentPOS.pos_kassennr = txt_KasseNr.Text
|
|
currentPOS.pos_aktiv = cbx_aktiv.Checked
|
|
currentPOS.pos_wartezeit = CInt(txt_Wartezeit.Text) * 1000
|
|
currentPOS.pos_com = cbx_COM.Text
|
|
currentPOS.pos_ip = txt_IP.Text
|
|
currentPOS.pos_port = txt_Port.Text
|
|
currentPOS.pos_comspeed = cbx_ComSpeed.Text
|
|
currentPOS.pos_comstop = cbx_ComStop.Text
|
|
currentPOS.pos_lizenz = txt_Lizenz.Text
|
|
currentPOS.pos_FIBU = txtFIBU.Text
|
|
currentPOS.pos_Protokollpfad = txtPfad.Text
|
|
currentPOS.pos_XML = CheckBox1.Checked
|
|
If cbx_Kassedruck.Checked Then
|
|
currentPOS.pos_kassendruck = True
|
|
Else
|
|
currentPOS.pos_kassendruck = False
|
|
End If
|
|
|
|
currentPOS.pos_typ = cbx_Typ.FindString(cbx_Typ.SelectedIndex)
|
|
PopulateInstalledPrintersCombo()
|
|
'comboInstalledPrinters.SelectedIndex = comboInstalledPrinters.FindString(ZVTKey.GetValue("DemoDruckername", ""))
|
|
If Not cbx_Autodruck.Checked Then
|
|
currentPOS.pos_demoausdruck = False
|
|
Else
|
|
currentPOS.pos_demoausdruck = True
|
|
End If
|
|
|
|
If Not cbx_Dummy.Checked Then
|
|
currentPOS.pos_demodummyausdruck = False
|
|
Else
|
|
currentPOS.pos_demodummyausdruck = True
|
|
End If
|
|
|
|
|
|
currentPOS.SAVE()
|
|
btnNew.Enabled = False
|
|
End If
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvTerminals_SelectionChanged(sender As Object, e As EventArgs) Handles dgvTerminals.SelectionChanged
|
|
loadCurrentPOS()
|
|
End Sub
|
|
|
|
Private Sub SomethingChanged(sender As Object, e As EventArgs)
|
|
btnNew.Enabled = True
|
|
End Sub
|
|
|
|
|
|
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
|
|
|
|
Dim input = InputBox("Bitte geben Sie die Bezeichnung des neuen Terminals ein ein:", "POS-Terminal anlegen")
|
|
If input <> "" Then
|
|
If checkNameIsValid(input) Then
|
|
currentPOS = New cRKSV_POS(input, kassenID, True)
|
|
initDgv()
|
|
Else
|
|
MsgBox("Für die Kassa" & kasse.ToString & " existiert bereits ein POS-Terminal " & input)
|
|
End If
|
|
|
|
Else
|
|
MsgBox("Keine Bezeichnung angegeben!")
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Function checkNameIsValid(name As String) As Boolean
|
|
|
|
If dgvTerminals.Rows.Count = 0 Then Return True
|
|
|
|
For Each row As DataGridViewRow In dgvTerminals.Rows
|
|
If Not IsDBNull(row.Cells("pos_bezeichnung").Value) Then
|
|
If row.Cells("pos_bezeichnung").Value.ToLower = name.ToLower Then
|
|
Return False
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
Return True
|
|
|
|
End Function
|
|
|
|
Private Sub btnNew_Click(sender As Object, e As EventArgs) Handles btnNew.Click
|
|
savePOS()
|
|
dgvTerminals.GetOrder()
|
|
initDgv()
|
|
dgvTerminals.SetOrder()
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
|
If dgvTerminals.SelectedRows.Count > 0 Then
|
|
|
|
If vbYes = MsgBox("Möchten Sie das Terminal " & dgvTerminals.SelectedRows(0).Cells("pos_bezeichnung").Value & " wirklich löschen?", vbYesNo) Then
|
|
currentPOS.delete()
|
|
initDgv()
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub LinkLabel2_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked
|
|
Dim webAddress As String = "http://www.easyzvt.de/publish31/index.htm"
|
|
Process.Start(webAddress)
|
|
End Sub
|
|
|
|
Private Sub Button_Kundenbeleg_drucken_Click(sender As System.Object, e As System.EventArgs) Handles btn_Kundenbeleg_drucken.Click
|
|
|
|
Dim PDlg As PrintDialog = New PrintDialog()
|
|
PDlg.UseEXDialog = True ' Notwendig für x64
|
|
PDoc = New Printing.PrintDocument()
|
|
AddHandler PDoc.PrintPage, AddressOf PDoc_SeiteDrucken
|
|
|
|
If cbx_Dummy.Checked Then
|
|
txt_Kassenbon.Text = "Kassenbon EasyZVT DemoApp" & vbCrLf
|
|
txt_Kassenbon.Text &= "KasseNr: " & txt_KasseNr.Text & vbCrLf & vbCrLf
|
|
If Betrag > 0 And Funktion = 0 Then
|
|
txt_Kassenbon.Text &= "Testartikel Menge 1 Betrag " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
|
|
txt_Kassenbon.Text &= "Gesamtbetrag " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
|
|
txt_Kassenbon.Text &= "Kartenzahlung " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
|
|
End If
|
|
|
|
txt_Kassenbon.Text &= txt_Drucktext.Text ' Hier den Kundenbeleg hinzufügen
|
|
Else
|
|
txt_Kassenbon.Text = txt_Drucktext.Text
|
|
End If
|
|
|
|
If comboInstalledPrinters.SelectedIndex <> -1 Then
|
|
PDoc.PrinterSettings.PrinterName = comboInstalledPrinters.Text
|
|
PDoc.Print()
|
|
Else
|
|
PDlg.Document = PDoc
|
|
If PDlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
|
|
PDoc.Print()
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub Button_Haendlerbeleg_drucken_Click(sender As System.Object, e As System.EventArgs) Handles btn_Haendlerbeleg_drucken.Click
|
|
|
|
Dim PDlg As PrintDialog = New PrintDialog()
|
|
PDlg.UseEXDialog = True ' Notwendig für x64
|
|
PDoc = New Printing.PrintDocument()
|
|
AddHandler PDoc.PrintPage, AddressOf PDoc_SeiteDrucken
|
|
|
|
If cbx_Dummy.Checked Then
|
|
txt_Kassenbon.Text = "Kassenbon EasyZVT DemoApp" & vbCrLf
|
|
txt_Kassenbon.Text &= "KasseNr: " & txt_KasseNr.Text & vbCrLf & vbCrLf
|
|
If Betrag > 0 And Funktion = 0 Then
|
|
txt_Kassenbon.Text &= "Testartikel Menge 1 Betrag " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
|
|
txt_Kassenbon.Text &= "Gesamtbetrag " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
|
|
txt_Kassenbon.Text &= "Kartenzahlung " & (CDbl(Betrag) / 100.0).ToString("###,##0.00") & vbCrLf
|
|
End If
|
|
|
|
txt_Kassenbon.Text &= txt_Drucktext2.Text ' Hier den Händlerbeleg hinzufügen
|
|
Else
|
|
txt_Kassenbon.Text &= txt_Drucktext.Text
|
|
End If
|
|
|
|
If comboInstalledPrinters.SelectedIndex <> -1 Then
|
|
PDoc.PrinterSettings.PrinterName = comboInstalledPrinters.Text
|
|
PDoc.Print()
|
|
Else
|
|
PDlg.Document = PDoc
|
|
If PDlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
|
|
PDoc.Print()
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub ComboBox_COM_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbx_COM.SelectedValueChanged
|
|
|
|
If cbx_COM.SelectedItem Is Nothing Then
|
|
Exit Sub
|
|
End If
|
|
|
|
'If cbx_COM.SelectedItem.ToString = "LAN" Then
|
|
' txt_IP.Enabled = True
|
|
' txt_Port.Enabled = True
|
|
' cbx_ComSpeed.Enabled = False
|
|
' cbx_ComSpeed.SelectedIndex = -1
|
|
' cbx_ComStop.Enabled = False
|
|
' cbx_ComStop.SelectedIndex = -1
|
|
|
|
'Else
|
|
' txt_IP.Enabled = False
|
|
' 'txt_IP.Clear()
|
|
' txt_Port.Enabled = False
|
|
' 'txt_Port.Clear()
|
|
' cbx_ComSpeed.Enabled = True
|
|
' cbx_ComStop.Enabled = True
|
|
|
|
'End If
|
|
End Sub
|
|
|
|
Private Function checkConstraints()
|
|
|
|
Dim valuesOK As Boolean = False
|
|
|
|
If CInt(txt_Wartezeit.Text) < 1 Then
|
|
lblWarning.Text = " Wartezeit muss größer als 0 sein! "
|
|
Return valuesOK
|
|
End If
|
|
|
|
If cbx_COM.SelectedItem Is Nothing Then
|
|
lblWarning.Text = " Anschluss auswählen "
|
|
Return valuesOK
|
|
End If
|
|
|
|
If cbx_Typ.SelectedItem Is Nothing Then
|
|
lblWarning.Text = " Typ auswählen "
|
|
Return valuesOK
|
|
End If
|
|
|
|
If Not IsNumeric(txtFIBU.Text) Or txtFIBU.Text.Length <> 4 Then
|
|
lblWarning.Text = " FIBU Konto (4-stellig) hinterlegen!"
|
|
Return valuesOK
|
|
End If
|
|
|
|
If cbx_COM.SelectedItem.ToString = "LAN" Then
|
|
If txt_IP.Text = "" Then
|
|
lblWarning.Text = " IP-Adresse hinterlegen! "
|
|
Return valuesOK
|
|
Else
|
|
|
|
If CInt(SQL.getValueTxtBySql("SELECT count(*) FROM tblRKSV_POS WHERE pos_ip='" & txt_IP.Text & "' AND [pos_aktiv] = 1", "FMZOLL")) > 1 Then
|
|
lblWarning.Text = " IP Adresse ist bereits vergeben! "
|
|
Return valuesOK
|
|
End If
|
|
|
|
If txt_Port.Text = "" Then
|
|
lblWarning.Text = " Port hinterlegen! "
|
|
Return valuesOK
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
If cbx_ComSpeed.SelectedItem = "" Then
|
|
lblWarning.Text = " Baudrate hinterlegen! "
|
|
Return valuesOK
|
|
Else
|
|
If cbx_ComStop.SelectedItem = "" Then
|
|
lblWarning.Text = " Com Stop hinterlegen! "
|
|
Return valuesOK
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
lblWarning.Text = ""
|
|
valuesOK = True
|
|
Return valuesOK
|
|
|
|
End Function
|
|
|
|
Private Sub btnPfad_Click(sender As Object, e As EventArgs) Handles btnPfad.Click
|
|
Dim dialog As New FolderBrowserDialog()
|
|
If txtPfad.Text = "" Then
|
|
dialog.RootFolder = Environment.SpecialFolder.Desktop
|
|
dialog.SelectedPath = "C:\"
|
|
dialog.Description = "Pfad für Protokolldatei auswählen"
|
|
|
|
Else
|
|
dialog.SelectedPath = txtPfad.Text
|
|
dialog.Description = "Pfad für Protokolldatei auswählen"
|
|
|
|
End If
|
|
|
|
If dialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
|
|
txtPfad.Text = dialog.SelectedPath
|
|
End If
|
|
|
|
End Sub
|
|
End Class |