Imports System.Globalization

Public Class usrCntlSDLLeistungenFREJUS
    Public KfzKennzeichen As String
    Public SDLNr As String
    Public kdNr As String
    Public History As String
    Dim PROG As New cProgramFunctions
    Dim kundenSQL As New kundenSQL

    Dim culture As CultureInfo = New CultureInfo("de-DE")
    Private PartnerKdNrFromFMZOLL As cPartnerKdNRFMZoll
    Public addnew As Boolean = False
    Dim VAL As New cValidationSDLLeistungen
    Public Event LKWChanged(kdNr, newKfz, SDLNr, History)
    Public Event CHANGED(kdNr, newKfz, SDLNr, History)
    'Public WithEvents s As New cBinding 'fürs Binding
    Public SDL As VERAG_PROG_ALLGEMEIN.cSDL
    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:
        scanLieferschein.INIT(kdNr, KfzKennzeichen, "SDL_" & SDLNr, "HIST_" & History)
        scanSonstiges.INIT(kdNr, KfzKennzeichen, "SDL_" & SDLNr, "HIST_" & History)

        initDataBinding()
        boud = True

        If txtMSEKdNr.Text = "" Then
            getPartnerKdNrFromFMZOLL() ' Lädt die Partner-KdNr
            txtMSEKdNr.Text = PartnerKdNrFromFMZOLL.MSEKundenNr
        End If

        If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Leistungen_bearbeiten", Me.FindForm) Then
            cProgramFunctions.setControlReadOnly(Me)
        End If
    End Sub
    Sub getPartnerKdNrFromFMZOLL() ' Lädt die Partner-KdNr
        PartnerKdNrFromFMZOLL = kundenSQL.getPartnerKdNrFromFMZOLL(kdNr)
    End Sub


    Function gueltigBisabgelaufen(o) As Boolean
        If CDate(o) > Now Then
            Return False
        End If
        Return True
    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


            cbxErsatzkarte._date = SDL.ErsatzkarteAm
            cbxVerloren._date = SDL.VerlorenAm
            cbxGestohlen._date = SDL.GestohlenAm
            cbxGesperrt._date = SDL.GesperrtAm
            cbxDefekt._date = SDL.DefektAm

            cbxGesperrt.Checked = SDL.Gesperrt
            cbxDefekt.Checked = SDL.Defekt
            cbxGestohlen.Checked = SDL.Gestohlen
            cbxVerloren.Checked = SDL.Verloren
            cbxArchiviert.Checked = SDL.Archiviert

            cbxErsatzkarte.Checked = SDL.Ersatzkarte

            txtVermerk.Text = SDL.Vermerk

            UsrCntlDetails.lblErfassung.Text = SDL.Erfassungsdatum
            UsrCntlDetails.lblAenderung.Text = SDL.Änderungsdatum
            UsrCntlDetails.lblSachbearb.Text = SDL.Sachbearbeiter


            txtMSEKdNr.Text = SDL.MSE_Kd_Nr
            txtFrejusCardNr.Text = SDL.FREJUS_CARD_Nr
            txtECOKlasse.Text = SDL.ECO


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



    End Sub


    Public Sub newEntry()
        '  s.updateBinding()
        '  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

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs)
        Dim valid As Boolean = VAL.checkValidDate(sender, True)
    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.Gesperrt = cbxGesperrt.Checked
        SDL.Defekt = cbxDefekt.Checked
        SDL.Gestohlen = cbxGestohlen.Checked
        SDL.Verloren = cbxVerloren.Checked
        SDL.Ersatzkarte = cbxErsatzkarte.Checked
        SDL.Vermerk = txtVermerk.Text
        SDL.Erfassungsdatum = UsrCntlDetails.lblErfassung.Text
        SDL.Änderungsdatum = UsrCntlDetails.lblAenderung.Text
        SDL.Sachbearbeiter = UsrCntlDetails.lblSachbearb.Text
        SDL.MSE_Kd_Nr = txtMSEKdNr.Text
        SDL.FREJUS_CARD_Nr = txtFrejusCardNr.Text
        SDL.ECO = txtECOKlasse.Text

        SDL.ErsatzkarteAm = cbxErsatzkarte._date
        SDL.VerlorenAm = cbxVerloren._date
        SDL.GestohlenAm = cbxGestohlen._date
        SDL.GesperrtAm = cbxGesperrt._date
        SDL.DefektAm = cbxDefekt._date
        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 txtBestellung_TextChanged(sender As Object, e As EventArgs) Handles txtBestellung.PropertyChanged, txtLieferung.PropertyChanged, txtMSEKdNr.TextChanged, txtFrejusCardNr.TextChanged, txtECOKlasse.TextChanged, txtVermerk.TextChanged, cbxErsatzkarte.CheckedChanged, cbxDefekt.CheckedChanged, cbxVerloren.CheckedChanged, cbxGestohlen.CheckedChanged, cbxGesperrt.CheckedChanged, 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 txtLieferung Then
                If Not PROG.checkSDLNrPartnerKdNr(kdNr, SDLNr) Then MsgBox("Bitte geben Sie die Partner-Kundennummer im Kundenblatt oder im FM-ZOLL ein!")
            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
