chat select cliente contactos

This commit is contained in:
amazuecos
2025-04-02 20:19:16 +02:00
parent 9d071e462c
commit 69f6d6cbeb
8 changed files with 166 additions and 92 deletions

View File

@ -210,7 +210,6 @@ class ChatController extends BaseController
} }
public function store_message($model) public function store_message($model)
{ {
$data = $this->request->getPost(); $data = $this->request->getPost();
$chatMessageEntity = $this->chatService->storeChatMessage($data["chat_department_id"],$model,$data["model_id"],$data); $chatMessageEntity = $this->chatService->storeChatMessage($data["chat_department_id"],$model,$data["model_id"],$data);
return $this->response->setJSON($chatMessageEntity); return $this->response->setJSON($chatMessageEntity);
@ -338,67 +337,25 @@ class ChatController extends BaseController
{ {
$pm = model(PresupuestoModel::class); $pm = model(PresupuestoModel::class);
$p = $pm->find($presupuesto_id); $p = $pm->find($presupuesto_id);
$query = $this->userModel->builder()->select( $cm = model(ClienteModel::class);
[ $clienteContactos = $cm->querySelectClienteContacto($p->cliente_id,$this->request->getGet('q'));
"id", return $this->response->setJSON($clienteContactos);
"CONCAT(first_name,' ',last_name,'(',username,')') as name"
]
)
->where("deleted_at", null)
->whereNotIn("id", [auth()->user()->id])
->where("cliente_id", $p->cliente_id);
if ($this->request->getGet("q")) {
$query->groupStart()
->orLike("users.username", $this->request->getGet("q"))
->orLike("CONCAT(first_name,' ',last_name)", $this->request->getGet("q"))
->groupEnd();
}
return $this->response->setJSON($query->get()->getResultObject());
} }
public function get_pedido_client_users(int $pedido_id) public function get_pedido_client_users(int $pedido_id)
{ {
$pm = model(PedidoModel::class); $pm = model(PedidoModel::class);
$p = $pm->find($pedido_id); $p = $pm->find($pedido_id);
$query = $this->userModel->builder()->select( $cm = model(ClienteModel::class);
[ $clienteContactos = $cm->querySelectClienteContacto($p->cliente()->id,$this->request->getGet('q'));
"id", return $this->response->setJSON($clienteContactos);
"CONCAT(first_name,' ',last_name,'(',username,')') as name"
]
)
->where("deleted_at", null)
->whereNotIn("id", [auth()->user()->id])
->where("cliente_id", $p->cliente()->id);
if ($this->request->getGet("q")) {
$query->groupStart()
->orLike("users.username", $this->request->getGet("q"))
->orLike("CONCAT(first_name,' ',last_name)", $this->request->getGet("q"))
->groupEnd();
}
return $this->response->setJSON($query->get()->getResultObject());
} }
public function get_factura_client_users(int $factura_id) public function get_factura_client_users(int $factura_id)
{ {
$fm = model(FacturaModel::class); $fm = model(FacturaModel::class);
$f = $fm->find($factura_id); $f = $fm->find($factura_id);
$query = $this->userModel->builder()->select( $cm = model(ClienteModel::class);
[ $clienteContactos = $cm->querySelectClienteContacto($f->cliente_id,$this->request->getGet('q'));
"id", return $this->response->setJSON($clienteContactos);
"CONCAT(first_name,' ',last_name,'(',username,')') as name"
]
)
->where("deleted_at", null)
->whereNotIn("id", [auth()->user()->id])
->where("cliente_id", $f->cliente_id);
if ($this->request->getGet("q")) {
$query->groupStart()
->orLike("users.username", $this->request->getGet("q"))
->orLike("CONCAT(first_name,' ',last_name)", $this->request->getGet("q"))
->groupEnd();
}
return $this->response->setJSON($query->get()->getResultObject());
} }
public function store_hebra(string $model) public function store_hebra(string $model)
{ {

View File

@ -1,6 +1,7 @@
<?php <?php
namespace App\Entities\Clientes; namespace App\Entities\Clientes;
use App\Models\Clientes\ClienteModel;
use CodeIgniter\Entity; use CodeIgniter\Entity;
class ClienteContactoEntity extends \CodeIgniter\Entity\Entity class ClienteContactoEntity extends \CodeIgniter\Entity\Entity
@ -21,4 +22,14 @@ class ClienteContactoEntity extends \CodeIgniter\Entity\Entity
"cliente_id" => "int", "cliente_id" => "int",
"is_deleted" => "int", "is_deleted" => "int",
]; ];
public function getFullName() : string
{
return trim(implode(" ",[$this->attributes['nombre'] ?? '',$this->attributes["apellidos"] ?? '']));
}
public function cliente() : ?ClienteEntity
{
$cm = model(ClienteModel::class);
return $cm->find($this->attributes["cliente_id"]);
}
} }

