﻿Imports System
Imports System.Linq
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Imports Bt
Imports Bt.ScanLib
'Imports KDPP7000.BtScanLib
Imports BTClientLib
Imports System.IO
Imports System.Reflection
Imports BtScan2

Public Class frm7013
    Inherits System.Windows.Forms.Form
    Private btScanLib As BtScanLib
    Private scanHandler As Boolean = False
    'Private dbClient As BtrieveDbClient
    Private tmpStr As List(Of Dictionary(Of String, String))
    Private affected_rows As Integer

#Region " Windows tH[€ fUCiลถฌณ๊ฝR[h "

    Public Sub New()
        MyBase.New()

        ' ฑฬฤัoตอ Windows tH[€ fUCiล•K—vลทB
        InitializeComponent()

        ' InitializeComponent() ฤัoตฬใษ๚ป๐’วมตทB

    End Sub

    ' Form อAR“|[l“g๊——ษใ—๐ภsท้ฝ฿ษ dispose ๐I[o[ChตทB
    'Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    '    If disposing Then
    '        If Not (components Is Nothing) Then
    '            components.Dispose()
    '        End If
    '    End If
    '    MyBase.Dispose(disposing)
    'End Sub

    ' Windows tH[€ fUCiล•K—vลทB
    'Private components As System.ComponentModel.IContainer

    '  : ศบฬvV[WอAWindows tH[€ fUCiล•K—vลทB
    'Windows tH[€ fUCi๐gมฤ•ฯXตฤญพณขB  
    ' R[h GfB^๐gมฤ•ฯXตศขลญพณขB
    'Friend WithEvents WarpHWBcr1 As WarpControl.WarpHWBcr
    'Friend WithEvents WarpBox1 As WarpControl.WarpBox
    'Friend WithEvents WarpFrame1 As WarpControl.WarpFrame
    'Friend WithEvents wfName As WarpControl.WarpField
    'Friend WithEvents wfSection As WarpControl.WarpField
    'Friend WithEvents wfInput As WarpControl.WarpField
    'Friend WithEvents wfTitle As WarpControl.WarpField
    '<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    '    Me.WarpFrame1 = New WarpControl.WarpFrame()
    '    Me.wfTitle = New WarpControl.WarpField()
    '    Me.wfInput = New WarpControl.WarpField()
    '    Me.wfSection = New WarpControl.WarpField()
    '    Me.wfName = New WarpControl.WarpField()
    '    Me.WarpBox1 = New WarpControl.WarpBox()
    '    Me.WarpHWBcr1 = New WarpControl.WarpHWBcr()
    '    Me.WarpFrame1.SuspendLayout()
    '    Me.SuspendLayout()
    '    '
    '    'WarpFrame1
    '    '
    '    Me.WarpFrame1.Controls.Add(Me.wfTitle)
    '    Me.WarpFrame1.Controls.Add(Me.wfInput)
    '    Me.WarpFrame1.Controls.Add(Me.wfSection)
    '    Me.WarpFrame1.Controls.Add(Me.wfName)
    '    Me.WarpFrame1.Controls.Add(Me.WarpBox1)
    '    Me.WarpFrame1.Font = New System.Drawing.Font("MS UI Gothic", 9.0!)
    '    Me.WarpFrame1.Location = New System.Drawing.Point(0, 0)
    '    Me.WarpFrame1.Name = "WarpFrame1"
    '    Me.WarpFrame1.Size = New System.Drawing.Size(240, 296)
    '    Me.WarpFrame1.TabIndex = 1
    '    Me.WarpFrame1.UseMacro = False
    '    Me.WarpFrame1.UseMacroFileName = ""
    '    '
    '    'wfTitle
    '    '
    '    Me.wfTitle.DecimalPointPosition = CType(0, Short)
    '    Me.wfTitle.Font = New System.Drawing.Font("lr SVbN", 28.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel)
    '    Me.wfTitle.FontSize = WarpControl.FontSizes.Small
    '    Me.wfTitle.Format = ""
    '    Me.wfTitle.Length = CType(15, Short)
    '    Me.wfTitle.Location = New System.Drawing.Point(7, 18)
    '    Me.wfTitle.MacroBcr = ""
    '    Me.wfTitle.MacroIn = ""
    '    Me.wfTitle.MacroKey = ""
    '    Me.wfTitle.MacroOut = ""
    '    Me.wfTitle.Name = "wfTitle"
    '    Me.wfTitle.Size = New System.Drawing.Size(225, 30)
    '    Me.wfTitle.TabIndex = CType(4, Short)
    '    '
    '    'wfInput
    '    '
    '    Me.wfInput.BcrFlag = True
    '    Me.wfInput.DecimalPointPosition = CType(0, Short)
    '    Me.wfInput.Font = New System.Drawing.Font("lr SVbN", 33.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel)
    '    Me.wfInput.Format = ""
    '    Me.wfInput.InputMode.Secret = True
    '    Me.wfInput.Length = CType(1, Short)
    '    Me.wfInput.Location = New System.Drawing.Point(204, 132)
    '    Me.wfInput.MacroBcr = ""
    '    Me.wfInput.MacroIn = ""
    '    Me.wfInput.MacroKey = ""
    '    Me.wfInput.MacroOut = ""
    '    Me.wfInput.Name = "wfInput"
    '    Me.wfInput.Size = New System.Drawing.Size(18, 36)
    '    Me.wfInput.TabIndex = CType(3, Short)
    '    '
    '    'wfSection
    '    '
    '    Me.wfSection.DecimalPointPosition = CType(0, Short)
    '    Me.wfSection.Font = New System.Drawing.Font("lr SVbN", 28.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel)
    '    Me.wfSection.FontSize = WarpControl.FontSizes.Small
    '    Me.wfSection.Format = ""
    '    Me.wfSection.Length = CType(15, Short)
    '    Me.wfSection.Location = New System.Drawing.Point(7, 72)
    '    Me.wfSection.MacroBcr = ""
    '    Me.wfSection.MacroIn = ""
    '    Me.wfSection.MacroKey = ""
    '    Me.wfSection.MacroOut = ""
    '    Me.wfSection.Name = "wfSection"
    '    Me.wfSection.Size = New System.Drawing.Size(225, 30)
    '    Me.wfSection.TabIndex = CType(2, Short)
    '    '
    '    'wfName
    '    '
    '    Me.wfName.DecimalPointPosition = CType(0, Short)
    '    Me.wfName.Font = New System.Drawing.Font("lr SVbN", 22.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel)
    '    Me.wfName.FontSize = WarpControl.FontSizes.Small2
    '    Me.wfName.Format = ""
    '    Me.wfName.Length = CType(20, Short)
    '    Me.wfName.Location = New System.Drawing.Point(0, 216)
    '    Me.wfName.MacroBcr = ""
    '    Me.wfName.MacroIn = ""
    '    Me.wfName.MacroKey = ""
    '    Me.wfName.MacroOut = ""
    '    Me.wfName.Name = "wfName"
    '    Me.wfName.Size = New System.Drawing.Size(240, 24)
    '    Me.wfName.TabIndex = CType(1, Short)
    '    '
    '    'WarpBox1
    '    '
    '    Me.WarpBox1.BoxType = WarpControl.BoxTypes.Box
    '    Me.WarpBox1.DrawMode = WarpControl.DrawModes.Paint
    '    Me.WarpBox1.Font = New System.Drawing.Font("lr SVbN", 33.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel)
    '    Me.WarpBox1.ForeColor = CType(15, Short)
    '    Me.WarpBox1.Image = "C:\H081-0070.jpg"
    '    Me.WarpBox1.Location = New System.Drawing.Point(0, 192)
    '    Me.WarpBox1.Name = "WarpBox1"
    '    Me.WarpBox1.Size = New System.Drawing.Size(240, 24)
    '    Me.WarpBox1.TabIndex = 0
    '    Me.WarpBox1.Text = "WarpBox1"
    '    '
    '    'WarpHWBcr1
    '    '
    '    Me.WarpHWBcr1.Decode.Code39 = True
    '    Me.WarpHWBcr1.DiscreteFirstLen = CType(0, Short)
    '    Me.WarpHWBcr1.DiscreteSecondLen = CType(0, Short)
    '    Me.WarpHWBcr1.InterleavedFirstLen = CType(0, Short)
    '    Me.WarpHWBcr1.InterleavedSecondLen = CType(0, Short)
    '    '
    '    'frm7013
    '    '
    '    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 12)
    '    Me.ClientSize = New System.Drawing.Size(240, 296)
    '    Me.Controls.Add(Me.WarpFrame1)
    '    Me.Font = New System.Drawing.Font("MS UI Gothic", 9.0!)
    '    Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
    '    Me.Name = "frm7013"
    '    Me.Text = "Form2"
    '    Me.WarpFrame1.ResumeLayout(False)
    '    Me.ResumeLayout(False)

    'End Sub

