Imports VERAG_PROG_ALLGEMEIN

Public Class frmOffertenBearbeiten

    Dim FIRMA_TMP = ""

    Public cntOfferteLoad As Integer = 0
    Public kdnr As Integer = -1
    Dim SQL As New SQL

    Sub New(kdnr)

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
        Me.kdnr = kdnr
        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub

    Private Sub frmOffertenBearbeiten_Load(sender As Object, e As EventArgs) Handles Me.Load
        FlowLayoutPanel.Controls.Clear()

        Dim KUNDE As New VERAG_PROG_ALLGEMEIN.cKunde(kdnr)
        If KUNDE Is Nothing Then Me.Close()
        If Not KUNDE.hasEntry Then Me.Close()
        FIRMA_TMP = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(KUNDE.FilialenNr)

        Dim KUNDE_ERW As New cKundenErweitert(kdnr)

        cboSprache.Items.Clear()
        cboSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE", "DE"))
        cboSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EN", "EN"))
        cboSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("RO", "RO"))
        cboSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TR", "TR"))

        cboFiliale.fillWithSQL("SELECT Filialen.FilialenNr FROM Filialen where Firma ='" & FIRMA_TMP & "' and Fil_Status = 'A' ORDER BY Filialen.FilialenNr", False, "FMZOLL", True)


        Dim where = ""
        Select Case FIRMA_TMP
            Case "IMEX"
                ' where = " WHERE [Offertenstamm].[OffertenNr] IN (1,2,3,4,5,6,7,8,9,10,26,27,29,50,51)"
                cboSprache.Enabled = False
                cboSprache.changeItem("DE")
                where = " WHERE  [Offertenstamm].[OffertenNr] IN (SELECT ao_OffertenNr FROM tblAbfertigungsartenFiliale inner join tblAbfertigungsartOffertenstamm on ao_Abfertigungsart=Abfertigungsart WHERE FilialenNr=5501 ) "
                If cboFiliale.Items.Count > 0 Then cboFiliale.changeItem("5501")
            Case "VERAG"
                If KUNDE_ERW IsNot Nothing AndAlso KUNDE_ERW.kde_Fakturierung_Sprache IsNot Nothing AndAlso KUNDE_ERW.kde_Fakturierung_Sprache <> "" AndAlso KUNDE.FilialenNr = 8001 AndAlso (KUNDE.KundenNrZentrale <> 140000 And KUNDE.KundenNrZentrale <> 150000 And KUNDE.KundenNrZentrale <> 180000) Then
                    cboSprache.changeItem(KUNDE_ERW.kde_Fakturierung_Sprache)
                    cboSprache.Enabled = True

                Else
                    cboSprache.changeItem("DE")
                    cboSprache.Enabled = False
                End If
                If cboFiliale.Items.Count > 0 Then cboFiliale.changeItem("4803")
            Case Else
                cboSprache.changeItem("DE")
                cboSprache.Enabled = False
                If cboFiliale.Items.Count > 0 Then cboFiliale.SelectedIndex = 0

        End Select

        If cboFiliale.Items.Count = 0 Then cboFiliale.changeItem("")


        Dim SQLsrt = " SELECT (select case when COUNT(*)>0 then 1 else 0 end FROM Offerten where  KundenNr=" & kdnr & " and  [Offerten].[OffertenNr]=[Offertenstamm].[OffertenNr]) as vorhanden," &
                    " [Offertenstamm].[OffertenNr],[OffertenBez] FROM Offertenstamm  " & where & " order by OffertenNr"

        For Each r As DataRow In SQL.loadDgvBySql(SQLsrt, "FMZOLL").Rows
            Dim cbx As New VERAG_PROG_ALLGEMEIN.MyCheckBoxValue
            cbx._value = r("OffertenNr")
            cbx.AutoSize = False
            cbx.Width = FlowLayoutPanel.Width - 30
            cbx.Height = 18
            cbx.Checked = CBool(r("vorhanden"))
            If cbx.Checked Then cbx.Enabled = False
            cbx.Text = r("OffertenNr") & " " & r("OffertenBez")
            FlowLayoutPanel.Controls.Add(cbx)
            If CBool(r("vorhanden")) Then   cntOfferteLoad += 1
        Next





    End Sub

    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        If kdnr <= 0 Then MsgBox("Keine KundenNr gefunden!") : Exit Sub
        Dim Neuanlage = False
        For Each c In FlowLayoutPanel.Controls
            If c.GetType Is GetType(VERAG_PROG_ALLGEMEIN.MyCheckBoxValue) Then
                ' MsgBox(c._value)
                If c.enabled And c.checked Then
                    Dim o As New VERAG_PROG_ALLGEMEIN.cOfferte(kdnr, c._value, IIf(cboFiliale._value <> "", cboFiliale._value, Nothing), False)
                    o.Art = "Neuanlage"
                    o.SAVE() 'speichern
                    o.LOAD_POSITIONEN() 'positionen Laden
                    If o.POSITIONEN.Count = 0 Then 'wenn keine POS --> neues Offert
                        o.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, FIRMA_TMP, cboSprache.SelectedItem.ToString) '--> Standartofferten laden
                        Neuanlage = True
                    End If


                    'SQL.doSQL("INSERT INTO Offertenpositionen WHERE KundenNr=" & kdnr & " AND  [OffertenNr]=" & kdnr & "")

                Else
                    '      SQL.doSQL("DELETE FROM Offertenpositionen WHERE KundenNr=" & kdnr & " AND  [OffertenNr]=" & kdnr & "")
                    '       SQL.doSQL("DELETE FROM Offerten WHERE KundenNr=" & kdnr & " AND  [OffertenNr]=" & kdnr & "")
                End If
            End If
        Next
        If cntOfferteLoad = 0 And Neuanlage Then
            'Es wurden 1 oder mehrere Offerten neu hinzugefügt, und es gab zuvor noch keine Offerten.
            'Autofakturierung setzen
            SQL.doSQL("update  [tblKundenErweitert] set AutoFakturierung = 1  where  kde_KundenNr='" & kdnr & "'", "FMZOLL")
        End If

        Me.Close()
    End Sub
End Class