Modifi calcul_price_total pour calculer en TTC

This commit is contained in:
Rodolphe Quiedeville 2006-12-15 11:59:39 +00:00
parent e6c29cf43a
commit 158b3a9a6b

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2002-2004 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 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
@ -29,8 +29,6 @@
Ensemble des fonctions permettant de calculer un prix. Ensemble des fonctions permettant de calculer un prix.
*/ */
/** /**
\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 ou autre depuis:
@ -40,19 +38,40 @@
\param remise_percent_ligne \param remise_percent_ligne
\param txtva \param txtva
\param remise_percent_global \param remise_percent_global
\param price_base_type indique si on calcule sur le HT ou le TTC
\param pu_ttc prix de unitaire TTC
\return result[0] total_ht \return result[0] total_ht
result[1] total_tva result[1] total_tva
result[2] total_ttc result[2] total_ttc
*/ */
function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $remise_percent_global=0) function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $remise_percent_global=0, $price_base_type='HT', $pu_ttc=0)
{ {
$result=array(); $result=array();
if ($price_base_type =='HT')
{
// On travaille par defaut en partant du prix HT
$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, 2);
$result[2] = round($tot_avec_remise * ( 1 + ($txtva / 100)), 2); $result[2] = round($tot_avec_remise * ( 1 + ($txtva / 100)), 2);
$result[1] = $result[2] - $result[0]; $result[1] = $result[2] - $result[0];
}
else
{
// On cacule à l'envers en partant du prix TTC
// Utilise pour les produits a prix TTC reglemente (livres, ...)
$tot_sans_remise = $pu_ttc * $qty;
$tot_avec_remise_ligne = $tot_sans_remise * ( 1 - ($remise_percent_ligne / 100));
$tot_avec_remise = $tot_avec_remise_ligne * ( 1 - ($remise_percent_global / 100));
$result[2] = round($tot_avec_remise, 2);
$result[0] = round($tot_avec_remise / ( 1 + ($txtva / 100)), 2);
$result[1] = $result[2] - $result[0];
}
return $result; return $result;
} }
@ -121,9 +140,9 @@ function calcul_price($products, $remise_percent, $remise_absolue=0)
$total_tva += $line_tva; $total_tva += $line_tva;
// on incrémente le tableau de différentiation des taux de TVA // on incrémente le tableau de différentiation des taux de TVA
// s'il faut rassembler les tva facturables ou non, du même taux // s'il faut rassembler les tva facturables ou non, du même taux
// dans un même ligne du tableau, remplacer la ligne suivante par : // dans un même ligne du tableau, remplacer la ligne suivante par :
// $result[5][abs($prod_txtva)] += $line_tva; // $result[5][abs($prod_txtva)] += $line_tva;
$result[5][$prod_txtva] += $line_tva; $result[5][$prod_txtva] += $line_tva;
$i++; $i++;