Fixed bug for combos type 0 in non-js mode
[fa-stable.git] / includes / ui / ui_lists.inc
index 4b2294e314e9c95313afe8b090d9733a398f4601..51b0e956a4fe93f4dd687e125dfcc61cdee2e546 100644 (file)
@@ -66,7 +66,7 @@ $opts = array(                // default options
        }
        if ($opts['sel_hint'] === null)
                $opts['sel_hint'] = $by_id || $search_box==false ?
-               '' : _('Press Space tab for search pattern entry');
+                       '' : _('Press Space tab for search pattern entry');
 
        if ($opts['box_hint'] === null)
                $opts['box_hint'] = $search_box ?
@@ -74,13 +74,16 @@ $opts = array(              // default options
                        : _('Enter description fragment to search or * for all')) :'';
 
        if ($selected_id == null) {
-               $selected_id = get_post($name);
+               $selected_id = get_post($name, null);
        }
        $txt = get_post($search_box);
        $rel = '';
        $limit = '';
 
        if (isset($_POST[$select_submit])) {
+
+               if ($by_id) $txt = $_POST[$name];
+
                if (!$opts['async'])
                        $Ajax->activate('_page_body');
                else
@@ -91,22 +94,22 @@ $opts = array(              // default options
 
        $rel = "rel='$search_box'"; // set relation to list
    if ($opts['search_submit']) {
-       // if selected from list - set focus on next field
+
        if (isset($_POST[$search_submit])) {
                $Ajax->activate($name);
        }
        if ($txt == '') {
                if ($spec_option === false)
-               $limit = ' LIMIT 1';
+                       $limit = ' LIMIT 1';
                else
-               $opts['where'][] = $valfield . "='". get_post($name, $spec_id)."'";
+                       $opts['where'][] = $valfield . "='". get_post($name, $spec_id)."'";
        }
        else
                if ($txt != '*') {
 
                foreach($opts['search'] as $i=> $s)
                        $opts['search'][$i] = $s . " LIKE '%{$txt}%'";
-               $opts['where'][] = '('. implode($opts['search'], ' OR ') . ')';
+                       $opts['where'][] = '('. implode($opts['search'], ' OR ') . ')';
                }
        }
    }
@@ -124,61 +127,38 @@ $opts = array(            // default options
        $selector = $first_opt = '';
        $first_id = false;
        $found = false;
-//if($name=='code_id')    display_error($sql);
+//if($name=='SelectStockFromList') display_error($sql);
        if($result = db_query($sql)) {
                while ($contact_row = db_fetch($result)) {
                        $value = $contact_row[0];
                        $descr = $opts['format']==null ?  $contact_row[1] :
                        call_user_func($opts['format'], $contact_row);
                        $sel = '';
-                       if (isset($_POST[$search_submit])) {
-                               if (($by_id ? $value : $contact_row[1]) === $txt)
-                               $selected_id = $value;
-                       }
-                       // if no initial selection - set the first item
-                       if ($selected_id === "")        {
-                               $selected_id = $value;
-                       }
-                       if ($selected_id == $value) {
+                       if ($selected_id === $value) {
                                $sel = 'selected';
                                $found = $value;
-                               $_POST[$name] = $selected_id;
                        }
-                       if ($first_opt == false) {
+                       if ($first_id === false) {
                                $first_id = $value;
                                $first_opt = $descr;
-                               continue;
                        }
                        $selector .= "<option $sel value='$value'>$descr</option>\n";
                }
                db_free_result($result);
        }
-       if ($first_id !== false) {
-               // add first option - selected also if no match for selected_id was found
-               // and no special option defined
-               $sel = $spec_option===false || $found === $first_id ? 'selected' : '';
-               $selector = "<option $sel value='$first_id'>$first_opt</option>\n"
-                       . $selector;
-       }
        // Prepend special option.
        if ($spec_option !== false) { // if special option used - add it
                $first_id = $spec_id;
                $first_opt = $spec_option;
-               if (isset($_POST[$search_submit])) {
-                       if ($txt == '')
-                               $selected_id = $spec_id;
-               }
                $sel = $found===false ? 'selected' : '';
                $selector = "<option $sel value='$spec_id'>$spec_option</option>\n"
                        . $selector;
-               $first_id = $spec_id;
        }
 
        if ($found === false) {
                $_POST[$name] = $first_id;
        }
 
-
        if ($by_id) {
                $txt = $_POST[$name];
                if ($search_box)
@@ -203,7 +183,7 @@ $opts = array(              // default options
        }
 // ------ make combo ----------
 
-$edit_entry = '';
+       $edit_entry = '';
        if ($search_box != false) {
                $edit_entry = "<input type='text' name='$search_box' id='$search_box' size='".
                        $opts['size']."' maxlength='".$opts['max'].
@@ -559,7 +539,7 @@ function stock_items_list_cells($label, $name, $selected_id, $all_option=false,
        if ($label != null)
                echo "<td>$label</td>\n";
        $str = stock_items_list($name, $selected_id, $all_option, $submit_on_change,
-       array('cells'=>true));
+               array('cells'=>true));
        return $str;
 }
 /*
@@ -670,7 +650,7 @@ function stock_costable_items_list($name, $selected_id,
 function stock_purchasable_items_list($name, $selected_id,     $all_option=false,
                $submit_on_change=false, $opts=array())
 {
-
+ global $all_items;
        $sql = "SELECT stock_id, s.description, c.description
                        FROM ".TB_PREF."stock_master s,".TB_PREF."stock_category c
                        WHERE s.category_id=c.category_id
@@ -780,7 +760,7 @@ function tax_types_list($name, $selected_id, $none_option=false, $submit_on_chan
        return combo_input($name, $selected_id, $sql, 'id', 'name',
        array(
                'spec_option' => $none_option,
-               'spec_id' => $all_items,
+               'spec_id' => 0,
                'select_submit'=> $submit_on_change,
                'async' => false,
        ) );
@@ -819,7 +799,7 @@ function tax_groups_list($name, $selected_id,
        array(
                'order' => 'id',
                'spec_option' => $none_option,
-               'spec_id' => $all_items,
+               'spec_id' => 0,
                'select_submit'=> $submit_on_change,
                'async' => false,
        ) );
@@ -1254,7 +1234,7 @@ function gl_account_types_list_row($label, $name, $selected_id, $all_option=fals
 
 //-----------------------------------------------------------------------------------------------
 function gl_all_accounts_list($name, $selected_id, $skip_bank_accounts=false,
-       $show_group=false, $cells=false)
+       $show_group=false, $cells=false, $all_option=false)
 {
        if ($skip_bank_accounts)
                $sql = "SELECT chart.account_code, chart.account_name, type.name
@@ -1271,6 +1251,8 @@ function gl_all_accounts_list($name, $selected_id, $skip_bank_accounts=false,
        combo_input($name, $selected_id, $sql, 'chart.account_code', 'chart.account_name',
        array(
                'format' => '_format_account' .  ($show_group ? '2' : ''),
+               'spec_option' => $all_option===true ?  _("Use Item Sales Accounts") : $all_option,
+               'spec_id' => '',
                'order' => 'account_code',
                'search_box' => $cells,
                        'search_submit' => false,
@@ -1292,21 +1274,21 @@ function _format_account2($row)
 }
 
 function gl_all_accounts_list_cells($label, $name, $selected_id, $skip_bank_accounts=false,
-       $show_group=false, $cells=false)
+       $show_group=false, $cells=false, $all_option=false)
 {
        if ($label != null)
                echo "<td>$label</td>\n";
        echo "<td>";
-       gl_all_accounts_list($name, $selected_id, $skip_bank_accounts, $show_group, $cells);
+       gl_all_accounts_list($name, $selected_id, $skip_bank_accounts, $show_group, $cells, $all_option);
        echo "</td>\n";
 }
 
 function gl_all_accounts_list_row($label, $name, $selected_id, $skip_bank_accounts=false,
-       $show_group=false, $cells=false)
+       $show_group=false, $cells=false, $all_option=false)
 {
        echo "<tr>\n";
        gl_all_accounts_list_cells($label, $name, $selected_id, $skip_bank_accounts,
-               $show_group, $cells);
+               $show_group, $cells, $all_option);
        echo "</tr>\n";
 }