Fix vat label for India

This commit is contained in:
Laurent Destailleur 2017-07-22 16:05:51 +02:00
parent 4803f2d29a
commit 340203cc18

View File

@ -4417,7 +4417,7 @@ class Form
dol_syslog(__METHOD__, LOG_DEBUG);
$sql = "SELECT DISTINCT t.rowid, t.code, t.taux, t.recuperableonly";
$sql = "SELECT DISTINCT t.rowid, t.code, t.taux, t.localtax1, t.localtax1_type, t.localtax2, t.localtax2_type, t.recuperableonly";
$sql.= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c";
$sql.= " WHERE t.fk_pays = c.rowid";
$sql.= " AND t.active > 0";
@ -4436,8 +4436,20 @@ class Form
$this->cache_vatrates[$i]['rowid'] = $obj->rowid;
$this->cache_vatrates[$i]['code'] = $obj->code;
$this->cache_vatrates[$i]['txtva'] = $obj->taux;
$this->cache_vatrates[$i]['libtva'] = $obj->taux.'%'.($obj->code?' ('.$obj->code.')':''); // Label must contains only 0-9 , . % or *
$this->cache_vatrates[$i]['nprtva'] = $obj->recuperableonly;
$this->cache_vatrates[$i]['localtax1'] = $obj->localtax1;
$this->cache_vatrates[$i]['localtax1_type'] = $obj->localtax1_type;
$this->cache_vatrates[$i]['localtax2'] = $obj->localtax2;
$this->cache_vatrates[$i]['localtax2_type'] = $obj->localtax1_type;
$this->cache_vatrates[$i]['label'] = $obj->taux.'%'.($obj->code?' ('.$obj->code.')':''); // Label must contains only 0-9 , . % or *
$this->cache_vatrates[$i]['labelallrates'] = $obj->taux.'/'.($obj->localtax1?$obj->localtax1:'0').'/'.($obj->localtax2?$obj->localtax2:'0').($obj->code?' ('.$obj->code.')':''); // Must never be used as key, only label
$positiverates='';
if ($obj->taux) $positiverates.=($positiverates?'/':'').$obj->taux;
if ($obj->localtax1) $positiverates.=($positiverates?'/':'').$obj->localtax1;
if ($obj->localtax2) $positiverates.=($positiverates?'/':'').$obj->localtax2;
if (empty($positiverates)) $positiverates='0';
$this->cache_vatrates[$i]['labelpositiverates'] = $positiverates.($obj->code?' ('.$obj->code.')':''); // Must never be used as key, only label
}
return $num;
@ -4611,7 +4623,16 @@ class Form
$selectedfound=true;
}
}
$return.= '>'.vatrate($rate['libtva']);
$return.= '>';
//if (! empty($conf->global->MAIN_VAT_SHOW_POSITIVE_RATES))
if ($mysoc->country_code == 'IN' || ! empty($conf->global->MAIN_VAT_LABEL_IS_POSITIVE_RATES))
{
$return.= $rate['labelpositiverates'];
}
else
{
$return.= vatrate($rate['label']);
}
//$return.=($rate['code']?' '.$rate['code']:'');
$return.= (empty($rate['code']) && $rate['nprtva']) ? ' *': ''; // We show the * (old behaviour only if new vat code is not used)