Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Ampliar acceso a todos los Terceros pero ocultar pedidos realizados por otros comerciales

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
igorae
Novato
Mensajes: 20
Registrado: Mar, 02/02/2021, 16:16

Ampliar acceso a todos los Terceros pero ocultar pedidos realizados por otros comerciales

Mensaje por igorae »

Hola, me gustaría saber si es posible que todos los comerciales vean todos los terceros (proveedores únicamente en mi caso), pero que los pedidos a esos proveedores solamente los vea el comercial que los ha hecho.

No he encontrado ninguna opción para ésto y si amplio el acceso a todos lo terceros en la sección de permisos o asigno un mismo proveedor a varios comerciales, éstos son capaces de ver todos los pedidos que se han realizado a dicho proveedor, los hayan hecho ellos o no.

¿Alguna opción que se me escapa o algún módulo extra disponible para configurar ésto?

Muchas gracias

igorae
Novato
Mensajes: 20
Registrado: Mar, 02/02/2021, 16:16

Mensaje por igorae »

Me respondo a mi mismo con una solución un poco artesanal que he conseguigo hacer:

Primero he activado lo de "Ampliar el acceso a todos los terceros" para todos los grupos de usuarios en "Usuarios > Grupos > Permisos", para que todos compartan proveedores.

Además de ésto he activado un módulo (en mi caso Bancos) que no necesito y solo le he dado permiso de utilizarlo al grupo de usuarios que quiero que comparta proveedores, pero que solo vea los pedidos que ha realizado él mismo.

No he sido capaz de filtrar las siguientes fórmulas por Grupo de usuarios, con lo que solo se me ha ocurrido hacerlo como comento, diciéndole al if que si el usurio tiene permisos del módulo Banco ($user->rights->banque->lire) filtre los resultados de los pedidos por su apellido

¿Alguno sabría condicionar un if por nombre de grupo de usuarios en Dolibarr?

En el archivo fourn/commande/list.php he añadido:

Linea 103 de Dolibarr 12.04

Código: Seleccionar todo

if ($user->rights->banque->lire) {
	$search_request_author = $user->login;
}
Línea 215 de Dolibarr 12.04:

He quitado la línea:

Código: Seleccionar todo

$search_request_author = $user->' ';
Y la he cambiado por:

Código: Seleccionar todo

if ($user->rights->banque->lire) {
	$search_request_author = $user->login;
}    else {
    $search_request_author = '';
}
Con esto lo que se consigue es que el usuario, cuando vaya a la lista de pedidos, le salga el filtro de su nombre de usuario introducido por defecto, y aunque lo borre o le de a la x de borrar filtros, siempre le filtra los pedidos por su nombre de usuario como ordenante del mismo. Así no ve el resto de pedidos que han hecho los demás usuarios.

Sin embargo, el usuario puede navegar entre pedidos entrando en uno y usando las flechas de arriba a la derecha, porque realmente tiene los permisos para ver el resto de pedidos, yo simplemente se los he escondido.

Si queremos quitar esas flechas, se van a modificar todas las webs de Dolibarr, eliminándose también las flechas del resto de páginas de los módulos (Miembros, Facturas, Productos...).

Las instrucciones para quitarlas son:

core/class/html.form.class.php

y comentar estás líneas /7373 y 7374 de Dolibarr 12.04)

Código: Seleccionar todo

// $ret .= '<li class="pagination">'.$previous_ref.'</li>';
// $ret .= '<li class="pagination">'.$next_ref.'</li>';
Aparte de todo esto, habría que quitarle a esos usuarios los permisos para acceder a los menús que dan acceso al listado de los últimos pedidos modificados, y a esos mismos paneles en la página de inicio, ya que como digo, la solución "artesanal" es simplemente esconder lo que no quiero que vean, pero si llegan a un enlace que se lo muestre, lo van a poder ver.

Una solución poco segura, pero que me sirve, de momento para lo que quiero.

Lo dejo por aquí por si a alguien le sirve o le inspira para otra cosa.