domingo, 27 de diciembre de 2015

Total de ISV, VAT no sale igual en Dolibarr

Problema:

El dolibarr no muestra el total del impuesto sobre venta (ISV / VAT) de forma correcta, quita monedas en el impuesto.

Explicación:

Lo que sucede es que el sistema de dolibarr hace el cálculo con el precio unitario del producto. Y durante el proceso de cálculo de los totales va quitando los dígitos cuando son mayores a dos, es decir, solo toma dos dígitos después del punto.
El error que se cometió, es que esos dígitos no deberían ser quitados durante el proceso, sino hasta haber finalizado el proceso. Me explico, lo que debieron hacer es que una vez que ya hayan sacado los totales, quitarle los dígitos que están de más… y no quitarlos antes de sacar los totales. 

Solución: 

Buscar la librería en htdocs/core/lib/price.lib.php

Una vez ahí de arriba hacia abajo quitar todos 
price2num(…,'MU')
price2num(…,'MT')

Pero deja la formula que están dentro del “price2num”… Hasta llegar a:
$pu = price2num($pu / (1 + ($txtva / 100)),'MU');
    }
$apply_tax = false;
    switch($localtax1_type) {
      case '1':     // localtax on product or service
        $apply_tax = true;
        break;
      case '3':     // localtax on product
        if ($type == 0) $apply_tax = true;
        break;
      case '5':     // localtax on service
        if ($type == 1) $apply_tax = true;
        break;
    }

Ejemplo:

Si tienes:
 $result[5] = price2num(($pu + $localtaxes[2]), 'MU');

Te debe quedar:
$result[5] = ($pu + $localtaxes[2]);

No hay comentarios:

Publicar un comentario

Deprecated: mysql_select_db(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

¿Les ha sucedido que intentan, hacer un query de conexión y les sale un mensaje de que la extensión que están usando es obsoleta? Les pon...