<?php
-
+/**********************************************************************
+ Copyright (C) FrontAccounting, LLC.
+ Released under the terms of the GNU General Public License, GPL,
+ as published by the Free Software Foundation, either version 3
+ of the License, or (at your option) any later version.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
include_once($path_to_root . "/includes/banking.inc");
include_once($path_to_root . "/includes/reserved.inc");
include_once($path_to_root . "/includes/types.inc");
'search' => array(), // sql field names to search
'format' => null, // format functions for regular options
'disabled' => false,
- 'box_hint' => null // box/selectors hints; null = std see below
+ 'box_hint' => null, // box/selectors hints; null = std see below
+ 'category' => false // category column name or false
);
// ------ merge options with defaults ----------
if($options != null)
}
// sql completion
if (count($opts['where'])) {
- $sql .= strpos($sql, 'WHERE')==false ? ' WHERE ':' AND ';
- $sql .= '('. implode($opts['where'], ' AND ') . ')';
+ $where = strpos($sql, 'WHERE')==false ? ' WHERE ':' AND ';
+ $where .= '('. implode($opts['where'], ' AND ') . ')';
+ $group_pos = strpos($sql, 'GROUP BY');
+ if ($group_pos) {
+ $group = substr($sql, $group_pos);
+ $sql = substr($sql, 0, $group_pos) . $where.' '.$group;
+ } else {
+ $sql .= $where;
+ }
}
if ($opts['order'] != false) {
- $sql .= ' ORDER BY '.$opts['order'];
+ if (!is_array($opts['order']))
+ $opts['order'] = array($opts['order']);
+ $sql .= ' ORDER BY '.implode(',',$opts['order']);
}
$sql .= $limit;
$selector = $first_opt = '';
$first_id = false;
$found = false;
-//if($name=='contact_sel') display_error($sql);
+ $lastcat = null;
+//if($name=='stock_id') display_error($sql);
if($result = db_query($sql)) {
while ($contact_row = db_fetch($result)) {
$value = $contact_row[0];
$first_id = $value;
$first_opt = $descr;
}
+ $cat = $contact_row[$opts['category']];
+ if ($opts['category'] !== false && $cat != $lastcat){
+ $selector .= "<optgroup label='".$cat."'>\n";
+ $lastcat = $cat;
+ }
$selector .= "<option $sel value='$value'>$descr</option>\n";
}
db_free_result($result);
'search' => array("stock_id", "c.description","s.description"),
'search_submit' => get_company_pref('no_item_list')!=0,
'size'=>10,
- 'select_submit'=> $submit_on_change
+ 'select_submit'=> $submit_on_change,
+ 'category' => 2,
+ 'order' => array('c.description','stock_id')
), $opts) );
}
function _format_stock_items($row)
{
- return (user_show_codes() ? ($row[0] . " - ") : "")
- . $row[2] . " - " . $row[1];
+ return (user_show_codes() ? ($row[0] . " - ") : "") . $row[1];
}
function stock_items_list_cells($label, $name, $selected_id=null, $all_option=false, $submit_on_change=false)
ON i.category_id=c.category_id";
if ($type == 'local') { // exclude foreign codes
- $sql .= " WHERE NOT i.is_foreign";
+ $sql .= " WHERE !i.is_foreign";
} elseif ($type == 'kits') { // sales kits
- $sql .= " WHERE NOT i.is_foreign
- AND NOT i.item_code=i.stock_id";
+ $sql .= " WHERE !i.is_foreign AND i.item_code!=i.stock_id";
}
$sql .= " GROUP BY i.item_code";
'spec_option' => $all_option===true ? _("All Items") : $all_option,
'spec_id' => $all_items,
'search_box' => true,
- 'search' => array("i.item_code", "c.description","s.description"),
+ 'search' => array("i.item_code", "c.description"),
'search_submit' => get_company_pref('no_item_list')!=0,
'size'=>15,
'select_submit'=> $submit_on_change,
- 'order' => 'i.item_code'
+ 'category' => 2,
+ 'order' => array('c.description','i.item_code')
), $opts) );
}
'spec_option' => $all_option==true ? _("All Items") : $all_option,
'spec_id' => $all_items,
'select_submit'=> $submit_on_change,
- 'where' => $where
- ) );
+ 'where' => $where,
+ 'category' => 2 ) );
}
//------------------------------------------------------------------------------------
}
//-----------------------------------------------------------------------------------------------
-/*
-function bank_trans_types_list($name, $selected_id=null)
+function _format_date($row)
{
- $sql = "SELECT id, name FROM ".TB_PREF."bank_trans_types";
- combo_input($name, $selected_id, $sql, 'id', 'name', array());
+ return sql2date($row['reconciled']);
}
-function bank_trans_types_list_cells($label, $name, $selected_id=null)
+function bank_reconciliation_list($account, $name, $selected_id=null, $submit_on_change=false, $special_option=false)
+{
+ $sql = "SELECT reconciled, reconciled FROM ".TB_PREF."bank_trans
+ WHERE bank_act=".db_escape($account)." AND reconciled IS NOT NULL
+ GROUP BY reconciled";
+ combo_input($name, $selected_id, $sql, 'id', 'reconciled',
+ array(
+ 'spec_option' => $special_option,
+ 'format' => '_format_date',
+ 'spec_id' => '',
+ 'select_submit'=> $submit_on_change
+ ) );
+}
+
+function bank_reconciliation_list_cells($label,$account, $name, $selected_id=null, $submit_on_change=false, $special_option=false)
{
if ($label != null)
echo "<td>$label</td>\n";
echo "<td>";
- bank_trans_types_list($name, $selected_id);
+ bank_reconciliation_list($account, $name, $selected_id, $submit_on_change, $special_option);
echo "</td>\n";
}
-
-function bank_trans_types_list_row($label, $name, $selected_id=null)
+/*
+function bank_reconciliation_list_row($label, $account, $name, $selected_id=null, $submit_on_change=false, $special_option=false)
{
echo "<tr>\n";
- bank_trans_types_list_cells($label, $name, $selected_id);
+ bank_reconciliation_list_cells($label, $account, $name, $selected_id, $submit_on_change, $special_option);
echo "</tr>\n";
}
*/
//-----------------------------------------------------------------------------------------------
function gl_all_accounts_list($name, $selected_id=null, $skip_bank_accounts=false,
- $show_group=false, $cells=false, $all_option=false, $submit_on_change=false)
+ $cells=false, $all_option=false, $submit_on_change=false)
{
if ($skip_bank_accounts)
$sql = "SELECT chart.account_code, chart.account_name, type.name
combo_input($name, $selected_id, $sql, 'chart.account_code', 'chart.account_name',
array(
- 'format' => '_format_account' . ($show_group ? '2' : ''),
+ 'format' => '_format_account',
'spec_option' => $all_option===true ? _("Use Item Sales Accounts") : $all_option,
'spec_id' => '',
- 'order' => 'account_code',
+ 'order' => array('name','account_code'),
'search_box' => $cells,
'search_submit' => false,
'size' => 12,
'max' => 10,
'cells' => true,
'select_submit'=> $submit_on_change,
- 'async' => false
+ 'async' => false,
+ 'category' => 2
) );
}
return $row[0] . " " . $row[1];
}
-function _format_account2($row)
-{
- return $row[0] . " " . $row[2] . " " . $row[1];
-}
-
-function gl_all_accounts_list_cells($label, $name, $selected_id=null, $skip_bank_accounts=false,
- $show_group=false, $cells=false, $all_option=false)
+function gl_all_accounts_list_cells($label, $name, $selected_id=null,
+ $skip_bank_accounts=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, $all_option);
+ gl_all_accounts_list($name, $selected_id,
+ $skip_bank_accounts, $cells, $all_option);
echo "</td>\n";
}
-function gl_all_accounts_list_row($label, $name, $selected_id=null, $skip_bank_accounts=false,
- $show_group=false, $cells=false, $all_option=false)
+function gl_all_accounts_list_row($label, $name, $selected_id=null,
+ $skip_bank_accounts=false, $cells=false, $all_option=false)
{
echo "<tr>\n";
- gl_all_accounts_list_cells($label, $name, $selected_id, $skip_bank_accounts,
- $show_group, $cells, $all_option);
+ gl_all_accounts_list_cells($label, $name, $selected_id,
+ $skip_bank_accounts, $cells, $all_option);
echo "</tr>\n";
}
return $str;
}
-//------------------------------------------------------------------------------------------------
-
-function quick_entries_list($name, $selected_id=null, $expense=-1, $bank_only=-1, $submit_on_change=false)
-{
- $where = false;
- $sql = "SELECT id, description FROM ".TB_PREF."quick_entries";
- if ($expense != -1)
- {
- $sql .= " WHERE deposit=$expense";
- $where = true;
- }
- if ($bank_only != -1)
- {
- if ($where)
- $sql .= " AND bank_only=$bank_only";
- else
- $sql .= " WHERE bank_only=$bank_only";
- }
- combo_input($name, $selected_id, $sql, 'id', 'description',
- array(
- 'spec_id' => '',
- 'order' => 'description',
- 'select_submit'=> $submit_on_change,
- 'async' => false
- ) );
-
-}
-
-function quick_entries_list_cells($label, $name, $selected_id=null, $expense=-1, $bank_only=-1, $submit_on_change=false)
-{
- echo "<td>$label</td><td>\n";
- quick_entries_list($name, $selected_id, $expense, $bank_only, $submit_on_change);
- echo "</td>";
-}
-
-function quick_entries_list_row($label, $name, $selected_id=null, $expense=-1, $bank_only=-1, $submit_on_change=false)
-{
- echo "<tr>\n";
- quick_entries_list_cells($label, $name, $selected_id, $expense, $bank_only, $submit_on_change);
- echo "</tr>\n";
-}
-
-
//------------------------------------------------------------------------------------------------
function wo_types_list($name, $selected_id=null)
));
}
+//------------------------------------------------------------------------------------------------
+
+function quick_entries_list($name, $selected_id=null, $type=null, $submit_on_change=false)
+{
+ $where = false;
+ $sql = "SELECT id, description FROM ".TB_PREF."quick_entries";
+ if ($type != null)
+ $sql .= " WHERE type=$type";
+
+ combo_input($name, $selected_id, $sql, 'id', 'description',
+ array(
+ 'spec_id' => '',
+ 'order' => 'description',
+ 'select_submit'=> $submit_on_change,
+ 'async' => false
+ ) );
+
+}
+
+function quick_entries_list_cells($label, $name, $selected_id=null, $type, $submit_on_change=false)
+{
+ echo "<td>$label</td><td>\n";
+ quick_entries_list($name, $selected_id, $type, $submit_on_change);
+ echo "</td>";
+}
+
+function quick_entries_list_row($label, $name, $selected_id=null, $type, $submit_on_change=false)
+{
+ echo "<tr>\n";
+ quick_entries_list_cells($label, $name, $selected_id, $type, $submit_on_change);
+ echo "</tr>\n";
+}
+
+
+function quick_actions_list_row($label, $name, $selected_id=null, $submit_on_change=false)
+{
+ global $quick_actions;
+
+ echo "<tr><td>$label</td><td>";
+ array_selector($name, $selected_id, $quick_actions,
+ array(
+ 'select_submit'=> $submit_on_change
+ ) );
+ echo "</td></tr>\n";
+}
+
+function quick_entry_types_list_row($label, $name, $selected_id=null, $submit_on_change=false)
+{
+ global $quick_entry_types;
+
+ echo "<tr><td>$label</td><td>";
+ array_selector($name, $selected_id, $quick_entry_types,
+ array(
+ 'select_submit'=> $submit_on_change
+ ) );
+ echo "</td></tr>\n";
+}
+
?>
\ No newline at end of file