View File

@ -2,6 +2,7 @@
namespace App\Entities\Clientes; namespace App\Entities\Clientes;
use App\Entities\Usuarios\UserEntity; use App\Entities\Usuarios\UserEntity;
use App\Models\Clientes\ClienteContactoModel;
use App\Models\Usuarios\UserModel; use App\Models\Usuarios\UserModel;
use CodeIgniter\Entity; use CodeIgniter\Entity;
@ -71,9 +72,25 @@ class ClienteEntity extends \CodeIgniter\Entity\Entity
"user_update_id" => "int", "user_update_id" => "int",
]; ];
public function comercial() : UserEntity public function comercial() : ?UserEntity
{ {
$m = model(UserModel::class); $m = model(UserModel::class);
return $m->find($this->attributes["comercial_id"]); return $m->find($this->attributes["comercial_id"]);
} }
public function user() : ?UserEntity
{
$m = model(UserModel::class);
return $m->where("cliente_id",$this->attributes["id"])->first();
}
/**
* Devuelve un array con los contactos del cliente
*
* @return array<ClienteContactoEntity>
*/
public function contactos() : array
{
$m = model(ClienteContactoModel::class);
$clienteContactos = $m->where('cliente_id',$this->attributes['id'])->findAll();
return $clienteContactos ?? [];
}
} }

View File

@ -30,6 +30,7 @@ class ClienteContactoModel extends \App\Models\BaseModel
protected $createdField = "created_at"; protected $createdField = "created_at";
protected $updatedField = "updated_at"; protected $updatedField = "updated_at";
protected $deletedField = 'deleted_at';
public static $labelField = "nombre"; public static $labelField = "nombre";

View File

