Imports Gemeinsames
Public Class frmPosNr
    Dim Filiale = -1
    Dim Abfertigungsnummer = -1
    Dim UnterNr = -1
    Dim SQL As New SQL
    Dim cOptionenDAL As New cOptionenDAL
    Sub New()

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()

        ' Ffgügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub
    Sub New(Filiale, Abfertigungsnummer, UnterNr)
        Me.Filiale = Filiale
        Me.Abfertigungsnummer = Abfertigungsnummer
        Me.UnterNr = UnterNr

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()

        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub

    Private Sub btnWeiter_Click(sender As Object, e As EventArgs) Handles btnWeiter.Click
        If cboFiliale.Text = "" Then Label1.ForeColor = Color.Red : Me.DialogResult = Windows.Forms.DialogResult.None : Exit Sub
        If txtAbfertigungsnummer.Text = "" Then Label1.ForeColor = Color.Red : Me.DialogResult = Windows.Forms.DialogResult.None : Exit Sub
        If txtUnterNr.Text = "" Then Label1.ForeColor = Color.Red : Me.DialogResult = Windows.Forms.DialogResult.None : Exit Sub

        If SQL.getValueTxtBySql("SELECT count(*) FROM Speditionsbuch WHERE FilialenNr='" & cboFiliale._value & "' AND AbfertigungsNr='" & txtAbfertigungsnummer.Text & "' AND UnterNr='" & txtUnterNr.Text & "' ", "FMZOLL") > 0 Then
            MsgBox("Die Positionsnummer ist bereits vorhanden!")
            Me.DialogResult = Windows.Forms.DialogResult.None
            Exit Sub

        Else
            SQL.doSQL("UPDATE Speditionsbuch SET FilialenNr='" & cboFiliale._value & "', AbfertigungsNr='" & txtAbfertigungsnummer.Text & "', UnterNr='" & txtUnterNr.Text & "' WHERE FilialenNr='" & Filiale & "' AND AbfertigungsNr='" & Abfertigungsnummer & "' AND UnterNr='" & UnterNr & "'", "FMZOLL")
            Me.DialogResult = Windows.Forms.DialogResult.OK
        End If
    End Sub

    Private Sub frmPosNr_Load(sender As Object, e As EventArgs) Handles Me.Load
        cboFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", False, "FMZOLL", True)

        Me.cboFiliale._value = If(Filiale > 0, Filiale, "")
        'If Not IsNumeric(cboFiliale._value) Then
        'If cboFiliale._value > 0 Then txtAbfertigungsnummer.Focus() 'eingabe abfNr '
        'End If
        Me.txtAbfertigungsnummer.Text = If(Abfertigungsnummer > 0, Abfertigungsnummer, "")
        Me.txtUnterNr.Text = If(UnterNr >= 0, UnterNr, "")
        If cboFiliale._value = "" Then cboFiliale.Focus() Else txtAbfertigungsnummer.Focus()

       

        If VERAG_PROG_ALLGEMEIN.cAllgemein.AUTO_ABF_NR Then btnNeueAbfertigungNrVergeben.Visible = True : txtAbfertigungsnummer.Enabled = True
    End Sub

    Private Sub btnNeueAbfertigungNrVergeben_Click(sender As Object, e As EventArgs) Handles btnNeueAbfertigungNrVergeben.Click
        If Not IsNumeric(cboFiliale._value) OrElse CInt(cboFiliale._value) <= 0 Then
            MsgBox("Bitte Filiale auswählen!") : Exit Sub
        End If
        txtAbfertigungsnummer.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 frmPosNr_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        If txtUnterNr.Text = "" Then txtUnterNr.Text = 0
        If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
            txtAbfertigungsnummer.Enabled = True
            btnNeueAbfertigungNrVergeben.Visible = False
            cboFiliale.changeItem("4801")
            txtAbfertigungsnummer.Focus()
        End If
    End Sub

    Private Sub txtAbfertigungsnummer_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertigungsnummer.Leave
        If txtAbfertigungsnummer.Text.Length > 8 Then Exit Sub
        If txtAbfertigungsnummer.Text.Length <= 6 Then
            If IsNumeric(txtAbfertigungsnummer.Text) Then
                txtAbfertigungsnummer.Text = Now.ToString("yy") & CInt(txtAbfertigungsnummer.Text).ToString("000000")
            End If
        End If
    End Sub

    Private Sub txtUnterNr_TextChanged(sender As Object, e As KeyEventArgs) Handles txtUnterNr.KeyDown, txtAbfertigungsnummer.KeyDown, cboFiliale.KeyDown
        If e.KeyCode = Keys.Enter Then
            btnWeiter.PerformClick()
        End If
    End Sub
End Class