2
0
forked from Wavyzz/dolibarr

Fix: Use better test to show localtax to avoid problem when switching

from different country.
Perf: Can return all localtaxes in one call.
This commit is contained in:
Laurent Destailleur
2013-03-15 17:10:18 +01:00
parent a86c6ac39d
commit 2ab28d974f
4 changed files with 25 additions and 38 deletions

View File

@@ -2785,7 +2785,7 @@ function get_localtax($tva, $local, $thirdparty_buyer="", $thirdparty_seller="")
* Get type and rate of localtaxes for a particular vat rate/country fo thirdparty
*
* @param real $vatrate VAT Rate
* @param int $local Number of localtax (1 / 2)
* @param int $local Number of localtax (1 or 2, or 0 to return 1+2)
* @param int $thirdparty company object
* @return array array(Type of local tax (1 to 7 / 0 if not found), rate or amount of localtax)
* @deprecated TODO We should remove this function by storing rate and type into detail lines.
@@ -2808,6 +2808,7 @@ function getLocalTaxesFromRate($vatrate, $local, $thirdparty)
$obj = $db->fetch_object($resql);
if ($local == 1) return array($obj->localtax1_type, $obj->localtax1);
elseif ($local == 2) return array($obj->localtax2_type, $obj->localtax2);
else return array($obj->localtax1_type, $obj->localtax1, $obj->localtax2_type, $obj->localtax2);
}
return 0;

View File

@@ -375,23 +375,18 @@ class pdf_einstein extends ModelePDFCommandes
$vatrate=(string) $object->lines[$i]->tva_tx;
// TODO : store local taxes types into object lines and remove this
$localtax1_array=getLocalTaxesFromRate($vatrate,1,$mysoc);
$localtax2_array=getLocalTaxesFromRate($vatrate,2,$mysoc);
if (empty($localtax1_type))
$localtax1_type = $localtax1_array[0];
if (empty($localtax2_type))
$localtax2_type = $localtax2_array[0];
$localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$mysoc);
if (! isset($localtax1_type)) $localtax1_type = $localtaxtmp_array[0];
if (! isset($localtax2_type)) $localtax2_type = $localtaxtmp_array[2];
//end TODO
// retrieve global local tax
if ($localtax1_type == '7')
$localtax1_rate = $localtax1_array[1];
if ($localtax2_type == '7')
$localtax2_rate = $localtax2_array[1];
if ($localtax1_type == '7') $localtax1_rate = $localtaxtmp_array[1];
if ($localtax2_type == '7') $localtax2_rate = $localtaxtmp_array[3];
if ($localtax1ligne != 0 || $localtax1_type == '7')
if ($localtax1_type && ($localtax1ligne != 0 || $localtax1_type == '7'))
$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
if ($localtax2ligne != 0 || $localtax2_type == '7')
if ($localtax2_type && ($localtax2ligne != 0 || $localtax2_type == '7'))
$this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne;
if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*';

View File

@@ -377,23 +377,18 @@ class pdf_crabe extends ModelePDFFactures
$vatrate=(string) $object->lines[$i]->tva_tx;
// TODO : store local taxes types into object lines and remove this
$localtax1_array=getLocalTaxesFromRate($vatrate,1,$mysoc);
$localtax2_array=getLocalTaxesFromRate($vatrate,2,$mysoc);
if (empty($localtax1_type))
$localtax1_type = $localtax1_array[0];
if (empty($localtax2_type))
$localtax2_type = $localtax2_array[0];
$localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$mysoc);
if (! isset($localtax1_type)) $localtax1_type = $localtaxtmp_array[0];
if (! isset($localtax2_type)) $localtax2_type = $localtaxtmp_array[2];
//end TODO
// retrieve global local tax
if ($localtax1_type == '7')
$localtax1_rate = $localtax1_array[1];
if ($localtax2_type == '7')
$localtax2_rate = $localtax2_array[1];
if ($localtax1_type == '7') $localtax1_rate = $localtaxtmp_array[1];
if ($localtax2_type == '7') $localtax2_rate = $localtaxtmp_array[3];
if ($localtax1ligne != 0 || $localtax1_type == '7')
if ($localtax1_type && ($localtax1ligne != 0 || $localtax1_type == '7'))
$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
if ($localtax2ligne != 0 || $localtax2_type == '7')
if ($localtax2_type && ($localtax2ligne != 0 || $localtax2_type == '7'))
$this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne;
if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*';

View File

@@ -371,24 +371,20 @@ class pdf_azur extends ModelePDFPropales
if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100;
$vatrate=(string) $object->lines[$i]->tva_tx;
// TODO : store local taxes types into object lines and remove this
$localtax1_array=getLocalTaxesFromRate($vatrate,1,$mysoc);
$localtax2_array=getLocalTaxesFromRate($vatrate,2,$mysoc);
if (empty($localtax1_type))
$localtax1_type = $localtax1_array[0];
if (empty($localtax2_type))
$localtax2_type = $localtax2_array[0];
$localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$mysoc);
if (! isset($localtax1_type)) $localtax1_type = $localtaxtmp_array[0];
if (! isset($localtax2_type)) $localtax2_type = $localtaxtmp_array[2];
//end TODO
// retrieve global local tax
if ($localtax1_type == '7')
$localtax1_rate = $localtax1_array[1];
if ($localtax2_type == '7')
$localtax2_rate = $localtax2_array[1];
if ($localtax1_type == '7') $localtax1_rate = $localtaxtmp_array[1];
if ($localtax2_type == '7') $localtax2_rate = $localtaxtmp_array[3];
if ($localtax1ligne != 0 || $localtax1_type == '7')
if ($localtax1_type && ($localtax1ligne != 0 || $localtax1_type == '7'))
$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
if ($localtax2ligne != 0 || $localtax2_type == '7')
if ($localtax2_type && ($localtax2ligne != 0 || $localtax2_type == '7'))
$this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne;
if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*';