Files
SDL/SDL/kassenbuch/frmBelegNeu.vb

1671 lines
76 KiB
VB.net

Imports System.Data.SqlClient
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
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
Public Class frmBelegNeu
Implements System.ComponentModel.INotifyPropertyChanged
Dim dgvInitWait As Boolean = False
' Private bindingSDL As New BindingSource
' Private dataAdapterLKW As New SqlDataAdapter
Dim PROG As New cProgramFunctions
Dim kundenSQL As New kundenSQL
Dim SQL As New SQL
'Public firma As String = "VERAG"
Dim PERSONAL As cPersonal
Dim PERSONAL_LG As cPersonal
Dim KASSE As New cRKSV_Kasse
Dim EA As String = "E"
Public BELEG As EABeleg = Nothing
' Dim ART As String = "E"
Public AvisoID = Nothing
Public SendungID = Nothing
' Private gebucht As Boolean = False
Public Event LOADED()
Public warnClose As Boolean = True
Dim allowPrint = False
Public printErfolgreich = False
Public defaultPrinter = ""
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
Private dt As DataTable
Private setBreak As Boolean = True
Dim sourceCnTxt As Control = Nothing
Public aktFiliale As Integer = 0
Public aktAbfertigungsNr As Integer = 0
Public Sub New(PERSONAL As cPersonal, PERSONAL_LG As cPersonal, EA As String)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.PERSONAL = PERSONAL
Me.PERSONAL_LG = PERSONAL_LG
Me.EA = EA
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Public Sub New(PERSONAL As cPersonal, PERSONAL_LG As cPersonal, Mandant As String, Niederlassung As String, Benutzer As Integer, BelegNr As Integer, BelegDat As Date)
InitializeComponent()
Me.PERSONAL = PERSONAL
Me.PERSONAL_LG = PERSONAL_LG
BELEG = New EABeleg("LOAD", Mandant, Niederlassung, Benutzer, BelegNr, BelegDat)
End Sub
Public Sub AddDusche(print As Boolean)
' Dim anz = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
Dim p As EABelegPositionen
cboSteuerschlüssel.changeItem(2512)
p = New EABelegPositionen
p.Mandant = PERSONAL.Mandant
p.Niederlassung = PERSONAL.Niederlassung
p.Benutzer = PERSONAL.ID
'p.Benutzer = BenutzerNr
p.BelegDat = Now
p.BelegNr = BELEG.BelegNr
p.PreislistenNr = 4
p.PreislistenPos = 19
p.LeistungsNr = 800
p.LeistungsBez = "Dusche"
p.Leistungsbeschreibung = "Dusche"
p.Preis = 1.67
p.Abfertigungsart = 0
p.Anzahl = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
p.Betrag = p.Anzahl * p.Preis
BELEG.POS.Add(p)
' cntr.BackColor = Color.Yellow
initDGVBelegPos()
If print Then allowPrint = True : btnPrint.PerformClick()
End Sub
Public Function AddLeihgeld(print As Boolean, BELEG_TMP As EABeleg, POS_ADD As List(Of EABelegPositionen)) As Boolean
BELEG = BELEG_TMP
For Each p In POS_ADD
BELEG.POS.Add(p)
Next
BELEG.LKW_Beleg = True
cboSteuerschlüssel.changeItem(BELEG.Steuerschlüssel)
init()
initDGVBelegPos()
If print Then allowPrint = True : btnPrint.PerformClick()
Return printErfolgreich
End Function
Public Property Gebucht_prop As Boolean
Get
Return BELEG.gebucht
End Get
Set(value As Boolean)
BELEG.gebucht = value : RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs("Gebucht_prop"))
End Set
End Property
' Dim BelegNr As Integer = -1 ' = 664
' Dim Benutzer As Integer = 226
' Public WithEvents bindingBELEG As New cBinding("FMZOLL") 'fürs Binding
Public Event PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) _
Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
Private Sub frmBeleg_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
If warnClose Then
If Not BELEG.gebucht Then
Select Case MsgBox("Beleg noch nicht verbucht! Fenster schließen?", vbYesNoCancel)
Case vbYes : e.Cancel = False ' Case vbYes : SQL.doSQL("DELETE FROM [tblEABelegnummer] WHERE BelegNr=" & BELEG.BelegNr & " AND Benutzer='" & BELEG.Benutzer & "'", "FMZOLL") : e.Cancel = False
Case vbNo, vbCancel : e.Cancel = True
End Select
End If
End If
End Sub
Private Sub frmBeleg_Load(sender As Object, e As EventArgs) Handles Me.Load
If PERSONAL Is Nothing Then
MsgBox("Fehler beim Laden der Personaldaten!")
Me.Close()
End If
kdkunde.initKdBox(Me, lblkundeKdNr)
kdFrachtf.initKdBox(Me, lblAtrKdNr)
cboSteuerschlüssel.fillWithSQL("SELECT tblSteuersätze.Nr, tblSteuersätze.Beschreibung FROM tblSteuersätze ORDER BY tblSteuersätze.Nr; ", False, "FMZOLL")
cboFiliale.fillWithSQL("SELECT Filialen.FilialenNr, Filialen.Grenzstelle FROM Filialen WHERE (((Filialen.FilialenNr)>=4800) AND ((Filialen.Fil_Status)='A')) ORDER BY Filialen.FilialenNr;", True, "FMZOLL")
cboSteuerschlüssel.changeItem(3520)
cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] WHERE ([rksv_firma]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' OR rksv_id IN('" & PERSONAL.cRKSV_KasseID & "')) ", False, "FMZOLL")
If cboKassen.Items.Count > 0 Then cboKassen.SelectedIndex = 0 'default
If PERSONAL.cRKSV_KasseID > 0 Then
cboKassen.changeItem(CStr(PERSONAL.cRKSV_KasseID))
Else
Select Case PERSONAL.Niederlassung
Case "SUB"
cboKassen.changeItem(1)
Case "WAI", "SBG"
cboKassen.changeItem(8)
Case "NKD"
cboKassen.changeItem(4)
Case "SUA"
cboKassen.changeItem(5)
Case Else
MsgBox("Fehler: Dem Benutzer ist noch keine RKSV-Kasse bze. keine Niederlassung zugeordnet!")
End Select
End If
KASSE.LOAD(cboKassen._value)
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA <> KASSE.rksv_firma Then
kdkunde._UseFIRMA = KASSE.rksv_firma
End If
cboFrachtf_Sgut.Items.Clear()
cboFrachtf_Sgut.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("S - Sammelgut", "S"))
cboFrachtf_Sgut.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("K - Komplett", "K"))
cboFrachtf_Sgut.SelectedIndex = 0
' Select Case PERSONAL.Niederlassung
' Case "SUB" : cboFiliale.changeItem(4803)
' Case "SBG" : cboFiliale.changeItem(5003)
' Case "SUW" : cboFiliale.changeItem(4801)
' Case "SUA" : cboFiliale.changeItem(4801)
' ' Case "NKD" : cboFiliale.changeItem(000)
' Case "WAI" : cboFiliale.changeItem(5103)
' End Select
AddHandler kdkunde.PropertyChanged, Sub()
If kdkunde.KdNr > 0 Then
lblKunde_Strasse.Text = kdkunde.KdData_ADRESSEN.Straße
lblKunde_Land.Text = kdkunde.KdData_ADRESSEN.LandKz
lblKunde_Plz.Text = kdkunde.KdData_ADRESSEN.PLZ
lblKunde_Ort.Text = kdkunde.KdData_ADRESSEN.Ort
lblKunde_UstId_Land.Text = kdkunde.KdData_ADRESSEN.UstIdKz
lblKunde_UstId_Nr.Text = kdkunde.KdData_ADRESSEN.UstIdNr
btnOfferte.Visible = True
Else
btnOfferte.Visible = False
End If
If lblKunde_Strasse.Text.Length > lblKunde_Strasse.MaxLength Then lblKunde_Strasse.Text = lblKunde_Strasse.Text.Substring(0, lblKunde_Strasse.MaxLength)
If lblKunde_Land.Text.Length > lblKunde_Land.MaxLength Then lblKunde_Land.Text = lblKunde_Land.Text.Substring(0, lblKunde_Land.MaxLength)
If lblKunde_Plz.Text.Length > lblKunde_Plz.MaxLength Then lblKunde_Plz.Text = lblKunde_Plz.Text.Substring(0, lblKunde_Plz.MaxLength)
If lblKunde_Ort.Text.Length > lblKunde_Ort.MaxLength Then lblKunde_Ort.Text = lblKunde_Ort.Text.Substring(0, lblKunde_Ort.MaxLength)
If lblKunde_UstId_Land.Text.Length > lblKunde_UstId_Land.MaxLength Then lblKunde_UstId_Land.Text = lblKunde_UstId_Land.Text.Substring(0, lblKunde_UstId_Land.MaxLength)
If lblKunde_UstId_Nr.Text.Length > lblKunde_UstId_Nr.MaxLength Then lblKunde_UstId_Nr.Text = lblKunde_UstId_Nr.Text.Substring(0, lblKunde_UstId_Nr.MaxLength)
End Sub
If BELEG Is Nothing Then
BELEG = New EABeleg(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID)
BELEG.Beleg_TYP = "K"
If EA = "E" Then
BELEG.Belegart = "1"
Label19.Text = "Kunden-Beleg"
Label19.ForeColor = Color.FromArgb(0, 54, 128)
Else
BELEG.Belegart = "2"
Label19.Text = "Kunden-Auszahlung"
Label19.ForeColor = Color.Red
End If
Else
If BELEG.gebucht Then
pnlData.Enabled = False
pnlOptionen.Enabled = False
FlowLayoutPanel.Enabled = False
' FlowLayoutPanel1.Enabled = False
Label17.Visible = True
btnPrint.Text = "Beleg Kopie" & vbNewLine & "drucken"
End If
If BELEG.Belegart = "1" Then
EA = "E"
Label19.Text = "Kunden-Beleg"
Label19.ForeColor = Color.FromArgb(0, 54, 128)
Else
EA = "A"
Label19.Text = "Kunden-Auszahlung"
Label19.ForeColor = Color.Red
End If
If BELEG.gebuchtStorno Then
lblStorno.Visible = True
End If
If AvisoID Is Nothing Then AvisoID = BELEG.LKW_Id
init()
End If
initArt() 'Einnahme/AusgabeBeleg
lblMandant_niederlassung.Text = PERSONAL.Niederlassung
lblMandant.Text = PERSONAL.Mandant
lblSachbearbeiter.Text = PERSONAL.Name
lblKassenbuchNr.Text = PERSONAL.KassenbuchNr
If defaultPrinter <> "" Then
cProgramFunctions.initDrucker(cboPrinter, defaultPrinter)
Else
If EA = "E" Then
cProgramFunctions.initBONDrucker(cboPrinter, "EPSON") ' Eingangsbeleg --> BON
Else
cProgramFunctions.initDrucker(cboPrinter) ' Ausgangsbeleg --> A4
End If
End If
initTabCntlPreislisten()
initDGVBelegPos()
txtAnzahl.Text = "1"
txtAnzahl.Focus()
txtAnzahl.SelectAll()
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
' btnNeueAbfNr.Visible = True
cboFiliale.changeItem(4801)
ElseIf VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" Then
' btnNeueAbfNr.Visible = True
cboFiliale.changeItem(5501)
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
Sub init()
'lblRgNr.Text = "12345 / TR"
lblBelegDatum.Text = BELEG.BelegDat.ToShortDateString
lblkundeKdNr.Text = IIf(BELEG.KundenNr > 0, BELEG.KundenNr, "")
kdkunde.Text = BELEG.Ordnungsbegriff
If BELEG.KundenNr > 0 Then kdkunde.KdNr = BELEG.KundenNr
lblKunde_Ort.Text = (kdkunde.Text).Trim
lblKunde_Strasse.Text = lblKunde_Strasse.Text
lblKunde_Land.Text = BELEG.LandKz
lblKunde_Ort.Text = BELEG.Ort
lblKunde_Plz.Text = BELEG.PLZ
lblKunde_UstId_Land.Text = BELEG.UstIdKz
lblKunde_UstId_Nr.Text = BELEG.UstIdNr
kdFrachtf.Text = BELEG.Frachtführer
If BELEG.FrachtführerKundenNr > 0 Then kdFrachtf.KdNr = BELEG.FrachtführerKundenNr
lblFrachtf_Fahrer.Text = BELEG.Fahrer
lblFrachtf_LKWNr.Text = BELEG.LKW_Kennzeichen
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "ATILLA" : cbxSplittung.Enabled = False
Case Else : cbxSplittung.Checked = Not If(BELEG.LKW_Beleg, False)
End Select
aktFiliale = BELEG.FilialenNr
aktAbfertigungsNr = BELEG.AbfertigungsNr
cboSteuerschlüssel._value = BELEG.Steuerschlüssel
If BELEG.rksv_BelegId > 0 Then
lblBelegNr.Text = BELEG.rksv_BelegId
End If
cboFiliale.changeItem(BELEG.FilialenNr)
txtAbfertigungsNr.Text = IIf(BELEG.AbfertigungsNr <= 0, "", BELEG.AbfertigungsNr)
End Sub
Sub initTabCntlPreislisten()
FlowLayoutPanel1.Controls.Clear()
FlowLayoutPanel.Controls.Clear()
' Dim EA = IIf(BELEG.Belegart = "1", "E", "A")
Dim where = "1 = 1"
If PERSONAL.Niederlassung = "SUB" Then where = "Preislisten_visibleSUB = 1"
If PERSONAL.Niederlassung = "SUA" Then
where = "Preislisten_visibleATILLA = 1"
If PERSONAL.cRKSV_KasseID = 1 Then where = "Preislisten_visibleSUB = 1" 'MDM
End If
If PERSONAL.Niederlassung = "SBG" Then where = "Preislisten_visibleSBG = 1"
If PERSONAL.Niederlassung = "WAI" Then where = "Preislisten_visibleWAI = 1"
If PERSONAL.Niederlassung = "NKD" Then where = "Preislisten_visibleNKD = 1"
If PERSONAL.Niederlassung = "IME" Then
where = "Preislisten_visibleIMEX = 1"
' If PERSONAL.cRKSV_KasseID = 1 Then where = "Preislisten_visibleSUB = 1"'MDM
End If
If PERSONAL.Mandant = "FO" Then where = "Preislisten_visibleFRONTOFFICE = 1"
If PERSONAL.isLeihgeldkasse Then
where &= " AND allowLGKasse=1 "
End If
For Each r As DataRow In kundenSQL.loadDgvBySql("SELECT * FROM [tblPreislisten] WHERE 1=1 AND " & where & " AND Art='" & EA & "' order by PreislistenBez", "FMZOLL").Rows
Dim btn As New Button
btn.Text = r.Item("PreislistenBez")
btn.Tag = r.Item("PreislistenNr")
btn.FlatStyle = FlatStyle.Flat
btn.FlatAppearance.BorderSize = 1
btn.Left = 0
btn.Width = 100
btn.Height = 50
btn.Margin = New Padding(1, 3, 1, 0)
FlowLayoutPanel1.Controls.Add(btn)
AddHandler btn.Click, AddressOf changePL
'p.Controls.Add(Flp)
Next
End Sub
Sub changePLToAktPreisliste()
End Sub
Sub changePL(snd As Object, ev As EventArgs)
Dim PreislistenNr = snd.tag
If BELEG.POS.Count > 0 Then
PreislistenNr = BELEG.POS(0).PreislistenNr
If FlowLayoutPanel.Controls.Count > 0 Then
If DirectCast(FlowLayoutPanel.Controls(0), usrcntlBelegLeistungEintrag).PreisListenNr = PreislistenNr Then Exit Sub ' Bereits die richtige PreislistenNR
End If
End If
For Each b As Button In FlowLayoutPanel1.Controls
If b.Tag = PreislistenNr Then
b.BackColor = Color.SteelBlue
b.ForeColor = Color.White
Else
b.BackColor = Color.White
b.ForeColor = Color.Black
End If
Next
FlowLayoutPanel.SuspendLayout()
FlowLayoutPanel.Controls.Clear()
' For Each r2 As DataRow In kundenSQL.loadDgvBySql("Select * FROM [tblPreislistenpositionen] where PreislistenNr = '" & snd.tag & "' ORDER BY LeistungsBez", "FMZOLL").Rows
For Each r2 As DataRow In kundenSQL.loadDgvBySql("Select [LeistungsNr],(SELECT LeistungsBez FROM [Leistungen] WHERE [tblPreislistenpositionen].LeistungsNr=Leistungen.LeistungsNr ) as LeistungsBez FROM [tblPreislistenpositionen] where PreislistenNr='" & PreislistenNr & "' group by LeistungsNr ORDER BY COUNT(*) DESC, LeistungsBez ASC", "FMZOLL").Rows
Dim usrCntl As New usrcntlBelegLeistungEintrag
usrCntl.lblTitle.Text = IIf(r2.Item("LeistungsBez") Is DBNull.Value, "", r2.Item("LeistungsBez"))
usrCntl.PreisListenNr = PreislistenNr
' usrCntl.FlatStyle = FlatStyle.Flat
usrCntl.Left = 0
usrCntl.Width = 110
usrCntl.Height = 40
usrCntl.FlowLayoutPanel.Controls.Clear()
For Each r As DataRow In kundenSQL.loadDgvBySql("Select * FROM [tblPreislistenpositionen] where PreislistenNr = '" & PreislistenNr & "' AND LeistungsNr='" & r2.Item("LeistungsNr") & "' ORDER BY PreislistenPos ", "FMZOLL").Rows
Dim usrCntlpos As New usrcntlBelegLeistungEintragPosition
usrCntlpos.PreislistenNr = r.Item("PreislistenNr")
usrCntlpos.PreislistenPos = r.Item("PreislistenPos")
usrCntlpos.LeistungsNr = r.Item("LeistungsNr")
usrCntlpos.Art = r.Item("Art").ToString.Trim
' MsgBox(r.Item("Art") & " _ " & VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
usrCntlpos.Anzahlmultiplikator = r.Item("Anzahlmultiplikator")
usrCntlpos.LeistungsBez = IIf(r.Item("LeistungsBez") Is DBNull.Value, "", r.Item("LeistungsBez"))
'Ausnahme Frei-TEXT
If (usrCntlpos.PreislistenPos = 15 Or usrCntlpos.PreislistenPos = 21 Or usrCntlpos.PreislistenPos = 24 Or usrCntlpos.PreislistenPos = 40) And usrCntlpos.LeistungsNr = 498 Then
usrCntlpos.Leistungsbeschreibung = r.Item("LeistungsBez")
Else
usrCntlpos.Leistungsbeschreibung = r.Item("Leistungsbeschreibung")
End If
usrCntlpos.Abfertigungsart = cSqlDb.checkNullInteger(r.Item("Abfertigungsart"))
usrCntlpos.txtAnzahl.Text = "0"
If r.Item("Preis") IsNot DBNull.Value AndAlso IsNumeric(r.Item("Preis")) Then
usrCntlpos.Preis = CDbl(r.Item("Preis"))
usrCntlpos.FixPreis = True
Else
usrCntlpos.Preis = 0
End If
'usrCntlpos()
usrCntlpos.MaximumSize = New Size(250, 100)
usrCntlpos.AutoSize = True
'usrCntlpos.Preis = IIf(r.Item("Preis") IsNot DBNull.Value AndAlso IsNumeric(r.Item("Preis")), CDbl(r.Item("Preis")), -1)
' If r.Item("Preis") Is DBNull.Value Or r.Item("Preis") Is Nothing Then
'usrCntlpos.txtPreis.Text = "-"
' Else
' usrCntlpos.txtPreis.Text = CDbl(r.Item("Preis")).ToString("F", CultureInfo.InvariantCulture)
' End If
usrCntl.FlowLayoutPanel.Controls.Add(usrCntlpos)
AddHandler usrCntlpos.INCREASE, Sub(cntr As usrcntlBelegLeistungEintragPosition)
Dim anz = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
Dim p As EABelegPositionen
If Not increase(anz, cntr.PreislistenNr, cntr.PreislistenPos, cntr.LeistungsNr, cntr.Anzahlmultiplikator, aktFiliale, aktAbfertigungsNr) Then
Dim preis As Double = 0
Dim text As String = ""
If cntr.Preis = 0 Then
' frmGrayOut()
Dim frmGrayOut = cProgramFunctions.grayoutForm(Me)
If ((cntr.PreislistenPos = 15 Or cntr.PreislistenPos = 21 Or cntr.PreislistenPos = 24 Or cntr.PreislistenPos = 40) And (cntr.LeistungsNr = 498 Or cntr.LeistungsNr = 497)) Or
(cntr.LeistungsNr = 152 And cntr.PreislistenPos = 2) Then ' (cntr.LeistungsNr = 111 And cntr.PreislistenPos = 1) Or
'Sonstges Freitext
Dim l As New frmPreisText(If(cntr.LeistungsNr = 497, cntr.LeistungsBez, ""))
l.Location = cntr.loc
If l.ShowDialog(frmGrayOut) = DialogResult.OK Then
If IsNumeric(l.txt.Text) And l.txtLeistung.Text <> "" Then
preis = CDbl(l.txt.Text)
If (cntr.LeistungsNr = 152 And cntr.PreislistenPos = 2) Then 'Bei Rechnungsbegelichung --> Referenztext
text = cntr.LeistungsBez & ": " & l.txtLeistung.Text
Else
text = l.txtLeistung.Text
End If
Else
frmGrayOut.Close() : Exit Sub
End If
Else
frmGrayOut.Close() : Exit Sub
End If
frmGrayOut.Close()
Else
Dim l As New frmPreis()
l.Location = cntr.loc
If l.ShowDialog(frmGrayOut) = DialogResult.OK Then
If IsNumeric(l.txt.Text) Then
preis = CDbl(l.txt.Text)
Else
frmGrayOut.Close() : Exit Sub
End If
Else
frmGrayOut.Close() : Exit Sub
End If
frmGrayOut.Close()
End If
End If
p = New EABelegPositionen
p.Mandant = PERSONAL.Mandant
p.Niederlassung = PERSONAL.Niederlassung
p.Benutzer = PERSONAL.ID
'p.Benutzer = BenutzerNr
p.BelegDat = Now
p.BelegNr = BELEG.BelegNr
p.PreislistenNr = cntr.PreislistenNr
p.PreislistenPos = cntr.PreislistenPos
p.LeistungsNr = cntr.LeistungsNr
If cntr.Anzahlmultiplikator = 0 Or cntr.Anzahlmultiplikator = 1 Then
p.Anzahlmultiplikator = CInt(cntr.Anzahlmultiplikator)
End If
p.LeistungsBez = IIf(text <> "", text, cntr.LeistungsBez) ' cntr.LeistungsBez
p.Leistungsbeschreibung = IIf(text <> "", text, cntr.Leistungsbeschreibung) 'cntr.Leistungsbeschreibung
p.Preis = IIf(cntr.Preis = 0, preis, cntr.Preis)
If cntr.Art = "A" And EA = "E" Then
If p.Preis > 0 Then p.Preis = p.Preis * -1
End If
p.Abfertigungsart = If(cntr.Abfertigungsart > 0, cntr.Abfertigungsart, Nothing)
p.Anzahl = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
p.Betrag = p.Anzahl * p.Preis
p.FilialenNr = aktFiliale
p.AbfertigungsNr = aktAbfertigungsNr
BELEG.POS.Add(p)
' cntr.BackColor = Color.Yellow
initDGVBelegPos()
End If
End Sub
AddHandler usrCntlpos.REDUCE, Sub(cntr As usrcntlBelegLeistungEintragPosition)
Dim anz = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
' Dim p As EABelegPositionen
reduce(anz, cntr.PreislistenNr, cntr.PreislistenPos, cntr.LeistungsNr, aktFiliale, aktAbfertigungsNr)
End Sub
Next
Dim ThreadInitBGPos = New System.Threading.Thread(AddressOf Me.initBGPos)
ThreadInitBGPos.IsBackground = True
ThreadInitBGPos.Start()
FlowLayoutPanel.Controls.Add(usrCntl)
Next
FlowLayoutPanel.ResumeLayout()
End Sub
Function increase(anz, PreislistenNr, PreislistenPos, LeistungsNr, Anzahlmultiplikator, tmpFiliale, tmpAbfertigungsNr) As Boolean
For Each p In BELEG.POS
If p.PreislistenNr = PreislistenNr And p.PreislistenPos = PreislistenPos And p.LeistungsNr = LeistungsNr Then
If cbxSplittung.Checked Then
If p.FilialenNr = tmpFiliale And p.AbfertigungsNr = tmpAbfertigungsNr Then
p.Anzahl += anz
p.Betrag = p.Anzahl * p.Preis
p.Anzahlmultiplikator = CInt(Anzahlmultiplikator)
' cntr.BackColor = Color.Yellow
initDGVBelegPos()
Return True
End If
Else
p.Anzahl += anz
p.Betrag = p.Anzahl * p.Preis
p.Anzahlmultiplikator = CInt(Anzahlmultiplikator)
' cntr.BackColor = Color.Yellow
initDGVBelegPos()
Return True
End If
End If
Next
Return False
End Function
Function setAnz(anz, PreislistenNr, PreislistenPos, LeistungsNr, Anzahlmultiplikator, tmpFiliale, tmpAbfertigungsNr) As Boolean
If anz > 0 Then
For Each p In BELEG.POS
If p.PreislistenNr = PreislistenNr And p.PreislistenPos = PreislistenPos And p.LeistungsNr = LeistungsNr Then
If cbxSplittung.Checked Then
If p.FilialenNr = tmpFiliale And p.AbfertigungsNr = tmpAbfertigungsNr Then
p.Anzahl = anz
p.Anzahlmultiplikator = Anzahlmultiplikator
p.Betrag = p.Anzahl * p.Preis
initDGVBelegPos()
Return True
End If
Else
p.Anzahl = anz
p.Anzahlmultiplikator = Anzahlmultiplikator
p.Betrag = p.Anzahl * p.Preis
initDGVBelegPos()
Return True
End If
End If
Next
End If
Return False
End Function
Sub reduce(anz, PreislistenNr, PreislistenPos, LeistungsNr, tmpFiliale, tmpAbfertigungsNr)
For Each p In BELEG.POS
If p.PreislistenNr = PreislistenNr And p.PreislistenPos = PreislistenPos And p.LeistungsNr = LeistungsNr Then
If cbxSplittung.Checked Then
If p.FilialenNr = tmpFiliale And p.AbfertigungsNr = tmpAbfertigungsNr Then
If p.Anzahl > anz Then
p.Anzahl -= anz
p.Betrag = p.Anzahl * p.Preis
Else
BELEG.POS.Remove(p)
End If
initDGVBelegPos()
Exit Sub 'gefunden!
End If
Else
If p.Anzahl > anz Then
p.Anzahl -= anz
p.Betrag = p.Anzahl * p.Preis
Else
BELEG.POS.Remove(p)
End If
initDGVBelegPos()
Exit Sub 'gefunden!
End If
End If
Next
End Sub
Sub delete(PreislistenNr, PreislistenPos, LeistungsNr, tmpFiliale, tmpAbfertigungsNr)
For Each p In BELEG.POS
If p.PreislistenNr = PreislistenNr And p.PreislistenPos = PreislistenPos And p.LeistungsNr = LeistungsNr Then
If cbxSplittung.Checked Then
If p.FilialenNr = tmpFiliale And p.AbfertigungsNr = tmpAbfertigungsNr Then
BELEG.POS.Remove(p)
initDGVBelegPos()
Exit Sub
End If
Else
BELEG.POS.Remove(p)
initDGVBelegPos()
Exit Sub
End If
End If
Next
End Sub
Sub initBGPos()
For Each c As usrcntlBelegLeistungEintrag In FlowLayoutPanel.Controls
For Each cPos As usrcntlBelegLeistungEintragPosition In c.FlowLayoutPanel.Controls
setData(cPos, Color.White, 0, 0)
For Each p In BELEG.POS
If cPos.PreislistenNr = p.PreislistenNr And cPos.PreislistenPos = p.PreislistenPos And cPos.LeistungsNr = p.LeistungsNr Then
'Dim where = ""
If cbxSplittung.Checked Then
If p.FilialenNr = aktFiliale And p.AbfertigungsNr = aktAbfertigungsNr Then
setData(cPos, Color.Khaki, p.Preis, p.Anzahl)
End If
Else
setData(cPos, Color.Khaki, p.Preis, p.Anzahl)
End If
End If
Next
Next
Next
End Sub
'threadsicherer Aufruf
Delegate Sub setDataCallback(l As usrcntlBelegLeistungEintragPosition, BackColor As Color, preis As Double, anzahl As Integer)
Private Sub setData(l As usrcntlBelegLeistungEintragPosition, BackColor As Color, preis As Double, anzahl As Integer)
Try
If Me.InvokeRequired Then
Dim d As New setDataCallback(AddressOf setData)
Me.Invoke(d, New Object() {l, BackColor, preis, anzahl})
Else
With l
.BackColor = BackColor
If preis <> 0 Then .txtPreis.Text = CDbl(preis).ToString("F", CultureInfo.InvariantCulture)
If anzahl > 0 Then
.txtAnzahl.Text = anzahl & " x"
.txtAnzahl.Visible = True
Else
.txtAnzahl.Visible = False
If Not .FixPreis Then .txtPreis.Text = "-" 'nur wenn FixPreis
End If
End With
End If
Catch ex As Exception
'?? MsgBox("Es ist ein Fehler beim Kunden-Such-Feld aufgetreten: " & vbNewLine & vbNewLine & ex.Message)
End Try
End Sub
Dim WithEvents mPrintDocument As New PrintDocument
Dim mPrintBitMap As Bitmap
Private Sub m_PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles mPrintDocument.PrintPage
' Draw the image centered.
Dim lWidth As Integer = e.MarginBounds.X + (e.MarginBounds.Width - mPrintBitMap.Width) \ 2
Dim lHeight As Integer = e.MarginBounds.Y + (e.MarginBounds.Height - mPrintBitMap.Height) \ 2
e.Graphics.DrawImage(mPrintBitMap, lWidth, lHeight)
' There's only one page.
e.HasMorePages = False
End Sub
' 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
Dim IsPosPayment As Boolean = False
If sender.Name = "btnPOS" Then
IsPosPayment = True
End If
Try
printErfolgreich = False
If BELEG.gebucht Or BELEG.gebuchtStorno Then
' KASSE.LOAD(cboKassen._value)
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, IsPosPayment) 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
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"
If cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, cbxBelegOffnen.Checked, IsPosPayment) 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
Function validValues() As Boolean
lblErr_frachfuehrer.Visible = False
lblErr_kunde.Visible = False
lblErr_filiale.Visible = False
lblErr_steuer.Visible = False
lblErrPos.Visible = False
lblErr_Fahrer.Visible = False
lblErr_Pass.Visible = False
lblErr_LKW.Visible = False
If BELEG.POS.Count = 0 Then lblErrPos.Visible = True : Return False
If BELEG.Ordnungsbegriff = "" Then lblErr_kunde.Visible = True : Return False
' If BELEG.Frachtführer = "" Then lblErr_frachfuehrer.Visible = True : Return False
If Not (IsNumeric(BELEG.Steuerschlüssel) AndAlso BELEG.Steuerschlüssel >= 0) Then lblErr_steuer.Visible = True : Return False
If cbxSplittung.Checked Then
If BELEG.LKW_Id Is Nothing Then
MsgBox("LKW-Beleg konnte nicht erstellt werden, da keine LKW-Id hinterlegt. Bitte Filiale und Abfertigungsnummer angeben!") : Return False
End If
'For Each b In BELEG.POS
' If If(b.FilialenNr, 0) <= 0 Then MsgBox("Filiale-/AbfertigungsNr. fehlt!") : Return False
' If If(b.AbfertigungsNr, 0) <= 0 Then MsgBox("Filiale-/AbfertigungsNr. fehlt!") : Return False
'Next
Else
' If BELEG.LKW_Id Is Nothing Then
'MsgBox("LKW-Beleg konnte nicht erstellt werden, da keine LKW-Id hinterlegt. Bitte Filiale und Abfertigungsnummer angeben!") : Return False
' End If
' If BELEG.FilialenNr <= 0 Then lblErr_filiale.Visible = True : Return False
' If BELEG.AbfertigungsNr <= 0 Then lblErr_filiale.Visible = True : Return False
End If
If BELEG.Belegart = 2 Then
If BELEG.Fahrer = "" Then lblErr_Fahrer.Visible = True : Return False
If BELEG.Passnummer = "" Then lblErr_Pass.Visible = True : Return False
If BELEG.LKW_Kennzeichen = "" Then lblErr_LKW.Visible = True : Return False
End If
Return True
End Function
' Dim QR_Image As Image = Nothing
Sub datatoBeleg()
'BELEG.= "12345 / TR"
' BELEG.lblRgDatum.Text = Now.ToShortDateString
BELEG.BelegDat = Now
BELEG.KundenNr = IIf(kdkunde.KdNr > 0, kdkunde.KdNr, Nothing)
BELEG.Ordnungsbegriff = If(kdkunde.Text.Trim.Length > 50, kdkunde.Text.Trim.Substring(0, 50), kdkunde.Text.Trim)
' If BELEG.Ordnungsbegriff.Length > 50 Then
'BELEG.Ordnungsbegriff = BELEG.Ordnungsbegriff.Substring(0, 50)
' End If
BELEG.Name1 = BELEG.Ordnungsbegriff.Trim
BELEG.Name2 = ""
If kdkunde.KdData_ADRESSEN IsNot Nothing Then ' Überschreiben wenn vorhanden+
BELEG.Name1 = IIf(kdkunde.KdData_ADRESSEN.Name_1 IsNot Nothing, kdkunde.KdData_ADRESSEN.Name_1, BELEG.Ordnungsbegriff).ToString.Trim
BELEG.Name2 = IIf(kdkunde.KdData_ADRESSEN.Name_2 IsNot Nothing, kdkunde.KdData_ADRESSEN.Name_2, "").ToString.Trim
End If
If BELEG.Name1.Length > 40 Then BELEG.Name1 = BELEG.Name1.Substring(0, 40)
If BELEG.Name2.Length > 40 Then BELEG.Name2 = BELEG.Name2.Substring(0, 40)
If BELEG.Ordnungsbegriff.Length > 50 Then BELEG.Ordnungsbegriff = BELEG.Ordnungsbegriff.Substring(0, 50)
BELEG.Straße = lblKunde_Strasse.Text
BELEG.LandKz = lblKunde_Land.Text
BELEG.Ort = lblKunde_Ort.Text
BELEG.PLZ = lblKunde_Plz.Text
BELEG.UstIdKz = lblKunde_UstId_Land.Text.Trim
BELEG.UstIdNr = lblKunde_UstId_Nr.Text.Trim
BELEG.LKW_Kennzeichen = lblFrachtf_LKWNr.Text.Trim.ToUpper
BELEG.Fahrer = lblFrachtf_Fahrer.Text
BELEG.Passnummer = lblFrachtf_Pass.Text
BELEG.Frachtführer = BELEG.Name1 'kdFrachtf.Text
BELEG.FrachtführerKundenNr = BELEG.KundenNr 'IIf(kdFrachtf.KdNr > 0, kdFrachtf.KdNr, Nothing)
BELEG.LKW_Kennzeichen = lblFrachtf_LKWNr.Text
BELEG.Steuerschlüssel = If(IsNumeric(cboSteuerschlüssel._value), cboSteuerschlüssel._value, 0)
BELEG.SgutKompl = cboFrachtf_Sgut._value
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "ATILLA"
BELEG.FilialenNr = IIf(IsNumeric(cboFiliale._value), cboFiliale._value, -1)
BELEG.AbfertigungsNr = IIf(IsNumeric(txtAbfertigungsNr.Text), txtAbfertigungsNr.Text, -1)
Case Else
If Not PERSONAL.isLeihgeldkasse Then 'Wird berits anders geregelt
BELEG.LKW_Beleg = (Not cbxSplittung.Checked And AvisoID IsNot Nothing)
If Not BELEG.LKW_Beleg Then
BELEG.FilialenNr = -1
BELEG.AbfertigungsNr = -1
Else
BELEG.FilialenNr = IIf(IsNumeric(cboFiliale._value), cboFiliale._value, -1)
BELEG.AbfertigungsNr = IIf(IsNumeric(txtAbfertigungsNr.Text), txtAbfertigungsNr.Text, -1)
End If
End If
End Select
If PERSONAL.isLeihgeldkasse AndAlso PERSONAL_LG IsNot Nothing Then
BELEG.Benutzer_LG = PERSONAL_LG.ID
End If
End Sub
Sub STORNO2(JournalNr, Optional grund = "")
If Not BELEG.gebuchtStorno Then
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM tblKassenbuch WHERE [Mandant]='" & BELEG.Mandant & "' AND Niederlassung='" & BELEG.Niederlassung & "' AND Benutzer'" & BELEG.Benutzer & "' AND Geschäftsjahr='" & cRKSV.getGJ(BELEG.BelegDat) & "' AND JournalNr='" & JournalNr & "'", "FMZOLL")
Dim GJ = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ(BELEG.BelegDat))
If dt IsNot Nothing Then
For Each r In dt.Rows
Dim KBEntry As New cKassenbuch("LOAD", BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ(BELEG.BelegDat), r("JournalNr"))
KBEntry.JournalNr = GJ.INCREASE_JOURNAL() 'Vergabe der Journalnummer
KBEntry.Buchungsdatum = Now.ToShortDateString
KBEntry.Soll = KBEntry.Soll * -1
KBEntry.Haben = KBEntry.Haben * -1
Next
End If
BELEG.gebuchtStorno = True
BELEG.storniert = True
BELEG.Stornogrund = grund
BELEG.SAVE()
End If
End Sub
Sub dgvInit()
With dgvBelegPos
If .RowCount = 0 Then Exit Sub
For Each c In .Columns
c.Visible = False
Next
.Columns("LeistungsNr").Visible = True
.Columns("LeistungsBez").Visible = True
.Columns("TW1").Visible = True
.Columns("TW2").Visible = True
.Columns("Preis").Visible = True
.Columns("Anzahl").Visible = True
.Columns("Betrag").Visible = True
.Columns("Leistungsbeschreibung").Visible = True
End With
End Sub
Sub initDGVBelegPos()
lblErrPos.Visible = False
With dgvBelegPos
.Rows.Clear()
.Columns("clmnPreis").DefaultCellStyle.Format = "C"
.Columns("clmnPreis").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns("clmnBetrag").DefaultCellStyle.Format = "C"
.Columns("clmnBetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
For Each p In BELEG.POS
Dim FixpreisStr = SQL.getValueTxtBySql("SELECT case WHEN Preis is null then '0' else '1' end FROM [tblPreislistenpositionen] where [PreislistenNr]=" & p.PreislistenNr & " and [PreislistenPos]=" & p.PreislistenPos & "", "FMZOLL")
Dim fixpreis As Boolean = If(FixpreisStr.ToString = "", False, CBool(FixpreisStr))
.Rows.Add(p.Anzahl, p.Leistungsbeschreibung, "", "", p.Preis, p.Betrag, p.PreislistenNr, p.PreislistenPos, p.LeistungsNr, CInt(p.Anzahlmultiplikator), fixpreis, p.AbfertigungsNr, p.FilialenNr)
Next
.ClearSelection()
End With
Dim ThreadInitBGPos = New System.Threading.Thread(AddressOf Me.initBGPos)
ThreadInitBGPos.IsBackground = True
ThreadInitBGPos.Start()
initBetragBerechnen()
txtAnzahl.Text = "1"
txtAnzahl.Focus()
txtAnzahl.SelectAll()
End Sub
Sub initBetragBerechnen()
Dim sum As Double = 0
If BELEG IsNot Nothing AndAlso BELEG.POS IsNot Nothing Then
For Each p In BELEG.POS
sum += p.Betrag
Next
End If
' If EA = "E" Then
lblBetrag_Netto.Text = sum.ToString("C")
lblBetrag_Steuern.Text = (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")
' lblBetrag_Brutto.Text = (-1 * (sum + sum * txtSteuersatz._value)).ToString("C")
' End If
End Sub
Private Sub cboSteuerschlüssel_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboSteuerschlüssel.SelectedIndexChanged
If IsNumeric(cboSteuerschlüssel._value) Then
txtSteuersatz.fillWithSQL("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & cboSteuerschlüssel._value & "' ", "FMZOLL")
End If
initBetragBerechnen()
End Sub
Private Sub frmBeleg_Shown(sender As Object, e As EventArgs) Handles Me.Shown
' initTB_DGV()
Me.Height = My.Computer.Screen.WorkingArea.Height
Me.Top = 0
iniChangePNL()
RaiseEvent LOADED()
'MsgBox(cboSteuerschlüssel._value)
If cboSteuerschlüssel._value = "" Or cboSteuerschlüssel._value = 0 Then cboSteuerschlüssel.changeItem(3520)
End Sub
Sub iniChangePNL()
If FlowLayoutPanel1.Controls.Count = 1 Then
changePL(FlowLayoutPanel1.Controls(0), New EventArgs)
Else
Dim srchPreisliste = -1
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_standardPreisliste > 0 Then
srchPreisliste = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_standardPreisliste
Else
If PERSONAL.Niederlassung <> "" Then
If PERSONAL.Niederlassung = "SUA" Then
srchPreisliste = 3
ElseIf PERSONAL.Niederlassung = "IME" Then
srchPreisliste = 13
Else
srchPreisliste = 4
End If
End If
End If
If srchPreisliste > 0 Then
For Each b As Button In FlowLayoutPanel1.Controls
If b.Tag = srchPreisliste Then
changePL(b, New EventArgs)
Exit For
End If
Next
End If
End If
End Sub
Private Sub btnEinnahmeBeleg_Click(sender As Object, e As EventArgs) Handles btnEinnahmeBeleg.Click
If BELEG.POS.Count > 0 Then
If vbYes <> MsgBox("Es wurden bereits Positionen angelegt, sollen diese geslöscht werden?", MsgBoxStyle.YesNoCancel) Then
Exit Sub
End If
End If
BELEG.POS.Clear()
initDGVBelegPos()
BELEG.Belegart = "1"
initTabCntlPreislisten()
initArt()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnAusgabebeleg.Click
If BELEG.POS.Count > 0 Then
If vbYes <> MsgBox("Es wurden bereits Positionen angelegt, sollen diese geslöscht werden?", MsgBoxStyle.YesNoCancel) Then
Exit Sub
End If
End If
BELEG.POS.Clear()
initDGVBelegPos()
BELEG.Belegart = "2"
initTabCntlPreislisten()
initArt()
End Sub
Sub initArt()
If BELEG.Belegart = "1" Then
btnEinnahmeBeleg.BackColor = Color.SteelBlue
btnEinnahmeBeleg.ForeColor = Color.White
btnAusgabebeleg.BackColor = Color.Transparent
btnAusgabebeleg.ForeColor = Color.DimGray
ElseIf BELEG.Belegart = "2" Then
btnAusgabebeleg.BackColor = Color.SteelBlue
btnAusgabebeleg.ForeColor = Color.White
btnEinnahmeBeleg.BackColor = Color.Transparent
btnEinnahmeBeleg.ForeColor = Color.DimGray
End If
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
If dgvBelegPos.SelectedRows.Count = 1 Then
Dim i = dgvBelegPos.SelectedRows(0).Index
Dim anz = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
increase(1, dgvBelegPos.SelectedRows(0).Cells("PreislistenNr").Value, dgvBelegPos.SelectedRows(0).Cells("PreislistenPos").Value, dgvBelegPos.SelectedRows(0).Cells("LeistungsNr").Value, dgvBelegPos.SelectedRows(0).Cells("Anzahlmultiplikator").Value, dgvBelegPos.SelectedRows(0).Cells("FilialenNr").Value, dgvBelegPos.SelectedRows(0).Cells("AbfertigungsNr").Value)
Try : dgvBelegPos.Rows(i).Selected = True : Catch : End Try
End If
End Sub
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
If dgvBelegPos.SelectedRows.Count = 1 Then
Dim i = dgvBelegPos.SelectedRows(0).Index
Dim anz = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
reduce(1, dgvBelegPos.SelectedRows(0).Cells("PreislistenNr").Value, dgvBelegPos.SelectedRows(0).Cells("PreislistenPos").Value, dgvBelegPos.SelectedRows(0).Cells("LeistungsNr").Value, dgvBelegPos.SelectedRows(0).Cells("FilialenNr").Value, dgvBelegPos.SelectedRows(0).Cells("AbfertigungsNr").Value)
Try : dgvBelegPos.Rows(i).Selected = True : Catch : End Try
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If dgvBelegPos.SelectedRows.Count = 1 Then
Dim anz = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
delete(dgvBelegPos.SelectedRows(0).Cells("PreislistenNr").Value, dgvBelegPos.SelectedRows(0).Cells("PreislistenPos").Value, dgvBelegPos.SelectedRows(0).Cells("LeistungsNr").Value, dgvBelegPos.SelectedRows(0).Cells("FilialenNr").Value, dgvBelegPos.SelectedRows(0).Cells("AbfertigungsNr").Value)
End If
End Sub
Private Sub dgvBelegPos_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvBelegPos.CellContentClick
If e.RowIndex = -1 Then
sender.clearselection()
End If
End Sub
Private Sub dgvBelegPos_SelectionChanged(sender As Object, e As EventArgs) Handles dgvBelegPos.SelectionChanged
txtEinzelpreis.Text = ""
txtEinzelpreis.Enabled = False
If dgvBelegPos.SelectedRows.Count = 1 Then
txtAnzahl.Text = dgvBelegPos.SelectedRows(0).Cells("clmnAnzahl").Value
txtEinzelpreis.Text = dgvBelegPos.SelectedRows(0).Cells("clmnPreis").Value
If Not dgvBelegPos.SelectedRows(0).Cells("clmnFixpreis").Value Then
txtEinzelpreis.Enabled = True
End If
End If
End Sub
Private Sub txtAnzahl_KeyDown(sender As Object, e As KeyEventArgs) Handles txtAnzahl.KeyDown
If e.KeyCode = Keys.Return Then
If dgvBelegPos.SelectedRows.Count = 1 Then
setAnz(txtAnzahl.Text, dgvBelegPos.SelectedRows(0).Cells("PreislistenNr").Value, dgvBelegPos.SelectedRows(0).Cells("PreislistenPos").Value, dgvBelegPos.SelectedRows(0).Cells("LeistungsNr").Value, dgvBelegPos.SelectedRows(0).Cells("Anzahlmultiplikator").Value, dgvBelegPos.SelectedRows(0).Cells("FilialenNr").Value, dgvBelegPos.SelectedRows(0).Cells("AbfertigungsNr").Value)
initDGVBelegPos()
End If
End If
End Sub
Private Sub txtEinzelpreis_KeyDown(sender As Object, e As KeyEventArgs) Handles txtEinzelpreis.KeyDown
If e.KeyCode = Keys.Return Then
If dgvBelegPos.SelectedRows.Count = 1 Then
setEP(txtEinzelpreis.Text, dgvBelegPos.SelectedRows(0).Cells("PreislistenNr").Value, dgvBelegPos.SelectedRows(0).Cells("PreislistenPos").Value, dgvBelegPos.SelectedRows(0).Cells("LeistungsNr").Value, dgvBelegPos.SelectedRows(0).Cells("Anzahlmultiplikator").Value)
initDGVBelegPos()
End If
End If
End Sub
Function setEP(ep, PreislistenNr, PreislistenPos, LeistungsNr, Anzahlmultiplikator) As Boolean
If IsNumeric(ep) AndAlso ep > 0 Then
For Each p In BELEG.POS
If p.PreislistenNr = PreislistenNr And p.PreislistenPos = PreislistenPos And p.LeistungsNr = LeistungsNr Then
p.Preis = ep
p.Anzahlmultiplikator = Anzahlmultiplikator
p.Betrag = p.Anzahl * p.Preis
initDGVBelegPos()
Return True
End If
Next
End If
Return False
End Function
Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click
'BELEG.SAVE()
warnClose = False
Me.Close()
End Sub
Private Sub btnOfferte_Click(sender As Object, e As EventArgs) Handles btnOfferte.Click
If kdkunde.KdNr_value > 0 Then
Dim f As New frmKundenUebersichtZOLL(kdkunde.KdNr)
f.selectedTAB = "Offerte"
f.ShowDialog(Me)
End If
End Sub
Private Sub btnNeueAbfNr_Click(sender As Object, e As EventArgs) Handles btnNeueAbfNr.Click
If Not IsNumeric(cboFiliale._value) OrElse CInt(cboFiliale._value) <= 0 Then
MsgBox("Bitte Filiale auswählen!") : Exit Sub
End If
txtAbfertigungsNr.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(cboFiliale._value, Now.Year)
' If txtUnterNr.Text = "" Then txtUnterNr.Text = 0
cboFiliale.Enabled = False
sender.visible = False
End Sub
Private Sub txtAbfertigungsNr_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertigungsNr.Leave
If txtAbfertigungsNr.Text.Length > 8 Then Exit Sub
If txtAbfertigungsNr.Text.Length <= 6 Then
If IsNumeric(txtAbfertigungsNr.Text) Then
txtAbfertigungsNr.Text = Now.ToString("yy") & CInt(txtAbfertigungsNr.Text).ToString("000000")
End If
End If
checkDoppelAbfNr()
End Sub
Sub checkDoppelAbfNr()
lblInfoAbfertNrExists.Visible = False
If IsNumeric(cboFiliale._value) And IsNumeric(txtAbfertigungsNr.Text) Then
If cRKSV.SpedBuchExists(cboFiliale._value, txtAbfertigungsNr.Text) Then
lblInfoAbfertNrExists.Visible = True
End If
End If
End Sub
Private Sub cboFiliale_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFiliale.Leave
checkDoppelAbfNr()
End Sub
Private Sub cbxLKWBeleg_CheckedChanged(sender As Object, e As EventArgs) Handles cbxSplittung.CheckedChanged
'txtAbfertigungsNr.Visible = Not cbxAbfertigungsBeleg.Checked
'btnNeueAbfNr.Visible = Not cbxAbfertigungsBeleg.Checked
'Label8.Visible = Not cbxAbfertigungsBeleg.Checked
Label22.Visible = cbxSplittung.Checked
txtzuKassieren.Visible = cbxSplittung.Checked
If cbxSplittung.Checked Then lblInfoAbfertNrExists.Visible = False : lblErr_filiale.Visible = False ': lblErrPos.Visible = False
If cbxSplittung.Checked Then
FlowLayoutPanel2.Visible = True
initSendungen()
If FlowLayoutPanel2.Controls.Count > 0 Then
Dim found = False
For Each b As Button In FlowLayoutPanel2.Controls
If b.Tag.ToString.Contains(aktFiliale & "/" & aktAbfertigungsNr) Then
' b.PerformClick()
found = True
changeABF(b, New EventArgs)
End If
Next
If Not found Then changeABF(FlowLayoutPanel2.Controls(0), New EventArgs)
Else
MsgBox("Keine Sendungen mit Abfertigungsnummer gefunden!")
cbxSplittung.Checked = False
End If
Else
FlowLayoutPanel2.Visible = False
End If
'If cbxLKWBeleg.Checked Then
' Label8.Text = "LKW-Id:"
' btnNeueAbfNr.Visible = False
'Else
' Label8.Text = "Abfertigungs-Nr:"
' btnNeueAbfNr.Visible = True
'End If
End Sub
Sub initSendungen()
FlowLayoutPanel2.Controls.Clear()
If If(AvisoID, 0) > 0 Then
' Dim EA = IIf(BELEG.Belegart = "1", "E", "A")
Dim btnA As New Button
btnA.Text = "Allgemein"
btnA.Tag = "0/0/0/0" 'r.Item("tblSnd_SendungID")
btnA.FlatStyle = FlatStyle.Flat
btnA.FlatAppearance.BorderSize = 1
btnA.Left = 0
btnA.Width = 100
btnA.Height = 60
btnA.BackColor = Color.FloralWhite
btnA.Margin = New Padding(1, 3, 1, 0)
FlowLayoutPanel2.Controls.Add(btnA)
AddHandler btnA.Click, AddressOf changeABF
For Each r As DataRow In kundenSQL.loadDgvBySql("SELECT *,isnull(tblSnd_Empfaenger,'') as empf, isnull(tblSnd_BARzuKassieren,0) as BARzuKassieren FROM [tblSendungen] WHERE 1=1 AND [tblSnd_AvisoID]='" & AvisoID & "' AND FilialenNr>0 AND AbfertigungsNr>0 order by tblSnd_PosUnterNr", "AVISO").Rows
Dim Abf = kundenSQL.getValueTxtBySql("SELECT TOP (1) cast([Abfertigungsart] as varchar (2)) + ' - ' + [Abfertigungsbezeichnung] FROM [Abfertigungsarten] WHERE [Abfertigungsart]='" & r.Item("tblSnd_Abfertigungsart_ID") & "'", "FMZOLL")
If Abf.Length > 10 Then Abf = Abf.Substring(0, 10)
Dim btn As New Button
btn.Text = Abf & vbNewLine & If(r.Item("empf").ToString.Length > 10, r.Item("empf").ToString.Substring(0, 10), r.Item("empf")) & vbNewLine & r.Item("FilialenNr") & "/" & r.Item("AbfertigungsNr")
btn.Tag = r.Item("tblSnd_SendungID") & "/" & r.Item("FilialenNr") & "/" & r.Item("AbfertigungsNr") & "/" & r.Item("BARzuKassieren") 'r.Item("tblSnd_SendungID")
btn.FlatStyle = FlatStyle.Flat
btn.FlatAppearance.BorderSize = 1
btn.Left = 0
btn.Width = 100
btn.Height = 60
btn.BackColor = Color.FloralWhite
btn.Margin = New Padding(1, 3, 1, 0)
FlowLayoutPanel2.Controls.Add(btn)
AddHandler btn.Click, AddressOf changeABF
'p.Controls.Add(Flp)
Next
Else
FlowLayoutPanel2.Visible = False
End If
End Sub
Function cntPosFilAbf(FilialenNr, AbfertigungsNr) As Integer
For Each b In BELEG.POS
' MsgBox(CInt(If(b.FilialenNr, 0)) & " = " & CInt(If(FilialenNr, 0)) & " -- " & CInt(If(b.AbfertigungsNr, 0)) & " = " & CInt(If(AbfertigungsNr, 0)) & " -- " & (CInt(If(b.FilialenNr, 0)) = CInt(If(FilialenNr, 0)) And CInt(If(b.AbfertigungsNr, 0)) = CInt(If(AbfertigungsNr, 0))))
If b.FilialenNr = CInt(If(FilialenNr, 0)) And b.AbfertigungsNr = CInt(If(AbfertigungsNr, 0)) Then
Return 1
End If
Next
Return 0
End Function
Sub changeABF(snd As Object, ev As EventArgs)
txtzuKassieren.Text = ""
Dim tag = snd.tag
For Each b As Button In FlowLayoutPanel2.Controls
If b.Tag = tag Then
b.BackColor = Color.OrangeRed
b.ForeColor = Color.White
Dim s = b.Tag.ToString.Split("/")
aktFiliale = If(IsNumeric(s(1)), s(1), 0)
aktAbfertigungsNr = If(IsNumeric(s(2)), s(2), 0)
txtzuKassieren.Text = s(3)
Else
Dim s = b.Tag.ToString.Split("/")
If cntPosFilAbf(s(1), s(2)) Then
b.BackColor = Color.Khaki
Else
b.BackColor = Color.FloralWhite
End If
b.ForeColor = Color.Black
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 POSpayment(sender As Object, e As EventArgs) Handles btnPOS.Click
If cboKassen.SelectedItem.Text = "" Then Exit Sub
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
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
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
Class TestRKSVW
Shared Sub Main()
Dim client As RKSVWcfClient = New RKSVWcfClient()
' Use the 'client' variable to call operations on the service.
' Always close the client.
client.Close()
End Sub
End Class