@ -287,8 +287,7 @@ class ClienteModel extends \App\Models\BaseModel
->select( ->select(
"t1.id AS id, t1.nombre AS nombre, t1.alias AS alias, t1.cif AS cif, t1.email AS email, t1.vencimiento AS vencimiento, t5.first_name AS comercial, t7.nombre AS forma_pago_id" "t1.id AS id, t1.nombre AS nombre, t1.alias AS alias, t1.cif AS cif, t1.email AS email, t1.vencimiento AS vencimiento, t5.first_name AS comercial, t7.nombre AS forma_pago_id"
) )
->where("is_deleted", 0); ->where("is_deleted", 0);;
;
$builder->join("users t5", "t1.comercial_id = t5.id", "left"); $builder->join("users t5", "t1.comercial_id = t5.id", "left");
$builder->join("formas_pago t7", "t1.forma_pago_id = t7.id", "left"); $builder->join("formas_pago t7", "t1.forma_pago_id = t7.id", "left");
@ -320,11 +319,11 @@ class ClienteModel extends \App\Models\BaseModel
->where("t1.id", $cliente_id); ->where("t1.id", $cliente_id);
$limite = $builder->get()->getResultObject(); $limite = $builder->get()->getResultObject();
if($limite){ if ($limite) {
$pendiente = $this->getPendienteCobro($cliente_id); $pendiente = $this->getPendienteCobro($cliente_id);
$credito_disponible = floatval($limite[0]->limite_credito) - $pendiente[0] - $pendiente[1] - floatval($total_pedido); $credito_disponible = floatval($limite[0]->limite_credito) - $pendiente[0] - $pendiente[1] - floatval($total_pedido);
if($credito_disponible < 0) if ($credito_disponible < 0)
return false; return false;
return true; return true;
} }
@ -414,10 +413,9 @@ class ClienteModel extends \App\Models\BaseModel
return empty($search) return empty($search)
? $builder->get()->getResultObject() ? $builder->get()->getResultObject()
: $builder : $builder
->groupStart() ->groupStart()
->like("t1.nombre", $search) ->like("t1.nombre", $search)
->groupEnd()->get()->getResultObject(); ->groupEnd()->get()->getResultObject();
} }
public function getPendienteCobro($cliente_id = -1) public function getPendienteCobro($cliente_id = -1)
@ -460,7 +458,6 @@ class ClienteModel extends \App\Models\BaseModel
} else { } else {
return [0, round(floatval($pendiente_old), 2)]; return [0, round(floatval($pendiente_old), 2)];
} }
} }
private function getTotalPendienteOldERP($customer_id = -1) private function getTotalPendienteOldERP($customer_id = -1)
@ -499,7 +496,8 @@ class ClienteModel extends \App\Models\BaseModel
} }
} }
public function getResumenPagos($cliente_id = -1){ public function getResumenPagos($cliente_id = -1)
{
$result = []; $result = [];
$data = $this->db->table('facturas f') $data = $this->db->table('facturas f')
@ -510,7 +508,7 @@ class ClienteModel extends \App\Models\BaseModel
->where('f.estado_pago', 'pendiente') ->where('f.estado_pago', 'pendiente')
->get() ->get()
->getResultObject(); ->getResultObject();
$result['total_facturas_sin_pagar'] = $result['total_facturas_sin_pagar'] =
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2); round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
$data = $this->db->table('facturas_pagos fp') $data = $this->db->table('facturas_pagos fp')
@ -523,7 +521,7 @@ class ClienteModel extends \App\Models\BaseModel
->where('f.deleted_at IS NULL') ->where('f.deleted_at IS NULL')
->get() ->get()
->getResultObject(); ->getResultObject();
$result['total_facturas_pagadas'] = $result['total_facturas_pagadas'] =
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2); round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
$data = $this->db->table('facturas f') $data = $this->db->table('facturas f')
@ -537,7 +535,7 @@ class ClienteModel extends \App\Models\BaseModel
->where('fp.deleted_at IS NULL') ->where('fp.deleted_at IS NULL')
->get() ->get()
->getResultObject(); ->getResultObject();
$result['total_facturas_vencidas'] = $result['total_facturas_vencidas'] =
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2); round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
// Subconsulta para verificar la existencia en facturas_lineas // Subconsulta para verificar la existencia en facturas_lineas
@ -559,7 +557,7 @@ class ClienteModel extends \App\Models\BaseModel
->get() ->get()
->getResultObject(); ->getResultObject();
$query = $this->db->getLastQuery(); $query = $this->db->getLastQuery();
$result['total_pedidos_produccion'] = $result['total_pedidos_produccion'] =
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2); round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
// Subconsulta para calcular el total de pedidos finalizados // Subconsulta para calcular el total de pedidos finalizados
@ -572,12 +570,12 @@ class ClienteModel extends \App\Models\BaseModel
->where("NOT EXISTS $subquery_facturas", null, false) // Implementación manual de NOT EXISTS ->where("NOT EXISTS $subquery_facturas", null, false) // Implementación manual de NOT EXISTS
->get() ->get()
->getResultObject(); ->getResultObject();
$result['total_pedidos_finalizados'] = $result['total_pedidos_finalizados'] =
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2); round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
$result['total_pendiente'] = $result['total_pendiente'] =
$result['total_facturas_sin_pagar'] $result['total_facturas_sin_pagar']
+ $result['total_pedidos_produccion'] + $result['total_pedidos_produccion']
+ $result['total_pedidos_finalizados']; + $result['total_pedidos_finalizados'];
$result['total_pendiente'] = round(floatval($result['total_pendiente']), 2); $result['total_pendiente'] = round(floatval($result['total_pendiente']), 2);
@ -588,8 +586,28 @@ class ClienteModel extends \App\Models\BaseModel
->get() ->get()
->getResultObject()[0]->limite_credito; ->getResultObject()[0]->limite_credito;
$result['limite_credito'] = round(floatval($result['limite_credito']), 2); $result['limite_credito'] = round(floatval($result['limite_credito']), 2);
$result['margen_disponible'] = round(floatval( $result['limite_credito']-$result['total_pendiente']), 2); $result['margen_disponible'] = round(floatval($result['limite_credito'] - $result['total_pendiente']), 2);
return $result; return $result;
} }
public function querySelectClienteContacto(int $cliente_id, string $q): array
{
$query = $this->builder()->select([
"cliente_contactos.id",
"CONCAT(COALESCE(cliente_contactos.nombre,''),' ',COALESCE(cliente_contactos.apellidos,'')) as name",
'cliente_contactos.cargo as description'
])
->join('cliente_contactos', 'cliente_contactos.cliente_id = clientes.id', 'left')
->where('cliente_contactos.deleted_at',null)
->where('cliente_contactos.email is NOT NULL',null,false)
->where('cliente_contactos.cliente_id', $cliente_id);
if ($q) {
$query->groupStart();
$query->orLike('name', $q);
$query->orLike('description', $q);
$query->groupEnd();
}
return $query->get()->getResultArray() ?? [];
}
} }

