X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=purchasing%2Fincludes%2Fsupp_trans_class.inc;h=c36fa8163a901813939a40702b16aad18929b6a9;hb=1466764d49233238c6097c95341875be552d7487;hp=c85f8ae7d9fdf27fcb831dbf56ec954967a7c16b;hpb=1265917ba03e48dffcb309dcbf496c67deb3d2d7;p=fa-stable.git diff --git a/purchasing/includes/supp_trans_class.inc b/purchasing/includes/supp_trans_class.inc index c85f8ae7..c36fa816 100644 --- a/purchasing/includes/supp_trans_class.inc +++ b/purchasing/includes/supp_trans_class.inc @@ -121,23 +121,27 @@ class supp_trans $taxes = get_tax_for_items($items, $prices, $shipping_cost, $tax_group_id, $this->tax_included); - if ($gl_codes) + if (isset($this->tax_overrides)) + foreach($this->tax_overrides as $id => $value) // add values entered manually + { + $taxes[$id]['Override'] = $value; + } + + // Taxes included in gl_codes table have exact value, but count to overrides as well. + // Therefore when we want to now taxes only for items (gl_codes==false), + // we have to subtract gl_taxes from override values. + foreach ($this->gl_codes as $gl_code) { - foreach ($this->gl_codes as $gl_code) + $index = is_tax_account($gl_code->gl_code); + if ($index !== false) { - $index = is_tax_account($gl_code->gl_code); - if ($index !== false) - { + if ($gl_codes) $taxes[$index]['Value'] += $gl_code->amount; - } + elseif (isset($this->tax_overrides)) + $taxes[$index]['Override'] -= $gl_code->amount; } } - if(isset($this->tax_overrides)) - foreach($this->tax_overrides as $id => $value) // add values entered manually - { - $taxes[$id]['Override'] = $value; - } return $taxes; } //