Manual de usuario del módulo Purchases para el ERP Dolibarr

Por: Sergi Rodríguez
17-11-2017 21:03

Desde IMASDEWEB hemos desarrollado el módulo "Purchases" (módulo "Compras") para el proyecto opensource Dolibarr ERP/CRM en PHP (versiones 5.X y 6.X). En esta página presentamos su funcionamiento, por si ya eres usuario o estás pensando en usarlo.

Nota: english version of this user guide.

 

Presentación

Este módulo Compras ha sido desarrollado a modo de asistente que de manera rápida y sencilla nos permita realizar la compra de X productos:

  • Pudiendo comparar precios de varios proveedores, incluso en diferentes monedas.
     
  • Pudiendo enviar por correo con un solo clic invitaciones a nuestros proveedores seleccionados para que visiten un enlace con el que acceden a un sencillo formulario multidioma en el que podrán capturar los precios por nosotros, declinar o confirmar la venta de alguno de los productos solicitados, y añadir algún comentario extra sobre condiciones de entrega y/o pago.
     
  • Pudiendo modificar / añadir / eliminar precios de cualquier proveedor a cualquier producto desde esa misma tabla de precios, con apenas dos clics.
     
  • Pudiendo crear los correspondientes pedidos también con dos clics, rellenador automáticamente con toda la información de cada cada proveedor y los productos.

En definitiva, una interfaz más fácil y ágil de usar que permite hacer lo mismo que ya puedes hacer con la interfaz nativa de Dolibarr pero de un modo mucho más cómodo. Bien, de hecho en Dolibarr se te haría muy complejo comparar precios de cada producto por cada proveedor y luego ir armando los diferentes pedidos. Y obviamente no hay modo de que te capturen los precios que tú necesitas.

Nota: dado que Dolibarr tiene un tratamiento incompleto y en algunos puntos incongurente del manejo de diferentes monedas (EUR, USD, MXN, MAD, etc... ) para los precios de los productos, no ha habido más remedio que implementar un pequeño parcheo de Dolibarr. Al final de esta guía explicamos como hacerlo (es un simple copiar y pegar de no más de 20 líneas de código en un solo archivo PHP de Dolibarr). Pero es necesario que antes de que continues leyendo sepas que si quieres que este módulo Purchases funcione bien en un entorno multi-moneda deberás hacer ese parcheo de Dolibarr.

 

Instalación

Ya debes saber que para instalar un módulo en Dolibar es tan sencillo como colocarlo en el directorio /htdocs/ del árbol de archivos de Dolibarr. En otras palabras:

  1. Crea el directorio /htdocs/purchases/
  2. Coloca el contenido del archivo ZIP dentro de ese directorio

Una vez que lo hayas hecho, aparecerá en la configuración de los módulos, en el panel de Dolibarr. En el caso de este módulo lo verás en el grupo Gestión de Relaciones con Proveedores (SRM) , con el nombre Compras.

 

Acceso al módulo

Una vez activado, llegaremos a él de dos modos posibles:

  • visitando la sección Comercial, y luego en el menú lateral izquierdo veremos las dos opciones para este módulo: Nueva compra / Listado

                            
     
  • o bien, desde el Tablero de inicio , en donde tendremos una caja con las Últimas 5 compras.

             
     

 

Listado de compras

No hay mucho que decir del listado de procesos de compra. Lo más interesante es explicar los posibles valores para la columna Estado:

  • Borrador: cuando solo tenemos una lista de productos a comprar
  • Cotizando: cuando tenemos precios de uno o más proveedores para algunos de los productos a comprar
  • Comprando: cuando ya se ha seleccionado un precio para alguno de los productos y se ha creado el correspondiente pedido de compra
  • Completado: cuando ya se crearon pedidos de compra para todos los productos

 

Editando una compra

