From 630c16242a6953205990f988c0ef17805f65384a Mon Sep 17 00:00:00 2001 From: KwakJooYoung Date: Mon, 24 Nov 2025 15:38:02 +0900 Subject: [PATCH] =?UTF-8?q?1]=20Optimum=20=EB=AA=A8=EB=8D=B8=20=EC=9D=B4?= =?UTF-8?q?=ED=9B=84=EB=B6=80=ED=84=B0=20=EC=8B=A0=EA=B7=9C=20=EC=8B=9C?= =?UTF-8?q?=EB=A6=AC=EC=96=BC=EB=B2=88=ED=98=B8=20=EB=B6=80=EC=97=AC=20?= =?UTF-8?q?=EC=B2=B4=EA=B3=84=20=EC=A0=81=EC=9A=A9=202]=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=202.0.0=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PackingInvoiceMapper/frm_Main.vb | 151 +++++++++------------------ PackingInvoiceMapper/mysqlAddress.vb | 5 + 2 files changed, 57 insertions(+), 99 deletions(-) diff --git a/PackingInvoiceMapper/frm_Main.vb b/PackingInvoiceMapper/frm_Main.vb index 6c7f454..bae46ad 100644 --- a/PackingInvoiceMapper/frm_Main.vb +++ b/PackingInvoiceMapper/frm_Main.vb @@ -5,7 +5,7 @@ Imports Newtonsoft.Json.Linq Public Class frm_Main 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" @@ -25,7 +25,8 @@ Public Class frm_Main '------------------------------------------------------------------ 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 txbArrayList(,) As TextBox @@ -106,24 +107,11 @@ Public Class frm_Main End Enum 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 - prodSet_V1 - prodFace_V2 + prodSet + prodFace prodEye prodBody - '신규제품추가 : 제품 시리얼 번호 두번째자리(타입번호)와 동일하게 업데이트 End Enum Private Const typePosition As Int16 = 2 @@ -678,7 +666,7 @@ Public Class frm_Main End If Else - If codeData.Length = packingLength Then + If codeData.Length = oldProdCodeLength Or codeData.Length = newProdCodeLength Then MassPackReset() If stateSuccess = False Then @@ -1130,7 +1118,7 @@ Public Class frm_Main 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 Return False @@ -1643,17 +1631,40 @@ Public Class frm_Main End Function Private Function serialSearch(serialData As String) As Boolean - Const infoNum As Int16 = 1 - Dim modelNumber As String = Mid(serialData, modelPosition, infoNum) - Dim typeNumber As String = Mid(serialData, typePosition, infoNum) + Dim modelNumber As String = Nothing + Dim typeNumber As String = Nothing + Dim deviceTypeCode As String = Nothing Dim sqlResult As String - If modelNumber = modelList.PRO Or modelNumber = modelList.LUX Or modelNumber = modelList.Alpha Then - If typeNumber = typeList.prodSet_V1 Then + If serialData.Length = oldProdCodeLength Then '12자리 제품시리얼번호 + 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 & "')" If DBQueryReader(DBCmd) Then - chkItem(itemInfoList.face) = sqlDataQuery(typeList.prodFace_V2 - 1) - chkItem(itemInfoList.eye) = sqlDataQuery(typeList.prodEye - 1) + chkItem(itemInfoList.face) = sqlDataQuery(0) + chkItem(itemInfoList.eye) = sqlDataQuery(1) Else MsgBox("세트 제품의 샷 수를 알 수 없습니다.", vbExclamation) Return False @@ -1666,7 +1677,7 @@ Public Class frm_Main Return False 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.eye) = "0" ElseIf typeNumber = typeList.prodEye Then @@ -1679,26 +1690,14 @@ Public Class frm_Main End If Else - If modelNumber = modelList.MAXIMUM Then - TDUseCompare = True - Else - TDUseCompare = False - End If - sqlResult = singleCartShot(serialData) If sqlResult = "FAIL" Then Return False End If - ' Effect_V3의 type number는 3으로 BODY 카트리지 번호와 같기에 처리 필요 - If typeNumber = typeList.prodSet_V1 Or typeNumber = typeList.prodFace_V2 Or (modelNumber = modelList.Effect And typeNumber = typeList.prodBody) Then - chkItem(itemInfoList.face) = sqlResult - chkItem(itemInfoList.eye) = sqlResult - Else - MsgBox("형식에 맞지 않은 바코드가 존재합니다.", vbCritical) - Return False - End If + chkItem(itemInfoList.face) = sqlResult + chkItem(itemInfoList.eye) = sqlResult End If If prodListSet(modelNumber, typeNumber, serialData) Then @@ -1738,69 +1737,22 @@ Public Class frm_Main If resultCount = "False" Then MsgBox("샷 수에 따른 제품 코드를 검색하는 과정에서 오류가 발생하였습니다.", vbCritical) Return False - End If - - If resultCount = "0" Then - - 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 + ElseIf resultCount = "0" Then + MsgBox("샷 수에 해당하는 제품이 없습니다.", vbCritical) + Return False Else tempFaceShot = chkItem(itemInfoList.face) tempEyeShot = chkItem(itemInfoList.eye) End If 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" @@ -1927,6 +1879,7 @@ Public Class frm_Main ,Effect_serial ,EffectV3_Serial ,MAXIMUM_ALPHA_SN + ,Optimum_Serial FROM " & applySalesDB & " WHERE PackingCode = '" & codeData & "'" '신규제품추가 : 추가하는 품목의 시리얼번호 조회 컬럼 추가 If DBQueryReader(DBCmd) Then For i = 0 To pSerialList_max_index @@ -2659,7 +2612,7 @@ Public Class frm_Main mapInvOk = True Else - If codeData.Length = packingLength Then + If codeData.Length = oldProdCodeLength Or codeData.Length = newProdCodeLength Then packFullCount = 0 diff --git a/PackingInvoiceMapper/mysqlAddress.vb b/PackingInvoiceMapper/mysqlAddress.vb index 8b70094..f35111d 100644 --- a/PackingInvoiceMapper/mysqlAddress.vb +++ b/PackingInvoiceMapper/mysqlAddress.vb @@ -22,6 +22,9 @@ 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 applySalesDB As String = mainSalesDB Public applyProdDB As String = mainProdDB @@ -30,6 +33,7 @@ Public applyClistDB As String = mainClistDB Public applyPKCodeDB As String = mainPKCodeDB Public applyNonTDDB As String = MainNonTDDB + Public ApplyModelInfoDB As String = mainModelInfoDB Public Enum pSerialList DivSet @@ -48,6 +52,7 @@ Effect EffectV3 MaximumAlpha + Optimum '신규제품추가 : 추가하는 품목의 변수 추가 End Enum Public pSerialList_max_index As Integer = [Enum].GetNames(GetType(pSerialList)).Length - 1