Quick Entries uses Tax Groups instead of Item Tax Types for calculating taxes (Please...
[fa-stable.git] / includes / ui / ui_view.inc
index 1d4f1fc1788ac6b6416e42b2ef72a2f40cb31b8c..d9a33af98cedd1cc61b6107f5116aab659e4a763 100644 (file)
@@ -317,7 +317,7 @@ function exchange_rate_display($from_currency, $to_currency, $date_, $edit_rate=
                if ($edit_rate)
                        text_row(_("Exchange Rate:"), '_ex_rate', $rate, 8, 8, null, "", " $from_currency = 1 $to_currency"); 
                else
-               label_row(_("Exchange Rate:"),"<span id='_ex_rate'>$rate</span> $from_currency = 1 $to_currency" );
+               label_row(_("Exchange Rate:"),"<span style='vertical-align:top;' id='_ex_rate'>$rate</span> $from_currency = 1 $to_currency" );
                $Ajax->addUpdate('_ex_rate','_ex_rate', $rate);
        }
 }
@@ -401,7 +401,7 @@ function view_stock_status_cell($stock_id, $description=null)
 
 function display_debit_or_credit_cells($value)
 {
-       if ($value > 0)
+       if ($value >= 0)
        {
                amount_cell($value);
                label_cell("");
@@ -411,12 +411,6 @@ function display_debit_or_credit_cells($value)
                label_cell("");
                amount_cell(abs($value));
        }
-       else
-       {
-               //label_cell("");
-               amount_cell(0);
-               label_cell("");
-       }
 }
 
 //--------------------------------------------------------------------------------------
@@ -602,18 +596,30 @@ function display_quick_entries(&$cart, $id, $base, $type, $descr='')
                                case "t": // post taxes calculated on base amount
                                case "t+": // ditto & increase base amount
                                case "t-": // ditto & reduce base amount
-                                       $taxes = get_taxes_for_item_tax($qe_line['dest_id']);
+                                       //$taxes = get_taxes_for_item_tax($qe_line['dest_id']);
+                                       $taxes = array();
+                                       $res = get_tax_group_items($qe_line['dest_id']);
+                                       while ($row = db_fetch($res))
+                                               $taxes[] = $row;
                                        $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'], 
@@ -650,16 +656,12 @@ function display_quick_entries(&$cart, $id, $base, $type, $descr='')
 
 function get_js_open_window($width, $height)
 {
-       $js = "\n<script type=\"text/javascript\">\n"
-               . "<!--\n"
-               . "function openWindow(url, title)\n"
+       $js ="function openWindow(url, title)\n"
                . "{\n"
                . " var left = (screen.width - $width) / 2;\n"
                . " var top = (screen.height - $height) / 2;\n"
                . " return window.open(url, title, 'width=$width,height=$height,left='+left+',top='+top+',screenX='+left+',screenY='+top+',status=no,scrollbars=yes');\n"
-               . "}\n"
-               . "-->\n"
-               . "</script>\n";
+               . "}\n";
        return $js;
 }
 
@@ -683,8 +685,7 @@ function default_focus($name, $form_no=0) {
 
 function get_js_png_fix()
 {
-       $js = "<script type=\"text/javascript\">\n"
-               . "function fixPNG(myImage)\n"
+       $js = "function fixPNG(myImage)\n"
                . "{\n"
                . " var arVersion = navigator.appVersion.split(\"MSIE\")\n"
                . " var version = parseFloat(arVersion[1])\n"
@@ -703,8 +704,7 @@ function get_js_png_fix()
         . "    + \"(src=\'\" + myImage.src + \"\', sizingMethod='scale');\\\"></span>\"\n"
                . "  myImage.outerHTML = strNewHTML\n"
        . " }\n"
-               . "}\n"
-               . "</script>\n";
+               . "}\n";
        return $js;
 }