View File

@ -6,6 +6,7 @@ use App\Controllers\Configuracion\ConfigVariables;
use App\Entities\Chat\ChatEntity; use App\Entities\Chat\ChatEntity;
use App\Entities\Chat\ChatMessageEntity; use App\Entities\Chat\ChatMessageEntity;
use App\Entities\Chat\ChatNotificationEntity; use App\Entities\Chat\ChatNotificationEntity;
use App\Entities\Clientes\ClienteContactoEntity;
use App\Entities\Usuarios\UserEntity; use App\Entities\Usuarios\UserEntity;
use App\Models\Chat\ChatDeparmentModel; use App\Models\Chat\ChatDeparmentModel;
use App\Models\Chat\ChatDeparmentUserModel; use App\Models\Chat\ChatDeparmentUserModel;
@ -13,11 +14,13 @@ use App\Models\Chat\ChatMessageModel;
use App\Models\Chat\ChatModel; use App\Models\Chat\ChatModel;
use App\Models\ChatNotification; use App\Models\ChatNotification;
use App\Models\ChatUser; use App\Models\ChatUser;
use App\Models\Clientes\ClienteContactoModel;
use App\Models\Configuracion\ConfigVariableModel; use App\Models\Configuracion\ConfigVariableModel;
use App\Models\Presupuestos\PresupuestoModel; use App\Models\Presupuestos\PresupuestoModel;
use App\Models\Usuarios\UserModel; use App\Models\Usuarios\UserModel;
use CodeIgniter\Config\BaseService; use CodeIgniter\Config\BaseService;
use App\Services\EmailService; use App\Services\EmailService;
use Exception;
class ChatService extends BaseService class ChatService extends BaseService
{ {
@ -31,6 +34,7 @@ class ChatService extends BaseService
protected PresupuestoModel $presupuestoModel; protected PresupuestoModel $presupuestoModel;
protected ChatDeparmentModel $chatDepartmentModel; protected ChatDeparmentModel $chatDepartmentModel;
protected ChatDeparmentUserModel $chatDepartmentUserModel; protected ChatDeparmentUserModel $chatDepartmentUserModel;
protected ClienteContactoModel $clienteContactoModel;
protected ConfigVariableModel $configVariables; protected ConfigVariableModel $configVariables;
protected array $modelFkMap = [ protected array $modelFkMap = [
"presupuesto" => "presupuesto_id", "presupuesto" => "presupuesto_id",
@ -43,6 +47,7 @@ class ChatService extends BaseService
$this->emailService = service('emailService'); // Usar el servicio de email de Safekat y no el de CI4 $this->emailService = service('emailService'); // Usar el servicio de email de Safekat y no el de CI4
$this->userModel = model(UserModel::class); $this->userModel = model(UserModel::class);
$this->chatModel = model(ChatModel::class); $this->chatModel = model(ChatModel::class);
$this->clienteContactoModel = model(ClienteContactoModel::class);
$this->chatMessageModel = model(ChatMessageModel::class); $this->chatMessageModel = model(ChatMessageModel::class);
$this->chatNotificationModel = model(ChatNotification::class); $this->chatNotificationModel = model(ChatNotification::class);
$this->chatDepartmentUserModel = model(ChatDeparmentUserModel::class); $this->chatDepartmentUserModel = model(ChatDeparmentUserModel::class);
@ -64,13 +69,17 @@ class ChatService extends BaseService
$this->chatEntity = $this->chatModel->find($chatId); $this->chatEntity = $this->chatModel->find($chatId);
} }
if ($data["client"]) { if ($data["client"]) {
$cliente_in_department = $this->chatDepartmentUserModel $cliente_contacto = $this->clienteContactoModel->find($data["client"]);
->where('chat_department_id', $chatDepartmentId) if ($cliente_contacto) {
->where('user_id', $data['client']) $userClienteContacto = $cliente_contacto->cliente()->user();
->where($this->modelFkMap[$model], $modelId) $cliente_in_department = $this->chatDepartmentUserModel
->first(); ->where('chat_department_id', $chatDepartmentId)
if ($cliente_in_department == null) { ->where('user_id', $userClienteContacto->id)
$this->chatDepartmentUserModel->insert(['chat_department_id' => $chatDepartmentId, 'user_id' => $data['client'], $this->modelFkMap[$model] => $modelId]); ->where($this->modelFkMap[$model], $modelId)
->first();
if ($cliente_in_department == null) {
$this->chatDepartmentUserModel->insert(['chat_department_id' => $chatDepartmentId, 'user_id' => $userClienteContacto->id, $this->modelFkMap[$model] => $modelId]);
}
} }
} }
$userAdminDepartment = $this->chatDepartmentUserModel $userAdminDepartment = $this->chatDepartmentUserModel
@ -91,9 +100,9 @@ class ChatService extends BaseService
$chat_message_id = $this->chatMessageModel->insert(["chat_id" => $this->chatEntity->id, "sender_id" => auth()->user()->id, "message" => $data["message"]]); $chat_message_id = $this->chatMessageModel->insert(["chat_id" => $this->chatEntity->id, "sender_id" => auth()->user()->id, "message" => $data["message"]]);
$chatMessageEntity = $this->chatMessageModel->find($chat_message_id); $chatMessageEntity = $this->chatMessageModel->find($chat_message_id);
if ($data["client"]) { if ($data["client"]) {
$userClient = $this->userModel->find($data['client']); $cliente_contacto = $this->clienteContactoModel->find($data["client"]);
if ($userClient) { if ($cliente_contacto) {
$this->sendMessageNotificationEmail($chatMessageEntity, $userClient); $this->sendMessageNotificationToClienteContacto($chatMessageEntity, $cliente_contacto);
} }
} }
return $chatMessageEntity; return $chatMessageEntity;
@ -156,6 +165,7 @@ class ChatService extends BaseService
); );
return true; return true;
} }
public function getHebras(string $model, int $modelId): array public function getHebras(string $model, int $modelId): array
{ {
$chats = $this->chatModel->where('chat_department_id', null) $chats = $this->chatModel->where('chat_department_id', null)
@ -195,6 +205,23 @@ class ChatService extends BaseService
]); ]);
return $this->emailService->send($subject, $message, $toEmail); return $this->emailService->send($subject, $message, $toEmail);
}
public function sendMessageNotificationToClienteContacto(ChatMessageEntity $chatMessageEntity, ClienteContactoEntity $clienteContacto): bool
{
$users = auth()->getProvider();
$toEmail = $clienteContacto->email;
$subject = '[Safekat]' . lang('Chat.mail.mail_subject') . ' - ' . $chatMessageEntity->chat()->title;
$message = view('themes/vuexy/mail/messageNotificationClienteContacto', [
"header" => lang('Chat.mail.mail_subject'),
"contacto" => $clienteContacto,
"data" => $chatMessageEntity,
]);
if ($toEmail) {
return $this->emailService->send($subject, $message, $toEmail);
} else {
throw new Exception('Cliente contacto no tiene email');
}
} }
} }

