Module SQL_LINE
    '---------------LINE中控-----------------------
    '------LINE變數-------
    Public 發送對象, LINE_權限代號, PA201, PA202, PA203, PA204, PA205, 通知變數X, 通知變數Y As String
    Public LINE_公司名稱 As String = "FH"
    Public ConStringLINE As String
    Public LINE_權限數量 As Integer = 61
    Public linecc(61) As Boolean
    Public LINE_系統權限 As String = "CC200,CC201,CC202,CC203,CC204,CC205,CC206,CC207,CC208,CC209,CC210,CC211,CC212,CC213,CC212,CC215,CC216,CC217,
                                            CC218,CC219,CC220,CC221,CC222,CC223,CC224,CC225,CC226,CC227,CC228,CC229,CC230,CC231,CC232,CC233,CC234,CC235,CC236,CC237,
                                            CC238,CC239,CC240,CC241,CC242,CC243,CC244,CC245,CC246,CC247,CC248,CC249,CC250,CC251,CC252,CC253,CC254,CC255,CC256,CC257,
                                            CC258,CC259,CC260"
    Public LINE_登入權限 As String = "姓名, 帳號 AS 公司名稱,token,通知語言,電話號碼1,電話號碼2,電話號碼3,Line,WhatsApp,Message," & LINE_系統權限
    Public LINE_登入權限_IN As String = "姓名, 帳號 ,token,通知語言,電話號碼1,電話號碼2,電話號碼3,Line,WhatsApp,Message," & LINE_系統權限
    Public LINE_登入權限2 As String = "使用者權限管理表_1.姓名, 使用者權限管理表_1.帳號, 使用者權限管理表.token, 使用者權限管理表.通知語言, 使用者權限管理表.電話號碼1, 
                                       使用者權限管理表.電話號碼2, 使用者權限管理表.電話號碼3, 使用者權限管理表.Line, 使用者權限管理表.WhatsApp, 使用者權限管理表.Message," & LINE_系統權限
    Friend Sub SQL_連線字串_測試_LINE_SQL()
        ConStringLINE = "Data Source=mssql-147629-0.cloudclusters.net,12711;Initial Catalog=GCM-SCADA;Persist Security Info=True;User ID=b70340;Password=Lee0911274990;Max pool size = 200; Connection Timeout=0"
    End Sub
    Friend Sub ConnOpen_LINE_SQL()
        SQL_連線字串_測試_LINE_SQL()
        conn.Close() : If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConStringLINE : conn.Open() : End If
    End Sub
    Public Sub LIN訊息通知(ByVal 代號 As String, ByVal 對象 As String, Optional ByVal 變數X As String = "", Optional ByVal 變數Y As String = "")
        LINE_權限代號 = 代號 : 發送對象 = 對象 : 通知變數X = 變數X : 通知變數Y = 變數Y : LINE_通知模塊()
    End Sub
    '=====LINE_權限代號 = "CC207" : 發送對象 = "tltony1234" : 通知變數X = "王詩文" : 通知變數Y = "9/7號" : LINE_通知模塊()=====
    Friend Sub SQL_系統使用者_清單()
        ConnOpen()
        SQL1 = "SELECT   姓名 FROM    使用者權限管理表   ORDER BY   姓名"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_LINE使用者_清單()
        ConnOpen_LINE_SQL()
        SQL1 = "SELECT   " & LINE_登入權限 & "  FROM LINE_使用者權限管理表 WHERE 帳號 LIKE N'" & LINE_公司名稱 & "'  ORDER BY  姓名"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_LINE權限一覽_dgv_清單()
        ConnOpen_LINE_SQL()
        SQL1 = "SELECT   權限代號, 權限名稱  FROM LINE_權限一覽表 WHERE (權限名稱 LIKE N'WS%') OR (權限名稱 LIKE N'GCM%') ORDER BY 權限代號"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_LINE_新增使用者資料()
        ConnOpen_LINE_SQL()
        SQL1 = "INSERT INTO LINE_使用者權限管理表 (" & LINE_登入權限_IN & ") 
                VALUES (N'" & LINE_使用者管理表.姓名_tb.Text & "', N'" & LINE_公司名稱 & "', N'" & LINE_使用者管理表.token_tb.Text &
                "',N'" & LINE_使用者管理表.通知語言_cb.Text & "',N'" & LINE_使用者管理表.電話號碼1_tb.Text & "',N'" & LINE_使用者管理表.電話號碼2_tb.Text &
                "',N'" & LINE_使用者管理表.電話號碼3_tb.Text & "',N'" & LINE_使用者管理表.Line_cb.Checked & "',N'" & LINE_使用者管理表.WhatsApp_cb.Checked &
                "',N'" & LINE_使用者管理表.Message_cb.Checked &
                "','" & linecc(0) & "','" & linecc(1) & "','" & linecc(2) & "','" & linecc(3) & "','" & linecc(4) & "','" & linecc(5) & "','" & linecc(6) & "','" & linecc(7) & "','" & linecc(8) &
                "','" & linecc(9) & "','" & linecc(10) & "','" & linecc(11) & "','" & linecc(12) & "','" & linecc(13) & "','" & linecc(14) & "','" & linecc(15) & "','" & linecc(16) &
                "','" & linecc(17) & "','" & linecc(18) & "','" & linecc(19) & "','" & linecc(20) & "','" & linecc(21) & "','" & linecc(22) & "','" & linecc(23) & "','" & linecc(24) &
                "','" & linecc(25) & "','" & linecc(26) & "','" & linecc(27) & "','" & linecc(28) & "','" & linecc(29) & "','" & linecc(30) & "','" & linecc(31) & "','" & linecc(32) &
                "','" & linecc(33) & "','" & linecc(34) & "','" & linecc(35) & "','" & linecc(36) & "','" & linecc(37) & "','" & linecc(38) & "','" & linecc(39) & "','" & linecc(40) &
                "','" & linecc(41) & "','" & linecc(42) & "','" & linecc(43) & "','" & linecc(44) & "','" & linecc(45) & "','" & linecc(46) & "','" & linecc(47) & "','" & linecc(48) &
                "','" & linecc(49) & "','" & linecc(50) & "','" & linecc(51) & "','" & linecc(52) & "','" & linecc(53) & "','" & linecc(54) & "','" & linecc(55) & "','" & linecc(56) &
                "','" & linecc(57) & "','" & linecc(58) & "','" & linecc(59) & "','" & linecc(60) & "')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_LINE_搜尋符合通知對象()
        ConnOpen_LINE_SQL()
        SQL1 = "SELECT  token,通知語言,電話號碼1,電話號碼2,電話號碼3,Line,WhatsApp,Message  FROM LINE_使用者權限管理表 WHERE(" & LINE_權限代號 & "='True' and 姓名 LIKE N'" & 發送對象 & "' and (帳號 LIKE N'" & LINE_公司名稱 & "'  OR  帳號 LIKE N'GCM' )    )"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_LINE_通知內容()
        ConnOpen_LINE_SQL()
        SQL1 = "SELECT  通知格式,變數位置,通知內容1,通知內容2,通知內容3  FROM LINE_通知內容設定表 WHERE (權限代號 LIKE N'" & LINE_權限代號 & "')"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_LINE_新增發送通知()
        ConnOpen_LINE_SQL()
        SQL1 = "INSERT INTO LINE_通知設定表 (token,發送內容,隨機碼,通知語言,發送APP) VALUES (N'" & PA201 & "',N'" & PA202 & "',N'" & PA203 & "',N'" & PA204 & "',N'" & PA205 & "')"
        CmdSet_For_dr()
    End Sub
    Function SQL_LINE_隨機碼()
        Dim rancode As String
        Dim RndNum As New Random()
        rancode = Str(Date.Now.Year).Trim().PadLeft(4, "0") + Str(Date.Now.Month).Trim().PadLeft(2, "0") + Str(Date.Now.Day).Trim().PadLeft(2, "0") + Str(Date.Now.Hour).Trim().PadLeft(2, "0") + Str(Date.Now.Minute).Trim().PadLeft(2, "0") + Str(Date.Now.Second).Trim().PadLeft(2, "0") + Str(RndNum.Next(1000)).Trim().PadLeft(4, "0")
        Return rancode
    End Function
    Friend Sub LINE_通知模塊()
        Dim ds5, ds6 As New DataSet : ds5.Clear() : ds6.Clear()
        Dim 通知格式, 變數位置, 通知內容1, 通知內容2, 通知內容3, 發送X, 發送Y As String
        Dim L, M, W As Boolean
        SQL_LINE_搜尋符合通知對象()
        da.Fill(ds5) : LINE_使用者管理表.LINE_需通知清單_dgv.DataSource = ds5.Tables(0) : conn.Close()
        If 通知變數X = "" Then : 發送X = "未設定通知變數X" : Else : 發送X = 通知變數X : End If
        If 通知變數Y = "" Then : 發送Y = "未設定通知變數Y" : Else : 發送Y = 通知變數Y : End If
        For x As Integer = 0 To LINE_使用者管理表.LINE_需通知清單_dgv.Rows.Count - 1
            L = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells("Line").Value
            W = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells("WhatsApp").Value
            M = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells("Message").Value
            SQL_LINE_通知內容() : da.Fill(ds6) : LINE_使用者管理表.LINE_通知內容清單_dgv.DataSource = ds6.Tables(0) : conn.Close()
            If LINE_使用者管理表.LINE_需通知清單_dgv.Rows.Count = 0 Then : Else
                通知格式 = LINE_使用者管理表.LINE_通知內容清單_dgv.Rows(0).Cells(0).Value
                變數位置 = LINE_使用者管理表.LINE_通知內容清單_dgv.Rows(0).Cells(1).Value
                通知內容1 = LINE_使用者管理表.LINE_通知內容清單_dgv.Rows(0).Cells(2).Value
                通知內容2 = LINE_使用者管理表.LINE_通知內容清單_dgv.Rows(0).Cells(3).Value
                通知內容3 = LINE_使用者管理表.LINE_通知內容清單_dgv.Rows(0).Cells(4).Value
                If 變數位置 = "A" Then
                    PA202 = 通知內容1
                ElseIf 變數位置 = "X" Then
                    PA202 = 發送X
                ElseIf 變數位置 = "A+X" Then
                    PA202 = 通知內容1 + 發送X
                ElseIf 變數位置 = "X+A" Then
                    PA202 = 發送X + 通知內容1
                ElseIf 變數位置 = "X+A+Y" Then
                    PA202 = 發送X + 通知內容1 + 發送Y
                ElseIf 變數位置 = "A+X+B" Then
                    PA202 = 通知內容1 + 發送X + 通知內容2
                ElseIf 變數位置 = "X+A+Y+B" Then
                    PA202 = 發送X + 通知內容1 + 發送Y + 通知內容2
                ElseIf 變數位置 = "A+X+B+Y" Then
                    PA202 = 通知內容1 + 發送X + 通知內容2 + 發送Y
                ElseIf 變數位置 = "A+X+B+Y+C" Then
                    PA202 = 通知內容1 + 發送X + 通知內容2 + 發送Y + 通知內容3
                End If
                PA204 = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(1).Value
                If L = True Then
                    PA203 = LINE_公司名稱 & "-" & SQL_LINE_隨機碼() : PA201 = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(0).Value.ToString : PA205 = "Line" : SQL_LINE_新增發送通知()
                End If
                If W = True Then
                    If LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(2).Value.ToString <> "" Then
                        PA203 = LINE_公司名稱 & "-" & SQL_LINE_隨機碼() : PA201 = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(2).Value.ToString : PA205 = "WhatsApp" : SQL_LINE_新增發送通知()
                    End If
                    If LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(3).Value.ToString <> "" Then
                        PA203 = LINE_公司名稱 & "-" & SQL_LINE_隨機碼() : PA201 = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(3).Value.ToString : PA205 = "WhatsApp" : SQL_LINE_新增發送通知()
                    End If
                    If LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(4).Value.ToString <> "" Then
                        PA203 = LINE_公司名稱 & "-" & SQL_LINE_隨機碼() : PA201 = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(4).Value.ToString : PA205 = "WhatsApp" : SQL_LINE_新增發送通知()
                    End If
                End If
                If M = True Then
                    If LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(2).Value.ToString <> "" Then
                        PA203 = LINE_公司名稱 & "-" & SQL_LINE_隨機碼() : PA201 = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(2).Value.ToString : PA205 = "Message" : SQL_LINE_新增發送通知()
                    End If
                    If LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(3).Value.ToString <> "" Then
                        PA203 = LINE_公司名稱 & "-" & SQL_LINE_隨機碼() : PA201 = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(3).Value.ToString : PA205 = "Message" : SQL_LINE_新增發送通知()
                    End If
                    If LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(4).Value.ToString <> "" Then
                        PA203 = LINE_公司名稱 & "-" & SQL_LINE_隨機碼() : PA201 = LINE_使用者管理表.LINE_需通知清單_dgv.Rows(x).Cells(4).Value.ToString : PA205 = "Message" : SQL_LINE_新增發送通知()
                    End If
                End If
            End If
        Next
        ds5.Clear() : ds6.Clear() : 通知變數X = "" : 通知變數Y = ""
    End Sub
End Module
