function fetchBalance($where=null) { $select = $this->getDbTable()->select(); $select->from($this->getDbTable()); // $select->join(array('R' => 'REGISTRO'), 'C.ID_CATEGORIA = R.ID_CATEGORIA'); // $select->where("R.ESTADO_REGISTRO = ?", 0); // $select->group("R.ID_CATEGORIA", "R.ID_TIPO_REGISTRO"); // $select->order("C.ID_CATEGORIA ASC"); if ($where != null) { foreach ($where as $key => $val) { $select->where($key . ' = ?', $val); } } // $sql = $select->__toString(); // echo "$sql\n"; // SELECT C.ID_CATEGORIA, CATEGORIA, SUM(MONTO_REGISTRO) AS MONTO, R.ID_TIPO_REGISTRO // FROM CATEGORIA AS C INNER JOIN REGISTRO AS R // WHERE R.ID_CATEGORIA = C.ID_CATEGORIA // AND R.ID_USUARIO = 1 // AND R.ESTADO_REGISTRO = 0 // GROUP BY R.ID_CATEGORIA, R.ID_TIPO_REGISTRO // ORDER BY C.ID_CATEGORIA $resultSet = $this->getDbTable()->fetchAll($select); $regMP = new Application_Model_RegistroMP(); $entries = array(); foreach ($resultSet as $row) { $entry = new Application_Model_Categoria(); $entry->setIdCategoria($row->ID_CATEGORIA); $entry->setIdProyecto($row->ID_PROYECTO); $entry->setCategoria($row->CATEGORIA); $entry->setColorCategoria($row->COLOR_CATEGORIA); $entry->setEstadoCategoria($row->ESTADO_CATEGORIA); $entry->setIngresos($regMP->fetchSumCat($row->ID_CATEGORIA, 1, $row->ID_PROYECTO)); $entry->setEgresos($regMP->fetchSumCat($row->ID_CATEGORIA, 2, $row->ID_PROYECTO)); $entries[] = $entry; } return $entries; }