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)
14 begin_transaction(__FUNCTION__, func_get_args());
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);
21 return $result ? db_insert_id($sql) : false;
24 function update_account_type($id, $name, $class_id, $parent, $old_id)
26 begin_transaction(__FUNCTION__, func_get_args());
31 FROM ".TB_PREF."chart_types
32 WHERE parent = ".db_escape($old_id);
34 $result = db_query($sql, "could not get account type");
36 while ($myrow = db_fetch($result))
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");
42 $sql = "SELECT account_code
43 FROM ".TB_PREF."chart_master
44 WHERE account_type = ".db_escape($old_id);
46 $result = db_query($sql, "could not get account");
48 while ($myrow = db_fetch($result))
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");
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);
61 $ret = db_query($sql, "could not update account type");
67 function get_account_types($all=false, $class_id=false, $parent=false)
69 $sql = "SELECT * FROM ".TB_PREF."chart_types";
74 $where[] = "!inactive";
76 if ($class_id != false)
77 $where[] = "class_id=".db_escape($class_id);
80 $where[] ="(parent = '' OR parent = '-1')";
81 elseif ($parent !== false)
82 $where[] = "parent=".db_escape($parent);
85 $sql .= ' WHERE '.implode(' AND ', $where);
86 $sql .= " ORDER BY class_id, id, parent";
88 return db_query($sql, "could not get account types");
91 function get_account_type($id)
93 $sql = "SELECT * FROM ".TB_PREF."chart_types WHERE id = ".db_escape($id);
95 $result = db_query($sql, "could not get account type");
97 return db_fetch($result);
100 function get_account_type_name($id)
102 $sql = "SELECT name FROM ".TB_PREF."chart_types WHERE id = ".db_escape($id);
104 $result = db_query($sql, "could not get account type");
106 $row = db_fetch_row($result);
110 function delete_account_type($id)
112 begin_transaction(__FUNCTION__, func_get_args());
114 $sql = "DELETE FROM ".TB_PREF."chart_types WHERE id = ".db_escape($id);
115 db_query($sql, "could not delete account type");
117 commit_transaction();
120 function add_account_class($id, $name, $ctype)
122 begin_transaction(__FUNCTION__, func_get_args());
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);
128 commit_transaction();
132 function update_account_class($id, $name, $ctype)
134 begin_transaction(__FUNCTION__, func_get_args());
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);
140 commit_transaction();
144 function get_account_classes($all=false, $balance=-1)
146 $sql = "SELECT * FROM ".TB_PREF."chart_class";
149 $sql .= " WHERE !inactive";
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";
156 return db_query($sql, "could not get account classes");
159 function get_account_class($id)
161 $sql = "SELECT * FROM ".TB_PREF."chart_class WHERE cid = ".db_escape($id);
163 $result = db_query($sql, "could not get account type");
165 return db_fetch($result);
168 function get_account_class_name($id)
170 $sql = "SELECT class_name FROM ".TB_PREF."chart_class WHERE cid =".db_escape($id);
172 $result = db_query($sql, "could not get account type");
174 $row = db_fetch_row($result);
178 function delete_account_class($id)
180 begin_transaction(__FUNCTION__, func_get_args());
182 $sql = "DELETE FROM ".TB_PREF."chart_class WHERE cid = ".db_escape($id);
184 db_query($sql, "could not delete account type");
185 commit_transaction();