Works on enhancement of local taxes. Changes in calcul_price_total

This commit is contained in:
Juanjo Menent 2010-04-18 12:18:09 +00:00
parent 0fcb012234
commit 81eb0cda2a
2 changed files with 38 additions and 15 deletions

View File

@ -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;

View File

@ -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;