static $cli_desc = "Update Currency Exchange Rate";
- static $cli_opts = array();
+ static $cli_opts = array(
+ 'procedures-only' => array(
+ 'desc' => 'Only run procedures and return',
+ 'short' => 'p',
+ 'default' => '',
+ 'min' => 1,
+ 'max' => 1,
+ ),
+ );
var $cli = false;
die("NOT ALLOWED");
}
- function get()
- {
- echo "obtain the currency lists... \n";
-
- $currency = array();
-
- $response = $this->curl($this->actionUrl, array(), 'GET');
-
- libxml_use_internal_errors (true);
-
- $doc = new DOMDocument();
- $doc->loadHTML($response);
-
- libxml_use_internal_errors (false);
-
- $xpath = new DOMXpath($doc);
-
- $elements = $xpath->query("//select[@name='exch']/option");
-
- foreach($elements as $el) {
- $currency[] = $el->getAttribute('value');
+ function get($args, $opts)
+ {
+// $currency = array();
+//
+// $response = $this->curl($this->actionUrl, array(), 'GET');
+//
+// libxml_use_internal_errors (true);
+//
+// $doc = new DOMDocument();
+// $doc->loadHTML($response);
+//
+// libxml_use_internal_errors (false);
+//
+// $xpath = new DOMXpath($doc);
+//
+// $elements = $xpath->query("//select[@name='exch']/option");
+//
+// foreach($elements as $el) {
+// $currency[] = $el->getAttribute('value');
+// }
+//
+// if(empty($currency)){
+// die('no any currency');
+// }
+//
+// $fromDate = date('m/d/y', strtotime("-6 MONTH"));
+// $toDate = date('m/d/y');
+//
+// $total = count($currency);
+//
+// foreach ($currency as $k => $c){
+//
+// echo "\nProcessing Currency : $c ($k / $total) \n";
+//
+// $params = array(
+// 'lang' => 'en',
+// 'result' => 1,
+// 'date1' => $fromDate,
+// 'date' => $toDate,
+// 'date_fmt' => 'us',
+// 'exch' => $c,
+// 'expr' => 'USD',
+// 'margin_fixed' => 0,
+// 'format' => 'HTML'
+// );
+//
+// $response = $this->curl($this->actionUrl, $params, 'POST');
+//
+// libxml_use_internal_errors (true);
+//
+// $doc = new DOMDocument();
+// $doc->loadHTML($response);
+//
+// libxml_use_internal_errors (false);
+//
+// $xpath = new DOMXpath($doc);
+//
+// $elements = $xpath->query("//td[@id='content_section']/table/tr[last()]/td/table/tr[1]/td[last()]");
+//
+// $rate = empty($elements->item(0)->nodeValue) ? 0 : $elements->item(0)->nodeValue * 1;
+//
+// $this->processCurrRate($c, $rate, $fromDate, $toDate);
+//
+// if(array_key_exists($c, $this->mapping)){
+// $this->processCurrRate($this->mapping[$c], $rate, $fromDate, $toDate);
+// }
+// }
+
+ if(empty($opts['procedures-only'])){
+ $this->jok("DONE");
}
- if(empty($currency)){
- die('no any currency');
- }
-
- foreach ($currency as $c){
- $params = array(
- 'lang' => 'en',
- 'result' => 1,
- 'date1' => date('m/d/y', strtotime("-6 MONTH")),
- 'date'=> date('m/d/y'),
- 'date_fmt' => 'us',
- 'exch' => $c,
- 'expr' => 'USD',
- 'margin_fixed' => 0,
- 'format'=> 'CSV'
- );
+ return;
+ }
+
+ function processCurrRate($currency, $rate, $from, $to)
+ {
+ $curr = DB_DataObject::factory('core_curr_rate');
+
+ $curr->curr = $currency;
+
+ $o = false;
+
+ if($curr->find(true)){
+ $o = clone($curr);
}
+
+ $curr->setFrom(array(
+ 'rate' => $rate,
+ 'from_dt' => date('Y-m-d H:i:s', strtotime($from)),
+ 'to_dt' => date('Y-m-d H:i:s', strtotime($to))
+ ));
+
+ (empty($o)) ? $curr->insert() : $curr->update($o);
- $response = $this->curl($this->actionUrl, $params, 'POST');
-
- libxml_use_internal_errors (true);
-
- $doc = new DOMDocument();
- $doc->loadHTML($response);
-
- libxml_use_internal_errors (false);
-
- $xpath = new DOMXpath($doc);
-
- $ts = $xpath->query("//td[@id='content_section']");
-
- $elements = $xpath->query("table/tr/td/pre", $ts->item(0));
-
- $rate = str_getcsv($elements->item(0)->nodeValue);
-
- print_r($rate,',');exit;
-
+ return;
}
function curl($url, $request = array(), $method = 'GET')