f1b91de01618371f218dca7c8c961eef070e4962
[fa-stable.git] / gl / manage / currencies.php
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 $page_security = 9;
13 $path_to_root="../..";
14 include_once($path_to_root . "/includes/session.inc");
15
16 page(_("Currencies"));
17
18 include_once($path_to_root . "/includes/ui.inc");
19 include_once($path_to_root . "/includes/banking.inc");
20
21 simple_page_mode(false);
22
23 //---------------------------------------------------------------------------------------------
24
25 function check_data()
26 {
27         if (strlen($_POST['Abbreviation']) == 0) 
28         {
29                 display_error( _("The currency abbreviation must be entered."));
30                 set_focus('Abbreviation');
31                 return false;
32         } 
33         elseif (strlen($_POST['CurrencyName']) == 0) 
34         {
35                 display_error( _("The currency name must be entered."));
36                 set_focus('CurrencyName');
37                 return false;           
38         } 
39         elseif (strlen($_POST['Symbol']) == 0) 
40         {
41                 display_error( _("The currency symbol must be entered."));
42                 set_focus('Symbol');
43                 return false;           
44         } 
45         elseif (strlen($_POST['hundreds_name']) == 0) 
46         {
47                 display_error( _("The hundredths name must be entered."));
48                 set_focus('hundreds_name');
49                 return false;           
50         }       
51         
52         return true;
53 }
54
55 //---------------------------------------------------------------------------------------------
56
57 function handle_submit()
58 {
59         global $selected_id, $Mode;
60         
61         if (!check_data())
62                 return false;
63                 
64         if ($selected_id != "") 
65         {
66
67                 update_currency($_POST['Abbreviation'], $_POST['Symbol'], $_POST['CurrencyName'], 
68                         $_POST['country'], $_POST['hundreds_name']);
69                 display_notification(_('Selected currency settings has been updated'));
70         } 
71         else 
72         {
73
74                 add_currency($_POST['Abbreviation'], $_POST['Symbol'], $_POST['CurrencyName'], 
75                         $_POST['country'], $_POST['hundreds_name']);
76                 display_notification(_('New currency has been added'));
77         }       
78         $Mode = 'RESET';
79 }
80
81 //---------------------------------------------------------------------------------------------
82
83 function check_can_delete()
84 {
85         global $selected_id;
86                 
87         if ($selected_id == "")
88                 return false;
89         // PREVENT DELETES IF DEPENDENT RECORDS IN debtors_master
90         $sql= "SELECT COUNT(*) FROM ".TB_PREF."debtors_master WHERE curr_code = '$selected_id'";
91         $result = db_query($sql);
92         $myrow = db_fetch_row($result);
93         if ($myrow[0] > 0) 
94         {
95                 display_error(_("Cannot delete this currency, because customer accounts have been created referring to this currency."));
96                 return false;
97         }
98
99         $sql= "SELECT COUNT(*) FROM ".TB_PREF."suppliers WHERE curr_code = '$selected_id'";
100         $result = db_query($sql);
101         $myrow = db_fetch_row($result);
102         if ($myrow[0] > 0) 
103         {
104                 display_error(_("Cannot delete this currency, because supplier accounts have been created referring to this currency."));
105                 return false;
106         }
107                 
108         $sql= "SELECT COUNT(*) FROM ".TB_PREF."company WHERE curr_default = '$selected_id'";
109         $result = db_query($sql);
110         $myrow = db_fetch_row($result);
111         if ($myrow[0] > 0) 
112         {
113                 display_error(_("Cannot delete this currency, because the company preferences uses this currency."));
114                 return false;
115         }
116         
117         // see if there are any bank accounts that use this currency
118         $sql= "SELECT COUNT(*) FROM ".TB_PREF."bank_accounts WHERE bank_curr_code = '$selected_id'";
119         $result = db_query($sql);
120         $myrow = db_fetch_row($result);
121         if ($myrow[0] > 0) 
122         {
123                 display_error(_("Cannot delete this currency, because thre are bank accounts that use this currency."));
124                 return false;
125         }
126         
127         return true;
128 }
129
130 //---------------------------------------------------------------------------------------------
131
132 function handle_delete()
133 {
134         global $selected_id, $Mode;
135         if (check_can_delete()) {
136         //only delete if used in neither customer or supplier, comp prefs, bank trans accounts
137                 delete_currency($selected_id);
138                 display_notification(_('Selected currency has been deleted'));
139         }
140         $Mode = 'RESET';
141 }
142
143 //---------------------------------------------------------------------------------------------
144
145 function display_currencies()
146 {
147         global $table_style;
148
149         $company_currency = get_company_currency();     
150         
151     $result = get_currencies();
152         start_form();    
153     start_table($table_style);
154     $th = array(_("Abbreviation"), _("Symbol"), _("Currency Name"),
155         _("Hundredths name"), _("Country"), "", "");
156     table_header($th);  
157     
158     $k = 0; //row colour counter
159     
160     while ($myrow = db_fetch($result)) 
161     {
162         
163         if ($myrow[1] == $company_currency) 
164         {
165                 start_row("class='currencybg'");
166         } 
167         else
168                 alt_table_row_color($k);
169                 
170         label_cell($myrow["curr_abrev"]);
171                 label_cell($myrow["curr_symbol"]);
172                 label_cell($myrow["currency"]);
173                 label_cell($myrow["hundreds_name"]);
174                 label_cell($myrow["country"]);
175                 edit_button_cell("Edit".$myrow["curr_abrev"], _("Edit"));
176                 if ($myrow["curr_abrev"] != $company_currency)
177                         delete_button_cell("Delete".$myrow["curr_abrev"], _("Delete"));
178                 else
179                         label_cell('');
180                 end_row();
181                 
182     } //END WHILE LIST LOOP
183     
184     end_table();
185         end_form();    
186     display_note(_("The marked currency is the home currency which cannot be deleted."), 0, 0, "class='currentfg'");
187 }
188
189 //---------------------------------------------------------------------------------------------
190
191 function display_currency_edit($selected_id)
192 {
193         global $table_style2, $Mode;
194         
195         start_form();
196         start_table($table_style2);
197
198         if ($selected_id != '') 
199         {
200                 if ($Mode == 'Edit') {
201                         //editing an existing currency
202                         $myrow = get_currency($selected_id);
203
204                         $_POST['Abbreviation'] = $myrow["curr_abrev"];
205                         $_POST['Symbol'] = $myrow["curr_symbol"];
206                         $_POST['CurrencyName']  = $myrow["currency"];
207                         $_POST['country']  = $myrow["country"];
208                         $_POST['hundreds_name']  = $myrow["hundreds_name"];
209                 }
210                 hidden('Abbreviation');
211                 hidden('selected_id', $selected_id);
212                 label_row(_("Currency Abbreviation:"), $_POST['Abbreviation']);
213         } 
214         else 
215         { 
216                 text_row_ex(_("Currency Abbreviation:"), 'Abbreviation', 4, 3);         
217         }
218
219         text_row_ex(_("Currency Symbol:"), 'Symbol', 10);
220         text_row_ex(_("Currency Name:"), 'CurrencyName', 20);
221         text_row_ex(_("Hundredths Name:"), 'hundreds_name', 15);        
222         text_row_ex(_("Country:"), 'country', 40);      
223
224         end_table(1);
225
226         submit_add_or_update_center($selected_id == '', '', true);
227
228         end_form();
229 }
230
231 //---------------------------------------------------------------------------------------------
232
233 if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') 
234         handle_submit();
235
236 //--------------------------------------------------------------------------------------------- 
237
238 if ($Mode == 'Delete')
239         handle_delete();
240
241 //---------------------------------------------------------------------------------------------
242 if ($Mode == 'RESET')
243 {
244                 $selected_id = '';
245                 $_POST['Abbreviation'] = $_POST['Symbol'] = '';
246                 $_POST['CurrencyName'] = $_POST['country']  = '';
247                 $_POST['hundreds_name']  = '';
248 }
249
250 display_currencies();
251
252 display_currency_edit($selected_id);
253
254 //---------------------------------------------------------------------------------------------
255
256 end_page();
257
258 ?>