*** empty log message ***
[fa-stable.git] / gl / manage / exchange_rates.php
1 <?php
2
3 $page_security = 9;
4 $path_to_root="../..";
5 include_once($path_to_root . "/includes/session.inc");
6
7 page(_("Exchange Rates"));
8
9 include_once($path_to_root . "/includes/date_functions.inc");
10 include_once($path_to_root . "/includes/ui.inc");
11 include_once($path_to_root . "/includes/banking.inc");
12
13 //---------------------------------------------------------------------------------------------
14
15 if (isset($_GET['selected_id']))
16 {
17         $selected_id = $_GET['selected_id'];
18
19 elseif (isset($_POST['selected_id']))
20 {
21         $selected_id = $_POST['selected_id'];
22 }
23 else
24         $selected_id = "";
25 //---------------------------------------------------------------------------------------------
26
27 function check_data()
28 {
29         if (!is_date($_POST['date_'])) 
30         {
31                 display_error( _("The entered date is invalid."));
32                 return false;
33         }
34         if (!is_numeric($_POST['BuyRate']))
35         {
36                 display_error( _("The exchange rate must be numeric."));
37                 return false;
38         }
39         if ($_POST['BuyRate'] <= 0)
40         {
41                 display_error( _("The exchange rate cannot be zero or a negative number."));
42                 return false;
43         }
44
45         return true;
46 }
47
48 //---------------------------------------------------------------------------------------------
49
50 function handle_submit()
51 {
52         global $selected_id;
53
54         if (!check_data())
55                 return false;
56
57         if ($selected_id != "") 
58         {
59
60                 update_exchange_rate($_POST['curr_abrev'], $_POST['date_'], $_POST['BuyRate'],
61                         $_POST['BuyRate']);
62         } 
63         else 
64         {
65
66                 add_exchange_rate($_POST['curr_abrev'], $_POST['date_'], $_POST['BuyRate'],
67                         $_POST['BuyRate']);
68         }
69
70         return true;
71 }
72
73 //---------------------------------------------------------------------------------------------
74
75 function handle_delete()
76 {
77         global $selected_id;
78
79         if ($selected_id == "")
80                 return;
81         delete_exchange_rate($selected_id);
82
83         meta_forward($_SERVER['PHP_SELF']);
84 }
85
86 //---------------------------------------------------------------------------------------------
87
88 function display_rates($curr_code)
89 {
90         global $table_style;
91
92         $result = get_exchange_rates($curr_code);
93
94         br(2);
95         start_table($table_style);
96         $th = array(_("Date to Use From"), _("Exchange Rate"), "", "");
97         table_header($th);
98
99     $k = 0; //row colour counter
100
101     while ($myrow = db_fetch($result)) 
102     {
103
104                 alt_table_row_color($k);
105
106         label_cell(sql2date($myrow["date_"]));
107                 label_cell(number_format2($myrow["rate_buy"], user_exrate_dec()), "nowrap align=right");
108                 edit_link_cell("selected_id=" . $myrow["id"]);
109                 delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1");
110
111                 end_row();
112
113     } //END WHILE LIST LOOP
114
115     end_table();
116 }
117
118 //---------------------------------------------------------------------------------------------
119
120 function display_rate_edit()
121 {
122         global $selected_id, $table_style2;
123
124         start_table($table_style2);
125
126         if (isset($_POST['get_rate']))
127         {
128                 $_POST['BuyRate'] = get_ecb_rate($_POST['curr_abrev']);
129                 $_POST['BuyRate'] = number_format($_POST['BuyRate'], user_exrate_dec());
130         }       
131         if ($selected_id != "") 
132         {
133                 //editing an existing payment terms
134
135                 $myrow = get_exchange_rate($selected_id);
136
137                 $_POST['date_'] = sql2date($myrow["date_"]);
138                 $_POST['BuyRate'] = $myrow["rate_buy"];
139
140                 hidden('selected_id', $selected_id);
141                 hidden('date_', $_POST['date_']);
142                 hidden('curr_abrev', $_POST['curr_abrev']);
143
144                 label_row(_("Date to Use From:"), $_POST['date_']);
145         } 
146         else 
147         {
148                 date_row(_("Date to Use From:"), 'date_');
149         }
150         text_row(_("Exchange Rate:"), 'BuyRate', null, 15, 12, "", submit('get_rate',_("Get"), false));
151
152         end_table(1);
153
154         submit_add_or_update_center($selected_id == "");
155
156         display_note(_("Exchange rates are entered against the company currency."), 1);
157 }
158
159 //---------------------------------------------------------------------------------------------
160
161 function clear_data()
162 {
163         unset($_POST['selected_id']);
164         unset($_POST['date_']);
165         unset($_POST['BuyRate']);
166 }
167
168 //---------------------------------------------------------------------------------------------
169
170 if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) 
171 {
172
173         if (handle_submit()) 
174         {
175                 meta_forward($_SERVER['PHP_SELF']);
176         }
177 }
178
179 //---------------------------------------------------------------------------------------------
180
181 if (isset($_GET['delete'])) 
182 {
183
184         handle_delete();
185 }
186
187 //---------------------------------------------------------------------------------------------
188
189 echo "<center>";
190 start_form(false, true);
191
192 if (!isset($_POST['curr_abrev']))
193         $_POST['curr_abrev'] = get_global_curr_code();
194
195 echo _("Select a currency :") . "  ";
196 currencies_list('curr_abrev', $_POST['curr_abrev'], true);
197
198 // if currency sel has changed, clear the form
199 if ($_POST['curr_abrev'] != get_global_curr_code()) 
200 {
201         clear_data();
202         $selected_id = "";
203 }
204
205 set_global_curr_code($_POST['curr_abrev']);
206
207 if (is_company_currency($_POST['curr_abrev'])) 
208 {
209
210         display_note(_("The selected currency is the company currency."), 2);
211         display_note(_("The company currency is the base currency so exchange rates cannot be set for it."), 1);
212
213 else 
214 {
215
216     display_rates($_POST['curr_abrev']);
217
218         hyperlink_no_params($_SERVER['PHP_SELF'], _("Enter a New Exchange Rate"));
219         br(1);
220
221     display_rate_edit();
222 }
223
224 end_form();
225
226 end_page();
227
228 ?>