Imports System.ComponentModel
Imports System.IO
Imports System.IO.Ports
Imports System.Threading

Imports System.Net.Sockets
Imports System.Text

Public Class Form2



    Dim myport As Array
    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        useradmin.Enabled = False
        status.Enabled = False
        '  studtag.TextAlign = Left
        studtag.MaxLength = 6
        jam.Enabled = False
        tanggal.Enabled = False
        studtag.Enabled = False
        nomor.Enabled = False
        Call bukadb()
        '  Call tes()




        Timer1.Enabled = True
        myport = IO.Ports.SerialPort.GetPortNames

        cbaud.Items.Add(9600)
        cbaud.Items.Add(19200)
        cbaud.Items.Add(38400)
        cbaud.Items.Add(57600)
        cbaud.Items.Add(115200)

        For i = 0 To UBound(myport)
            cport.Items.Add(myport(i))
        Next i
        cport.Text = cport.Items(0)

        cbaud.Text = cbaud.Items(0)
        DataGridView2.RowsDefaultCellStyle.BackColor = Color.LightBlue
        DataGridView2.AlternatingRowsDefaultCellStyle.BackColor = Color.WhiteSmoke
    End Sub
    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

        Dim StringIn As String = SerialPort1.ReadLine()
        Me.Invoke(Sub() studtag.Text = StringIn) 'we need to invoke since we're on another thread'

    End Sub

    Private Sub konek_Click(sender As Object, e As EventArgs) Handles konek.Click
        SerialPort1.PortName = cport.Text
        SerialPort1.BaudRate = cbaud.Text
        SerialPort1.Open()
        MessageBox.Show("Koneksi Port OK", "Informasi Koneksi", MessageBoxButtons.OK, MessageBoxIcon.Information)
        status.Text = "Terhubung"
        studtag.Focus()
        konek.Enabled = False
        Button1.Enabled = True
        cport.Enabled = False
        cbaud.Enabled = False

    End Sub

    Private Sub studtag_TextChanged(sender As Object, e As EventArgs) Handles studtag.TextChanged

        Call bukadb()
        Dim q As String
        q = "select * from input where NIK='" & studtag.Text & "' and TANGGAL='" & tanggal.Text & "'"
        cmd = New MySql.Data.MySqlClient.MySqlCommand(q, conn)
        rd = cmd.ExecuteReader
        rd.Read()
        If rd.HasRows Then
            studtag.Focus()
            MsgBox("Data sudah absen", vbOKOnly, "Warning")

            conn.Close()


        Else


            Call bukadb()
            Dim sd As String
            sd = "insert into input values('" & nomor.Text & "','" & studtag.Text & "','" & jam.Text & "','" & tanggal.Text & "','" & studtag.Text & "')"
            cmd = New MySql.Data.MySqlClient.MySqlCommand(sd, conn)
            cmd.ExecuteNonQuery()
            studtag.Focus()

            Form2_Load(sender, e)


            studtag.SelectionStart = 0
            studtag.SelectionLength = Len(studtag.Text)


            ' Dim str As String
            'str = "Update karyawan set KETERANGAN='" & jam.Text & "'"
            'cmd = New MySql.Data.MySqlClient.MySqlCommand(str, conn)
            'cmd.ExecuteNonQuery()



            cmd = New MySql.Data.MySqlClient.MySqlCommand("SELECT input.NOMOR,mahasiswa.NIM,input.WAKTU,input.TANGGAL, mahasiswa.NAMA, mahasiswa.PRODI, mahasiswa.SEMESTER FROM input INNER JOIN mahasiswa ON input.ID=mahasiswa.ID where TANGGAL='" & tanggal.Text & "'", conn)
            da = New MySql.Data.MySqlClient.MySqlDataAdapter(cmd)
            Dim dt As New DataTable
            da.Fill(dt)

            DataGridView2.DataSource = dt
            DataGridView2.Sort(DataGridView2.Columns(2), ListSortDirection.Descending)
            DataGridView2.ReadOnly = True

            DataGridView2.Refresh()
            DataGridView2.Columns(0).Width = 150
            DataGridView2.Columns(1).Width = 100
            DataGridView2.Columns(2).Width = 100
            DataGridView2.Columns(3).Width = 100
            DataGridView2.Columns(4).Width = 400
            DataGridView2.Columns(5).Width = 300
            DataGridView2.Columns(6).Width = 100
            ' Call tampilgrid()
            Form2_Load(sender, e)
        End If

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        SerialPort1.Close()

        MessageBox.Show("Koneksi Port OFF.", "Informasi Koneksi", MessageBoxButtons.OK, MessageBoxIcon.Information)
        status.Text = "Diskonek"
        konek.Enabled = True
        Button1.Enabled = False
        studtag.Text = ""
        cport.Enabled = True
        cbaud.Enabled = True
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        tanggal.Text = Format(Now, "yyyy/MM/dd")
        jam.Text = Format(Now, "hh:mm:ss")
        nomor.Text = Format(Now, "ddMMyyyy-hhmmss")
    End Sub

    Private Sub KELUARToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KELUARToolStripMenuItem.Click
        Dim t As String
        t = MsgBox("Yakin Anda Ingin Menutup Aplikasi Ini ?", vbYesNo + vbInformation, "Tutup Aplikasi")
        If t = vbYes Then
            studtag.Text = ""
            'SerialPort1.Close()
            Close()
            Form1.Show()
            Form1.Enabled = True


        ElseIf t = vbNo Then




        End If
    End Sub

    Private Sub DATAKEHADIRANMAHASISWAToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DATAKEHADIRANMAHASISWAToolStripMenuItem.Click
        Form4.Show()
    End Sub

    Private Sub XToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles XToolStripMenuItem.Click
        Form3.Show()
    End Sub

    Private Sub GroupBox2_Enter(sender As Object, e As EventArgs) Handles GroupBox2.Enter

    End Sub

    Private Sub MenuStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked

    End Sub
End Class