X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fui%2Fui_lists.inc;h=5f7601497e2a9850a6b375c24800f4e6cd65b7d7;hb=7e830126b96477e969fe3b48d9fc0e78f6c1fe00;hp=718363d45c31f6235c068c591d842270fb8146f0;hpb=5013b34a926e2386afdb8e1be7f55bb8cdd872a2;p=fa-stable.git
diff --git a/includes/ui/ui_lists.inc b/includes/ui/ui_lists.inc
index 718363d4..5f760149 100644
--- a/includes/ui/ui_lists.inc
+++ b/includes/ui/ui_lists.inc
@@ -46,9 +46,10 @@ $opts = array( // default options
'sel_hint' => null,
'search_box' => false, // name or true/false
'type' => 0, // type of extended selector:
- // 0 - with (optional) visible search box, search by id
+ // 0 - with (optional) visible search box, search by fragment inside id
// 1 - with hidden search box, search by option text
- // 2 - TODO reverse: box with hidden selector available via enter; this
+ // 2 - with (optional) visible search box, search by fragment at the start of id
+ // 3 - TODO reverse: box with hidden selector available via enter; this
// would be convenient for optional ad hoc adding of new item
'search_submit' => true, //search submit button: true/false
'size' => 8, // size and max of box tag
@@ -77,8 +78,17 @@ $opts = array( // default options
$select_submit = $opts['select_submit'];
$spec_id = $opts['spec_id'];
$spec_option = $opts['spec_option'];
- $by_id = ($opts['type'] == 0);
- $class = $by_id ? 'combo':'combo2';
+ if ($opts['type'] == 0) {
+ $by_id = true;
+ $class = 'combo';
+ } elseif($opts['type'] == 1) {
+ $by_id = false;
+ $class = 'combo2';
+ } else {
+ $by_id = true;
+ $class = 'combo3';
+ }
+
$disabled = $opts['disabled'] ? "disabled" : '';
$multi = $opts['multi'];
@@ -133,13 +143,14 @@ $opts = array( // default options
if ($spec_option === false && $selected_id == array())
$limit = ' LIMIT 1';
else
- $opts['where'][] = $valfield . "='". get_post($name, $spec_id)."'";
+ $opts['where'][] = $valfield . "=". db_escape(get_post($name, $spec_id));
}
else
if ($txt != '*') {
foreach($opts['search'] as $i=> $s)
- $opts['search'][$i] = $s . " LIKE '%{$txt}%'";
+ $opts['search'][$i] = $s . " LIKE "
+ .db_escape(($class=='combo3' ? '' : '%').$txt.'%');
$opts['where'][] = '('. implode($opts['search'], ' OR ') . ')';
}
}
@@ -406,6 +417,21 @@ function _format_add_curr($row)
'' : (" - " . $row[2]));
}
+function add_edit_combo($type)
+{
+ global $path_to_root, $popup_editors, $use_icon_for_editkey;
+
+ if (!isset($use_icon_for_editkey) || $use_icon_for_editkey==0)
+ return "";
+ // Derive theme path
+ $theme_path = $path_to_root . '/themes/' . user_theme();
+
+ $key = $popup_editors[$type][1];
+ $onclick = "onclick=\"javascript:callEditor($key); return false;\"";
+ $img = "
";
+ return "$img";
+}
+
function supplier_list($name, $selected_id=null, $spec_option=false, $submit_on_change=false,
$all=false, $editkey = false)
{
@@ -417,8 +443,8 @@ function supplier_list($name, $selected_id=null, $spec_option=false, $submit_on_
if ($editkey)
set_editor('supplier', $name, $editkey);
-
- return combo_input($name, $selected_id, $sql, 'supplier_id', 'supp_name',
+
+ $ret = combo_input($name, $selected_id, $sql, 'supplier_id', 'supp_name',
array(
'format' => '_format_add_curr',
'order' => array('supp_ref'),
@@ -432,6 +458,9 @@ function supplier_list($name, $selected_id=null, $spec_option=false, $submit_on_
_('Select supplier'),
'show_inactive'=>$all
));
+ if ($editkey)
+ $ret .= add_edit_combo('supplier');
+ return $ret;
}
function supplier_list_cells($label, $name, $selected_id=null, $all_option=false,
@@ -466,7 +495,7 @@ function customer_list($name, $selected_id=null, $spec_option=false, $submit_on_
if ($editkey)
set_editor('customer', $name, $editkey);
- return combo_input($name, $selected_id, $sql, 'debtor_no', 'name',
+ $ret = combo_input($name, $selected_id, $sql, 'debtor_no', 'debtor_ref',
array(
'format' => '_format_add_curr',
'order' => array('debtor_ref'),
@@ -481,6 +510,9 @@ function customer_list($name, $selected_id=null, $spec_option=false, $submit_on_
_('Select customer'),
'show_inactive' => $show_inactive
) );
+ if ($editkey)
+ $ret .= add_edit_combo('customer');
+ return $ret;
}
function customer_list_cells($label, $name, $selected_id=null, $all_option=false,
@@ -497,6 +529,7 @@ function customer_list_cells($label, $name, $selected_id=null, $all_option=false
function customer_list_row($label, $name, $selected_id=null, $all_option = false,
$submit_on_change=false, $show_inactive=false, $editkey = false)
{
+
echo "
$label | ";
echo customer_list($name, $selected_id, $all_option, $submit_on_change,
$show_inactive, $editkey);
@@ -511,13 +544,13 @@ function customer_branches_list($customer_id, $name, $selected_id=null,
global $all_items;
$sql = "SELECT branch_code, branch_ref FROM ".TB_PREF."cust_branch
- WHERE debtor_no='" . $customer_id . "' ";
+ WHERE debtor_no=" . db_escape($customer_id)." ";
if ($editkey)
set_editor('branch', $name, $editkey);
$where = $enabled ? array("disable_trans = 0") : array();
- return combo_input($name, $selected_id, $sql, 'branch_code', 'br_name',
+ $ret = combo_input($name, $selected_id, $sql, 'branch_code', 'branch_ref',
array(
'where' => $where,
'order' => array('branch_ref'),
@@ -526,6 +559,11 @@ function customer_branches_list($customer_id, $name, $selected_id=null,
'select_submit'=> $submit_on_change,
'sel_hint' => _('Select customer branch')
) );
+ if ($editkey)
+ {
+ $ret .= add_edit_combo('branch');
+ }
+ return $ret;
}
//------------------------------------------------------------------------------------------------
@@ -707,7 +745,7 @@ function stock_items_list($name, $selected_id=null, $all_option=false,
if ($editkey)
set_editor('item', $name, $editkey);
- return combo_input($name, $selected_id, $sql, 'stock_id', 's.description',
+ $ret = combo_input($name, $selected_id, $sql, 'stock_id', 's.description',
array_merge(
array(
'format' => '_format_stock_items',
@@ -721,6 +759,9 @@ function stock_items_list($name, $selected_id=null, $all_option=false,
'category' => 2,
'order' => array('c.description','stock_id')
), $opts) );
+ if ($editkey)
+ $ret .= add_edit_combo('item');
+ return $ret;
}
function _format_stock_items($row)
@@ -1396,17 +1437,21 @@ function bank_accounts_list_row($label, $name, $selected_id=null, $submit_on_cha
}
//-----------------------------------------------------------------------------------------------
-function cash_accounts_list_row($label, $name, $selected_id=null, $submit_on_change=false)
+function cash_accounts_list_row($label, $name, $selected_id=null, $submit_on_change=false, $all_option=false)
{
+ global $all_items;
+
$sql = "SELECT ".TB_PREF."bank_accounts.id, bank_account_name, bank_curr_code, inactive
FROM ".TB_PREF."bank_accounts
- WHERE ".TB_PREF."bank_accounts.account_type=3";
+ WHERE ".TB_PREF."bank_accounts.account_type=".BT_CASH;
if ($label != null)
echo " |
$label | \n";
echo "";
echo combo_input($name, $selected_id, $sql, 'id', 'bank_account_name',
array(
+ 'spec_option' => $all_option,
+ 'spec_id' => $all_items,
'format' => '_format_add_curr',
'select_submit'=> $submit_on_change,
'async' => true
@@ -1439,17 +1484,16 @@ function pos_list_row($label, $name, $selected_id=null, $spec_option=false, $sub
//-----------------------------------------------------------------------------------------------
// Payment type selector for current user.
//
-function sale_payment_list($name, $selected_id=null, $submit_on_change=true)
+function sale_payment_list($name, $category, $selected_id=null, $submit_on_change=true, $prepayments=true)
{
$sql = "SELECT terms_indicator, terms, inactive FROM ".TB_PREF."payment_terms";
- $paym = get_sales_point(user_pos());
- if (!$paym['cash_sale'] || !$paym['credit_sale']) {
- if ($paym['cash_sale']) // only cash
+ if ($category == PM_CASH) // only cash
$sql .= " WHERE days_before_due=0 AND day_in_following_month=0";
- else
- $sql .= " WHERE days_before_due!=0 OR day_in_following_month!=0";
- }
+ elseif ($category == PM_CREDIT) // only delayed payments
+ $sql .= " WHERE days_before_due".($prepayments ? '!=': '>')."0 OR day_in_following_month!=0";
+ elseif (!$prepayments)
+ $sql .= " WHERE days_before_due>=0";
return combo_input($name, $selected_id, $sql, 'terms_indicator', 'terms',
array(
@@ -1459,13 +1503,13 @@ function sale_payment_list($name, $selected_id=null, $submit_on_change=true)
}
-function sale_payment_list_cells($label, $name, $selected_id=null, $submit_on_change=true)
+function sale_payment_list_cells($label, $name, $category, $selected_id=null, $submit_on_change=true, $prepayments=true)
{
if ($label != null)
echo " | $label | \n";
echo "";
- echo sale_payment_list($name, $selected_id, $submit_on_change);
+ echo sale_payment_list($name, $category, $selected_id, $submit_on_change, $prepayments);
echo " | \n";
}
@@ -1538,6 +1582,7 @@ function gl_account_types_list($name, $selected_id=null, $all_option=false, $all
return combo_input($name, $selected_id, $sql, 'id', 'name',
array(
+ 'format' => '_format_account',
'order' => array('class_id', 'id', 'parent'),
'spec_option' =>$all_option,
'spec_id' => $all_items
@@ -1582,6 +1627,7 @@ function gl_all_accounts_list($name, $selected_id=null, $skip_bank_accounts=fals
'format' => '_format_account',
'spec_option' => $all_option===true ? _("Use Item Sales Accounts") : $all_option,
'spec_id' => '',
+ 'type' => 2,
'order' => array('type.class_id','type.id','account_code'),
'search_box' => $cells,
'search_submit' => false,
@@ -1825,11 +1871,13 @@ function pagesizes_list_row($label, $name, $value=null)
echo "
\n";
}
-function systypes_list($name, $value=null, $spec_opt=false, $submit_on_change=false)
+function systypes_list($name, $value=null, $spec_opt=false, $submit_on_change=false, $exclude=array())
{
global $systypes_array;
- return array_selector($name, $value, $systypes_array,
+ // emove non-voidable transactions if needed
+ $systypes = array_diff_key($systypes_array, array_flip($exclude));
+ return array_selector($name, $value, $systypes,
array(
'spec_option'=> $spec_opt,
'spec_id' => ALL_NUMERIC,
@@ -1839,19 +1887,19 @@ function systypes_list($name, $value=null, $spec_opt=false, $submit_on_change=fa
);
}
-function systypes_list_cells($label, $name, $value=null, $submit_on_change=false)
+function systypes_list_cells($label, $name, $value=null, $submit_on_change=false, $exclude=array())
{
if ($label != null)
echo "$label | \n";
echo "";
- echo systypes_list($name, $value, false, $submit_on_change);
+ echo systypes_list($name, $value, false, $submit_on_change, $exclude);
echo " | \n";
}
-function systypes_list_row($label, $name, $value=null, $submit_on_change=false)
+function systypes_list_row($label, $name, $value=null, $submit_on_change=false, $exclude=array())
{
echo "$label | ";
- systypes_list_cells(null, $name, $value, $submit_on_change);
+ systypes_list_cells(null, $name, $value, $submit_on_change, $exclude);
echo "
\n";
}
@@ -2285,4 +2333,121 @@ function payment_type_list_row($label, $name, $selected_id=null, $submit_on_chan
echo "\n";
}
-?>
\ No newline at end of file
+function coa_list_row($label, $name, $value=null)
+{
+ global $path_to_root, $installed_extensions;
+
+ $path = $path_to_root.'/sql/';
+ $coas = array();
+ $sqldir = opendir($path);
+ while (false !== ($fname = readdir($sqldir)))
+ {
+ if (is_file($path.$fname) && substr($fname,-4)=='.sql' && @($fname[2] == '_'))
+ {
+ $ext = array_search_value($fname, $installed_extensions, 'sql');
+ if ($ext!=null) {
+ $descr = $ext['name'];
+ } elseif ($fname == 'en_US-new.sql') { // two standard COAs
+ $descr = _("Standard new company American COA (4 digit)");
+ } elseif ($fname == 'en_US-demo.sql') {
+ $descr = _("Standard American COA (4 digit) with demo data");
+ } else
+ $descr = $fname;
+
+ $coas[$fname] = $descr;
+ }
+ }
+ ksort($coas);
+
+ echo "$label | \n";
+ echo array_selector( $name, $value, $coas );
+ echo " |
\n";
+}
+
+function payment_services($name)
+{
+ global $payment_services;
+
+ $services = array_combine(array_keys($payment_services), array_keys($payment_services));
+
+ return array_selector($name, null, $services, array(
+ 'spec_option'=> _("No payment Link"),
+ 'spec_id' => '',
+ ));
+}
+
+function tax_algorithm_list($name, $value=null, $submit_on_change = false)
+{
+ global $tax_algorithms;
+
+ return array_selector($name, $value, $tax_algorithms,
+ array(
+ 'select_submit'=> $submit_on_change,
+ 'async' => true,
+ )
+ );
+}
+
+function tax_algorithm_list_cells($label, $name, $value=null, $submit_on_change=false)
+{
+ if ($label != null)
+ echo "$label | \n";
+ echo "";
+ echo tax_algorithm_list($name, $value, $submit_on_change);
+ echo " | \n";
+}
+
+function tax_algorithm_list_row($label, $name, $value=null, $submit_on_change=false)
+{
+ echo "$label | ";
+ tax_algorithm_list_cells(null, $name, $value, $submit_on_change);
+ echo "
\n";
+}
+//----------------------------------------------------------------------------------------------
+
+function subledger_list($name, $account, $selected_id=null)
+{
+ global $all_items;
+
+ $type = is_subledger_account($account);
+ if (!$type)
+ return '';
+
+ if($type > 0)
+ $sql = "SELECT DISTINCT d.debtor_no as id, debtor_ref as name
+ FROM "
+ .TB_PREF."debtors_master d,"
+ .TB_PREF."cust_branch c
+ WHERE d.debtor_no=c.debtor_no AND c.receivables_account=".db_escape($account);
+ else
+ $sql = "SELECT supplier_id as id, supp_ref as name
+ FROM "
+ .TB_PREF."suppliers s
+ WHERE s.payable_account=".db_escape($account);
+
+ $mode = get_company_pref('no_customer_list');
+
+ return combo_input($name, $selected_id, $sql, 'id', 'name',
+ array(
+ 'type' => 1,
+ 'size' => 20,
+ 'async' => false,
+ ) );
+}
+
+function subledger_list_cells($label, $name, $account, $selected_id=null)
+{
+ if ($label != null)
+ echo "$label | \n";
+ echo "";
+ echo subledger_list($name, $account, $selected_id);
+ echo " | \n";
+}
+
+function subledger_list_row($label, $name, $selected_id=null, $all_option = false,
+ $submit_on_change=false, $show_inactive=false, $editkey = false)
+{
+ echo "$label | ";
+ echo subledger_list($name, $account, $selected_id);
+ echo " | \n
\n";
+}