1448 lines
67 KiB
VB.net
1448 lines
67 KiB
VB.net
Imports System.Data.SqlClient
|
|
Imports System.Drawing.Printing
|
|
Imports System.Globalization
|
|
Imports SDL.RKSVServer
|
|
|
|
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 = ""
|
|
|
|
|
|
|
|
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
|
|
cProgramFunctions.initDrucker(cboPrinter, If(EA = "E", "EPSON", ""))
|
|
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
|
|
|
|
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
|
|
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) 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) 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)
|
|
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 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)
|
|
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
|
|
'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
|
|
|
|
|
|
Select Case BELEG.Belegart
|
|
Case "1"
|
|
If cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, cbxBelegOffnen.Checked) 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")
|
|
lblBetrag_Brutto.Text = (sum + sum * txtSteuersatz._value).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
|
|
|
|
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
|
|
|