forked from Wavyzz/dolibarr
Fix: debut de correction sur pb arrondis
This commit is contained in:
@@ -1842,15 +1842,12 @@ function price($amount, $html=0, $outlangs='')
|
|||||||
|
|
||||||
// On pose par defaut 2 decimales
|
// On pose par defaut 2 decimales
|
||||||
$decimal = 2;
|
$decimal = 2;
|
||||||
$amount = ereg_replace(',','.',$amount);
|
$amount = ereg_replace(',','\.',$amount);
|
||||||
$datas = explode('.',$amount);
|
$datas = split('\.',$amount);
|
||||||
$cents = $datas[1];
|
$decpart = $datas[1];
|
||||||
// On augmente au besoin
|
|
||||||
if ($cents > 99 )
|
|
||||||
$decimal = 3;
|
|
||||||
|
|
||||||
if ($cents > 999 )
|
// On augmente au besoin si il y a plus de 2 d<>cimales
|
||||||
$decimal = 4;
|
if (strlen($decpart) > 2) $decimal=strlen($decpart);
|
||||||
|
|
||||||
// Formate nombre
|
// Formate nombre
|
||||||
if ($html)
|
if ($html)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -31,21 +31,21 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Permet de calculer les parts total HT, TVA et TTC d'une ligne de
|
\brief Permet de calculer les parts total HT, TVA et TTC d'une ligne de
|
||||||
facture, propale ou autre depuis:
|
facture, propale, commande ou autre depuis:
|
||||||
Prix unitaire, quantit<69>, remise_percent_ligne, txtva, remise_percent_global.
|
quantit<69>, prix unitaire, remise_percent_ligne, txtva, remise_percent_global
|
||||||
\param qty
|
\param qty Quantit<69>
|
||||||
\param pu
|
\param pu Prix unitaire HT
|
||||||
\param remise_percent_ligne
|
\param remise_percent_ligne Remise ligne
|
||||||
\param txtva
|
\param txtva Taux tva
|
||||||
\param remise_percent_global
|
\param remise_percent_global 0
|
||||||
\param price_base_type indique si on calcule sur le HT ou le TTC
|
\param price_base_type HT=on calcule sur le HT, TTC=on calcule sur le TTC
|
||||||
\param pu_ttc prix de unitaire TTC
|
\param pu_ttc Prix unitaire TTC
|
||||||
\return result[0] total_ht
|
\return result[0,1,2] (total_ht, total_tva, total_ttc)
|
||||||
result[1] total_tva
|
|
||||||
result[2] total_ttc
|
|
||||||
*/
|
*/
|
||||||
function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $remise_percent_global=0, $price_base_type='HT', $pu_ttc=0)
|
function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $remise_percent_global=0, $price_base_type='HT', $pu_ttc=0)
|
||||||
{
|
{
|
||||||
|
$maxdecimalfortotal=2;
|
||||||
|
|
||||||
$result=array();
|
$result=array();
|
||||||
|
|
||||||
if ($price_base_type =='HT')
|
if ($price_base_type =='HT')
|
||||||
@@ -54,8 +54,8 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $remise_pe
|
|||||||
$tot_sans_remise = $pu * $qty;
|
$tot_sans_remise = $pu * $qty;
|
||||||
$tot_avec_remise_ligne = $tot_sans_remise * ( 1 - ($remise_percent_ligne / 100));
|
$tot_avec_remise_ligne = $tot_sans_remise * ( 1 - ($remise_percent_ligne / 100));
|
||||||
$tot_avec_remise = $tot_avec_remise_ligne * ( 1 - ($remise_percent_global / 100));
|
$tot_avec_remise = $tot_avec_remise_ligne * ( 1 - ($remise_percent_global / 100));
|
||||||
$result[0] = round($tot_avec_remise, 2);
|
$result[0] = round($tot_avec_remise, $maxdecimalfortotal);
|
||||||
$result[2] = round($tot_avec_remise * ( 1 + ($txtva / 100)), 2);
|
$result[2] = round($tot_avec_remise * ( 1 + ($txtva / 100)), $maxdecimalfortotal);
|
||||||
$result[1] = $result[2] - $result[0];
|
$result[1] = $result[2] - $result[0];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -67,14 +67,15 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $remise_pe
|
|||||||
$tot_avec_remise_ligne = $tot_sans_remise * ( 1 - ($remise_percent_ligne / 100));
|
$tot_avec_remise_ligne = $tot_sans_remise * ( 1 - ($remise_percent_ligne / 100));
|
||||||
$tot_avec_remise = $tot_avec_remise_ligne * ( 1 - ($remise_percent_global / 100));
|
$tot_avec_remise = $tot_avec_remise_ligne * ( 1 - ($remise_percent_global / 100));
|
||||||
|
|
||||||
$result[2] = round($tot_avec_remise, 2);
|
$result[2] = round($tot_avec_remise, $maxdecimalfortotal);
|
||||||
$result[0] = round($tot_avec_remise / ( 1 + ($txtva / 100)), 2);
|
$result[0] = round($tot_avec_remise / ( 1 + ($txtva / 100)), $maxdecimalfortotal);
|
||||||
$result[1] = $result[2] - $result[0];
|
$result[1] = $result[2] - $result[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Permet de calculer un prix.
|
\brief Permet de calculer un prix.
|
||||||
\param products
|
\param products
|
||||||
|
|||||||
Reference in New Issue
Block a user