mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-06 09:38:23 +01:00
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:
@@ -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;
|
||||
|
||||
@@ -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.='*';
|
||||
|
||||
@@ -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.='*';
|
||||
|
||||
@@ -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.='*';
|
||||
|
||||
Reference in New Issue
Block a user