1.올리브영 버튼 생성

2.버전 3.0.3
3.(일반포장 only)올리브영 88코드 스캔 시 올리브영 체크 확인 & DB 저장
This commit is contained in:
hyelinjung 2026-01-21 09:24:20 +09:00
parent 0c36c5c15c
commit d6842b5c19
2 changed files with 949 additions and 646 deletions

File diff suppressed because it is too large Load Diff

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.2" Public projectVer As String = "3.0.3"
Private apiItemOutURL As String = "item-outflows/page" Private apiItemOutURL As String = "item-outflows/page"
@ -245,6 +245,9 @@ Public Class mainForm
End Enum End Enum
Private defaultData(defaultList.refer) As String Private defaultData(defaultList.refer) As String
''올리브영 88코드
Private olivYoungList As New Dictionary(Of String, String) From {{"P001-OY001A", "8809595041540"}, {"P001-OY001B", "8809595041533"}}
'' 세트코드 '' 세트코드
Private setCodeUse As Boolean = False ''세트 코드 번호를 사용했냐 안했냐 구분 Private setCodeUse As Boolean = False ''세트 코드 번호를 사용했냐 안했냐 구분
Private Const setCodeSort As String = "PK" Private Const setCodeSort As String = "PK"
@ -471,6 +474,9 @@ Public Class mainForm
Return "NONORDER" Return "NONORDER"
End If End If
Else Else
If oybtn.Checked Then
Return "CHECKERROR"
End If
If playCode.Length = oldProdCodeLength Or playCode.Length = newProdCodeLength Then If playCode.Length = oldProdCodeLength Or playCode.Length = newProdCodeLength Then
Return "PRODSCAN" Return "PRODSCAN"
ElseIf playCode.Length > comCodeLength Then ElseIf playCode.Length > comCodeLength Then
@ -755,7 +761,10 @@ Public Class mainForm
errorOut("전표불량") errorOut("전표불량")
errorGen("존재하지 않는 전표번호입니다. 번호를 확인하여 주십시오.") errorGen("존재하지 않는 전표번호입니다. 번호를 확인하여 주십시오.")
Return False Return False
Case "CHECKERROR"
errorOut("등록오류")
errorGen("올리브영 상품이 아닙니다. 올리브영 사용 여부를 확인해 주십시오.")
Return False
Case Else Case Else
errorOut("동작불량") errorOut("동작불량")
errorGen("잘못된 동작입니다. 관리자에게 문의하십시오.") errorGen("잘못된 동작입니다. 관리자에게 문의하십시오.")
@ -914,7 +923,7 @@ Public Class mainForm
End If End If
If packingRun() Then If packingRun() Then
If playCode.Length < stateLength Or playCode.Length = newProdCodeLength Then If playCode.Length < stateLength Or playCode.Length = newProdCodeLength Or (oybtn.Checked And playCode.Length = 13) Then
If nowFullCount = tgtFullCount Then If nowFullCount = tgtFullCount Then
If chbUseBarcode.Checked = True Then If chbUseBarcode.Checked = True Then
saveStart() saveStart()
@ -1529,6 +1538,12 @@ Public Class mainForm
errorOut("등록오류") errorOut("등록오류")
errorGen("코드를 파싱하는 도중 오류가 발생하였습니다.") errorGen("코드를 파싱하는 도중 오류가 발생하였습니다.")
Return False Return False
Case "CHECKERROR"
errorOut("등록오류")
errorGen("올리브영 상품이 아닙니다. 올리브영 사용 여부를 확인해 주십시오.")
Case "UNCHECKERROR"
errorOut("등록오류")
errorGen("올리브영 사용 여부를 확인해 주십시오.")
Case Else Case Else
errorOut("등록오류") errorOut("등록오류")
errorGen("잘못된 접근입니다. 관리자에게 문의하여 주십시오.") errorGen("잘못된 접근입니다. 관리자에게 문의하여 주십시오.")
@ -1839,6 +1854,9 @@ Public Class mainForm
End Function End Function
Private Function serialDupCheck() As Boolean Private Function serialDupCheck() As Boolean
If oybtn.Checked Then
Return False
End If
For i = 0 To prodArray.GetLength(1) - 1 For i = 0 To prodArray.GetLength(1) - 1
If InStr(prodArray(itemCode.serialNum, i), playCode) > 0 Then If InStr(prodArray(itemCode.serialNum, i), playCode) > 0 Then
errorOut("데이터오류") errorOut("데이터오류")
@ -1852,6 +1870,9 @@ Public Class mainForm
Private Function serialPackCompare() As Boolean Private Function serialPackCompare() As Boolean
Dim commandStr As String Dim commandStr As String
If oybtn.Checked Then
Return True
End If
If playCode.Length = oldProdCodeLength Then '12자리 제품시리얼번호 If playCode.Length = oldProdCodeLength Then '12자리 제품시리얼번호
modelNum = Mid(playCode, 1, 1) modelNum = Mid(playCode, 1, 1)
@ -2043,8 +2064,10 @@ Public Class mainForm
setEye = 0 setEye = 0
Dim faceCShot As Int32 = 0 Dim faceCShot As Int32 = 0
Dim eyeCshot As Int32 = 0 Dim eyeCshot As Int32 = 0
If oybtn.Checked And setInfo(setInfoList.topSerial) = Nothing Then
If setInfo(setInfoList.topSerial) <> "NULL" And setInfo(setInfoList.midSerial) <> "NULL" And setInfo(setInfoList.botSerial) <> "NULL" Then setFace = "0"
setEye = "0"
ElseIf setInfo(setInfoList.topSerial) <> "NULL" And setInfo(setInfoList.midSerial) <> "NULL" And setInfo(setInfoList.botSerial) <> "NULL" Then
setFace = setInfo(setInfoList.midshot) setFace = setInfo(setInfoList.midshot)
setEye = setInfo(setInfoList.botshot) setEye = setInfo(setInfoList.botshot)
Else Else
@ -3431,6 +3454,9 @@ Public Class mainForm
'End Function 'End Function
Private Function dbPackNumCompare(choiceNum As String) As Boolean Private Function dbPackNumCompare(choiceNum As String) As Boolean
If oybtn.Checked Then
Return False
End If
DBCmd = "SELECT COUNT(PackingCode) FROM " & applySalesDB & " WHERE PackingCode = '" & choiceNum & "'" DBCmd = "SELECT COUNT(PackingCode) FROM " & applySalesDB & " WHERE PackingCode = '" & choiceNum & "'"
If Val(DBQueryScalar(DBCmd)) > 0 Then If Val(DBQueryScalar(DBCmd)) > 0 Then
@ -3525,7 +3551,7 @@ Public Class mainForm
If choiceData = Nothing Then If choiceData = Nothing Then
Return orderCode Return orderCode
Else Else
If choiceData.Length = oldProdCodeLength Or choiceData.Length = newProdCodeLength Then If choiceData.Length = oldProdCodeLength Or choiceData.Length = newProdCodeLength Or oybtn.Checked Then
Return choiceData Return choiceData
Else Else
Return orderCode Return orderCode
@ -3719,6 +3745,18 @@ Public Class mainForm
End If End If
Else Else
If orderSwitch = True Then If orderSwitch = True Then
If olivYoungList.Any(Function(key) key.Value = playCode) Then
If oybtn.Checked Then
Return "PRODSCAN"
Else
Return "UNCHECKERROR"
End If
Else
If oybtn.Checked Then
Return "CHECKERROR"
End If
End If
If playCode.Length = oldProdCodeLength Or playCode.Length = newProdCodeLength Then If playCode.Length = oldProdCodeLength Or playCode.Length = newProdCodeLength Then
Return "PRODSCAN" Return "PRODSCAN"
ElseIf playCode.Length > comCodeLength Then ElseIf playCode.Length > comCodeLength Then
@ -3746,6 +3784,10 @@ Public Class mainForm
For i = 0 To setInfoList.prodCode For i = 0 To setInfoList.prodCode
setInfo(i) = Nothing setInfo(i) = Nothing
Next Next
If oybtn.Checked Then
setInfoOut()
Return True
End If
If serialSearch() Then If serialSearch() Then
@ -3948,13 +3990,15 @@ Public Class mainForm
Private Function prodCodeSearch() As Boolean Private Function prodCodeSearch() As Boolean
Try Try
If Not oybtn.Checked Then
If modelNum = Nothing Or typeNum = Nothing Then If modelNum = Nothing Or typeNum = Nothing Then
errorOut("등록오류") errorOut("등록오류")
errorGen("해당 시리얼 번호의 모델과 타입을 알 수 없습니다.") errorGen("해당 시리얼 번호의 모델과 타입을 알 수 없습니다.")
Return True Return True
End If
End If End If
Dim queryCount As Integer = 0 Dim queryCount As Integer = 0
Dim codeColor As String Dim codeColor As String
If playCode.Length = oldProdCodeLength Then '12자리 제품시리얼번호 If playCode.Length = oldProdCodeLength Then '12자리 제품시리얼번호
@ -3962,8 +4006,14 @@ Public Class mainForm
ElseIf playCode.Length = newProdCodeLength Then '16자리 제품시리얼번호 ElseIf playCode.Length = newProdCodeLength Then '16자리 제품시리얼번호
codeColor = Mid(playCode, 3, 1) codeColor = Mid(playCode, 3, 1)
End If End If
If oybtn.Checked Then
Dim itemCode = olivYoungList.FirstOrDefault(Function(key) key.Value = playCode)
codeColor = itemCode.Key
DBCmd = "SELECT ItemCode,ProdCode,FaceShot,EyeShot FROM " & applyPlistDB & " WHERE itemCode ='" & codeColor & "'"
Else
DBCmd = "SELECT ItemCode,ProdCode,FaceShot,EyeShot FROM " & applyPlistDB & " WHERE ModelNum = '" & modelNum & "' AND TypeNum = '" & typeNum & "' AND ColorNum = '" & codeColor & "'"
End If
DBCmd = "SELECT ItemCode,ProdCode,FaceShot,EyeShot FROM " & applyPlistDB & " WHERE ModelNum = '" & modelNum & "' AND TypeNum = '" & typeNum & "' AND ColorNum = '" & codeColor & "'"
If DBQueryReader(DBCmd) Then If DBQueryReader(DBCmd) Then
Dim sqlCount As Integer = sqlDataQuery.Length Dim sqlCount As Integer = sqlDataQuery.Length
ReDim ScanArray(scanList.eyeshot, (sqlCount / scanList.maxscan) - 1) ReDim ScanArray(scanList.eyeshot, (sqlCount / scanList.maxscan) - 1)