Fix: TTC must always be exactly HT + VAT
This commit is contained in:
parent
3ad74bb92b
commit
a66d44431d
@ -178,35 +178,35 @@ $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
|||||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[2]."<br>\n";
|
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||||
|
|
||||||
$s=10/3;$qty=1;$vat=0;
|
$s=10/3;$qty=1;$vat=0;
|
||||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
||||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[2]."<br>\n";
|
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||||
|
|
||||||
$s=10/3;$qty=2;$vat=0;
|
$s=10/3;$qty=2;$vat=0;
|
||||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
||||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[2]."<br>\n";
|
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||||
|
|
||||||
$s=10/3;$qty=1;$vat=10;
|
$s=10/3;$qty=1;$vat=10;
|
||||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
||||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[2]."<br>\n";
|
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||||
|
|
||||||
$s=10/3;$qty=2;$vat=10;
|
$s=10/3;$qty=2;$vat=10;
|
||||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
|
||||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[2]."<br>\n";
|
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|
||||||
|
|||||||
@ -744,7 +744,7 @@ MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b>
|
|||||||
MAIN_DISABLE_PDF_COMPRESSION=Use PDF compression for generated PDF files.
|
MAIN_DISABLE_PDF_COMPRESSION=Use PDF compression for generated PDF files.
|
||||||
MAIN_ROUNDING_RULE_TOT= Size of rounding range (for rare countries where rounding is done on something else than base 10)
|
MAIN_ROUNDING_RULE_TOT= Size of rounding range (for rare countries where rounding is done on something else than base 10)
|
||||||
UnitPriceOfProduct=Net unit price of a product
|
UnitPriceOfProduct=Net unit price of a product
|
||||||
TotalPriceAfterRounding=Total price inc. tax after rounding
|
TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
|
||||||
ParameterActiveForNextInputOnly=Parameter effective for next input only
|
ParameterActiveForNextInputOnly=Parameter effective for next input only
|
||||||
NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
|
NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
|
||||||
NoEventFoundWithCriteria=No security event has been found for such search criterias.
|
NoEventFoundWithCriteria=No security event has been found for such search criterias.
|
||||||
|
|||||||
@ -745,7 +745,7 @@ MAIN_MAX_DECIMALS_SHOWN= Nombre de décimales maximum pour les montant affichés
|
|||||||
MAIN_DISABLE_PDF_COMPRESSION= Utiliser la compression PDF pour les fichiers PDF générés.
|
MAIN_DISABLE_PDF_COMPRESSION= Utiliser la compression PDF pour les fichiers PDF générés.
|
||||||
MAIN_ROUNDING_RULE_TOT= Taille du pas des arrondis (pour les très rares pays qui arrondissent sur une autre base que la base 10)
|
MAIN_ROUNDING_RULE_TOT= Taille du pas des arrondis (pour les très rares pays qui arrondissent sur une autre base que la base 10)
|
||||||
UnitPriceOfProduct=Prix unitaire HT d'un produit
|
UnitPriceOfProduct=Prix unitaire HT d'un produit
|
||||||
TotalPriceAfterRounding=Prix total TTC après arrondis
|
TotalPriceAfterRounding=Prix total (HT/TVA/TTC) après arrondis
|
||||||
ParameterActiveForNextInputOnly= Paramètre effectif pour les prochaines saisies uniquement
|
ParameterActiveForNextInputOnly= Paramètre effectif pour les prochaines saisies uniquement
|
||||||
NoEventOrNoAuditSetup= Aucun événement d'audit de sécurité n'a été enregistré. Ceci peut être normal si l'audit n'a pas été activé dans la configuration - sécurité - audit.
|
NoEventOrNoAuditSetup= Aucun événement d'audit de sécurité n'a été enregistré. Ceci peut être normal si l'audit n'a pas été activé dans la configuration - sécurité - audit.
|
||||||
NoEventFoundWithCriteria= Aucun évéenement d'audit de sécurité trouvé avec ces critères.
|
NoEventFoundWithCriteria= Aucun évéenement d'audit de sécurité trouvé avec ces critères.
|
||||||
|
|||||||
@ -116,14 +116,26 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $txlocalta
|
|||||||
$result[5] = $result[5] + $result[12];
|
$result[5] = $result[5] + $result[12];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If rounding is not using base 10 (rare)
|
||||||
if (! empty($conf->global->MAIN_ROUNDING_RULE_TOT))
|
if (! empty($conf->global->MAIN_ROUNDING_RULE_TOT))
|
||||||
|
{
|
||||||
|
if ($price_base_type == 'HT')
|
||||||
{
|
{
|
||||||
$result[0]=round($result[0]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
$result[0]=round($result[0]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
||||||
$result[2]=round($result[2]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
|
||||||
$result[1]=round($result[1]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
$result[1]=round($result[1]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
||||||
|
$result[2]=$result[0]+$result[1];
|
||||||
$result[9]=round($result[9]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
$result[9]=round($result[9]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
||||||
$result[10]=round($result[10]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
$result[10]=round($result[10]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$result[1]=round($result[1]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
||||||
|
$result[2]=round($result[2]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
||||||
|
$result[0]=$result[2]-$result[0];
|
||||||
|
$result[9]=round($result[9]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
||||||
|
$result[10]=round($result[10]/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//print "Price.lib::calcul_price_total ".$result[0]."-".$result[1]."-".$result[2];
|
//print "Price.lib::calcul_price_total ".$result[0]."-".$result[1]."-".$result[2];
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user