X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=UpdateCurrencyRate.php;h=0c0fe04d6b6cfb5c4b7596f8e8938230ddf5866d;hp=f2af69d6d579bc3c53cf69e8edc12265a25e1399;hb=refs%2Fheads%2Fwip_alan_T5884_add_photo_to_report;hpb=b5c5581994abd297ba638858ef04f5b6d2787c7e diff --git a/UpdateCurrencyRate.php b/UpdateCurrencyRate.php index f2af69d6..0c0fe04d 100644 --- a/UpdateCurrencyRate.php +++ b/UpdateCurrencyRate.php @@ -1,5 +1,8 @@ loadRates(); + + $hkd = $d->convert(1,'USD','HKD'); + echo "1 USD is ~ $hkd HKD (should be about 7.75)\n "; + + die("done"); + + + + } + function oldversion() + { $currency = array(); $response = $this->curl($this->actionUrl, array(), 'GET'); @@ -55,37 +72,73 @@ 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' - ); - } - - $response = $this->curl($this->actionUrl, $params, 'POST'); - - libxml_use_internal_errors (true); - - $doc = new DOMDocument(); - $doc->loadHTML($response); - - libxml_use_internal_errors (false); + $fromDate = date('m/d/y', strtotime("-6 MONTH")); + $toDate = date('m/d/y'); - $xpath = new DOMXpath($doc); + $total = count($currency); - $ts = $xpath->query("//td[@id='content_section']"); + 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'); - $elements = $xpath->query("table/tr", $ts->item(0)); + 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); + } + } - print_r($elements);exit; + 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); + return; } function curl($url, $request = array(), $method = 'GET') @@ -119,18 +172,4 @@ class Pman_Core_UpdateCurrencyRate extends Pman return $response; } - /* - lang:en - result:1 - date1:10/14/14 - date:10/20/14 - date_fmt:us - exch:USD - exch2: - expr:EUR - expr2: - margin_fixed:0 - format:HTML - SUBMIT:Get Table - */ } \ No newline at end of file