Imports IntraSell_DLL
Imports IntraSell_Net_Base

Public Class VorgangAktionen

    Event HiddenFieldsShown()

    Dim _vorgang As VorgangInBearbeitung

    Public Property MitarbeiterNr As Integer

    Property Vorgang As VorgangInBearbeitung
        Get
            Return _vorgang
        End Get
        Set(value As VorgangInBearbeitung)
            _vorgang = value
            If _vorgang IsNot Nothing Then
                ButtonAngenommen.BackColor = GetVorgangStatusColor(_vorgang.Typ, VorgangStatus.ANGENOMMEN)
                ButtonKueche.BackColor = GetVorgangStatusColor(_vorgang.Typ, VorgangStatus.KUECHE)
                ZugestelltJA.BackColor = GetVorgangStatusColor(_vorgang.Typ, VorgangStatus.ZUGESTELLT)
                ZugestelltZuSpaet.BackColor = GetVorgangStatusColor(_vorgang.Typ, VorgangStatus.ZUSPAET)
                ZugestelltNEIN.BackColor = GetVorgangStatusColor(_vorgang.Typ, VorgangStatus.NICHT_ZUGESTELLT)
            End If
        End Set
    End Property


    Private Sub VorgangAktionen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            ApplyStyle
            MitarbeiterNr = MitarbeiterID
        Catch ex As Exception
            HandleAppError(ex)
        End Try
    End Sub

    Sub ApplyStyle()
        ModuleStyle.StylePanel(TableLayoutPanel1)
        ModuleStyle.StyleButton(ButtonAngenommen)
        ModuleStyle.StyleButton(ButtonKueche)
        ModuleStyle.StyleButton(ButtonInZustellung)
        ModuleStyle.StyleButton(ButtonZugestellt)
        ModuleStyle.StyleButton(ButtonKundenMeldung)
    End Sub

    Private Sub ButtonAngenommen_Click(sender As Object, e As EventArgs) Handles ButtonAngenommen.Click
        MitarbeiterNr = MitarbeiterID
        SetVorgangStatusUndSendeMessageFuerStatus(Vorgang, VorgangStatus.ANGENOMMEN, MitarbeiterNr, ButtonAngenommen)
    End Sub

    Private Sub ButtonKueche_Click(sender As Object, e As EventArgs) Handles ButtonKueche.Click
        MitarbeiterNr = MitarbeiterID
        SetVorgangStatusUndSendeMessageFuerStatus(Vorgang, VorgangStatus.KUECHE, MitarbeiterNr, ButtonKueche)
    End Sub

    Private Sub ButtonInZustellung_Click(sender As Object, e As EventArgs) Handles ButtonInZustellung.Click
        MitarbeiterNr = MitarbeiterID

        Dim form = New ZustellerAuftrag With {
            .Vorgang = _vorgang
        }
        form.ShowDialog()

    End Sub

    Private Sub ButtonZugestellt_Click(sender As Object, e As EventArgs) Handles ButtonZugestellt.Click
        TableLayoutPanelInfo.Visible = False
        TableLayoutPanelZustellung.Visible = Not TableLayoutPanelZustellung.Visible
        RaiseEvent HiddenFieldsShown()
    End Sub

    Private Sub ButtonKundenMeldung_Click(sender As Object, e As EventArgs) Handles ButtonKundenMeldung.Click
        TableLayoutPanelZustellung.Visible = False
        TableLayoutPanelInfo.Visible = Not TableLayoutPanelInfo.Visible
        RaiseEvent HiddenFieldsShown()
    End Sub

    Private Sub ButtonAbsenden_Click(sender As Object, e As EventArgs) Handles ButtonAbsenden.Click
        MitarbeiterNr = MitarbeiterID
        SetVorgangStatusUndSendeMessageFuerStatus(Vorgang, "INFO", MitarbeiterNr, ButtonAbsenden, TextBox1.Text)
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.MouseClick
        TextBox1.Focus()
        TextBox1.SelectedText = ListBox1.SelectedItem
    End Sub

    Private Sub ZugestelltJA_Click(sender As Object, e As EventArgs) Handles ZugestelltJA.Click
        MitarbeiterNr = MitarbeiterID
        SetVorgangStatusUndSendeMessageFuerStatus(Vorgang, VorgangStatus.ZUGESTELLT, MitarbeiterNr, ZugestelltJA)
    End Sub

    Private Sub ZugestelltZuSpaet_Click(sender As Object, e As EventArgs) Handles ZugestelltZuSpaet.Click
        MitarbeiterNr = MitarbeiterID
        SetVorgangStatusUndSendeMessageFuerStatus(Vorgang, VorgangStatus.ZUSPAET, MitarbeiterNr, ZugestelltZuSpaet)
    End Sub

    Private Sub ZugestelltNEIN_Click(sender As Object, e As EventArgs) Handles ZugestelltNEIN.Click
        MitarbeiterNr = MitarbeiterID
        SetVorgangStatusUndSendeMessageFuerStatus(Vorgang, VorgangStatus.NICHT_ZUGESTELLT, MitarbeiterNr, ZugestelltNEIN)
    End Sub
End Class
