shpmt-PackingCodeRemover/frmMySqlTest.vb

1055 lines
39 KiB
VB.net

'Imports System.Data.OleDb
'Imports System.Reflection
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
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
ordercode
order_name
phone
ship_date
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 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
'신규구성품추가 : 추가하는 품목의 변수 추가
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
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"
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
Private clear_switch As Boolean = False
Public InputCnt As Long
Public InputCntVal As Integer = 10
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 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 clearVariable()
command_serial = Nothing
command_count = Nothing
product_serial_type = Nothing
all_serial_list.Clear()
clear_switch = True
txb_clear()
dgv_pack_item.Rows.Clear()
dgv_pack_item.Refresh()
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
End Sub
Private Function select_packingCode(serial As String) As String
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
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
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
End Function
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
Dim packing_code As String = txbPacking.Text
clearVariable()
'시리얼번호를 포함하고 있는 패킹코드 검색
If Len(txbPacking.Text) = 12 Then
packing_code = select_packingCode(txbPacking.Text)
End If
If 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)
End If
If all_serial_list.Count > 1 Then
MsgBox(txbPacking.Text & " 는 패킹코드 " & packing_code & "에 포함된 시리얼번호입니다")
End If
Else
txbPacking.BackColor = Color.Red
MsgBox("등록되지 않은 데이터 입니다. 패킹 코드를 확인하여 주십시오.", vbCritical)
End If
End If
txbPacking.Focus()
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')
, IFNULL(otb.Orderer_Name,'NULL')
, IFNULL(otb.Phone_Number,'NULL')
, 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')
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" '신규제품추가/신규구성품추가 : 추가하는 품목의 시리얼, 개수 조회 추가
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
'모든 제품의 시리얼번호를 검색
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
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
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"
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
dgv_switch = True
End If
If dgv_switch = True Then
dgv_pack_item.Rows.Add(item_name, data_cnt(i), item_serial)
End If
Next
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 delete_packingCode()
Dim msg_cnt As Int16
Dim serial_data As String
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 Sub
Private Sub delete_serial()
Dim msg_cnt As Int16
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 update_serial_str As String = ""
Dim update_serial_cnt As UInt16 = 0
Dim update_note_str As String = data_select(data_set.pack_note)
For i = 0 To remain_serial_data.Length - 1
If Len(remain_serial_data(i)) <> 0 Then
If update_serial_str = "" Then
update_serial_str = remain_serial_data(i)
Else
update_serial_str = update_serial_str & "/" & remain_serial_data(i)
End If
update_serial_cnt += 1
End If
Next
If Len(update_note_str) = 0 Then
update_note_str = txbPacking.Text
Else
update_note_str = update_note_str & "," & txbPacking.Text
End If
dbcmd = "UPDATE " & sales_db &
" SET " & command_serial & " = '" & update_serial_str & "'" &
", " & command_count & " = " & update_serial_cnt &
", note = '" & update_note_str & "'" &
" WHERE PackingCode = '" & txb_pack_code.Text & "'"
If DBCommand(dbcmd) Then
'STEP_02 : jomtOrderDB.jomtOrderTbl 테이블 시리얼번호 삭제
If txb_state_code.Text <> "NULL" Then
dbcmd = "SELECT IFNULL(Serial_Number, '') FROM " & order_db &
" WHERE Order_Code = '" & txb_state_code.Text & "' AND Serial_Number LIKE '%" & txbPacking.Text & "%'"
If DBQueryReader(dbcmd) Then
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)
For i = 0 To remain_serial_data.Length - 1
If Len(remain_serial_data(i)) <> 0 Then
If update_serial_str = "" Then
update_serial_str = remain_serial_data(i)
Else
update_serial_str = update_serial_str & "/" & remain_serial_data(i)
End If
update_serial_cnt += 1
End If
Next
If Len(update_note_str) = 0 Then
update_note_str = txbPacking.Text
Else
update_note_str = update_note_str & "," & txbPacking.Text
End If
'STEP_02-1 : jomtOrderDB.jomtOrderTbl 테이블 시리얼번호, 개수 업데이트
dbcmd = "UPDATE " & order_db &
" SET Serial_Number = '" & update_serial_str & "'" &
", Item_Count = " & update_serial_cnt &
" WHERE Order_Code = '" & txb_state_code.Text & "' AND Serial_Number LIKE '%" & txbPacking.Text & "%'"
If DBCommand(dbcmd) Then
'STEP_02-2 : jomtOrderDB.jomtOrderTbl 테이블 note에 삭제된 시리얼번호 업데이트
dbcmd = "UPDATE " & order_db &
" SET note = '" & update_note_str & "'" &
" WHERE Order_Code = '" & txb_state_code.Text & "'"
If DBCommand(dbcmd) = False Then
txbPacking.BackColor = Color.Red
MsgBox("Order 테이블 시리얼번호 삭제(2) 중 오류가 발생하였습니다.", vbCritical)
Exit Sub
End If
Else
txbPacking.BackColor = Color.Red
MsgBox("Order 테이블 시리얼번호 삭제(1) 중 오류가 발생하였습니다.", vbCritical)
Exit Sub
End If
End If
End If
Else
txbPacking.BackColor = Color.Red
MsgBox("SalesPacking 테이블 시리얼번호 삭제 중 오류가 발생하였습니다.", vbCritical)
Exit Sub
End If
'삭제하는 시리얼번호가 패킹코드이면 패킹코드를 다시 설정
If txbPacking.Text = txb_pack_code.Text Then
all_serial_list.Remove(txbPacking.Text)
all_serial_list.Sort()
dbcmd = "UPDATE " & sales_db &
" SET PackingCode = '" & all_serial_list(0) & "'" &
" WHERE PackingCode = '" & txb_pack_code.Text & "'"
If DBCommand(dbcmd) Then
dbcmd = "UPDATE " & order_db &
" SET Packing_Code = '" & all_serial_list(0) & "'" &
" WHERE Order_Code = '" & txb_state_code.Text & "' AND Packing_Code = '" & txb_pack_code.Text & "'"
If DBCommand(dbcmd) = False Then
txbPacking.BackColor = Color.Red
MsgBox("Order 테이블 패킹코드 업데이트에 오류가 발생하였습니다.", vbCritical)
Exit Sub
End If
Else
txbPacking.BackColor = Color.Red
MsgBox("SalesPacking 테이블 패킹코드 업데이트에 오류가 발생하였습니다.", vbCritical)
Exit Sub
End If
End If
txbPacking.BackColor = Color.Green
clear_switch = True
txb_clear()
dgv_pack_item.Rows.Clear()
MsgBox("데이터 삭제가 완료되었습니다.", vbInformation)
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
If all_serial_list.Count > 1 Then
delete_serial()
Else
delete_packingCode()
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 & "'" '신규제품추가 : 추가하는 품목의 변수 추가
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
If Len(data_select(data_set.pack_note)) > 0 Then
serial_data = data_select(data_set.pack_note) & "," & serial_data
End If
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