2 /**********************************************************************
3 Copyright (C) FrontAccounting, LLC.
4 Released under the terms of the GNU General Public License, GPL,
5 as published by the Free Software Foundation, either version 3
6 of the License, or (at your option) any later version.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
13 $path_to_root="../..";
14 include($path_to_root . "/includes/session.inc");
16 page(_("Item Categories"));
18 include_once($path_to_root . "/includes/ui.inc");
20 include_once($path_to_root . "/inventory/includes/inventory_db.inc");
22 simple_page_mode(true);
23 //----------------------------------------------------------------------------------
25 if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
28 //initialise no input errors assumed initially before we test
31 if (strlen($_POST['description']) == 0)
34 display_error(_("The item category description cannot be empty."));
35 set_focus('description');
40 if ($selected_id != -1)
42 update_item_category($selected_id, $_POST['description'],
43 $_POST['tax_type_id'], $_POST['sales_account'],
44 $_POST['cogs_account'], $_POST['inventory_account'],
45 $_POST['adjustment_account'], $_POST['assembly_account'],
46 $_POST['units'], $_POST['mb_flag'], $_POST['dim1'], $_POST['dim2']);
47 display_notification(_('Selected item category has been updated'));
51 add_item_category($_POST['description'],
52 $_POST['tax_type_id'], $_POST['sales_account'],
53 $_POST['cogs_account'], $_POST['inventory_account'],
54 $_POST['adjustment_account'], $_POST['assembly_account'],
55 $_POST['units'], $_POST['mb_flag'], $_POST['dim1'],
57 display_notification(_('New item category has been added'));
63 //----------------------------------------------------------------------------------
65 if ($Mode == 'Delete')
68 // PREVENT DELETES IF DEPENDENT RECORDS IN 'stock_master'
69 $sql= "SELECT COUNT(*) FROM ".TB_PREF."stock_master WHERE category_id='$selected_id'";
70 $result = db_query($sql, "could not query stock master");
71 $myrow = db_fetch_row($result);
74 display_error(_("Cannot delete this item category because items have been created using this item category."));
78 delete_item_category($selected_id);
79 display_notification(_('Selected item category has been deleted'));
87 $sav = get_post('show_inactive');
89 $_POST['show_inactive'] = $sav;
91 if (list_updated('mb_flag')) {
92 $Ajax->activate('details');
94 //----------------------------------------------------------------------------------
96 $sql = "SELECT c.*, t.name as tax_name FROM ".TB_PREF."stock_category c, "
97 .TB_PREF."item_tax_types t WHERE c.dflt_tax_type=t.id";
98 if (!check_value('show_inactive')) $sql .= " AND !c.inactive";
100 $result = db_query($sql, "could not get stock categories");
103 start_table("$table_style width=80%");
104 $th = array(_("Name"), _("Tax type"), _("Units"), _("Type"), _("Sales Act"),
105 _("COGS Account"), _("Inventory Account"), _("Adjustment Account"),
106 _("Assembly Account"), "", "");
107 inactive_control_column($th);
110 $k = 0; //row colour counter
112 while ($myrow = db_fetch($result))
115 alt_table_row_color($k);
117 label_cell($myrow["description"]);
118 label_cell($myrow["tax_name"]);
119 label_cell($myrow["dflt_units"], "align=center");
120 label_cell($stock_types[$myrow["dflt_mb_flag"]]);
121 label_cell($myrow["dflt_sales_act"], "align=center");
122 label_cell($myrow["dflt_cogs_act"], "align=center");
123 label_cell($myrow["dflt_inventory_act"], "align=center");
124 label_cell($myrow["dflt_adjustment_act"], "align=center");
125 label_cell($myrow["dflt_assembly_act"], "align=center");
126 inactive_control_cell($myrow["category_id"], $myrow["inactive"], 'stock_category', 'category_id');
127 edit_button_cell("Edit".$myrow["category_id"], _("Edit"));
128 delete_button_cell("Delete".$myrow["category_id"], _("Delete"));
132 inactive_control_row($th);
135 //----------------------------------------------------------------------------------
137 div_start('details');
138 start_table($table_style2);
140 if ($selected_id != -1)
142 if ($Mode == 'Edit') {
143 //editing an existing item category
144 $myrow = get_item_category($selected_id);
146 $_POST['category_id'] = $myrow["category_id"];
147 $_POST['description'] = $myrow["description"];
148 $_POST['tax_type_id'] = $myrow["dflt_tax_type"];
149 $_POST['sales_account'] = $myrow["dflt_sales_act"];
150 $_POST['cogs_account'] = $myrow["dflt_cogs_act"];
151 $_POST['inventory_account'] = $myrow["dflt_inventory_act"];
152 $_POST['adjustment_account'] = $myrow["dflt_adjustment_act"];
153 $_POST['assembly_account'] = $myrow["dflt_assembly_act"];
154 $_POST['units'] = $myrow["dflt_units"];
155 $_POST['mb_flag'] = $myrow["dflt_mb_flag"];
156 $_POST['dim1'] = $myrow["dflt_dim1"];
157 $_POST['dim2'] = $myrow["dflt_dim2"];
159 hidden('selected_id', $selected_id);
160 hidden('category_id');
162 $_POST['long_description'] = '';
163 $_POST['description'] = '';
165 $company_record = get_company_prefs();
167 if (get_post('inventory_account') == "")
168 $_POST['inventory_account'] = $company_record["default_inventory_act"];
170 if (get_post('cogs_account') == "")
171 $_POST['cogs_account'] = $company_record["default_cogs_act"];
173 if (get_post('sales_account') == "")
174 $_POST['sales_account'] = $company_record["default_inv_sales_act"];
176 if (get_post('adjustment_account') == "")
177 $_POST['adjustment_account'] = $company_record["default_adj_act"];
179 if (get_post('assembly_account') == "")
180 $_POST['assembly_account'] = $company_record["default_assembly_act"];
184 text_row(_("Category Name:"), 'description', null, 30, 30);
186 table_section_title(_("Default values for new items"));
188 item_tax_types_list_row(_("Item Tax Type:"), 'tax_type_id', null);
190 stock_item_types_list_row(_("Item Type:"), 'mb_flag', null, true);
192 stock_units_list_row(_("Units of Measure:"), 'units', null);
194 gl_all_accounts_list_row(_("Sales Account:"), 'sales_account', $_POST['sales_account']);
196 gl_all_accounts_list_row(_("Inventory Account:"), 'inventory_account', $_POST['inventory_account']);
198 if (!is_service($_POST['mb_flag']))
200 gl_all_accounts_list_row(_("C.O.G.S. Account:"), 'cogs_account', $_POST['cogs_account']);
201 gl_all_accounts_list_row(_("Inventory Adjustments Account:"), 'adjustment_account', $_POST['adjustment_account']);
205 hidden('cogs_account', $_POST['cogs_account']);
206 hidden('adjustment_account', $_POST['adjustment_account']);
209 if (is_manufactured($_POST['mb_flag']))
210 gl_all_accounts_list_row(_("Item Assembly Costs Account:"), 'assembly_account', $_POST['assembly_account']);
212 hidden('assembly_account', $_POST['assembly_account']);
214 $dim = get_company_pref('use_dimension');
217 dimensions_list_row(_("Dimension")." 1", 'dim1', null, true, " ", false, 1);
219 dimensions_list_row(_("Dimension")." 2", 'dim2', null, true, " ", false, 2);
228 submit_add_or_update_center($selected_id == -1, '', 'both');