Imports System.ComponentModel

Public Class frmSeminarDetails
    Public semId As Integer = -1
    Public vortragenderId As Integer
    Private SEMINARE As New cSeminare
    Dim seminar As New cSeminar
    Dim cOptionenDAL As New cOptionenDAL
    Private Grid_aktiv As Boolean = False
    Private Anzahl As Integer
    Private locZeilen As Integer = -1



    Private Sub TextBox5_TextChanged(sender As Object, e As EventArgs) Handles txtName.TextChanged
        lblSeminarname.Text = txtName.Text
    End Sub

    Private Sub frmSeminarDetails_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        If semId >= 0 Then
            seminar = SEMINARE.getSeminarById(semId)
            btnAddTeilnehmer.Enabled = True
            btnDelTeilnehmer.Enabled = True
        Else
            btnSave.Visible = False
            btnAddTeilnehmer.Enabled = False
            btnDelTeilnehmer.Enabled = False
        End If

        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unterschr. Vorstand + Vortr.Name (Standard)", "rptSeminatZert.rpx"))
        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unterschr. Vorstand", "rptSeminatZertVorst.rpx"))
        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unterschr. Vorstand + Vortr.Allg / nur Inh. 1", "rptSeminatZertAllgUnter.rpx"))
        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unterschr. XXX", "rptSeminatZertVorst.rpx"))
        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Interne Ausbildung CS", "rptIntAusb.rpx")) '3
        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Interne Ausbildung AG", "rptIntAusbAG.rpx")) '3
        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Interne Ausbildung ATILLA", "rptIntAusbATILLA.rpx")) '3
        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Interne Ausbildung IMEX", "rptIntAusbIMEX.rpx")) '3
        cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Interne Ausbildung FRONT-OFFICE", "rptIntAusbFRONTOFFICE.rpx")) '3


        datVon.Format = DateTimePickerFormat.Long
        datBis.Format = DateTimePickerFormat.Long
        datDauer.Format = DateTimePickerFormat.Custom : datDauer.CustomFormat = "HH:mm" : datDauer.ShowUpDown = True
        datVonTime.Format = DateTimePickerFormat.Custom : datVonTime.CustomFormat = "HH:mm" : datVonTime.ShowUpDown = True
        datBisTime.Format = DateTimePickerFormat.Custom : datBisTime.CustomFormat = "HH:mm" : datBisTime.ShowUpDown = True

        initLoad()
        Grid_aktiv = True
        Tabelle_anzeigen()
    End Sub

    Private Sub initLoad()
        txtName.Text = seminar.sem_name
        '   datVon.Text = seminar.sem_von
        ' datBis.Text = seminar.sem_bis
        cboOrt.Text = seminar.sem_ort
        cbxIsVERAG_Seminar.Checked = seminar.sem_isVeragSeminar
        cbxIntAusbildung.Checked = seminar.sem_isIntAusbildung
        txtVortragender.Text = seminar.sem_vortragender
        rtbInhalt.Text = seminar.sem_inhalt
        rtbInhalt2.Text = seminar.sem_inhalt2
        rtbinfo.Text = seminar.sem_info
        datDauer.Text = seminar.sem_dauer
        lblBez.Text = seminar.sem_bezeichnung

        Dim dtVon As DateTime = seminar.sem_von
        datVonTime.Text = dtVon.ToString("HH:mm")
        datVon.Text = seminar.sem_von

        Dim dtBis As DateTime = seminar.sem_bis
        datBisTime.Text = dtBis.ToString("HH:mm")
        datBis.Text = seminar.sem_bis

    End Sub
    Private Sub initSave()
        seminar.sem_name = txtName.Text
        '  seminar.sem_von = datVon.Text
        'seminar.sem_bis = datBis.Text
        seminar.sem_ort = cboOrt.Text
        seminar.sem_isVeragSeminar = cbxIsVERAG_Seminar.Checked
        seminar.sem_isIntAusbildung = cbxIntAusbildung.Checked
        seminar.sem_vortragender = txtVortragender.Text
        seminar.sem_inhalt = rtbInhalt.Text
        seminar.sem_inhalt2 = rtbInhalt2.Text
        seminar.sem_info = rtbinfo.Text
        seminar.sem_dauer = datDauer.Text
        seminar.sem_bezeichnung = lblBez.Text

        Dim dtVon = DateTime.Parse(datVon.Text & " " & datVonTime.Text)
        seminar.sem_von = dtVon
        Dim dtBis = DateTime.Parse(datBis.Text & " " & datBisTime.Text)
        seminar.sem_bis = dtBis
        seminar.sem_type = "SCHULUNG"
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnAddTeilnehmer.Click
        frmMitarbSuche.searchUse = "addTeilnehmer"
        frmMitarbSuche.Show()
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        frmMitarbSuche.searchUse = "vortragender"
        frmMitarbSuche.Show()
    End Sub

    Public Sub Tabelle_anzeigen()
        Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds
        'lblMs.Image = My.Resources.sanduhr
        'Paint wieder reaktivieren
        locZeilen = -1
        If Not Grid_aktiv Then Exit Sub
        Dim top As String = "" ' "top 100"

        'je nach Auswahl SQL anpassen
        Dim hSQL = "SELECT semi_id,mit_id, mit_username, mit_vname, mit_nname, mit_niederlassung, mit_abteilung,mit_geschlecht FROM tblMitarbeiter INNER JOIN tblSemMitarb ON semi_semId=" & semId & "  AND mit_id=semi_mitId "

        ' MsgBox(hSQL)
        dgvTeilnehmer.DataSource = cOptionenDAL.AnzeigeTabelle(hSQL)


        'Tabelle Kommt/Geht bereinigen
        If dgvTeilnehmer.RowCount = 0 Then
            dgvTeilnehmer.DataSource = Nothing
        Else
            Spalten_festlegen()
            '  Eintraege_festlegen()
            'AL: Sortierung nach Ausfahrt (Zeit)
            dgvTeilnehmer.Sort(dgvTeilnehmer.Columns(3), ListSortDirection.Ascending)
        End If

        'Anzeige der Anzahl gewählter/aller Datensätze
        If (dgvTeilnehmer.RowCount = 100) Then
            'lblAnzahl.Text = Format(dgvTeilnehmer.RowCount, "#,##0") & " ausgewählt (Die Suche wurde auf 100 Ergebnisse beschränkt.)"
        Else
            ' lblAnzahl.Text = Format(dgvTeilnehmer.RowCount, "#,##0") & " ausgewählt"
        End If
        ' lblAnzahl.Refresh()
        Dim ende As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds
        ' lblMs.Text = "Ladezeit: " & (ende - start) & " ms"
        'lblMs.Image = Nothing
    End Sub


    Private Sub Spalten_festlegen()
        With dgvTeilnehmer
            .RowTemplate.Height = 20
            .RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft
            .AllowUserToAddRows = False
            .AllowUserToDeleteRows = False
            .AllowUserToOrderColumns = False
            .AllowUserToResizeColumns = False
            .AllowUserToResizeRows = False
            .RowTemplate.ReadOnly = True
            .RowHeadersVisible = False
            .SelectionMode = DataGridViewSelectionMode.FullRowSelect

            .AllowUserToOrderColumns = True

            .Columns(0).Visible = False     'ID nicht anzeigen
            .Columns(1).Visible = False     'ID nicht anzeigen

            .Columns(2).Width = 90
            .Columns(2).HeaderText = "Username"
            .Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            .Columns(3).Width = 160
            .Columns(3).HeaderText = "Vorname"

            .Columns(4).Width = 180
            .Columns(4).HeaderText = "Nachname"

            .Columns(5).Width = 95
            .Columns(5).HeaderText = "Niederlassung"

            .Columns(6).Width = 95
            .Columns(6).HeaderText = "Abteilung"

            .Columns(7).Visible = False     'geschlecht nicht anzeigen


        End With
    End Sub


    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles btnDelTeilnehmer.Click
        SEMINARE.delSemMitarbeiter(dgvTeilnehmer.CurrentRow.Cells(0).Value)
        Tabelle_anzeigen()
    End Sub

    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        saveSeminar()
        Me.Close()
    End Sub

    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub

    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
        saveSeminar()
    End Sub

    Private Sub saveSeminar()
        initSave()
        If semId >= 0 Then
            seminar.sem_id = semId
            SEMINARE.updateSeminare(seminar)
        Else
            initSave()
            SEMINARE.insertSeminare(seminar)
        End If
        frmMain.btnSchulungen.PerformClick()
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnPrintAllCert.Click
        If dgvTeilnehmer.Rows.Count = 0 Then MsgBox("Keine Teilnehmer eingetragen!") : Exit Sub
        Dim semiCert As New semiCert
        Dim teilnehmer(dgvTeilnehmer.RowCount - 1) As String
        Dim cnt As Integer = 0
        For Each Zeile As DataGridViewRow In dgvTeilnehmer.Rows
            If cbxIntAusbildung.Checked Then
                If Zeile.Cells(7).Value = "m" Then teilnehmer(cnt) = "Herr "
                If Zeile.Cells(7).Value = "w" Then teilnehmer(cnt) = "Frau "
            End If
            teilnehmer(cnt) = teilnehmer(cnt) & Zeile.Cells(3).Value & " "
            teilnehmer(cnt) = teilnehmer(cnt) & Zeile.Cells(4).Value
            cnt += 1
        Next
        semiCert.teilnehmer = teilnehmer

        If datBis.Text = datVon.Text Then
            semiCert.datum = "hat am " & datVon.Value.ToShortDateString & " am Seminar"
        Else
            semiCert.datum = "hat vom " & datVon.Value.ToShortDateString & " bis zum " & datBis.Value.ToShortDateString & " am Seminar"
        End If

        semiCert.titel = txtName.Text
        semiCert.inhalt = rtbInhalt.Text
        semiCert.inhalt2 = rtbInhalt2.Text
        semiCert.referent = txtVortragender.Text

        semiCert.unterzeichnender = txtVortragender.Text


        '    semiCert.zeitraum = lblBez.Text
        If Not cboReportVorlage.SelectedItem Is Nothing Then frmActiveReprotViewer.report = CType(cboReportVorlage.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value
        If cbxIntAusbildung.Checked Then
            semiCert.datum = lblBez.Text
            frmActiveReprotViewer.BefüllenSeminarZertifikatIntern(semiCert)
        Else
            frmActiveReprotViewer.BefüllenSeminarZertifikat(semiCert)
        End If
        frmActiveReprotViewer.Show()

    End Sub


    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles btnPrintSelectedCert.Click
        If dgvTeilnehmer.Rows.Count = 0 Then MsgBox("Keine Teilnehmer eingetragen!") : Exit Sub
        Dim semiCert As New semiCert
        Dim teilnehmer(dgvTeilnehmer.SelectedRows.Count - 1) As String
        Dim cnt As Integer = 0
        For Each Zeile As DataGridViewRow In dgvTeilnehmer.Rows
            If Zeile.Selected Then
                If cbxIntAusbildung.Checked Then
                    If Zeile.Cells(7).Value = "m" Then teilnehmer(cnt) = "Herr "
                    If Zeile.Cells(7).Value = "w" Then teilnehmer(cnt) = "Frau "
                End If
                teilnehmer(cnt) = teilnehmer(cnt) & Zeile.Cells(3).Value & " "
                teilnehmer(cnt) = teilnehmer(cnt) & Zeile.Cells(4).Value
                cnt += 1
            End If
        Next
        semiCert.teilnehmer = teilnehmer

        If datBis.Text = datVon.Text Then
            'semiCert.datum = lblBez.Text
            semiCert.datum = "hat am " & datVon.Value.ToShortDateString & " am Seminar"
        Else
            semiCert.datum = "hat vom " & datVon.Value.ToShortDateString & " bis zum " & datBis.Value.ToShortDateString & " am Seminar"
        End If

        semiCert.titel = txtName.Text
        semiCert.inhalt = rtbInhalt.Text
        semiCert.inhalt2 = rtbInhalt2.Text
        semiCert.referent = txtVortragender.Text
        semiCert.unterzeichnender = lblBez.Text
        If Not cboReportVorlage.SelectedItem Is Nothing Then frmActiveReprotViewer.report = CType(cboReportVorlage.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value
        'frmActiveReprotViewer.semiCert = semiCert
        If cbxIntAusbildung.Checked Then
        '    semiCert.datum = lblBez.Text
            frmActiveReprotViewer.BefüllenSeminarZertifikatIntern(semiCert)
        Else
            frmActiveReprotViewer.BefüllenSeminarZertifikat(semiCert)
        End If
        frmActiveReprotViewer.Show()
    End Sub

    Private Sub cbxIntAusbildung_CheckedChanged(sender As Object, e As EventArgs) Handles cbxIntAusbildung.CheckedChanged
        lblBez.Enabled = cbxIntAusbildung.Checked
        datVon.Enabled = Not cbxIntAusbildung.Checked
        datBis.Enabled = Not cbxIntAusbildung.Checked
        datVonTime.Enabled = Not cbxIntAusbildung.Checked
        datBisTime.Enabled = Not cbxIntAusbildung.Checked
        datDauer.Enabled = Not cbxIntAusbildung.Checked
        cboOrt.Enabled = Not cbxIntAusbildung.Checked
        rtbInhalt2.Enabled = Not cbxIntAusbildung.Checked
        If cbxIntAusbildung.Checked Then
            For Each i As VERAG_PROG_ALLGEMEIN.MyListItem In cboReportVorlage.Items
                If i.Value = "rptIntAusb.rpx" Then cboReportVorlage.SelectedItem = i : Exit For
            Next
        Else
            cboReportVorlage.SelectedIndex = 0
        End If
    End Sub
End Class

Public Class semiCert
    Property teilnehmer As Array
    Property datum As String
    Property titel As String
    Property inhalt As String
    Property inhalt2 As String
    Property referent As String
    Property zeitraum As String
    Property unterzeichnender As String
End Class