shpmt-PackingCodeRemover/frmMySqlTest.vb

724 lines
25 KiB
VB.net
Raw Normal View History

2025-07-08 15:33:46 +09:00
'Imports System.Data.OleDb
'Imports System.Reflection
Imports System.ComponentModel
Imports Microsoft.Office.Core
2025-07-08 15:33:46 +09:00
Imports Excel = Microsoft.Office.Interop.Excel
''Imports Microsoft.Office.Interop
Public Class frmMySqlTest
Private Enum data_set
packcode
pack_date
2025-07-08 15:33:46 +09:00
set_serial
pro_fa_serial
lux_fa_serial
pro_ey_serial
2025-07-08 15:33:46 +09:00
lux_ey_serial
pro_bo_serial
2025-07-08 15:33:46 +09:00
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
'신규제품추가 : 추가하는 품목의 변수 추가
2025-07-08 15:33:46 +09:00
ordercode
order_name
phone
ship_date
invoice
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
2025-07-08 15:33:46 +09:00
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
'신규구성품추가 : 추가하는 품목의 변수 추가
2025-07-08 15:33:46 +09:00
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
2025-07-08 15:33:46 +09:00
Private cmd As String
Private dbcmd As String
Private order_table As String = "jomtOrderDB.jomtOrderTbl"
Private sales_table As String = "jomtTesterDB.jomtSalesPackingTbl"
Private order_test As String = "jomtOrderTestDB.jomtTesterOrderTbl"
Private sales_test As String = "jomtTesterServerDB.jomtSalesPackingTbl"
Private prod_table As String = "jomtTesterDB.jomtProdList"
Private component_table As String = "jomtTesterDB.jomtComponentTbl"
2025-07-08 15:33:46 +09:00
Private order_db As String = order_table
Private sales_db As String = sales_table
Private prod_db As String = prod_table
Private component_db As String = component_table
2025-07-08 15:33:46 +09:00
Private clear_switch As Boolean = False
Public InputCnt As Long
Public InputCntVal As Integer = 10
Private Sub SetInputCnt()
InputCnt = InputCntVal
timer_barcode.Enabled = True
End Sub
Private Sub timer_barcode_Tick(sender As Object, e As EventArgs) Handles timer_barcode.Tick
If InputCnt Then
InputCnt -= 1
Else
timer_barcode.Enabled = False
If ckb_barcode.Checked Then
btnReadDB_Click(sender, e)
Else
txbPacking.Focus()
txbPacking.Refresh()
End If
End If
End Sub
Private Sub txb_clear()
If clear_switch = False Then
txbPacking.Clear()
End If
clear_switch = False
txb_pack_code.Clear()
txb_pack_date.Clear()
txb_state_code.Clear()
txb_state_date.Clear()
txb_state_name.Clear()
txb_invoice.Clear()
txbPacking.Refresh()
txb_pack_code.Refresh()
txb_pack_date.Refresh()
txb_state_code.Refresh()
txb_state_date.Refresh()
txb_state_name.Refresh()
txb_invoice.Refresh()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
txb_clear()
' DataGridView를 선택하면 전체 한줄이 선택되게 됩니다.
dgv_pack_item.SelectionMode = DataGridViewSelectionMode.FullRowSelect
txbPacking.Focus()
End Sub
'Private Sub size_est()
' Dim width, height As Integer
' Me.Hide()
' Me.WindowState = FormWindowState.Maximized
' width = Val(Me.Width)
' height = Val(Me.Height)
' Me.MaximumSize = New Size(width, height)
' Me.Width = width
' Me.Height = height
' Me.Show()
' Me.Refresh()
'End Sub
Private Sub btnReadDB_Click(sender As Object, e As EventArgs) Handles btnReadDB.Click
If txbPacking.Text = "" Then
If ckb_state.Checked = True Then
MsgBox("전표코드를 입력하여 주십시오.", vbExclamation)
Else
MsgBox("패킹코드를 입력하여 주십시오.", vbExclamation)
End If
Else
dgv_pack_item.Rows.Clear()
If db_select(txbPacking.Text) 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)
End If
Else
txbPacking.BackColor = Color.Red
MsgBox("등록되지 않은 데이터 입니다. 패킹 코드를 확인하여 주십시오.", vbCritical)
End If
End If
txbPacking.Focus()
End Sub
Private Function db_select(serial 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(otb.Order_Code,'NULL')
, IFNULL(otb.Orderer_Name,'NULL')
, IFNULL(otb.Phone_Number,'NULL')
, IFNULL(otb.Shipment_Date,'NULL')
, IFNULL(otb.Invoice_Number,'NULL')
, 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')
FROM " & sales_db & " AS sale LEFT JOIN " & order_db & " AS otb ON sale.PackingCode = otb.Packing_Code
WHERE sale.PackingCode = '" & serial & "' GROUP BY sale.PackingCode" '신규제품추가/신규구성품추가 : 추가하는 품목의 시리얼, 개수 조회 추가
2025-07-08 15:33:46 +09:00
If DBQueryReader(dbcmd) Then
For i = 0 To data_set_max_index
data_select(i) = sqlDataQuery(i)
Next
For i = 1 To data_count_max_index
data_cnt(i) = sqlDataQuery(data_set_max_index + i)
Next
2025-07-08 15:33:46 +09:00
Return True
Else
For i = 0 To data_set_max_index
data_select(i) = "NULL"
Next
For i = 0 To data_count_max_index
data_cnt(i) = "0"
Next
2025-07-08 15:33:46 +09:00
Return False
End If
End Function
Private Function item_out() As Boolean
Dim item_name, item_serial As String
Dim dgv_switch As Boolean
Try
For i = 0 To data_count_max_index
2025-07-08 15:33:46 +09:00
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
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"
2025-07-08 15:33:46 +09:00
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"
If DBQueryReader(dbcmd) Then
item_name = sqlDataQuery(0)
End If
End If
2025-07-08 15:33:46 +09:00
dgv_switch = True
2025-07-08 15:33:46 +09:00
End If
If dgv_switch = True Then
dgv_pack_item.Rows.Add(item_name, data_cnt(i), item_serial)
2025-07-08 15:33:46 +09:00
End If
Next
2025-07-08 15:33:46 +09:00
Return True
Catch ex As Exception
MsgBox(Err.Description, vbCritical)
Return False
End Try
End Function
Private Sub txbPacking_Click(sender As Object, e As EventArgs) Handles txbPacking.Click
txbPacking.Text = ""
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)
End If
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
If dgv_pack_item.Rows.Count <> 1 Then
If ckb_state.Checked = True Then
msg_cnt = MsgBox("해당 패킹 번호의 전표 데이터만 삭제하시겠습니까?", vbExclamation + vbOKCancel)
If msg_cnt = 1 Then
serial_data = delete_sales()
If txb_state_code.Text <> "NULL" Then
If state_delete(serial_data) Then
txbPacking.BackColor = Color.Green
clear_switch = True
txb_clear()
dgv_pack_item.Rows.Clear()
MsgBox("데이터 삭제가 완료되었습니다.", vbInformation)
Else
txbPacking.BackColor = Color.Red
MsgBox("데이터베이스 안에 전표 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical)
End If
Else
txbPacking.BackColor = Color.Red
MsgBox("데이터베이스 안에 전표 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical)
End If
Else
MsgBox("삭제가 취소되었습니다.", vbInformation)
End If
Else
msg_cnt = MsgBox("해당 패킹 및 전표 데이터를 삭제하시겠습니까?", vbExclamation + vbOKCancel)
If msg_cnt = 1 Then
serial_data = delete_sales()
If txb_pack_code.Text <> "NULL" Then
If pack_delete(serial_data) Then
If txb_state_code.Text <> "NULL" Then
If state_delete(serial_data) Then
txbPacking.BackColor = Color.Green
clear_switch = True
txb_clear()
dgv_pack_item.Rows.Clear()
MsgBox("데이터 삭제가 완료되었습니다.", vbInformation)
Else
txbPacking.BackColor = Color.Red
MsgBox("데이터베이스 안에 전표 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical)
End If
Else
txbPacking.BackColor = Color.Green
clear_switch = True
txb_clear()
dgv_pack_item.Rows.Clear()
MsgBox("데이터 삭제가 완료되었습니다.", vbInformation)
End If
Else
txbPacking.BackColor = Color.Red
MsgBox("데이터베이스 안에 패킹 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical)
End If
End If
Else
MsgBox("삭제가 취소되었습니다.", vbInformation)
End If
End If
Else
txbPacking.BackColor = Color.Red
MsgBox("삭제할 데이터가 존재하지 않습니다.", vbExclamation)
End If
txbPacking.Focus()
End Sub
Private Function state_delete(serial As String) As Boolean
If txb_invoice.Text <> "NULL" Then
serial = txb_invoice.Text & "," & serial
End If
dbcmd = "UPDATE " & order_db & " SET Invoice_Number = NULL, Packing_Code = NULL, Serial_Number = NULL, Buy_Type = NULL, release_state = NULL, note = '" & serial & "' WHERE Order_Code = '" & txb_state_code.Text & "'"
If DBCommand(dbcmd) Then
Return True
End If
Return False
End Function
Private Function pack_delete(serial As String) As Boolean
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
, note = '" & serial & "'
WHERE PackingCode = '" & txb_pack_code.Text & "'" '신규제품추가 : 추가하는 품목의 변수 추가
2025-07-08 15:33:46 +09:00
If DBCommand(dbcmd) Then
Return True
End If
Return False
End Function
Private Function delete_sales() As String
Dim serial_data As String = ""
For i = 0 To dgv_pack_item.Rows.Count - 2
If dgv_pack_item.Rows(i).Cells(2).Value IsNot Nothing AndAlso dgv_pack_item.Rows(i).Cells(2).Value.ToString() <> "" Then
If serial_data = "" Then
serial_data = dgv_pack_item.Rows(i).Cells(2).Value
Else
serial_data = serial_data & "," & dgv_pack_item.Rows(i).Cells(2).Value
End If
End If
Next
Return serial_data
End Function
Private Sub txbPacking_TextChanged(sender As Object, e As EventArgs) Handles txbPacking.TextChanged
Dim tmpStr As String
If InputCnt = 0 And ckb_barcode.Checked = True Then
tmpStr = txbPacking.Text
If (Len(tmpStr) > 1) Then
tmpStr = Mid(tmpStr, Len(tmpStr), 1)
txbPacking.Clear()
txbPacking.AppendText(tmpStr)
End If
SetInputCnt()
End If
End Sub
Private Sub txb_pack_code_Click(sender As Object, e As EventArgs) Handles txb_pack_code.Click, txb_invoice.Click, txb_pack_date.Click, txb_state_code.Click, txb_state_date.Click, txb_state_name.Click, dgv_pack_item.Click, ckb_state.CheckedChanged, ckb_barcode.CheckedChanged
txbPacking.Focus()
End Sub
End Class