protected function _cutAndExpire($period, $timetype = 'created_at') { if (!$period || !is_array($period)) { return $this; } $period = new Varien_Object($period); if (($from = $period->getFrom()) && ($to = $period->getTo())) { $collection = Mage::getModel('advancedreports/aggregation')->getCollection(); $collection->setPeriodFilter($from, $to)->setTimetypeFilter($timetype); foreach ($collection as $period) { $aggregating = Mage::getModel('advancedreports/aggregation')->load($period->getId()); $aData = $aggregating->getData(); unset($aData['entity_id']); $aggregating->delete(); if ($period->getFrom() < $from) { $aggregating = Mage::getModel('advancedreports/aggregation'); $aggregating->addData($aData); $aggregating->setTo($this->_helper()->getDate()->decSec($from)); $aggregating->save(); } if ($period->getTo() > $to) { $aggregating = Mage::getModel('advancedreports/aggregation'); $aggregating->addData($aData); $aggregating->setFrom($this->_helper()->getDate()->incSec($to)); $aggregating->save(); } } } return $this; }