Feature 5388: Print Invoices (documents) list gets too long. Fixed by default 180...
[fa-stable.git] / taxes / item_tax_types.php
index ac4d2f0a51d0bd743d01ad71ad5f0c7a4f12ee83..5f2d0e06a6d6304a4211c4d45b1ecb3aae747753 100644 (file)
@@ -9,12 +9,12 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
+$page_security = 'SA_ITEMTAXTYPE';
 $path_to_root = "..";
-$page_security = 3;
 
 include($path_to_root . "/includes/session.inc");
 
-page(_("Item Tax Types")); 
+page(_($help_context = "Item Tax Types")); 
 
 include_once($path_to_root . "/taxes/db/item_tax_types_db.inc");
 include_once($path_to_root . "/taxes/db/tax_types_db.inc");
@@ -72,14 +72,16 @@ if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
 
 function can_delete($selected_id)
 {
-       $sql= "SELECT COUNT(*) FROM ".TB_PREF."stock_master WHERE tax_type_id=$selected_id";
-       $result = db_query($sql, "could not query stock master");
-       $myrow = db_fetch_row($result);
-       if ($myrow[0] > 0) 
+       if (key_in_foreign_table($selected_id, 'stock_master', 'tax_type_id'))
        {
                display_error(_("Cannot delete this item tax type because items have been created referring to it."));
                return false;
        }
+       if (key_in_foreign_table($selected_id, 'stock_category', 'dflt_tax_type'))
+       {
+               display_error(_("Cannot delete this item tax type because item categories have been created referring to it."));
+               return false;
+       }
        
        return true;
 }
@@ -101,16 +103,19 @@ if ($Mode == 'Delete')
 if ($Mode == 'RESET')
 {
        $selected_id = -1;
+       $sav = get_post('show_inactive');
        unset($_POST);
+       $_POST['show_inactive'] = $sav;
 }
 //-----------------------------------------------------------------------------------
 
 
-$result2 = $result = get_all_item_tax_types();
+$result2 = $result = get_all_item_tax_types(check_value('show_inactive'));
+
 start_form();
-start_table("$table_style width=30%");
+start_table(TABLESTYLE, "width='30%'");
 $th = array(_("Name"), _("Tax exempt"),'','');
-
+inactive_control_column($th);
 table_header($th);
 
 $k = 0;
@@ -130,26 +135,23 @@ while ($myrow = db_fetch($result2))
        
        label_cell($myrow["name"]);
        label_cell($disallow_text);
+       inactive_control_cell($myrow["id"], $myrow["inactive"], 'item_tax_types', 'id');
        edit_button_cell("Edit".$myrow["id"], _("Edit"));
        delete_button_cell("Delete".$myrow["id"], _("Delete"));
        end_row();
 }
 
-end_table();
-end_form();
-echo '<br>';
-
+inactive_control_row($th);
+end_table(1);
 //-----------------------------------------------------------------------------------
 
-start_form();
-
-start_table($table_style2);
+start_table(TABLESTYLE2);
 
 if ($selected_id != -1) 
 {
        if ($Mode == 'Edit') {
                $myrow = get_item_tax_type($selected_id);
-    
+               unset($_POST); // clear exemption checkboxes
                $_POST['name']  = $myrow["name"];
                $_POST['exempt']  = $myrow["exempt"];
        
@@ -179,7 +181,7 @@ if (!isset($_POST['exempt']) || $_POST['exempt'] == 0)
 
     display_note(_("Select which taxes this item tax type is exempt from."), 0, 1);
     
-    start_table($table_style2);
+    start_table(TABLESTYLE2);
     $th = array(_("Tax Name"), _("Rate"), _("Is exempt"));
     table_header($th);
        
@@ -207,4 +209,3 @@ end_form();
 
 end_page();
 
-?>