. ***********************************************************************/ $page_security = 'SA_QUICKENTRY'; $path_to_root = "../.."; include($path_to_root . "/includes/session.inc"); 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() { if (strlen($_POST['description']) == 0) { display_error( _("The Quick Entry description cannot be empty.")); 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; } //----------------------------------------------------------------------------------- if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { if (can_process()) { 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['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'], get_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'], get_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'); } } 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['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(TABLESTYLE); $th = array(_("Description"), _("Type"), _("Usage"), "", ""); table_header($th); $k = 0; while ($myrow = db_fetch($result)) { alt_table_row_color($k); $type_text = $quick_entry_types[$myrow["type"]]; label_cell($myrow['description']); label_cell($type_text); label_cell($myrow['usage']); edit_button_cell("Edit".$myrow["id"], _("Edit")); delete_button_cell("Delete".$myrow["id"], _("Delete")); end_row(); } end_table(1); //----------------------------------------------------------------------------------- div_start('qe'); start_table(TABLESTYLE2); if ($selected_id != -1) { if ($Mode == 'Edit') // changed by Joe 2010-11-09 { $myrow = get_quick_entry($selected_id); $_POST['id'] = $myrow["id"]; $_POST['description'] = $myrow["description"]; $_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(_("Usage").':', 'usage', 80, 120); quick_entry_types_list_row(_("Entry Type").':', 'type', null, true); 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(); 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();