3525 lines
131 KiB
VB.net
3525 lines
131 KiB
VB.net
![]() |
Imports System.Security.Cryptography
|
|||
|
Imports System.Windows.Forms.AxHost
|
|||
|
Imports Newtonsoft.Json.Linq
|
|||
|
|
|||
|
Public Class frm_Main
|
|||
|
|
|||
|
Public programName As String = "DUALSONIC Mapping Or Search Program Ver. "
|
|||
|
Private programVer As String = "1.0.3"
|
|||
|
|
|||
|
Private apiItemOutURL As String = "item-outflows/page"
|
|||
|
|
|||
|
'--------------------------검색 및 패킹 등 기능 종류---------------
|
|||
|
Private Enum funcList
|
|||
|
search
|
|||
|
mapstate
|
|||
|
mappack
|
|||
|
msstate
|
|||
|
mspack
|
|||
|
End Enum
|
|||
|
Private setPanel(funcList.mspack) As Panel
|
|||
|
|
|||
|
'--------------------------로그인 관련-----------------------------
|
|||
|
Private loginState As Boolean = False
|
|||
|
|
|||
|
'------------------------------------------------------------------
|
|||
|
|
|||
|
Private Const stateLength As Int16 = 13
|
|||
|
Private Const packingLength As Int16 = 12
|
|||
|
|
|||
|
Private DBCmd As String
|
|||
|
Private txbArrayList(,) As TextBox
|
|||
|
|
|||
|
'-------------------------패킹관련------------------------
|
|||
|
Private mapStateOK As Boolean = True
|
|||
|
Private mapPackOk As Boolean = True
|
|||
|
Private mapInvOk As Boolean = True
|
|||
|
Private stateFullCount As Integer = 0
|
|||
|
Private packFullCount As Integer = 0
|
|||
|
|
|||
|
Private TDUseCompare As Boolean = False
|
|||
|
|
|||
|
Const invLimitCount As Int16 = 6
|
|||
|
Const StoreLimitCount As Int16 = 10
|
|||
|
Const StoreLimitMax As Int16 = 14
|
|||
|
|
|||
|
'-------------------------검색 관련-------------------------
|
|||
|
|
|||
|
Private ModifySwitch As Boolean = False '' 수정 더블클릭 시 온오프
|
|||
|
Private ModifyListSwitch As Boolean = False '' 수정 완료 시 리스트 새로고침 기능 온오프
|
|||
|
|
|||
|
Private DelFuncSwitch As Boolean = False
|
|||
|
|
|||
|
Private Enum itemInfoList
|
|||
|
code
|
|||
|
name
|
|||
|
count
|
|||
|
face
|
|||
|
eye
|
|||
|
id_Serial '' 전표 : api id 코드, 맵핑 : 제품 시리얼 번호
|
|||
|
pk_Type '' 전표 : pk 코드, 맵핑 : 물품 타입(완제품 혹은 구성품)
|
|||
|
|
|||
|
type '' 정보 종합 시 물품 타입 저장
|
|||
|
serial '' 정보 종합 시 제품 시리얼 번호 저장
|
|||
|
nowcount
|
|||
|
End Enum
|
|||
|
|
|||
|
Private chkItem(itemInfoList.pk_Type) As String
|
|||
|
|
|||
|
Private Enum directData
|
|||
|
state
|
|||
|
code
|
|||
|
name
|
|||
|
count
|
|||
|
id
|
|||
|
End Enum
|
|||
|
|
|||
|
Private ChkItemSet(,) As String '' 전표 데이터
|
|||
|
Private packItemSet(,) As String '' 패킹 데이터
|
|||
|
Private apiItemSet(,) As String '' api 등록용 데이터 백업 배열
|
|||
|
|
|||
|
Private btnArrayList(,) As Button
|
|||
|
|
|||
|
Const btnCount As Int16 = 2
|
|||
|
|
|||
|
'' 수정 및 삭제 관련
|
|||
|
Const indexDefault As Int16 = 16
|
|||
|
Const indexRange As Int16 = 6
|
|||
|
|
|||
|
'' 패킹맵핑진행 - 텍스트 박스 및 버튼 위치 데이터
|
|||
|
Const prodMapStartCol As Int16 = 3
|
|||
|
Const prodMapHeight As Int16 = 39
|
|||
|
Const maplocplus As Int16 = 5
|
|||
|
|
|||
|
''출하내용확인 - 텍스트 박스 및 버튼 위치 데이터
|
|||
|
Private prodInfoWidth(txbList.Remove), prodInfoRow(txbList.Remove) As Int16
|
|||
|
Const locplus As Int16 = 10 ''출하내용확인 텍스트박스 간격
|
|||
|
Const prodInfoHeight As Int16 = 49 '' 텍스트박스, 버튼 세로 사이즈
|
|||
|
Const prodInfoStartCol As Int16 = 57 '' 텍스트박스 시작 부분 세로 위치
|
|||
|
|
|||
|
Private Enum firstStateList
|
|||
|
ERP
|
|||
|
MES
|
|||
|
End Enum
|
|||
|
Private firstState(firstStateList.MES) As String
|
|||
|
|
|||
|
Private Enum modelList
|
|||
|
PRO = 1
|
|||
|
LUX
|
|||
|
MAXIMUM
|
|||
|
Alpha
|
|||
|
Alto
|
|||
|
Effect
|
|||
|
End Enum
|
|||
|
Private Const modelPosition As Int16 = 1
|
|||
|
|
|||
|
Private Enum typeList
|
|||
|
prodSet_V1
|
|||
|
prodFace_V2
|
|||
|
prodEye
|
|||
|
prodBody
|
|||
|
End Enum
|
|||
|
Private Const typePosition As Int16 = 2
|
|||
|
|
|||
|
Private Const colorPosition As Int16 = 11
|
|||
|
|
|||
|
Private Enum txbList
|
|||
|
Name
|
|||
|
Count
|
|||
|
Face
|
|||
|
Eye
|
|||
|
Modify
|
|||
|
Remove
|
|||
|
End Enum
|
|||
|
Private txbSetName(txbList.Remove) As String
|
|||
|
|
|||
|
Private Enum ProdList
|
|||
|
OrderCode
|
|||
|
BuyDate
|
|||
|
AccountCode '' mes 때문에 적용 혹시 모르니 나중에 사용할 수도 있음
|
|||
|
AccountName
|
|||
|
OrdererCode
|
|||
|
OrdererName
|
|||
|
phone '' mes 때문에 적용 혹시 모르니 나중에 사용할 수도 있음
|
|||
|
zip
|
|||
|
Address
|
|||
|
Refer
|
|||
|
End Enum
|
|||
|
Private ProdSelect(ProdList.Refer) As String
|
|||
|
|
|||
|
'' mes 관련
|
|||
|
Private mesDate As DateTime
|
|||
|
|
|||
|
'' 바코드 관련
|
|||
|
Public InputCnt As Long
|
|||
|
Public InputCntVal As Integer = 13
|
|||
|
|
|||
|
Private Enum parsingCode
|
|||
|
data
|
|||
|
row
|
|||
|
id
|
|||
|
itemcount
|
|||
|
regDate
|
|||
|
accuount
|
|||
|
code '' resultcode 등등 code 명령어 전부
|
|||
|
name '' name 명령어 전부
|
|||
|
orderDetail
|
|||
|
orderSheet
|
|||
|
ordererCode
|
|||
|
ordererName
|
|||
|
phone
|
|||
|
zip
|
|||
|
address
|
|||
|
item
|
|||
|
state
|
|||
|
End Enum
|
|||
|
Private apiCommand(parsingCode.state) As String
|
|||
|
|
|||
|
''세트코드 관련
|
|||
|
Private setCodeUse As Boolean = False
|
|||
|
|
|||
|
Private Enum defaultList
|
|||
|
regDate
|
|||
|
accCode
|
|||
|
accName
|
|||
|
chrCode
|
|||
|
warehouse
|
|||
|
ordCode
|
|||
|
ordName
|
|||
|
country
|
|||
|
recName
|
|||
|
phone
|
|||
|
zip
|
|||
|
address
|
|||
|
refer
|
|||
|
End Enum
|
|||
|
Private defaultData(defaultList.refer) As String
|
|||
|
|
|||
|
Private Enum invList
|
|||
|
cj2 = 3
|
|||
|
hanjin = 4
|
|||
|
hanjin2 = 5
|
|||
|
cj = 6
|
|||
|
End Enum
|
|||
|
|
|||
|
Private Sub frm_Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|||
|
DataSetting()
|
|||
|
formSetting()
|
|||
|
funcSetting()
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub funcSetting()
|
|||
|
rdbState.Checked = True
|
|||
|
ckbBarcode.Checked = True
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub barTimer_Tick(sender As Object, e As EventArgs) Handles barTimer.Tick
|
|||
|
If InputCnt Then
|
|||
|
InputCnt -= 1
|
|||
|
Else
|
|||
|
barTimer.Enabled = False
|
|||
|
|
|||
|
If ckbBarcode.Checked Then
|
|||
|
btnSearch_Click(sender, e)
|
|||
|
Else
|
|||
|
txbStateRead.Focus()
|
|||
|
txbStateRead.Refresh()
|
|||
|
End If
|
|||
|
End If
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub txbStateRead_TextChanged(sender As Object, e As EventArgs) Handles txbStateRead.TextChanged, txbStateRead.Click
|
|||
|
If txbStateRead.Enabled = True Then
|
|||
|
Dim tmpStr As String
|
|||
|
txbStateRead.BackColor = Color.White
|
|||
|
|
|||
|
If InputCnt = 0 And ckbBarcode.Checked = True Then
|
|||
|
If txbStateRead.Text <> String.Empty Then
|
|||
|
tmpStr = txbStateRead.Text
|
|||
|
If (Len(tmpStr) > 1) Then
|
|||
|
tmpStr = Mid(tmpStr, Len(tmpStr), 1)
|
|||
|
txbStateRead.Clear()
|
|||
|
txbStateRead.AppendText(tmpStr)
|
|||
|
End If
|
|||
|
SetInputCnt()
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub SetInputCnt()
|
|||
|
InputCnt = InputCntVal
|
|||
|
barTimer.Enabled = True
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub formSetting()
|
|||
|
Me.Text = programName & programVer
|
|||
|
Me.Size = New Drawing.Size(1920, 1060)
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub DataSetting()
|
|||
|
txbNameValue(funcList.search)
|
|||
|
|
|||
|
prodInfoWidth(txbList.Modify) = "95"
|
|||
|
prodInfoWidth(txbList.Remove) = "95"
|
|||
|
|
|||
|
prodInfoRow(txbList.Modify) = "1029"
|
|||
|
prodInfoRow(txbList.Remove) = "1131"
|
|||
|
|
|||
|
txbSetName(txbList.Modify) = "btnModify"
|
|||
|
txbSetName(txbList.Remove) = "btnRemove"
|
|||
|
|
|||
|
firstState(firstStateList.ERP) = "E040221"
|
|||
|
firstState(firstStateList.MES) = "ORD"
|
|||
|
|
|||
|
setPanel(funcList.search) = pnProdInfo
|
|||
|
setPanel(funcList.mapstate) = pnMapStProd
|
|||
|
setPanel(funcList.mappack) = pnMapPkProd
|
|||
|
setPanel(funcList.msstate) = pnMsStProd
|
|||
|
setPanel(funcList.mspack) = pnMsPkProd
|
|||
|
|
|||
|
apiCommand(parsingCode.data) = "data"
|
|||
|
apiCommand(parsingCode.row) = "rows"
|
|||
|
apiCommand(parsingCode.id) = "id"
|
|||
|
apiCommand(parsingCode.itemcount) = "expectedOutCount"
|
|||
|
apiCommand(parsingCode.regDate) = "createdAt"
|
|||
|
apiCommand(parsingCode.accuount) = "Partner"
|
|||
|
apiCommand(parsingCode.code) = "code"
|
|||
|
apiCommand(parsingCode.name) = "name"
|
|||
|
apiCommand(parsingCode.orderDetail) = "OrderDetail"
|
|||
|
apiCommand(parsingCode.orderSheet) = "OrderSheet"
|
|||
|
apiCommand(parsingCode.ordererCode) = "customerId"
|
|||
|
apiCommand(parsingCode.ordererName) = "receiverName"
|
|||
|
apiCommand(parsingCode.phone) = "receiverPhoneNumber"
|
|||
|
apiCommand(parsingCode.zip) = "receiverZipCode"
|
|||
|
apiCommand(parsingCode.address) = "receiverAddress"
|
|||
|
apiCommand(parsingCode.item) = "Item"
|
|||
|
apiCommand(parsingCode.state) = "state"
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub txbNameValue(valueType As Int16) '' order 데이터 - true / packing 데이터 - false
|
|||
|
|
|||
|
For i = 0 To txbList.Eye
|
|||
|
txbSetName(i) = String.Empty
|
|||
|
prodInfoWidth(i) = 0
|
|||
|
prodInfoRow(i) = 0
|
|||
|
Next
|
|||
|
|
|||
|
Select Case valueType
|
|||
|
Case funcList.search
|
|||
|
|
|||
|
txbSetName(txbList.Name) = "txbProdName"
|
|||
|
txbSetName(txbList.Count) = "txbProdCount"
|
|||
|
txbSetName(txbList.Face) = "txbProdFace"
|
|||
|
txbSetName(txbList.Eye) = "txbProdEye"
|
|||
|
|
|||
|
prodInfoWidth(txbList.Name) = "660"
|
|||
|
prodInfoWidth(txbList.Count) = "80"
|
|||
|
prodInfoWidth(txbList.Face) = "118"
|
|||
|
prodInfoWidth(txbList.Eye) = "131"
|
|||
|
|
|||
|
prodInfoRow(txbList.Name) = "20"
|
|||
|
prodInfoRow(txbList.Count) = "685"
|
|||
|
prodInfoRow(txbList.Face) = "769"
|
|||
|
prodInfoRow(txbList.Eye) = "891"
|
|||
|
|
|||
|
Case funcList.mapstate
|
|||
|
|
|||
|
txbSetName(txbList.Name) = "txbMapName"
|
|||
|
txbSetName(txbList.Count) = "txbMapCount"
|
|||
|
txbSetName(txbList.Face) = "txbMapFace"
|
|||
|
txbSetName(txbList.Eye) = "txbMapEye"
|
|||
|
|
|||
|
prodInfoWidth(txbList.Name) = "564"
|
|||
|
prodInfoWidth(txbList.Count) = "106"
|
|||
|
prodInfoWidth(txbList.Face) = "110"
|
|||
|
prodInfoWidth(txbList.Eye) = "110"
|
|||
|
|
|||
|
prodInfoRow(txbList.Name) = "15"
|
|||
|
prodInfoRow(txbList.Count) = "585"
|
|||
|
prodInfoRow(txbList.Face) = "695"
|
|||
|
prodInfoRow(txbList.Eye) = "810"
|
|||
|
|
|||
|
Case funcList.mappack
|
|||
|
|
|||
|
txbSetName(txbList.Name) = "txbPackName"
|
|||
|
txbSetName(txbList.Count) = "txbPackCount"
|
|||
|
txbSetName(txbList.Face) = "txbPackFace"
|
|||
|
txbSetName(txbList.Eye) = "txbPackEye"
|
|||
|
|
|||
|
prodInfoWidth(txbList.Name) = "564"
|
|||
|
prodInfoWidth(txbList.Count) = "106"
|
|||
|
prodInfoWidth(txbList.Face) = "110"
|
|||
|
prodInfoWidth(txbList.Eye) = "110"
|
|||
|
|
|||
|
prodInfoRow(txbList.Name) = "15"
|
|||
|
prodInfoRow(txbList.Count) = "585"
|
|||
|
prodInfoRow(txbList.Face) = "695"
|
|||
|
prodInfoRow(txbList.Eye) = "810"
|
|||
|
|
|||
|
Case funcList.msstate
|
|||
|
|
|||
|
txbSetName(txbList.Name) = "txbMsStName"
|
|||
|
txbSetName(txbList.Count) = "txbMsStCount"
|
|||
|
txbSetName(txbList.Face) = "txbMsStFace"
|
|||
|
txbSetName(txbList.Eye) = "txbMsStEye"
|
|||
|
|
|||
|
prodInfoWidth(txbList.Name) = "564"
|
|||
|
prodInfoWidth(txbList.Count) = "106"
|
|||
|
prodInfoWidth(txbList.Face) = "110"
|
|||
|
prodInfoWidth(txbList.Eye) = "110"
|
|||
|
|
|||
|
prodInfoRow(txbList.Name) = "15"
|
|||
|
prodInfoRow(txbList.Count) = "585"
|
|||
|
prodInfoRow(txbList.Face) = "695"
|
|||
|
prodInfoRow(txbList.Eye) = "810"
|
|||
|
|
|||
|
Case funcList.mspack
|
|||
|
|
|||
|
txbSetName(txbList.Name) = "txbMsPkName"
|
|||
|
txbSetName(txbList.Count) = "txbMsPkCount"
|
|||
|
txbSetName(txbList.Face) = "txbMsPkFace"
|
|||
|
txbSetName(txbList.Eye) = "txbMsPkEye"
|
|||
|
|
|||
|
prodInfoWidth(txbList.Name) = "564"
|
|||
|
prodInfoWidth(txbList.Count) = "106"
|
|||
|
prodInfoWidth(txbList.Face) = "110"
|
|||
|
prodInfoWidth(txbList.Eye) = "110"
|
|||
|
|
|||
|
prodInfoRow(txbList.Name) = "15"
|
|||
|
prodInfoRow(txbList.Count) = "585"
|
|||
|
prodInfoRow(txbList.Face) = "695"
|
|||
|
prodInfoRow(txbList.Eye) = "810"
|
|||
|
End Select
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub NowTimer_Tick(sender As Object, e As EventArgs) Handles NowTimer.Tick
|
|||
|
lblTime.Text = Now
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
|
|||
|
|
|||
|
If btnSearch.Text = "등 록" Then
|
|||
|
|
|||
|
If rdbMass.Checked = True Then
|
|||
|
If compareSaveEx() Then
|
|||
|
txbStateRead.BackColor = Color.Red
|
|||
|
Else
|
|||
|
txbStateRead.BackColor = Color.Green
|
|||
|
End If
|
|||
|
Else
|
|||
|
If compareSave() Then
|
|||
|
txbStateRead.BackColor = Color.Red
|
|||
|
Else
|
|||
|
txbStateRead.BackColor = Color.Green
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
If txbStateRead.Text.Replace(" ", "") = "" Then
|
|||
|
MsgBox("검색란이 비워져 있습니다. 검색하고자 하는 전표번호를 입력하여 주십시오.", vbExclamation)
|
|||
|
Exit Sub
|
|||
|
End If
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
|
|||
|
compareClear()
|
|||
|
|
|||
|
If orderSearch(txbStateRead.Text) Then
|
|||
|
txbStateRead.BackColor = Color.Green
|
|||
|
Else
|
|||
|
txbStateRead.BackColor = Color.Red
|
|||
|
End If
|
|||
|
|
|||
|
ElseIf rdbMap.Checked = True Then
|
|||
|
|
|||
|
If mappingRunning(txbStateRead.Text) Then
|
|||
|
txbStateRead.BackColor = Color.Green
|
|||
|
Else
|
|||
|
txbStateRead.BackColor = Color.Red
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
If MassPacking_Ex2(txbStateRead.Text) Then
|
|||
|
txbStateRead.BackColor = Color.Green
|
|||
|
Else
|
|||
|
txbStateRead.BackColor = Color.Red
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
|
|||
|
End Sub
|
|||
|
'-------------------------------대량 포장----------------------------------
|
|||
|
Private Sub MassTxbReset()
|
|||
|
gbMsInfo.BackColor = SystemColors.Control
|
|||
|
txbMsState.Text = "N/A"
|
|||
|
txbMsDate.Text = "N/A"
|
|||
|
txbMsOrder.Text = "N/A"
|
|||
|
txbMsAccount.Text = "N/A"
|
|||
|
txbMsRefer.Text = "N/A"
|
|||
|
|
|||
|
gbMsPkInfo.BackColor = SystemColors.Control
|
|||
|
txbMsPacking.Text = "N/A"
|
|||
|
txbMsPkDate.Text = "N/A"
|
|||
|
|
|||
|
'txbMsInv.Text = String.Empty
|
|||
|
|
|||
|
txbMsState.Refresh()
|
|||
|
txbMsDate.Refresh()
|
|||
|
txbMsOrder.Refresh()
|
|||
|
txbMsAccount.Refresh()
|
|||
|
txbMsRefer.Refresh()
|
|||
|
|
|||
|
txbMsPacking.Refresh()
|
|||
|
txbMsPkDate.Refresh()
|
|||
|
|
|||
|
'txbMsInv.Refresh()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub MassReset()
|
|||
|
StartFunc = True
|
|||
|
fullSuccess = False
|
|||
|
stateSuccess = False
|
|||
|
packSuccess = False
|
|||
|
invSuccess = False
|
|||
|
StateTxbClear(funcList.msstate)
|
|||
|
StateTxbClear(funcList.mspack)
|
|||
|
MassTxbReset()
|
|||
|
compareValueClean()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub msPKTxbReset()
|
|||
|
gbMsPkInfo.BackColor = SystemColors.Control
|
|||
|
txbMsPacking.Text = "N/A"
|
|||
|
txbMsPkDate.Text = "N/A"
|
|||
|
|
|||
|
txbMsPacking.Refresh()
|
|||
|
txbMsPkDate.Refresh()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub StateReset()
|
|||
|
gbMsInfo.BackColor = SystemColors.Control
|
|||
|
txbMsState.Text = "N/A"
|
|||
|
txbMsDate.Text = "N/A"
|
|||
|
txbMsOrder.Text = "N/A"
|
|||
|
txbMsAccount.Text = "N/A"
|
|||
|
txbMsRefer.Text = "N/A"
|
|||
|
|
|||
|
txbMsState.Refresh()
|
|||
|
txbMsDate.Refresh()
|
|||
|
txbMsOrder.Refresh()
|
|||
|
txbMsAccount.Refresh()
|
|||
|
txbMsRefer.Refresh()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub PackReset()
|
|||
|
gbMsPkInfo.BackColor = SystemColors.Control
|
|||
|
txbMsPacking.Text = "N/A"
|
|||
|
txbMsPkDate.Text = "N/A"
|
|||
|
|
|||
|
txbMsPacking.Refresh()
|
|||
|
txbMsPkDate.Refresh()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private StartFunc As Boolean = True
|
|||
|
Private invSuccess As Boolean = False
|
|||
|
Private packSuccess As Boolean = False
|
|||
|
Private stateSuccess As Boolean = False
|
|||
|
Private fullSuccess As Boolean = False
|
|||
|
|
|||
|
Private RequestCount As Integer = 0 '' 요청수량
|
|||
|
Private WorkCount As Integer = 0 '' 작업 수량
|
|||
|
Private LeftOverCount As Integer = 0 '' 남은수량
|
|||
|
|
|||
|
Private StartTime As TimeSpan
|
|||
|
Private EndTime As TimeSpan
|
|||
|
Private UseTime As TimeSpan
|
|||
|
Private AverTime As TimeSpan
|
|||
|
|
|||
|
Private SetPKCode As String = String.Empty
|
|||
|
Private SetIdCode() As Integer
|
|||
|
|
|||
|
Private Sub MassResetEx()
|
|||
|
StateTxbClear(funcList.msstate)
|
|||
|
StateTxbClear(funcList.mspack)
|
|||
|
MassValueClear()
|
|||
|
MassTxbClear()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub MassPackReset()
|
|||
|
StateTxbClear(funcList.mspack)
|
|||
|
ReDim packItemSet(0, 0)
|
|||
|
txbLabelCode.Text = String.Empty
|
|||
|
txbLabelCode.BackColor = Color.White
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub MassValueClear()
|
|||
|
stateSuccess = False
|
|||
|
packSuccess = False
|
|||
|
fullSuccess = False
|
|||
|
StartFunc = False
|
|||
|
invSuccess = False
|
|||
|
|
|||
|
StartTime = TimeSpan.Zero
|
|||
|
EndTime = TimeSpan.Zero
|
|||
|
UseTime = TimeSpan.Zero
|
|||
|
AverTime = TimeSpan.Zero
|
|||
|
|
|||
|
SetPKCode = String.Empty
|
|||
|
ReDim SetIdCode(0)
|
|||
|
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub MassTxbClear()
|
|||
|
txbMsState.Text = String.Empty
|
|||
|
txbMsDate.Text = String.Empty
|
|||
|
txbMsOrder.Text = String.Empty
|
|||
|
txbMsAccount.Text = String.Empty
|
|||
|
txbMsRefer.Text = String.Empty
|
|||
|
txbMsPacking.Text = String.Empty
|
|||
|
txbMsPkDate.Text = String.Empty
|
|||
|
txbLabelCode.Text = String.Empty
|
|||
|
|
|||
|
RequestCount = 0
|
|||
|
txbRequest.Text = RequestCount
|
|||
|
txbRequest.ForeColor = Color.Black
|
|||
|
|
|||
|
WorkCount = 0
|
|||
|
txbWork.Text = WorkCount
|
|||
|
txbWork.ForeColor = Color.Black
|
|||
|
|
|||
|
LeftOverCount = 0
|
|||
|
txbLeftOver.Text = LeftOverCount
|
|||
|
txbLeftOver.ForeColor = Color.Black
|
|||
|
|
|||
|
lbTimeStart.Text = StartTime.ToString("hh\:mm\:ss")
|
|||
|
lbTimeEnd.Text = EndTime.ToString("hh\:mm\:ss")
|
|||
|
lbTimeTotal.Text = UseTime.ToString("hh\:mm\:ss")
|
|||
|
lbTimeAver.Text = AverTime.ToString("hh\:mm\:ss")
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Function MassPacking_Ex2(codeData As String) As Boolean
|
|||
|
If StartFunc Then
|
|||
|
MassResetEx()
|
|||
|
End If
|
|||
|
|
|||
|
If fullSuccess = True Then
|
|||
|
|
|||
|
If codeData.Replace(" ", "") = "" Then
|
|||
|
MsgBox("라벨번호를 입력하지 않았습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
'If IsNumeric(codeData) = False Then
|
|||
|
' MsgBox("양식에 맞지 않는 입고번호입니다.", vbExclamation)
|
|||
|
' Return False
|
|||
|
'End If
|
|||
|
|
|||
|
If codeData.Length < StoreLimitCount Or codeData.Length > StoreLimitMax Then
|
|||
|
MsgBox("양식에 맞지 않는 입고번호입니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Dim frontTxb As String = Mid(codeData, 1, 1)
|
|||
|
|
|||
|
If frontTxb = "3" Or frontTxb = "402" Then '250310 대량 맵핑시 한진 택배 송장 번호와 동일하게 시작하여 수정 (4 -> 402)
|
|||
|
MsgBox("제품 시리얼 번호는 등록할 수 없습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If SerialCheck(codeData) Then '' 중복 유무 확인
|
|||
|
MsgBox("패킹 번호는 송장 번호로 사용할 수 없습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
txbLabelCode.Text = codeData
|
|||
|
txbLabelCode.BackColor = Color.ForestGreen
|
|||
|
|
|||
|
WorkCount += 1
|
|||
|
LeftOverCount -= 1
|
|||
|
txbWork.Text = WorkCount
|
|||
|
txbWork.ForeColor = Color.Blue
|
|||
|
txbLeftOver.Text = LeftOverCount
|
|||
|
txbLeftOver.ForeColor = Color.Red
|
|||
|
|
|||
|
If RequestCount = WorkCount Then
|
|||
|
invSuccess = True
|
|||
|
Else
|
|||
|
fullSuccess = False
|
|||
|
invSuccess = False
|
|||
|
packSuccess = False
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
If codeData.Length = packingLength Then
|
|||
|
MassPackReset()
|
|||
|
|
|||
|
If stateSuccess = False Then
|
|||
|
MsgBox("전표 데이터를 알 수 없습니다. 전표 데이터를 먼저 스캔하여 주십시오.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If packingCompare(codeData) Then '' 패킹 내역 존재 유무
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If mappingComapare(codeData) Then '' 맵핑 유무 확인
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If SerialCheck(codeData) Then '' 중복 유무 확인
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If packingSearch(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If comSearch(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If packDateSearch(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
txbMsPacking.Text = codeData
|
|||
|
|
|||
|
If massListSetting(pnMsPkProd, funcList.mspack, False) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
gbMapPkInfo.BackColor = Color.ForestGreen
|
|||
|
|
|||
|
packSuccess = True
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
gbMsState.Text = "■ 출하지시서 정보"
|
|||
|
|
|||
|
If Mid(codeData, 1, 7) = firstState(firstStateList.ERP) Or Mid(codeData, 1, 3) = firstState(firstStateList.MES) Then
|
|||
|
|
|||
|
setCodeUse = False
|
|||
|
stateFullCount = 0
|
|||
|
|
|||
|
If ckbAPIUse.Checked = True Then
|
|||
|
|
|||
|
If ExistApiCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If ckbPostgre.Checked = True Then
|
|||
|
|
|||
|
If useAPIDirect(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
If mesRunning(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
If ExistDataCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If completeCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If orderer_Search(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If Product_Search(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
apiBackupData()
|
|||
|
|
|||
|
If PKCodeCheck() Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If PKCodeSearch() Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If massListSetting(pnMsStProd, funcList.msstate, True) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
txbMsState.Text = ProdSelect(ProdList.OrderCode)
|
|||
|
txbMsDate.Text = ProdSelect(ProdList.BuyDate)
|
|||
|
txbMsOrder.Text = ProdSelect(ProdList.OrdererName)
|
|||
|
txbMsAccount.Text = ProdSelect(ProdList.AccountName)
|
|||
|
txbMsRefer.Text = ProdSelect(ProdList.Refer)
|
|||
|
|
|||
|
gbMapStInfo.BackColor = Color.ForestGreen
|
|||
|
|
|||
|
StartTime = DateTime.Now.TimeOfDay
|
|||
|
lbTimeStart.Text = StartTime.ToString("hh\:mm\:ss")
|
|||
|
|
|||
|
stateSuccess = True
|
|||
|
|
|||
|
Else
|
|||
|
MsgBox("번호 양식에 맞지 않는 번호입니다. 확인하여 주십시오.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
If packSuccess = True And stateSuccess = True Then
|
|||
|
|
|||
|
If statePackmsCompare() Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
fullSuccess = True
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
If fullSuccess = True And invSuccess = True Then
|
|||
|
If ckbAuto.Checked = True Then
|
|||
|
If compareSaveEx() Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
Else
|
|||
|
btnSearch.Text = "등 록"
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Return True
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function PKCodeSearch() As Boolean
|
|||
|
DBCmd = "SELECT un.ItemCode,un.ItemName,pk.ProdCount,pd.FaceShot,pd.EyeShot FROM " & applyPKCodeDB & " AS pk INNER JOIN (SELECT ItemCode,ProdCode,ItemName FROM " & applyPlistDB & " UNION SELECT ItemCode,ProdCode,ItemName FROM " & applyClistDB & ") AS un ON pk.ProdCode = un.ItemCode LEFT JOIN " & applyPlistDB & " AS pd ON pk.ProdCode = pd.ItemCode WHERE pk.PKCode = '" & SetPKCode & "'"
|
|||
|
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
Dim dataCount As Integer = 0
|
|||
|
Dim rowNum As Integer = (sqlDataQuery.Length / 5) - 1
|
|||
|
ReDim ChkItemSet(itemInfoList.id_Serial, rowNum)
|
|||
|
|
|||
|
For i = 0 To rowNum
|
|||
|
For n = 0 To itemInfoList.eye
|
|||
|
ChkItemSet(n, i) = sqlDataQuery(dataCount)
|
|||
|
|
|||
|
dataCount += 1
|
|||
|
Next
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
Else
|
|||
|
MsgBox("해당 세트 코드에 대한 데이터가 존재하지 않습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function PKCodeCheck() As Boolean
|
|||
|
ReDim SetIdCode(ChkItemSet.GetLength(1) - 1)
|
|||
|
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If i = 0 Then
|
|||
|
SetPKCode = ChkItemSet(itemInfoList.code, i)
|
|||
|
Else
|
|||
|
If SetPKCode <> ChkItemSet(itemInfoList.code, i) Then
|
|||
|
MsgBox("서로 다른 세트 코드가 존재합니다. 확인하여 주십시오.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
SetIdCode(i) = ChkItemSet(itemInfoList.id_Serial, i)
|
|||
|
Next
|
|||
|
|
|||
|
gbMsState.Text = "■ 출하지시서 정보 : " & SetPKCode
|
|||
|
RequestCount = ChkItemSet.GetLength(1)
|
|||
|
LeftOverCount = RequestCount
|
|||
|
txbRequest.Text = RequestCount
|
|||
|
txbWork.Text = WorkCount
|
|||
|
txbLeftOver.Text = LeftOverCount
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function SerialCheck(codeData As String) As Boolean
|
|||
|
If stateSuccess = True Then
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If InStr(ChkItemSet(itemInfoList.id_Serial, i), codeData) > 0 Then
|
|||
|
MsgBox("중복값이 존재합니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Next
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function compareSaveEx() As Boolean
|
|||
|
|
|||
|
txbStateRead.Enabled = False
|
|||
|
txbStateRead.Text = "등록중"
|
|||
|
txbStateRead.BackColor = Color.Yellow
|
|||
|
|
|||
|
Dim nowToday As String = Format(Now, "yyyy") & "-" & Format(Now, "MM") & "-" & Format(Now, "dd")
|
|||
|
|
|||
|
If ckbAPIUse.Checked = True Then
|
|||
|
|
|||
|
If rdbMass.Checked = True Then
|
|||
|
If apiMassSave() Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
'If apiSerialSave() Then
|
|||
|
' failForm()
|
|||
|
' Return True
|
|||
|
'End If
|
|||
|
Else
|
|||
|
apiSerialData()
|
|||
|
|
|||
|
If mesDataReg() Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If mesDBOrderReg(nowToday) Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
If rdbStateInv.Checked = True Then
|
|||
|
If dbSaveInv(nowToday) Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Else
|
|||
|
If dbSave(nowToday) Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
txbStateRead.Text = "등록완료"
|
|||
|
StartFunc = True
|
|||
|
|
|||
|
EndTime = DateTime.Now.TimeOfDay
|
|||
|
lbTimeEnd.Text = EndTime.ToString("hh\:mm\:ss")
|
|||
|
lbTimeEnd.Refresh()
|
|||
|
|
|||
|
UseTime = EndTime - StartTime
|
|||
|
lbTimeTotal.Text = UseTime.ToString("hh\:mm\:ss")
|
|||
|
lbTimeTotal.Refresh()
|
|||
|
|
|||
|
Dim AverResult As Integer = CInt(UseTime.TotalSeconds)
|
|||
|
AverResult = AverResult / RequestCount
|
|||
|
|
|||
|
AverTime = TimeSpan.FromSeconds(AverResult)
|
|||
|
lbTimeAver.Text = AverTime.ToString("hh\:mm\:ss")
|
|||
|
lbTimeAver.Refresh()
|
|||
|
|
|||
|
gbMapStInfo.BackColor = SystemColors.Control
|
|||
|
gbMapPkInfo.BackColor = SystemColors.Control
|
|||
|
btnSearch.Text = "검 색"
|
|||
|
txbInv.Enabled = False
|
|||
|
|
|||
|
txbStateRead.Enabled = True
|
|||
|
|
|||
|
txbStateRead.SelectionStart = txbStateRead.TextLength
|
|||
|
txbStateRead.ScrollToCaret()
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function msProduct_Search(DataCode As String) As Boolean
|
|||
|
Dim QueryCount As Integer = 0
|
|||
|
|
|||
|
DBCmd = "SELECT Item_Code,Item_Name,Item_Count,Apply_Face,Apply_Eye FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "'"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
Dim DataCount As Integer = sqlDataQuery.Length
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
ReDim ChkItemSet(itemInfoList.eye, (DataCount / (itemInfoList.eye + 1)) - 1)
|
|||
|
Else
|
|||
|
ReDim ChkItemSet(itemInfoList.nowcount, (DataCount / (itemInfoList.eye + 1)) - 1)
|
|||
|
End If
|
|||
|
|
|||
|
For row = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
For col = 0 To itemInfoList.eye
|
|||
|
ChkItemSet(col, row) = sqlDataQuery(QueryCount)
|
|||
|
QueryCount += 1
|
|||
|
Next
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
Else
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function massListSetting(pntype As Panel, valueType As Int16, type As Boolean) As Boolean '' 전표번호 : true / 패킹번호 : false
|
|||
|
Try
|
|||
|
Dim RowDataCount As Integer
|
|||
|
Dim txbCount As Int16
|
|||
|
|
|||
|
If type = True Then
|
|||
|
RowDataCount = ChkItemSet.GetLength(1) - 1
|
|||
|
StateTxbClear(funcList.msstate)
|
|||
|
txbCount = txbList.Eye
|
|||
|
ReDim txbArrayList(RowDataCount, txbList.Eye)
|
|||
|
Else
|
|||
|
RowDataCount = packItemSet.GetLength(1) - 1
|
|||
|
StateTxbClear(funcList.mspack)
|
|||
|
txbCount = txbList.Eye
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Dim prodMapCol As Integer = 0
|
|||
|
|
|||
|
For cnt = 0 To RowDataCount
|
|||
|
For i = 0 To txbCount
|
|||
|
Dim txtBox As TextBox = New TextBox
|
|||
|
|
|||
|
If cnt = 0 Then
|
|||
|
prodMapCol = prodMapStartCol
|
|||
|
Else
|
|||
|
If i = txbList.Name Then
|
|||
|
prodMapCol = prodMapCol + prodMapHeight + maplocplus
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
txtBox.Name = txbSetName(i) & cnt
|
|||
|
pntype.Controls.Add(txtBox)
|
|||
|
txtBox.Font = New Font("함초롱바탕", 18, FontStyle.Bold)
|
|||
|
txtBox.Size = New Drawing.Size(prodInfoWidth(i), prodMapHeight)
|
|||
|
txtBox.Location = New Point(prodInfoRow(i), prodMapCol)
|
|||
|
|
|||
|
If type = True Then
|
|||
|
txtBox.Text = ChkItemSet(i + 1, cnt)
|
|||
|
txbArrayList(cnt, i) = txtBox
|
|||
|
|
|||
|
If i = txbList.Count + 1 Then
|
|||
|
stateFullCount += ChkItemSet(itemInfoList.count, cnt)
|
|||
|
End If
|
|||
|
Else
|
|||
|
txtBox.Text = packItemSet(i + 1, cnt)
|
|||
|
|
|||
|
If i = txbList.Count + 1 Then
|
|||
|
packFullCount += packItemSet(itemInfoList.count, cnt)
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
txtBox.ReadOnly = True
|
|||
|
txtBox.BackColor = Color.White
|
|||
|
Next
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("리스트를 생성하는 도중 오류가 발생하였습니다. :: " & ex.Message, vbCritical)
|
|||
|
Return True
|
|||
|
End Try
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function statePackmsCompare() As Boolean
|
|||
|
|
|||
|
If ChkItemSet.GetLength(1) = packItemSet.GetLength(1) Then
|
|||
|
For pack = 0 To packItemSet.GetLength(1) - 1
|
|||
|
Dim checkOk As Boolean = False
|
|||
|
For chkState = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
|
|||
|
Dim packCodeData As String
|
|||
|
Dim packCode As String = packItemSet(itemInfoList.code, pack)
|
|||
|
Dim codeNum As Int16 = UBound(Split(packItemSet(itemInfoList.code, pack), "/"))
|
|||
|
|
|||
|
For i = 0 To codeNum
|
|||
|
If i = codeNum Then
|
|||
|
packCodeData = Mid(packCode, 1, packCode.Length)
|
|||
|
Else
|
|||
|
packCodeData = Mid(packCode, 1, InStr(packCode, "/") - 1)
|
|||
|
packCode = Mid(packCode, InStr(packCode, "/") + 1, packCode.Length)
|
|||
|
End If
|
|||
|
|
|||
|
If packCodeData = ChkItemSet(itemInfoList.code, chkState) Then
|
|||
|
If ChkItemSet(itemInfoList.count, chkState) = packItemSet(itemInfoList.count, pack) Then
|
|||
|
If ChkItemSet(itemInfoList.face, chkState) = packItemSet(itemInfoList.face, pack) Then
|
|||
|
If ChkItemSet(itemInfoList.eye, chkState) = packItemSet(itemInfoList.eye, pack) Then
|
|||
|
|
|||
|
If ChkItemSet(itemInfoList.id_Serial, chkState) = String.Empty Then
|
|||
|
ChkItemSet(itemInfoList.id_Serial, chkState) = packItemSet(itemInfoList.id_Serial, pack)
|
|||
|
Else
|
|||
|
ChkItemSet(itemInfoList.id_Serial, chkState) = ChkItemSet(itemInfoList.id_Serial, chkState) & "/" & packItemSet(itemInfoList.id_Serial, pack)
|
|||
|
End If
|
|||
|
|
|||
|
checkOk = True
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
If checkOk = True Then
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
If checkOk = False Then
|
|||
|
For i = 0 To txbList.Eye
|
|||
|
txbArrayList(pack, i).BackColor = Color.Red
|
|||
|
Next
|
|||
|
gbMapPkInfo.BackColor = Color.Red
|
|||
|
MsgBox("맞지 않는 제품이 포장되어 있습니다. 확인하여 주십시오.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
Else
|
|||
|
For i = 0 To packItemSet.GetLength(1) - 1
|
|||
|
txbArrayList(i, txbList.Count).BackColor = Color.Red
|
|||
|
Next
|
|||
|
|
|||
|
gbMapPkInfo.BackColor = Color.Red
|
|||
|
MsgBox("항목 개수가 맞지 않습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
'-------------------------------출하 검색----------------------------------
|
|||
|
|
|||
|
Private Function orderSearch(codeData As String) As Boolean
|
|||
|
|
|||
|
If codeData.Length = packingLength Then
|
|||
|
|
|||
|
If packingCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Dim orderPackCode As String = orderPackingCompare(codeData)
|
|||
|
|
|||
|
If orderPackCode = "FAIL" Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If orderPackCode = "NOLINK" Then
|
|||
|
nolinkOutput()
|
|||
|
Else
|
|||
|
If orderer_Search(orderPackCode) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
If packingSearch(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If comSearch(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If ListSetting(True) Then
|
|||
|
MsgBox("제품 리스트 생성 중 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
If Mid(codeData, 1, 7) = firstState(firstStateList.ERP) Or Mid(codeData, 1, 3) = firstState(firstStateList.MES) Then
|
|||
|
|
|||
|
If ckbAPIUse.Checked = True Then
|
|||
|
If mesRunning(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
Else
|
|||
|
If ExistDataCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If orderer_Search(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If Product_Search(codeData) Then
|
|||
|
MsgBox("해당 전표코드의 제품 데이터가 존재하지 않습니다.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
If ListSetting(True) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
MsgBox("전표번호 양식과 맞지 않습니다. 전표번호를 확인하여 주십시오.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
txbChkState.Text = ProdSelect(ProdList.OrderCode)
|
|||
|
txbChkCode.Text = ProdSelect(ProdList.OrdererCode)
|
|||
|
txbChkOrderer.Text = ProdSelect(ProdList.OrdererName)
|
|||
|
txbChkAcc.Text = ProdSelect(ProdList.AccountName)
|
|||
|
txbChkDate.Text = ProdSelect(ProdList.BuyDate)
|
|||
|
txbChkRefer.Text = ProdSelect(ProdList.Refer)
|
|||
|
txbChkAD.Text = ProdSelect(ProdList.Address)
|
|||
|
|
|||
|
Return True
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function mesRunning(codeData As String) As Boolean
|
|||
|
mesDate = Nothing
|
|||
|
|
|||
|
If mesDateSet(codeData) Then
|
|||
|
MsgBox("MES 형식과 맞지 않는 코드 번호입니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Dim searchData As String = "createdAtFrom=" & mesDate & "&createdAtTo=" & mesDate.AddDays(1) & ""
|
|||
|
|
|||
|
Dim apiResult As String = apiRequest_GET(apiItemOutURL, searchData)
|
|||
|
|
|||
|
If apiResult = "-1" Then
|
|||
|
MsgBox("등록된 데이터가 존재하지 않습니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If mesParsing(apiResult, codeData) Then
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
mesShotSearch()
|
|||
|
ProdSelect(ProdList.OrderCode) = codeData
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Sub mesShotSearch()
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
DBCmd = "SELECT FaceShot,EyeShot FROM " & applyPlistDB & " WHERE ItemCode = '" & ChkItemSet(itemInfoList.code, i) & "'"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
ChkItemSet(itemInfoList.face, i) = sqlDataQuery(0)
|
|||
|
ChkItemSet(itemInfoList.eye, i) = sqlDataQuery(1)
|
|||
|
Else
|
|||
|
ChkItemSet(itemInfoList.face, i) = 0
|
|||
|
ChkItemSet(itemInfoList.eye, i) = 0
|
|||
|
End If
|
|||
|
Next
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Function mesParsing(pData As String, codeData As String) As Boolean
|
|||
|
Try
|
|||
|
Dim dataCount As Int16 = 0
|
|||
|
Dim codeExist As Boolean = False
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
ReDim ChkItemSet(itemInfoList.id_Serial, 0)
|
|||
|
ElseIf rdbMap.Checked = True Then
|
|||
|
ReDim ChkItemSet(itemInfoList.serial, 0)
|
|||
|
Else
|
|||
|
ReDim ChkItemSet(itemInfoList.nowcount, 0)
|
|||
|
End If
|
|||
|
|
|||
|
ReDim ProdSelect(ProdList.Refer)
|
|||
|
|
|||
|
Dim jQuery As JObject = JObject.Parse(pData)
|
|||
|
pData = jQuery.SelectToken(apiCommand(parsingCode.code)).ToString
|
|||
|
|
|||
|
If pData <> "SUCCESS" Then
|
|||
|
MsgBox("Data를 불러오는데 실패하였습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
pData = jQuery.SelectToken(apiCommand(parsingCode.data)).ToString
|
|||
|
jQuery = JObject.Parse(pData)
|
|||
|
pData = jQuery.SelectToken(apiCommand(parsingCode.row)).ToString
|
|||
|
|
|||
|
If pData = "[]" Then
|
|||
|
MsgBox("MES에 존재하지 않은 데이터입니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Dim jsArray = JArray.Parse(pData)
|
|||
|
|
|||
|
|
|||
|
For cnt = 0 To jsArray.Count - 1
|
|||
|
|
|||
|
Dim orderInfo As String = jsArray(cnt)(apiCommand(parsingCode.orderDetail)).ToString
|
|||
|
|
|||
|
If orderInfo <> Nothing Then
|
|||
|
jQuery = JObject.Parse(orderInfo)
|
|||
|
orderInfo = jQuery.SelectToken(apiCommand(parsingCode.orderSheet)).ToString
|
|||
|
jQuery = JObject.Parse(orderInfo)
|
|||
|
pData = jQuery.SelectToken(apiCommand(parsingCode.code)).ToString
|
|||
|
If pData = codeData Then
|
|||
|
|
|||
|
Dim NowState As String = jsArray(cnt)(apiCommand(parsingCode.state)).ToString
|
|||
|
|
|||
|
If NowState <> "canceled" Then
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.id_Serial, dataCount)
|
|||
|
ElseIf rdbMap.Checked = True Then
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.serial, dataCount)
|
|||
|
Else
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.nowcount, dataCount)
|
|||
|
End If
|
|||
|
|
|||
|
ChkItemSet(itemInfoList.id_Serial, dataCount) = jsArray(cnt)(apiCommand(parsingCode.id)).ToString
|
|||
|
|
|||
|
ProdSelect(ProdList.OrdererCode) = jQuery.SelectToken(apiCommand(parsingCode.ordererCode)).ToString
|
|||
|
ProdSelect(ProdList.OrdererName) = jQuery.SelectToken(apiCommand(parsingCode.ordererName)).ToString
|
|||
|
ProdSelect(ProdList.phone) = jQuery.SelectToken(apiCommand(parsingCode.phone)).ToString
|
|||
|
ProdSelect(ProdList.zip) = jQuery.SelectToken(apiCommand(parsingCode.zip)).ToString
|
|||
|
ProdSelect(ProdList.Address) = jQuery.SelectToken(apiCommand(parsingCode.address)).ToString
|
|||
|
|
|||
|
ChkItemSet(itemInfoList.count, dataCount) = jsArray(cnt)(apiCommand(parsingCode.itemcount)).ToString
|
|||
|
|
|||
|
ProdSelect(ProdList.BuyDate) = jsArray(cnt)(apiCommand(parsingCode.regDate)).ToString
|
|||
|
|
|||
|
Dim parterInfo As String = jsArray(cnt)(apiCommand(parsingCode.accuount)).ToString
|
|||
|
If parterInfo <> Nothing Then
|
|||
|
jQuery = JObject.Parse(parterInfo)
|
|||
|
ProdSelect(ProdList.AccountCode) = jQuery.SelectToken(apiCommand(parsingCode.code)).ToString
|
|||
|
ProdSelect(ProdList.AccountName) = jQuery.SelectToken(apiCommand(parsingCode.name)).ToString
|
|||
|
Else
|
|||
|
ProdSelect(ProdList.AccountCode) = String.Empty
|
|||
|
ProdSelect(ProdList.AccountName) = String.Empty
|
|||
|
End If
|
|||
|
|
|||
|
|
|||
|
Dim itemInfo As String = jsArray(cnt)(apiCommand(parsingCode.item)).ToString
|
|||
|
If itemInfo <> Nothing Then
|
|||
|
jQuery = JObject.Parse(itemInfo)
|
|||
|
ChkItemSet(itemInfoList.code, dataCount) = jQuery.SelectToken(apiCommand(parsingCode.code)).ToString
|
|||
|
ChkItemSet(itemInfoList.name, dataCount) = jQuery.SelectToken(apiCommand(parsingCode.name)).ToString
|
|||
|
Else
|
|||
|
MsgBox("등록 데이터 중 제품이 등록되어 있지 않는 항목이 존재합니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
dataCount += 1
|
|||
|
codeExist = False
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
If ChkItemSet(itemInfoList.code, 0) = "" Then
|
|||
|
codeExist = True
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
If codeExist = True Then
|
|||
|
MsgBox("등록된 코드 번호가 존재하지 않습니다. 번호를 확인하여 주십시오.", vbExclamation)
|
|||
|
Return True
|
|||
|
Else
|
|||
|
Return False
|
|||
|
End If
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("MES 데이터를 처리하는 도중 오류가 발생하였습니다." & vbCrLf & ex.Message)
|
|||
|
Return True
|
|||
|
End Try
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function mesDateSet(codeData As String) As Boolean
|
|||
|
Const yearFront As Int16 = 20
|
|||
|
Const dateLength As Int16 = 6
|
|||
|
If UBound(Split(codeData, firstState(firstStateList.MES))) > 0 Then
|
|||
|
If UBound(Split(codeData, "-")) > 0 Then
|
|||
|
Dim useDate As String = Mid(codeData, InStr(codeData, firstState(firstStateList.MES)) + firstState(firstStateList.MES).Length, InStr(codeData, "-") - firstState(firstStateList.MES).Length - 1)
|
|||
|
If useDate.Length = dateLength Then
|
|||
|
useDate = yearFront & Mid(useDate, 1, 2) & "-" & Mid(useDate, 3, 2) & "-" & Mid(useDate, 5, 2)
|
|||
|
mesDate = Convert.ToDateTime(useDate)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
Return True
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function comSearch(codeData As String) As Boolean
|
|||
|
|
|||
|
If comSearchCount(codeData) Then
|
|||
|
If comSearchOut() Then
|
|||
|
Return False
|
|||
|
Else
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Else
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function comSearchOut() As Boolean
|
|||
|
Try
|
|||
|
Const rowCount As Int16 = 2
|
|||
|
Dim itemCode As String = Nothing
|
|||
|
Dim itemName As String = Nothing
|
|||
|
|
|||
|
For i = 0 To cCountData.Length - 1
|
|||
|
itemCode = Nothing
|
|||
|
itemName = Nothing
|
|||
|
If cCountData(i) <> 0 Then
|
|||
|
DBCmd = "SELECT ItemCode,ItemName FROM " & applyClistDB & " WHERE ProdCode = '" & i & "'"
|
|||
|
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
For cnt = 0 To sqlDataQuery.Length - 1
|
|||
|
If cnt Mod rowCount = 0 Then
|
|||
|
If itemCode = Nothing Then
|
|||
|
itemCode = sqlDataQuery(cnt)
|
|||
|
Else
|
|||
|
itemCode = itemCode & "/" & sqlDataQuery(cnt)
|
|||
|
End If
|
|||
|
Else
|
|||
|
If itemName = Nothing Then
|
|||
|
itemName = sqlDataQuery(cnt)
|
|||
|
Else
|
|||
|
If itemName.Length > sqlDataQuery(cnt).ToString.Length Then
|
|||
|
itemName = sqlDataQuery(cnt)
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
Const firstDataNum As Int16 = 0
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
If ChkItemSet(0, 0) = Nothing Then
|
|||
|
ReDim ChkItemSet(itemInfoList.pk_Type, firstDataNum)
|
|||
|
ChkItemSet(itemInfoList.code, firstDataNum) = itemCode
|
|||
|
ChkItemSet(itemInfoList.name, firstDataNum) = itemName
|
|||
|
ChkItemSet(itemInfoList.count, firstDataNum) = cCountData(i)
|
|||
|
ChkItemSet(itemInfoList.face, firstDataNum) = 0
|
|||
|
ChkItemSet(itemInfoList.eye, firstDataNum) = 0
|
|||
|
ChkItemSet(itemInfoList.pk_Type, firstDataNum) = 1
|
|||
|
Else
|
|||
|
Dim chkCount As Int16 = ChkItemSet.GetLength(1)
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.pk_Type, chkCount)
|
|||
|
ChkItemSet(itemInfoList.code, chkCount) = itemCode
|
|||
|
ChkItemSet(itemInfoList.name, chkCount) = itemName
|
|||
|
ChkItemSet(itemInfoList.count, chkCount) = cCountData(i)
|
|||
|
ChkItemSet(itemInfoList.face, chkCount) = 0
|
|||
|
ChkItemSet(itemInfoList.eye, chkCount) = 0
|
|||
|
ChkItemSet(itemInfoList.pk_Type, chkCount) = 1
|
|||
|
End If
|
|||
|
Else
|
|||
|
If packItemSet(0, 0) = Nothing Then
|
|||
|
ReDim packItemSet(itemInfoList.pk_Type, firstDataNum)
|
|||
|
packItemSet(itemInfoList.code, firstDataNum) = itemCode
|
|||
|
packItemSet(itemInfoList.name, firstDataNum) = itemName
|
|||
|
packItemSet(itemInfoList.count, firstDataNum) = cCountData(i)
|
|||
|
packItemSet(itemInfoList.face, firstDataNum) = 0
|
|||
|
packItemSet(itemInfoList.eye, firstDataNum) = 0
|
|||
|
packItemSet(itemInfoList.pk_Type, firstDataNum) = 1
|
|||
|
Else
|
|||
|
Dim chkCount As Int16 = packItemSet.GetLength(1)
|
|||
|
ReDim Preserve packItemSet(itemInfoList.pk_Type, chkCount)
|
|||
|
packItemSet(itemInfoList.code, chkCount) = itemCode
|
|||
|
packItemSet(itemInfoList.name, chkCount) = itemName
|
|||
|
packItemSet(itemInfoList.count, chkCount) = cCountData(i)
|
|||
|
packItemSet(itemInfoList.face, chkCount) = 0
|
|||
|
packItemSet(itemInfoList.eye, chkCount) = 0
|
|||
|
packItemSet(itemInfoList.pk_Type, chkCount) = 1
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
MsgBox("존재하지 않은 소모품 항목이 존재합니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
Return True
|
|||
|
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("소모품 항목을 불러오는 도중 오류가 발생하였습니다. :: " & ex.Message, vbCritical)
|
|||
|
Return False
|
|||
|
End Try
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function comSearchCount(codeData As String) As Boolean
|
|||
|
DBCmd = "SELECT Mask5Cnt,Mask10Cnt,HairBandCnt,GelCnt,MiniGelCnt,AmpleCnt,CreamCnt,UmbrellaCnt,FenCnt,ChargerCnt,CableCnt,TonerCnt,Case_PRO_Black,Case_PRO_Beige,Case_PRO_Red,Case_PRO_Pink,Case_MAX_Black,Case_MAX_Apr,Case_MAX_Mint,Case_MAX_Beige,SoothingGelCnt,Carton0_Cnt,Carton1_Cnt,Carton2_Cnt,Carton3_Cnt,Carton4_Cnt,Carton5_Cnt,Carton6_Cnt,Shopbag_Cnt,CosShopbag_Cnt,DustBagCnt,Case_MAX_Purple,Case_PRO_SnakeBlakc,KollagenCnt,KollagenSetCnt,Kollagen_PCnt,KollagenSet_PCnt,CleansingWaterCnt,TonerPadCnt,Case_MAX_SafBK_Cnt,Hologram_1Cnt,Hologram_3Cnt,Hologram_5Cnt,Case_MAX_SafPp_Cnt,Case_MAX_Yellow,Kollagen_Pe1Cnt,Kollagen_Pe3Cnt,Kollagen_Pe5Cnt,ATCircleCaseCnt,APSquareCaseCnt,Case_MAX_Peach,MasSoothingCnt,Case_MAX_SMintCnt,MeshPouchCnt,FirmingAmpCnt,HyaluronicAmpCnt,nightshotcnt,morningshotcnt,casemaxwoodicnt,Elicolltonercnt, Elicollampcnt,Elicollcreamcnt,Elihyaltonercnt,Elihyalampcnt,Elihyalcreamcnt,Dayshotcnt,Beautyshopbagcnt,Gummycnt,Stickjellycnt,Newyearbagcnt,Emsbeltcnt,Beltbagcnt,Dayshot2cnt,Elixircnt FROM " & applySalesDB & " WHERE PackingCode = '" & codeData & "'"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
For i = 0 To cCountList.Elixircnt
|
|||
|
cCountData(i) = Val(sqlDataQuery(i))
|
|||
|
Next
|
|||
|
Return True
|
|||
|
Else
|
|||
|
MsgBox("소모품 관련 데이터를 확인할 수 없습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function packingSearch(codeData As String) As Boolean
|
|||
|
If serialPacking(codeData) Then
|
|||
|
If serialDivision() Then
|
|||
|
Return False
|
|||
|
Else
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Else
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function serialDivision() As Boolean
|
|||
|
Dim slashNum As Int16
|
|||
|
|
|||
|
For i = 0 To pSerialData.Length - 1
|
|||
|
Dim restData As String = pSerialData(i)
|
|||
|
If restData <> "0" Then
|
|||
|
slashNum = UBound(Split(restData, ","))
|
|||
|
|
|||
|
For slash = 0 To slashNum
|
|||
|
Dim serialData As String
|
|||
|
If slash = slashNum Then
|
|||
|
serialData = restData
|
|||
|
Else
|
|||
|
serialData = Mid(restData, 1, InStr(restData, ",") - 1) '' 302308110335
|
|||
|
restData = Mid(restData, InStr(restData, ",") + 1, restData.Length)
|
|||
|
End If
|
|||
|
|
|||
|
For chk = 0 To itemInfoList.pk_Type
|
|||
|
chkItem(chk) = Nothing
|
|||
|
Next
|
|||
|
|
|||
|
If serialSearch(serialData) = False Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
Return True
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function serialSearch(serialData As String) As Boolean
|
|||
|
Const infoNum As Int16 = 1
|
|||
|
Dim modelNumber As String = Mid(serialData, modelPosition, infoNum)
|
|||
|
Dim typeNumber As String = Mid(serialData, typePosition, infoNum)
|
|||
|
Dim sqlResult As String
|
|||
|
|
|||
|
If modelNumber = modelList.PRO Or modelNumber = modelList.LUX Or modelNumber = modelList.Alpha Then
|
|||
|
If typeNumber = typeList.prodSet_V1 Then
|
|||
|
DBCmd = "SELECT Ct_Max_ShotCnt from " & applyCartDB & " where Product_SN = (SELECT FaceCart_SN FROM " & applyProdDB & " WHERE Product_SN = '" & serialData & "') OR Product_SN = (SELECT EyeCart_SN FROM " & applyProdDB & " WHERE Product_SN = '" & serialData & "')"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
chkItem(itemInfoList.face) = sqlDataQuery(typeList.prodFace_V2 - 1)
|
|||
|
chkItem(itemInfoList.eye) = sqlDataQuery(typeList.prodEye - 1)
|
|||
|
Else
|
|||
|
MsgBox("세트 제품의 샷 수를 알 수 없습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
Else
|
|||
|
|
|||
|
sqlResult = singleCartShot(serialData)
|
|||
|
|
|||
|
If sqlResult = "FAIL" Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If typeNumber = typeList.prodFace_V2 Or typeNumber = typeList.prodBody Then
|
|||
|
chkItem(itemInfoList.face) = sqlResult
|
|||
|
chkItem(itemInfoList.eye) = "0"
|
|||
|
ElseIf typeNumber = typeList.prodEye Then
|
|||
|
chkItem(itemInfoList.face) = "0"
|
|||
|
chkItem(itemInfoList.eye) = sqlResult
|
|||
|
Else
|
|||
|
MsgBox("형식에 맞지 않은 바코드가 존재합니다.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
Else
|
|||
|
If modelNumber = modelList.MAXIMUM Then
|
|||
|
TDUseCompare = True
|
|||
|
Else
|
|||
|
TDUseCompare = False
|
|||
|
End If
|
|||
|
|
|||
|
sqlResult = singleCartShot(serialData)
|
|||
|
|
|||
|
If sqlResult = "FAIL" Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If typeNumber = typeList.prodSet_V1 Or typeNumber = typeList.prodFace_V2 Then
|
|||
|
chkItem(itemInfoList.face) = sqlResult
|
|||
|
chkItem(itemInfoList.eye) = sqlResult
|
|||
|
Else
|
|||
|
MsgBox("형식에 맞지 않은 바코드가 존재합니다.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
If prodListSet(modelNumber, typeNumber, serialData) Then
|
|||
|
Return True
|
|||
|
Else
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function singleCartShot(serialData As String) As String
|
|||
|
If TDUseCompare = True Then
|
|||
|
DBCmd = "SELECT Ct_Max_ShotCnt FROM " & applyCartDB & " WHERE Product_SN = '" & serialData & "'"
|
|||
|
|
|||
|
Dim sqlResult As String = DBQueryScalar(DBCmd)
|
|||
|
If sqlResult = "False" Then
|
|||
|
MsgBox("단일 제품의 샷 수를 알 수 없습니다.", vbExclamation)
|
|||
|
Return "FAIL"
|
|||
|
End If
|
|||
|
|
|||
|
Return sqlResult
|
|||
|
|
|||
|
Else
|
|||
|
Return "0"
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function prodListSet(modelNumber As String, typeNumber As String, serialData As String) As Boolean
|
|||
|
Try
|
|||
|
Dim tempFaceShot As String = Nothing
|
|||
|
Dim tempEyeShot As String = Nothing
|
|||
|
Dim successSwitch As Boolean = False
|
|||
|
|
|||
|
DBCmd = "SELECT count(ItemCode) FROM " & applyPlistDB & " WHERE FaceShot = '" & chkItem(itemInfoList.face) & "' AND EyeShot = '" & chkItem(itemInfoList.eye) & "'"
|
|||
|
Dim resultCount As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If resultCount = "False" Then
|
|||
|
MsgBox("샷 수에 따른 제품 코드를 검색하는 과정에서 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If resultCount = "0" Then
|
|||
|
|
|||
|
Select Case modelNumber
|
|||
|
Case modelList.PRO
|
|||
|
Select Case typeNumber
|
|||
|
Case typeList.prodSet_V1
|
|||
|
tempFaceShot = 6000
|
|||
|
tempEyeShot = 60000
|
|||
|
Case typeList.prodFace_V2
|
|||
|
tempFaceShot = 6000
|
|||
|
tempEyeShot = 0
|
|||
|
Case typeList.prodEye
|
|||
|
tempFaceShot = 0
|
|||
|
tempEyeShot = 60000
|
|||
|
Case typeList.prodBody
|
|||
|
tempFaceShot = 30000
|
|||
|
tempEyeShot = 0
|
|||
|
End Select
|
|||
|
Case modelList.LUX
|
|||
|
Select Case typeNumber
|
|||
|
Case typeList.prodSet_V1
|
|||
|
tempFaceShot = 3000
|
|||
|
tempEyeShot = 30000
|
|||
|
Case typeList.prodFace_V2
|
|||
|
tempFaceShot = 3000
|
|||
|
tempEyeShot = 0
|
|||
|
Case typeList.prodEye
|
|||
|
tempFaceShot = 0
|
|||
|
tempEyeShot = 30000
|
|||
|
Case typeList.prodBody
|
|||
|
tempFaceShot = 20000
|
|||
|
tempEyeShot = 0
|
|||
|
End Select
|
|||
|
|
|||
|
Case modelList.Alpha
|
|||
|
Select Case typeNumber
|
|||
|
Case typeList.prodSet_V1
|
|||
|
tempFaceShot = 20000
|
|||
|
tempEyeShot = 200000
|
|||
|
Case typeList.prodFace_V2
|
|||
|
tempFaceShot = 20000
|
|||
|
tempEyeShot = 0
|
|||
|
Case typeList.prodEye
|
|||
|
tempFaceShot = 0
|
|||
|
tempEyeShot = 200000
|
|||
|
Case typeList.prodBody
|
|||
|
tempFaceShot = 30000
|
|||
|
tempEyeShot = 0
|
|||
|
End Select
|
|||
|
|
|||
|
Case Else
|
|||
|
tempFaceShot = 0
|
|||
|
tempEyeShot = 0
|
|||
|
End Select
|
|||
|
Else
|
|||
|
tempFaceShot = chkItem(itemInfoList.face)
|
|||
|
tempEyeShot = chkItem(itemInfoList.eye)
|
|||
|
End If
|
|||
|
|
|||
|
Const rowCount As Int16 = 2
|
|||
|
Dim colorNumber As String = Mid(serialData, colorPosition, 1)
|
|||
|
|
|||
|
DBCmd = "SELECT ItemCode,ItemName FROM " & applyPlistDB & " WHERE ModelNum = '" & modelNumber & "' AND TypeNum = '" & typeNumber & "' AND FaceShot = '" & tempFaceShot & "' AND EyeShot = '" & tempEyeShot & "' AND ColorNum = '" & colorNumber & "'"
|
|||
|
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
For i = 0 To sqlDataQuery.Length - 1
|
|||
|
If i Mod rowCount = 0 Then
|
|||
|
If chkItem(itemInfoList.code) = Nothing Then
|
|||
|
chkItem(itemInfoList.code) = sqlDataQuery(i)
|
|||
|
Else
|
|||
|
chkItem(itemInfoList.code) = chkItem(itemInfoList.code) & "/" & sqlDataQuery(i)
|
|||
|
End If
|
|||
|
Else
|
|||
|
If chkItem(itemInfoList.name) = Nothing Then
|
|||
|
chkItem(itemInfoList.name) = sqlDataQuery(i)
|
|||
|
Else
|
|||
|
If chkItem(itemInfoList.name).Length > sqlDataQuery(i).ToString.Length Then
|
|||
|
chkItem(itemInfoList.name) = sqlDataQuery(i)
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
chkItem(itemInfoList.id_Serial) = serialData
|
|||
|
chkItem(itemInfoList.pk_Type) = 0
|
|||
|
Else
|
|||
|
MsgBox("등록되지 않은 제품이 존재합니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
If ChkItemSet(0, 0) = Nothing Then
|
|||
|
ReDim ChkItemSet(itemInfoList.pk_Type, 0)
|
|||
|
|
|||
|
For i = 0 To itemInfoList.pk_Type
|
|||
|
If i = itemInfoList.count Then
|
|||
|
ChkItemSet(i, 0) += 1
|
|||
|
Else
|
|||
|
ChkItemSet(i, 0) = chkItem(i)
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
Else
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If ChkItemSet(itemInfoList.code, i) = chkItem(itemInfoList.code) And ChkItemSet(itemInfoList.face, i) = chkItem(itemInfoList.face) And ChkItemSet(itemInfoList.eye, i) = chkItem(itemInfoList.eye) Then
|
|||
|
ChkItemSet(itemInfoList.count, i) += 1
|
|||
|
successSwitch = True
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
If successSwitch = False Then
|
|||
|
Dim chkLength As Int16 = ChkItemSet.GetLength(1)
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.pk_Type, chkLength)
|
|||
|
For i = 0 To itemInfoList.pk_Type
|
|||
|
If i = itemInfoList.count Then
|
|||
|
ChkItemSet(i, chkLength) += 1
|
|||
|
Else
|
|||
|
ChkItemSet(i, chkLength) = chkItem(i)
|
|||
|
End If
|
|||
|
Next
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
Else
|
|||
|
|
|||
|
If packItemSet(0, 0) = Nothing Then
|
|||
|
ReDim packItemSet(itemInfoList.pk_Type, 0)
|
|||
|
|
|||
|
For i = 0 To itemInfoList.pk_Type
|
|||
|
If i = itemInfoList.count Then
|
|||
|
packItemSet(i, 0) += 1
|
|||
|
Else
|
|||
|
packItemSet(i, 0) = chkItem(i)
|
|||
|
End If
|
|||
|
Next
|
|||
|
Else
|
|||
|
For i = 0 To packItemSet.GetLength(1) - 1
|
|||
|
If packItemSet(itemInfoList.code, i) = chkItem(itemInfoList.code) And packItemSet(itemInfoList.face, i) = chkItem(itemInfoList.face) And packItemSet(itemInfoList.eye, i) = chkItem(itemInfoList.eye) Then
|
|||
|
packItemSet(itemInfoList.count, i) += 1
|
|||
|
successSwitch = True
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
If successSwitch = False Then
|
|||
|
Dim chkLength As Int16 = packItemSet.GetLength(1)
|
|||
|
ReDim Preserve packItemSet(itemInfoList.pk_Type, chkLength)
|
|||
|
For i = 0 To itemInfoList.pk_Type
|
|||
|
If i = itemInfoList.count Then
|
|||
|
packItemSet(i, chkLength) += 1
|
|||
|
Else
|
|||
|
packItemSet(i, chkLength) = chkItem(i)
|
|||
|
End If
|
|||
|
Next
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Return True
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("제품 검색 도중 오류가 발생하였습니다. :: " & ex.Message)
|
|||
|
Return False
|
|||
|
End Try
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function serialPacking(codeData As String) As Boolean
|
|||
|
DBCmd = "SELECT Main_Product_SN,Pro_Face_Serial,Pro_Eye_Serial,Pro_Body_Serial,Lux_Face_Serial,Lux_Eye_Serial,Lux_Body_Serial,MAXIMUM_SN,Alpha_Set_Serial,Alpha_Face_Serial,Alpha_Eye_Serial,Alpha_Body_Serial,Alto_Serial,Effect_serial FROM " & applySalesDB & " WHERE PackingCode = '" & codeData & "'"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
For i = 0 To pSerialData.Length - 1
|
|||
|
pSerialData(i) = sqlDataQuery(i)
|
|||
|
Next
|
|||
|
Else
|
|||
|
MsgBox("패킹 시리얼 번호를 검색하는 도중 오류가 발생하였습니다.")
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Return True
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function mappingComapare(codeData As String) As Boolean
|
|||
|
DBCmd = "SELECT COUNT(Order_Code) FROM " & applyOrderDB & " WHERE Packing_Code = '" & codeData & "'"
|
|||
|
Dim sqlResult As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If sqlResult = "False" Then
|
|||
|
MsgBox("해당 데이터를 데이터베이스로 확인할 수 없습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If Val(sqlResult) > 0 Then
|
|||
|
MsgBox("이미 고객과 연결된 제품입니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function orderPackingCompare(codeData As String) As String
|
|||
|
Const sqlLength As Int16 = 1
|
|||
|
Dim orderCode As String
|
|||
|
|
|||
|
DBCmd = "SELECT Order_Code FROM " & applyOrderDB & " WHERE Packing_Code = '" & codeData & "' GROUP BY Order_Code"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
If sqlDataQuery.Length = sqlLength Then
|
|||
|
orderCode = sqlDataQuery(sqlLength - 1)
|
|||
|
Return orderCode
|
|||
|
Else
|
|||
|
MsgBox("중복 맵핑된 고객이 존재합니다. 데이터를 확인하여 주십시오.", vbExclamation)
|
|||
|
Return "FAIL"
|
|||
|
End If
|
|||
|
Else
|
|||
|
Return "NOLINK"
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function packingCompare(codeData As String) As Boolean
|
|||
|
DBCmd = "SELECT COUNT(PackingCode) FROM " & applySalesDB & " WHERE PackingCode = '" & codeData & "'"
|
|||
|
Dim result As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If result = "False" Then
|
|||
|
MsgBox("패킹 데이터를 불러오는 도중 오류가 발생하였습니다.")
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If result = 0 Then
|
|||
|
MsgBox("패킹 내역이 존재하지 않습니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
Else
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function packListSetting(pntype As Panel, valueType As Int16, type As Boolean) As Boolean '' 전표번호 : true / 패킹번호 : false
|
|||
|
Try
|
|||
|
Dim RowDataCount As Integer
|
|||
|
|
|||
|
If type = True Then
|
|||
|
RowDataCount = ChkItemSet.GetLength(1) - 1
|
|||
|
StateTxbClear(funcList.mapstate)
|
|||
|
Else
|
|||
|
RowDataCount = packItemSet.GetLength(1) - 1
|
|||
|
StateTxbClear(funcList.mappack)
|
|||
|
ReDim txbArrayList(RowDataCount, txbList.Eye)
|
|||
|
End If
|
|||
|
|
|||
|
Dim prodMapCol As Integer = 0
|
|||
|
|
|||
|
For cnt = 0 To RowDataCount
|
|||
|
For i = 0 To txbList.Eye
|
|||
|
Dim txtBox As TextBox = New TextBox
|
|||
|
|
|||
|
If cnt = 0 Then
|
|||
|
prodMapCol = prodMapStartCol
|
|||
|
Else
|
|||
|
If i = txbList.Name Then
|
|||
|
prodMapCol = prodMapCol + prodMapHeight + maplocplus
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
txtBox.Name = txbSetName(i) & cnt
|
|||
|
pntype.Controls.Add(txtBox)
|
|||
|
txtBox.Font = New Font("함초롱바탕", 18, FontStyle.Bold)
|
|||
|
txtBox.Size = New Drawing.Size(prodInfoWidth(i), prodMapHeight)
|
|||
|
txtBox.Location = New Point(prodInfoRow(i), prodMapCol)
|
|||
|
|
|||
|
If type = True Then
|
|||
|
txtBox.Text = ChkItemSet(i + 1, cnt)
|
|||
|
If i = txbList.Count + 1 Then
|
|||
|
stateFullCount += ChkItemSet(itemInfoList.count, cnt)
|
|||
|
End If
|
|||
|
Else
|
|||
|
|
|||
|
txtBox.Text = packItemSet(i + 1, cnt)
|
|||
|
txbArrayList(cnt, i) = txtBox
|
|||
|
|
|||
|
If i = txbList.Count + 1 Then
|
|||
|
packFullCount += packItemSet(itemInfoList.count, cnt)
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
txtBox.ReadOnly = True
|
|||
|
txtBox.BackColor = Color.White
|
|||
|
Next
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("리스트를 생성하는 도중 오류가 발생하였습니다. :: " & ex.Message, vbCritical)
|
|||
|
Return True
|
|||
|
End Try
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function setCodeParsing() As Boolean
|
|||
|
Const colCount As Int16 = 5
|
|||
|
Dim pkAddSwitch As Boolean = False
|
|||
|
Try
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If InStr(ChkItemSet(itemInfoList.code, i), "PK") > 0 Then
|
|||
|
Dim existSwitch As Boolean = False
|
|||
|
|
|||
|
DBCmd = "SELECT un.ItemCode,un.ItemName,pk.ProdCount,pd.FaceShot,pd.EyeShot FROM " & applyPKCodeDB & " AS pk INNER JOIN (SELECT ItemCode,ProdCode,ItemName FROM " & applyPlistDB & " UNION SELECT ItemCode,ProdCode,ItemName FROM " & applyClistDB & ") AS un ON pk.ProdCode = un.ItemCode LEFT JOIN " & applyPlistDB & " AS pd ON pk.ProdCode = pd.ItemCode WHERE pk.PKCode = '" & ChkItemSet(itemInfoList.code, i) & "'"
|
|||
|
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
Dim dataSetCount As Int16 = 0
|
|||
|
Dim RowCount As Int16 = (sqlDataQuery.Length / colCount) - 1
|
|||
|
Dim setCodeArray(itemInfoList.eye)
|
|||
|
|
|||
|
For row = 0 To RowCount
|
|||
|
existSwitch = False
|
|||
|
|
|||
|
For col = 0 To colCount - 1
|
|||
|
|
|||
|
setCodeArray(col) = sqlDataQuery(dataSetCount)
|
|||
|
|
|||
|
If col = itemInfoList.count Then
|
|||
|
setCodeArray(itemInfoList.count) = setCodeArray(itemInfoList.count) * ChkItemSet(itemInfoList.count, i)
|
|||
|
End If
|
|||
|
|
|||
|
dataSetCount += 1
|
|||
|
Next
|
|||
|
|
|||
|
For chk = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If ChkItemSet(itemInfoList.code, chk) = setCodeArray(itemInfoList.code) Then
|
|||
|
ChkItemSet(itemInfoList.count, chk) += setCodeArray(itemInfoList.count)
|
|||
|
|
|||
|
If ChkItemSet(itemInfoList.pk_Type, chk) = String.Empty Then
|
|||
|
ChkItemSet(itemInfoList.pk_Type, chk) = ChkItemSet(itemInfoList.code, i)
|
|||
|
Else
|
|||
|
ChkItemSet(itemInfoList.pk_Type, chk) = ChkItemSet(itemInfoList.pk_Type, chk) & "/" & ChkItemSet(itemInfoList.code, i)
|
|||
|
End If
|
|||
|
|
|||
|
If ChkItemSet(itemInfoList.id_Serial, i) <> String.Empty Then
|
|||
|
If ChkItemSet(itemInfoList.id_Serial, chk) = String.Empty Then
|
|||
|
ChkItemSet(itemInfoList.id_Serial, chk) = ChkItemSet(itemInfoList.id_Serial, i)
|
|||
|
Else
|
|||
|
ChkItemSet(itemInfoList.id_Serial, chk) = ChkItemSet(itemInfoList.id_Serial, chk) & "/" & ChkItemSet(itemInfoList.id_Serial, i)
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
existSwitch = True
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
If existSwitch = False Then
|
|||
|
Dim chkRowNum As Int16 = ChkItemSet.GetLength(1)
|
|||
|
|
|||
|
If rdbMap.Checked = True Then
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.serial, chkRowNum)
|
|||
|
Else
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.nowcount, chkRowNum)
|
|||
|
End If
|
|||
|
|
|||
|
For svd = 0 To itemInfoList.eye
|
|||
|
ChkItemSet(svd, chkRowNum) = setCodeArray(svd)
|
|||
|
Next
|
|||
|
ChkItemSet(itemInfoList.pk_Type, chkRowNum) = ChkItemSet(itemInfoList.code, i)
|
|||
|
|
|||
|
If ChkItemSet(itemInfoList.id_Serial, i) <> String.Empty Then
|
|||
|
ChkItemSet(itemInfoList.id_Serial, chkRowNum) = ChkItemSet(itemInfoList.id_Serial, i)
|
|||
|
End If
|
|||
|
|
|||
|
pkAddSwitch = True
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
Else
|
|||
|
MsgBox("존재하지 않는 세트코드가 존재합니다. 데이터를 확인 후 없을 시 요청하여 주십시오.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
For del = 0 To itemInfoList.serial
|
|||
|
ChkItemSet(del, i) = String.Empty
|
|||
|
Next
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
If pkAddSwitch = True Then
|
|||
|
pkAddSwitch = False
|
|||
|
Dim nowRow As Int16 = 0
|
|||
|
|
|||
|
For rc = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If ChkItemSet(itemInfoList.code, rc) <> String.Empty Then
|
|||
|
For cc = 0 To itemInfoList.serial
|
|||
|
ChkItemSet(cc, nowRow) = ChkItemSet(cc, rc)
|
|||
|
Next
|
|||
|
pkAddSwitch = True
|
|||
|
nowRow += 1
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
If pkAddSwitch = True Then
|
|||
|
setCodeUse = True
|
|||
|
|
|||
|
If rdbMap.Checked = True Then
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.serial, nowRow - 1)
|
|||
|
Else
|
|||
|
ReDim Preserve ChkItemSet(itemInfoList.nowcount, nowRow - 1)
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("세트 코드 관련 오류 발생!! :: " + ex.Message, vbCritical)
|
|||
|
Return True
|
|||
|
End Try
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
Private Sub apiBackupData()
|
|||
|
If ckbAPIUse.Checked = True Then
|
|||
|
ReDim apiItemSet(itemInfoList.serial, ChkItemSet.GetLength(1) - 1)
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
For n = 0 To itemInfoList.serial
|
|||
|
apiItemSet(n, i) = ChkItemSet(n, i)
|
|||
|
Next
|
|||
|
Next
|
|||
|
End If
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Function ListSetting(type As Boolean) As Boolean
|
|||
|
Try
|
|||
|
|
|||
|
StateTxbClear(funcList.search)
|
|||
|
txbNameValue(funcList.search)
|
|||
|
|
|||
|
Dim prodInfoCol As Integer = 0
|
|||
|
Dim RowDataCount As Integer = ChkItemSet.GetLength(1) - 1
|
|||
|
ReDim txbArrayList(RowDataCount, txbList.Eye)
|
|||
|
ReDim btnArrayList(RowDataCount, btnCount - 1)
|
|||
|
|
|||
|
For cnt = 0 To RowDataCount
|
|||
|
For i = 0 To txbList.Remove
|
|||
|
Dim txtBox As TextBox = New TextBox
|
|||
|
Dim btnBox As Button = New Button
|
|||
|
|
|||
|
If cnt = 0 Then
|
|||
|
prodInfoCol = prodInfoStartCol
|
|||
|
Else
|
|||
|
If i = txbList.Name Then
|
|||
|
prodInfoCol = prodInfoCol + prodInfoHeight + locplus
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
If i >= txbList.Name And i <= txbList.Eye Then
|
|||
|
|
|||
|
txtBox.Name = txbSetName(i) & cnt
|
|||
|
pnProdInfo.Controls.Add(txtBox)
|
|||
|
|
|||
|
txbArrayList(cnt, i) = txtBox
|
|||
|
|
|||
|
txtBox.Font = New Font("함초롱바탕", 24, FontStyle.Bold)
|
|||
|
txtBox.Size = New Drawing.Size(prodInfoWidth(i), prodInfoHeight)
|
|||
|
txtBox.Location = New Point(prodInfoRow(i), prodInfoCol)
|
|||
|
|
|||
|
txtBox.Text = ChkItemSet(i + 1, cnt)
|
|||
|
|
|||
|
txtBox.ReadOnly = True
|
|||
|
txtBox.BackColor = Color.White
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
If ModifyListSwitch = False Then
|
|||
|
btnBox.Name = txbSetName(i) & cnt
|
|||
|
|
|||
|
If i = txbList.Modify Then
|
|||
|
btnBox.Text = "수정"
|
|||
|
AddHandler btnBox.Click, AddressOf ModifyClick
|
|||
|
Else
|
|||
|
btnBox.Text = "제거"
|
|||
|
AddHandler btnBox.Click, AddressOf DeleteClick
|
|||
|
End If
|
|||
|
|
|||
|
|
|||
|
pnProdInfo.Controls.Add(btnBox)
|
|||
|
|
|||
|
btnArrayList(cnt, i - (txbList.Eye + 1)) = btnBox
|
|||
|
|
|||
|
btnBox.Font = New Font("함초롱바탕", 18, FontStyle.Bold)
|
|||
|
btnBox.Size = New Drawing.Size(prodInfoWidth(i), prodInfoHeight)
|
|||
|
btnBox.Location = New Point(prodInfoRow(i), prodInfoCol - 3)
|
|||
|
|
|||
|
btnBox.Enabled = False
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("리스트를 생성하는 도중 오류가 발생하였습니다. :: " & ex.Message, vbCritical)
|
|||
|
Return True
|
|||
|
End Try
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function packDateSearch(DataCode As String) As Boolean
|
|||
|
DBCmd = "SELECT `Data` FROM " & applySalesDB & " WHERE PackingCode = '" & DataCode & "'"
|
|||
|
Dim sqlResult As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If sqlResult = "False" Then
|
|||
|
MsgBox("해당 데이터를 데이터베이스에서 찾을 수 없습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If rdbMap.Checked = True Then
|
|||
|
txbMapPkDate.Text = sqlResult
|
|||
|
Else
|
|||
|
txbMsPkDate.Text = sqlResult
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function Product_Search(DataCode As String) As Boolean
|
|||
|
Dim QueryCount As Integer = 0
|
|||
|
|
|||
|
DBCmd = "SELECT Item_Code,Item_Name,Item_Count,Apply_Face,Apply_Eye FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "'"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
Dim DataCount As Integer = sqlDataQuery.Length
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
ReDim ChkItemSet(itemInfoList.eye, (DataCount / (itemInfoList.eye + 1)) - 1)
|
|||
|
Else
|
|||
|
ReDim ChkItemSet(itemInfoList.serial, (DataCount / (itemInfoList.eye + 1)) - 1)
|
|||
|
End If
|
|||
|
|
|||
|
For row = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
For col = 0 To itemInfoList.eye
|
|||
|
ChkItemSet(col, row) = sqlDataQuery(QueryCount)
|
|||
|
QueryCount += 1
|
|||
|
Next
|
|||
|
Next
|
|||
|
Return False
|
|||
|
Else
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function orderer_Search(DataCode As String) As Boolean
|
|||
|
DBCmd = "SELECT distinct Order_Code,Date,Account_Code,Account_Name,Orderer_Code,Orderer_Name,Phone_Number,ZipCode,Address,Refer FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "'"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
ProdSelect(ProdList.OrderCode) = sqlDataQuery(ProdList.OrderCode)
|
|||
|
ProdSelect(ProdList.BuyDate) = sqlDataQuery(ProdList.BuyDate)
|
|||
|
ProdSelect(ProdList.AccountCode) = sqlDataQuery(ProdList.AccountCode)
|
|||
|
ProdSelect(ProdList.AccountName) = sqlDataQuery(ProdList.AccountName)
|
|||
|
ProdSelect(ProdList.OrdererCode) = sqlDataQuery(ProdList.OrdererCode)
|
|||
|
ProdSelect(ProdList.OrdererName) = sqlDataQuery(ProdList.OrdererName)
|
|||
|
ProdSelect(ProdList.phone) = sqlDataQuery(ProdList.phone)
|
|||
|
ProdSelect(ProdList.zip) = sqlDataQuery(ProdList.zip)
|
|||
|
ProdSelect(ProdList.Address) = sqlDataQuery(ProdList.Address)
|
|||
|
ProdSelect(ProdList.Refer) = sqlDataQuery(ProdList.Refer)
|
|||
|
gb_map_state.BackColor = SystemColors.Control
|
|||
|
Return False
|
|||
|
Else
|
|||
|
nolinkOutput()
|
|||
|
MsgBox("해당 전표코드에 대한 데이터가 존재하지 않습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Sub nolinkOutput()
|
|||
|
ProdSelect(ProdList.OrderCode) = "N/A"
|
|||
|
ProdSelect(ProdList.BuyDate) = "N/A"
|
|||
|
ProdSelect(ProdList.AccountCode) = "N/A"
|
|||
|
ProdSelect(ProdList.AccountName) = "N/A"
|
|||
|
ProdSelect(ProdList.OrdererCode) = "N/A"
|
|||
|
ProdSelect(ProdList.OrdererName) = "N/A"
|
|||
|
ProdSelect(ProdList.phone) = "N/A"
|
|||
|
ProdSelect(ProdList.zip) = "N/A"
|
|||
|
ProdSelect(ProdList.Address) = "N/A"
|
|||
|
ProdSelect(ProdList.Refer) = "N/A"
|
|||
|
gb_map_state.BackColor = Color.Red
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Function releaseDataCompare(DataCode As String) As Boolean
|
|||
|
|
|||
|
|
|||
|
If DBQueryScalar(DBCmd) = 0 Then
|
|||
|
MsgBox("데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function completeCompare(DataCode As String) As Boolean
|
|||
|
Dim dupSwitch As Boolean = False
|
|||
|
DBCmd = "SELECT Invoice_Number FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "'"
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
For i = 0 To sqlDataQuery.Length - 1
|
|||
|
If sqlDataQuery(i) <> 0 Then
|
|||
|
dupSwitch = True
|
|||
|
End If
|
|||
|
Next
|
|||
|
End If
|
|||
|
|
|||
|
If dupSwitch = True Then
|
|||
|
MsgBox("이미 송장 등록이 되어있는 제품이 존재합니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function ExistApiCompare(DataCode As String) As Boolean
|
|||
|
DBCmd = "SELECT COUNT(Order_Code) FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "'"
|
|||
|
Dim dbResult As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If dbResult = "False" Then
|
|||
|
MsgBox("데이터를 찾는 도중 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If dbResult > 0 Then
|
|||
|
MsgBox("해당 번호는 처리된 번호입니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function ExistDataCompare(DataCode As String) As Boolean
|
|||
|
|
|||
|
If rdbMap.Checked = True And rdbStateInv.Checked = True Then
|
|||
|
DBCmd = "SELECT COUNT(distinct Order_Code) FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "' AND release_state = 'release'"
|
|||
|
ElseIf rdbMap.Checked = True And rdbStatePack.Checked = True Then
|
|||
|
DBCmd = "SELECT COUNT(distinct Order_Code) FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "' AND release_state IS null"
|
|||
|
Else
|
|||
|
DBCmd = "SELECT COUNT(distinct Order_Code) FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "'"
|
|||
|
End If
|
|||
|
|
|||
|
Dim dbResult As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If dbResult = "False" Then
|
|||
|
MsgBox("데이터를 찾는 도중 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If dbResult = 0 Then
|
|||
|
|
|||
|
DBCmd = "SELECT COUNT(Order_Code) FROM " & applyOrderDB & " WHERE Order_Code = '" & DataCode & "'"
|
|||
|
|
|||
|
dbResult = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If dbResult = "False" Then
|
|||
|
MsgBox("데이터를 찾는 도중 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If dbResult = 0 Then
|
|||
|
MsgBox("데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbExclamation)
|
|||
|
Return True
|
|||
|
Else
|
|||
|
MsgBox("이미 등록 완료된 데이터 입니다.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function delOrder_Search(ordCode As String) As Boolean
|
|||
|
DBCmd = "SELECT COUNT(Order_Code) FROM " & applyOrderDB & " WHERE Order_Code = '" & ordCode & "'"
|
|||
|
Dim scResult As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If scResult = "0" Then
|
|||
|
Return True
|
|||
|
Else
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Sub lbProdRmv_DoubleClick(sender As Object, e As EventArgs) Handles lbProdRmv.DoubleClick
|
|||
|
|
|||
|
If txbChkState.Text = "N/A" Then
|
|||
|
MsgBox("패킹 번호는 수정이 불가능 합니다.", vbExclamation)
|
|||
|
Exit Sub
|
|||
|
End If
|
|||
|
|
|||
|
Const ctrlCount As Int16 = 6
|
|||
|
Dim txbCount As Integer = (pnProdInfo.Controls.Count - ctrlCount) / ctrlCount
|
|||
|
|
|||
|
DelFuncSwitch = Not DelFuncSwitch
|
|||
|
|
|||
|
If DelFuncSwitch = True Then
|
|||
|
For i = txbCount - 1 To 0 Step -1
|
|||
|
pnProdInfo.Controls(txbSetName(txbList.Remove) & i).Enabled = True
|
|||
|
Next
|
|||
|
Else
|
|||
|
For i = txbCount - 1 To 0 Step -1
|
|||
|
pnProdInfo.Controls(txbSetName(txbList.Remove) & i).Enabled = False
|
|||
|
Next
|
|||
|
End If
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub lbProdMdf_DoubleClick(sender As Object, e As EventArgs) Handles lbProdMdf.DoubleClick
|
|||
|
|
|||
|
If txbChkState.Text = "N/A" Then
|
|||
|
MsgBox("패킹 번호는 수정이 불가능 합니다.", vbExclamation)
|
|||
|
Exit Sub
|
|||
|
End If
|
|||
|
|
|||
|
Const ctrlCount As Int16 = 6
|
|||
|
Dim txbCount As Integer = (pnProdInfo.Controls.Count - ctrlCount) / ctrlCount
|
|||
|
|
|||
|
ModifySwitch = Not ModifySwitch
|
|||
|
|
|||
|
If ModifySwitch = True Then
|
|||
|
For i = txbCount - 1 To 0 Step -1
|
|||
|
txbArrayList(i, txbList.Count).ReadOnly = False
|
|||
|
txbArrayList(i, txbList.Face).ReadOnly = False
|
|||
|
txbArrayList(i, txbList.Eye).ReadOnly = False
|
|||
|
pnProdInfo.Controls(txbSetName(txbList.Modify) & i).Enabled = True
|
|||
|
Next
|
|||
|
Else
|
|||
|
For i = txbCount - 1 To 0 Step -1
|
|||
|
txbArrayList(i, txbList.Count).ReadOnly = True
|
|||
|
txbArrayList(i, txbList.Face).ReadOnly = True
|
|||
|
txbArrayList(i, txbList.Eye).ReadOnly = True
|
|||
|
pnProdInfo.Controls(txbSetName(txbList.Modify) & i).Enabled = False
|
|||
|
Next
|
|||
|
|
|||
|
If ModifyListSwitch = True Then
|
|||
|
ListSetting(True)
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub DeleteClick(sender As Object, e As EventArgs)
|
|||
|
Dim btnIndex As Int16 = CType(sender, Button).TabIndex - indexDefault
|
|||
|
btnIndex = btnIndex / indexRange
|
|||
|
|
|||
|
DBCmd = "SELECT Packing_Code FROM " & applyOrderDB & " WHERE Order_Code = '" & txbChkState.Text & "' AND Item_Code = '" & ChkItemSet(itemInfoList.code, btnIndex) & "'"
|
|||
|
Dim dbResult As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If dbResult.Replace(" ", "") = "" Or dbResult = String.Empty Then
|
|||
|
|
|||
|
DBCmd = "UPDATE " & applyOrderDB & " SET Order_Code = 'null_" & txbChkState.Text & "' WHERE Order_Code = '" & txbChkState.Text & "' AND Item_Code = '" & ChkItemSet(itemInfoList.code, btnIndex) & "'"
|
|||
|
|
|||
|
If DBCommand(DBCmd) Then
|
|||
|
|
|||
|
If modifyResetList(txbChkState.Text) Then
|
|||
|
MsgBox("데이터 불러오기 실패, 관리자 문의", vbCritical)
|
|||
|
Exit Sub
|
|||
|
End If
|
|||
|
|
|||
|
MsgBox("삭제 완료", vbInformation)
|
|||
|
Exit Sub
|
|||
|
End If
|
|||
|
|
|||
|
MsgBox("삭제 실패", vbExclamation)
|
|||
|
Else
|
|||
|
MsgBox("이미 등록 완료된 데이터는 삭제할 수 없습니다.", vbExclamation)
|
|||
|
End If
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Function modifyResetList(codeData As String) As Boolean
|
|||
|
|
|||
|
If delOrder_Search(codeData) Then
|
|||
|
StateTxbClear(funcList.search)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If orderer_Search(codeData) Then
|
|||
|
MsgBox("해당 전표코드의 고객 데이터가 존재하지 않습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If Product_Search(codeData) Then
|
|||
|
MsgBox("해당 전표코드의 제품 데이터가 존재하지 않습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If ListSetting(True) Then
|
|||
|
MsgBox("전표 데이터 리스트화 진행중 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Sub ModifyClick(sender As Object, e As EventArgs)
|
|||
|
Dim btnIndex As Int16 = CType(sender, Button).TabIndex - indexDefault
|
|||
|
btnIndex = btnIndex / indexRange
|
|||
|
|
|||
|
DBCmd = "UPDATE " & applyOrderDB & " SET Item_Count = '" & txbArrayList(btnIndex, txbList.Count).Text & "', Apply_Face = '" & txbArrayList(btnIndex, txbList.Face).Text & "', Apply_Eye = '" & txbArrayList(btnIndex, txbList.Eye).Text & "' WHERE Order_Code = '" & txbChkState.Text & "' AND Item_Code = '" & ChkItemSet(itemInfoList.code, btnIndex) & "'"
|
|||
|
|
|||
|
If DBCommand(DBCmd) Then
|
|||
|
MsgBox("수정 완료", vbInformation)
|
|||
|
Exit Sub
|
|||
|
End If
|
|||
|
|
|||
|
MsgBox("수정 실패", vbExclamation)
|
|||
|
Exit Sub
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
'-------------------------------패킹 관련----------------------------------
|
|||
|
Private Sub mappingReset()
|
|||
|
mapStateOK = False
|
|||
|
mapPackOk = False
|
|||
|
mapInvOk = False
|
|||
|
StateTxbClear(funcList.mapstate)
|
|||
|
StateTxbClear(funcList.mappack)
|
|||
|
topInfoClear()
|
|||
|
|
|||
|
compareValueClean()
|
|||
|
|
|||
|
ReDim ChkItemSet(0, 0)
|
|||
|
ReDim packItemSet(0, 0)
|
|||
|
setCodeUse = False
|
|||
|
|
|||
|
txbInv.BackColor = SystemColors.Window
|
|||
|
txbInv.Text = String.Empty
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub topInfoClear()
|
|||
|
gbMapStInfo.BackColor = SystemColors.Control
|
|||
|
txbMapState.Text = "N/A"
|
|||
|
txbMapDate.Text = "N/A"
|
|||
|
txbMapOrder.Text = "N/A"
|
|||
|
txbMapAccount.Text = "N/A"
|
|||
|
txbMapRefer.Text = "N/A"
|
|||
|
|
|||
|
gbMapPkInfo.BackColor = SystemColors.Control
|
|||
|
txbMapPacking.Text = "N/A"
|
|||
|
txbMapPkDate.Text = "N/A"
|
|||
|
|
|||
|
txbMapState.Refresh()
|
|||
|
txbMapDate.Refresh()
|
|||
|
txbMapOrder.Refresh()
|
|||
|
txbMapAccount.Refresh()
|
|||
|
txbMapRefer.Refresh()
|
|||
|
txbMapPacking.Refresh()
|
|||
|
txbMapPkDate.Refresh()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Function mappingRunning(codeData As String) As Boolean
|
|||
|
|
|||
|
If mapStateOK = True And mapPackOk = True And mapInvOk = True Then
|
|||
|
mappingReset()
|
|||
|
End If
|
|||
|
|
|||
|
If rdbStateInv.Checked = True Then
|
|||
|
mapPackOk = True
|
|||
|
End If
|
|||
|
|
|||
|
If mapStateOK = True And mapPackOk = True Then
|
|||
|
txbInv.BackColor = Color.White
|
|||
|
txbInv.Text = codeData
|
|||
|
|
|||
|
If txbInv.Text.Replace(" ", "") = "" Then
|
|||
|
txbInv.BackColor = Color.Red
|
|||
|
MsgBox("송장번호를 입력하지 않았습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
'If IsNumeric(txbInv.Text) = False Then
|
|||
|
' txbInv.BackColor = Color.Red
|
|||
|
' MsgBox("양식에 맞지 않는 송장번호입니다.", vbExclamation)
|
|||
|
' Return False
|
|||
|
'End If
|
|||
|
|
|||
|
If txbInv.Text.Length < invLimitCount Then
|
|||
|
txbInv.BackColor = Color.Red
|
|||
|
MsgBox("양식에 맞지 않는 송장번호입니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If txbInv.Text = txbMapState.Text Or txbInv.Text = txbMapPacking.Text Then
|
|||
|
txbInv.BackColor = Color.Red
|
|||
|
MsgBox("패킹 번호 혹은 전표 번호는 송장 번호로 사용할 수 없습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Dim InvoiceNum As Int16 = Val(Mid(txbInv.Text, 1, 1))
|
|||
|
|
|||
|
If InvoiceNum <> invList.hanjin And InvoiceNum <> invList.cj And InvoiceNum <> invList.hanjin2 And InvoiceNum <> invList.cj2 Then
|
|||
|
txbInv.BackColor = Color.Red
|
|||
|
MsgBox("형식에 맞는 택배사가 존재하지 않습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
txbInv.BackColor = Color.ForestGreen
|
|||
|
mapInvOk = True
|
|||
|
|
|||
|
Else
|
|||
|
If codeData.Length = packingLength Then
|
|||
|
|
|||
|
packFullCount = 0
|
|||
|
|
|||
|
If rdbStateInv.Checked = True Then
|
|||
|
MsgBox("해당 기능은 제품 패킹 번호를 필요로 하지 않습니다.", vbExclamation)
|
|||
|
Return False
|
|||
|
Else
|
|||
|
If packingCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If mappingComapare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If packingSearch(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If comSearch(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If packDateSearch(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
txbMapPacking.Text = codeData
|
|||
|
|
|||
|
If packListSetting(pnMapPkProd, funcList.mappack, False) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
gbMapPkInfo.BackColor = Color.ForestGreen
|
|||
|
mapPackOk = True
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
If Mid(codeData, 1, 7) = firstState(firstStateList.ERP) Or Mid(codeData, 1, 3) = firstState(firstStateList.MES) Then
|
|||
|
|
|||
|
setCodeUse = False
|
|||
|
stateFullCount = 0
|
|||
|
|
|||
|
If ckbAPIUse.Checked = True Then
|
|||
|
|
|||
|
If ExistApiCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If ckbPostgre.Checked = True Then
|
|||
|
|
|||
|
If useAPIDirect(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
If mesRunning(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
If ExistDataCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If completeCompare(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If orderer_Search(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If Product_Search(codeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
apiBackupData()
|
|||
|
|
|||
|
If setCodeParsing() Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
If packListSetting(pnMapStProd, funcList.mapstate, True) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
MsgBox("해당 번호의 데이터를 찾을 수 없습니다. 번호를 확인하여 주십시오.", vbExclamation)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
txbMapState.Text = ProdSelect(ProdList.OrderCode)
|
|||
|
txbMapDate.Text = ProdSelect(ProdList.BuyDate)
|
|||
|
txbMapOrder.Text = ProdSelect(ProdList.OrdererName)
|
|||
|
txbMapAccount.Text = ProdSelect(ProdList.AccountName)
|
|||
|
txbMapRefer.Text = ProdSelect(ProdList.Refer)
|
|||
|
|
|||
|
gbMapStInfo.BackColor = Color.ForestGreen
|
|||
|
mapStateOK = True
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
If mapStateOK = True And mapPackOk = True Then
|
|||
|
|
|||
|
If statePackCompare() Then
|
|||
|
mapPackOk = False
|
|||
|
Return False
|
|||
|
End If
|
|||
|
|
|||
|
txbInv.Enabled = True
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
If mapStateOK = True And mapPackOk = True And mapInvOk = True Then
|
|||
|
If ckbAuto.Checked = True Then
|
|||
|
If compareSave() Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
Else
|
|||
|
btnSearch.Text = "등 록"
|
|||
|
End If
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Return True
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function useAPIDirect(CodeData As String) As Boolean
|
|||
|
If stateCodeRun_API(CodeData) Then
|
|||
|
mesShotSearch()
|
|||
|
|
|||
|
If stateinfoRun_API(CodeData) Then
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End If
|
|||
|
Return True
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function stateinfoRun_API(CodeData As String) As Boolean
|
|||
|
Try
|
|||
|
DBCmd = "select distinct on(os.receiver_phone_number) io.created_at,co.code,co.name,os.customer_id,os.receiver_name,os.receiver_phone_number,os.receiver_zip_code,os.receiver_address,io.description from order_details od join order_sheets os on os.id = od.order_sheet_id join item_outflows io on io.order_detail_id = od.id left outer join companies co on co.id = os.partner_id where os.code = '" & CodeData & "' and od.deleted_at is null;"
|
|||
|
|
|||
|
If pgDBQueryReader(DBCmd) Then
|
|||
|
For i = 0 To pgDataQuery.Length - 1
|
|||
|
ProdSelect(i + 1) = pgDataQuery(i)
|
|||
|
Next
|
|||
|
|
|||
|
ProdSelect(ProdList.OrderCode) = CodeData
|
|||
|
|
|||
|
If ProdSelect(ProdList.Refer) = "0" Then
|
|||
|
ProdSelect(ProdList.Refer) = String.Empty
|
|||
|
End If
|
|||
|
|
|||
|
Return True
|
|||
|
|
|||
|
Else
|
|||
|
|
|||
|
MsgBox("고객 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical)
|
|||
|
Return False
|
|||
|
|
|||
|
End If
|
|||
|
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("Postgre 고객 데이터 불러오는 중 오류 발생 !! : " & ex.Message, vbCritical)
|
|||
|
Return False
|
|||
|
End Try
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function stateCodeRun_API(CodeData As String) As Boolean
|
|||
|
Try
|
|||
|
Const colCount As Int16 = 5
|
|||
|
|
|||
|
DBCmd = "select io.state,it.code,it.name,io.expected_out_count,io.id from order_details od join items it on it.id = od.item_id join order_sheets os on os.id = od.order_sheet_id join item_outflows io on io.order_detail_id = od.id where os.code = '" & CodeData & "' and od.deleted_at is null;"
|
|||
|
If pgDBQueryReader(DBCmd) Then
|
|||
|
Dim RowCount As Int16 = (pgDataQuery.Length / colCount) - 1
|
|||
|
Dim dataSetCount As Int32 = 0
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
ReDim ChkItemSet(itemInfoList.id_Serial, RowCount)
|
|||
|
Else
|
|||
|
ReDim ChkItemSet(itemInfoList.serial, RowCount)
|
|||
|
End If
|
|||
|
|
|||
|
|
|||
|
For row = 0 To RowCount
|
|||
|
For col = 0 To colCount - 1
|
|||
|
Select Case col
|
|||
|
Case directData.state
|
|||
|
If pgDataQuery(dataSetCount) <> "registered" Then
|
|||
|
dataSetCount += 5
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
Case directData.code
|
|||
|
ChkItemSet(itemInfoList.code, row) = pgDataQuery(dataSetCount)
|
|||
|
Case directData.name
|
|||
|
ChkItemSet(itemInfoList.name, row) = pgDataQuery(dataSetCount)
|
|||
|
Case directData.count
|
|||
|
ChkItemSet(itemInfoList.count, row) = pgDataQuery(dataSetCount)
|
|||
|
Case directData.id
|
|||
|
ChkItemSet(itemInfoList.id_Serial, row) = pgDataQuery(dataSetCount)
|
|||
|
Case Else
|
|||
|
MsgBox("잘못된 경로 개입입니다. useAPIDirect !", vbCritical)
|
|||
|
Return False
|
|||
|
End Select
|
|||
|
|
|||
|
dataSetCount += 1
|
|||
|
Next
|
|||
|
|
|||
|
ChkItemSet(itemInfoList.serial, row) = Nothing
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
Return True
|
|||
|
Else
|
|||
|
MsgBox("데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
Catch ex As Exception
|
|||
|
MsgBox("Postgre 데이터 불러오는 중 오류 발생 !! : " & ex.Message, vbCritical)
|
|||
|
Return False
|
|||
|
End Try
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function compareSave() As Boolean
|
|||
|
|
|||
|
txbStateRead.Enabled = False
|
|||
|
txbStateRead.Text = "등록중"
|
|||
|
txbStateRead.BackColor = Color.Yellow
|
|||
|
|
|||
|
Dim nowToday As String = Format(Now, "yyyy") & "-" & Format(Now, "MM") & "-" & Format(Now, "dd")
|
|||
|
|
|||
|
If ckbAPIUse.Checked = True Then
|
|||
|
|
|||
|
apiSerialData()
|
|||
|
|
|||
|
If mesDataReg() Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If mesDBOrderReg(nowToday) Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Else
|
|||
|
If rdbStateInv.Checked = True Then
|
|||
|
If dbSaveInv(nowToday) Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Else
|
|||
|
If dbSave(nowToday) Then
|
|||
|
failForm()
|
|||
|
Return True
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
txbStateRead.Text = "등록완료"
|
|||
|
StartFunc = True
|
|||
|
|
|||
|
gbMapStInfo.BackColor = SystemColors.Control
|
|||
|
gbMapPkInfo.BackColor = SystemColors.Control
|
|||
|
btnSearch.Text = "검 색"
|
|||
|
txbInv.Enabled = False
|
|||
|
|
|||
|
txbStateRead.Enabled = True
|
|||
|
|
|||
|
txbStateRead.SelectionStart = txbStateRead.TextLength
|
|||
|
txbStateRead.ScrollToCaret()
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Sub failForm()
|
|||
|
txbStateRead.Text = "등록실패"
|
|||
|
|
|||
|
gbMapStInfo.BackColor = SystemColors.Control
|
|||
|
gbMapPkInfo.BackColor = SystemColors.Control
|
|||
|
txbInv.BackColor = Color.Red
|
|||
|
|
|||
|
btnSearch.Text = "검 색"
|
|||
|
txbInv.Enabled = False
|
|||
|
txbStateRead.Enabled = True
|
|||
|
|
|||
|
txbStateRead.SelectionStart = txbStateRead.TextLength
|
|||
|
txbStateRead.ScrollToCaret()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Function mesDBOrderReg(nowToday As String) As Boolean
|
|||
|
|
|||
|
Dim buydateParsing As String = Mid(ProdSelect(ProdList.BuyDate), 1, InStr(ProdSelect(ProdList.BuyDate), " ") - 1)
|
|||
|
Dim serialParsing, accCode, accName, address As String
|
|||
|
|
|||
|
If ProdSelect(ProdList.AccountCode) = Nothing Then
|
|||
|
accCode = "NULL"
|
|||
|
Else
|
|||
|
accCode = Chr(39) & ProdSelect(ProdList.AccountCode) & Chr(39)
|
|||
|
End If
|
|||
|
|
|||
|
If ProdSelect(ProdList.AccountName) = Nothing Then
|
|||
|
accName = "NULL"
|
|||
|
Else
|
|||
|
accName = Chr(39) & ProdSelect(ProdList.AccountName) & Chr(39)
|
|||
|
End If
|
|||
|
|
|||
|
If UBound(Split(ProdSelect(ProdList.Address), "'")) > 0 Then
|
|||
|
address = ProdSelect(ProdList.Address).Insert(InStr(ProdSelect(ProdList.Address), "'"), "'")
|
|||
|
End If
|
|||
|
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
|
|||
|
If ChkItemSet(itemInfoList.serial, i) = Nothing Then
|
|||
|
serialParsing = "NULL"
|
|||
|
Else
|
|||
|
serialParsing = Chr(39) & ChkItemSet(itemInfoList.serial, i) & Chr(39)
|
|||
|
End If
|
|||
|
|
|||
|
DBCmd = "INSERT INTO " & applyOrderDB & "(DATETIME,Order_Code,DATE,Account_Code,Account_Name,Orderer_Code,Orderer_Name,Receiver_Name,Phone_Number,ZipCode,Address,Shipment_Date,Item_Code,Item_Name,Item_Count,Apply_Face,Apply_Eye,Invoice_Number,Packing_Code,Serial_Number,release_state) VALUE(Now(),'" & txbMapState.Text & "','" & buydateParsing & "'," & accCode & "," & accName & ",'" & ProdSelect(ProdList.OrdererCode) & "','" & ProdSelect(ProdList.OrdererName) & "','" & ProdSelect(ProdList.OrdererName) & "','" & ProdSelect(ProdList.phone) & "','" & ProdSelect(ProdList.zip) & "','" & ProdSelect(ProdList.Address) & "','" & nowToday & "','" & ChkItemSet(itemInfoList.code, i) & "','" & ChkItemSet(itemInfoList.name, i) & "','" & ChkItemSet(itemInfoList.count, i) & "','" & ChkItemSet(itemInfoList.face, i) & "','" & ChkItemSet(itemInfoList.eye, i) & "','" & txbInv.Text & "','" & txbMapPacking.Text & "'," & serialParsing & ",'release')"
|
|||
|
If DBCommand(DBCmd) = False Then
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function mesDataReg() As Boolean
|
|||
|
Dim jsonData, apiResult As String
|
|||
|
|
|||
|
If rdbMap.Checked = True Or rdbMass.Checked = True Then
|
|||
|
If setCodeUse = True Then
|
|||
|
For i = 0 To apiItemSet.GetLength(1) - 1
|
|||
|
If rdbStateInv.Checked = True Then
|
|||
|
jsonData = "{""expectedOutCount"":" & apiItemSet(itemInfoList.count, i) & ",""invoiceNumber"":""" & txbInv.Text & """}"
|
|||
|
Else
|
|||
|
If apiItemSet(itemInfoList.type, i) = 0 Then
|
|||
|
jsonData = "{""expectedOutCount"":" & apiItemSet(itemInfoList.count, i) & ",""serialNumber"":""" & apiItemSet(itemInfoList.serial, i) & """,""invoiceNumber"":""" & txbInv.Text & """}"
|
|||
|
Else
|
|||
|
jsonData = "{""expectedOutCount"":" & apiItemSet(itemInfoList.count, i) & ",""invoiceNumber"":""" & txbInv.Text & """}"
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
apiResult = apiRequest_PUT(jsonData, apiItemSet(itemInfoList.id_Serial, i))
|
|||
|
|
|||
|
If apiResult = "-1" Then
|
|||
|
MsgBox("MES에 해당 데이터가 존재하지 않습니다. 확인하여 주십시오.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
Else
|
|||
|
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If rdbStateInv.Checked = True Then
|
|||
|
jsonData = "{""expectedOutCount"":" & ChkItemSet(itemInfoList.count, i) & ",""invoiceNumber"":""" & txbInv.Text & """}"
|
|||
|
Else
|
|||
|
If ChkItemSet(itemInfoList.type, i) = 0 Then
|
|||
|
jsonData = "{""expectedOutCount"":" & ChkItemSet(itemInfoList.count, i) & ",""serialNumber"":""" & ChkItemSet(itemInfoList.serial, i) & """,""invoiceNumber"":""" & txbInv.Text & """}"
|
|||
|
Else
|
|||
|
jsonData = "{""expectedOutCount"":" & ChkItemSet(itemInfoList.count, i) & ",""invoiceNumber"":""" & txbInv.Text & """}"
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
apiResult = apiRequest_PUT(jsonData, ChkItemSet(itemInfoList.id_Serial, i))
|
|||
|
|
|||
|
If apiResult = "-1" Then
|
|||
|
MsgBox("MES에 해당 데이터가 존재하지 않습니다. 확인하여 주십시오.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
|
|||
|
Private Function apiMassSave() As Boolean
|
|||
|
Dim jsonData As String = String.Empty
|
|||
|
Dim apiResult As String = String.Empty
|
|||
|
Dim SerialSet As String = String.Empty
|
|||
|
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If ChkItemSet(itemInfoList.id_Serial, i) <> String.Empty And ChkItemSet(itemInfoList.id_Serial, i) <> "" Then
|
|||
|
SerialSet = ChkItemSet(itemInfoList.id_Serial, i)
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
For i = RequestCount - 1 To 0 Step -1
|
|||
|
Dim SaveSerial As String = String.Empty
|
|||
|
If i = 0 Then
|
|||
|
SaveSerial = Mid(SerialSet, 1, SerialSet.Length)
|
|||
|
Else
|
|||
|
SaveSerial = Mid(SerialSet, 1, InStr(SerialSet, "/") - 1)
|
|||
|
SerialSet = Mid(SerialSet, InStr(SerialSet, "/") + 1, SerialSet.Length)
|
|||
|
End If
|
|||
|
|
|||
|
|
|||
|
jsonData = "{""expectedOutCount"": 1,""serialNumber"":""" & SaveSerial & """,""invoiceNumber"":""" & txbLabelCode.Text & """}"
|
|||
|
|
|||
|
apiResult = apiRequest_PUT(jsonData, SetIdCode(i))
|
|||
|
|
|||
|
If apiResult = "-1" Then
|
|||
|
MsgBox("MES에 해당 데이터가 존재하지 않습니다. 확인하여 주십시오.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
|
|||
|
Private Function apiSerialSave() As Boolean
|
|||
|
Dim jsonData, apiResult As String
|
|||
|
|
|||
|
If rdbMap.Checked = True Then
|
|||
|
If setCodeUse = True Then
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
If ChkItemSet(itemInfoList.serial, i) <> String.Empty Then
|
|||
|
Dim idSave As String = ChkItemSet(itemInfoList.id_Serial, i)
|
|||
|
Dim pkSave As String = ChkItemSet(itemInfoList.pk_Type, i)
|
|||
|
Dim serialSave As String = ChkItemSet(itemInfoList.serial, i)
|
|||
|
Dim runInt As Integer = UBound(Split(idSave, "/"))
|
|||
|
|
|||
|
For n = 0 To runInt
|
|||
|
Dim nowid As String
|
|||
|
Dim nowSerial As String
|
|||
|
|
|||
|
If n < runInt Then
|
|||
|
nowid = Mid(idSave, 1, InStr(idSave, "/") - 1)
|
|||
|
nowSerial = Mid(serialSave, 1, InStr(serialSave, "/") - 1)
|
|||
|
|
|||
|
idSave = Mid(idSave, InStr(idSave, "/") + 1, idSave.Length)
|
|||
|
serialSave = Mid(serialSave, InStr(serialSave, "/") + 1, serialSave.Length)
|
|||
|
Else
|
|||
|
nowid = Mid(idSave, 1, idSave.Length)
|
|||
|
nowSerial = Mid(serialSave, 1, serialSave.Length)
|
|||
|
End If
|
|||
|
|
|||
|
jsonData = "{""expectedOutCount"": 1,""serialNumber"":""" & nowSerial & """,""invoiceNumber"":""" & txbLabelCode.Text & """}"
|
|||
|
|
|||
|
apiResult = apiRequest_PUT(jsonData, nowid)
|
|||
|
|
|||
|
If apiResult = "-1" Then
|
|||
|
MsgBox("MES에 해당 데이터가 존재하지 않습니다. 확인하여 주십시오.", vbExclamation)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
End If
|
|||
|
Next
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Return True
|
|||
|
End Function
|
|||
|
|
|||
|
Private Sub apiSerialData()
|
|||
|
Dim serialArr(ChkItemSet.GetLength(1) - 1) As String
|
|||
|
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
serialArr(i) = ChkItemSet(itemInfoList.serial, i) '' SerialArr 배열에 ChkItemSet 시리얼 번호 저장
|
|||
|
Next
|
|||
|
|
|||
|
For api = 0 To apiItemSet.GetLength(1) - 1
|
|||
|
|
|||
|
For chk = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
|
|||
|
If apiItemSet(itemInfoList.code, api) = ChkItemSet(itemInfoList.code, chk) Then
|
|||
|
serialArr(chk) = apiItemReg(serialArr(chk), chk, api)
|
|||
|
Else
|
|||
|
If InStr(ChkItemSet(itemInfoList.pk_Type, chk), apiItemSet(itemInfoList.code, api)) > 0 Then
|
|||
|
If ChkItemSet(itemInfoList.type, chk) = 0 Then
|
|||
|
serialArr(chk) = apiItemReg(serialArr(chk), chk, api)
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Function apiItemReg(serStr As String, chkNum As Int16, apiNum As Int16) As String
|
|||
|
If ChkItemSet(itemInfoList.type, chkNum) = 0 Then
|
|||
|
Dim slashSet As Int16 = UBound(Split(ChkItemSet(itemInfoList.serial, chkNum), "/"))
|
|||
|
apiItemSet(itemInfoList.type, apiNum) = 0
|
|||
|
For i = 0 To apiItemSet(itemInfoList.count, apiNum) - 1
|
|||
|
If i = slashSet Then
|
|||
|
If apiItemSet(itemInfoList.serial, apiNum) = String.Empty Then
|
|||
|
apiItemSet(itemInfoList.serial, apiNum) = serStr
|
|||
|
Else
|
|||
|
apiItemSet(itemInfoList.serial, apiNum) = apiItemSet(itemInfoList.serial, apiNum) & "/" & serStr
|
|||
|
End If
|
|||
|
Else
|
|||
|
Dim serialData As String = Mid(serStr, 1, InStr(serStr, "/") - 1)
|
|||
|
serStr = Mid(serStr, InStr(serStr, "/") + 1, serStr.Length)
|
|||
|
|
|||
|
If apiItemSet(itemInfoList.serial, apiNum) = String.Empty Then
|
|||
|
apiItemSet(itemInfoList.serial, apiNum) = serialData
|
|||
|
Else
|
|||
|
apiItemSet(itemInfoList.serial, apiNum) = apiItemSet(itemInfoList.serial, apiNum) & "/" & serialData
|
|||
|
End If
|
|||
|
End If
|
|||
|
Next
|
|||
|
Else
|
|||
|
apiItemSet(itemInfoList.type, apiNum) = 1
|
|||
|
End If
|
|||
|
|
|||
|
If serStr = String.Empty Then
|
|||
|
Return String.Empty
|
|||
|
End If
|
|||
|
|
|||
|
Return serStr
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function dbSaveInv(nowToday As String) As Boolean
|
|||
|
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
DBCmd = "UPDATE " & applyOrderDB & " SET Shipment_Date = '" & nowToday & "', Invoice_Number = '" & txbInv.Text & "', release_state = 'release' WHERE Order_Code = '" & txbMapState.Text & "' AND Item_Code = '" & ChkItemSet(itemInfoList.code, i) & "'"
|
|||
|
If DBCommand(DBCmd) = False Then
|
|||
|
MsgBox("데이터베이스에 없는 제품이 포함되어 있습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function dbSave(nowToday As String) As Boolean
|
|||
|
Dim packSerial As String
|
|||
|
|
|||
|
If setCodeUse = True Then
|
|||
|
If setCodeInsert() Then
|
|||
|
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
DBCmd = "SELECT COUNT(Order_Code) FROM " & applyOrderDB & " WHERE Order_Code = '" & txbMapState.Text & "' AND Item_Code = '" & ChkItemSet(itemInfoList.code, i) & "'"
|
|||
|
|
|||
|
Dim rowStr As String = DBQueryScalar(DBCmd)
|
|||
|
|
|||
|
If rowStr = "False" Then
|
|||
|
MsgBox("세트 데이터를 저장하는 도중 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
If ChkItemSet(itemInfoList.serial, i) = Nothing Then
|
|||
|
packSerial = "NULL"
|
|||
|
Else
|
|||
|
packSerial = Chr(39) & ChkItemSet(itemInfoList.serial, i) & Chr(39)
|
|||
|
End If
|
|||
|
|
|||
|
If rowStr = 0 Then
|
|||
|
DBCmd = "INSERT INTO " & applyOrderDB & "(DATETIME,Order_Code,DATE,Account_Code,Account_Name,Charge_Code,Warehouse,Orderer_Code,Orderer_Name,Country,Receiver_Name,Phone_Number,ZipCode,Address,Refer,Shipment_Date,Item_Code,Item_Name,Item_Count,Apply_Face,Apply_Eye,Invoice_Number,Packing_Code,Serial_Number,release_state) VALUE(Now(),'" & txbMapState.Text & "'," & defaultData(defaultList.regDate) & "," & defaultData(defaultList.accCode) & "," & defaultData(defaultList.accName) & "," & defaultData(defaultList.chrCode) & "," & defaultData(defaultList.warehouse) & "," & defaultData(defaultList.ordCode) & "," & defaultData(defaultList.ordName) & "," & defaultData(defaultList.country) & "," & defaultData(defaultList.recName) & "," & defaultData(defaultList.phone) & "," & defaultData(defaultList.zip) & "," & defaultData(defaultList.address) & "," & defaultData(defaultList.refer) & ",'" & nowToday & "','" & ChkItemSet(itemInfoList.code, i) & "','" & ChkItemSet(itemInfoList.name, i) & "','" & ChkItemSet(itemInfoList.count, i) & "','" & ChkItemSet(itemInfoList.face, i) & "','" & ChkItemSet(itemInfoList.eye, i) & "','" & txbInv.Text & "','" & txbMapPacking.Text & "'," & packSerial & ",'release')"
|
|||
|
Else
|
|||
|
DBCmd = "UPDATE " & applyOrderDB & " SET Shipment_Date = '" & nowToday & "', Item_Count = '" & ChkItemSet(itemInfoList.count, i) & "', Invoice_Number = '" & txbInv.Text & "', Packing_Code= '" & txbMapPacking.Text & "',Serial_Number= " & packSerial & ",release_state='release' WHERE Order_Code = '" & txbMapState.Text & "' AND Item_Code = '" & ChkItemSet(itemInfoList.code, i) & "'"
|
|||
|
End If
|
|||
|
|
|||
|
If DBCommand(DBCmd) = False Then
|
|||
|
MsgBox("세트 코드에 대한 데이터를 저장하는 도중 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
If setCodeDelete() Then
|
|||
|
Return False
|
|||
|
Else
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Else
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Else
|
|||
|
For i = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
|
|||
|
If ChkItemSet(itemInfoList.serial, i) = Nothing Then
|
|||
|
packSerial = "NULL"
|
|||
|
Else
|
|||
|
packSerial = Chr(39) & ChkItemSet(itemInfoList.serial, i) & Chr(39)
|
|||
|
End If
|
|||
|
|
|||
|
DBCmd = "UPDATE " & applyOrderDB & " SET Shipment_Date = '" & nowToday & "', Invoice_Number = '" & txbInv.Text & "', Packing_Code = '" & txbMapPacking.Text & "', Serial_Number = " & packSerial & ", release_state = 'release' WHERE Order_Code = '" & txbMapState.Text & "' AND Item_Code = '" & ChkItemSet(itemInfoList.code, i) & "'"
|
|||
|
If DBCommand(DBCmd) = False Then
|
|||
|
MsgBox("데이터베이스에 없는 제품이 포함되어 있습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Next
|
|||
|
End If
|
|||
|
|
|||
|
Return False
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function setCodeDelete() As Boolean
|
|||
|
DBCmd = "DELETE FROM " & applyOrderDB & " WHERE Order_Code = '" & txbMapState.Text & "' AND Item_Code LIKE 'PK%'"
|
|||
|
If DBCommand(DBCmd) Then
|
|||
|
Return True
|
|||
|
Else
|
|||
|
MsgBox("세트 코드를 삭제하는 과정에서 오류가 발생하였습니다.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function setCodeInsert() As Boolean
|
|||
|
For i = 0 To defaultList.refer
|
|||
|
defaultData(i) = String.Empty
|
|||
|
Next
|
|||
|
|
|||
|
DBCmd = "SELECT DATE,Account_Code,Account_Name,Charge_Code,Warehouse,Orderer_Code,Orderer_Name,Country,Receiver_Name,Phone_Number,ZipCode,Address,Refer FROM " & applyOrderDB & " WHERE Order_Code = '" & txbMapState.Text & "' GROUP BY Order_Code"
|
|||
|
|
|||
|
If DBQueryReader(DBCmd) Then
|
|||
|
For i = 0 To sqlDataQuery.Length - 1
|
|||
|
If sqlDataQuery(i).ToString = "0" Then
|
|||
|
defaultData(i) = "NULL"
|
|||
|
Else
|
|||
|
defaultData(i) = Chr(39) & sqlDataQuery(i) & Chr(39)
|
|||
|
End If
|
|||
|
Next
|
|||
|
|
|||
|
Return True
|
|||
|
Else
|
|||
|
MsgBox("구매 고객에 대한 데이터가 존재하지 않습니다.", vbCritical)
|
|||
|
Return False
|
|||
|
End If
|
|||
|
End Function
|
|||
|
|
|||
|
Private Function statePackCompare() As Boolean
|
|||
|
If ChkItemSet.GetLength(1) = packItemSet.GetLength(1) Then
|
|||
|
If stateFullCount = packFullCount Then
|
|||
|
For pack = 0 To packItemSet.GetLength(1) - 1
|
|||
|
Dim checkOk As Boolean = False
|
|||
|
For chkState = 0 To ChkItemSet.GetLength(1) - 1
|
|||
|
|
|||
|
Dim packCodeData As String
|
|||
|
Dim packCode As String = packItemSet(itemInfoList.code, pack)
|
|||
|
Dim codeNum As Int16 = UBound(Split(packItemSet(itemInfoList.code, pack), "/"))
|
|||
|
|
|||
|
For i = 0 To codeNum
|
|||
|
If i = codeNum Then
|
|||
|
packCodeData = Mid(packCode, 1, packCode.Length)
|
|||
|
Else
|
|||
|
packCodeData = Mid(packCode, 1, InStr(packCode, "/") - 1)
|
|||
|
packCode = Mid(packCode, InStr(packCode, "/") + 1, packCode.Length)
|
|||
|
End If
|
|||
|
|
|||
|
If packCodeData = ChkItemSet(itemInfoList.code, chkState) Then
|
|||
|
If ChkItemSet(itemInfoList.count, chkState) = packItemSet(itemInfoList.count, pack) Then
|
|||
|
If ChkItemSet(itemInfoList.face, chkState) = packItemSet(itemInfoList.face, pack) Then
|
|||
|
If ChkItemSet(itemInfoList.eye, chkState) = packItemSet(itemInfoList.eye, pack) Then
|
|||
|
ChkItemSet(itemInfoList.type, chkState) = packItemSet(itemInfoList.pk_Type, pack)
|
|||
|
ChkItemSet(itemInfoList.serial, chkState) = packItemSet(itemInfoList.id_Serial, pack)
|
|||
|
checkOk = True
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
If checkOk = True Then
|
|||
|
Exit For
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
If checkOk = False Then
|
|||
|
For i = 0 To txbList.Eye
|
|||
|
txbArrayList(pack, i).BackColor = Color.Red
|
|||
|
Next
|
|||
|
gbMapPkInfo.BackColor = Color.Red
|
|||
|
MsgBox("맞지 않는 제품이 포장되어 있습니다. 확인하여 주십시오.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
Next
|
|||
|
|
|||
|
Return False
|
|||
|
Else
|
|||
|
For i = 0 To packItemSet.GetLength(1) - 1
|
|||
|
txbArrayList(i, txbList.Count).BackColor = Color.Red
|
|||
|
Next
|
|||
|
|
|||
|
gbMapPkInfo.BackColor = Color.Red
|
|||
|
MsgBox("전체 수량이 맞지 않습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
Else
|
|||
|
For i = 0 To packItemSet.GetLength(1) - 1
|
|||
|
txbArrayList(i, txbList.Count).BackColor = Color.Red
|
|||
|
Next
|
|||
|
|
|||
|
gbMapPkInfo.BackColor = Color.Red
|
|||
|
MsgBox("항목 개수가 맞지 않습니다.", vbCritical)
|
|||
|
Return True
|
|||
|
End If
|
|||
|
|
|||
|
End Function
|
|||
|
|
|||
|
|
|||
|
'---------------------------초기화------------------------------------------
|
|||
|
|
|||
|
Private Sub StateTxbClear(i As Int16)
|
|||
|
Dim FuncSwitch As Boolean = False
|
|||
|
Dim ctrlCount As Int16 = 0
|
|||
|
Dim NowTxbCount As Integer = 0
|
|||
|
|
|||
|
txbNameValue(i)
|
|||
|
|
|||
|
If i = funcList.search Then
|
|||
|
ctrlCount = txbList.Remove + 1
|
|||
|
NowTxbCount = (setPanel(i).Controls.Count - ctrlCount) / ctrlCount
|
|||
|
Else
|
|||
|
ctrlCount = txbList.Eye + 1
|
|||
|
NowTxbCount = setPanel(i).Controls.Count / ctrlCount
|
|||
|
End If
|
|||
|
|
|||
|
If NowTxbCount <> 0 Then
|
|||
|
FuncSwitch = True
|
|||
|
Else
|
|||
|
FuncSwitch = False
|
|||
|
End If
|
|||
|
|
|||
|
If FuncSwitch = True Then
|
|||
|
TxbClearFunc(i, setPanel(i), NowTxbCount)
|
|||
|
End If
|
|||
|
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub TxbClearFunc(setType As Int16, setpanel As Panel, txbCount As Integer)
|
|||
|
For i = txbCount - 1 To 0 Step -1
|
|||
|
|
|||
|
If setType = funcList.search Then
|
|||
|
setpanel.Controls(txbSetName(txbList.Name) & i).Dispose()
|
|||
|
setpanel.Controls(txbSetName(txbList.Count) & i).Dispose()
|
|||
|
setpanel.Controls(txbSetName(txbList.Face) & i).Dispose()
|
|||
|
setpanel.Controls(txbSetName(txbList.Eye) & i).Dispose()
|
|||
|
setpanel.Controls(txbSetName(txbList.Modify) & i).Dispose()
|
|||
|
setpanel.Controls(txbSetName(txbList.Remove) & i).Dispose()
|
|||
|
Else
|
|||
|
setpanel.Controls(txbSetName(txbList.Name) & i).Dispose()
|
|||
|
setpanel.Controls(txbSetName(txbList.Count) & i).Dispose()
|
|||
|
setpanel.Controls(txbSetName(txbList.Face) & i).Dispose()
|
|||
|
setpanel.Controls(txbSetName(txbList.Eye) & i).Dispose()
|
|||
|
End If
|
|||
|
Next
|
|||
|
End Sub
|
|||
|
|
|||
|
|
|||
|
Private Sub compareClear()
|
|||
|
compareValueClean()
|
|||
|
compareTxbClean()
|
|||
|
compareTxbRefresh()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub compareTxbRefresh()
|
|||
|
txbChkState.Refresh()
|
|||
|
txbChkCode.Refresh()
|
|||
|
txbChkOrderer.Refresh()
|
|||
|
txbChkAcc.Refresh()
|
|||
|
txbChkDate.Refresh()
|
|||
|
txbChkRefer.Refresh()
|
|||
|
txbChkAD.Refresh()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub compareTxbClean()
|
|||
|
txbChkState.Text = Nothing
|
|||
|
txbChkCode.Text = Nothing
|
|||
|
txbChkOrderer.Text = Nothing
|
|||
|
txbChkAcc.Text = Nothing
|
|||
|
txbChkDate.Text = Nothing
|
|||
|
txbChkRefer.Text = Nothing
|
|||
|
txbChkAD.Text = Nothing
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub compareValueClean()
|
|||
|
|
|||
|
If rdbState.Checked = True Then
|
|||
|
ReDim ChkItemSet(0, 0)
|
|||
|
ReDim packItemSet(0, 0)
|
|||
|
ReDim apiItemSet(0, 0)
|
|||
|
Else
|
|||
|
ReDim ChkItemSet(0, 0)
|
|||
|
ReDim packItemSet(0, 0)
|
|||
|
setCodeUse = False
|
|||
|
txbInv.BackColor = SystemColors.Window
|
|||
|
txbInv.Text = String.Empty
|
|||
|
End If
|
|||
|
|
|||
|
stateFullCount = 0
|
|||
|
packFullCount = 0
|
|||
|
setCodeUse = False
|
|||
|
|
|||
|
For i = 0 To ProdSelect.Length - 1
|
|||
|
ProdSelect(i) = Nothing
|
|||
|
Next
|
|||
|
|
|||
|
For i = 0 To pSerialData.Length - 1
|
|||
|
pSerialData(i) = Nothing
|
|||
|
Next
|
|||
|
|
|||
|
For i = 0 To chkItem.Length - 1
|
|||
|
chkItem(i) = Nothing
|
|||
|
Next
|
|||
|
End Sub
|
|||
|
|
|||
|
'-------------------api 로그인------------------------------
|
|||
|
|
|||
|
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
|
|||
|
If loginState = False Then
|
|||
|
If loginForm.ShowDialog = DialogResult.OK Then
|
|||
|
loginState = True
|
|||
|
ckbAPIUse.Checked = True
|
|||
|
ckbAPIUse.Enabled = True
|
|||
|
lbAPIUse.Text = "ON"
|
|||
|
btnLogin.Text = "LogOut"
|
|||
|
Else
|
|||
|
loginState = False
|
|||
|
End If
|
|||
|
Else
|
|||
|
loginState = False
|
|||
|
ckbAPIUse.Checked = False
|
|||
|
ckbAPIUse.Enabled = False
|
|||
|
lbAPIUse.Text = "OFF"
|
|||
|
btnLogin.Text = "Login"
|
|||
|
End If
|
|||
|
resetFunc()
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
|
|||
|
'-----------------상단 버튼류 기능----------------------
|
|||
|
|
|||
|
Private Sub rdbState_CheckedChanged(sender As Object, e As EventArgs) Handles rdbState.CheckedChanged
|
|||
|
If rdbState.Checked = True Then
|
|||
|
pnOrderCheck.Visible = True
|
|||
|
pnOrderCheck.Location = New Point(2, 196)
|
|||
|
pnPacking.Visible = False
|
|||
|
gbMapOption.Visible = False
|
|||
|
pnMass.Visible = False
|
|||
|
gb_map_state.BackColor = SystemColors.Control
|
|||
|
rdbStatePack.Checked = False
|
|||
|
End If
|
|||
|
|
|||
|
resetFunc()
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub rdbMap_CheckedChanged(sender As Object, e As EventArgs) Handles rdbMap.CheckedChanged
|
|||
|
If rdbMap.Checked = True Then
|
|||
|
pnOrderCheck.Visible = False
|
|||
|
pnPacking.Visible = True
|
|||
|
pnPacking.Location = New Point(2, 196)
|
|||
|
pnMass.Visible = False
|
|||
|
gbMapOption.Visible = True
|
|||
|
rdbStatePack.Checked = True
|
|||
|
End If
|
|||
|
|
|||
|
resetFunc()
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub rdbMass_CheckedChanged(sender As Object, e As EventArgs) Handles rdbMass.CheckedChanged
|
|||
|
If rdbMass.Checked = True Then
|
|||
|
pnOrderCheck.Visible = False
|
|||
|
pnPacking.Visible = False
|
|||
|
pnMass.Location = New Point(2, 196)
|
|||
|
pnMass.Visible = True
|
|||
|
gbMapOption.Visible = False
|
|||
|
rdbStatePack.Checked = False
|
|||
|
End If
|
|||
|
|
|||
|
ckbBarcode.Checked = False
|
|||
|
ckbBarcode.Checked = True
|
|||
|
|
|||
|
MassReset()
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub ckbBarcode_CheckedChanged(sender As Object, e As EventArgs) Handles ckbBarcode.CheckedChanged
|
|||
|
If ckbBarcode.Checked = True Then
|
|||
|
ckbAuto.Checked = True
|
|||
|
ckbAuto.Enabled = True
|
|||
|
Else
|
|||
|
ckbAuto.Checked = False
|
|||
|
ckbAuto.Enabled = False
|
|||
|
End If
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub ckbAuto_CheckedChanged(sender As Object, e As EventArgs) Handles ckbAuto.CheckedChanged
|
|||
|
|
|||
|
|
|||
|
If ckbAuto.Checked = True Then
|
|||
|
btnSearch.Visible = False
|
|||
|
btnSearch.Location = New Point(1365, 90)
|
|||
|
pnBarcode.Location = New Point(245, 80)
|
|||
|
btnReset.Location = New Point(1365, 90)
|
|||
|
Else
|
|||
|
btnSearch.Visible = True
|
|||
|
btnSearch.Location = New Point(1365, 90)
|
|||
|
pnBarcode.Location = New Point(245, 80)
|
|||
|
btnReset.Location = New Point(1555, 90)
|
|||
|
End If
|
|||
|
|
|||
|
'If rdbMass.Checked = True Then
|
|||
|
' If ckbAuto.Checked = True Then
|
|||
|
' btnSearch.Visible = False
|
|||
|
' btnSearch.Location = New Point(930, 90)
|
|||
|
' pnBarcode.Location = New Point(0, 80)
|
|||
|
' btnReset.Location = New Point(930, 90)
|
|||
|
' Else
|
|||
|
' btnSearch.Visible = True
|
|||
|
' btnSearch.Location = New Point(930, 90)
|
|||
|
' pnBarcode.Location = New Point(0, 80)
|
|||
|
' btnReset.Location = New Point(1115, 90)
|
|||
|
' End If
|
|||
|
'Else
|
|||
|
'End If
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub rdbStateInv_CheckedChanged(sender As Object, e As EventArgs) Handles rdbStateInv.CheckedChanged
|
|||
|
If rdbStateInv.Checked = True Then
|
|||
|
gbMapPacking.Enabled = False
|
|||
|
ptbLogo.Location = New Point(954, 638)
|
|||
|
gbInvoice.Location = New Point(3, 622)
|
|||
|
End If
|
|||
|
|
|||
|
resetFunc()
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub rdbStatePack_CheckedChanged(sender As Object, e As EventArgs) Handles rdbStatePack.CheckedChanged
|
|||
|
If rdbStatePack.Checked = True Then
|
|||
|
gbMapPacking.Enabled = True
|
|||
|
ptbLogo.Location = New Point(3, 638)
|
|||
|
gbInvoice.Location = New Point(954, 622)
|
|||
|
End If
|
|||
|
|
|||
|
resetFunc()
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub resetFunc()
|
|||
|
txbStateRead.BackColor = SystemColors.Window
|
|||
|
txbStateRead.Text = String.Empty
|
|||
|
|
|||
|
compareValueClean()
|
|||
|
compareClear()
|
|||
|
|
|||
|
If rdbMass.Checked = True Then
|
|||
|
MassReset()
|
|||
|
Else
|
|||
|
mappingReset()
|
|||
|
End If
|
|||
|
|
|||
|
For i = 0 To funcList.mappack
|
|||
|
StateTxbClear(i)
|
|||
|
Next
|
|||
|
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click
|
|||
|
resetFunc()
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub txbChkState_GotFocus(sender As Object, e As EventArgs) Handles txbChkState.GotFocus, txbChkCode.GotFocus, txbChkOrderer.GotFocus, txbChkAcc.GotFocus, txbChkDate.GotFocus, txbChkRefer.GotFocus, txbChkAD.GotFocus, txbMapState.GotFocus, txbMapDate.GotFocus, txbMapOrder.GotFocus, txbMapAccount.GotFocus, txbMapRefer.GotFocus, txbMapPacking.GotFocus, txbMapPkDate.GotFocus, txbInv.GotFocus, txbMsState.GotFocus, txbMsDate.GotFocus, txbMsOrder.GotFocus, txbMsAccount.GotFocus, txbMsRefer.GotFocus, txbMsPacking.GotFocus, txbLabelCode.GotFocus, txbMsPkDate.GotFocus, txbRequest.GotFocus, txbWork.GotFocus, txbLeftOver.GotFocus
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub ckbAPIUse_CheckedChanged(sender As Object, e As EventArgs) Handles ckbAPIUse.CheckedChanged
|
|||
|
txbStateRead.Focus()
|
|||
|
End Sub
|
|||
|
|
|||
|
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
|
|||
|
End
|
|||
|
End Sub
|
|||
|
End Class
|