case "t-": // ditto & reduce base amount
$taxes = get_taxes_for_item_tax($qe_line['dest_id']);
$tax_total = 0;
+ $totrate = 0;
+ // find total tax
+ if (substr($qe_line['action'],0,1) != 'T') {
+ foreach ($taxes as $index => $item_tax) {
+ $totrate += $item_tax['rate'];
+ }
+ }
+ $taxbase = $base/($totrate+100);
foreach ($taxes as $index => $item_tax) {
- if(substr($qe_line['action'],0,1) != 'T')
- $tax = round2($base * $item_tax['rate']
- / ($item_tax['rate'] + 100), user_price_dec());
- else
- $tax = round2($base * $item_tax['rate'] / 100, user_price_dec());
-
+ $tax = round2($taxbase * $item_tax['rate'], user_price_dec());
$gl_code = ($type == QE_DEPOSIT || ($type == QE_JOURNAL && $base < 0))
? $item_tax['sales_gl_code'] : $item_tax['purchasing_gl_code'];
$tax_total += $tax;
+ if ($tax==0) continue;
+ if (!is_tax_gl_unique($gl_code)) {
+ display_error(_("Cannot post to GL account used by more than one tax type."));
+ break 3;
+ }
if ($type != QE_SUPPINV)
$cart->add_gl_item($gl_code,
$qe_line['dimension_id'], $qe_line['dimension2_id'],