Chat, divers

This commit is contained in:
2022-10-10 10:35:11 +02:00
parent d24e659cd5
commit 71678a4b50
36 changed files with 4307 additions and 740 deletions

View File

@@ -79,6 +79,15 @@ Public Class frmMessenger
TimerNEW_MESSAGE.Enabled = True
intiDGVChats()
'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGIMEX", "SDL") Then
' Button8.Visible = True
'End If
'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGIMEX", "SDL") Then
' Button8.Visible = True
'End If
If My.Application.Info.AssemblyName = "SDL" Then
lbl.Text = "CHAT"
End If
@@ -174,6 +183,101 @@ Public Class frmMessenger
,(SELECT REPLACE(COUNT(*),'0','') FROM tblMessenger_ChatMessages INNER JOIN tblMessenger_ChatMessageStatus ON chatMgSt_chatMsgId=chatMg_id WHERE [chat_id]=chatMg_chatId AND chatMgSt_MaId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & " AND chatMgSt_gelesen=0) as ungelesen ,chat_lastMsg
FROM [tblMessenger_Chat] WHERE (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0
AND chat_aktiv='" & (Not cbxInaktiveChats.Checked) & "'
AND chat_art IN ('CHAT')
) as T " & whereName & " ORDER BY chat_lastMsg DESC", "ADMIN")
If .Columns.Count = 0 Then Exit Sub
.Columns("chat_id").Visible = False
.Columns("chat_lastMsg").Visible = False
.Columns("chat_name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("ungelesen").Width = 30
.Columns("ungelesen").HeaderText = "neu"
.Columns("ungelesen").DefaultCellStyle.ForeColor = Color.White
.Columns("ungelesen").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("ungelesen").DefaultCellStyle.Font = New Font(.Font.FontFamily, 7, FontStyle.Bold)
dgvChats.GetOrder()
If selFirst Then
dgvChats.ClearSelection()
SplitContainer1.Enabled = False
If .Rows.Count > 0 Then
loaded = True
SplitContainer1.Enabled = True
.Rows(0).Selected = True
End If
loaded = loadedTmp
Else
If Not reloadChat Then
dgvChats.ClearSelection()
If dgv_ChatID > 0 Then
For Each r As DataGridViewRow In .Rows
If r.Cells("chat_id").Value = dgv_ChatID Then
dgvChats.ClearSelection()
r.Selected = True : Exit For
End If
Next
End If
loaded = loadedTmp
Else
dgvChats.ClearSelection()
SplitContainer1.Enabled = False
If dgv_ChatID > 0 Then
For Each r As DataGridViewRow In .Rows
If r.Cells("chat_id").Value = dgv_ChatID Then
dgvChats.ClearSelection()
SplitContainer1.Enabled = True
r.Selected = True : Exit For
End If
Next
End If
End If
End If
dgvChats.SetOrder()
If dgvChats.SelectedRows.Count > 0 Then dgvChats.FirstDisplayedCell = dgvChats.SelectedRows(0).Cells("chat_name")
'dgvChats.ClearSelection()
'SplitContainer1.Enabled = False
'If dgv_ChatID > 0 Then
' For Each r As DataGridViewRow In .Rows
' If r.Cells("chat_id").Value = dgv_ChatID Then
' dgvChats.ClearSelection()
' SplitContainer1.Enabled = True
' r.Selected = True : Exit For
' End If
' Next
'End If
End With
If Not selFirst Then rtbChatMessage.Focus()
End Sub
Sub intiDGVSonstige(Optional dgv_ChatID = -1, Optional reloadChat = True, Optional selFirst = False)
With dgvChats
Dim loadedTmp = loaded
If Not reloadChat Then
loaded = False
End If
Dim whereName = ""
If MyTextBox1.Text.Trim <> String.Empty Then
whereName = " WHERE chat_name LIKE '%" & MyTextBox1.Text.Trim & "%' "
End If
.DataSource = SQL.loadDgvBySql("SELECT * FROM(
SELECT [chat_id],CASE WHEN chat_name<>'' THEN chat_name ELSE (SELECT TOP 1 mit_vname + ' ' + mit_nname FROM tblMessenger_ChatMembers INNER JOIN tblMitarbeiter ON mit_id=chatMb_maId where chatMb_chatId=chat_id AND chatMb_maId <>" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ") END as chat_name
,(SELECT REPLACE(COUNT(*),'0','') FROM tblMessenger_ChatMessages INNER JOIN tblMessenger_ChatMessageStatus ON chatMgSt_chatMsgId=chatMg_id WHERE [chat_id]=chatMg_chatId AND chatMgSt_MaId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & " AND chatMgSt_gelesen=0) as ungelesen ,chat_lastMsg
FROM [tblMessenger_Chat] WHERE (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0
AND chat_aktiv='" & (Not cbxInaktiveChats.Checked) & "'
AND chat_art NOT IN ('CHAT')
) as T " & whereName & " ORDER BY chat_lastMsg DESC", "ADMIN")
If .Columns.Count = 0 Then Exit Sub
@@ -252,6 +356,8 @@ Public Class frmMessenger
End Sub
Private Sub dgvChats_SelectionChanged(sender As Object, e As EventArgs) Handles dgvChats.SelectionChanged
If Not loaded Then Exit Sub
topMessagesDateHistory = Nothing ' zurücksetzen des HistoryDate
@@ -290,6 +396,16 @@ Public Class frmMessenger
End If
End If
checkOnlineOffline()
Select Case CHAT.chat_art
Case "UMFRAGE", "MITTEILUNG", "ARBEITSANWEISUNG"
pnl.Enabled = False
Case Else
pnl.Enabled = True
End Select
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
@@ -357,6 +473,16 @@ Public Class frmMessenger
Dim CHAT_ITEM As New usrCntlMessenger_ChatElementDEL(MSG)
checkUsrId(MSG, CHAT_ITEM)
Return (CHAT_ITEM)
Case "UMFRAGE"
Dim CHAT_ITEM As New usrCntlMessenger_ChatElementUmfrage(MSG)
checkUsrId(MSG, CHAT_ITEM)
Return (CHAT_ITEM)
Case "MITTEILUNG"
Dim CHAT_ITEM As New usrCntlMessenger_ChatElementMitteilung(MSG)
checkUsrId(MSG, CHAT_ITEM)
Return (CHAT_ITEM)
End Select
Return Nothing
End Function
@@ -448,6 +574,16 @@ Public Class frmMessenger
CHAT_ITEM.setBgCOLOR(Color.FromArgb(192, 255, 192))
End If
End Sub
Sub checkUsrId(MSG As VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages, CHAT_ITEM As usrCntlMessenger_ChatElementMitteilung)
If MSG.chatMg_maId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
CHAT_ITEM.Margin = New Padding(MyFlowLayoutPanel1.Width - CHAT_ITEM.Width - 30, 0, 0, 0)
'CHAT_ITEM.Left = (MyFlowLayoutPanel1.Width - CHAT_ITEM.Width - 30)
'CHAT_ITEM.Anchor = AnchorStyles.None
'CHAT_ITEM.Dock = DockStyle.Right
' CHAT_ITEM.Dock = DockStyle.Right
CHAT_ITEM.setBgCOLOR(Color.FromArgb(192, 255, 192))
End If
End Sub
Sub checkUsrId(MSG As VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages, CHAT_ITEM As usrCntlMessenger_ChatElementDEL)
If MSG.chatMg_maId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
CHAT_ITEM.Margin = New Padding(MyFlowLayoutPanel1.Width - CHAT_ITEM.Width - 30, 0, 0, 0)
@@ -479,6 +615,11 @@ Public Class frmMessenger
End If
End Sub
Sub checkUsrId(MSG As VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages, CHAT_ITEM As usrCntlMessenger_ChatElementUmfrage)
If MSG.chatMg_maId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
CHAT_ITEM.Margin = New Padding(MyFlowLayoutPanel1.Width - CHAT_ITEM.Width - 30, 0, 0, 0)
End If
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
If Not CHAT.chat_aktiv Then MsgBox("Chat inaktiv!") : Exit Sub
@@ -885,7 +1026,23 @@ Public Class frmMessenger
'Private Sub rtbChatMessage_TextChanged(sender As Object, e As EventArgs) Handles rtbChatMessage.TextChanged
' FlowLayoutPanel.Enabled = (rtbChatMessage.Text = "")
'End Sub
Private Sub MyTextBox2_TextChanged(sender As Object, e As EventArgs) Handles MyTextBox2.Leave
intiDGVSonstige(, False, True)
End Sub
Private Sub MyTextBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles MyTextBox2.KeyUp
If e.KeyCode = Keys.Return Or MyTextBox2.Text = "" Then
intiDGVSonstige(, False, True)
End If
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Dim f As New frmMessenger_SonstigeNEW()
f.ShowDialog(Me)
End Sub
End Class