X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=UpdateCurrencyRate.php;h=fc37c1f9476e210ecbf176896fdbf480b6231319;hb=fec5bf43d91f14f72e1c52f94baae3bb73702ae2;hp=eb1912edccb3e8b26270455e3fd404c2480a3619;hpb=7eb8a6c074dfc7c3f7b6e39e8850698600510399;p=Pman.Core diff --git a/UpdateCurrencyRate.php b/UpdateCurrencyRate.php index eb1912ed..fc37c1f9 100644 --- a/UpdateCurrencyRate.php +++ b/UpdateCurrencyRate.php @@ -29,9 +29,7 @@ class Pman_Core_UpdateCurrencyRate extends Pman } function get() - { - echo "obtain the currency lists... \n"; - + { $currency = array(); $response = $this->curl($this->actionUrl, array(), 'GET'); @@ -55,38 +53,63 @@ class Pman_Core_UpdateCurrencyRate extends Pman 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'=> 'HTML' - ); - } + $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; + + $curr = DB_DataObject::factory('core_curr_rate'); + + $curr->curr = $c; + + $o = false; + + if($curr->find(true)){ + $o = clone($curr); + } + + $curr->setFrom(array( + 'rate' => $rate, + 'from' => date('Y-m-d H:i:s', strtotime($fromDate)), + 'to' => date('Y-m-d H:i:s', strtotime($toDate)) + )); + + (empty($o)) ? $curr->insert() : $curr->update($o); + + } -// $params = array( -// 'lang' => 'en', -// 'result' => 1, -// 'date1' => '10/14/14', -// 'date'=> '10/20/14', -// 'date_fmt' => 'us', -// 'exch' => 'CNY', -// 'expr' => 'USD', -// 'margin_fixed' => 0, -// 'format'=> 'HTML' -// ); -// -// $response = $this->curl($this->actionUrl, $params, 'POST'); -// -// file_put_contents('/tmp/test.html', $response); + $this->jok("DONE"); }