Files
Desktop_BLVStudio/BLV_Studio/Control/FrmHotelList.vb
2025-12-11 10:06:44 +08:00

457 lines
15 KiB
VB.net
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Imports System.ComponentModel
Public Class FrmHotelList
#Region "多语种信息"
''' <summary>
''' 初始化界面控件文本
''' </summary>
Private Sub MultiLanguageInfo()
Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.HotelList)
Button5.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)
Button1.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.HomeExit)
End Sub
#End Region
#Region "初始化信息"
Private _count As Integer = 0
Public FCsConfig As FrmCSeriesConfig
''' <summary>
''' 初始化酒店列表
''' </summary>
''' <param name="match"></param>
Public Sub InitHotelList(match As Boolean, mainfrom As FrmCSeriesConfig)
FCsConfig = mainfrom
If match = False Then
TreeView1.Nodes.Clear()
Grid5.NewFile()
InitHotelTable()
_count = 0
Button5.ForeColor = Color.Green
Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)}"
TreeView1.Enabled = True
Grid5.Enabled = True
End If
LblUserInfo.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeYou)}{_userNames} {LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectYourHotel)}"
_count += 1
If _count = 1 Then
MultiLanguageInfo()
InitHotelInfo()
End If
InitLoadHotelInfo()
End Sub
#End Region
#Region "权限管理_酒店管理"
''' <summary>
''' 权限列表
''' </summary>
Enum EnAuthInfo
''' <summary> 空 </summary>
Null
''' <summary> 锁定权限 </summary>
Lock
''' <summary> 授权时间 </summary>
AuthorizedTime
Auth3
Auth4
Auth5
Auth6
Auth7
Auth8
Auth9
''' <summary> 升级/房态/季节 </summary>
UpdateAndRoomStateAndSeason
Auth11
Auth12
Auth13
Auth14
Auth15
Auth16
''' <summary> 研发管理 </summary>
ResearchManage
Auth18
''' <summary> 批量下发 </summary>
BatchIssued
End Enum
Private Sub Grid5_Click(Sender As Object, e As EventArgs) Handles Grid5.Click
If Grid5.ActiveCell.Row > 0 Then
_projectNumber = Grid5.Cell(Grid5.ActiveCell.Row, HotelDataCol.ProjectNumber).Text
_HotelName = Grid5.Cell(Grid5.ActiveCell.Row, HotelDataCol.HotelName).Text
End If
End Sub
''' <summary>
''' 选择酒店事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Buttin5click()
End Sub
Public Sub Buttin5click()
FCsConfig.NoAuthority()
If Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)}" Then
If TipInfo() = False Then Return
AddAuthorityInfo()
Button5.ForeColor = Color.Red
Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Loosen)}"
TreeView1.Enabled = False
Grid5.Enabled = False
ElseIf Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Loosen)}" Then
Button5.ForeColor = Color.Green
Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)}"
TreeView1.Enabled = True
Grid5.Enabled = True
End If
FCsConfig.LblUserNames.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.TheCurrentHotel)}{_projectNumber}-{_HotelName} | {_userNames} {LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeYou)} "
FCsConfig.TextBox9.Text = _projectNumber
'FCsConfig.ComboBox16.Text = ""
FCsConfig.ComboBox16.Items.Clear()
FCsConfig.ComboBox17.Text = ""
FCsConfig.ComboBox17.Items.Clear()
FCsConfig.CBoRoomTpRemark.Checked = False
FCsConfig.CBoRoomNuRemark.Checked = False
FCsConfig.CheckBox37.Checked = False
FCsConfig.Network_cke.Checked = False
FCsConfig.Iptype_txt.Text = ""
FCsConfig.Loadip_txt.Text = ""
FCsConfig.IPMask_txt.Text = ""
FCsConfig.IPGateway_txt.Text = ""
FCsConfig.ServerIP_txt.Text = ""
FCsConfig.ipconfig_txt.Text = ""
FCsConfig.IpDns_txt.Text = ""
FCsConfig.IpPort_txt.Text = ""
FCsConfig.TextBox25.Text = ""
FCsConfig.TextBox21.Text = ""
AuthorityInfo(FCsConfig)
End Sub
''' <summary>
''' 提示信息
''' </summary>
''' <returns></returns>
Private Function TipInfo() As Boolean
If Grid5.Cell(Grid5.ActiveCell.Row, HotelDataCol.ProjectNumber).Text = Nothing Then
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectTheHotelUnderYourName)}")
Return False
End If
If _projectNumber = $"" Then
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectTheHotelUnderYourName)}")
Return False
End If
If _HotelName = $"" Then
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectTheHotelUnderYourName)}")
Return False
End If
Return True
End Function
''' <summary>
''' 添加权限
''' </summary>
Public Sub AddAuthorityInfo()
_authorityInfo.Clear()
For index = 0 To _loginData.Values.Count - 1
If _HotelName = _loginData.Values(index).HotelName AndAlso _projectNumber = _loginData.Values(index).Code Then
_authorityInfo.Add(_loginData.Values(index).AuthorityId, _loginData.Values(index).AuthotypeId)
End If
Next
End Sub
''' <summary>
''' 添加上一次保存的酒店权限
''' </summary>
Public Sub AddLastTimeAuthorityInfo()
_authorityInfo.Clear()
For index = 0 To _loginData.Values.Count - 1
If My.Settings.HotelName = _loginData.Values(index).HotelName AndAlso My.Settings.ProjectCode = _loginData.Values(index).Code Then
_authorityInfo.Add(_loginData.Values(index).AuthorityId, _loginData.Values(index).AuthotypeId)
End If
Next
End Sub
''' <summary>
''' 权限管理_权限信息
''' </summary>
Public Sub AuthorityInfo(Config As FrmCSeriesConfig)
FCsConfig = Config
For index = 0 To _authorityInfo.Count - 1
Select Case _authorityInfo.Keys(index)
Case EnAuthInfo.Lock '锁定
FCsConfig.LockAuth(_authorityInfo.Values(index))
Case EnAuthInfo.AuthorizedTime '授权时间
FCsConfig.AuthorizedTimeAuth(_authorityInfo.Values(index))
Case EnAuthInfo.UpdateAndRoomStateAndSeason '升级&房态&季节
FCsConfig.UpdateRoomStateSeasonAuth(_authorityInfo.Values(index))
Case EnAuthInfo.ResearchManage '研发管理
FCsConfig.UpdateResearchManageAuth(_authorityInfo.Values(index))
Case EnAuthInfo.BatchIssued '批量下发
FCsConfig.UpdateBatchIssuedAuth(_authorityInfo.Values(index))
End Select
Next
End Sub
'''' <summary>
'''' 选择页面
'''' </summary>
'''' <param name="sender"></param>
'''' <param name="e"></param>
'Private Sub TabControl1_Selecting(sender As Object, e As TabControlCancelEventArgs) Handles TabControl1.Selecting
' If Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)}" Then
' MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectTheHotelUnderYourName)}")
' e.Cancel = True
' End If
'End Sub
''' <summary>
''' 初始化酒店区域信息
''' </summary>
Public Sub InitHotelInfo()
InitHotelTable()
Dim nodeOne As TreeNode = TreeView1.Nodes.Add($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.AllHotel)}")
Dim dic As Dictionary(Of String, Integer) = AddHotelInfo()
For index = 0 To dic.Count - 1
nodeOne.Nodes.Add(dic.ElementAt(index).Key & "-(" & dic.ElementAt(index).Value & ")")
Next
End Sub
Public Function AddHotelInfo()
Dim dic As New Dictionary(Of String, Integer)
dic.Clear()
Dim txt As String
For index = 0 To _loginData.Count - 1
txt = _loginData.Values(index).HotelGroupsName
If dic.ContainsKey(txt) Then
dic(txt) += 1
Else
dic.Add(txt, 1)
'nodeOne.Nodes.Add(txt)
End If
Next
Return dic
End Function
''' <summary>
''' 树状目录点击事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
'Console.WriteLine(e.Node.Text & " " & e.Node.Index & " " & e.Node.Level & " " & e.Node.FullPath)
'Grid5.DisplayRowNumber = True
Dim str As String() = e.Node.Text.Split($"-")
'Console.WriteLine($"点击酒店:" & str(0))
Grid5.NewFile()
InitHotelTable()
Dim rowCount As Integer = 0
Dim dic As New Dictionary(Of String, Integer)
For index = 0 To _loginData.Values.Count - 1
If str(0) = _loginData.Values(index).HotelGroupsName Then
'HotelGroupsName = _loginData.Values(index).HotelGroupsName
If dic.ContainsKey(_loginData.Values(index).Code) = False Then
dic.Add(_loginData.Values(index).Code, 1)
Grid5.Rows += 1
rowCount += 1
Grid5.Cell(rowCount, 1).Text = _loginData.Values(index).Code
Grid5.Cell(rowCount, 2).Text = _loginData.Values(index).HotelName
'Grid5.Cell(rowCount, 1).Text = _loginData.Values(_loginData.Values.Count - 1 - index).Code
'Grid5.Cell(rowCount, 2).Text = _loginData.Values(_loginData.Values.Count - 1 - index).HotelName
End If
ElseIf str(0) = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.AllHotel)}" Then
'HotelGroupsName = _loginData.Values(index).HotelGroupsName
If dic.ContainsKey(_loginData.Values(index).Code) = False Then
dic.Add(_loginData.Values(index).Code, 1)
Grid5.Rows += 1
rowCount += 1
Grid5.Cell(rowCount, 1).Text = _loginData.Values(index).Code
Grid5.Cell(rowCount, 2).Text = _loginData.Values(index).HotelName
'Grid5.Cell(rowCount, 1).Text = _loginData.Values(_loginData.Values.Count - 1 - index).Code
'Grid5.Cell(rowCount, 2).Text = _loginData.Values(_loginData.Values.Count - 1 - index).HotelName
End If
End If
Next
End Sub
''' <summary>
''' 酒店区域表列名_枚举
''' </summary>
Enum HotelDataCol
''' <summary> 空 </summary>
Null
''' <summary> 项目编码 </summary>
ProjectNumber
''' <summary> 酒店名称 </summary>
HotelName
End Enum
''' <summary>
''' 酒店区域表列名
''' </summary>
Private _hotelTable() As String = {$"0", $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.ProjectCode)}", $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.HotelName)}"}
''' <summary>
''' 初始化酒店表格
''' </summary>
Private Sub InitHotelTable()
Grid5.Column(0).Width = 0
Grid5.Cols = _hotelTable.Length
Grid5.Rows = 1
For index = 1 To Grid5.Cols - 1
With Grid5.Cell(0, index)
.ForeColor = Color.Blue
.Text = _hotelTable(index)
.ForeColor = Color.DarkCyan
End With
With Grid5.Column(index)
.Alignment = FlexCell.AlignmentEnum.CenterCenter
If index = HotelDataCol.ProjectNumber Then
.Width = 75
Else
.Width = 180
End If
End With
Next
Grid5.SelectionMode = FlexCell.SelectionModeEnum.ByRow '设置选中行
Grid5.AllowUserSort = True
End Sub
Private Sub InitLoadHotelInfo()
Dim amountGrpByDates = From row In _userData
Group row By dateGroup = New With {
Key .Code = row.Field(Of Integer)(_userData.Columns(8).ColumnName),
Key .Name = row.Field(Of String)(_userData.Columns(7).ColumnName)
} Into Group
Select New With {
Key .Code = dateGroup.Code,
.Name = dateGroup.Name}
Dim lst = amountGrpByDates.ToList
For index = 0 To lst.Count - 1
Grid5.Rows += 1
Grid5.Cell(index + 1, 1).Text = lst(index).Code '项目编码
Grid5.Cell(index + 1, 2).Text = lst(index).Name '酒店名称
Next
End Sub
''' <summary>
''' 关闭窗体
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
My.Settings.ProjectCode = _projectNumber
My.Settings.HotelName = _HotelName
My.Settings.UserName = _userNames
My.Settings.Save()
Close()
End Sub
#End Region
#Region "窗体关闭事件"
''' <summary>
''' 窗体关闭事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub FrmHotelList_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
My.Settings.ProjectCode = _projectNumber
My.Settings.HotelName = _HotelName
My.Settings.UserName = _userNames
My.Settings.Save()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If IsNothing(Grid5) AndAlso Grid5.Rows < 1 AndAlso String.IsNullOrEmptyTextBox1.Text.Trim Then Return
Dim tabstr As String
For index As Integer = 1 To Grid5.Rows - 1
tabstr = Grid5.Cell(index, 1).Text.Trim & Grid5.Cell(index, 2).Text.Trim
If tabstr.Contains(TextBox1.Text.Trim) Then
Grid5.Row(index).Position = 1
End If
Next
End Sub
#End Region
End Class