retrieve global local taxes in update_price function

This commit is contained in:
Christophe Battarel 2012-11-27 15:34:46 +01:00
parent 9f03b56348
commit e87bb02323

View File

@ -1516,27 +1516,43 @@ abstract class CommonObject
$this->total_localtax2 += $obj->total_localtax2; $this->total_localtax2 += $obj->total_localtax2;
$this->total_ttc += $obj->total_ttc; $this->total_ttc += $obj->total_ttc;
// Define vatrates with totals for each line and for all lines // Check if global invoice tax for this vat rate
// TODO $vatrates and $vatrates_alllines not used ? if (! empty($obj->vatrate))
if (! empty($this->vatrate))
{ {
$vatrates[$this->vatrate][]=array( if ($this->total_localtax1 == 0)
'total_ht' =>$obj->total_ht, {
'total_tva' =>$obj->total_tva, // Search local taxes
'total_ttc' =>$obj->total_ttc, $sql = "SELECT t.localtax1, t.localtax1_type";
'total_localtax1'=>$obj->total_localtax1, $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
'total_localtax2'=>$obj->total_localtax2 $sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$this->client->country_code."'";
); $sql .= " AND t.taux = ".$obj->vatrate." AND t.active = 1";
if (! isset($vatrates_alllines[$this->vatrate]['total_ht'])) $vatrates_alllines[$this->vatrate]['total_ht']=0;
if (! isset($vatrates_alllines[$this->vatrate]['total_tva'])) $vatrates_alllines[$this->vatrate]['total_tva']=0; dol_syslog("get_localtax sql=".$sql);
if (! isset($vatrates_alllines[$this->vatrate]['total_localtax1'])) $vatrates_alllines[$this->vatrate]['total_localtax1']=0; $resqlt=$this->db->query($sql);
if (! isset($vatrates_alllines[$this->vatrate]['total_localtax2'])) $vatrates_alllines[$this->vatrate]['total_localtax2']=0; if ($resqlt)
if (! isset($vatrates_alllines[$this->vatrate]['total_ttc'])) $vatrates_alllines[$this->vatrate]['total_ttc']=0; {
$vatrates_alllines[$this->vatrate]['total_ht'] +=$obj->total_ht; $objt = $this->db->fetch_object($resqlt);
$vatrates_alllines[$this->vatrate]['total_tva'] +=$obj->total_tva; if ($objt->localtax1_type == '7')
$vatrates_alllines[$this->vatrate]['total_localtax1']+=$obj->total_localtax1; $this->total_localtax1 += $objt->localtax1;
$vatrates_alllines[$this->vatrate]['total_localtax2']+=$obj->total_localtax2; }
$vatrates_alllines[$this->vatrate]['total_ttc'] +=$obj->total_ttc; }
if ($this->total_localtax2 == 0)
{
// Search local taxes
$sql = "SELECT t.localtax2, t.localtax2_type";
$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$this->client->country_code."'";
$sql .= " AND t.taux = ".$obj->vatrate." AND t.active = 1";
dol_syslog("get_localtax sql=".$sql);
$resqlt=$this->db->query($sql);
if ($resqlt)
{
$objt = $this->db->fetch_object($resqlt);
if ($objt->localtax2_type == '7')
$this->total_localtax2 += $objt->localtax2;
}
}
} }
$i++; $i++;
@ -1544,21 +1560,6 @@ abstract class CommonObject
$this->db->free($resql); $this->db->free($resql);
// TODO
if ($roundingadjust)
{
// For each vatrate, calculate if two method of calculation differs
// If it differs
if (1==2)
{
// Adjust a line and update it
}
}
// Now update global field total_ht, total_ttc and tva // Now update global field total_ht, total_ttc and tva
$fieldht='total_ht'; $fieldht='total_ht';
$fieldtva='tva'; $fieldtva='tva';