Items: fixed item tax type selector to exclude inactive item tax types.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Sun, 29 Oct 2017 11:01:31 +0000 (12:01 +0100)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Sun, 29 Oct 2017 11:02:18 +0000 (12:02 +0100)
includes/ui/ui_lists.inc
inventory/manage/items.php
taxes/db/item_tax_types_db.inc

index 9ea529965d026c3a51d782d0426cd94c2cccd32b..351fc5da075dc0c5c3c8bd543d57b888aceaa9e6 100644 (file)
@@ -1232,25 +1232,28 @@ function tax_groups_list_row($label, $name, $selected_id=null, $none_option=fals
 
 //------------------------------------------------------------------------------------
 
-function item_tax_types_list($name, $selected_id=null)
+function item_tax_types_list($name, $selected_id=null, $show_inactive = false)
 {
        $sql ="SELECT id, name FROM ".TB_PREF."item_tax_types";
+       if (!$show_inactive)
+               $sql .= " WHERE !inactive";
+
        return combo_input($name, $selected_id, $sql, 'id', 'name', array('order' => 'id') );
 }
 
-function item_tax_types_list_cells($label, $name, $selected_id=null)
+function item_tax_types_list_cells($label, $name, $selected_id=null, $show_inactive = false)
 {
        if ($label != null)
                echo "<td>$label</td>\n";
        echo "<td>";
-       echo item_tax_types_list($name, $selected_id);
+       echo item_tax_types_list($name, $selected_id, $show_inactive);
        echo "</td>\n";
 }
 
-function item_tax_types_list_row($label, $name, $selected_id=null)
+function item_tax_types_list_row($label, $name, $selected_id=null, $show_inactive = false)
 {
        echo "<tr><td class='label'>$label</td>";
-       item_tax_types_list_cells(null, $name, $selected_id);
+       item_tax_types_list_cells(null, $name, $selected_id, $show_inactive);
        echo "</tr>\n";
 }
 
index 77362bcfd0fc73f6b6e4fcab71bcba903c21cacc..8ed29d2cb0bdaf7f484d86a3c7d8618f3c4fde71 100644 (file)
@@ -391,7 +391,8 @@ function item_settings(&$stock_id, $new_item)
        $fresh_item = !isset($_POST['NewStockID']) || $new_item 
                || check_usage($_POST['stock_id'],false);
 
-       item_tax_types_list_row(_("Item Tax Type:"), 'tax_type_id', null);
+       // show inactive item tax type in selector only if already set.
+  item_tax_types_list_row(_("Item Tax Type:"), 'tax_type_id', null, !$new_item && item_type_inactive(get_post('tax_type_id')));
 
        if (!get_post('fixed_asset'))
                stock_item_types_list_row(_("Item Type:"), 'mb_flag', null, $fresh_item);
index 809f9f9ebe43e233f753c2c63be3ec7a18d64ef9..446a5dc7cb99ffe5839ccebe0f0929070206c1da 100644 (file)
@@ -110,3 +110,8 @@ function get_item_tax_type_exemptions($id)
        return db_query($sql, "could not get item tax type exemptions");
 }
 
+function item_type_inactive($id)
+{
+       $type = get_item_tax_type($id);
+       return @$type['inactive'];
+}