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