Esempio n. 1
0
 protected function _beforeLoad()
 {
     if (!$this->getFlag('skip_aggregated_fields')) {
         $cols = array('main_table.info', 'main_table.wording', 'main_table.smem', '(SELECT IFNULL((SELECT name FROM category AS parent_category WHERE key = category.parent), "") || ":" || name
                 FROM category WHERE key = main_table.category)', '(SELECT name FROM payee WHERE key = main_table.payee)', '(SELECT GROUP_CONCAT(c.name, "|") FROM category c WHERE c.key IN
                 (SELECT osa.category FROM ' . Operation::SPLIT_AMOUNT_TABLE . ' osa WHERE osa.operation_id = main_table.id))');
         $colsSep = array();
         foreach ($cols as $c) {
             $colsSep[] = "IFNULL({$c}, \"\")";
             $colsSep[] = ' "|" ';
         }
         $expr = new Expression(implode(' || ', $colsSep));
         $this->addFieldToSelect(array('aggregate_search' => $expr));
     }
     return parent::_beforeLoad();
 }