[0000091] Tax for 2 decimal places doesn't compute properly
[fa-stable.git] / taxes / tax_types.php
1 <?php
2 $page_security = 3;
3 $path_to_root="..";
4
5 include($path_to_root . "/includes/session.inc");
6 page(_("Tax Types"));
7
8 include_once($path_to_root . "/includes/ui.inc");
9 include_once($path_to_root . "/taxes/db/tax_types_db.inc");
10
11 simple_page_mode(true);
12 //-----------------------------------------------------------------------------------
13
14 function can_process()
15 {
16         if (strlen($_POST['name']) == 0)
17         {
18                 display_error(_("The tax type name cannot be empty."));
19                 set_focus('name');
20                 return false;
21         }
22         elseif (!check_num('rate', 0))
23         {
24                 display_error( _("The default tax rate must be numeric and not less than zero."));
25                 set_focus('rate');
26                 return false;
27         }
28
29         return true;
30 }
31
32 //-----------------------------------------------------------------------------------
33
34 if ($Mode=='ADD_ITEM' && can_process())
35 {
36
37         add_tax_type($_POST['name'], $_POST['sales_gl_code'],
38                 $_POST['purchasing_gl_code'], input_num('rate'));
39         display_notification(_('New tax type has been added'));
40         $Mode = 'RESET';
41 }
42
43 //-----------------------------------------------------------------------------------
44
45 if ($Mode=='UPDATE_ITEM' && can_process())
46 {
47
48         update_tax_type($selected_id, $_POST['name'],
49         $_POST['sales_gl_code'], $_POST['purchasing_gl_code'], input_num('rate'));
50         display_notification(_('Selected tax type has been updated'));
51         $Mode = 'RESET';
52 }
53
54 //-----------------------------------------------------------------------------------
55
56 function can_delete($selected_id)
57 {
58         $sql= "SELECT COUNT(*) FROM ".TB_PREF."tax_group_items  WHERE tax_type_id=$selected_id";
59         $result = db_query($sql, "could not query tax groups");
60         $myrow = db_fetch_row($result);
61         if ($myrow[0] > 0)
62         {
63                 display_error(_("Cannot delete this tax type because tax groups been created referring to it."));
64
65                 return false;
66         }
67
68         return true;
69 }
70
71
72 //-----------------------------------------------------------------------------------
73
74 if ($Mode == 'Delete')
75 {
76
77         if (can_delete($selected_id))
78         {
79                 delete_tax_type($selected_id);
80                 display_notification(_('Selected tax type has been deleted'));
81         }
82         $Mode = 'RESET';
83 }
84
85 if ($Mode == 'RESET')
86 {
87         $selected_id = -1;
88         unset($_POST);
89 }
90 //-----------------------------------------------------------------------------------
91
92 $result = get_all_tax_types();
93
94 start_form();
95 start_table($table_style);
96
97 $th = array(_("Description"), _("Default Rate (%)"),
98         _("Sales GL Account"), _("Purchasing GL Account"), "", "");
99 table_header($th);
100
101 $k = 0;
102 while ($myrow = db_fetch($result))
103 {
104
105         alt_table_row_color($k);
106
107         label_cell($myrow["name"]);
108         label_cell(percent_format($myrow["rate"]), "align=right");
109         label_cell($myrow["sales_gl_code"] . "&nbsp;" . $myrow["SalesAccountName"]);
110         label_cell($myrow["purchasing_gl_code"] . "&nbsp;" . $myrow["PurchasingAccountName"]);
111
112         edit_button_cell("Edit".$myrow["id"], _("Edit"));
113         edit_button_cell("Delete".$myrow["id"], _("Delete"));
114
115         end_row();
116 }
117
118 end_table();
119
120 end_form();
121 echo '<br>';
122
123 //-----------------------------------------------------------------------------------
124
125 start_form();
126
127 start_table($table_style2);
128
129 if ($selected_id != -1) 
130 {
131         if ($Mode == 'Edit') {
132                 //editing an existing status code
133
134                 $myrow = get_tax_type($selected_id);
135
136                 $_POST['name']  = $myrow["name"];
137                 $_POST['rate']  = percent_format($myrow["rate"]);
138                 $_POST['sales_gl_code']  = $myrow["sales_gl_code"];
139                 $_POST['purchasing_gl_code']  = $myrow["purchasing_gl_code"];
140         }
141         hidden('selected_id', $selected_id);
142 }
143 text_row_ex(_("Description:"), 'name', 50);
144 small_amount_row(_("Default Rate:"), 'rate', '', "", "%", user_percent_dec());
145
146 gl_all_accounts_list_row(_("Sales GL Account:"), 'sales_gl_code', null);
147 gl_all_accounts_list_row(_("Purchasing GL Account:"), 'purchasing_gl_code', null);
148
149 end_table(1);
150
151 submit_add_or_update_center($selected_id == -1, '', true);
152
153 end_form();
154
155 end_page();
156
157 ?>