Imports OrderPackingProcessor.mySQLAddress Module mySQLAddress Private Const mainOrderDB As String = "jomtOrderDB.jomtOrderTbl" Private Const testOrderDB As String = "jomtOrderTestDB.jomtOrderTbl" Private Const mainSalesDB As String = "jomtTesterDB.jomtSalesPackingTbl" Private Const testSalesDB As String = "jomtTesterServerDB.jomtSalesPackingTbl" Private Const mainCountDB As String = "jomtTesterDB.jomtPackingCount" Private Const testCountDB As String = "jomtTesterServerDB.jomtPackingCount" Private Const mainCartDB As String = "jomtTesterDB.jomtCartridgeTbl" Private Const testCartDB As String = "jomtTesterServerDB.jomtCartridgeTbl" Private Const mainProdDB As String = "jomtTesterDB.jomtProductTbl" Private Const testProdDB As String = "jomtTesterServerDB.jomtProductTbl" Private Const mainDivDB As String = "jomtTesterDB.jomtDeviceTbl" Private Const testDivDB As String = "jomtTesterServerDB.jomtDeviceTbl" Private Const mainPlistDB As String = "jomtTesterDB.jomtProdList" Private Const testPlistDB As String = "jomtTesterServerDB.jomtProdList" Private Const mainClistDB As String = "jomtTesterDB.jomtComponentTbl" Private Const testClistDB As String = "jomtTesterServerDB.jomtComponentTbl" Private Const mainPackEvent As String = "jomtTesterDB.jomtPackEvent" Private Const testPackEvent As String = "jomtTesterServerDB.jomtPackEvent" Private Const mainPKCodeDB As String = "jomtTesterDB.jomtPKCodeTbl" Private Const testHistoryDB As String = "jomtTesterServerDB.jomtPackHistoryTbl" Private Const testPackDB As String = "jomtTesterServerDB.jomtSalesPackingTbl_New" Private Const MainNonTDDB As String = "jomtTesterDB.jomtNonTDTbl" Private Const TestNonTDDB As String = "jomtTesterServerDB.jomtNonTDTbl" Private Const mainModelInfoDB As String = "jomtTesterDB.jomtModelInfoTbl" Private Const testModelInfoDB As String = "jomtTesterServerDB.jomtModelInfoTbl" Public applyOrderDB As String = testOrderDB Public applySalesDB As String = testSalesDB Public applyCountDB As String = testCountDB Public applyCartDB As String = testCartDB Public applyProdDB As String = testProdDB Public applyDivDB As String = testDivDB Public applyPlistDB As String = testPlistDB Public applyClistDB As String = testClistDB Public applyPackEvent As String = testPackEvent Public applyPKCodeDB As String = mainPKCodeDB Public applyNonTDDB As String = TestNonTDDB Public ApplyModelInfoDB As String = testModelInfoDB Public applyPackDB As String = testPackDB Public applyHistoryDB As String = testHistoryDB Public Enum countSaveList normal autopack autoWeight End Enum Public Enum dbCode prodDBcode comDBcode End Enum Public Enum prodDB packingCount proset luxset proface luxface proeye luxeye probody luxbody maximum alphaSet alphaFace alphaEye alphaBody alto effect effectV3 maximumAlpha optimum '신규제품추가 : 추가하는 품목의 변수 추가 End Enum Public Enum comDB mask5 mask10 hairband gel minigel ample cream umb fen charger cable toner problack probeige prored propink maxblack maxapr maxmint maxbeige soothing car0 car1 car2 car3 car4 car5 car6 bag cosbag dustbag maxPurple proSnakeBlack kollagen kollagenset kollagen_P kollagenset_P cleansingWater tonerPad maxSaffianoBK hologram1 hologram3 hologram5 caseSaffianoPp maxYellow Kollagen_Pe1 Kollagen_Pe3 Kollagen_Pe5 ATCircleCase APSquareCase maxPeach massageSoothing maxSMint meshpouch firmingAmp hyaluronicAmp nightshot morningshot casemaxwoodi Elicolltoner Elicollamp Elicollcream Elihyaltoner Elihyalamp Elihyalcream Dayshot Beautyshopbag Gummy Stickjelly Newyearbag Emsbelt Beltbag Dayshot2 Elixir Elixirpremium Emsbeltcontrollset FabricBag Goldshopbag MorNigshotset CTBox ElesqLiftingToner ElesqLiftingCeam ElesqLiftingECream ElesqLiftingAmp ElesqAquaToner ElesqAquaCeam ElesqAquaECream ElesqAquaAmp car8 keyring DoenaLiftingToner DoenaLiftingAmp DoenaLiftingCream FirmingCollagenGel keyringSally beautykitHairband beautykitMirrorS beautykitMirrorL bloomingMoistureGel150 firmingCollagenGel150 tweedCase bloomingMoistureGel250 '신규구성품추가 : 추가하는 품목의 변수 추가 End Enum Structure item_info Dim item_type As String 'P:Product / C:Component Dim prod_code As String Dim sales_packing_cnt_col_nm As String Dim sales_packing_serial_col_nm As String Dim cnt As Integer Dim serial As String End Structure Public item_product_list() As item_info Public item_component_list() As item_info Public item_product_max_index As Integer Public item_component_max_index As Integer Structure packing_count_info Dim item_type As String 'P:Product / C:Component Dim prod_code As String Dim packing_cnt_col_nm As String Dim ap_packing_cnt_col_nm As String Dim aw_packing_cnt_col_nm As String Dim db_count As Integer Dim com_count As Integer End Structure Public product_packing_cnt_list() As packing_count_info Public component_packing_cnt_list() As packing_count_info Public countCommand() As String ''데이터베이스 관련 Private DBCmd As String Public Function packingCountset(dbType As Int16, prodCode As Int16, ckCount As Int16, serial As String) If dbType = dbCode.prodDBcode Then ''기기인 경우 If prodCode >= 1 And prodCode <= item_product_max_index Then item_product_list(prodCode).cnt += ckCount If item_product_list(prodCode).serial = Nothing Then item_product_list(prodCode).serial = serial Else item_product_list(prodCode).serial = item_product_list(prodCode).serial & "/" & serial ''prod가 같은 경우 예시) End If Else MsgBox("잘못된 데이터가 개입되었습니다", vbCritical) Return True End If Else '' 구성품인 경우 If prodCode >= 0 And prodCode <= item_component_max_index Then item_component_list(prodCode).cnt += ckCount Else MsgBox("잘못된 데이터가 개입되었습니다", vbCritical) Return True End If End If Return False End Function Public Sub countCommandFunc(saveType As Int16) ReDim countCommand(item_product_max_index + item_component_max_index + 1) Select Case saveType Case countSaveList.normal ''포장 수량 컬럼에 저장할 컬럼명 배열 저장 countCommand(prodDB.packingCount) = "PackingCount" For i = 1 To item_product_max_index countCommand(i) = product_packing_cnt_list(i).packing_cnt_col_nm Next For i = 0 To item_component_max_index If component_packing_cnt_list(i).packing_cnt_col_nm <> Nothing Then countCommand(product_packing_cnt_list.Length + i) = component_packing_cnt_list(i).packing_cnt_col_nm End If Next Case countSaveList.autopack '' 대량포장 금일 수량 countCommand() countCommand(prodDB.packingCount) = "AutoPackCnt" For i = 1 To item_product_max_index countCommand(i) = product_packing_cnt_list(i).ap_packing_cnt_col_nm Next For i = 0 To item_component_max_index If component_packing_cnt_list(i).ap_packing_cnt_col_nm <> Nothing Then countCommand(product_packing_cnt_list.Length + i) = component_packing_cnt_list(i).ap_packing_cnt_col_nm End If Next Case countSaveList.autoWeight countCommand(prodDB.packingCount) = "AutoWeightCnt" For i = 1 To item_product_max_index countCommand(i) = product_packing_cnt_list(i).aw_packing_cnt_col_nm Next For i = 0 To item_component_max_index If component_packing_cnt_list(i).aw_packing_cnt_col_nm <> Nothing Then countCommand(product_packing_cnt_list.Length + i) = component_packing_cnt_list(i).aw_packing_cnt_col_nm End If Next End Select End Sub Public Sub countDBCommand() DBCmd = "SELECT MAX(ProdCode) FROM " & applyPlistDB & ";" If DBQueryReader(DBCmd) Then item_product_max_index = sqlDataQuery(0) ReDim item_product_list(item_product_max_index) ReDim product_packing_cnt_list(item_product_max_index) End If DBCmd = "SELECT CAST(ProdCode AS CHAR) , SalesPackingCntColNm , SalesPackingSerialColNm , PackingCntColNm , APPackingCntColNm , AWPackingCntColNm FROM " & applyPlistDB & " GROUP BY ProdCode ORDER BY ProdCode asc;" If DBQueryReader(DBCmd) Then Dim RowCount As Int16 = (sqlDataQuery.Length / 6) - 1 Dim dataSetCount As Int32 = 0 Dim item_data As item_info Dim packing_count_data As packing_count_info For row = 0 To RowCount item_data.item_type = "P" packing_count_data.item_type = "P" For col = 0 To 5 If col = 0 Then '' 기기 품목 관련 정보(컬럼 등) 배열 저장 item_data.prod_code = sqlDataQuery(dataSetCount) packing_count_data.prod_code = sqlDataQuery(dataSetCount) ElseIf col = 1 Then item_data.sales_packing_cnt_col_nm = sqlDataQuery(dataSetCount) ''포장 개수 ElseIf col = 2 Then item_data.sales_packing_serial_col_nm = sqlDataQuery(dataSetCount) '' 포장 기기 시리얼 넘버 ElseIf col = 3 Then packing_count_data.packing_cnt_col_nm = sqlDataQuery(dataSetCount) '' 금일 포장 수 ElseIf col = 4 Then packing_count_data.ap_packing_cnt_col_nm = sqlDataQuery(dataSetCount) ElseIf col = 5 Then packing_count_data.aw_packing_cnt_col_nm = sqlDataQuery(dataSetCount) End If dataSetCount += 1 Next item_product_list(item_data.prod_code) = item_data '' 배열의 인덱스를 각 품목 prod 코드로 설정하고 value값으로 포장object 저장 product_packing_cnt_list(packing_count_data.prod_code) = packing_count_data '' 배열의 인덱스를 각 품목 prod 코드로 설정하고 value값으로 수량object 저장 Next End If DBCmd = "SELECT MAX(ProdCode) FROM " & applyClistDB & ";" If DBQueryReader(DBCmd) Then item_component_max_index = sqlDataQuery(0) ReDim item_component_list(item_component_max_index) ReDim component_packing_cnt_list(item_component_max_index) End If DBCmd = "SELECT CAST(ProdCode AS CHAR) , SalesPackingCntColNm , PackingCntColNm , APPackingCntColNm , AWPackingCntColNm FROM " & applyClistDB & " GROUP BY ProdCode ORDER BY ProdCode asc;" If DBQueryReader(DBCmd) Then Dim RowCount As Int16 = (sqlDataQuery.Length / 5) - 1 Dim dataSetCount As Int32 = 0 Dim item_data As item_info Dim packing_count_data As packing_count_info For row = 0 To RowCount item_data.item_type = "C" packing_count_data.item_type = "C" For col = 0 To 4 If col = 0 Then item_data.prod_code = sqlDataQuery(dataSetCount) packing_count_data.prod_code = sqlDataQuery(dataSetCount) ElseIf col = 1 Then item_data.sales_packing_cnt_col_nm = sqlDataQuery(dataSetCount) ElseIf col = 2 Then packing_count_data.packing_cnt_col_nm = sqlDataQuery(dataSetCount) ElseIf col = 3 Then packing_count_data.ap_packing_cnt_col_nm = sqlDataQuery(dataSetCount) ElseIf col = 4 Then packing_count_data.aw_packing_cnt_col_nm = sqlDataQuery(dataSetCount) End If dataSetCount += 1 Next item_component_list(item_data.prod_code) = item_data component_packing_cnt_list(packing_count_data.prod_code) = packing_count_data Next End If End Sub End Module