From f902bc1e2e1734a58461bc7c6ec46f3063e74c21 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Mon, 5 Oct 2015 15:41:37 +0800 Subject: [PATCH] DataObjects/Core_curr_rate.php --- DataObjects/Core_curr_rate.php | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/DataObjects/Core_curr_rate.php b/DataObjects/Core_curr_rate.php index 3aa2058a..8be8ee49 100644 --- a/DataObjects/Core_curr_rate.php +++ b/DataObjects/Core_curr_rate.php @@ -79,26 +79,35 @@ class Pman_Core_DataObjects_Core_curr_rate extends DB_DataObject } $rates['RMB'] = $rates['CNY'] ; - foreach($rates as $r=>$v) { + foreach($rates as $cur=>$rate) { - $x = DB_DataObject::Factory('core_curr_rate'); - $x->curr = $c; + $ov = DB_DataObject::Factory('core_curr_rate'); + $ov->curr = $cur; $nl = clone($x); - $x->orderBy('to_date DESC'); - $x->limit(1); + $ov->orderBy('to_date DESC'); + $ov->limit(1); + $nl->from_dt = DB_DataObject::sqlValue("NOW()"); - $$nl->from_dt = DB_DataObject::sqlValue("NOW()"); - if ($x->find(true)) { - if (strtotime($x->to_date) > time()) { + if ($ov->find(true)) { + if (strtotime($ov->to_date) > time()) { continue; } - $from_date = $x->to_date; - + $nl->from_dt = $ov->to_date; } - $x->whereAdd('to_date > NOW()'); + + if ($ov->rate == $rate) { + // modify the old one to expire + $oo = clone($ov); + $ov->to_date = $nv->to_from_dt; + $ov->update($oo); + continue; + } + + + -- 2.39.2