From e87bb02323975b87247b9562811f523382c7c2e8 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Tue, 27 Nov 2012 15:34:46 +0100 Subject: [PATCH] retrieve global local taxes in update_price function --- htdocs/core/class/commonobject.class.php | 71 ++++++++++++------------ 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 0cb132d23c6..fdd8ec63dca 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1516,27 +1516,43 @@ abstract class CommonObject $this->total_localtax2 += $obj->total_localtax2; $this->total_ttc += $obj->total_ttc; - // Define vatrates with totals for each line and for all lines - // TODO $vatrates and $vatrates_alllines not used ? - if (! empty($this->vatrate)) + // Check if global invoice tax for this vat rate + if (! empty($obj->vatrate)) { - $vatrates[$this->vatrate][]=array( - 'total_ht' =>$obj->total_ht, - 'total_tva' =>$obj->total_tva, - 'total_ttc' =>$obj->total_ttc, - 'total_localtax1'=>$obj->total_localtax1, - 'total_localtax2'=>$obj->total_localtax2 - ); - 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; - if (! isset($vatrates_alllines[$this->vatrate]['total_localtax1'])) $vatrates_alllines[$this->vatrate]['total_localtax1']=0; - if (! isset($vatrates_alllines[$this->vatrate]['total_localtax2'])) $vatrates_alllines[$this->vatrate]['total_localtax2']=0; - if (! isset($vatrates_alllines[$this->vatrate]['total_ttc'])) $vatrates_alllines[$this->vatrate]['total_ttc']=0; - $vatrates_alllines[$this->vatrate]['total_ht'] +=$obj->total_ht; - $vatrates_alllines[$this->vatrate]['total_tva'] +=$obj->total_tva; - $vatrates_alllines[$this->vatrate]['total_localtax1']+=$obj->total_localtax1; - $vatrates_alllines[$this->vatrate]['total_localtax2']+=$obj->total_localtax2; - $vatrates_alllines[$this->vatrate]['total_ttc'] +=$obj->total_ttc; + if ($this->total_localtax1 == 0) + { + // Search local taxes + $sql = "SELECT t.localtax1, t.localtax1_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->localtax1_type == '7') + $this->total_localtax1 += $objt->localtax1; + } + } + 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++; @@ -1544,21 +1560,6 @@ abstract class CommonObject $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 $fieldht='total_ht'; $fieldtva='tva';