Added table pager.
[fa-stable.git] / gl / manage / exchange_rates.php
1 <?php
2
3 $page_security = 9;
4 $path_to_root="../..";
5 include($path_to_root . "/includes/db_pager.inc");
6 include_once($path_to_root . "/includes/session.inc");
7
8 include_once($path_to_root . "/includes/date_functions.inc");
9 include_once($path_to_root . "/includes/ui.inc");
10 include_once($path_to_root . "/includes/banking.inc");
11
12 $js = "";
13 if ($use_date_picker)
14         $js .= get_js_date_picker();
15 page(_("Exchange Rates"), false, false, "", $js);
16
17 simple_page_mode(false);
18
19 //---------------------------------------------------------------------------------------------
20 function check_data()
21 {
22         if (!is_date($_POST['date_']))
23         {
24                 display_error( _("The entered date is invalid."));
25                 set_focus('date_');
26                 return false;
27         }
28         if (!check_num('BuyRate', 0))
29         {
30                 display_error( _("The exchange rate must be numeric and greater than zero."));
31                 set_focus('BuyRate');
32                 return false;
33         }
34         if ($_POST['BuyRate'] <= 0)
35         {
36                 display_error( _("The exchange rate cannot be zero or a negative number."));
37                 set_focus('BuyRate');
38                 return false;
39         }
40
41         return true;
42 }
43
44 //---------------------------------------------------------------------------------------------
45
46 function handle_submit()
47 {
48         global $selected_id;
49
50         if (!check_data())
51                 return false;
52
53         if ($selected_id != "")
54         {
55
56                 update_exchange_rate($_POST['curr_abrev'], $_POST['date_'],
57                 input_num('BuyRate'), input_num('BuyRate'));
58         }
59         else
60         {
61
62                 add_exchange_rate($_POST['curr_abrev'], $_POST['date_'],
63                     input_num('BuyRate'), input_num('BuyRate'));
64         }
65
66         $selected_id = '';
67 }
68
69 //---------------------------------------------------------------------------------------------
70
71 function handle_delete()
72 {
73         global $selected_id;
74
75         if ($selected_id == "")
76                 return;
77         delete_exchange_rate($selected_id);
78         $selected_id = '';
79 }
80
81 //---------------------------------------------------------------------------------------------
82 function edit_link($row) 
83 {
84   return button('Edit'.$row["id"], _("Edit"), true, ICON_EDIT);
85 }
86
87 function del_link($row) 
88 {
89   return button('Delete'.$row["id"], _("Delete"), true, ICON_DELETE);
90 }
91
92 function display_rates($curr_code)
93 {
94         global $table_style;
95
96         $sql = "SELECT date_, rate_buy, id FROM "
97                 .TB_PREF."exchange_rates "
98                 ."WHERE curr_code='$curr_code'
99                  ORDER BY date_ DESC";
100
101         $cols = array(
102                 _("Date to Use From") => 'date', 
103                 _("Exchange Rate") => 'rate',
104                 array('insert'=>true, 'fun'=>'edit_link'),
105                 array('insert'=>true, 'fun'=>'del_link'),
106         );
107         $table =& new_db_pager('orders_tbl', $sql, $cols);
108         if (list_updated('curr_abrev')) {
109                 $table->set_sql($sql);
110                 $table->set_columns($cols);
111         }
112         $table->width = "40%";
113         display_db_pager($table);
114 }
115
116 //---------------------------------------------------------------------------------------------
117
118 function display_rate_edit()
119 {
120         global $selected_id, $table_style2, $Ajax;
121
122         start_table($table_style2);
123
124         if ($selected_id != "")
125         {
126                 //editing an existing exchange rate
127
128                 $myrow = get_exchange_rate($selected_id);
129
130                 $_POST['date_'] = sql2date($myrow["date_"]);
131                 $_POST['BuyRate'] = exrate_format($myrow["rate_buy"]);
132
133                 hidden('selected_id', $selected_id);
134                 hidden('date_', $_POST['date_']);
135
136                 label_row(_("Date to Use From:"), $_POST['date_']);
137         }
138         else
139         {
140                 $_POST['date_'] = Today();
141                 $_POST['BuyRate'] = '';
142                 date_row(_("Date to Use From:"), 'date_');
143         }
144         if (isset($_POST['get_rate']))
145         {
146                 $_POST['BuyRate'] = exrate_format(get_ecb_rate($_POST['curr_abrev']));
147                 if ($_POST['BuyRate'] == 0) {
148                         display_error(_('This currency is not listed by ECB. Enter exchange rate manually.'));
149                 }
150                 $Ajax->activate('BuyRate');
151         }
152         small_amount_row(_("Exchange Rate:"), 'BuyRate', null, '',
153                 submit('get_rate',_("Get"), false, _('Get current ECB rate') , true),
154                 user_exrate_dec());
155
156         end_table(1);
157
158         submit_add_or_update_center($selected_id == '', '', true);
159
160         display_note(_("Exchange rates are entered against the company currency."), 1);
161 }
162
163 //---------------------------------------------------------------------------------------------
164
165 function clear_data()
166 {
167         unset($_POST['selected_id']);
168         unset($_POST['date_']);
169         unset($_POST['BuyRate']);
170 }
171
172 //---------------------------------------------------------------------------------------------
173
174 if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') 
175         handle_submit();
176
177 //---------------------------------------------------------------------------------------------
178
179 if ($Mode == 'Delete')
180         handle_delete();
181
182
183 //---------------------------------------------------------------------------------------------
184
185 start_form(false, true);
186
187 if (!isset($_POST['curr_abrev']))
188         $_POST['curr_abrev'] = get_global_curr_code();
189
190 echo "<center>";
191 echo _("Select a currency :") . "  ";
192 currencies_list('curr_abrev', null, true);
193 echo "</center>";
194
195 // if currency sel has changed, clear the form
196 if ($_POST['curr_abrev'] != get_global_curr_code())
197 {
198         clear_data();
199         $selected_id = "";
200 }
201
202 set_global_curr_code($_POST['curr_abrev']);
203
204 if (is_company_currency($_POST['curr_abrev']))
205 {
206
207         display_note(_("The selected currency is the company currency."), 2);
208         display_note(_("The company currency is the base currency so exchange rates cannot be set for it."), 1);
209 }
210 else
211 {
212
213         br(1);
214     display_rates($_POST['curr_abrev']);
215         br(1);
216     display_rate_edit();
217 }
218
219 end_form();
220
221 end_page();
222
223 ?>