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