Beispiel #1
0
    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;
    }