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");
19 function add_bank_account($account_code, $account_type, $bank_account_name,
20 $bank_name, $bank_account_number, $bank_address, $bank_curr_code,
23 if($dflt_curr_act) // only one default account for any currency
24 clear_dflt_curr_account($bank_curr_code);
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).")";
34 db_query($sql, "could not add a bank account for $account_code");
37 //---------------------------------------------------------------------------------------------
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)
42 if($dflt_curr_act) // only one default account for any currency
43 clear_dflt_curr_account($bank_curr_code);
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);
53 db_query($sql, "could not update bank account for $account_code");
56 //---------------------------------------------------------------------------------------------
58 function delete_bank_account($id)
60 $sql = "DELETE FROM ".TB_PREF."bank_accounts WHERE id=".db_escape($id);
62 db_query($sql,"could not delete bank account for $id");
66 //---------------------------------------------------------------------------------------------
68 function get_bank_account($id)
70 $sql = "SELECT * FROM ".TB_PREF."bank_accounts WHERE id=".db_escape($id);
72 $result = db_query($sql, "could not retreive bank account for $id");
74 return db_fetch($result);
77 //---------------------------------------------------------------------------------------------
78 function get_bank_gl_account($id)
80 $sql = "SELECT account_code FROM ".TB_PREF."bank_accounts WHERE id=".db_escape($id);
82 $result = db_query($sql, "could not retreive bank account for $id");
84 $bank_account = db_fetch($result);
86 return $bank_account['account_code'];
89 //---------------------------------------------------------------------------------------------
91 function add_quick_entry($description, $type, $base_amount, $base_desc)
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).")";
97 db_query($sql, "could not insert quick entry for $description");
100 //---------------------------------------------------------------------------------------------
102 function update_quick_entry($selected_id, $description, $type, $base_amount, $base_desc)
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);
109 db_query($sql, "could not update quick entry for $selected_id");
112 //---------------------------------------------------------------------------------------------
114 function delete_quick_entry($selected_id)
116 $sql = "DELETE FROM ".TB_PREF."quick_entries WHERE id=".db_escape($selected_id);
118 db_query($sql,"could not delete quick entry $selected_id");
121 //---------------------------------------------------------------------------------------------
123 function add_quick_entry_line($qid, $action, $dest_id, $amount, $dim, $dim2)
125 $sql = "INSERT INTO ".TB_PREF."quick_entry_lines
126 (qid, action, dest_id, amount, dimension_id, dimension2_id)
128 ($qid, ".db_escape($action).",".db_escape($dest_id).",
129 ".db_escape($amount).", ".db_escape($dim).", ".db_escape($dim2).")";
131 db_query($sql, "could not insert quick entry line for $qid");
134 //---------------------------------------------------------------------------------------------
136 function update_quick_entry_line($selected_id, $qid, $action, $dest_id, $amount, $dim, $dim2)
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);
144 db_query($sql, "could not update quick entry line for $selected_id");
147 //---------------------------------------------------------------------------------------------
149 function delete_quick_entry_line($selected_id)
151 $sql = "DELETE FROM ".TB_PREF."quick_entry_lines WHERE id=".db_escape($selected_id);
153 db_query($sql,"could not delete quick entry line $selected_id");
155 //---------------------------------------------------------------------------------------------
158 function has_quick_entries($type=null)
160 $sql = "SELECT id FROM ".TB_PREF."quick_entries";
162 $sql .= " WHERE type=".db_escape($type);
164 $result = db_query($sql, "could not retreive quick entries");
165 return db_num_rows($result) > 0;
168 function get_quick_entries($type = null)
170 $sql = "SELECT * FROM ".TB_PREF."quick_entries";
172 $sql .= " WHERE type=".db_escape($type);
173 $sql .= " ORDER BY description";
175 return db_query($sql, "could not retreive quick entries");
178 function get_quick_entry($selected_id)
180 $sql = "SELECT * FROM ".TB_PREF."quick_entries WHERE id=".db_escape($selected_id);
182 $result = db_query($sql, "could not retreive quick entry $selected_id");
184 return db_fetch($result);
187 function get_quick_entry_lines($qid)
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
197 qid=".db_escape($qid)." ORDER by id";
199 return db_query($sql, "could not retreive quick entries");
202 function has_quick_entry_lines($qid)
204 $sql = "SELECT id FROM ".TB_PREF."quick_entry_lines WHERE qid=".db_escape($qid);
206 $result = db_query($sql, "could not retreive quick entries");
207 return db_num_rows($result) > 0;
210 //---------------------------------------------------------------------------------------------
212 function get_quick_entry_line($selected_id)
214 $sql = "SELECT * FROM ".TB_PREF."quick_entry_lines WHERE id=".db_escape($selected_id);
216 $result = db_query($sql, "could not retreive quick entry for $selected_id");
218 return db_fetch($result);
221 //---------------------------------------------------------------------------------------------
223 function get_default_bank_account($curr)
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
231 $home_curr = get_company_pref('curr_default');
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";
239 $result = db_query($sql, "could not retreive default bank account");
241 return db_fetch($result);