La ficha de una compra a medio hacer se vería como la que se muestra a continuación (pulsar para abrir en otra pestaña del navegador y poder ver el detalle):

  • Arriba hay muestra un breve formulario con apenas la mínima información descriptiva, de la que vale la pena destacar que podemos vincular la compra a un proyecto que hayamos creado en Dolibarr, si es que hemos activado el módulo de Proyectos.
     
  • Debajo de ese breve formulario, hay una barra de botones de acción, para cambiar grabar cambios en dicho formulario, para enviar por correo solicitudes de cotización a los proveedores seleccionados, para crear pedidos o para eliminar la compra:
  • Debajo de esos botones tenemos la lista de productos: una tabla en donde cada fila contendrá un producto a comprar y a su vez una tabla comparando precios de uno o más proveedores. En la primera línea tenemos el estado de este producto: 1) sin precios, 2) con precios pero sin pedido, 3) creado un pedido.


    Además, mientras no realizemos su pedido podemos cambiar la cantidad que necesitamos comprar. Los  botones que hay al final de la línea nos permiten:  quitar el producto de este proceso de compra,  grabar cambios (si modificamos cualquier valor en cualquiera de las cajas de texto de esta fila de la tabla),  acceder a la página de gestión del stock del producto en Dolibarr.

    Nota: es importante entender que podemos cambiar los valores de las cajas de texto de esta tabla de precios, es decir cambiar la cantidad del producto, el precio unitario o el mínimo de unidades que el proveedor nos exige comprar, y la página automáticamente recalculará en tiempo real el precio final en la última columna, en la moneda de nuestra compañía, pero estos cambios no se guardarán solos en el servidor (!!) sino que si queremos guardar los cambios hemos de pulsar el botón de grabar cambios .

     
  • Veamos en detalle la tabla de comparación de precios. De particular interés es la parte que contiene las cajas para editar precios:



    Colores: las cajas de texto aparecerán de color verde si el proveedor en cuestión respondió a la solicitud de cotización (más abajo veremos como realizar esa solicitud) y confirmó tener en existencias ese producto. En cambio, aparecerán en color naranja si se envió ya la solicitud a ese proveedor pero el proveedor aún no ha respondido. Finalmente, se verá en color rojo cuando el proveedor haya respondido y haya indicado que este producto no lo puede surtir. En este último caso el control circular para Crear pedido (última columna de la tabla de precios) será deshabilitado y en su lugar aparecerá un icono que mostrará el comentario dejado por el proveedor.

    Multi-moneda: es importante entender que este módulo toma los precios de los diferentes proveedores en la moneda de cada proveedor. Cuidado, porqué de momento (versiones de Dolibarr anteriores o iguales a 6.X) NO ES ASÍ. En Dolibarr, de momento, los precios introducidos en el sistema SIEMPRE son en la moneda que hayamos definido en el sistema para nuestra compañía !!!! Por esa razón es necesario y conveniente que hagas el parcheo de Dolibarr que te sugerimos al final de esta guía. Afectará simplemente a cómo se añade el precio de un producto a un pedido.

    Cálculos: dicho esto, con este módulo Purchases y el parche de Dolibarr sugerido podemos manejar "con normalidad" precios de proveedores en otras monedas (primera columna) y a la vez poder comparar el precio final (penúltima columna) en nuestra propia moneda (MXN en mi caso). Ten en cuenta que para calcular el Precio final se multiplica el Precio unitario por el Mínimo de unidades o por el número de Unidades (se toma el que sea mayor de estos dos valores). Por ejemplo, en el caso del segundo proveedor de la imagen (el de color naranja) nos exige comprar un mínimo de 5 unidades, así que multiplicamos el precio unitario por 5 para obtener el Precio final. Mientras que para los otros proveedores multiplicamos por 4, que es el número de unidades que necesitamos.

    Cambios de moneda: los cambios de moneda (es decir, cuántos MXN son un USD) el módulo Purchases los toma en tiempo real de la página web del Fondo Monetario Internacional. En realidad, para no llamar demasiadas veces a esa web externa y para no ralentizar la carga de esta página de cotización, se hace una consulta de esa página tan solo cada 12 horas. En definitiva, podemos estar bastante seguros de que el cálculo entre monedas es suficientemente ajustado a la realidad, y funciona totalmente de forma automática y en segundo plano. Por cierto, debes saber también que una vez que hacemos el pedido de un producto, el módulo Purchases registra los cambios de moneda en ese momento, y en el futuro, cuando vuelvas a consultar la ficha de esta compra, te va a mostrar la tabla comparativa de precios conforme a los cambios de moneda en el momento de hacer el pedido. Por mientras no haya un pedido creado, los cambios se irán actualizando, así que hoy puedes ver un precio de $11USD en pesos mexicanos diferente al que ayer veías en la misma tabla, obviamente porqué cada día los cambios de moneda fluctúan.




    Botón eliminar: cuando lo pulsemos nos va a mostrar un cuadro de diálogo preguntándonos si queremos solamente quitar este precio de esta comparativa, o si queremos también eliminar el precio de este proveedor para este producto del sistema Dolibarr. Si estás seguro de que el proveedor ya nunca te va a vender ese producto o simplemente nunca te ha llegado a dar un precio, es recomendable que escojas la segunda opción.

     Botón editar precio: nos abrirá en una nueva pestaña del navegador el formulario de edición del precio de este proveedor para este producto que hay en Dolibarr. ¿Para qué nos es útil? Pues porqué ahí tenemos más opciones de edición que dentro de nuestra tabla comparativa. Por ejemplo, allá podemos editar el IVA a aplicar para este producto.

     Botón email: es un enlace del tipo "mailto" y por tanto nos abrirá nuestro programa de envío de correo que tengamos configurado en nuestra máquina, rellenando la casilla de destinatario con la dirección de correo del proveedor en cuestión. Por esta razón, este botón no aparece cuando en Dolibarr no hemos rellenado el campo email para el proveedor en cuestión.



    Crear pedido: finalmente, cuando ya tengamos los precios que estábamos esperando de los diferentes proveedores, o cuando necesitamos hacer ya un pedido, marcaremos la casilla circular de la última columna Crear pedido. En realidad, el modo de trabajar es así: para cada uno de los productos que hayamos incluído en esta compra marcaremos las ofertas de los proveedores que nos parezcan más adecuadas. Y sin necesidad de haber hecho esa elección para todos los productos, pulsaremos sobre el botón Crear pedidos que hay encima de la tabla de productos y la página nos desplegará una nueva tabla con los pedidos a crear para cada proveedor, si es que hubiesen varios proveedores seleccionados, y los productos a pedir a cada uno:



    Si pulsamos de nuevo el botón Crear pedidos el cuadro de diálogo se esconderá, y si volvemos a hacerlo se mostrará de nuevo pero actualizado. Es decir, que si entre ambos clics hemos cambiado nuestra selección de proveedor para algún producto, se actualizará esta lista de pedidos/proveedores.

    Cuando pulsemos cualquiera de los botones Crear pedido en la columna Acción, el módulo Purchases creará el pedido correspondiente en modo borrador, rellenando la información del proveedor, del cambio de moneda (si fuese en una moneda diferente a la de nuestra compañía) y la lista de productos y cantidades que necesitamos comprar. Se nos abrirá el nuevo pedido en una pestaña nueva del navegador.

    Una vez creado un pedido de este modo, al refrescar esta página de la compra, veremos como la tabla comparativa de precios de los productos ordenados ha quedado deshabilitada y nos aparece un botón que nos da acceso a la ficha del pedido en cuestión:



     

 

