X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fui%2Fui_lists.inc;h=3a0ec674006721ad622286ae2348a4f765bcf6a1;hb=69cb44aa7570e2ce26f540014cd682bc21c2ad1c;hp=4d15b0095a4f291e1db4deface6e06b9ab973ce8;hpb=c2dd0246dfc1625b90f4212767fbac3706796a08;p=fa-stable.git
diff --git a/includes/ui/ui_lists.inc b/includes/ui/ui_lists.inc
index 4d15b009..3a0ec674 100644
--- a/includes/ui/ui_lists.inc
+++ b/includes/ui/ui_lists.inc
@@ -6,10 +6,10 @@ include_once($path_to_root . "/includes/types.inc");
include_once($path_to_root . "/includes/current_user.inc");
$_search_button = " ";
+ ."%s/images/locate.png) no-repeat;%s' aspect='fallback' name='%s' value=' ' title='"._("Set filter")."'> ";
$_select_button = " ";
+ ."%s/images/button_ok.png) no-repeat;%s' aspect='fallback' name='%s' value=' ' title='"._("Select")."'> ";
$all_items = reserved_words::get_all();
@@ -30,7 +30,9 @@ $opts = array( // default options
'spec_option'=>false, // option text or false
'spec_id' => 0, // option id
// submit on select parameters
+ 'default' => '', // default value when $_POST is not set
'select_submit' => false, //submit on select: true/false
+ 'edit_submit' => false, // call editor on F4
'async' => true, // select update via ajax (true) vs _page_body reload
// search box parameters
'sel_hint' => null,
@@ -50,7 +52,8 @@ $opts = array( // default options
'box_hint' => null // box/selectors hints; null = std see below
);
// ------ merge options with defaults ----------
- $opts = array_merge($opts, $options);
+ if($options != null)
+ $opts = array_merge($opts, $options);
if (!is_array($opts['where'])) $opts['where'] = array($opts['where']);
$search_box = $opts['search_box']===true ? '_'.$name.'_edit' : $opts['search_box'];
@@ -65,24 +68,23 @@ $opts = array( // default options
if(!count($opts['search'])) {
$opts['search'] = array($by_id ? $valfield : $namefield);
}
- if ($opts['sel_hint'] === null)
+ 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 ?
+ $opts['box_hint'] = $search_box && $search_submit != false ?
($by_id ? _('Enter code fragment to search or * for all')
: _('Enter description fragment to search or * for all')) :'';
if ($selected_id == null) {
- $selected_id = get_post($name, null);
+ $selected_id = get_post($name, $opts['default']);
}
$txt = get_post($search_box);
$rel = '';
$limit = '';
if (isset($_POST[$select_submit])) {
-
if ($by_id) $txt = $_POST[$name];
if (!$opts['async'])
@@ -96,6 +98,7 @@ $opts = array( // default options
$rel = "rel='$search_box'"; // set relation to list
if ($opts['search_submit']) {
if (isset($_POST[$search_submit])) {
+ $selected_id = ''; // ignore selected_id while search
if (!$opts['async'])
$Ajax->activate('_page_body');
else
@@ -130,14 +133,17 @@ $opts = array( // default options
$selector = $first_opt = '';
$first_id = false;
$found = false;
-//if($name=='SelectStockFromList') display_error($sql);
+//if($name=='contact_sel') 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 ((string)($selected_id) === $value) {
+ if (get_post($search_submit) && ($txt === $value)) {
+ $selected_id = $value;
+ }
+ if ((string)($selected_id) === $value) {
$sel = 'selected';
$found = $value;
}
@@ -160,17 +166,17 @@ $opts = array( // default options
}
if ($found === false) {
- $_POST[$name] = $first_id;
+ $selected_id = $first_id;
}
+ $_POST[$name] = $selected_id;
- if ($by_id) {
- $txt = $_POST[$name];
- if ($search_box)
- $Ajax->addUpdate($name, $search_box, $txt);
+ if ($by_id && $search_box != false) {
+ $txt = $found;
+ $Ajax->addUpdate($name, $search_box, $txt ? $txt : '');
}
-
+ $aspect = $opts['edit_submit'] ? " aspect='editable'" : '';
$selector = "\n";
+ . $opts['sel_hint']."'$aspect $rel>".$selector."\n";
$Ajax->addUpdate($name, "_{$name}_sel", $selector);
@@ -182,7 +188,7 @@ $opts = array( // default options
global $_select_button;
// button class selects form reload/ajax selector update
$selector .= sprintf($_select_button, $disabled, user_theme(),
- (in_ajax() ? 'display:none;':''),
+ (fallback_mode() ? '' : 'display:none;'),
$select_submit)."\n";
}
// ------ make combo ----------
@@ -193,12 +199,12 @@ $opts = array( // default options
$opts['size']."' maxlength='".$opts['max'].
"' value='$txt' class='$class' rel='$name' autocomplete='off' title='"
.$opts['box_hint']."'"
- .(in_ajax() && !$by_id ? " style=display:none;":'')
+ .(!fallback_mode() && !$by_id ? " style=display:none;":'')
.">\n";
if ($search_submit != false) {
global $_search_button;
$edit_entry .= sprintf($_search_button, $disabled, user_theme(),
- (in_ajax() ? 'display:none;':''),
+ (fallback_mode() ? '' : 'display:none;'),
$search_submit)."\n";
}
}
@@ -211,6 +217,15 @@ $opts = array( // default options
return $str;
}
+
+/*
+ Helper function.
+ Returns true if selector $name is subject to update.
+*/
+function list_updated($name)
+{
+ return isset($_POST['_'.$name.'_update']) || isset($_POST['_'.$name.'_button']);
+}
//----------------------------------------------------------------------------------------------
// Universal array combo generator
// $items is array of options 'value' => 'description'
@@ -224,20 +239,23 @@ $opts = array( // default options
'spec_option'=>false, // option text or false
'spec_id' => 0, // option id
'select_submit' => false, //submit on select: true/false
+ 'edit_submit' => false, // call editor on F4
'async' => true, // select update via ajax (true) vs _page_body reload
+ 'default' => '', // default value when $_POST is not set
// search box parameters
'sel_hint' => null,
'disabled' => false
);
// ------ merge options with defaults ----------
- $opts = array_merge($opts, $options);
+ if($options != null)
+ $opts = array_merge($opts, $options);
$select_submit = $opts['select_submit']===true ? '_'.$name.'_update' : $opts['select_submit'];
$spec_id = $opts['spec_id'];
$spec_option = $opts['spec_option'];
$disabled = $opts['disabled'] ? "disabled" : '';
if ($selected_id == null) {
- $selected_id = get_post($name, null);
+ $selected_id = get_post($name, $opts['default']);
}
if (isset($_POST[$select_submit])) {
@@ -278,8 +296,9 @@ $opts = array( // default options
$_POST[$name] = $first_id;
}
+ $aspect = $opts['edit_submit'] ? " aspect='editable'" : '';
$selector = "\n";
+ . $opts['sel_hint']."'$aspect >".$selector."\n";
$Ajax->addUpdate($name, "_{$name}_sel", $selector);
@@ -288,7 +307,7 @@ $opts = array( // default options
if ($select_submit != false) { // if submit on change is used - add select button
global $_select_button;
$selector .= sprintf($_select_button, $disabled, user_theme(),
- (in_ajax() ? 'display:none;':''),
+ (fallback_mode() ? '' : 'display:none;'),
$select_submit)."\n";
}
default_focus($name);
@@ -322,6 +341,7 @@ function supplier_list($name, $selected_id=null, $spec_option=false, $submit_on_
array(
'format' => '_format_add_curr',
'search_box' => $mode!=0,
+ 'edit_submit' => true,
'type' => 1,
'spec_option' => $spec_option === true ? _("All Suppliers") : $spec_option,
'spec_id' => $all_items,
@@ -367,8 +387,9 @@ return combo_input($name, $selected_id, $sql, 'debtor_no', 'name',
'spec_option' => $spec_option === true ? _("All Customers") : $spec_option,
'spec_id' => $all_items,
'select_submit'=> $submit_on_change,
+ 'edit_submit' => true, // call editor on F4
'async' => false,
- 'sel_hint' => $mode ? _('Press Space tab to filter by name fragment') :
+ 'sel_hint' => $mode ? _('Press Space tab to filter by name fragment; F4 - entry new customer') :
_('Select customer')
) );
}
@@ -472,33 +493,29 @@ function currencies_list($name, $selected_id=null, $submit_on_change=false)
$sql = "SELECT curr_abrev, currency FROM ".TB_PREF."currencies";
// default to the company currency
- if ($selected_id == "")
- {
- $selected_id = get_company_currency();
- $_POST[$name] = $selected_id;
- }
return combo_input($name, $selected_id, $sql, 'curr_abrev', 'currency',
array(
'select_submit'=> $submit_on_change,
- 'async' => false
+ 'default' => get_company_currency(),
+ 'async' => false
) );
}
-function currencies_list_cells($label, $name, $selected_id=null)
+function currencies_list_cells($label, $name, $selected_id=null, $submit_on_change=false)
{
if ($label != null)
echo "
$label | \n";
echo "";
- $str = currencies_list($name, $selected_id);
+ $str = currencies_list($name, $selected_id, $submit_on_change);
echo " | \n";
return $str;
}
-function currencies_list_row($label, $name, $selected_id=null)
+function currencies_list_row($label, $name, $selected_id=null, $submit_on_change=false)
{
echo "\n";
- $str = currencies_list_cells($label, $name, $selected_id);
+ $str = currencies_list_cells($label, $name, $selected_id, $submit_on_change);
echo "
\n";
return $str;
}
@@ -511,15 +528,11 @@ function fiscalyears_list($name, $selected_id=null, $submit_on_change=false)
$sql = "SELECT * FROM ".TB_PREF."fiscal_year";
// default to the company current fiscal year
- if ($selected_id == "")
- {
- $selected_id = get_company_pref('f_year');
- $_POST[$name] = $selected_id;
- }
return combo_input($name, $selected_id, $sql, 'id', '',
array(
'order' => 'begin',
+ 'default' => get_company_pref('f_year'),
'format' => '_format_fiscalyears',
'select_submit'=> $submit_on_change,
'async' => false
@@ -565,9 +578,9 @@ $options = array(
);
if ($showclosed)
- $options['where'][] = "closed=0";
+ $options['where'][] = "closed=0";
if($showtype)
- $options['where'][] = "type_=$showtype";
+ $options['where'][] = "type_=$showtype";
return combo_input($name, $selected_id, $sql, 'id', 'ref', $options);
}
@@ -760,7 +773,8 @@ function stock_purchasable_items_list($name, $selected_id=null,
$all_option=false, $submit_on_change=false)
{
$str = stock_items_list($name, $selected_id, $all_option, $submit_on_change,
- array('where'=>array("mb_flag!= 'M'")));
+ array('where'=>array("mb_flag!= 'M'"),
+ 'edit_submit' => true));
return $str;
}
@@ -770,7 +784,9 @@ function stock_purchasable_items_list_cells($label, $name, $selected_id=null,
if ($label != null)
echo "$label | \n";
$str = stock_items_list($name, $selected_id, $all_option, $submit_on_change,
- array('where'=>array("mb_flag!= 'M'"), 'cells'=>true));
+ array('where'=>array("mb_flag!= 'M'"),
+ 'edit_submit' => true,
+ 'cells'=>true));
return $str;
}
@@ -871,26 +887,26 @@ function tax_groups_list($name, $selected_id=null,
array(
'order' => 'id',
'spec_option' => $none_option,
- 'spec_id' => 0,
+ 'spec_id' => reserved_words::get_all_numeric(),
'select_submit'=> $submit_on_change,
'async' => false,
) );
}
-function tax_groups_list_cells($label, $name, $selected_id=null, $submit_on_change=false)
+function tax_groups_list_cells($label, $name, $selected_id=null, $none_option=false, $submit_on_change=false)
{
if ($label != null)
echo "$label | \n";
echo "";
- $str = tax_groups_list($name, $selected_id, false, $submit_on_change);
+ $str = tax_groups_list($name, $selected_id, $none_option, $submit_on_change);
echo " | \n";
return $str;
}
-function tax_groups_list_row($label, $name, $selected_id=null, $submit_on_change=false)
+function tax_groups_list_row($label, $name, $selected_id=null, $none_option=false, $submit_on_change=false)
{
echo "\n";
- $str = tax_groups_list_cells($label, $name, $selected_id, false, $submit_on_change);
+ $str = tax_groups_list_cells($label, $name, $selected_id, $none_option, $submit_on_change);
echo "
\n";
return $str;
}
@@ -1121,7 +1137,7 @@ function movement_types_list_row($label, $name, $selected_id=null)
}
//-----------------------------------------------------------------------------------------------
-
+/*
function bank_trans_types_list($name, $selected_id=null)
{
$sql = "SELECT id, name FROM ".TB_PREF."bank_trans_types";
@@ -1143,7 +1159,7 @@ function bank_trans_types_list_row($label, $name, $selected_id=null)
bank_trans_types_list_cells($label, $name, $selected_id);
echo "\n";
}
-
+*/
//-----------------------------------------------------------------------------------------------
function workcenter_list($name, $selected_id=null, $all_option=false)
@@ -1180,11 +1196,12 @@ function workcenter_list_row($label, $name, $selected_id=null, $all_option=false
function bank_accounts_list($name, $selected_id=null, $submit_on_change=false)
{
- $sql = "SELECT ".TB_PREF."bank_accounts.account_code, bank_account_name, bank_curr_code
- FROM ".TB_PREF."bank_accounts, ".TB_PREF."chart_master
- WHERE ".TB_PREF."bank_accounts.account_code=".TB_PREF."chart_master.account_code";
+ $sql = "SELECT ".TB_PREF."bank_accounts.id, bank_account_name, bank_curr_code
+ FROM ".TB_PREF."bank_accounts";
+// , ".TB_PREF."chart_master
+// WHERE ".TB_PREF."bank_accounts.account_code=".TB_PREF."chart_master.account_code";
- return combo_input($name, $selected_id, $sql, 'account_code', 'bank_account_name',
+ return combo_input($name, $selected_id, $sql, 'id', 'bank_account_name',
array(
'format' => '_format_add_curr',
'select_submit'=> $submit_on_change,
@@ -1209,7 +1226,60 @@ function bank_accounts_list_row($label, $name, $selected_id=null, $submit_on_cha
echo "\n";
return $str;
}
+//-----------------------------------------------------------------------------------------------
+
+function cash_accounts_list_row($label, $name, $selected_id=null, $submit_on_change=false)
+{
+ $sql = "SELECT ".TB_PREF."bank_accounts.id, bank_account_name, bank_curr_code
+ FROM ".TB_PREF."bank_accounts
+ WHERE ".TB_PREF."bank_accounts.account_type=3";
+
+ if ($label != null)
+ echo "$label | \n";
+ echo "";
+ $str = combo_input($name, $selected_id, $sql, 'id', 'bank_account_name',
+ array(
+ 'format' => '_format_add_curr',
+ 'select_submit'=> $submit_on_change,
+ 'async' => true
+ ) );
+ echo " |
\n";
+ return $str;
+}
+//-----------------------------------------------------------------------------------------------
+
+function pos_list_row($label, $name, $selected_id=null, $spec_option=false, $submit_on_change=false)
+{
+ $sql = "SELECT id, pos_name FROM ".TB_PREF."sales_pos";
+
+ default_focus($name);
+ echo '';
+ if ($label != null)
+ echo "$label | \n";
+ echo "";
+
+ $str = combo_input($name, $selected_id, $sql, 'id', 'pos_name',
+ array(
+ 'select_submit'=> $submit_on_change,
+ 'async' => true,
+ 'spec_option' =>$spec_option,
+ 'spec_id' => -1,
+ ) );
+ echo " |
\n";
+
+ return $str;
+}
+//-----------------------------------------------------------------------------------------------
+function sale_payment_list_cells($label, $name, $selected_id=null, $submit_on_change=false)
+{
+ if ($label != null)
+ echo "$label | \n";
+ echo "";
+ $str = yesno_list($name, $selected_id, _('Cash'), _('Delayed'), $submit_on_change);
+ echo " | \n";
+ return $str;
+}
//-----------------------------------------------------------------------------------------------
function class_list($name, $selected_id=null, $submit_on_change=false)
@@ -1304,14 +1374,14 @@ function gl_account_types_list_row($label, $name, $selected_id=null, $all_option
//-----------------------------------------------------------------------------------------------
function gl_all_accounts_list($name, $selected_id=null, $skip_bank_accounts=false,
- $show_group=false, $cells=false, $all_option=false)
+ $show_group=false, $cells=false, $all_option=false, $submit_on_change=false)
{
if ($skip_bank_accounts)
$sql = "SELECT chart.account_code, chart.account_name, type.name
FROM (".TB_PREF."chart_master chart,".TB_PREF."chart_types type) "
."LEFT JOIN ".TB_PREF."bank_accounts acc "
."ON chart.account_code=acc.account_code
- WHERE acc.account_code IS NULL
+ WHERE acc.account_code IS NULL
AND chart.account_type=type.id";
else
$sql = "SELECT chart.account_code, chart.account_name, type.name
@@ -1328,7 +1398,9 @@ function gl_all_accounts_list($name, $selected_id=null, $skip_bank_accounts=fals
'search_submit' => false,
'size' => 12,
'max' => 10,
- 'cells' => true
+ 'cells' => true,
+ 'select_submit'=> $submit_on_change,
+ 'async' => false
) );
}
@@ -1370,7 +1442,7 @@ function yesno_list($name, $selected_id=null, $name_yes="", $name_no="", $submit
return array_selector($name, $selected_id, $items,
array(
- 'select_submit'=> true,
+ 'select_submit'=> $submit_on_change,
'async' => false ) ); // FIX?
}
@@ -1430,10 +1502,7 @@ function bank_account_types_list($name, $selected_id=null)
$items = array();
foreach ($types as $type)
{
- if (payment_person_types::has_items($type['id']))
- {
$items[$type['id']] = $type['name'];
- }
}
return array_selector($name, $selected_id, $items );
@@ -1491,6 +1560,37 @@ function payment_person_types_list_row($label, $name, $selected_id=null, $relate
return $str;
}
+//------------------------------------------------------------------------------------------------
+
+function quick_entries_list($name, $selected_id=null, $expense=true, $bank_only=true, $submit_on_change=false)
+{
+ $sql = "SELECT id, description FROM ".TB_PREF."quick_entries";
+ if ($expense)
+ $sql .= " WHERE deposit=0";
+ else
+ $sql .= " WHERE deposit=1";
+ if ($bank_only)
+ $sql .= " AND bank_only=1";
+ else
+ $sql .= " AND bank_only=0";
+ combo_input($name, $selected_id, $sql, 'id', 'description',
+ array(
+ 'spec_id' => '',
+ 'order' => 'description',
+ 'select_submit'=> $submit_on_change,
+ 'async' => false
+ ) );
+
+}
+
+function quick_entries_list_row($label, $name, $selected_id=null, $expense=true, $bank_only=true, $submit_on_change=false)
+{
+ echo "$label | \n";
+ quick_entries_list($name, $selected_id, $expense, $bank_only, $submit_on_change);
+ echo " |
\n";
+}
+
+
//------------------------------------------------------------------------------------------------
function wo_types_list($name, $selected_id=null)
@@ -1729,4 +1829,49 @@ function number_list_row($label, $name, $selected, $from, $to, $no_option=false)
echo "\n";
}
+function print_profiles_list_row($label, $name, $selected_id=null, $spec_opt=false,
+ $submit_on_change=true)
+{
+ $sql = "SELECT profile FROM ".TB_PREF."print_profiles"
+ ." GROUP BY profile";
+ $result = db_query($sql, 'cannot get all profile names');
+ $profiles = array();
+ while($myrow=db_fetch($result)) {
+ $profiles[$myrow['profile']] = $myrow['profile'];
+ }
+
+ echo "";
+ if ($label != null)
+ echo "$label | \n";
+ echo "";
+
+ array_selector($name, $selected_id, $profiles,
+ array( 'select_submit'=> $submit_on_change,
+ 'spec_option'=>$spec_opt,
+ 'spec_id' => ''
+ ));
+
+ echo " |
\n";
+}
+
+function printers_list($name, $selected_id=null, $spec_opt=false, $submit_on_change=false)
+{
+ static $printers; // query only once for page display
+
+ if (!$printers) {
+ $sql = "SELECT id, name, description FROM ".TB_PREF."printers";
+ $result = db_query($sql, 'cannot get all printers');
+ $printers = array();
+ while($myrow=db_fetch($result)) {
+ $printers[$myrow['id']] = $myrow['name'].' - '.$myrow['description'];
+ }
+ }
+ array_selector($name, $selected_id, $printers,
+ array( 'select_submit'=> $submit_on_change,
+ 'spec_option'=>$spec_opt,
+ 'spec_id' => ''
+ ));
+}
+
+
?>
\ No newline at end of file