X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fmanage%2Fgl_quick_entries.php;h=1b9142d33e6130e24da965982742cb1a98da2da5;hb=83e3bca480ef8c33cf9310d04d5831ed2922bcd8;hp=3772b160c62c24be95ef4d89f4089eeb6b8fb590;hpb=a21695056d3bf1b15b5f314a84412b0e6dfd011b;p=fa-stable.git diff --git a/gl/manage/gl_quick_entries.php b/gl/manage/gl_quick_entries.php index 3772b160..1b9142d3 100644 --- a/gl/manage/gl_quick_entries.php +++ b/gl/manage/gl_quick_entries.php @@ -1,16 +1,68 @@ . +***********************************************************************/ +$page_security = 'SA_QUICKENTRY'; +$path_to_root = "../.."; include($path_to_root . "/includes/session.inc"); -page(_("Quick Entries")); +page(_($help_context = "Quick Entries")); include($path_to_root . "/gl/includes/gl_db.inc"); include($path_to_root . "/includes/ui.inc"); simple_page_mode(true); +simple_page_mode2(true); + +function simple_page_mode2($numeric_id = true) +{ + global $Ajax, $Mode2, $selected_id2; + + $default = $numeric_id ? -1 : ''; + $selected_id2 = get_post('selected_id2', $default); + foreach (array('ADD_ITEM2', 'UPDATE_ITEM2', 'RESET2') as $m) { + if (isset($_POST[$m])) { + $Ajax->activate('_page_body'); + if ($m == 'RESET2') + $selected_id2 = $default; + $Mode2 = $m; return; + } + } + foreach (array('BEd', 'BDel') as $m) { + foreach ($_POST as $p => $pvar) { + if (strpos($p, $m) === 0) { +// $selected_id2 = strtr(substr($p, strlen($m)), array('%2E'=>'.')); + unset($_POST['_focus']); // focus on first form entry + $selected_id2 = quoted_printable_decode(substr($p, strlen($m))); + $Ajax->activate('_page_body'); + $Mode2 = $m; + return; + } + } + } + $Mode2 = ''; +} + +function submit_add_or_update_center2($add=true, $title=false, $async=false) +{ + echo "
"; + if ($add) + submit('ADD_ITEM2', _("Add new"), true, $title, $async); + else { + submit('UPDATE_ITEM2', _("Update"), true, $title, $async); + submit('RESET2', _("Cancel"), true, $title, $async); + } + echo "
"; +} + //----------------------------------------------------------------------------------- function can_process() @@ -22,6 +74,19 @@ function can_process() set_focus('description'); return false; } + $bal_type = get_post('bal_type'); + if ($bal_type == 1 && $_POST['type'] != QE_JOURNAL) + { + display_error( _("You can only use Balance Based together with Journal Entries.")); + set_focus('base_desc'); + return false; + } + if (!$bal_type && strlen($_POST['base_desc']) == 0) + { + display_error( _("The base amount description cannot be empty.")); + set_focus('base_desc'); + return false; + } return true; } @@ -31,107 +96,279 @@ function can_process() if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { - if (can_process()) - { + if (can_process()) + { - if ($selected_id != -1) - { - update_quick_entry($selected_id, $_POST['description'], $_POST['account'], $_POST['deposit']); + if ($selected_id != -1) + { + update_quick_entry($selected_id, $_POST['description'], $_POST['type'], + input_num('base_amount'), $_POST['base_desc'], get_post('bal_type', 0), $_POST['usage']); display_notification(_('Selected quick entry has been updated')); - } - else - { - add_quick_entry($_POST['description'], $_POST['account'], $_POST['deposit']); - display_notification(_('New account class has been added')); - } + } + else + { + add_quick_entry($_POST['description'], $_POST['type'], + input_num('base_amount'), $_POST['base_desc'], get_post('bal_type', 0), $_POST['usage']); + display_notification(_('New quick entry has been added')); + } $Mode = 'RESET'; } } +if ($Mode2=='ADD_ITEM2' || $Mode2=='UPDATE_ITEM2') +{ + if (!get_post('dest_id')) { + display_error(_("You must select GL account.")); + set_focus('dest_id'); + } + elseif ($selected_id2 != -1) + { + update_quick_entry_line($selected_id2, $selected_id, $_POST['actn'], $_POST['dest_id'], input_num('amount', 0), + $_POST['dimension_id'], $_POST['dimension2_id'], $_POST['memo']); + display_notification(_('Selected quick entry line has been updated')); + } + else + { + add_quick_entry_line($selected_id, $_POST['actn'], $_POST['dest_id'], input_num('amount', 0), + $_POST['dimension_id'], $_POST['dimension2_id'], $_POST['memo']); + display_notification(_('New quick entry line has been added')); + } + $Mode2 = 'RESET2'; +} + //----------------------------------------------------------------------------------- if ($Mode == 'Delete') { + if (!has_quick_entry_lines($selected_id)) + { + delete_quick_entry($selected_id); + display_notification(_('Selected quick entry has been deleted')); + $Mode = 'RESET'; + } + else + { + display_error( _("The Quick Entry has Quick Entry Lines. Cannot be deleted.")); + set_focus('description'); + } +} - delete_quick_entry($selected_id); - display_notification(_('Selected quick entry has been deleted')); - $Mode = 'RESET'; +if (find_submit('Edit') != -1) { + $Mode2 = 'RESET2'; + set_focus('description'); +} +if (find_submit('BEd') != -1 || get_post('ADD_ITEM2')) { + set_focus('actn'); } +if ($Mode2 == 'BDel') +{ + delete_quick_entry_line($selected_id2); + display_notification(_('Selected quick entry line has been deleted')); + $Mode2 = 'RESET2'; +} //----------------------------------------------------------------------------------- if ($Mode == 'RESET') { $selected_id = -1; - $_POST['description'] = $_POST['account'] = $_POST['deposit'] = ''; + $_POST['description'] = $_POST['type'] = $_POST['usage'] = ''; + $_POST['base_desc']= _('Base Amount'); + $_POST['base_amount'] = price_format(0); + $_POST['bal_type'] = 0; +} +if ($Mode2 == 'RESET2') +{ + $selected_id2 = -1; + $_POST['actn'] = $_POST['dest_id'] = $_POST['amount'] = + $_POST['dimension_id'] = $_POST['dimension2_id'] = ''; } //----------------------------------------------------------------------------------- $result = get_quick_entries(); start_form(); -start_table($table_style); -$th = array(_("Description"), _("Account"), _("Deposit"), "", ""); +start_table(TABLESTYLE); +$th = array(_("Description"), _("Type"), _("Usage"), "", ""); table_header($th); $k = 0; while ($myrow = db_fetch($result)) { - alt_table_row_color($k); - - if ($myrow["deposit"] == 0) - { - $bs_text = _("No"); - } - else - { - $bs_text = _("Yes"); - } + $type_text = $quick_entry_types[$myrow["type"]]; label_cell($myrow['description']); - label_cell($myrow['account']." ".$myrow['account_name']); - label_cell($bs_text); + label_cell($type_text); + label_cell($myrow['usage']); edit_button_cell("Edit".$myrow["id"], _("Edit")); - edit_button_cell("Delete".$myrow["id"], _("Delete")); + delete_button_cell("Delete".$myrow["id"], _("Delete")); end_row(); } -end_table(); -end_form(); -echo '
'; +end_table(1); //----------------------------------------------------------------------------------- -start_form(); - -start_table($table_style2); +div_start('qe'); +start_table(TABLESTYLE2); if ($selected_id != -1) { - if ($Mode == 'Edit') - { - //editing an existing status code + if ($Mode == 'Edit') // changed by Joe 2010-11-09 + { $myrow = get_quick_entry($selected_id); $_POST['id'] = $myrow["id"]; $_POST['description'] = $myrow["description"]; - $_POST['account'] = $myrow["account"]; - $_POST['deposit'] = $myrow["deposit"]; - hidden('selected_id', $selected_id); - } + $_POST['type'] = $myrow["type"]; + $_POST['base_desc'] = $myrow["base_desc"]; + $_POST['usage'] = $myrow["usage"]; + $_POST['bal_type'] = $myrow["bal_type"]; + $_POST['base_amount'] = $myrow["bal_type"] ? + $myrow["base_amount"] : price_format($myrow["base_amount"]); + } + hidden('selected_id', $selected_id); } -text_row_ex(_("Description:"), 'description', 50, 60); +text_row_ex(_("Description").':', 'description', 50, 60); +text_row_ex(_("Usage").':', 'usage', 80, 120); -gl_all_accounts_list_row(_("Account"), 'account', null, true); +quick_entry_types_list_row(_("Entry Type").':', 'type', null, true); -yesno_list_row(_("Deposit:"), 'deposit', null, "", "", false); +if (get_post('type') == QE_JOURNAL) +{ + yesno_list_row(_("Balance Based"), 'bal_type', null, _("Yes"), _("No"), true); +} +if (list_updated('bal_type') || list_updated('type')) +{ + $Ajax->activate('qe'); +} + +if (get_post('type') == QE_JOURNAL && get_post('bal_type') == 1) +{ + yesno_list_row(_("Period"), 'base_amount', null, _("Monthly"), _("Yearly")); + gl_all_accounts_list_row(_("Account"), 'base_desc', null, true); +} +else +{ + text_row_ex(_("Base Amount Description").':', 'base_desc', 50, 60, ''); + amount_row(_("Default Base Amount").':', 'base_amount', price_format(0)); +} end_table(1); +submit_add_or_update_center($selected_id == -1, '', 'both'); +div_end(); -submit_add_or_update_center($selected_id == -1, '', true); -end_form(); +if ($selected_id != -1) +{ + display_heading(_("Quick Entry Lines") . " - " . $_POST['description']); + $result = get_quick_entry_lines($selected_id); + + start_table(TABLESTYLE2); + $dim = get_company_pref('use_dimension'); + if ($dim == 2) + $th = array(_("Post"), _("Account/Tax Type"), _("Amount"), _("Memo"), _("Dimension"), _("Dimension")." 2", "", ""); + elseif ($dim == 1) + $th = array(_("Post"), _("Account/Tax Type"), _("Amount"), _("Memo"), _("Dimension"), "", ""); + else + $th = array(_("Post"), _("Account/Tax Type"), _("Amount"), _("Memo"), "", ""); + + table_header($th); + $k = 0; + while ($myrow = db_fetch($result)) + { + alt_table_row_color($k); + + label_cell($quick_actions[$myrow['action']]); + + $act_type = strtolower(substr($myrow['action'], 0, 1)); + + if ($act_type == 't') + { + label_cells($myrow['tax_name'], ''); + } + else + { + label_cell($myrow['dest_id'].' '.$myrow['account_name']); + if ($act_type == '=') + label_cell(''); + elseif ($act_type == '%') + label_cell(number_format2($myrow['amount'], user_exrate_dec()), "nowrap align=right "); + else + amount_cell($myrow['amount']); + } + label_cell($myrow['memo']); + if ($dim >= 1) + label_cell(get_dimension_string($myrow['dimension_id'], true)); + if ($dim > 1) + label_cell(get_dimension_string($myrow['dimension2_id'], true)); + edit_button_cell("BEd".$myrow["id"], _("Edit")); + delete_button_cell("BDel".$myrow["id"], _("Delete")); + end_row(); + } + end_table(1); + + div_start('edit_line'); + start_table(TABLESTYLE2); + + if ($selected_id2 != -1) + { + if ($Mode2 == 'BEd') + { + //editing an existing status code + $myrow = get_quick_entry_line($selected_id2); + + $_POST['id'] = $myrow["id"]; + $_POST['dest_id'] = $myrow["dest_id"]; + $_POST['actn'] = $myrow["action"]; + $_POST['amount'] = $myrow["amount"]; + $_POST['memo'] = $myrow["memo"]; + $_POST['dimension_id'] = $myrow["dimension_id"]; + $_POST['dimension2_id'] = $myrow["dimension2_id"]; + } + } + + quick_actions_list_row(_("Posted").":",'actn', null, true); + if (list_updated('actn')) + $Ajax->activate('edit_line'); + + $actn = strtolower(substr($_POST['actn'],0,1)); + if ($actn == 't') + { + //item_tax_types_list_row(_("Item Tax Type").":",'dest_id', null); + tax_types_list_row(_("Tax Type").":", 'dest_id', null); + } + else + { + gl_all_accounts_list_row(_("Account").":", 'dest_id', null, $_POST['type'] == QE_DEPOSIT || $_POST['type'] == QE_PAYMENT); + if ($actn != '=') + { + if ($actn == '%') + small_amount_row(_("Part").":", 'amount', price_format(0), null, "%", user_exrate_dec()); + else + amount_row(_("Amount").":", 'amount', price_format(0)); + } + text_row_ex(_("Line memo").':', 'memo', 50, 256, ''); + } + if ($dim >= 1) + dimensions_list_row(_("Dimension").":", 'dimension_id', null, true, " ", false, 1); + if ($dim > 1) + dimensions_list_row(_("Dimension")." 2:", 'dimension2_id', null, true, " ", false, 2); + + end_table(1); + if ($dim < 2) + hidden('dimension2_id', 0); + if ($dim < 1) + hidden('dimension_id', 0); + div_end(); + + hidden('selected_id', $selected_id); + hidden('selected_id2', $selected_id2); + + submit_add_or_update_center2($selected_id2 == -1, '', true); + +} +end_form(); //------------------------------------------------------------------------------------ end_page(); -?>