Update from usntable branch.
[fa-stable.git] / gl / includes / db / gl_db_bank_accounts.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 //---------------------------------------------------------------------------------------------
13 function clear_dflt_curr_account($curr_code) {
14           $sql = "UPDATE ".TB_PREF."bank_accounts SET dflt_curr_act=0 WHERE bank_curr_code="
15           .db_escape($curr_code);
16           db_query($sql, "could not update default currency account");
17 }
18
19 function add_bank_account($account_code, $account_type, $bank_account_name,
20         $bank_name, $bank_account_number, $bank_address, $bank_curr_code, 
21         $dflt_curr_act)
22 {
23         if($dflt_curr_act)      // only one default account for any currency
24           clear_dflt_curr_account($bank_curr_code);
25
26         $sql = "INSERT INTO ".TB_PREF."bank_accounts (account_code, account_type, 
27                 bank_account_name, bank_name, bank_account_number, bank_address, 
28                 bank_curr_code, dflt_curr_act)
29                 VALUES (".db_escape($account_code).", ".db_escape($account_type).", "
30                 .db_escape($bank_account_name).", ".db_escape($bank_name).", "
31                 .db_escape($bank_account_number).",".db_escape($bank_address).
32                 ", ".db_escape($bank_curr_code).", ".db_escape($dflt_curr_act).")";
33
34         db_query($sql, "could not add a bank account for $account_code");
35 }
36
37 //---------------------------------------------------------------------------------------------
38
39 function update_bank_account($id, $account_code, $account_type, $bank_account_name, 
40         $bank_name, $bank_account_number, $bank_address, $bank_curr_code, $dflt_curr_act)
41 {
42         if($dflt_curr_act)      // only one default account for any currency
43           clear_dflt_curr_account($bank_curr_code);
44
45         $sql = "UPDATE ".TB_PREF."bank_accounts SET account_type = ".db_escape($account_type).",
46                 account_code=".db_escape($account_code).",
47                 bank_account_name=".db_escape($bank_account_name).", bank_name=".db_escape($bank_name).",
48                 bank_account_number=".db_escape($bank_account_number).", bank_curr_code=".db_escape($bank_curr_code).",
49                 bank_address=".db_escape($bank_address).",
50                 dflt_curr_act=".db_escape($dflt_curr_act)
51                 ." WHERE id = ".db_escape($id);
52
53         db_query($sql, "could not update bank account for $account_code");
54 }
55
56 //---------------------------------------------------------------------------------------------
57
58 function delete_bank_account($id)
59 {
60         $sql = "DELETE FROM ".TB_PREF."bank_accounts WHERE id=".db_escape($id);
61
62         db_query($sql,"could not delete bank account for $id");
63 }
64
65
66 //---------------------------------------------------------------------------------------------
67
68 function get_bank_account($id)
69 {
70         $sql = "SELECT * FROM ".TB_PREF."bank_accounts WHERE id=".db_escape($id);
71
72         $result = db_query($sql, "could not retreive bank account for $id");
73
74         return db_fetch($result);
75 }
76
77 //---------------------------------------------------------------------------------------------
78 function get_bank_gl_account($id)
79 {
80         $sql = "SELECT account_code FROM ".TB_PREF."bank_accounts WHERE id=".db_escape($id);
81
82         $result = db_query($sql, "could not retreive bank account for $id");
83
84         $bank_account = db_fetch($result);
85
86         return $bank_account['account_code'];
87 }
88
89 //---------------------------------------------------------------------------------------------
90
91 function add_quick_entry($description, $type, $base_amount, $base_desc)
92 {
93         $sql = "INSERT INTO ".TB_PREF."quick_entries (description, type, base_amount, base_desc) 
94         VALUES (".db_escape($description).", ".db_escape($type).", "
95                 .db_escape($base_amount).", ".db_escape($base_desc).")";
96
97         db_query($sql, "could not insert quick entry for $description");
98 }
99
100 //---------------------------------------------------------------------------------------------
101
102 function update_quick_entry($selected_id, $description, $type, $base_amount, $base_desc)
103 {
104         $sql = "UPDATE ".TB_PREF."quick_entries SET description = ".db_escape($description).",
105                 type=".db_escape($type).", base_amount=".db_escape($base_amount)
106                 .", base_desc=".db_escape($base_desc)."
107                 WHERE id = ".db_escape($selected_id);
108
109         db_query($sql, "could not update quick entry for $selected_id");
110 }
111
112 //---------------------------------------------------------------------------------------------
113
114 function delete_quick_entry($selected_id)
115 {
116         $sql = "DELETE FROM ".TB_PREF."quick_entries WHERE id=".db_escape($selected_id);
117
118         db_query($sql,"could not delete quick entry $selected_id");
119 }
120
121 //---------------------------------------------------------------------------------------------
122
123 function add_quick_entry_line($qid, $action, $dest_id, $amount, $dim, $dim2)
124 {
125         $sql = "INSERT INTO ".TB_PREF."quick_entry_lines 
126                 (qid, action, dest_id, amount, dimension_id, dimension2_id) 
127         VALUES 
128                 ($qid, ".db_escape($action).",".db_escape($dest_id).",
129                         ".db_escape($amount).", ".db_escape($dim).", ".db_escape($dim2).")";
130
131         db_query($sql, "could not insert quick entry line for $qid");
132 }
133
134 //---------------------------------------------------------------------------------------------
135
136 function update_quick_entry_line($selected_id, $qid, $action, $dest_id, $amount, $dim, $dim2)
137 {
138         $sql = "UPDATE ".TB_PREF."quick_entry_lines SET qid = ".db_escape($qid)
139                 .", action=".db_escape($action).",
140                 dest_id=".db_escape($dest_id).", amount=".db_escape($amount)
141                 .", dimension_id=".db_escape($dim).", dimension2_id=".db_escape($dim2)." 
142                 WHERE id = ".db_escape($selected_id);
143
144         db_query($sql, "could not update quick entry line for $selected_id");
145 }
146
147 //---------------------------------------------------------------------------------------------
148
149 function delete_quick_entry_line($selected_id)
150 {
151         $sql = "DELETE FROM ".TB_PREF."quick_entry_lines WHERE id=".db_escape($selected_id);
152
153         db_query($sql,"could not delete quick entry line $selected_id");
154 }
155 //---------------------------------------------------------------------------------------------
156
157
158 function has_quick_entries($type=null)
159 {
160         $sql = "SELECT id FROM ".TB_PREF."quick_entries";
161         if ($type != null)
162                 $sql .= " WHERE type=".db_escape($type);
163
164         $result = db_query($sql, "could not retreive quick entries");
165         return db_num_rows($result) > 0;
166 }
167
168 function get_quick_entries($type = null)
169 {
170         $sql = "SELECT * FROM ".TB_PREF."quick_entries";
171         if ($type != null)
172                 $sql .= " WHERE type=".db_escape($type);
173         $sql .= " ORDER BY description";
174
175         return db_query($sql, "could not retreive quick entries");
176 }
177
178 function get_quick_entry($selected_id)
179 {
180         $sql = "SELECT * FROM ".TB_PREF."quick_entries WHERE id=".db_escape($selected_id);
181
182         $result = db_query($sql, "could not retreive quick entry $selected_id");
183
184         return db_fetch($result);
185 }       
186
187 function get_quick_entry_lines($qid)
188 {
189         $sql = "SELECT ".TB_PREF."quick_entry_lines.*, ".TB_PREF."chart_master.account_name,
190                         ".TB_PREF."tax_types.name as tax_name
191                 FROM ".TB_PREF."quick_entry_lines
192                 LEFT JOIN ".TB_PREF."chart_master ON
193                         ".TB_PREF."quick_entry_lines.dest_id = ".TB_PREF."chart_master.account_code
194                 LEFT JOIN ".TB_PREF."tax_types ON
195                         ".TB_PREF."quick_entry_lines.dest_id = ".TB_PREF."tax_types.id
196                 WHERE 
197                         qid=".db_escape($qid)." ORDER by id";
198
199         return db_query($sql, "could not retreive quick entries");
200 }
201
202 function has_quick_entry_lines($qid)
203 {
204         $sql = "SELECT id FROM ".TB_PREF."quick_entry_lines WHERE qid=".db_escape($qid);
205
206         $result = db_query($sql, "could not retreive quick entries");
207         return db_num_rows($result) > 0;
208 }
209
210 //---------------------------------------------------------------------------------------------
211
212 function get_quick_entry_line($selected_id)
213 {
214         $sql = "SELECT * FROM ".TB_PREF."quick_entry_lines WHERE id=".db_escape($selected_id);
215
216         $result = db_query($sql, "could not retreive quick entry for $selected_id");
217
218         return db_fetch($result);
219 }
220
221 //---------------------------------------------------------------------------------------------
222
223 function get_default_bank_account($curr)
224 {
225         /* default bank account is selected as first found account from:
226                 . default account in $curr if any
227                 . first defined account in $curr if any
228                 . default account in home currency
229                 . first defined account in home currency
230         */
231         $home_curr = get_company_pref('curr_default');
232
233         $sql = "SELECT b.*, b.bank_curr_code='$home_curr' as fall_back FROM "
234                 .TB_PREF."bank_accounts b"
235                 ." WHERE b.bank_curr_code=".db_escape($curr)
236                 ." OR b.bank_curr_code='$home_curr'
237                 ORDER BY fall_back, dflt_curr_act desc";
238
239         $result = db_query($sql, "could not retreive default bank account");
240
241         return db_fetch($result);
242 }
243 ?>