From c01a048fafca1295b94d1f18d0b039f6bc297387 Mon Sep 17 00:00:00 2001 From: KwakJooYoung Date: Mon, 8 Dec 2025 09:40:00 +0900 Subject: [PATCH] =?UTF-8?q?1]=20=EC=8B=A0=EA=B7=9C=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=ED=85=9C=20=EC=B6=94=EA=B0=80=EC=8B=9C=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EB=9E=A8=20=EC=88=98=EC=A0=95=20=EC=97=86=EC=9D=B4=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95=202]=20?= =?UTF-8?q?=EB=B2=84=EC=A0=84=202.0.0=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frmMySqlTest.vb | 730 ++++++++++++++---------------------------------- 1 file changed, 210 insertions(+), 520 deletions(-) diff --git a/frmMySqlTest.vb b/frmMySqlTest.vb index b87f7fa..8d29388 100644 --- a/frmMySqlTest.vb +++ b/frmMySqlTest.vb @@ -1,53 +1,14 @@ -'Imports System.Data.OleDb -'Imports System.Reflection -Imports System.ComponentModel +Imports System.ComponentModel Imports System.IO.Ports Imports Microsoft.Office.Core Imports Excel = Microsoft.Office.Interop.Excel -''Imports Microsoft.Office.Interop Public Class frmMySqlTest - - Private Enum typeList - prodset_V1 - prodface_V2 - prodeye - prodbody - '신규제품추가 : 제품 시리얼 번호 두번째 자리와 동일하도록 업데이트 - End Enum - - Private Enum modelList - PRO = 1 - LUX - MAXIMUM - ALPHA - ALTO - EFFECT - MAXIMUM_ALPHA - '신규제품추가 : 제품 시리얼 번호 첫번째 자리와 동일하도록 업데이트 - End Enum - Private Enum data_set + Private Enum basic_info + 'packing info packcode pack_date - - set_serial - pro_fa_serial - lux_fa_serial - pro_ey_serial - lux_ey_serial - pro_bo_serial - lux_bo_serial - MAXIMUM_serial - Alpha_Serial - Alpha_fa_Serial - Alpha_ey_Serial - Alpha_bo_Serial - Alto_Serial - Effect_Serial - EffectV3_Serial - MAXIMUM_ALPHA_Serial - '신규제품추가 : 추가하는 품목의 변수 추가 pack_note - + 'order info ordercode order_name phone @@ -55,138 +16,18 @@ Public Class frmMySqlTest invoice order_note End Enum - Private data_set_max_index As Integer = [Enum].GetNames(GetType(data_set)).Length - 1 - Private data_select(data_set_max_index) As String + Private basic_info_max_index As Integer = [Enum].GetNames(GetType(basic_info)).Length - 1 + Private basic_data_select(basic_info_max_index) As String - Private Enum data_count - 'product - dummy_0 - set_cnt = 1 ' Pro_Set, Lux_Set - dummy_2 - proface_cnt = 3 - luxface_cnt - proeye_cnt - luxeye_cnt - probody_cnt - luxbody_cnt - maximum_cnt - alphaSet_cnt - alphaFace_cnt - alphaEye_cnt - alphaBody_cnt - alto_cnt - effect_cnt - effectV3_cnt - maximumAlpha_cnt - '신규제품추가 : 추가하는 품목의 변수 추가 - - 'component - 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 - Private data_count_max_index As Integer = [Enum].GetNames(GetType(data_count)).Length - 1 - Private data_cnt(data_count_max_index) As String + 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 String + Dim serial As String + End Structure + Private item_data_list As New ArrayList Private cmd As String Private dbcmd As String @@ -207,11 +48,15 @@ Public Class frmMySqlTest Public InputCnt As Long Public InputCntVal As Integer = 10 + Public OldSerialNumberLength As Integer = 12 + Public NewSerialNumberLength As Integer = 16 Private command_serial As String Private command_count As String Private product_serial_type As String Private all_serial_list As New List(Of String) + Private query_product As String + Private query_component As String Private Sub SetInputCnt() InputCnt = InputCntVal @@ -262,32 +107,82 @@ Public Class frmMySqlTest End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load - + setItemData() txb_clear() ' DataGridView를 선택하면 전체 한줄이 선택되게 됩니다. dgv_pack_item.SelectionMode = DataGridViewSelectionMode.FullRowSelect txbPacking.Focus() - End Sub - 'Private Sub size_est() - ' Dim width, height As Integer + Private Sub setItemData() + dbcmd = "SELECT CAST(ProdCode AS CHAR), SalesPackingCntColNm, SalesPackingSerialColNm FROM " & prod_table & " WHERE ProdCode <> 2 GROUP BY ProdCode ORDER BY ProdCode asc;" + If DBQueryReader(dbcmd) Then + Dim RowCount As Int16 = (sqlDataQuery.Length / 3) - 1 + Dim dataSetCount As Int32 = 0 + Dim item_data As item_info - ' Me.Hide() - ' Me.WindowState = FormWindowState.Maximized + For row = 0 To RowCount + item_data.item_type = "P" + For col = 0 To 2 + If col = 0 Then + item_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) + End If + dataSetCount += 1 + Next + item_data_list.Add(item_data) + Next + End If - ' width = Val(Me.Width) - ' height = Val(Me.Height) + dbcmd = "SELECT CAST(ProdCode AS CHAR), SalesPackingCntColNm FROM " & component_table & " GROUP BY ProdCode ORDER BY ProdCode asc;" + If DBQueryReader(dbcmd) Then + Dim RowCount As Int16 = (sqlDataQuery.Length / 2) - 1 + Dim dataSetCount As Int32 = 0 + Dim item_data As item_info - ' Me.MaximumSize = New Size(width, height) - ' Me.Width = width - ' Me.Height = height + For row = 0 To RowCount + item_data.item_type = "C" + For col = 0 To 1 + If col = 0 Then + item_data.prod_code = sqlDataQuery(dataSetCount) + ElseIf col = 1 Then + item_data.sales_packing_cnt_col_nm = sqlDataQuery(dataSetCount) + End If + dataSetCount += 1 + Next + item_data_list.Add(item_data) + Next + End If - ' Me.Show() - ' Me.Refresh() + '제품 정보 조회 쿼리 생성 + query_product = Nothing + For Each item_data As item_info In item_data_list + If item_data.item_type = "P" Then + If query_product = Nothing Then + query_product = "'" & item_data.prod_code & "', IFNULL(" & item_data.sales_packing_serial_col_nm & ",'NULL'), IFNULL(" & item_data.sales_packing_cnt_col_nm & ",'0')" + Else + query_product = query_product & ",'" & item_data.prod_code & "', IFNULL(" & item_data.sales_packing_serial_col_nm & ",'NULL'), IFNULL(" & item_data.sales_packing_cnt_col_nm & ",'0')" + End If + End If + Next + + '구성품 정보 조회 쿼리 생성 + query_component = Nothing + For Each item_data As item_info In item_data_list + If item_data.item_type = "C" Then + If query_component = Nothing Then + query_component = "'" & item_data.prod_code & "', IFNULL(" & item_data.sales_packing_cnt_col_nm & ",'0')" + Else + query_component = query_component & ",'" & item_data.prod_code & "', IFNULL(" & item_data.sales_packing_cnt_col_nm & ",'0')" + End If + End If + Next + End Sub - 'End Sub Private Sub clearVariable() command_serial = Nothing command_count = Nothing @@ -299,12 +194,13 @@ Public Class frmMySqlTest dgv_pack_item.Rows.Clear() dgv_pack_item.Refresh() - For i = 0 To data_set_max_index - data_select(i) = "NULL" + For i = 0 To basic_info_max_index + basic_data_select(i) = "NULL" Next - For i = 0 To data_count_max_index - data_cnt(i) = "0" + For Each item_data As item_info In item_data_list + item_data.cnt = 0 + item_data.serial = Nothing Next End Sub @@ -312,117 +208,24 @@ Public Class frmMySqlTest Dim modelNum As String = Mid(serial, 1, 1) Dim typeNum As String = Mid(serial, 2, 1) - Select Case modelNum - Case modelList.PRO - Select Case typeNum - Case typeList.prodset_V1 - command_serial = "Main_Product_SN" - command_count = "Set_Cnt" - product_serial_type = data_set.set_serial - Case typeList.prodface_V2 - command_serial = "Pro_Face_Serial" - command_count = "Pro_CT_FaceCnt" - product_serial_type = data_set.pro_fa_serial - Case typeList.prodeye - command_serial = "Pro_Eye_Serial" - command_count = "Pro_CT_EYE_Cnt" - product_serial_type = data_set.pro_ey_serial - Case typeList.prodbody - command_serial = "Pro_Body_Serial" - command_count = "Pro_CT_BodyCnt" - product_serial_type = data_set.pro_bo_serial - End Select + If serial.Length = OldSerialNumberLength Then + modelNum = Mid(serial, 1, 1) + typeNum = Mid(serial, 2, 1) + Else + modelNum = Mid(serial, 1, 2) + typeNum = Mid(serial, 15, 1) + End If - Case modelList.LUX - Select Case typeNum - Case typeList.prodset_V1 - command_serial = "Main_Product_SN" - command_count = "Set_Cnt" - product_serial_type = data_set.set_serial - Case typeList.prodface_V2 - command_serial = "Lux_Face_Serial" - command_count = "Lux_CT_FaceCnt" - product_serial_type = data_set.lux_fa_serial - Case typeList.prodeye - command_serial = "Lux_Eye_Serial" - command_count = "Lux_CT_EYE_Cnt" - product_serial_type = data_set.lux_ey_serial - Case typeList.prodbody - command_serial = "Lux_Body_Serial" - command_count = "Lux_CT_BodyCnt" - product_serial_type = data_set.lux_bo_serial - End Select + dbcmd = "SELECT SalesPackingSerialColNm, SalesPackingCntColNm, CAST(ProdCode AS CHAR) FROM " & prod_table & " WHERE ModelNum = " & modelNum & " AND TypeNum = " & typeNum & " LIMIT 1;" + If DBQueryReader(dbcmd) Then + command_serial = sqlDataQuery(0) + command_count = sqlDataQuery(1) + product_serial_type = sqlDataQuery(2) - Case modelList.MAXIMUM - Select Case typeNum - Case typeList.prodset_V1 - command_serial = "MAXIMUM_SN" - command_count = "MAXIMUM_Cnt" - product_serial_type = data_set.MAXIMUM_serial - Case typeList.prodface_V2 - command_serial = "MAXIMUM_SN" - command_count = "MAXIMUM_Cnt" - product_serial_type = data_set.MAXIMUM_serial - End Select - - Case modelList.ALPHA - Select Case typeNum - Case typeList.prodset_V1 - command_serial = "Alpha_Set_Serial" - command_count = "Alpha_Set_Cnt" - product_serial_type = data_set.Alpha_Serial - Case typeList.prodface_V2 - command_serial = "Alpha_Face_Serial" - command_count = "Alpha_Face_Cnt" - product_serial_type = data_set.Alpha_fa_Serial - Case typeList.prodeye - command_serial = "Alpha_Eye_Serial" - command_count = "Alpha_Eye_Cnt" - product_serial_type = data_set.Alpha_ey_Serial - Case typeList.prodbody - command_serial = "Alpha_Body_Serial" - command_count = "Alpha_Body_Cnt" - product_serial_type = data_set.Alpha_bo_Serial - End Select - - Case modelList.ALTO - Select Case typeNum - Case typeList.prodset_V1 - command_serial = "Alto_Serial" - command_count = "Alto_Cnt" - product_serial_type = data_set.Alto_Serial - End Select - - Case modelList.EFFECT - Select Case typeNum - Case typeList.prodset_V1 - command_serial = "Effect_Serial" - command_count = "Effect_Cnt" - product_serial_type = data_set.Effect_Serial - Case typeList.prodbody - command_serial = "EffectV3_Serial" - command_count = "EffectV3_Cnt" - product_serial_type = data_set.EffectV3_Serial - End Select - - Case modelList.MAXIMUM_ALPHA - Select Case typeNum - Case typeList.prodset_V1 - command_serial = "MAXIMUM_ALPHA_SN" - command_count = "MAXIMUM_ALPHA_Cnt" - product_serial_type = data_set.MAXIMUM_ALPHA_Serial - End Select - '신규제품추가 : 추가한 제품의 case 문 업데이트 - - End Select - - If command_serial <> Nothing Then dbcmd = "SELECT PackingCode FROM " & sales_table & " WHERE " & command_serial & " LIKE '%" & serial & "%'" - If DBQueryReader(dbcmd) Then Return sqlDataQuery(0) End If - End If Return Nothing @@ -446,18 +249,18 @@ Public Class frmMySqlTest clearVariable() '시리얼번호를 포함하고 있는 패킹코드 검색 - If Len(txbPacking.Text) = 12 Then + If Len(txbPacking.Text) = OldSerialNumberLength Or Len(txbPacking.Text) = NewSerialNumberLength Then packing_code = select_packingCode(txbPacking.Text) End If - If db_select(packing_code) Then + If packing_code <> Nothing And db_select(packing_code) Then If item_out() Then - txb_pack_code.Text = data_select(data_set.packcode) - txb_pack_date.Text = data_select(data_set.pack_date) - txb_state_code.Text = data_select(data_set.ordercode) - txb_state_date.Text = data_select(data_set.ship_date) - txb_state_name.Text = data_select(data_set.order_name) - txb_invoice.Text = data_select(data_set.invoice) + txb_pack_code.Text = basic_data_select(basic_info.packcode) + txb_pack_date.Text = basic_data_select(basic_info.pack_date) + txb_state_code.Text = basic_data_select(basic_info.ordercode) + txb_state_date.Text = basic_data_select(basic_info.ship_date) + txb_state_name.Text = basic_data_select(basic_info.order_name) + txb_invoice.Text = basic_data_select(basic_info.invoice) End If If all_serial_list.Count > 1 Then @@ -474,26 +277,9 @@ Public Class frmMySqlTest End Sub Private Function db_select(packing_code As String) As Boolean - + '패킹, 주문 기본정보 조회 dbcmd = "SELECT IFNULL(sale.PackingCode,'NULL') , IFNULL(sale.`Data`,'NULL') - - , IFNULL(sale.Main_Product_SN,'NULL') - , IFNULL(sale.Pro_Face_Serial,'NULL') - , IFNULL(sale.Lux_Face_Serial,'NULL') - , IFNULL(sale.Pro_Eye_Serial,'NULL') - , IFNULL(sale.Lux_Eye_Serial,'NULL') - , IFNULL(sale.Pro_Body_Serial,'NULL') - , IFNULL(sale.Lux_Body_Serial,'NULL') - , IFNULL(sale.MAXIMUM_SN,'NULL') - , IFNULL(sale.Alpha_Set_Serial,'NULL') - , IFNULL(sale.Alpha_Face_Serial,'NULL') - , IFNULL(sale.Alpha_Eye_Serial,'NULL') - , IFNULL(sale.Alpha_Body_Serial,'NULL') - , IFNULL(sale.Alto_Serial,'NULL') - , IFNULL(sale.Effect_Serial,'NULL') - , IFNULL(sale.EffectV3_Serial,'NULL') - , IFNULL(sale.MAXIMUM_ALPHA_SN,'NULL') , IFNULL(sale.note, '') , IFNULL(otb.Order_Code,'NULL') @@ -502,190 +288,118 @@ Public Class frmMySqlTest , IFNULL(otb.Shipment_Date,'NULL') , IFNULL(otb.Invoice_Number,'NULL') , IFNULL(otb.note,'') - - , IFNULL(sale.Set_Cnt,'0') - , '0' - , IFNULL(sale.Pro_CT_FaceCnt,'0') - , IFNULL(sale.Lux_CT_FaceCnt,'0') - , IFNULL(sale.Pro_CT_EYE_Cnt,'0') - , IFNULL(sale.Lux_CT_EYE_Cnt,'0') - , IFNULL(sale.Pro_CT_BodyCnt,'0') - , IFNULL(sale.Lux_CT_BodyCnt,'0') - , IFNULL(sale.MAXIMUM_Cnt,'0') - , IFNULL(sale.Alpha_Set_Cnt,'0') - , IFNULL(sale.Alpha_Face_Cnt,'0') - , IFNULL(sale.Alpha_Eye_Cnt,'0') - , IFNULL(sale.Alpha_Body_Cnt,'0') - , IFNULL(sale.Alto_Cnt,'0') - , IFNULL(sale.Effect_Cnt,'0') - , IFNULL(sale.EffectV3_Cnt,'0') - , IFNULL(sale.MAXIMUM_ALPHA_Cnt,'0') - - , IFNULL(sale.Mask5Cnt,'0') - , IFNULL(sale.Mask10Cnt,'0') - , IFNULL(sale.HairBandCnt,'0') - , IFNULL(sale.GelCnt,'0') - , IFNULL(sale.MiniGelCnt,'0') - , IFNULL(sale.AmpleCnt,'0') - , IFNULL(sale.CreamCnt,'0') - , IFNULL(sale.UmbrellaCnt,'0') - , IFNULL(sale.FenCnt,'0') - , IFNULL(sale.ChargerCnt,'0') - , IFNULL(sale.CableCnt,'0') - , IFNULL(sale.TonerCnt,'0') - , IFNULL(sale.Case_PRO_Black,'0') - , IFNULL(sale.Case_PRO_Beige,'0') - , IFNULL(sale.Case_PRO_Red,'0') - , IFNULL(sale.Case_PRO_Pink,'0') - , IFNULL(sale.Case_MAX_Black,'0') - , IFNULL(sale.Case_MAX_Apr,'0') - , IFNULL(sale.Case_MAX_Mint,'0') - , IFNULL(sale.Case_MAX_Beige,'0') - , IFNULL(sale.SoothingGelCnt,'0') - , IFNULL(sale.Carton0_Cnt,'0') - , IFNULL(sale.Carton1_Cnt,'0') - , IFNULL(sale.Carton2_Cnt,'0') - , IFNULL(sale.Carton3_Cnt,'0') - , IFNULL(sale.Carton4_Cnt,'0') - , IFNULL(sale.Carton5_Cnt,'0') - , IFNULL(sale.Carton6_Cnt,'0') - , IFNULL(sale.Shopbag_Cnt,'0') - , IFNULL(sale.CosShopbag_Cnt,'0') - , IFNULL(sale.DustBagCnt,'0') - , IFNULL(sale.Case_MAX_Purple,'0') - , IFNULL(sale.Case_PRO_SnakeBlakc,'0') - , IFNULL(sale.KollagenCnt,'0') - , IFNULL(sale.KollagenSetCnt,'0') - , IFNULL(sale.Kollagen_PCnt,'0') - , IFNULL(sale.KollagenSet_PCnt,'0') - , IFNULL(sale.CleansingWaterCnt,'0') - , IFNULL(sale.TonerPadCnt,'0') - , IFNULL(sale.Case_MAX_SafBK_Cnt,'0') - , IFNULL(sale.Hologram_1Cnt,'0') - , IFNULL(sale.Hologram_3Cnt,'0') - , IFNULL(sale.Hologram_5Cnt,'0') - , IFNULL(sale.Case_MAX_SafPp_Cnt,'0') - , IFNULL(sale.Case_MAX_Yellow,'0') - , IFNULL(sale.Kollagen_Pe1Cnt,'0') - , IFNULL(sale.Kollagen_Pe3Cnt,'0') - , IFNULL(sale.Kollagen_Pe5Cnt,'0') - , IFNULL(sale.ATCircleCaseCnt,'0') - , IFNULL(sale.APSquareCaseCnt,'0') - , IFNULL(sale.Case_MAX_Peach,'0') - , IFNULL(sale.MasSoothingCnt,'0') - , IFNULL(sale.Case_MAX_SMintCnt,'0') - , IFNULL(sale.MeshPouchCnt,'0') - , IFNULL(sale.FirmingAmpCnt,'0') - , IFNULL(sale.HyaluronicAmpCnt,'0') - , IFNULL(sale.nightshotcnt,'0') - , IFNULL(sale.morningshotcnt,'0') - , IFNULL(sale.casemaxwoodicnt,'0') - , IFNULL(sale.Elicolltonercnt,'0') - , IFNULL(sale.Elicollampcnt,'0') - , IFNULL(sale.Elicollcreamcnt,'0') - , IFNULL(sale.Elihyaltonercnt,'0') - , IFNULL(sale.Elihyalampcnt,'0') - , IFNULL(sale.Elihyalcreamcnt,'0') - , IFNULL(sale.Dayshotcnt,'0') - , IFNULL(sale.Beautyshopbagcnt,'0') - , IFNULL(sale.Gummycnt,'0') - , IFNULL(sale.stickjellycnt,'0') - , IFNULL(sale.Newyearbagcnt,'0') - , IFNULL(sale.Emsbeltcnt,'0') - , IFNULL(sale.Beltbagcnt,'0') - , IFNULL(sale.Dayshot2cnt,'0') - , IFNULL(sale.Elixircnt,'0') - , IFNULL(sale.Elixirpremiumcnt,'0') - , IFNULL(sale.Emsbeltcontrollsetcnt,'0') - , IFNULL(sale.FabricBagcnt,'0') - , IFNULL(sale.Goldshopbagcnt,'0') - , IFNULL(sale.MorNigshotsetcnt,'0') - , IFNULL(sale.CTBoxcnt,'0') - , IFNULL(sale.ElesqLiftingTonercnt,'0') - , IFNULL(sale.ElesqLiftingCeamcnt,'0') - , IFNULL(sale.ElesqLiftingECreamcnt,'0') - , IFNULL(sale.ElesqLiftingAmpcnt,'0') - , IFNULL(sale.ElesqAquaTonercnt,'0') - , IFNULL(sale.ElesqAquaCeamcnt,'0') - , IFNULL(sale.ElesqAquaECreamcnt,'0') - , IFNULL(sale.ElesqAquaAmpcnt,'0') - , IFNULL(sale.Carton8_Cnt,'0') - , IFNULL(sale.KeyringCnt,'0') - , IFNULL(sale.DoenaLiftingTonercnt,'0') - , IFNULL(sale.DoenaLiftingAmpcnt,'0') - , IFNULL(sale.DoenaLiftingCreamcnt,'0') - , IFNULL(sale.FirmingCollagenGelcnt,'0') - , IFNULL(sale.KeyringSallyCnt,'0') - , IFNULL(sale.BeautykitHairbandCnt,'0') - , IFNULL(sale.BeautykitMirrorSCnt,'0') - , IFNULL(sale.BeautykitMirrorLCnt,'0') - , IFNULL(sale.BloomingMoistureGel150Cnt,'0') - , IFNULL(sale.FirmingCollagenGel150Cnt,'0') - , IFNULL(sale.TweedCaseCnt,'0') - , IFNULL(sale.BloomingMoistureGel250Cnt,'0') FROM " & sales_db & " AS sale LEFT JOIN " & order_db & " AS otb ON sale.PackingCode = otb.Packing_Code - WHERE sale.PackingCode = '" & packing_code & "' GROUP BY sale.PackingCode" '신규제품추가/신규구성품추가 : 추가하는 품목의 시리얼, 개수 조회 추가 + WHERE sale.PackingCode = '" & packing_code & "' GROUP BY sale.PackingCode" If DBQueryReader(dbcmd) Then - - For i = 0 To data_set_max_index - data_select(i) = sqlDataQuery(i) + For i = 0 To basic_info_max_index + basic_data_select(i) = sqlDataQuery(i) Next - - For i = 1 To data_count_max_index - data_cnt(i) = sqlDataQuery(data_set_max_index + i) - Next - - '모든 제품의 시리얼번호를 검색 - For i = data_set.set_serial To data_set.pack_note - 1 - If data_select(i) <> "NULL" Then - Dim serial_array() As String = data_select(i).Split("/") - For j = 0 To serial_array.Length - 1 - If Len(serial_array(j)) <> 0 Then - all_serial_list.Add(serial_array(j)) - End If - Next - End If - Next - - Return True - Else Return False End If + '제품 정보 조회 + dbcmd = "SELECT " & query_product & " FROM " & sales_db & " WHERE PackingCode = '" & packing_code & "'" + If DBQueryReader(dbcmd) Then + Dim RowCount As Int16 = (sqlDataQuery.Length / 3) - 1 + Dim dataSetCount As Int32 = 0 + Dim prod_code As String + Dim serial As String + Dim cnt As String + + For row = 0 To RowCount + For col = 0 To 2 + If col = 0 Then + prod_code = sqlDataQuery(dataSetCount) + ElseIf col = 1 Then + serial = sqlDataQuery(dataSetCount) + ElseIf col = 2 Then + cnt = sqlDataQuery(dataSetCount) + End If + dataSetCount += 1 + Next + + For i = 0 To item_data_list.Count - 1 + Dim item_data As item_info = item_data_list(i) + If item_data.item_type = "P" And item_data.prod_code = prod_code Then + item_data.serial = serial + item_data.cnt = cnt + item_data_list(i) = item_data + + '모든 제품의 시리얼번호를 검색 + If serial <> "NULL" Then + Dim serial_array() As String = serial.Split("/") + For j = 0 To serial_array.Length - 1 + If Len(serial_array(j)) <> 0 Then + all_serial_list.Add(serial_array(j)) + End If + Next + End If + + Exit For + End If + Next + Next + End If + + '구성품 정보 조회 + dbcmd = "SELECT " & query_component & " FROM " & sales_db & " WHERE PackingCode = '" & packing_code & "'" + If DBQueryReader(dbcmd) Then + Dim RowCount As Int16 = (sqlDataQuery.Length / 2) - 1 + Dim dataSetCount As Int32 = 0 + Dim prod_code As String + Dim cnt As String + + For row = 0 To RowCount + For col = 0 To 1 + If col = 0 Then + prod_code = sqlDataQuery(dataSetCount) + ElseIf col = 1 Then + cnt = sqlDataQuery(dataSetCount) + End If + dataSetCount += 1 + Next + + For i = 0 To item_data_list.Count - 1 + Dim item_data As item_info = item_data_list(i) + If item_data.item_type = "C" And item_data.prod_code = prod_code Then + item_data.cnt = cnt + + item_data_list(i) = item_data + Exit For + End If + Next + Next + End If + + Return True End Function Private Function item_out() As Boolean - Dim item_name, item_serial As String + Dim item_name As String Dim dgv_switch As Boolean Try - - For i = 0 To data_count_max_index + For Each item_data As item_info In item_data_list dgv_switch = False item_name = Nothing - item_serial = Nothing - If data_cnt(i) > 0 Then - If i = data_count.set_cnt Then 'Pro_Set, Lux_Set - If Mid(data_select(data_set.set_serial), 1, 2) = "10" Then + If item_data.cnt > 0 Then + If item_data.item_type = "P" And item_data.prod_code = "1" Or item_data.prod_code = "2" Then 'Pro_Set, Lux_Set + If Mid(item_data.serial, 1, 2) = "10" Then item_name = "DUALSONIC Pro 1Set (KR)" Else item_name = "DUALSONIC Lux 1Set (KR)" End If - - item_serial = data_select(data_set.set_serial) - ElseIf i < data_count.mask5 Then - dbcmd = "SELECT ItemName FROM " & prod_db & " WHERE ProdCode = '" & i & "' AND ItemName NOT LIKE '%체험%' LIMIT 1" + ElseIf item_data.item_type = "P" Then + dbcmd = "SELECT ItemName FROM " & prod_db & " WHERE ProdCode = '" & item_data.prod_code & "' AND ItemName NOT LIKE '%체험%' LIMIT 1" If DBQueryReader(dbcmd) Then item_name = sqlDataQuery(0) End If - - item_serial = data_select(i) Else - dbcmd = "SELECT ItemName FROM " & component_db & " WHERE ProdCode = '" & (i - data_count.mask5) & "' LIMIT 1" + dbcmd = "SELECT ItemName FROM " & component_db & " WHERE ProdCode = '" & item_data.prod_code & "' LIMIT 1" If DBQueryReader(dbcmd) Then item_name = sqlDataQuery(0) @@ -696,11 +410,10 @@ Public Class frmMySqlTest End If If dgv_switch = True Then - dgv_pack_item.Rows.Add(item_name, data_cnt(i), item_serial) + dgv_pack_item.Rows.Add(item_name, item_data.cnt, item_data.serial) End If Next - Return True Catch ex As Exception @@ -715,13 +428,6 @@ Public Class frmMySqlTest txbPacking.BackColor = Color.White End Sub - ' Private Sub txbPacking_KeyDown(ByVal sender As Object, e As KeyEventArgs) Handles txbPacking.KeyDown - - 'If e.KeyCode = Keys.KeyCode.Return Then - ' btnReadDB_Click(sender, e) - ' End If - - ' End Sub Private Sub txbPacking_KeyDown(ByVal sender As Object, e As KeyEventArgs) Handles txbPacking.KeyDown If e.KeyCode = Keys.Return Then btnReadDB_Click(sender, EventArgs.Empty) @@ -779,12 +485,18 @@ Public Class frmMySqlTest msg_cnt = MsgBox("패킹에 포함된 시리얼번호를 삭제하시겠습니까?", vbExclamation + vbOKCancel) If msg_cnt = 1 Then - 'STEP_01 : jomtTesterDB.jomtSalesPackingTbl 테이블 시리얼번호 삭제 - Dim remain_serial_data() As String = data_select(product_serial_type).Replace(txbPacking.Text, "").Split("/") + Dim remain_serial_data() As String Dim update_serial_str As String = "" Dim update_serial_cnt As UInt16 = 0 - Dim update_note_str As String = data_select(data_set.pack_note) + Dim update_note_str As String = basic_data_select(basic_info.pack_note) + + For Each item_data As item_info In item_data_list + If item_data.item_type = "P" And item_data.prod_code = product_serial_type Then + remain_serial_data = item_data.serial.Replace(txbPacking.Text, "").Split("/") + Exit For + End If + Next For i = 0 To remain_serial_data.Length - 1 If Len(remain_serial_data(i)) <> 0 Then @@ -822,7 +534,7 @@ Public Class frmMySqlTest remain_serial_data = sqlDataQuery(0).Replace(txbPacking.Text, "").Split("/") update_serial_str = "" update_serial_cnt = 0 - update_note_str = data_select(data_set.order_note) + update_note_str = basic_data_select(basic_info.order_note) For i = 0 To remain_serial_data.Length - 1 If Len(remain_serial_data(i)) <> 0 Then @@ -912,7 +624,6 @@ Public Class frmMySqlTest End Sub - Private Sub btn_delete_Click(sender As Object, e As EventArgs) Handles btn_delete.Click Dim msg_cnt As Int16 Dim serial_data As String @@ -945,13 +656,9 @@ Public Class frmMySqlTest MsgBox("데이터베이스 안에 전표 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical) End If - - Else MsgBox("삭제가 취소되었습니다.", vbInformation) End If - - Else If all_serial_list.Count > 1 Then @@ -992,26 +699,9 @@ Public Class frmMySqlTest dbcmd = "UPDATE " & sales_db & " SET PackingCode = 'null_" & txb_pack_code.Text & "' - , Main_Product_SN = NULL - , Main_FACE_SN = NULL - , Main_EYE_SN = NULL - , Pro_Face_Serial = NULL - , Pro_Eye_Serial = NULL - , Pro_Body_Serial = NULL - , Lux_Face_Serial = NULL - , Lux_Eye_Serial = NULL - , Lux_Body_Serial = NULL - , MAXIMUM_SN = NULL - , Alpha_Set_Serial = NULL - , Alpha_Face_Serial = NULL - , Alpha_Eye_Serial = NULL - , Alpha_Body_Serial = NULL - , Alto_Serial = NULL - , Effect_Serial = NULL - , EffectV3_Serial = NULL - , MAXIMUM_ALPHA_SN = NULL + , " & command_serial & " = NULL , note = '" & serial & "' - WHERE PackingCode = '" & txb_pack_code.Text & "'" '신규제품추가 : 추가하는 품목의 변수 추가 + WHERE PackingCode = '" & txb_pack_code.Text & "'" If DBCommand(dbcmd) Then Return True End If @@ -1033,8 +723,8 @@ Public Class frmMySqlTest End If Next - If Len(data_select(data_set.pack_note)) > 0 Then - serial_data = data_select(data_set.pack_note) & "," & serial_data + If Len(basic_data_select(basic_info.pack_note)) > 0 Then + serial_data = basic_data_select(basic_info.pack_note) & "," & serial_data End If Return serial_data