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 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"
@ -245,6 +245,9 @@ Public Class mainForm
End Enum
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 Const setCodeSort As String = "PK"
@ -471,6 +474,9 @@ Public Class mainForm
Return "NONORDER"
End If
Else
If oybtn.Checked Then
Return "CHECKERROR"
End If
If playCode.Length = oldProdCodeLength Or playCode.Length = newProdCodeLength Then
Return "PRODSCAN"
ElseIf playCode.Length > comCodeLength Then
@ -755,7 +761,10 @@ Public Class mainForm
errorOut("전표불량")
errorGen("존재하지 않는 전표번호입니다. 번호를 확인하여 주십시오.")
Return False
Case "CHECKERROR"
errorOut("등록오류")
errorGen("올리브영 상품이 아닙니다. 올리브영 사용 여부를 확인해 주십시오.")
Return False
Case Else
errorOut("동작불량")
errorGen("잘못된 동작입니다. 관리자에게 문의하십시오.")
@ -914,7 +923,7 @@ Public Class mainForm
End If
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 chbUseBarcode.Checked = True Then
saveStart()
@ -1529,6 +1538,12 @@ Public Class mainForm
errorOut("등록오류")
errorGen("코드를 파싱하는 도중 오류가 발생하였습니다.")
Return False
Case "CHECKERROR"
errorOut("등록오류")
errorGen("올리브영 상품이 아닙니다. 올리브영 사용 여부를 확인해 주십시오.")
Case "UNCHECKERROR"
errorOut("등록오류")
errorGen("올리브영 사용 여부를 확인해 주십시오.")
Case Else
errorOut("등록오류")
errorGen("잘못된 접근입니다. 관리자에게 문의하여 주십시오.")
@ -1839,6 +1854,9 @@ Public Class mainForm
End Function
Private Function serialDupCheck() As Boolean
If oybtn.Checked Then
Return False
End If
For i = 0 To prodArray.GetLength(1) - 1
If InStr(prodArray(itemCode.serialNum, i), playCode) > 0 Then
errorOut("데이터오류")
@ -1852,6 +1870,9 @@ Public Class mainForm
Private Function serialPackCompare() As Boolean
Dim commandStr As String
If oybtn.Checked Then
Return True
End If
If playCode.Length = oldProdCodeLength Then '12자리 제품시리얼번호
modelNum = Mid(playCode, 1, 1)
@ -2043,8 +2064,10 @@ Public Class mainForm
setEye = 0
Dim faceCShot As Int32 = 0
Dim eyeCshot As Int32 = 0
If setInfo(setInfoList.topSerial) <> "NULL" And setInfo(setInfoList.midSerial) <> "NULL" And setInfo(setInfoList.botSerial) <> "NULL" Then
If oybtn.Checked And setInfo(setInfoList.topSerial) = Nothing 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)
setEye = setInfo(setInfoList.botshot)
Else
@ -3431,6 +3454,9 @@ Public Class mainForm
'End Function
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 & "'"
If Val(DBQueryScalar(DBCmd)) > 0 Then
@ -3525,7 +3551,7 @@ Public Class mainForm
If choiceData = Nothing Then
Return orderCode
Else
If choiceData.Length = oldProdCodeLength Or choiceData.Length = newProdCodeLength Then
If choiceData.Length = oldProdCodeLength Or choiceData.Length = newProdCodeLength Or oybtn.Checked Then
Return choiceData
Else
Return orderCode
@ -3719,6 +3745,18 @@ Public Class mainForm
End If
Else
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
Return "PRODSCAN"
ElseIf playCode.Length > comCodeLength Then
@ -3746,6 +3784,10 @@ Public Class mainForm
For i = 0 To setInfoList.prodCode
setInfo(i) = Nothing
Next
If oybtn.Checked Then
setInfoOut()
Return True
End If
If serialSearch() Then
@ -3948,13 +3990,15 @@ Public Class mainForm
Private Function prodCodeSearch() As Boolean
Try
If modelNum = Nothing Or typeNum = Nothing Then
errorOut("등록오류")
errorGen("해당 시리얼 번호의 모델과 타입을 알 수 없습니다.")
Return True
If Not oybtn.Checked Then
If modelNum = Nothing Or typeNum = Nothing Then
errorOut("등록오류")
errorGen("해당 시리얼 번호의 모델과 타입을 알 수 없습니다.")
Return True
End If
End If
Dim queryCount As Integer = 0
Dim codeColor As String
If playCode.Length = oldProdCodeLength Then '12자리 제품시리얼번호
@ -3962,8 +4006,14 @@ Public Class mainForm
ElseIf playCode.Length = newProdCodeLength Then '16자리 제품시리얼번호
codeColor = Mid(playCode, 3, 1)
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
Dim sqlCount As Integer = sqlDataQuery.Length
ReDim ScanArray(scanList.eyeshot, (sqlCount / scanList.maxscan) - 1)