예제 #1
0
 protected function _applyGroupsForData(RM_Total_Object $object)
 {
     M('Db')->setCurrentConnection('storage');
     $q = M('Db')->createQuery($object->tableName(), 'update');
     M('Db')->setCurrentConnection('default');
     $lastGroup = NULL;
     foreach ($object->other() as $id => $group) {
         if ($lastGroup != $group) {
             $detailLevel = $object->detailLevel();
             $q->set()->reset();
             do {
                 $obGroup = M('ReportGroup')->loadById($group);
                 $q->set($detailLevel->getFieldNameWithId(), $obGroup->reportId())->set($detailLevel->getFieldNameWithName(), $obGroup->name());
             } while (!isNull($detailLevel = $detailLevel->getUpperLevel()));
             $lastGroup = $group;
         }
         $q->where()->reset();
         $q->where($object->detailLevel()->getFieldNameWithId() . '=?', $id);
         $q->execute();
     }
 }