X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=taxes%2Ftax_groups.php;h=cac3520b090dc3dff03c2f87afcb0c019597faa7;hb=a756adaebf1b5f9bd6265e6f2388a7f2f180f585;hp=e3393912e3bc81750b629704d11047d2a97f8d56;hpb=da8311619dd73feae101d246a1957b972e00cbd2;p=fa-stable.git diff --git a/taxes/tax_groups.php b/taxes/tax_groups.php index e3393912..cac3520b 100644 --- a/taxes/tax_groups.php +++ b/taxes/tax_groups.php @@ -1,11 +1,20 @@ . +***********************************************************************/ +$page_security = 'SA_TAXGROUPS'; +$path_to_root = ".."; include($path_to_root . "/includes/session.inc"); -page(_("Tax Groups")); +page(_($help_context = "Tax Groups")); include_once($path_to_root . "/includes/data_checks.inc"); include_once($path_to_root . "/includes/ui.inc"); @@ -13,22 +22,13 @@ include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/taxes/db/tax_groups_db.inc"); include_once($path_to_root . "/taxes/db/tax_types_db.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} -else - $selected_id = -1; +simple_page_mode(true); check_db_has_tax_types(_("There are no tax types defined. Define tax types before defining tax groups.")); //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -38,22 +38,8 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error(_("The tax group name cannot be empty.")); + set_focus('name'); } - else - { - // make sure any entered rates are valid - for ($i = 0; $i < 5; $i++) - { - if (isset($_POST['tax_type_id' . $i]) && - $_POST['tax_type_id' . $i] != reserved_words::get_all_numeric() && - (!is_numeric($_POST['rate' . $i]) || $_POST['rate' . $i] < 0)) - { - display_error( _("An entered tax rate is invalid or less than zero.")); - $input_error = 1; - break; - } - } - } if ($input_error != 1) { @@ -61,36 +47,26 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) // create an array of the taxes and array of rates $taxes = array(); $rates = array(); - $included = array(); - - for ($i = 0; $i < 5; $i++) - { - if (isset($_POST['tax_type_id' . $i]) && - $_POST['tax_type_id' . $i] != reserved_words::get_any_numeric()) - { - $taxes[] = $_POST['tax_type_id' . $i]; - $rates[] = $_POST['rate' . $i]; - if (isset($_POST['included' . $i])) - $included[] = 1; - else - $included[] = 0; - } - } + while (($id = find_submit('tax_type_id'))!=-1) + { + $taxes[] = $id; + $rates[] = get_tax_type_default_rate($id); + unset($_POST['tax_type_id' . $id]); + } if ($selected_id != -1) { - - update_tax_group($selected_id, $_POST['name'], $_POST['tax_shipping'], $taxes, - $rates, $included); - + update_tax_group($selected_id, $_POST['name'], $_POST['tax_shipping'], $taxes, + $rates); + display_notification(_('Selected tax group has been updated')); } else { - - add_tax_group($_POST['name'], $_POST['tax_shipping'], $taxes, $rates, $included); + add_tax_group($_POST['name'], $_POST['tax_shipping'], $taxes, $rates); + display_notification(_('New tax group has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -100,21 +76,15 @@ function can_delete($selected_id) { if ($selected_id == -1) return false; - $sql = "SELECT COUNT(*) FROM ".TB_PREF."cust_branch WHERE tax_group_id=$selected_id"; - $result = db_query($sql, "could not query customers"); - $myrow = db_fetch_row($result); - if ($myrow[0] > 0) + if (key_in_foreign_table($selected_id, 'cust_branch', 'tax_group_id')) { - display_note(_("Cannot delete this tax group because customer branches been created referring to it.")); + display_error(_("Cannot delete this tax group because customer branches been created referring to it.")); return false; } - $sql = "SELECT COUNT(*) FROM ".TB_PREF."suppliers WHERE tax_group_id=$selected_id"; - $result = db_query($sql, "could not query suppliers"); - $myrow = db_fetch_row($result); - if ($myrow[0] > 0) + if (key_in_foreign_table($selected_id, 'suppliers', 'tax_group_id')) { - display_note(_("Cannot delete this tax group because suppliers been created referring to it.")); + display_error(_("Cannot delete this tax group because suppliers been created referring to it.")); return false; } @@ -125,22 +95,35 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_tax_group($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected tax group has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + $sav = get_post('show_inactive'); + unset($_POST); + if($sav) + $_POST['show_inactive'] = $sav; +} //----------------------------------------------------------------------------------- -$result = get_all_tax_groups(); +$result = get_all_tax_groups(check_value('show_inactive')); + +start_form(); + +start_table(TABLESTYLE); +$th = array(_("Description"), _("Shipping Tax"), "", ""); +inactive_control_column($th); -start_table($table_style); -$th = array(_("Description"), _("Tax Shipping"), "", ""); table_header($th); $k = 0; @@ -155,86 +138,56 @@ while ($myrow = db_fetch($result)) else label_cell(_("No")); - /*for ($i=0; $i< 5; $i++) - if ($myrow["type" . $i] != reserved_words::get_all_numeric()) - echo "" . $myrow["type" . $i] . "";*/ - - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + inactive_control_cell($myrow["id"], $myrow["inactive"], 'tax_groups', 'id'); + edit_button_cell("Edit".$myrow["id"], _("Edit")); + delete_button_cell("Delete".$myrow["id"], _("Delete")); end_row();; } -end_table(); +inactive_control_row($th); +end_table(1); //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Tax Group")); - -start_form(); - -start_table($table_style2); +start_table(TABLESTYLE2); if ($selected_id != -1) { //editing an existing status code - if (!isset($_POST['name'])) - { + if ($Mode == 'Edit') { $group = get_tax_group($selected_id); $_POST['name'] = $group["name"]; $_POST['tax_shipping'] = $group["tax_shipping"]; - $items = get_tax_group_items($selected_id); - - $i = 0; - while ($tax_item = db_fetch($items)) - { - $_POST['tax_type_id' . $i] = $tax_item["tax_type_id"]; - $_POST['rate' . $i] = $tax_item["rate"]; - $_POST['included' . $i] = $tax_item["included_in_price"]; - $i ++; - } } - hidden('selected_id', $selected_id); } text_row_ex(_("Description:"), 'name', 40); -yesno_list_row(_("Tax Shipping:"), 'tax_shipping', null, "", "", true); +yesno_list_row(_("Tax applied to Shipping:"), 'tax_shipping', null, "", "", true); end_table(); -display_note(_("Select the taxes that are included in this group."), 1); +display_note(_("Select the taxes that are included in this group."), 1, 1); -start_table($table_style2); -$th = array(_("Tax"), _("Default Rate (%)"), _("Rate (%)"), _("Include in Price")); -table_header($th); -for ($i = 0; $i < 5; $i++) -{ - start_row(); - if (!isset($_POST['tax_type_id' . $i])) - $_POST['tax_type_id' . $i] = 0; - if (!isset($_POST['included' . $i])) - $_POST['included' . $i] = 0; - tax_types_list_cells(null, 'tax_type_id' . $i, $_POST['tax_type_id' . $i], true, _("None"), true); - - if ($_POST['tax_type_id' . $i] != 0 && $_POST['tax_type_id' . $i] != reserved_words::get_all_numeric()) - { +// null means transport tax group, but for new we do not use real rates +$items = get_tax_group_rates($selected_id!=-1 ? $selected_id : null); - $default_rate = get_tax_type_default_rate($_POST['tax_type_id' . $i]); - label_cell(number_format2($default_rate, user_percent_dec()), "nowrap align=right"); +$th = array(_("Tax"), ""); - if (!isset($_POST['rate' . $i]) || $_POST['rate' . $i] == "") - $_POST['rate' . $i] = $default_rate; - text_cells(null, 'rate' . $i, $_POST['rate' . $i], 10, 10); - check_cells(null, 'included' . $i, $_POST['included' . $i]); - } - end_row(); +start_table(TABLESTYLE2); +table_header($th); + +while($item = db_fetch_assoc($items)) +{ + check_row($item['tax_type_name'], 'tax_type_id' . $item['tax_type_id'], + $selected_id!=-1 && isset($item['rate']), "align='center'"); } end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', 'both'); end_form();