Toshiba_Kanban_Issuance/Mounting Sequence/Forms/mountingForm.vb

1420 lines
51 KiB
VB.net

Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports System.IO.Ports
Public Class mountingForm
Public mountStart As Boolean = False
Public status As Boolean = False
Public mountAfter As Boolean = False
Public reload As Boolean = False
Public match As Boolean = True
Public qacheck As Boolean = False
Public notissued As Boolean = False
Public wrongline As Boolean = False
Public mismatch As Boolean = False
Private sequence As New Sequence()
Private currentsequence As String
Private currentrev As String
Private currentline As String
Private currentmodel As String
Private currenttype As String
Private verificationTime As DateTime
Private expirationDate As DateTime
Private isQA As Boolean = False
Private isVerification As Boolean = False
Private kseqno As String
Public mounted As Boolean = False
Private checkVerification As Boolean = True
Dim proceed As Boolean
Private cnstr As String
Private Sub mountingForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MdiParent = mainForm
Control.CheckForIllegalCrossThreadCalls = False
getSequence()
Timer1.Interval = 500
Timer1.Start()
Timer1.Enabled = False
btn_reload.Enabled = False
btn_Check.Enabled = False
btnComplete.Visible = False
dg.Visible = False
initializeDG()
Timer3.Start()
'Dim cnstr = mainForm.cnstr
'Dim conn As New SqlConnection(cnstr)
'Dim myQuery As String
'myQuery = "SELECT * FROM KPORT WHERE line = '" & cmbLine.Text & "'"
'Dim mycommand As SqlCommand
'mycommand = New SqlCommand(myQuery, conn)
'Dim spdate As Date
'Try
' conn.Open()
' Dim reader As SqlDataReader = mycommand.ExecuteReader()
' reader.Read()
' Dim comport As String
' comport = reader("KPortnum")
' conn.Close()
' spdate = lbldo.Text
' lbled.Text = spdate.AddDays(2)
'SerialPort1.Close()
'SerialPort1.PortName = comport
'SerialPort1.BaudRate = 9600
'SerialPort1.DataBits = 8
'SerialPort1.Parity = Parity.None
'SerialPort1.StopBits = StopBits.One
'SerialPort1.Handshake = Handshake.None
' SerialPort1.Encoding = System.Text.Encoding.Default
'Catch ex As Exception
' 'MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
'End Try
'conn.Close()
End Sub
Private Sub getSequence()
Dim sequence As New Sequence
Dim sequenceList As New List(Of String)
Dim i As Integer = 0
cmbRev.Items.Clear()
sequenceList = sequence.getValidSequence()
cmbSeq.Items.Clear()
While i < sequenceList.Count
cmbSeq.Items.Add(sequenceList(i))
i = i + 1
End While
End Sub
Public Sub getRevisions()
Dim rev As New Sequence
Dim revList As New List(Of String)
Dim i As Integer = 0
revList = rev.getRevisions(cmbSeq.SelectedItem, cmbLine.SelectedItem, cmbModel.SelectedItem, cmbType.SelectedItem)
cmbRev.Items.Clear()
While i < revList.Count
cmbRev.Items.Add(revList(i))
i = i + 1
End While
End Sub
Public Sub getModels()
Dim rev As New Sequence
Dim revList As New List(Of String)
Dim i As Integer = 0
revList = rev.getModel(cmbSeq.SelectedItem, cmbLine.SelectedItem)
cmbModel.Items.Clear()
While i < revList.Count
cmbModel.Items.Add(revList(i))
i = i + 1
End While
End Sub
Public Sub getTypes()
Dim rev As New Sequence
Dim revList As New List(Of String)
Dim i As Integer = 0
revList = rev.getTypes(cmbSeq.SelectedItem, cmbLine.SelectedItem, cmbModel.SelectedItem)
cmbType.Items.Clear()
While i < revList.Count
cmbType.Items.Add(revList(i))
i = i + 1
End While
End Sub
Public Sub getLines()
Dim rev As New Sequence
Dim revList As New List(Of String)
Dim i As Integer = 0
revList = rev.getLines(cmbSeq.SelectedItem)
cmbLine.Items.Clear()
While i < revList.Count
cmbLine.Items.Add(revList(i))
i = i + 1
End While
End Sub
Private Sub txtStart_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtStart.KeyUp
If e.KeyCode = Keys.Enter Then
Dim fChar As String = String.Empty
Dim entry As String = txtStart.Text
Dim str() As String
If mountAfter = True Then
clear()
mountAfter = False
Timer1.Enabled = False
lbl_Pass.Visible = False
lbl_fail.Visible = False
lblMatch.Visible = False
End If
fChar = Mid(entry, 1, 1)
If (reload) Then
If entry.Contains("*") Then
txtFeeder.Text = entry.Replace("*", "")
txtStart.Text = String.Empty
txtStart.Focus()
ElseIf fChar = "@" Then
txtOperator.Text = Mid(entry, 2, Len(entry))
txtStart.Text = String.Empty
txtStart.Focus()
' ElseIf (IsNumeric(entry) And Len(entry) <> 15) Then
' txtQuantity.Text = entry
' txtStart.Text = String.Empty
' txtStart.Focus()
ElseIf IsSerialNumber(entry, isVerification, cmbLine.SelectedItem.ToString) And txtFeeder.Text.Length > 0 Then
Dim mount As New Mounting()
str = Split(txtFeeder.Text, "-")
If Not entry.StartsWith("LA") Then
txtSerial.Text = entry.Substring(0, 10)
Else
txtSerial.Text = entry
End If
Dim parts As New PartsRecords(txtSerial.Text)
txtPartNo.Text = parts.IonicsPN
txtPartDesc.Text = parts.Description
txtLotNum.Text = parts.LotNo
txtQuantity.Text = parts.Quantity
lblstatus.Text = parts.Status
txtStart.Text = String.Empty
txtStart.Focus()
If lblstatus.Text = "PDN" Then
Label15.Text = "Date Registered: "
Else
Label15.Text = "Date Open: "
End If
If txtPartNo.Text = "M705PCIS4000" Or "GY4CS000P110" And lblstatus.Text = "SMT" Then
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim myQuery As String
myQuery = "SELECT * FROM PartsLog WHERE MaterialID = '" & txtSerial.Text & "' and status = 'Mounted' order by lastupdated asc"
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Dim spdate As Date
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
reader.Read()
Dim NextTime As Date
NextTime = NextTime.AddDays(2)
spdid.Text = reader("MaterialID")
splotno.Text = reader("LotNo")
lbldo.Text = reader("lastupdated")
conn.Close()
spdate = lbldo.Text
lbled.Text = spdate.AddDays(2)
If lbled.Text <= Date.Now Then
proceed = True
NotificationForm.text = "48 HOURS EXPIRED SOLDER PASTE"
NotificationForm.ShowDialog()
Else
proceed = False
End If
Catch ex As Exception
'MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
conn.Close()
ElseIf txtPartNo.Text = "M705PCIS4000" Or "GY4CS000P110" And lblstatus.Text = "PDN" Then
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim myQuery As String
myQuery = "SELECT * FROM PartsLog WHERE MaterialID = '" & txtSerial.Text & "' and status = 'Issued' order by lastupdated asc"
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Dim spdate As Date
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
reader.Read()
Dim NextTime As Date
NextTime = NextTime.AddDays(3)
spdid.Text = reader("MaterialID")
splotno.Text = reader("LotNo")
lbldo.Text = reader("lastupdated")
conn.Close()
spdate = lbldo.Text
lbled.Text = spdate.AddDays(3)
If lbled.Text <= Date.Now Then
proceed = True
NotificationForm.text = "72 HOURS EXPIRED SOLDER PASTE"
NotificationForm.ShowDialog()
Else
proceed = False
End If
Catch ex As Exception
'MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
conn.Close()
Else
proceed = False
End If
If (proceed = False) Then
If (mount.checkOldLabel(txtPartNo.Text, txtSerial.Text, str(0), str(1), cmbRev.SelectedItem.ToString, kseqno)) Then
match = True
mismatch = False
Else
match = False
mismatch = True
End If
End If
End If
Else
If entry.Contains("*") Then
txtFeeder.Text = entry.Replace("*", "")
str = Split(txtFeeder.Text, "-")
txtStart.Text = String.Empty
txtStart.Focus()
ElseIf fChar = "@" Then
txtOperator.Text = Mid(entry, 2, Len(entry))
txtStart.Text = String.Empty
txtStart.Focus()
' ElseIf (IsNumeric(entry) And Len(entry) <> 15) Then
' txtQuantity.Text = entry
' txtStart.Text = String.Empty
' txtStart.Focus()
ElseIf IsSerialNumber(entry, isVerification, cmbLine.SelectedItem.ToString) Then
If Not entry.StartsWith("LA") Then
txtSerial.Text = entry.Substring(0, 10)
Else
txtSerial.Text = entry
End If
Dim parts As New PartsRecords(txtSerial.Text)
txtPartNo.Text = parts.IonicsPN
txtPartDesc.Text = parts.Description
txtLotNum.Text = parts.LotNo
txtQuantity.Text = parts.Quantity
lblstatus.Text = parts.Status
txtStart.Text = String.Empty
txtStart.Focus()
If lblstatus.Text = "PDN" Then
Label15.Text = "Date Registered: "
Else
Label15.Text = "Date Open: "
End If
If txtPartNo.Text = "M705PCIS4000" Or "GY4CS000P110" And lblstatus.Text = "SMT" Then
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim myQuery As String
myQuery = "SELECT * FROM PartsLog WHERE MaterialID = '" & txtSerial.Text & "' and status = 'Mounted' order by lastupdated asc"
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Dim spdate As Date
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
reader.Read()
Dim NextTime As Date
NextTime = NextTime.AddDays(2)
spdid.Text = reader("MaterialID")
splotno.Text = reader("LotNo")
lbldo.Text = reader("lastupdated")
conn.Close()
spdate = lbldo.Text
lbled.Text = spdate.AddDays(2)
If lbled.Text <= Date.Now Then
proceed = True
NotificationForm.text = "48 HOURS EXPIRED SOLDER PASTE"
NotificationForm.ShowDialog()
Else
proceed = False
End If
Catch ex As Exception
'MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
conn.Close()
ElseIf txtPartNo.Text = "M705PCIS4000" Or "GY4CS000P110" And lblstatus.Text = "PDN" Then
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim myQuery As String
myQuery = "SELECT * FROM PartsLog WHERE MaterialID = '" & txtSerial.Text & "' and status = 'Issued' order by lastupdated asc"
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Dim spdate As Date
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
reader.Read()
Dim NextTime As Date
NextTime = NextTime.AddDays(3)
spdid.Text = reader("MaterialID")
splotno.Text = reader("LotNo")
lbldo.Text = reader("lastupdated")
conn.Close()
spdate = lbldo.Text
lbled.Text = spdate.AddDays(3)
If lbled.Text <= Date.Now Then
proceed = True
NotificationForm.text = "72 HOURS EXPIRED SOLDER PASTE"
NotificationForm.ShowDialog()
Else
proceed = False
End If
Catch ex As Exception
'MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
conn.Close()
Else
proceed = False
End If
End If
End If
If proceed = False Then
'validate inputs
If validateInput() Then
str = Split(txtFeeder.Text, "-")
Dim mounting As New Mounting
mounting.mDate = DateTime.Now
mounting.machine = str(0)
mounting.revision = sequence.revision
mounting.feeder = str(1)
mounting.partno = txtPartNo.Text
mounting.quantity = CDbl(txtQuantity.Text)
mounting.lotNumber = txtLotNum.Text
mounting.mOperator = txtOperator.Text
mounting.lblserial = txtSerial.Text
mounting.sequenceno = kseqno
mounting.threePL = 0
sequence.sequenceno = kseqno
If sequence.verify(txtPartNo.Text, str(0), str(1)) = True Then
If reload Then
If match Then
lbl_Pass.Visible = True
lbl_fail.Visible = False
lblMatch.Visible = False
mounting.verify = 1
status = True
mountAfter = True
Timer1.Enabled = True
updateDGPass(txtFeeder.Text)
Dim parts As New PartsRecords
parts.mount(txtSerial.Text)
Else
UpdateComPort()
SerialPort1.Open()
SerialPort1.Write("B")
SerialPort1.Close()
lblMatch.Visible = True
lbl_Pass.Visible = False
lbl_fail.Visible = True
Timer1.Enabled = True
status = False
match = False
failverification.Show()
Me.Enabled = False
End If
Else
lbl_Pass.Visible = True
lbl_fail.Visible = False
lblMatch.Visible = False
mounting.verify = 1
status = True
mountAfter = True
Timer1.Enabled = True
updateDGPass(txtFeeder.Text)
If loginForm.userType = "Operator" Then
If Not isQA Then
Dim parts As New PartsRecords
parts.mount(txtSerial.Text)
End If
Else
'mounting.add_hist(reload, qacheck, status)
End If
End If
Else
If reload Then
If match Then
UpdateComPort()
SerialPort1.Open()
SerialPort1.Write("B")
SerialPort1.Close()
lbl_Pass.Visible = False
lbl_fail.Visible = True
lblMatch.Visible = False
mounting.verify = 0
status = False
mountAfter = True
Timer1.Enabled = True
updateDGFail(txtFeeder.Text)
failverification.Show()
Me.Enabled = False
Else
lblMatch.Visible = True
lbl_Pass.Visible = False
lbl_fail.Visible = False
mounting.verify = 0
status = False
mountAfter = True
Timer1.Enabled = True
updateDGFail(txtFeeder.Text)
If (Me.mismatch) Then
UpdateComPort()
SerialPort1.Open()
SerialPort1.Write("B")
SerialPort1.Close()
NotificationForm.text = "New and Old Part Number Mismatch!"
NotificationForm.ShowDialog()
Me.mismatch = False
failverification.Show()
Me.Enabled = False
End If
End If
Else
lbl_Pass.Visible = False
lbl_fail.Visible = True
lblMatch.Visible = False
mounting.verify = 0
status = False
mountAfter = True
Timer1.Enabled = True
updateDGFail(txtFeeder.Text)
failverification.Show()
'UpdateComPort()
'SerialPort1.Open()
'SerialPort1.Write("A")
'SerialPort1.Close()
End If
End If
mounting.add(mounted, isQA, status)
checkComplete()
Else
If (Me.notissued) Then
UpdateComPort()
SerialPort1.Open()
SerialPort1.Write("B")
SerialPort1.Close()
NotificationForm.text = "Parts not issued!"
NotificationForm.ShowDialog()
Me.notissued = False
failverification.Show()
End If
If (Me.wrongline) Then
UpdateComPort()
SerialPort1.Open()
SerialPort1.Write("A")
SerialPort1.Close()
NotificationForm.text = "Wrong line!"
NotificationForm.ShowDialog()
Me.wrongline = False
failverification.Show()
End If
txtStart.Text = String.Empty
txtStart.Focus()
End If
End If
End If
End Sub
Public Shared Function IsNumeric(ByVal sText As String) As Boolean
If Double.TryParse(sText, Globalization.NumberStyles.AllowDecimalPoint) Then
Return True
Else
Return False
End If
End Function
Public Shared Function IsSerialNumber(ByVal sText As String, ByVal isVerification As Boolean, ByVal line As String) As Boolean
Dim isPartNo As Boolean = False
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim myQuery As String
If sText.StartsWith("LA") Then
'Dim myQuery As String
myQuery = "SELECT * FROM [Toshiba_kanban].[dbo].[PartsRecords] WHERE SerialNum = '" & sText & "' AND (Status = 'PDN' OR Status = 'SMT') "
'(SELECT TOP 1 line FROM [dbo].[PartsPrepLog] WHERE status = 'Issuance' and lot_no = '" & sText & "' order by lastupdate desc) = '" & line & "'"
'myQuery = "SELECT * FROM PartsRecords WHERE SerialNum = '" & sText & "' AND (Status = 'PDN' OR Status = 'SMT') AND (SELECT TOP 1 line FROM [dbo].[PartsPrepLog] WHERE status = 'Issuance' and lot_no = '" & sText & "' order by lastupdate desc) = '" & line & "'"
Else
'Dim myQuery As String
myQuery = "SELECT * FROM [Toshiba_kanban].[dbo].[PartsRecords] WHERE SerialNum = '" & sText.Substring(0, 10) & "' AND (Status = 'PDN' OR Status = 'SMT') "
'(SELECT TOP 1 line FROM [dbo].[PartsPrepLog] WHERE status = 'Issuance' and lot_no = '" & sText.Substring(0, 10) & "' order by lastupdate desc) = '" & line & "'
'myQuery = "SELECT * FROM PartsRecords WHERE SerialNum = '" & sText.Substring(0, 10) & "' AND (Status = 'PDN' OR Status = 'SMT') AND (SELECT TOP 1 line FROM [dbo].[PartsPrepLog] WHERE status = 'Issuance' and lot_no = '" & sText.Substring(0, 10) & "' order by lastupdate desc) = '" & line & "'"
End If
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
If reader.HasRows Then
reader.Read()
Dim status = reader("Status").ToString
If sText.StartsWith("LA") Then
myQuery = "SELECT TOP 1 line FROM [dbo].[PartsPrepLog] WHERE status = 'Issuance' and lot_no = '" & sText & "' order by lastupdate desc"
Else
myQuery = "SELECT TOP 1 line FROM [dbo].[PartsPrepLog] WHERE status = 'Issuance' and lot_no = '" & sText.Substring(0, 10) & "' order by lastupdate desc"
End If
reader.Close()
mycommand = New SqlCommand(myQuery, conn)
reader = mycommand.ExecuteReader()
reader.Read()
If (reader("line") = line) Then
If (isVerification) Then
If (status = "SMT") Then
mountingForm.mounted = True
isPartNo = True
Else
mountingForm.mounted = False
isPartNo = False
End If
Else
If (status = "SMT") Then
mountingForm.mounted = True
Else
mountingForm.mounted = False
End If
isPartNo = True
End If
Else
isPartNo = False
mountingForm.wrongline = True
End If
Else
isPartNo = False
mountingForm.notissued = True
End If
reader.Close()
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
conn.Close()
End Try
Return isPartNo
End Function
Public Shared Function getDesc(ByVal partNum As String) As String
Dim desc As String = String.Empty
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim myQuery As String
myQuery = "SELECT * FROM KPARTS WHERE KPTPARTNUM = '" & partNum & "'"
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
reader.Read()
desc = reader("KPTDESCRIPTION")
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
conn.Close()
End Try
Return desc
End Function
Private Function validateInput() As Boolean
Dim valid As Boolean = False
If qacheck = True Then
If txtPartNo.Text <> "" And txtFeeder.Text <> "" And txtOperator.Text <> "" Then
valid = True
End If
Else
If txtPartNo.Text <> "" And txtFeeder.Text <> "" And txtLotNum.Text <> "" And txtQuantity.Text <> "" And txtOperator.Text <> "" Then
valid = True
End If
End If
Return valid
End Function
Private Sub clear()
txtSerial.Text = String.Empty
txtFeeder.Text = String.Empty
txtPartNo.Text = String.Empty
txtPartDesc.Text = String.Empty
txtQuantity.Text = String.Empty
txtLotNum.Text = String.Empty
txtOperator.Text = String.Empty
txtStart.Text = String.Empty
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Timer1.Enabled = True Then
If Timer1.Tag = True Then
If match = True Then
If status = True Then
lbl_Pass.Visible = True
Else
lbl_fail.Visible = True
End If
Else
lblMatch.Visible = True
End If
Timer1.Tag = False
Else
If match = True Then
If status = True Then
lbl_Pass.Visible = False
Else
lbl_fail.Visible = False
End If
Else
lblMatch.Visible = False
End If
Timer1.Tag = True
End If
End If
End Sub
Private Sub btn_setSequence_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_setSequence.Click
If mountStart = False Then
If cmbSeq.SelectedItem <> "" And cmbRev.SelectedItem <> "" And cmbModel.SelectedItem <> "" And cmbLine.SelectedItem <> "" And cmbType.SelectedItem <> "" Then
kseqno = sequence.getSequenceNo(cmbSeq.SelectedItem, cmbLine.SelectedItem, cmbModel.SelectedItem, cmbType.SelectedItem, cmbRev.SelectedItem)
'MsgBox(kseqno)
sequence.account = cmbSeq.SelectedItem
sequence.revision = cmbRev.SelectedItem
Dim m As New Mounting
m.addSettings(cmbLine.SelectedItem.ToString, kseqno)
cmbSeq.Enabled = False
cmbRev.Enabled = False
cmbModel.Enabled = False
cmbLine.Enabled = False
cmbType.Enabled = False
btn_reload.Enabled = True
btn_Check.Enabled = True
If isQA Then
btnReload.Visible = True
Else
btnQA.Visible = True
End If
btn_setSequence.Text = "Change Sequence"
txtStart.Focus()
'If (Not currentsequence = sequence.account Or Not currentrev = sequence.revision Or Not currentmodel = sequence.model Or Not currentline = sequence.line Or Not currenttype = sequence.pcbside) Then
' qaMode()
' clear()
' Timer1.Stop()
' lbl_fail.Visible = False
' lbl_Pass.Visible = False
' btnReload.Visible = False
'Else
' checkComplete()
'End If
If (MessageBox.Show("Do you want to resume mounting sequence?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes) Then
checkComplete()
reloadMode()
reload = True
verificationTime = DateTime.Now.AddHours(2)
'verificationTime = DateTime.Now.AddMinutes(1)
lblVerification.Text = "Next Verification: " & verificationTime.ToString
checkVerification = True
Timer2.Start()
Else
qaMode()
clear()
Timer1.Stop()
Timer2.Stop()
checkVerification = False
lbl_fail.Visible = False
lbl_Pass.Visible = False
lblMatch.Visible = False
btnReload.Visible = False
End If
currentsequence = sequence.account
currentrev = sequence.revision
currentline = sequence.line
currentmodel = sequence.model
currenttype = sequence.pcbside
mountStart = True
Else
MessageBox.Show("Please select the machine and revision to use.", "Set Machine", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Else
btn_setSequence.Text = "Set Sequence"
btnQA.Visible = False
cmbSeq.Enabled = True
cmbRev.Enabled = True
cmbModel.Enabled = True
cmbLine.Enabled = True
cmbType.Enabled = True
btn_reload.Enabled = False
btn_Check.Enabled = False
btnReload.Visible = False
mountStart = False
End If
End Sub
Private Sub getExpirationDate()
'If cmbSeq.SelectedItem <> "" And cmbRev.SelectedItem <> "" And cmbModel.SelectedItem <> "" And cmbLine.SelectedItem <> "" And cmbType.SelectedItem <> "" Then
' kseqno = sequence.getSequenceNo(cmbSeq.SelectedItem, cmbLine.SelectedItem, cmbModel.SelectedItem, cmbType.SelectedItem, cmbRev.SelectedItem)
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim myQuery As String
myQuery = "SELECT * FROM KMOUNTING WHERE KMTPARTNO = 'M705PCIS4000' or KMTPARTNO = 'GY4CS000P110' AND KMTMACHINE = '0" & cmbLine.Text & "' ORDER BY KMTDATE DESC"
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Dim spdate As Date
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
reader.Read()
Dim NextTime As Date
NextTime = NextTime.AddDays(2)
spdid.Text = reader("KMTLABEL")
splotno.Text = reader("KMTLOT")
lbldo.Text = reader("KMTDATE")
conn.Close()
spdate = lbldo.Text
lbled.Text = spdate.AddDays(2)
If lbled.Text <= Date.Now Then
NotificationForm.text = "EXPIRED SOLDER PASTE"
NotificationForm.ShowDialog()
End If
Catch ex As Exception
'MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
conn.Close()
'End If
End Sub
Private Sub cmbSeq_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSeq.SelectedIndexChanged
getLines()
btn_reload.Enabled = False
btn_Check.Enabled = False
End Sub
Private Sub btn_reload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_reload.Click
If reload = False Then
btn_reload.Text = "Set Normal Mode"
reload = True
btn_Check.Visible = False
txtStart.Focus()
Me.BackColor = Color.HotPink
Else
btn_reload.Text = "Set Reload Mode"
reload = False
btn_Check.Visible = False
txtStart.Focus()
Me.BackColor = System.Drawing.SystemColors.Control
End If
End Sub
Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter
End Sub
Public Sub qaMode()
btnReload.Text = "Normal Mode"
btnComplete.Visible = True
qacheck = True
btnQA.Visible = False
btnReload.Visible = False
btn_reload.Visible = False
txtLotNum.Visible = False
Label8.Visible = False
txtQuantity.Visible = False
Label7.Visible = False
If isVerification Then
Me.BackColor = Color.PaleVioletRed
Else
Me.BackColor = Color.Goldenrod
End If
dg.Visible = True
fillDataSet()
fillDataGridView()
txtStart.Focus()
UpdateComPort()
End Sub
Private Sub btn_Check_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Check.Click
If qacheck = False Then
qaMode()
Else
reloadMode()
End If
End Sub
Public Sub reloadMode()
btnReload.Text = "Normal Mode"
btnComplete.Visible = False
btnQA.Visible = True
btnReload.Visible = False
reload = True
qacheck = False
btn_reload.Visible = False
txtLotNum.Visible = True
Label8.Visible = True
txtQuantity.Visible = True
Label7.Visible = True
Me.BackColor = System.Drawing.SystemColors.Control
dg.Visible = False
txtStart.Focus()
End Sub
Private Sub initializeDG()
Dim Serial As New DataGridViewTextBoxColumn
Dim Feeder As New DataGridViewTextBoxColumn
Dim PartNo As New DataGridViewTextBoxColumn
Dim Status As New DataGridViewTextBoxColumn
Serial.HeaderText = "Serial"
Feeder.HeaderText = "Feeder"
PartNo.HeaderText = "PartNumber"
Status.HeaderText = "Status"
dg.Columns.Add(Feeder)
dg.Columns.Add(PartNo)
dg.Columns.Add(Status)
dg.Columns.Add(Serial)
dg.Columns(0).ReadOnly = True
dg.Columns(1).ReadOnly = True
dg.Columns(2).ReadOnly = True
dg.Columns(3).ReadOnly = True
dg.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.None
dg.Columns(0).Width = 75
dg.Columns(1).Width = 180
dg.Columns(2).Width = 100
dg.Columns(3).Width = 150
dg.Columns(0).SortMode = DataGridViewColumnSortMode.Programmatic
dg.Columns(1).SortMode = DataGridViewColumnSortMode.Programmatic
dg.Columns(2).SortMode = DataGridViewColumnSortMode.Programmatic
dg.Columns(3).SortMode = DataGridViewColumnSortMode.Programmatic
End Sub
Private Sub fillDataSet()
Dim i As Integer
Dim limit As Integer
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim adapter As New SqlDataAdapter
kseqno = sequence.getSequenceNo(cmbSeq.SelectedItem, cmbLine.SelectedItem, cmbModel.SelectedItem, cmbType.SelectedItem, cmbRev.SelectedItem)
Dim myQuery As String
myQuery = "SELECT * FROM KSEQUENCE_DETAIL WHERE KSEQUENCENO = '" & kseqno & "'"
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Try
conn.Open()
adapter.SelectCommand = mycommand
ds.Clear()
adapter.Fill(ds)
i = 0
limit = ds.Tables(0).Rows.Count - 1
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
conn.Close()
End Try
End Sub
Private Sub fillDataGridView()
Dim i As Integer = 0
dg.Rows.Clear()
For i = 0 To ds.Tables(0).Rows.Count - 1
dg.Rows.Add()
dg.Rows(i).Cells(0).Value = ds.Tables(0).Rows(i).Item("KSQMODULE") + "-" + ds.Tables(0).Rows(i).Item("KSQFEEDERNO")
dg.Rows(i).Cells(1).Value = ds.Tables(0).Rows(i).Item("KSQPARTNO")
dg.Rows(i).Cells(2).Value = ""
dg.Rows(i).Cells(3).Value = ""
Next
End Sub
Private Sub updateDGPass(ByVal Feeder As String)
Dim i As Integer = 0
If dg.Rows.Count > 0 Then
While i < dg.Rows.Count
If dg.Rows(i).Cells(0).Value = Feeder Then
dg.Rows(i).Cells(2).Value = "PASS"
dg.Rows(i).Cells(3).Value = txtSerial.Text
dg.Rows(i).Cells(0).Style.BackColor = Color.Green
dg.Rows(i).Cells(1).Style.BackColor = Color.Green
dg.Rows(i).Cells(2).Style.BackColor = Color.Green
dg.Rows(i).Cells(3).Style.BackColor = Color.Green
'dg.Rows(i).Selected = True
'dg.Rows(i).Cells(0).Selected = True
dg.CurrentCell = dg(0, i)
End If
i = i + 1
End While
End If
End Sub
Private Sub updateDGFail(ByVal Feeder As String)
Dim i As Integer = 0
If dg.Rows.Count > 0 Then
While i < dg.Rows.Count
If dg.Rows(i).Cells(0).Value = Feeder Then
dg.Rows(i).Cells(2).Value = "FAIL"
dg.Rows(i).Cells(3).Value = txtSerial.Text
dg.Rows(i).Cells(0).Style.BackColor = Color.Red
dg.Rows(i).Cells(1).Style.BackColor = Color.Red
dg.Rows(i).Cells(2).Style.BackColor = Color.Red
dg.Rows(i).Cells(3).Style.BackColor = Color.Red
'dg.Rows(i).Selected = True
'dg.Rows(i).Cells(0).Selected = True
dg.CurrentCell = dg(0, i)
End If
i = i + 1
End While
End If
End Sub
Private Sub btnComplete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnComplete.Click
Dim msg As String = ""
Dim i As Integer = 0
Dim t As Integer = 0
Dim p As Integer = 0
Dim f As Integer = 0
If dg.Rows.Count > 0 Then
While i < dg.Rows.Count - 1
If dg.Rows(i).Cells(2).Value <> "" Then
If dg.Rows(i).Cells(2).Value = "PASS" Then
p = p + 1
End If
If dg.Rows(i).Cells(2).Value = "FAIL" Then
f = f + 1
End If
t = t + 1
End If
i = i + 1
End While
End If
msg = vbCrLf + "RESULT :" + vbCrLf + t.ToString + " of " + i.ToString + " checked" + vbCrLf + vbCrLf + "PASSED = " + p.ToString + vbCrLf + "FAILED = " + f.ToString
myMessageBox.Show(msg)
txtStart.Focus()
End Sub
Private Sub checkComplete()
Dim i As Integer = 0
Dim t As Integer = 0
If dg.Rows.Count > 0 Then
While i < dg.Rows.Count - 1
If dg.Rows(i).Cells(2).Value <> "" Then
t = t + 1
End If
i = i + 1
End While
End If
If i = t Then
'If btnComplete.Visible = False Then
'btnComplete_Click(Me, EventArgs.Empty)
' End If
If qacheck Then
btnComplete_Click(Me, EventArgs.Empty)
Dim p As Integer = 0
Dim f As Integer = 0
i = 0
t = 0
If dg.Rows.Count > 0 Then
While i < dg.Rows.Count - 1
If dg.Rows(i).Cells(2).Value <> "" Then
If dg.Rows(i).Cells(2).Value = "PASS" Then
p = p + 1
End If
If dg.Rows(i).Cells(2).Value = "FAIL" Then
f = f + 1
End If
t = t + 1
End If
i = i + 1
End While
End If
If f = 0 Then
If isVerification Then
Dim name = InputBox("Enter QA username", "QA Verification", "")
Do While (name = "" Or (name <> "032712FERNAN" And name <> "033740ERWIN" And name <> "034356REA" And name <> "034412JUDY" And name <> "034532LYN" And name <> "034423AYAH" And name <> "032604ANA" And name <> "032766GHIE" And name <> "032703JACKIE"))
name = InputBox("Enter QA username", "QA Verification", "")
Loop
isVerification = False
End If
MsgBox("Complete!", MsgBoxStyle.OkOnly)
clear()
reloadMode()
reload = True
End If
Else
clear()
reloadMode()
reload = True
End If
End If
End Sub
Private Sub dg_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellContentClick
txtStart.Focus()
End Sub
Private Sub dg_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellClick
txtStart.Focus()
End Sub
Private Sub dg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dg.Click
txtStart.Focus()
End Sub
Private Sub cmbPlant_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
getSequence()
End Sub
Private Sub chkstart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkstart.CheckedChanged
If chkstart.Checked = True Then
fillDataSet()
fillDataGridView()
txtStart.Focus()
Else
End If
End Sub
Private Sub btnReload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReload.Click
'qacheck = False
isQA = False
reload = True
reloadMode()
clear()
End Sub
Private Sub btnQA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQA.Click
isQA = True
reload = False
isVerification = True
qaMode()
clear()
btnReload.Visible = True
End Sub
Private Sub cmbLine_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbLine.SelectedIndexChanged
SerialPort1.Close()
SerialPort1.PortName = getPort(cmbLine.Text).ToString
'SerialPort1.PortName = "COM3"
SerialPort1.BaudRate = 9600
SerialPort1.DataBits = 8
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.Handshake = Handshake.None
SerialPort1.Encoding = System.Text.Encoding.Default
ComportTextBox.Text = getPort(cmbLine.Text).ToString
'failverification.ComportLabel.Text = getPort(cmbLine.Text).ToString
getModels()
End Sub
Private Sub UpdateComPort()
SerialPort1.Close()
SerialPort1.PortName = getPort(cmbLine.Text).ToString
'SerialPort1.PortName = "COM3"
SerialPort1.BaudRate = 9600
SerialPort1.DataBits = 8
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.Handshake = Handshake.None
SerialPort1.Encoding = System.Text.Encoding.Default
End Sub
Private Sub cmbModel_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbModel.SelectedIndexChanged
getTypes()
End Sub
Private Sub cmbType_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbType.SelectedIndexChanged
getRevisions()
End Sub
Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click
sequential.Show()
End Sub
Public Function getPort(ByVal line As String)
Dim PortLine As String = ""
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim myQuery As String
myQuery = "SELECT KPortnum FROM KPORT " & _
"WHERE KLine = '" & line & "' "
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
If reader.HasRows Then
reader.Read()
PortLine = reader("KPortnum")
End If
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
conn.Close()
End Try
Return PortLine
End Function
Private Sub lblVerification_Click(sender As System.Object, e As System.EventArgs) Handles lblVerification.Click
End Sub
Private Sub Timer3_Tick(sender As System.Object, e As System.EventArgs) Handles Timer3.Tick
Dim cnstr = mainForm.cnstr
Dim conn As New SqlConnection(cnstr)
Dim stime As String = ""
Dim myQuery As String
myQuery = "SELECT GETDATE() AS SERVERTIME "
Dim mycommand As SqlCommand
mycommand = New SqlCommand(myQuery, conn)
Try
conn.Open()
Dim reader As SqlDataReader = mycommand.ExecuteReader()
If reader.HasRows Then
reader.Read()
stime = reader("SERVERTIME")
End If
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
conn.Close()
End Try
Dim mydate As DateTime = stime
Dim hour As Integer = mydate.Hour
Dim min As Integer = mydate.Minute
If (hour = 2 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 4 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 6 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 8 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 10 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 12 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 14 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 16 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 18 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 20 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 22 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
ElseIf (hour = 24 And min = 30) Then
Me.Enabled = False
sequential.Show()
Timer3.Stop()
End If
End Sub
End Class