예제 #1
0
    /**

     * get task list

     *

     * @param string $userId

     * @return $result will return an object

     */

    public function taskList ($userId)

    {

        try {

            g::loadClass( 'groups' );

            $oGroup = new Groups();

            $aGroups = $oGroup->getActiveGroupsForAnUser( $userId );



            $result = array ();

            $oCriteria = new Criteria( 'workflow' );

            $del = DBAdapter::getStringDelimiter();

            $oCriteria->addSelectColumn( TaskPeer::PRO_UID );

            $oCriteria->addSelectColumn( TaskPeer::TAS_UID );

            $oCriteria->addSelectColumn( TaskPeer::TAS_START );

            $oCriteria->setDistinct();

            $oCriteria->addAsColumn( 'TAS_TITLE', 'C1.CON_VALUE' );

            $oCriteria->addAlias( "C1", 'CONTENT' );

            $tasTitleConds = array ();

            $tasTitleConds[] = array (TaskPeer::TAS_UID,'C1.CON_ID'

            );

            $tasTitleConds[] = array ('C1.CON_CATEGORY',$del . 'TAS_TITLE' . $del

            );

            $tasTitleConds[] = array ('C1.CON_LANG',$del . SYS_LANG . $del

            );

            $oCriteria->addJoinMC( $tasTitleConds, Criteria::LEFT_JOIN );



            $oCriteria->addJoin( TaskPeer::TAS_UID, TaskUserPeer::TAS_UID, Criteria::LEFT_JOIN );

            $oCriteria->addOr( TaskUserPeer::USR_UID, $userId );

            $oCriteria->addOr( TaskUserPeer::USR_UID, $aGroups, Criteria::IN );



            $oDataset = TaskPeer::doSelectRS( $oCriteria );

            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

            $oDataset->next();



            while ($aRow = $oDataset->getRow()) {

                $result[] = array ('guid' => $aRow['TAS_UID'],

                                   'name' => $aRow['TAS_TITLE'],

                                   'processId' => $aRow['PRO_UID'],

                                   'initialTask' => $aRow['TAS_START'] == 'TRUE' ? '1' : '0');

                $oDataset->next();

            }



            return $result;

        } catch (Exception $e) {

            $result[] = array ('guid' => $e->getMessage(),'name' => $e->getMessage()

            );



            return $result;

        }

    }