Solicitar cotizaciones a los proveedores

Lo primero que hay que hacer notar es que este módulo Purchases no usa la funcionalidad nativa de Solicitud de cotizaciones a proveedores que trae Dolibarr de forma nativa. Se ha optado por construir una solución propia para evitar los problemas en Dolibarr relacionados con la multimoneda. Así pues, vas a ver a continuación que el sistema que hemos construido es altamente funcional, multimoneda y multi-idioma, pero no crea ningún registro en Dolibarr para las cotizaciones de proveedores.

Dicho esto, debemos proceder de esta manera:

  1. una vez que en nuestra compra tenemos confeccionada la lista de productos a comprar
     
  2. el sistema automáticamente nos habrá añadido los precios de los proveedores que ya existan en nuestro sistema para esos productos
     
  3. opcionalmente, podemos añadir más proveedores a un producto concreto (puedes indicar como precio "0" si todavía no tienes el precio de ellos para este producto)
     
  4. entonces pulsando el botón Enviar correos solicitando cotización se desplegará un cuadro de diálogo, desde donde con un solo click sobre el nuevo botón Enviar correos solicitando cotización se enviarán dichos correos, al menos a los proveedores para los que tengamos definido una dirección de correo electrónico. En el caso de la imagen de abajo, solamente el primero.


     
  5. en ese correo que recibirán los proveedores se les especifica EN SU IDIOMA (mientras el módulo Purchases esté traducido en ese idioma) la lista de productos que nos interesa cotizar y se les invita a visitar un formulario web en donde pueden capturar ellos mismos los precios y condiciones.
     
  6. nosotros podemos visitar ese formulario web de captura de precios pulsando sobre los botones Formulario del cuadro de diálogo anterior. Cada formulario es único para cada compra y proveedor, y los parámetros de la URL están encriptados para evitar que puedan manipular la URL y acceder a los precios de oros proveedores.

    Es recomendable que si el proveedor en cuestión no tiene correo electrónico o nos hace llegar sus precios por otro medio (teléfono, whatsapp, correo, etc...) nosotros usemos su formulario de captura para introducir sus precios. De este modo, los veremos marcados en verde (o en rojo, en caso de que no surta algún producto) en la tabla comparativa de precios de este módulo.
     
  7. así luce ese formulario web de captura de precios para el proveedor:



    No necesita muchos comentarios, pues se ha pretendido que sea auto-explicativo para que los proveedores se sientan lo más cómodos posible. Si pulsamos sobre el botón Información extra el proveedor tiene la opción de añadir un comentario general sobre este "posible pedido", y también puede facilitarnos información de contacto más completa. Pero es un paso opcional:



    Nota: En el momento que nosotros realicemos un pedido que incluya alguno de estos productos, ya sea para este proveedor o para otro de nuestra lista, se bloquerá la introducción de precios en las filas correspondientes de esta tabla de precios, si es que el proveedor entra tarde o entra más adelante a visitar este formulario.

     
  8. después de que el proveedor pulse sobre el botón Enviar de ese formulario de cotización el sistema enviará un correo electrónico al usuario de Dolibarr que creó esa compra en el sistema, con los precios y con los comentarios del proveedor. Información que por otra parte se muestra en la tabla comparativa de precios del módulo. También esos precios pasan a modificar los precios que tenemos almacenados en Dolibarr para esos productos y ese proveedor.

 

