From 81eb0cda2ae29cb91692848b8fddb6384c3f62ca Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Sun, 18 Apr 2010 12:18:09 +0000 Subject: [PATCH] Works on enhancement of local taxes. Changes in calcul_price_total --- htdocs/lib/functions.lib.php | 4 +-- htdocs/lib/price.lib.php | 49 ++++++++++++++++++++++++++---------- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php index 207985dc03d..df29d0abfd7 100644 --- a/htdocs/lib/functions.lib.php +++ b/htdocs/lib/functions.lib.php @@ -2696,13 +2696,13 @@ function get_default_localtax($societe_vendeuse, $societe_acheteuse, $local, $id if($societe_vendeuse->pays_id=='ES') { - if ($local=='1') //RE + if ($local==1) //RE { // Si achatteur non assujeti a RE, localtax1 par default=0 if (is_numeric($societe_acheteuse->localtax1_assuj) && ! $societe_acheteuse->localtax1_assuj) return 0; if (! is_numeric($societe_acheteuse->localtax1_assuj) && $societe_acheteuse->localtax1_assuj=='localtax1off') return 0; } - elseif ($local=='2') //IRPF + elseif ($local==2) //IRPF { // Si vendeur non assujeti a IRPF, localtax2 par default=0 if (is_numeric($societe_vendeuse->localtax2_assuj) && ! $societe_vendeuse->localtax2_assuj) return 0; diff --git a/htdocs/lib/price.lib.php b/htdocs/lib/price.lib.php index feb3c6621b4..b694cd5227d 100644 --- a/htdocs/lib/price.lib.php +++ b/htdocs/lib/price.lib.php @@ -60,12 +60,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $txlocalta $result[0] = price2num($tot_avec_remise, 'MT'); $result[2] = price2num($tot_avec_remise * ( 1 + ( (($info_bits & 1)?0:$txtva) / 100)), 'MT'); // Selon TVA NPR ou non $result2bis= price2num($tot_avec_remise * ( 1 + ( $txtva / 100)), 'MT'); // Si TVA consideree normale (non NPR) - if (! empty($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; - $result2bis=round($result2bis/$conf->global->MAIN_ROUNDING_RULE_TOT, 0)*$conf->global->MAIN_ROUNDING_RULE_TOT; - } + $result[1] = $result2bis - $result[0]; // Total VAT = TTC - HT $result[3] = price2num($pu, 'MU'); @@ -88,12 +83,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $txlocalta $result[2] = price2num($tot_avec_remise, 'MT'); $result[0] = price2num($tot_avec_remise / ( 1 + ((($info_bits & 1)?0:$txtva) / 100)), 'MT'); // Selon TVA NPR ou non $result0bis= price2num($tot_avec_remise / ( 1 + ($txtva / 100)), 'MT'); // Si TVA consideree normale (non NPR) - if (! empty($conf->global->MAIN_ROUNDING_RULE_TOT)) - { - $result0bis=round($result0bis/$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] = $result[2] - $result0bis; // Total VAT = TTC - HT $result[5] = price2num($pu, 'MU'); @@ -101,7 +91,40 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $txlocalta $result3bis= price2num($pu / ( 1 + ($txtva / 100)), 'MU'); // Si TVA consideree normale (non NPR) $result[4] = $result[5] - $result3bis; } - + + //Local taxes + if ($txlocaltax1>0) + { + $result[14] = price2num(($tot_sans_remise * ( 1 + ( $txlocaltax1 / 100))) - $tot_sans_remise, 'MT'); + $result[8] = $result[8] + $result[14]; + + $result[9] = price2num(($tot_avec_remise * ( 1 + ( $txlocaltax1 / 100))) - $tot_avec_remise, 'MT'); + $result[2] = $result[2] + $result[9]; + + $result[11] = price2num(($pu * ( 1 + ( $txlocaltax1 / 100))) - $pu, 'MT'); + $result[5] = $result[5] + $result[11]; + } + if ($txlocaltax2>0) + { + $result[15] = price2num(($tot_sans_remise * ( 1 + ( $txlocaltax2 / 100))) - $tot_sans_remise, 'MT'); + $result[8] = $result[8] + $result[15]; + + $result[10] = price2num(($tot_avec_remise * ( 1 + ( $txlocaltax2 / 100))) - $tot_avec_remise, 'MT'); + $result[2] = $result[2] + $result[10]; + + $result[12] = price2num(($pu * ( 1 + ( $txlocaltax2 / 100))) - $pu, 'MT'); + $result[5] = $result[5] + $result[12]; + } + + if (! empty($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[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]; return $result;