1] Optimum 모델 이후부터 신규 시리얼번호 부여 체계 적용
2] 버전 2.0.0 업데이트
This commit is contained in:
parent
b5a5820b1a
commit
630c16242a
@ -5,7 +5,7 @@ Imports Newtonsoft.Json.Linq
|
|||||||
Public Class frm_Main
|
Public Class frm_Main
|
||||||
|
|
||||||
Public programName As String = "PackingInvoiceMapper Ver. "
|
Public programName As String = "PackingInvoiceMapper Ver. "
|
||||||
Private programVer As String = "1.3.0"
|
Private programVer As String = "2.0.0"
|
||||||
|
|
||||||
Private apiItemOutURL As String = "item-outflows/page"
|
Private apiItemOutURL As String = "item-outflows/page"
|
||||||
|
|
||||||
@ -25,7 +25,8 @@ Public Class frm_Main
|
|||||||
'------------------------------------------------------------------
|
'------------------------------------------------------------------
|
||||||
|
|
||||||
Private Const stateLength As Int16 = 13
|
Private Const stateLength As Int16 = 13
|
||||||
Private Const packingLength As Int16 = 12
|
Private Const oldProdCodeLength As Int16 = 12 '12자리 제품시리얼번호
|
||||||
|
Private Const newProdCodeLength As Int16 = 16 '16자리 제품시리얼번호
|
||||||
|
|
||||||
Private DBCmd As String
|
Private DBCmd As String
|
||||||
Private txbArrayList(,) As TextBox
|
Private txbArrayList(,) As TextBox
|
||||||
@ -106,24 +107,11 @@ Public Class frm_Main
|
|||||||
End Enum
|
End Enum
|
||||||
Private firstState(firstStateList.MES) As String
|
Private firstState(firstStateList.MES) As String
|
||||||
|
|
||||||
Private Enum modelList
|
|
||||||
PRO = 1
|
|
||||||
LUX
|
|
||||||
MAXIMUM
|
|
||||||
Alpha
|
|
||||||
Alto
|
|
||||||
Effect
|
|
||||||
MAXIMUM_ALPHA
|
|
||||||
'신규제품추가 : 제품 시리얼 번호 첫번째자리(모델번호)와 동일하게 업데이트
|
|
||||||
End Enum
|
|
||||||
Private Const modelPosition As Int16 = 1
|
|
||||||
|
|
||||||
Private Enum typeList
|
Private Enum typeList
|
||||||
prodSet_V1
|
prodSet
|
||||||
prodFace_V2
|
prodFace
|
||||||
prodEye
|
prodEye
|
||||||
prodBody
|
prodBody
|
||||||
'신규제품추가 : 제품 시리얼 번호 두번째자리(타입번호)와 동일하게 업데이트
|
|
||||||
End Enum
|
End Enum
|
||||||
Private Const typePosition As Int16 = 2
|
Private Const typePosition As Int16 = 2
|
||||||
|
|
||||||
@ -678,7 +666,7 @@ Public Class frm_Main
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
Else
|
||||||
If codeData.Length = packingLength Then
|
If codeData.Length = oldProdCodeLength Or codeData.Length = newProdCodeLength Then
|
||||||
MassPackReset()
|
MassPackReset()
|
||||||
|
|
||||||
If stateSuccess = False Then
|
If stateSuccess = False Then
|
||||||
@ -1130,7 +1118,7 @@ Public Class frm_Main
|
|||||||
|
|
||||||
Private Function orderSearch(codeData As String) As Boolean
|
Private Function orderSearch(codeData As String) As Boolean
|
||||||
|
|
||||||
If codeData.Length = packingLength Then
|
If codeData.Length = oldProdCodeLength Or codeData.Length = newProdCodeLength Then
|
||||||
|
|
||||||
If packingCompare(codeData) Then
|
If packingCompare(codeData) Then
|
||||||
Return False
|
Return False
|
||||||
@ -1643,17 +1631,40 @@ Public Class frm_Main
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function serialSearch(serialData As String) As Boolean
|
Private Function serialSearch(serialData As String) As Boolean
|
||||||
Const infoNum As Int16 = 1
|
Dim modelNumber As String = Nothing
|
||||||
Dim modelNumber As String = Mid(serialData, modelPosition, infoNum)
|
Dim typeNumber As String = Nothing
|
||||||
Dim typeNumber As String = Mid(serialData, typePosition, infoNum)
|
Dim deviceTypeCode As String = Nothing
|
||||||
Dim sqlResult As String
|
Dim sqlResult As String
|
||||||
|
|
||||||
If modelNumber = modelList.PRO Or modelNumber = modelList.LUX Or modelNumber = modelList.Alpha Then
|
If serialData.Length = oldProdCodeLength Then '12자리 제품시리얼번호
|
||||||
If typeNumber = typeList.prodSet_V1 Then
|
modelNumber = Mid(serialData, 1, 1)
|
||||||
|
typeNumber = Mid(serialData, 2, 1)
|
||||||
|
ElseIf serialData.Length = newProdCodeLength Then '16자리 제품시리얼번호
|
||||||
|
modelNumber = Mid(serialData, 1, 2)
|
||||||
|
typeNumber = Mid(serialData, 15, 1)
|
||||||
|
End If
|
||||||
|
|
||||||
|
DBCmd = "SELECT DeviceTypeCode, TDUseYn FROM " & ApplyModelInfoDB & " WHERE ModelCode = '" & modelNumber & "' LIMIT 1"
|
||||||
|
If DBQueryReader(DBCmd) Then
|
||||||
|
deviceTypeCode = sqlDataQuery(0)
|
||||||
|
|
||||||
|
If sqlDataQuery(1) = "Y" Then
|
||||||
|
TDUseCompare = True
|
||||||
|
Else
|
||||||
|
TDUseCompare = False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
TDUseCompare = False
|
||||||
|
MsgBox("존재하지 않는 모델 번호입니다.", vbExclamation)
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
If deviceTypeCode = "D" Then '분리형 디바이스 : PRO, LUX, ALPHA
|
||||||
|
If typeNumber = typeList.prodSet Then
|
||||||
DBCmd = "SELECT Ct_Max_ShotCnt from " & applyCartDB & " where Product_SN = (SELECT FaceCart_SN FROM " & applyProdDB & " WHERE Product_SN = '" & serialData & "') OR Product_SN = (SELECT EyeCart_SN FROM " & applyProdDB & " WHERE Product_SN = '" & serialData & "')"
|
DBCmd = "SELECT Ct_Max_ShotCnt from " & applyCartDB & " where Product_SN = (SELECT FaceCart_SN FROM " & applyProdDB & " WHERE Product_SN = '" & serialData & "') OR Product_SN = (SELECT EyeCart_SN FROM " & applyProdDB & " WHERE Product_SN = '" & serialData & "')"
|
||||||
If DBQueryReader(DBCmd) Then
|
If DBQueryReader(DBCmd) Then
|
||||||
chkItem(itemInfoList.face) = sqlDataQuery(typeList.prodFace_V2 - 1)
|
chkItem(itemInfoList.face) = sqlDataQuery(0)
|
||||||
chkItem(itemInfoList.eye) = sqlDataQuery(typeList.prodEye - 1)
|
chkItem(itemInfoList.eye) = sqlDataQuery(1)
|
||||||
Else
|
Else
|
||||||
MsgBox("세트 제품의 샷 수를 알 수 없습니다.", vbExclamation)
|
MsgBox("세트 제품의 샷 수를 알 수 없습니다.", vbExclamation)
|
||||||
Return False
|
Return False
|
||||||
@ -1666,7 +1677,7 @@ Public Class frm_Main
|
|||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If typeNumber = typeList.prodFace_V2 Or typeNumber = typeList.prodBody Then
|
If typeNumber = typeList.prodFace Or typeNumber = typeList.prodBody Then
|
||||||
chkItem(itemInfoList.face) = sqlResult
|
chkItem(itemInfoList.face) = sqlResult
|
||||||
chkItem(itemInfoList.eye) = "0"
|
chkItem(itemInfoList.eye) = "0"
|
||||||
ElseIf typeNumber = typeList.prodEye Then
|
ElseIf typeNumber = typeList.prodEye Then
|
||||||
@ -1679,26 +1690,14 @@ Public Class frm_Main
|
|||||||
|
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
If modelNumber = modelList.MAXIMUM Then
|
|
||||||
TDUseCompare = True
|
|
||||||
Else
|
|
||||||
TDUseCompare = False
|
|
||||||
End If
|
|
||||||
|
|
||||||
sqlResult = singleCartShot(serialData)
|
sqlResult = singleCartShot(serialData)
|
||||||
|
|
||||||
If sqlResult = "FAIL" Then
|
If sqlResult = "FAIL" Then
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Effect_V3의 type number는 3으로 BODY 카트리지 번호와 같기에 처리 필요
|
chkItem(itemInfoList.face) = sqlResult
|
||||||
If typeNumber = typeList.prodSet_V1 Or typeNumber = typeList.prodFace_V2 Or (modelNumber = modelList.Effect And typeNumber = typeList.prodBody) Then
|
chkItem(itemInfoList.eye) = sqlResult
|
||||||
chkItem(itemInfoList.face) = sqlResult
|
|
||||||
chkItem(itemInfoList.eye) = sqlResult
|
|
||||||
Else
|
|
||||||
MsgBox("형식에 맞지 않은 바코드가 존재합니다.", vbCritical)
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If prodListSet(modelNumber, typeNumber, serialData) Then
|
If prodListSet(modelNumber, typeNumber, serialData) Then
|
||||||
@ -1738,69 +1737,22 @@ Public Class frm_Main
|
|||||||
If resultCount = "False" Then
|
If resultCount = "False" Then
|
||||||
MsgBox("샷 수에 따른 제품 코드를 검색하는 과정에서 오류가 발생하였습니다.", vbCritical)
|
MsgBox("샷 수에 따른 제품 코드를 검색하는 과정에서 오류가 발생하였습니다.", vbCritical)
|
||||||
Return False
|
Return False
|
||||||
End If
|
ElseIf resultCount = "0" Then
|
||||||
|
MsgBox("샷 수에 해당하는 제품이 없습니다.", vbCritical)
|
||||||
If resultCount = "0" Then
|
Return False
|
||||||
|
|
||||||
Select Case modelNumber
|
|
||||||
Case modelList.PRO
|
|
||||||
Select Case typeNumber
|
|
||||||
Case typeList.prodSet_V1
|
|
||||||
tempFaceShot = 6000
|
|
||||||
tempEyeShot = 60000
|
|
||||||
Case typeList.prodFace_V2
|
|
||||||
tempFaceShot = 6000
|
|
||||||
tempEyeShot = 0
|
|
||||||
Case typeList.prodEye
|
|
||||||
tempFaceShot = 0
|
|
||||||
tempEyeShot = 60000
|
|
||||||
Case typeList.prodBody
|
|
||||||
tempFaceShot = 30000
|
|
||||||
tempEyeShot = 0
|
|
||||||
End Select
|
|
||||||
Case modelList.LUX
|
|
||||||
Select Case typeNumber
|
|
||||||
Case typeList.prodSet_V1
|
|
||||||
tempFaceShot = 3000
|
|
||||||
tempEyeShot = 30000
|
|
||||||
Case typeList.prodFace_V2
|
|
||||||
tempFaceShot = 3000
|
|
||||||
tempEyeShot = 0
|
|
||||||
Case typeList.prodEye
|
|
||||||
tempFaceShot = 0
|
|
||||||
tempEyeShot = 30000
|
|
||||||
Case typeList.prodBody
|
|
||||||
tempFaceShot = 20000
|
|
||||||
tempEyeShot = 0
|
|
||||||
End Select
|
|
||||||
|
|
||||||
Case modelList.Alpha
|
|
||||||
Select Case typeNumber
|
|
||||||
Case typeList.prodSet_V1
|
|
||||||
tempFaceShot = 20000
|
|
||||||
tempEyeShot = 200000
|
|
||||||
Case typeList.prodFace_V2
|
|
||||||
tempFaceShot = 20000
|
|
||||||
tempEyeShot = 0
|
|
||||||
Case typeList.prodEye
|
|
||||||
tempFaceShot = 0
|
|
||||||
tempEyeShot = 200000
|
|
||||||
Case typeList.prodBody
|
|
||||||
tempFaceShot = 30000
|
|
||||||
tempEyeShot = 0
|
|
||||||
End Select
|
|
||||||
|
|
||||||
Case Else
|
|
||||||
tempFaceShot = 0
|
|
||||||
tempEyeShot = 0
|
|
||||||
End Select
|
|
||||||
Else
|
Else
|
||||||
tempFaceShot = chkItem(itemInfoList.face)
|
tempFaceShot = chkItem(itemInfoList.face)
|
||||||
tempEyeShot = chkItem(itemInfoList.eye)
|
tempEyeShot = chkItem(itemInfoList.eye)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Const rowCount As Int16 = 2
|
Const rowCount As Int16 = 2
|
||||||
Dim colorNumber As String = Mid(serialData, colorPosition, 1)
|
Dim colorNumber As String = Nothing
|
||||||
|
|
||||||
|
If serialData.Length = oldProdCodeLength Then '12자리 제품시리얼번호
|
||||||
|
colorNumber = Mid(serialData, 11, 1)
|
||||||
|
ElseIf serialData.Length = newProdCodeLength Then '16자리 제품시리얼번호
|
||||||
|
colorNumber = Mid(serialData, 3, 1)
|
||||||
|
End If
|
||||||
|
|
||||||
DBCmd = "SELECT ItemCode,ItemName FROM " & applyPlistDB & " WHERE ModelNum = '" & modelNumber & "' AND TypeNum = '" & typeNumber & "' AND FaceShot = '" & tempFaceShot & "' AND EyeShot = '" & tempEyeShot & "' AND ColorNum = '" & colorNumber & "'" & " AND ItemName NOT LIKE '%체험%' LIMIT 1"
|
DBCmd = "SELECT ItemCode,ItemName FROM " & applyPlistDB & " WHERE ModelNum = '" & modelNumber & "' AND TypeNum = '" & typeNumber & "' AND FaceShot = '" & tempFaceShot & "' AND EyeShot = '" & tempEyeShot & "' AND ColorNum = '" & colorNumber & "'" & " AND ItemName NOT LIKE '%체험%' LIMIT 1"
|
||||||
|
|
||||||
@ -1927,6 +1879,7 @@ Public Class frm_Main
|
|||||||
,Effect_serial
|
,Effect_serial
|
||||||
,EffectV3_Serial
|
,EffectV3_Serial
|
||||||
,MAXIMUM_ALPHA_SN
|
,MAXIMUM_ALPHA_SN
|
||||||
|
,Optimum_Serial
|
||||||
FROM " & applySalesDB & " WHERE PackingCode = '" & codeData & "'" '신규제품추가 : 추가하는 품목의 시리얼번호 조회 컬럼 추가
|
FROM " & applySalesDB & " WHERE PackingCode = '" & codeData & "'" '신규제품추가 : 추가하는 품목의 시리얼번호 조회 컬럼 추가
|
||||||
If DBQueryReader(DBCmd) Then
|
If DBQueryReader(DBCmd) Then
|
||||||
For i = 0 To pSerialList_max_index
|
For i = 0 To pSerialList_max_index
|
||||||
@ -2659,7 +2612,7 @@ Public Class frm_Main
|
|||||||
mapInvOk = True
|
mapInvOk = True
|
||||||
|
|
||||||
Else
|
Else
|
||||||
If codeData.Length = packingLength Then
|
If codeData.Length = oldProdCodeLength Or codeData.Length = newProdCodeLength Then
|
||||||
|
|
||||||
packFullCount = 0
|
packFullCount = 0
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
Private mainPKCodeDB As String = "jomtTesterDB.jomtPKCodeTbl"
|
Private mainPKCodeDB As String = "jomtTesterDB.jomtPKCodeTbl"
|
||||||
|
|
||||||
|
Private Const mainModelInfoDB As String = "jomtTesterDB.jomtModelInfoTbl"
|
||||||
|
Private Const testModelInfoDB As String = "jomtTesterServerDB.jomtModelInfoTbl"
|
||||||
|
|
||||||
Public applyOrderDB As String = mainOrderDB
|
Public applyOrderDB As String = mainOrderDB
|
||||||
Public applySalesDB As String = mainSalesDB
|
Public applySalesDB As String = mainSalesDB
|
||||||
Public applyProdDB As String = mainProdDB
|
Public applyProdDB As String = mainProdDB
|
||||||
@ -30,6 +33,7 @@
|
|||||||
Public applyClistDB As String = mainClistDB
|
Public applyClistDB As String = mainClistDB
|
||||||
Public applyPKCodeDB As String = mainPKCodeDB
|
Public applyPKCodeDB As String = mainPKCodeDB
|
||||||
Public applyNonTDDB As String = MainNonTDDB
|
Public applyNonTDDB As String = MainNonTDDB
|
||||||
|
Public ApplyModelInfoDB As String = mainModelInfoDB
|
||||||
|
|
||||||
Public Enum pSerialList
|
Public Enum pSerialList
|
||||||
DivSet
|
DivSet
|
||||||
@ -48,6 +52,7 @@
|
|||||||
Effect
|
Effect
|
||||||
EffectV3
|
EffectV3
|
||||||
MaximumAlpha
|
MaximumAlpha
|
||||||
|
Optimum
|
||||||
'신규제품추가 : 추가하는 품목의 변수 추가
|
'신규제품추가 : 추가하는 품목의 변수 추가
|
||||||
End Enum
|
End Enum
|
||||||
Public pSerialList_max_index As Integer = [Enum].GetNames(GetType(pSerialList)).Length - 1
|
Public pSerialList_max_index As Integer = [Enum].GetNames(GetType(pSerialList)).Length - 1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user