diff --git a/OrderPackingProcessor/mainForm.vb b/OrderPackingProcessor/mainForm.vb index a3dcdb7..1cef939 100644 --- a/OrderPackingProcessor/mainForm.vb +++ b/OrderPackingProcessor/mainForm.vb @@ -8,7 +8,7 @@ Imports Newtonsoft.Json.Linq Public Class mainForm Public projectName As String = "OrderPackingProcessor Ver." - Public projectVer As String = "3.0.8" + Public projectVer As String = "3.0.9" Private apiItemOutURL As String = "item-outflows/page" @@ -164,6 +164,7 @@ Public Class mainForm Private apiSearch As String = "createdAtFrom" Public prodArray(,) As String Private apiArray(,) As String + Private donePkList As New List(Of Integer) ''포장 끝난 itemCode 인덱스 ''DB 제품 검색 관련 Private ScanArray(,) As String @@ -249,7 +250,7 @@ Public Class mainForm Private defaultData(defaultList.refer) As String ''보급형 88코드 - Private lowProdList As New Dictionary(Of String, String) ''key: itemcode value: 88_Code + Private lowProdList As New HashSet(Of String) ''value: 88_Code '' 세트코드 Private setCodeUse As Boolean = False ''세트 코드 번호를 사용했냐 안했냐 구분 @@ -316,14 +317,10 @@ Public Class mainForm 'Me.WindowState = FormWindowState.Maximized End Sub Private Sub loadLowProdBarcode() '' 보급형 88 코드 가지고 오기 - Dim queryFlag = 0 - Dim cmd = "SELECT 88_Code,itemCode FROM " & applyPlistDB & " WHERE 88_Code IS NOT NULL" + Dim cmd = "SELECT 88_Code FROM " & applyPlistDB & " WHERE 88_Code IS NOT NULL" If DBQueryReader(cmd) Then For i = 0 To sqlDataQuery.Length - 1 - If i Mod 2 = 1 Then - lowProdList.Add(sqlDataQuery(queryFlag), sqlDataQuery(queryFlag - 1)) - End If - queryFlag += 1 + lowProdList.Add(sqlDataQuery(i)) Next End If End Sub @@ -489,7 +486,7 @@ Public Class mainForm Return "NONORDER" End If Else - If lowProdList.ContainsValue(playCode) Then + If lowProdList.Contains(playCode) Then Return "CHECKERROR" End If If playCode.Length = oldProdCodeLength Or playCode.Length = newProdCodeLength Then @@ -3648,15 +3645,16 @@ Public Class mainForm Const regType As Int16 = 0 Try For i = 0 To prodArray.GetLength(1) - 1 + If donePkList.Contains(i) Then Continue For For n = 0 To scanCode.Length - 1 If prodArray(itemCode.code, i) = scanCode(n) Then '' instr 에서 식으로 변경 - If prodArray(itemCode.count, i) = prodArray(itemCode.chkCount, i) Then - errorOut("등록오류") - errorGen("더이상 포장할 필요가 없는 제품입니다.") - Return False - End If + 'If prodArray(itemCode.count, i) = prodArray(itemCode.chkCount, i) Then + ' errorOut("등록오류") + ' errorGen("더이상 포장할 필요가 없는 제품입니다.") + ' Return False + 'End If If prodScanCompare(i) Then errorOut("등록오류") @@ -3676,6 +3674,7 @@ Public Class mainForm txbArrayList(i, txbNameList.name).ForeColor = Color.Black txbArrayList(i, txbNameList.nowCount).ForeColor = Color.Black txbArrayList(i, txbNameList.targetCount).ForeColor = Color.Black + donePkList.Add(i) Else txbArrayList(i, txbNameList.targetCount).ForeColor = Color.Blue End If @@ -3709,6 +3708,15 @@ Public Class mainForm Next Next + For Each scanData As String In scanCode + For Each b As Integer In donePkList + If prodArray(itemCode.code, b) = scanData Then + errorOut("등록오류") + errorGen("더이상 포장할 필요가 없는 제품입니다.") + Return False + End If + Next + Next errorOut("등록오류") errorGen("포장 품목에 존재하지 않는 제품입니다.") Return False @@ -3751,7 +3759,7 @@ Public Class mainForm Else If orderSwitch = True Then - If playCode.Length = oldProdCodeLength Or playCode.Length = newProdCodeLength Or lowProdList.ContainsValue(playCode) Then + If playCode.Length = oldProdCodeLength Or playCode.Length = newProdCodeLength Or lowProdList.Contains(playCode) Then Return "PRODSCAN" ElseIf playCode.Length > comCodeLength Then Return "COMSCAN" @@ -4091,7 +4099,7 @@ Public Class mainForm Try Dim dataCount As Int16 = 0 Dim codeExist As Boolean = False - + donePkList.Clear() ReDim prodArray(itemCode.id, 0) ReDim apiData(apiDataList.address)