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