lunes, 31 de diciembre de 2018

Dolibarr 8: Lecciones aprendidas #1

Un buen día decidí comenzar a configurar Dolibarr 8.0.3, la última versión disponible, y encontré que lo que en algunos lugares aparece como "la panacea" puede tener sus trucos si queremos que el entorno se parezca a algo medianamente normal.
Luego de la instalación, que no explico aquí ya que el sitio de Dolibarr lo explica más que bien, y por ser realmente trivial, comencé a activar módulos, grupos, usuarios, y demás. Gran error!
Todo quedó mezclado, los permisos se volvieron inmanejables, y en un momento sentí que la solución ya estaba completamente fuera de control.
Entonces opté por la mejor opción: desactivar módulos, y comenzar desde cero. Segundo gran error. Primero se debe eliminar toda configuración de cada módulo, si no queremos que cuando lo activemos todo vuelva a ser el horror que alguna vez fue.
Recuerden esto como una ley: si en algún momento cargaron tiempo para un usuario, asociado a un proyecto, si no eliminan esos tiempos, tampoco pueden eliminar el proyecto, y por ende tampoco al cliente al que se asocia ese proyecto. Eso del "drop cascade" no parece ser una herramienta útil en este caso...
Entonces sí, ya bien limpios, desactivamos módulos.
Y comenzamos desde cero, de nuevo.
Veamos cómo vamos activando módulos, en base a las necesidades que tenemos.

Primer objeto generado: Un usuario administrador!
El primer elemento que generé fue un usuario administrador. Esto se hace de forma bien sencilla, sólo yendo a Home -> Users & Groups -> New User, completando los campos de datos del usuario, y seleccionando "Yes" donde se pregunta si es administrador.
Con eso, ya tenemos satisfacción garantizada por un buen rato.



Algo de configuración: Empresa, y Mails
Con este usuario que generé en el punto anterior, y seleccionando Home -> Setup -> Company/Organization, y presionando el botón "Modify", configuré el nombre de la empresa, su dirección, su país, su ciudad, código postal, logo, CUIT, y demás datos fundamentales para el futuro del sistema.



Acto seguido, con Home -> Setup -> Emails, llegué a la configuración del servidor de correo. Elegí SMTP/SMTPS Socket Library como "Mehod to use to send emails" para poder completar los valores del mail server, su puerto, protocolo de encripción, usuario y clave. Fue lo más sencillo de configurar según los valores que tengo para mi mail server.
Cuando logré configurar el envío de correos, con un usuario genérico de mail, y que me llegue un mensaje a su nombre, ya consideré que la configuración estaba lista. Ahora sí, listo para lo que viene.

Cómo será la organización?
Fundamental...definir qué queremos hacer con el producto. Luego podrá sufrir modificaciones, pero es importante entender que al menos, una organización sencilla debe poder estar completamente reflejada en el sistema.
Para probar este producto, que viene con la mejor propaganda y comentarios en foros, pensé en una organización donde haya un supervisor, un ejecutivo de cuentas, y un par de ingenieros de soporte.
El supervisor deberá poder generar clientes, así como el ejecutivo de cuentas, pero los clientes generado por el supervisor no deberán necesariamente estar visibles para el ejecutivo de cuentas a menos que explícitamente así se defina, así como para los ingenieros de soporte.
Se deberán poder dar de alta clientes o potenciales clientes, contactos por cada uno de ellos, luego proyectos, y tareas asociadas.
Podrán haber clientes con contratos mensuales, otros con proyectos asociados, y cada persona del equipo deberá poder contar con la posibilidad de cargar horas de trabajo a ellos.
Sencillo, y completamente lógico para una empresa que decida comenzar a gestionar su operación por medio de Dolibarr. Allá vamos!

Creación de grupos y usuarios
Para que la organización y Dolibarr sean coherentes, crearé dos grupos "Ventas" y "Staff". Para ello, seleccionaré Home -> Users&Groups -> New Group, y los crearé sólo colocando el nombre en el campo adecuado.



Notemos que los grupos aún no tienen permiso para nada, por lo que seleccionaremos cada uno de ellos, luego el tab Group Permissions otorgándoles, en la sección "Users & Groups", la opción "Modify his own password".
Ahora, crearé los usuarios "ventas01@altaempresa.com", "tecnico01@altaempresa.com", "tecnico02@altaempresa.com", y "tecnico03@altaempresa.com", seleccionando Home -> Users & Groups -> New User y agregando sus datos para cada caso. Recordemos colocar su supervisor, que en el caso de nuestro ejemplo será "Carlos Capo":



Entonces, la lista de usuarios nos quedará de la siguiente forma:


Ahora debemos agregar los usuarios generados a los grupos que antes armamos. Para eso, seleccionamos cada grupo, y en la sección "Non assigned users", seleccionamos el usuario deseado, y luego presionamos el botón "Add":


Listos los grupos y los usuarios, ahora procederemos a agregar y configurar módulos.

Primer módulo: Third Parties
Como queremos poder dar de alta clientes tanto efectivos como potenciales, y sus contactos, lo primero que tendremos que hacer es activar el módulo "Third Parties". Para eso vamos a Home -> Setup -> Modules/Applications -> Customer Relation Management (CRM) y activamos Third Parties.
Dejaremos la configuración de Third Parties tal como está, al menos por ahora.
Veremos que aparece un nuevo ícono en el menú superior de nuestro Dolibarr:



Ahora bien, si nuestro vendedor estrella quisiera ingresar, y comenzar a trabajar dando de alta los clientes o potenciales, no podría. El motivo es sencillo, y es que no le hemos dado permisos. Imaginemos su frustración si ingresa y nota que su ícono "Third Parties" aparece como "Not Allowed":



Entonces, habiendo ingresado con nuestro usuario administrador, iremos a Home -> Users & Groups -> Ventas -> Group Permissions -> Create/modify third parties linked to user (presionamos el "+").
Luego Home -> Users & Groups -> Ventas -> Group Permissions -> Create/modify contacts (presionamos el "+").
Listo, nuestro vendedor ya puede cargar datos relacionados con clientes o potenciales y sus contactos asociados seleccionando Third Parties -> New Third Party.
Luego, cuando tengamos cargados los clientes o potenciales, comenzaremos a cargar las propuestas que tengamos para cada uno de ellos. Pero para eso necesitaremos nuevos módulos activados.