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 ***********************************************************************/
12 $page_security = 'SA_GLACCOUNTCLASS';
13 $path_to_root = "../..";
14 include($path_to_root . "/includes/session.inc");
16 page(_($help_context = "GL Account Classes"));
18 include($path_to_root . "/gl/includes/gl_db.inc");
20 include($path_to_root . "/includes/ui.inc");
22 simple_page_mode(false);
23 //-----------------------------------------------------------------------------------
25 function can_process()
29 if (strlen(trim($_POST['id'])) == 0)
31 display_error( _("The account class ID cannot be empty."));
35 if (strlen(trim($_POST['name'])) == 0)
37 display_error( _("The account class name cannot be empty."));
41 if (isset($SysPrefs->use_oldstyle_convert) && $SysPrefs->use_oldstyle_convert == 1)
42 $_POST['Balance'] = check_value('Balance');
46 //-----------------------------------------------------------------------------------
48 if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
54 if ($selected_id != "")
56 if(update_account_class($selected_id, $_POST['name'], $_POST['ctype']))
57 display_notification(_('Selected account class settings has been updated'));
61 if(add_account_class($_POST['id'], $_POST['name'], $_POST['ctype'])) {
62 display_notification(_('New account class has been added'));
69 //-----------------------------------------------------------------------------------
71 function can_delete($selected_id)
73 if ($selected_id == "")
75 if (key_in_foreign_table($selected_id, 'chart_types', 'class_id'))
77 display_error(_("Cannot delete this account class because GL account types have been created referring to it."));
85 //-----------------------------------------------------------------------------------
87 if ($Mode == 'Delete')
90 if (can_delete($selected_id))
92 delete_account_class($selected_id);
93 display_notification(_('Selected account class has been deleted'));
98 //-----------------------------------------------------------------------------------
102 $_POST['id'] = $_POST['name'] = $_POST['ctype'] = '';
104 //-----------------------------------------------------------------------------------
106 $result = get_account_classes(check_value('show_inactive'));
109 start_table(TABLESTYLE);
110 $th = array(_("Class ID"), _("Class Name"), _("Class Type"), "", "");
111 if (isset($SysPrefs->use_oldstyle_convert) && $SysPrefs->use_oldstyle_convert == 1)
112 $th[2] = _("Balance Sheet");
113 inactive_control_column($th);
117 while ($myrow = db_fetch($result))
119 alt_table_row_color($k);
121 label_cell($myrow["cid"]);
122 label_cell('<a href="./gl_account_types.php?cid='.$myrow["cid"].'">'.$myrow['class_name'].'</a>');
123 if (isset($SysPrefs->use_oldstyle_convert) && $SysPrefs->use_oldstyle_convert == 1)
125 $myrow['ctype'] = ($myrow["ctype"] >= CL_ASSETS && $myrow["ctype"] < CL_INCOME ? 1 : 0);
126 label_cell(($myrow['ctype'] == 1 ? _("Yes") : _("No")));
129 label_cell($class_types[$myrow["ctype"]]);
130 inactive_control_cell($myrow["cid"], $myrow["inactive"], 'chart_class', 'cid');
131 edit_button_cell("Edit".$myrow["cid"], _("Edit"));
132 delete_button_cell("Delete".$myrow["cid"], _("Delete"));
135 inactive_control_row($th);
137 //-----------------------------------------------------------------------------------
139 start_table(TABLESTYLE2);
141 if ($selected_id != "")
143 if ($Mode == 'Edit') {
144 //editing an existing status code
145 $myrow = get_account_class($selected_id);
147 $_POST['id'] = $myrow["cid"];
148 $_POST['name'] = $myrow["class_name"];
149 if (isset($SysPrefs->use_oldstyle_convert) && $SysPrefs->use_oldstyle_convert == 1)
150 $_POST['ctype'] = ($myrow["ctype"] >= CL_ASSETS && $myrow["ctype"] < CL_INCOME ? 1 : 0);
152 $_POST['ctype'] = $myrow["ctype"];
153 hidden('selected_id', $selected_id);
156 label_row(_("Class ID:"), $_POST['id']);
162 text_row_ex(_("Class ID:"), 'id', 3);
165 text_row_ex(_("Class Name:"), 'name', 50, 60);
167 if (isset($SysPrefs->use_oldstyle_convert) && $SysPrefs->use_oldstyle_convert == 1)
168 check_row(_("Balance Sheet"), 'ctype', null);
170 class_types_list_row(_("Class Type:"), 'ctype', null);
174 submit_add_or_update_center($selected_id == "", '', 'both');
178 //------------------------------------------------------------------------------------