View File

@ -0,0 +1,29 @@
<?= $this->extend('themes/vuexy/mail/mail_layout') ?>
<?= $this->section('content'); ?>
<div class="card email-card-last mx-sm-4 mx-3 mt-4">
<div class="card-header d-flex flex-wrap">
<h6 class="m-0"><?= $data->chat()->title ?></h6>
</div>
<div class="card-header d-flex justify-content-between align-items-center flex-wrap">
<div class="d-flex align-items-center mb-sm-0 mb-3">
<img src="https://gravatar.com/avatar/<?= md5($contacto->email) ?>s=40" alt="user-avatar" class="flex-shrink-0 rounded-circle me-3" height="30" width="30">
<div class="flex-grow-1 ms-1">
<h6 class="m-0"><?= $contacto->full_name?></h6>
</div>
</div>
<div class="d-flex align-items-center">
<p class="mb-0 me-3 text-muted"><?= $data->created_at ?></p>
</div>
</div>
<div class="card-body">
<div class="chat-message chat-message">
<div class="chat-message-wrapper flex-grow-1">
<p><?= $data->message ?></p>
</div>
</div>
</div>
</div>
<?= $this->endSection() ?>

View File

@ -112,9 +112,22 @@ class Chat {
setInterval(this._handleReloadChatDirectMessages.bind(this), 10000) setInterval(this._handleReloadChatDirectMessages.bind(this), 10000)
} }
initSelectClient() { initSelectClient() {
this.selectClientUser = new ClassSelect(this.selectItem, `/chat/direct/client/users/select/${this.chatType}/${this.modelId}`, "Seleccione contacto", true) this.selectClientUser = new ClassSelect(
this.selectItem, `/chat/direct/client/users/select/${this.chatType}/${this.modelId}`,
"Seleccione contacto", true)
this.selectClientUser.config.templateResult = (state) => {
let $state = $(`
<div class="d-flex flex-column justify-content-start align-items-start gap-1">
<span class="item-text">${state.text}</span>
<span class="badge text-bg-secondary">${state.desc ?? ''}</span>
</div>`)
console.log(state)
return $state;
}
this.selectClientUser.init() this.selectClientUser.init()
this.selectItem.on('change', () => { this.selectItem.on('change', () => {
console.log(this.selectClientUser.getVal(),this.selectClientUser.getText())
if (this.selectClientUser.getVal()) { if (this.selectClientUser.getVal()) {
this.sendBtnMessageDepartment.attr('disabled', null) this.sendBtnMessageDepartment.attr('disabled', null)
} else { } else {
@ -302,7 +315,7 @@ class Chat {
null, null,
null, null,
(data) => { (data) => {
}, },
null null
@ -364,7 +377,7 @@ class Chat {
<div class="chat-message-text"> <div class="chat-message-text">
<p class="mb-0">${chatMessage?.message}</p> <p class="mb-0">${chatMessage?.message}</p>
</div> </div>
<div class="text-${chatMessage?.pos == "left" ? "start" : "end"} text-muted mt-1"> <div class="text-${chatMessage?.pos == "left" ? "start" : "end"} text-muted mt-1">
<div class="text-${chatMessage?.pos == "left" ? "start" : "end"} text-muted mt-1"> <div class="text-${chatMessage?.pos == "left" ? "start" : "end"} text-muted mt-1">
<small>${chatMessage?.user?.first_name + " " + chatMessage?.user?.last_name}</small> <small>${chatMessage?.user?.first_name + " " + chatMessage?.user?.last_name}</small>
</div> </div>
@ -821,7 +834,7 @@ class Chat {
} }
const addInternalNotification = (e) => { const addInternalNotification = (e) => {
let numberOfMessages = e.unreadMessages let numberOfMessages = e.unreadMessages
if (numberOfMessages > 0) { if (numberOfMessages > 0) {
$("#chat-notification-list").append( $("#chat-notification-list").append(
@ -841,7 +854,7 @@ const addInternalNotification = (e) => {
) )
} }
} }
const addDepartmentNotification = (e) => { const addDepartmentNotification = (e) => {
let numberOfMessages = e.unreadMessages let numberOfMessages = e.unreadMessages
if (numberOfMessages > 0) { if (numberOfMessages > 0) {
$("#chat-notification-list").append( $("#chat-notification-list").append(
@ -862,8 +875,7 @@ const addDepartmentNotification = (e) => {
} }
} }
const addNotificationsToDom = (data) => const addNotificationsToDom = (data) => {
{
$("#chat-notification-list").empty() $("#chat-notification-list").empty()
if (data.totalMessages > 0) { if (data.totalMessages > 0) {
$("#chat-message-notification-title").addClass("d-none") $("#chat-message-notification-title").addClass("d-none")
@ -874,11 +886,13 @@ const addNotificationsToDom = (data) =>
$("#chat-notification-number").addClass("d-none") $("#chat-notification-number").addClass("d-none")
$("#chat-notification-number").text(0) $("#chat-notification-number").text(0)
} }
data.departmentNotifications?.map( e => { data.departmentNotifications?.map(e => {
addDepartmentNotification(e)} addDepartmentNotification(e)
}
) )
data.internalNotifications?.map(e => { data.internalNotifications?.map(e => {
addInternalNotification(e)} addInternalNotification(e)
}
) )
} }