Old ineffective sql_trail superseded by new improved db_trail logging only calls...
[fa-stable.git] / gl / includes / db / gl_db_account_types.inc
1 <?php
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 function add_account_type($id, $name, $class_id, $parent)
13 {
14         begin_transaction(__FUNCTION__, func_get_args());
15
16         $sql = "INSERT INTO ".TB_PREF."chart_types (id, name, class_id, parent)
17                 VALUES (".db_escape($id).", ".db_escape($name).", ".db_escape($class_id).", ".db_escape($parent).")";
18         $result = db_query($sql);
19
20         commit_transaction();
21         return $result ? db_insert_id($sql) : false;
22 }
23
24 function update_account_type($id, $name, $class_id, $parent, $old_id)
25 {
26         begin_transaction(__FUNCTION__, func_get_args());
27
28         if ($old_id !== $id)
29         {
30                 $sql = "SELECT id 
31                         FROM ".TB_PREF."chart_types 
32                         WHERE parent = ".db_escape($old_id);
33
34                 $result = db_query($sql, "could not get account type");
35
36                 while ($myrow = db_fetch($result))
37                 {
38                 $sql = "UPDATE ".TB_PREF."chart_types SET parent=".db_escape($id)
39                                 ." WHERE id = '".$myrow['id']."'";
40                         db_query($sql, "could not update account type");
41                 }
42                 $sql = "SELECT account_code 
43                         FROM ".TB_PREF."chart_master 
44                         WHERE account_type = ".db_escape($old_id);
45
46                 $result = db_query($sql, "could not get account");
47
48                 while ($myrow = db_fetch($result))
49                 {
50                 $sql = "UPDATE ".TB_PREF."chart_master 
51                         SET account_type=".db_escape($id)
52                                 ." WHERE account_code = '".$myrow['account_code']."'";
53                         db_query($sql, "could not update account");
54                 }
55         }
56     $sql = "UPDATE ".TB_PREF."chart_types 
57                 SET id=".db_escape($id) .", name=".db_escape($name).",
58                         class_id=".db_escape($class_id).", parent=".db_escape($parent)
59                 ." WHERE id = ".db_escape($old_id);
60
61         $ret = db_query($sql, "could not update account type");
62
63         commit_transaction();
64         return $ret;
65 }
66
67 function get_account_types($all=false, $class_id=false, $parent=false)
68 {
69         $sql = "SELECT * FROM ".TB_PREF."chart_types";
70
71         $where = array();
72         
73         if (!$all)
74                 $where[] = "!inactive";
75
76         if ($class_id != false)  
77                 $where[] = "class_id=".db_escape($class_id);
78
79         if ($parent == -1) 
80                 $where[] ="(parent = '' OR parent = '-1')";
81         elseif ($parent !== false) 
82                 $where[] = "parent=".db_escape($parent);
83
84         if (count($where))
85                 $sql .= ' WHERE '.implode(' AND ', $where);
86         $sql .= " ORDER BY class_id, id, parent";
87
88         return db_query($sql, "could not get account types");
89 }
90
91 function get_account_type($id)
92 {
93         $sql = "SELECT * FROM ".TB_PREF."chart_types WHERE id = ".db_escape($id);
94
95         $result = db_query($sql, "could not get account type");
96
97         return db_fetch($result);
98 }
99
100 function get_account_type_name($id)
101 {
102         $sql = "SELECT name FROM ".TB_PREF."chart_types WHERE id = ".db_escape($id);
103
104         $result = db_query($sql, "could not get account type");
105
106         $row = db_fetch_row($result);
107         return $row[0];
108 }
109
110 function delete_account_type($id)
111 {
112         begin_transaction(__FUNCTION__, func_get_args());
113
114         $sql = "DELETE FROM ".TB_PREF."chart_types WHERE id = ".db_escape($id);
115         db_query($sql, "could not delete account type");
116
117         commit_transaction();
118 }
119
120 function add_account_class($id, $name, $ctype)
121 {
122         begin_transaction(__FUNCTION__, func_get_args());
123
124         $sql = "INSERT INTO ".TB_PREF."chart_class (cid, class_name, ctype)
125                 VALUES (".db_escape($id).", ".db_escape($name).", ".db_escape($ctype).")";
126         $result = db_query($sql);
127
128         commit_transaction();
129         return $result;
130 }
131
132 function update_account_class($id, $name, $ctype)
133 {
134         begin_transaction(__FUNCTION__, func_get_args());
135
136     $sql = "UPDATE ".TB_PREF."chart_class SET class_name=".db_escape($name).",
137                 ctype=".db_escape($ctype)." WHERE cid = ".db_escape($id);
138         $result = db_query($sql);
139
140         commit_transaction();
141         return $result;
142 }
143
144 function get_account_classes($all=false, $balance=-1)
145 {
146         $sql = "SELECT * FROM ".TB_PREF."chart_class";
147
148         if (!$all) 
149                 $sql .= " WHERE !inactive";
150         if ($balance == 0) 
151                 $sql .= " AND ctype>".CL_EQUITY." OR ctype=0";
152         elseif ($balance == 1) 
153                 $sql .= " AND ctype>0 AND ctype<".CL_INCOME; 
154         $sql .= " ORDER BY ctype, cid";
155
156         return db_query($sql, "could not get account classes");
157 }
158
159 function get_account_class($id)
160 {
161         $sql = "SELECT * FROM ".TB_PREF."chart_class WHERE cid = ".db_escape($id);
162
163         $result = db_query($sql, "could not get account type");
164
165         return db_fetch($result);
166 }
167
168 function get_account_class_name($id)
169 {
170         $sql = "SELECT class_name FROM ".TB_PREF."chart_class WHERE cid =".db_escape($id);
171
172         $result = db_query($sql, "could not get account type");
173
174         $row = db_fetch_row($result);
175         return $row[0];
176 }
177
178 function delete_account_class($id)
179 {
180         begin_transaction(__FUNCTION__, func_get_args());
181
182         $sql = "DELETE FROM ".TB_PREF."chart_class WHERE cid = ".db_escape($id);
183
184         db_query($sql, "could not delete account type");
185         commit_transaction();
186
187 }
188