SimpleExcel.php
[Pman.Core] / UpdateCurrencyRate.php
index 5ba04b4..0c0fe04 100644 (file)
@@ -1,5 +1,8 @@
 <?php
 
+// note this no longer works -- we could try using their JSON feed?
+
+
 require_once 'Pman.php';
 
 class Pman_Core_UpdateCurrencyRate extends Pman
@@ -7,15 +10,7 @@ class Pman_Core_UpdateCurrencyRate extends Pman
     
     static $cli_desc = "Update Currency Exchange Rate";
     
-    static $cli_opts = array(
-        'procedures-only' => array(
-            'desc' => 'Only run procedures and return',
-            'short' => 'p',
-            'default' => '',
-            'min' => 1,
-            'max' => 1,
-        ),
-    );
+    static $cli_opts = array();
     
     var $cli = false; 
     
@@ -36,76 +31,88 @@ class Pman_Core_UpdateCurrencyRate extends Pman
         die("NOT ALLOWED");
     }
     
-    function get($args, $opts)
+    function get($args, $opts=array())
     {   
-//        $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");
+        
+        //DB_DataObject::DebugLevel(1);
+        $d = DB_DataObject::Factory('core_curr_rate');
+        $d->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');
+        
+        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);
+            }
         }
         
         return;
@@ -165,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