diff --git a/Authentication Register Program/mainform.vb b/Authentication Register Program/mainform.vb index b413643..c1aed5a 100644 --- a/Authentication Register Program/mainform.vb +++ b/Authentication Register Program/mainform.vb @@ -5,7 +5,7 @@ Imports MySql.Data.MySqlClient Public Class mainform Private Sub mainform_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Me.Text = "DUALSONIC Authentication Register Program Ver 1.1.5" + Me.Text = "DUALSONIC Authentication Register Program Ver 1.1.6" lowProdListLoad() End Sub diff --git a/Authentication Register Program/mySQLModule.vb b/Authentication Register Program/mySQLModule.vb index eb4ae2b..13828f7 100644 --- a/Authentication Register Program/mySQLModule.vb +++ b/Authentication Register Program/mySQLModule.vb @@ -37,7 +37,7 @@ Module mySQLModule End Function Public Sub lowProdList(dic As Dictionary(Of String, String)) Using Conn As MySqlConnection = GetDBConn() - Dim cmd As New MySqlCommand("SELECT 88_Code, ModelNum, ColorNum FROM jomtTesterDB.jomtProdList WHERE 88_Code IS NOT NULL", Conn) + Dim cmd As New MySqlCommand("SELECT distinct 88_Code, ModelNum, ColorNum FROM jomtTesterDB.jomtProdList WHERE 88_Code IS NOT NULL", Conn) Using reader As MySqlDataReader = cmd.ExecuteReader() While reader.Read @@ -53,7 +53,7 @@ Module mySQLModule Dim getSerialCmd As New MySqlCommand("SELECT Serial_Number,Order_Code FROM jomtOrderDB.jomtOrderTbl WHERE Invoice_Number IS NOT NULL AND Serial_Number IS NOT NULL - AND ((LEFT(Serial_Number,1) < '8' AND LENGTH(Serial_Number) > 11 ) OR Serial_Number in (SELECT 88_Code FROM jomtTesterDB.jomtProdList WHERE 88_Code IS NOT NULL)) + AND ((LEFT(Serial_Number,1) < '8' AND LENGTH(Serial_Number) > 11 ) OR Serial_Number in (SELECT distinct 88_Code FROM jomtTesterDB.jomtProdList WHERE 88_Code IS NOT NULL)) AND genuine_date is null AND Shipment_Date = @date", conn) @@ -336,28 +336,29 @@ Module mySQLModule orderParams.Add("@ord" & i) Next Dim orderInClause As String = String.Join(", ", orderParams) - Dim serialInClause As String - Dim queryOrder As String - If serialFilterList.Count > 0 Then + Dim serialInClause As String = "" + '' 조건 충족 시: Serial_Number IN으로 주문 테이블 업데이트 + If serialFilterList.Count > 0 AndAlso productSnList.Count > 0 Then Dim serialParams As New List(Of String) For i As Integer = 0 To serialFilterList.Count - 1 serialParams.Add("@sno" & i) Next serialInClause = String.Join(", ", serialParams) - queryOrder = "UPDATE jomtOrderDB.jomtOrderTbl SET genuine_date = NOW() WHERE Order_Code IN (" & orderInClause & ") AND ((LEFT(Serial_Number,1) < '8' AND LENGTH(Serial_Number) > 11) OR Serial_Number IN (" & serialInClause & "))" - Else - queryOrder = "UPDATE jomtOrderDB.jomtOrderTbl SET genuine_date = NOW() WHERE Order_Code IN (" & orderInClause & ") AND (LEFT(Serial_Number,1) < '8' AND LENGTH(Serial_Number) > 11)" + Dim queryBySerial As String = "UPDATE jomtOrderDB.jomtOrderTbl SET genuine_date = NOW() WHERE Serial_Number IN (" & serialInClause & ") and genuine_date is null" + Using cmd As New MySqlCommand(queryBySerial, conn) + For i As Integer = 0 To serialFilterList.Count - 1 + cmd.Parameters.AddWithValue("@sno" & i, serialFilterList(i)) + Next + cmd.ExecuteNonQuery() + End Using End If + '' 공통: Order_Code IN + 시리얼 형식 조건으로 주문 테이블 업데이트 + Dim queryOrder As String = "UPDATE jomtOrderDB.jomtOrderTbl SET genuine_date = NOW() WHERE Order_Code IN (" & orderInClause & ") AND (LEFT(Serial_Number,1) < '8' AND LENGTH(Serial_Number) > 11)" Using cmd As New MySqlCommand(queryOrder, conn) For i As Integer = 0 To orderList.Count - 1 cmd.Parameters.AddWithValue("@ord" & i, orderList(i)) Next - If serialFilterList.Count > 0 Then - For i As Integer = 0 To serialFilterList.Count - 1 - cmd.Parameters.AddWithValue("@sno" & i, serialFilterList(i)) - Next - End If cmd.ExecuteNonQuery() End Using End Using