Parcheo de Dolibarr (versiones 5.X y 6.X)

Este pequeño parcheo de Dolibarr es necesario si en tu Dolibarr has activado el módulo "multi-moneda", es decir, si vas a tener proveedores o clientes que manejen diferentes monedas a la de tu compañía:

En este caso, debes editar el siguiente archivo de tu Dolibarr:

/htdocs/fourn/class/fournisseur.commande.class.php

localiza la línea #1467:

$tabprice = calcul_price_total($qty, $pu, ... ... ... );

y encima de esa línea debes pegar estas otras:

// == reverse prices if the supplier currency don't match the order currency
    // == get the supplier currency
        $supplier_currency = '';
        $sql = "SELECT * FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pr "
               ." LEFT JOIN ".MAIN_DB_PREFIX."societe as supp "
               ." ON pr.fk_soc = supp.rowid"
               ." WHERE pr.rowid=".$fk_prod_fourn_price;
        $resql = $this->db->query($sql);
        if ($resql) {
            while($row = $resql->fetch_assoc())
                $supplier_currency = $row['multicurrency_code'];
        }
    // == decide if to invert prices
        if ($supplier_currency != $conf->currency){
            $pu_ht_devise = $pu;
            $pu = round($pu_ht_devise / $this->multicurrency_tx , 4);
        }

Explicación: se averigua la moneda del proveedor, y si no coincide con la del sistema (la de nuestra compañía) entonces intercambiamos los valores del precio en la moneda supuestamente del proveedor y en la del sistema, para "engañar" a Dolibarr. Ten en cuenta que con este parcheo estamos hackeando la función nativa de Dolibarr que añade un producto a un pedido, pero créeme, es la mejor solución en estos momentos en el que esta cuestión de la multimoneda está siendo re-programada por el equipo oficial de Dolibarr. Ahora hace justo 2 meses cambiaron este comportamiento en las versiones 5.X y 6.X pero no lo hicieron del todo: está pendiente finalizar su implementación completa. Por esa razón estamos "obligados" a hacer este parche. Pruébalo, vas a ver que ahora los precios de los productos en otras monedas se añaden bien a los pedidos a proveedores. Debes recordar solamente que ahora los precios de los proveedores los vas a introducir en la moneda del proveedor!! (vamos, lo que es lo más lógico!).

 

Website tipo DEMO

Si te interesa probar el módulo Purchases en un Dolibarr 5.0.8, contáctanos y con gusto te damos el usuario y la contraseña. No las ponemos aquí públicas para evitarnos ataques innecesarios.

→ Formulario de contacto

Etiquetas : dolibarr | purchases | erp | stock

Comentarios 0 Visitas 866

Comentarios


Añada su comentario:

(pregunta anti-robots)

Enviar

DÍGANOS QUÉ NECESITA

¡¡ Le respondemos antes de 24h !!
Puede dejarnos su teléfono.

Puede rellenar el formulario (pulsar botón derecha) o bien aquí tiene nuestros datos de contacto.

(pregunta anti-robots)
Aceptamos pagos en Bitcoins, Ethereum, y otras criptomonedas.
Leer más