Imports System.Globalization

Public Class usrCntlSDLLeistungenMANAbgas
    Public KfzKennzeichen As String
    Public kdNr As String
    Public SDLNr As String
    Public History As String

    Dim PROG As New cProgramFunctions
    Dim kundenSQL As New kundenSQL

    Dim culture As CultureInfo = New CultureInfo("de-DE")
    Public addnew As Boolean = False
    Dim VAL As New cValidationSDLLeistungen
    'Public WithEvents s As New cBinding 'fürs Binding
    Public SDL As VERAG_PROG_ALLGEMEIN.cSDL
    Public Event LKWChanged(kdNr, newKfz, SDLNr, History)
    Public Event CHANGED(kdNr, newKfz, SDLNr, History)
    Dim boud = False

    Sub New(kdNr, KfzKennzeichen, SDLNr, History)

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

        Me.kdNr = kdNr
        Me.KfzKennzeichen = KfzKennzeichen
        Me.SDLNr = SDLNr
        Me.History = History
        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub
    Private Sub usrCntlSDLLeistungenCZ_Load(sender As Object, e As EventArgs) Handles Me.Load
        UsrCntlDetails.kdNr = kdNr
        UsrCntlDetails.SDLNr = SDLNr
        UsrCntlDetails.History = History
        UsrCntlDetails.lblLKWNr.Text = KfzKennzeichen
        AddHandler UsrCntlDetails.LKWChanged, Sub(newKfz)
                                                  RaiseEvent LKWChanged(kdNr, newKfz, SDLNr, History)
                                              End Sub

       
        'Scan-Elemente initialisieren:
         scanSonstiges.INIT(kdNr, KfzKennzeichen, "SDL_" & SDLNr, "HIST_" & History)

        initDataBinding()
        boud = True
        lblBestellformularAusdrucken.Visible = False
        If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Leistungen_bearbeiten", Me.FindForm) Then
            cProgramFunctions.setControlReadOnly(Me)
        End If

    End Sub
    Function gueltigBisabgelaufen(o) As Boolean
        Try
            If CDate(o) > Now Then
                Return False
            End If
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function



    Sub initDataBinding()
        Try

            SDL = New VERAG_PROG_ALLGEMEIN.cSDL(kdNr, KfzKennzeichen, SDLNr, History)

            PROG.initDTPE(txtLieferung)
            PROG.initDTPE(txtBestellung)

            txtLieferung._value = SDL.Lieferdatum
            txtBestellung._value = SDL.Bestelldatum
            cbxArchiviert.Checked = SDL.Archiviert
            txtVermerk.Text = SDL.Vermerk
          
            UsrCntlDetails.lblErfassung.Text = SDL.Erfassungsdatum
            UsrCntlDetails.lblAenderung.Text = SDL.Änderungsdatum
            UsrCntlDetails.lblSachbearb.Text = SDL.Sachbearbeiter
  


        Catch ex As Exception
            MsgBox(ex.Message)
            MsgBox(ex.StackTrace)
        End Try



    End Sub

    Public Sub newEntry()
        '   s.newEntry(kdNr, KfzKennzeichen, SDLNr) 'NEUER EINTRAG!
        If txtBestellung.Text = "" Then txtBestellung.Text = Now.ToShortDateString
    End Sub
    Sub BindingTableColumnChanged()
        UsrCntlDetails.lblSachbearb.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
        UsrCntlDetails.lblAenderung.Text = Now.ToString("dd.MM.yyyy HH:mm")
        'If e.Column.ColumnName = "Sachbearbeiter" Or e.Column.ColumnName = "Änderungsdatum" Then Exit Sub
        If save() Then RaiseEvent CHANGED(kdNr, KfzKennzeichen, SDLNr, History)
    End Sub

    Public Function save() As Boolean
        loadDataInClass()

        Return SDL.SAVE
        'If checkSave() Then
        '        Return kundenSQL.doSQLByList(s.bindingSource)
        'End If
        Return False
    End Function

    Sub loadDataInClass()
        SDL.Lieferdatum = PROG.isEmptyNull(txtLieferung._value)
        SDL.Bestelldatum = PROG.isEmptyNull(txtBestellung._value)
     SDL.Vermerk = txtVermerk.Text
        SDL.Erfassungsdatum = UsrCntlDetails.lblErfassung.Text
        SDL.Änderungsdatum = UsrCntlDetails.lblAenderung.Text
        SDL.Sachbearbeiter = UsrCntlDetails.lblSachbearb.Text
       
        SDL.Archiviert = cbxArchiviert.Checked
    End Sub


    Function checkSave() As Boolean
        ' If Not VAL.checkValidDate(txtBestellung, True) Then Return False 'cProgramFunctions.setInfo(Me.FindForm, "ERR", "Bestelldatum: Datumsformat nicht korrekt!", 3) : Return False
        '  If Not VAL.checkValidDate(txtLieferung, True) Then Return False 'cProgramFunctions.setInfo(Me.FindForm, "ERR", "Lieferdatum: Datumsformat nicht korrekt!", 3) : Return False
        ' If Not VAL.checkValidDate(txtGueltigkeit, True) Then Return False 'cProgramFunctions.setInfo(Me.FindForm, "ERR", "Gültigkeitsdatum: Datumsformat nicht korrekt!", 3) : Return False
        Return True
    End Function



    Private Sub datBestellung_ValueChanged(sender As Object, e As EventArgs)
        If sender.value Is DBNull.Value Then
            sender.checked = False
        End If
    End Sub

    Private Sub txtBestellung_TextChanged2(sender As Object, e As EventArgs) Handles txtBestellung.PropertyChanged, txtLieferung.PropertyChanged, txtVermerk.TextChanged, cbxArchiviert.CheckedChanged
        If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Leistungen_bearbeiten", Me.FindForm) Then Exit Sub
  
        If boud And Me.FindForm IsNot Nothing Then
            If sender Is txtBestellung Then
                'MsgBox("Bestellformular ausdrucken!")
                lblBestellformularAusdrucken.Visible = True
            End If
            BindingTableColumnChanged()
        End If
    End Sub

    Function addTxtToVermerk(tmp, txt) As String
        If txtVermerk.Text <> "" Then tmp &= " / "
        tmp &= txt & ", am " & Now.ToShortDateString
        If tmp.Length > txtVermerk.MaxLength Then tmp = tmp.Substring(0, txtVermerk.MaxLength)
        Return tmp
    End Function



End Class

