mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
add client to chat
This commit is contained in:
@ -207,15 +207,18 @@ class ChatController extends BaseController
|
||||
$chat_message_id = $this->chatMessageModel->insert(["chat_id" => $chatId, "sender_id" => auth()->user()->id, "message" => $data["message"]]);
|
||||
$dataResponse = $this->chatMessageModel->find($chat_message_id);
|
||||
$chatDepartmentUsers = $this->chatDeparmentModel->getChatDepartmentUsers($data["chat_department_id"]);
|
||||
$chatExternalUsers = $this->chatDeparmentModel->getChatDeparmentPresupuestoUsers($data["chat_department_id"],$data["model_id"]);
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $data['client']]);
|
||||
$cliente_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',$data['client'])->countAllResults();
|
||||
$cliente_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',$data['client'])->where('presupuesto_id',$data['model_id'])->countAllResults();
|
||||
$auth_user_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',auth()->user()->id)->countAllResults();
|
||||
if($cliente_in_department_count == 0){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => $data['client']]);
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => $data['client'],'presupuesto_id' => $data['model_id']]);
|
||||
}
|
||||
if($auth_user_in_department_count){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => auth()->user()->id]);
|
||||
|
||||
$users_always_in_department = array_map(fn($q) => $q->id,$chatDepartmentUsers);
|
||||
if(!in_array(auth()->user()->id,$users_always_in_department)){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'presupuesto_id' => $data['model_id']]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($chatDepartmentUsers as $user) {
|
||||
@ -223,6 +226,11 @@ class ChatController extends BaseController
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $user->id]);
|
||||
}
|
||||
}
|
||||
foreach ($chatExternalUsers as $user) {
|
||||
if ($user->id != auth()->user()->id) {
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $user->id]);
|
||||
}
|
||||
}
|
||||
return $this->response->setJSON($dataResponse);
|
||||
}
|
||||
public function store_chat_message_pedido()
|
||||
@ -239,21 +247,30 @@ class ChatController extends BaseController
|
||||
$chat_message_id = $this->chatMessageModel->insert(["chat_id" => $chatId, "sender_id" => auth()->user()->id, "message" => $data["message"]]);
|
||||
$dataResponse = $this->chatMessageModel->find($chat_message_id);
|
||||
$chatDepartmentUsers = $this->chatDeparmentModel->getChatDepartmentUsers($data["chat_department_id"]);
|
||||
$chatExternalUsers = $this->chatDeparmentModel->getChatDeparmentPedidoUsers($data["chat_department_id"],$data["model_id"]);
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $data['client']]);
|
||||
$cliente_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',$data['client'])->countAllResults();
|
||||
$cliente_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',$data['client'])->where('pedido_id',$data['model_id'])->countAllResults();
|
||||
$auth_user_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',auth()->user()->id)->countAllResults();
|
||||
if($cliente_in_department_count == 0){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => $data['client']]);
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => $data['client'],'pedido_id' => $data['model_id']]);
|
||||
}
|
||||
if($auth_user_in_department_count){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => auth()->user()->id]);
|
||||
|
||||
$users_always_in_department = array_map(fn($q) => $q->id,$chatDepartmentUsers);
|
||||
if(!in_array(auth()->user()->id,$users_always_in_department)){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'pedido_id' => $data['model_id']]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($chatDepartmentUsers as $user) {
|
||||
if ($user->id != auth()->user()->id) {
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $user->id]);
|
||||
}
|
||||
}
|
||||
foreach ($chatExternalUsers as $user) {
|
||||
if ($user->id != auth()->user()->id) {
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $user->id]);
|
||||
}
|
||||
}
|
||||
return $this->response->setJSON($dataResponse);
|
||||
}
|
||||
public function store_chat_message_factura()
|
||||
@ -270,21 +287,30 @@ class ChatController extends BaseController
|
||||
$chat_message_id = $this->chatMessageModel->insert(["chat_id" => $chatId, "sender_id" => auth()->user()->id, "message" => $data["message"]]);
|
||||
$dataResponse = $this->chatMessageModel->find($chat_message_id);
|
||||
$chatDepartmentUsers = $this->chatDeparmentModel->getChatDepartmentUsers($data["chat_department_id"]);
|
||||
$chatExternalUsers = $this->chatDeparmentModel->getChatDeparmentFacturaUsers($data["chat_department_id"],$data["model_id"]);
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $data['client']]);
|
||||
$cliente_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',$data['client'])->countAllResults();
|
||||
$cliente_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',$data['client'])->where('factura_id',$data['model_id'])->countAllResults();
|
||||
$auth_user_in_department_count = $this->chatDeparmentUserModel->where('chat_department_id',$data["chat_department_id"])->where('user_id',auth()->user()->id)->countAllResults();
|
||||
if($cliente_in_department_count == 0){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => $data['client']]);
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => $data['client'],'factura_id' => $data['model_id']]);
|
||||
}
|
||||
if($auth_user_in_department_count){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'user_id' => auth()->user()->id]);
|
||||
|
||||
$users_always_in_department = array_map(fn($q) => $q->id,$chatDepartmentUsers);
|
||||
if(!in_array(auth()->user()->id,$users_always_in_department)){
|
||||
$this->chatDeparmentUserModel->insert(['chat_department_id' => $data["chat_department_id"],'factura_id' => $data['model_id']]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($chatDepartmentUsers as $user) {
|
||||
if ($user->id != auth()->user()->id) {
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $user->id]);
|
||||
}
|
||||
}
|
||||
foreach ($chatExternalUsers as $user) {
|
||||
if ($user->id != auth()->user()->id) {
|
||||
$this->chatNotificationModel->insert(["chat_message_id" => $chat_message_id, "user_id" => $user->id]);
|
||||
}
|
||||
}
|
||||
return $this->response->setJSON($dataResponse);
|
||||
}
|
||||
public function store_chat_message_single()
|
||||
@ -392,10 +418,23 @@ class ChatController extends BaseController
|
||||
return $this->response->setJSON($response);
|
||||
}
|
||||
|
||||
public function get_chat_department_users(int $chat_department_id)
|
||||
public function get_chat_department_presupuesto_users(int $chat_department_id,int $presupuesto_id)
|
||||
{
|
||||
$data = $this->chatDeparmentModel->getChatDepartmentUsers($chat_department_id);
|
||||
return $this->response->setJSON($data);
|
||||
$adminUsers = $this->chatDeparmentModel->getChatDepartmentUsers($chat_department_id);
|
||||
$externalUsers = $this->chatDeparmentModel->getChatDeparmentPresupuestoUsers($chat_department_id,$presupuesto_id);
|
||||
return $this->response->setJSON(['admin_users' => $adminUsers,'external_users' => $externalUsers]);
|
||||
}
|
||||
public function get_chat_department_pedido_users(int $chat_department_id,$pedido_id)
|
||||
{
|
||||
$adminUsers = $this->chatDeparmentModel->getChatDepartmentUsers($chat_department_id);
|
||||
$externalUsers = $this->chatDeparmentModel->getChatDeparmentPedidoUsers($chat_department_id,$pedido_id);
|
||||
return $this->response->setJSON(['admin_users' => $adminUsers,'external_users' => $externalUsers]);
|
||||
}
|
||||
public function get_chat_department_factura_users(int $chat_department_id,$factura_id)
|
||||
{
|
||||
$adminUsers = $this->chatDeparmentModel->getChatDepartmentUsers($chat_department_id);
|
||||
$externalUsers = $this->chatDeparmentModel->getChatDeparmentFacturaUsers($chat_department_id,$factura_id);
|
||||
return $this->response->setJSON(['admin_users' => $adminUsers,'external_users' => $externalUsers]);
|
||||
}
|
||||
public function get_chat_users_internal()
|
||||
{
|
||||
@ -837,8 +876,18 @@ class ChatController extends BaseController
|
||||
}
|
||||
public function delete_user_from_department($chat_department_id)
|
||||
{
|
||||
$data = $this->request->getPost();
|
||||
$user_id = auth()->user()->id;
|
||||
$chatDepartmentUserEntity = $this->chatDeparmentUserModel->where('chat_department_id',$chat_department_id)->where('user_id',$user_id);
|
||||
$adminExist = $this->chatDeparmentUserModel->where('chat_department_id',$chat_department_id)
|
||||
->where('user_id',$user_id)
|
||||
->where('pedido_id',null)
|
||||
->where('factura_id',null)
|
||||
->where('presupuesto_id',null)->countAllResults();
|
||||
if($adminExist)
|
||||
{
|
||||
return $this->response->setJSON(["message" => lang('Chat.exit_admin_chat_wrong'),"status" => false]);
|
||||
}
|
||||
$chatDepartmentUserEntity = $this->chatDeparmentUserModel->where('chat_department_id',$chat_department_id)->where('user_id',$user_id)->where($data['model_fk'],$data['model_id_fk']);
|
||||
if($chatDepartmentUserEntity->countAllResults() > 0)
|
||||
{
|
||||
$deleted = $this->chatDeparmentUserModel->where('chat_department_id',$chat_department_id)->where('user_id',$user_id)->delete();
|
||||
@ -851,12 +900,21 @@ class ChatController extends BaseController
|
||||
{
|
||||
$data = $this->request->getPost();
|
||||
$user_id = auth()->user()->id;
|
||||
$chatDepartmentUserEntity = $this->chatDeparmentUserModel->where('chat_department_id',$data['chat_department_id'])->where('user_id',$user_id);
|
||||
$adminExist = $this->chatDeparmentUserModel->where('chat_department_id',$data['chat_department_id'])
|
||||
->where('user_id',$user_id)
|
||||
->where('pedido_id',null)
|
||||
->where('factura_id',null)
|
||||
->where('presupuesto_id',null)->countAllResults();
|
||||
if($adminExist)
|
||||
{
|
||||
return $this->response->setJSON(["message" => lang('Chat.subscribe_chat_wrong'),"status" => false]);
|
||||
}
|
||||
$chatDepartmentUserEntity = $this->chatDeparmentUserModel->where('chat_department_id',$data['chat_department_id'])->where('user_id',$user_id)->where($data['model_fk'],$data['model_id_fk']);
|
||||
if($chatDepartmentUserEntity->countAllResults() > 0)
|
||||
{
|
||||
return $this->response->setJSON(["message" => lang('Chat.subscribe_chat_wrong'),"status" => false]);
|
||||
}else{
|
||||
$this->chatDeparmentUserModel->insert(["chat_department_id" => $data["chat_department_id"],"user_id" => $user_id]);
|
||||
$this->chatDeparmentUserModel->insert(["chat_department_id" => $data["chat_department_id"],"user_id" => $user_id,$data['model_fk'] => $data['model_id_fk']]);
|
||||
return $this->response->setJSON(["message" => lang('Chat.subscribe_chat_ok'), "status" => true]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user