#End Region

    Public Enum M7013_STATUS As Integer
        INIT = 0
        MENUBACK = 1
        SHUTDOWN = 2
        NOTG = 3
        NOTEXIST = 4
        DONE = 5
        NOTCD = 6
    End Enum

    Public mint7013status As Integer

    Private Sub frm7013_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        Select Case e.KeyCode.ToString()
            Case "Return"
                Exit Sub
            Case "F1"
            Case "F2"
                gintStatus = OTR_STATUS.QUIT
                Me.Close()
                Exit Sub
        End Select
    End Sub

    Private Sub frm7013_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '// Case QVGA -> resolution to 1/2
        If System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width = 240 Then
            Call resolution.VGAtoQVGA(Me)
        End If

        Dim wstrImage As String
        Dim rtn As Integer

        Try
            mint7013status = M7013_STATUS.INIT

            't[€ฬI[v“
            'rtn = WarpFrame1.Open
            'If (rtn <> 0) Then
            '    Err.Raise(vbObjectError + 1, gAppName, "WarpError")
            'End If

#If Not Debug Then
            'sSetImgFName(G_CONST_MID_H0370, WarpBox1) 
#End If
            sDisp7013()
            ' tH[€EC“ ภs
            sMain()

            ' t[€ฬN[Y
            'rtn = WarpFrame1.Close()
            'If (rtn <> 0) Then
            '    Err.Raise(vbObjectError + 1, gAppName, "WarpError")
            'End If

            ' tH[€EN[Y
            'Me.Close()

            Exit Sub


        Catch ex As Exception

        End Try

    End Sub
    '/*
    '|| ึ”–ผFsDisp7013
    '|| T—v  F7013ๆ–ส•\ฆ
    '*/
    Private Sub sDisp7013()

        'wfTitle.Puts(gstrctKDHT.strTitle)
        'wfSection.Puts(gstrctKDPP.strSectionName)
        'wfName.Puts(gstrctKDHT.strUserName)

        wfTitle.Text = gstrctKDHT.strTitle
        wfName.Text = gstrctKDHT.strUserName

    End Sub

    Private Sub btScanLib_OnScan(ByVal result As String)
        Dim buf As String = result
        Dim rtn As Integer
        Dim rtn2 As Integer

        If (Not fCheckCode(buf)) Then
            sBeepSound(modPublicHT.BEEP_TYPE.A, modPublicHT.BEEP_SELECTION.NG)
