1] 신규 아이템 추가시 프로그램 수정 없이 처리할 수 있도록 로직 수정

2] 버전 2.0.0 업데이트
This commit is contained in:
KwakJooYoung 2025-12-08 09:40:00 +09:00
parent a3a9c4a400
commit c01a048faf

View File

@ -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