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