#If Not Debug Then
                        fFnc_WrpMsg("E", G_CONST_MID_E7E85)
#End If
            Exit Sub
        End If

        '“—อ—
        rtn = fProcInput(RTrim(buf))

        If rtn = 0 Then
            Select Case mint7013status
                Case M7013_STATUS.INIT

                    RemoveHandler btScanLib.OnScan, AddressOf btScanLib_OnScan
                    btScanLib.Disable()

                    gintStatus = OTR_STATUS.CLSCAN
                    Me.Close()
                    Exit Sub

                Case M7013_STATUS.MENUBACK          'HTCTRL.ExeName๐มตฤI—น

                    RemoveHandler btScanLib.OnScan, AddressOf btScanLib_OnScan
                    btScanLib.Disable()

                    gintStatus = OTR_STATUS.NAME
                    Me.Close()
                    Exit Sub

                Case M7013_STATUS.SHUTDOWN          'HTCTRL.ExeName๐มตฤI—น
                    sFinishApp()
                    gintStatus = OTR_STATUS.QUIT
                    Me.Close()
                    Exit Sub

                Case M7013_STATUS.DONE              'ณํษQฦลซฝ
                    If gstrctKDPP.bTroubleB Then
                        gstrctKDPP.bTroubleB = False
                        gstrctKDPP.intIndex = 0
                        rtn2 = fSrchPackCP4Ohmono(2)
                        If rtn2 = -1 Then
                            'f0.WarpCtrl1.MessageBox(G_CONST_EMT_DB, G_CONST_EM_DB, MWA_DB_WARNING, MWA_DB_OK)
                            'f0.WarpCtrl1.MessageBox(G_CONST_EMT_DB, fEditErrorInfo(gclsDB.BtriveStatus, gclsDB.ErrFile), MWA_DB_WARNING, MWA_DB_OK)
                            MessageBox.Show(G_CONST_EM_DB, G_CONST_EMT_DB, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)

                            RemoveHandler btScanLib.OnScan, AddressOf btScanLib_OnScan
                            btScanLib.Disable()

                            gintStatus = OTR_STATUS.CLABEL
                            Me.Close()
                            Exit Sub
                        ElseIf rtn2 = -2 Then '•AใAf[^ช–ณข๊อ๓—ึ

                            RemoveHandler btScanLib.OnScan, AddressOf btScanLib_OnScan
                            btScanLib.Disable()

                            gintStatus = OTR_STATUS.PRINT
                            Me.Close()
                            Exit Sub
                        End If
                        '•AใA‘ฮf[^ช ้๊อXL“ึ

                        RemoveHandler btScanLib.OnScan, AddressOf btScanLib_OnScan
                        btScanLib.Disable()

                        gintStatus = OTR_STATUS.PART
                        Me.Close()
                    Else

                        RemoveHandler btScanLib.OnScan, AddressOf btScanLib_OnScan
                        btScanLib.Disable()

                        gintStatus = OTR_STATUS.CLABEL
                        Me.Close()
                    End If
                Case M7013_STATUS.NOTCD             'XL“f[^~X
                    sBeepSound(modPublicHT.BEEP_TYPE.A, modPublicHT.BEEP_SELECTION.NG)
                    sOutputLog(gstrctPicsIni.strOutput_KDPP, "KDPP7E13", G_CONST_BC_IP, buf)
                    fFnc_WrpMsg("E", G_CONST_MID_E7E85)
            End Select

        Else

            'f0.WarpCtrl1.MessageBox(G_CONST_EMT_DB, G_CONST_EM_DB, MWA_DB_WARNING, MWA_DB_OK)
            'f0.WarpCtrl1.MessageBox(G_CONST_EMT_DB, fEditErrorInfo(gclsDB.BtriveStatus, gclsDB.ErrFile), MWA_DB_WARNING, MWA_DB_OK)
            MessageBox.Show(G_CONST_EM_DB, G_CONST_EMT_DB, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)

        End If


    End Sub



    ' t[€EC“
    Public Sub sMain()

        '        Dim WKey As Short
        '        Dim buf As String
        '        Dim rtn As Integer
        '        Dim rtn2 As Integer

        '        Try

        '            ' t[€ฬ—๐ฑฑษLqตทB
        '            Do While (True)

        '                ' R[h“—อ
        '                WKey = WarpFrame1.Input(wfInput)

        '                If WKey = WKY_ENT Then

        '                    'fSakusei2()

        '                ElseIf WKey = WKY_BCR Then

        '                    'สฐบฐฤ“—อฬๆ“พ
        '                    rtn = WarpHWBcr1.Get(buf)
        '                    sBeepSound(modPublicHT.BEEP_TYPE.A, modPublicHT.BEEP_SELECTION.OK)
        '                    If (rtn <> 0) Then
        '                        Err.Raise(vbObjectError + 1, gAppName, "WarpError")
        '                    End If

        '                    'มชฏธรจผฏฤ
        '                    If (Not fCheckCode(buf)) Then
        '                        sBeepSound(modPublicHT.BEEP_TYPE.A, modPublicHT.BEEP_SELECTION.NG)
        '#If Not Debug Then
        '                        fFnc_WrpMsg("E", G_CONST_MID_E7E85)
        '#End If
        '                        Exit Do
        '                    End If

        '                    '“—อ—
        '                    rtn = fProcInput(RTrim(buf))

        '                    If rtn = 0 Then
        '                        Select Case mint7013status
        '                            Case M7013_STATUS.INIT
        '                                gintStatus = OTR_STATUS.CLSCAN

        '                            Case M7013_STATUS.MENUBACK          'HTCTRL.ExeName๐มตฤI—น
        '                                gintStatus = OTR_STATUS.NAME

        '                            Case M7013_STATUS.SHUTDOWN          'HTCTRL.ExeName๐มตฤI—น
        '                                sFinishApp()
        '                                gintStatus = OTR_STATUS.QUIT

        '                            Case M7013_STATUS.DONE              'ณํษQฦลซฝ
        '                                If gstrctKDPP.bTroubleB Then
        '                                    gstrctKDPP.bTroubleB = False
        '                                    gstrctKDPP.intIndex = 0
        '                                    rtn2 = fSrchPackCP4Ohmono(2)
        '                                    If rtn2 = -1 Then
        '                                        'f0.WarpCtrl1.MessageBox(G_CONST_EMT_DB, G_CONST_EM_DB, MWA_DB_WARNING, MWA_DB_OK)
        '                                        f0.WarpCtrl1.MessageBox(G_CONST_EMT_DB, fEditErrorInfo(gclsDB.BtriveStatus, gclsDB.ErrFile), MWA_DB_WARNING, MWA_DB_OK)
        '                                        gintStatus = OTR_STATUS.CLABEL
        '                                        Exit Sub
        '                                    ElseIf rtn2 = -2 Then '•AใAf[^ช–ณข๊อ๓—ึ
        '                                        gintStatus = OTR_STATUS.PRINT
        '                                        Exit Sub
        '                                    End If
        '                                    '•AใA‘ฮf[^ช ้๊อXL“ึ
        '                                    gintStatus = OTR_STATUS.PART
        '                                Else
        '                                    gintStatus = OTR_STATUS.CLABEL
        '                                End If
        '                            Case M7013_STATUS.NOTCD             'XL“f[^~X
        '                                sBeepSound(modPublicHT.BEEP_TYPE.A, modPublicHT.BEEP_SELECTION.NG)
        '                                sOutputLog(gstrctPicsIni.strOutput_KDPP, "KDPP7E13", G_CONST_BC_IP, buf)
        '                                fFnc_WrpMsg("E", G_CONST_MID_E7E85)
        '                        End Select

        '                    Else

        '                        'f0.WarpCtrl1.MessageBox(G_CONST_EMT_DB, G_CONST_EM_DB, MWA_DB_WARNING, MWA_DB_OK)
        '                        f0.WarpCtrl1.MessageBox(G_CONST_EMT_DB, fEditErrorInfo(gclsDB.BtriveStatus, gclsDB.ErrFile), MWA_DB_WARNING, MWA_DB_OK)

        '                    End If
        '                    Exit Do

        '                ElseIf WKey = WKY_F1 Then


        '                ElseIf WKey = WKY_F2 Then


        '                ElseIf WKey = WKY_ERROR Then

        '                    f0.WarpCtrl1.MessageBox(G_CONST_EMT_WARP, G_CONST_EM_WARP, MWA_DB_WARNING, MWA_DB_OK)

        '                End If

        '            Loop

        '            Exit Sub

        '        Catch ex As Exception
        '            'gintStatus = OTR_STATUS.QUIT
        '            sErrLog(gAppName, "sMain", ex.ToString)
        '        End Try

    End Sub
    '/*
    '|| ึ”–ผFfProcInput
    '|| T—v  F“—อ—
    '*/
    Private Function fProcInput(ByVal pstrInput As String) As Integer

        Dim rtn As Integer
        Dim wstrEmplCode As String
        Dim wstrSecKey(2) As String
        Dim wstrSecKeyValue(2) As String
        Dim wstrCenterCode As String
        Dim wintCnt As Integer
        Dim wintCnt2 As Integer
        Dim wstrSendIPAddress As String
        Dim wstrWhere As String
        Dim wstrKey(0) As String, wstrKeyValue(0) As String

        fProcInput = -1

        Try


            If pstrInput = "OCMENUBACK" Then             'OCMENUBACKศ็ฮ

                mint7013status = M7013_STATUS.MENUBACK
                fProcInput = 0
                Exit Function

            ElseIf pstrInput = "OCSHUTDOWN" Then             'OCSHUTDOWNศ็ฮ

                mint7013status = M7013_STATUS.SHUTDOWN
                fProcInput = 0
                Exit Function

            ElseIf pstrInput.StartsWith("OP") Then        'ๆ“ชชOPศ็ฮ
                If pstrInput = "OP999999999999" Then

                    'G[—
                    mint7013status = M7013_STATUS.NOTCD
                Else
                    If pstrInput.Length = 14 Then
                        'b•[o—อๆAhX•าW

                        'wstrSendIPAddress = Mid(pstrInput, 3)
                        'If fEditIPAddress(wstrSendIPAddress) = 0 Then
                        '    gstrctKDPP.strIPAddress = wstrSendIPAddress
                        '    mint7013status = M7013_STATUS.DONE
                        '    fProcInput = 0
                        'Else
                        '    mint7013status = M7013_STATUS.NOTCD
                        '    fProcInput = 0
                        '    Exit Function
                        'End If
                        gstrctKDPP.strIPAddress = Mid(pstrInput, 3)
                        mint7013status = M7013_STATUS.DONE
                        fProcInput = 0
                    Else
                        'x•sณ
                        mint7013status = M7013_STATUS.NOTCD
                        fProcInput = 0
                        Exit Function
                    End If
                End If
                fProcInput = 0
                Exit Function
            Else
                mint7013status = M7013_STATUS.NOTCD
                fProcInput = 0
                Exit Function
            End If

        Catch ex As Exception
            sErrLog(gAppName, "fProcInput", ex.ToString)
        End Try

    End Function
    ''/*
    ''|| ึ”–ผFfEditIPAddress
    ''|| T—v  FIPAhX•าW
    ''|| ๘”@FIPAhX
    ''|| –฿่’lF-1(NG)   0(OK)  
    ''*/
    'Private Function fEditIPAddress(ByRef pstrIPAddress As String) As Integer
    '    Dim wstrIP As String
    '    fEditIPAddress = -1
    '    Try
    '        If Not IsNumeric(pstrIPAddress) Then Exit Function
    '        wstrIP = fIntZerosapress(Mid(pstrIPAddress, 1, 3)) & "." & fIntZerosapress(Mid(pstrIPAddress, 4, 3)) & "." _
    '          & fIntZerosapress(Mid(pstrIPAddress, 7, 3)) & "." & fIntZerosapress(Mid(pstrIPAddress, 10, 3))

    '        pstrIPAddress = wstrIP

    '        fEditIPAddress = 0
    '    Catch ex As Exception
    '        sErrLog(gAppName, "fEditIPAddress", ex.ToString)
    '    End Try
    'End Function

    Private Sub frm7013_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
        ' Enable BTScanLib
        If Not scanHandler Then
            btScanLib = btScanLib.getInstance()
            AddHandler btScanLib.OnScan, AddressOf btScanLib_OnScan
            scanHandler = True
            btScanLib.Debug = False
            btScanLib.Enable()
        End If
    End Sub
End Class
