/** * Applies grouping for entries from report data * * @return void **/ protected function _applyGrouping(RM_Report_Object $obReport) { deprecated(); if ($obReport->grouping()) { M('Db')->setCurrentConnection('storage'); $query = M('Db')->createQuery($obReport->getTableName(), 'update'); $lastGroup = NULL; foreach ($obReport->grouping() as $id => $group) { if ($lastGroup != $group) { $obDetail = $obReport->detail(); $query->set()->reset(); do { $obGroup = M('ReportGroup')->loadById($group); $query->set($obDetail->getFieldNameWithId(), $obGroup->reportId())->set($obDetail->getFieldNameWithName(), $obGroup->name()); } while (!isNull($obDetail = $obDetail->getUpperLevel())); $lastGroup = $group; } $query->where()->reset()->where($obReport->detail()->getFieldNameWithId() . ' = ?', $id)->execute(); } M('Db')->setCurrentConnection('default'); } }