1. 같은 prodCode지만 다른 itemCode가 두 개 이상 존재하는 경우 수량이슈로 포장불가 수정

2. 버전 3.0.9
This commit is contained in:
hyelinjung 2026-04-01 11:52:01 +09:00
parent 2841837ca8
commit 4b0b69a004

View File

@ -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)