Exemplo n.º 1
0
    function getAllUsersFromAnyTask ($sTasUid)

    {

        $users = array ();

        $c = new Criteria( 'workflow' );

        $c->clearSelectColumns();

        $c->addSelectColumn( TaskUserPeer::USR_UID );

        $c->addSelectColumn( TaskUserPeer::TU_RELATION );

        $c->add( TaskUserPeer::TAS_UID, $sTasUid );

        $c->add( TaskUserPeer::TU_TYPE, 1 );

        $rs = TaskUserPeer::DoSelectRs( $c );

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

        $rs->next();

        $row = $rs->getRow();

        while (is_array( $row )) {

            if ($row['TU_RELATION'] == '2') {

                $cGrp = new Criteria( 'workflow' );

                $cGrp->add( GroupwfPeer::GRP_STATUS, 'ACTIVE' );

                $cGrp->add( GroupUserPeer::GRP_UID, $row['USR_UID'] );

                $cGrp->addJoin( GroupUserPeer::GRP_UID, GroupwfPeer::GRP_UID, Criteria::LEFT_JOIN );

                $cGrp->addJoin( GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN );

                $cGrp->add( UsersPeer::USR_STATUS, 'INACTIVE', Criteria::NOT_EQUAL );

                $rsGrp = GroupUserPeer::DoSelectRs( $cGrp );

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

                $rsGrp->next();

                $rowGrp = $rsGrp->getRow();

                while (is_array( $rowGrp )) {

                    $users[$rowGrp['USR_UID']] = $rowGrp['USR_UID'];

                    $rsGrp->next();

                    $rowGrp = $rsGrp->getRow();

                }

            } else {

                //filter to users that is in vacation or has an inactive estatus, and others

                $oUser = UsersPeer::retrieveByPK( $row['USR_UID'] );

                if ($oUser->getUsrStatus() == 'ACTIVE') {

                    $users[$row['USR_UID']] = $row['USR_UID'];

                } else {

                    $userUID = $this->checkReplacedByUser( $oUser );

                    if ($userUID != '') {

                        $users[$userUID] = $userUID;

                    }

                }

            }

            $rs->next();

            $row = $rs->getRow();

        }

        //to do: different types of sort

        sort( $users );



        return $users;

    }
Exemplo n.º 2
0
 function getAllUsersFromAnyTask($sTasUid)
 {
     $users = array();
     $c = new Criteria('workflow');
     $c->clearSelectColumns();
     $c->addSelectColumn(TaskUserPeer::USR_UID);
     $c->addSelectColumn(TaskUserPeer::TU_RELATION);
     $c->add(TaskUserPeer::TAS_UID, $sTasUid);
     $c->add(TaskUserPeer::TU_TYPE, 1);
     $rs = TaskUserPeer::DoSelectRs($c);
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $rs->next();
     $row = $rs->getRow();
     while (is_array($row)) {
         if ($row['TU_RELATION'] == '2') {
             $cGrp = new Criteria('workflow');
             $cGrp->add(GroupwfPeer::GRP_STATUS, 'ACTIVE');
             $cGrp->add(GroupUserPeer::GRP_UID, $row['USR_UID']);
             $cGrp->addJoin(GroupUserPeer::GRP_UID, GroupwfPeer::GRP_UID, Criteria::LEFT_JOIN);
             $cGrp->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
             $cGrp->add(UsersPeer::USR_STATUS, 'ACTIVE');
             $rsGrp = GroupUserPeer::DoSelectRs($cGrp);
             $rsGrp->setFetchmode(ResultSet::FETCHMODE_ASSOC);
             $rsGrp->next();
             $rowGrp = $rsGrp->getRow();
             while (is_array($rowGrp)) {
                 $users[$rowGrp['USR_UID']] = $rowGrp['USR_UID'];
                 $rsGrp->next();
                 $rowGrp = $rsGrp->getRow();
             }
         } else {
             //filter to users that is in vacation or has an inactive estatus, and others
             $oUser = UsersPeer::retrieveByPK($row['USR_UID']);
             if ($oUser->getUsrStatus() == 'ACTIVE') {
                 $users[$row['USR_UID']] = $row['USR_UID'];
             } else {
                 if ($oUser->getUsrStatus() == 'VACATION') {
                     //this a litle hook for this issue,...
                     //TODO if the user in getUsrReplacedBy() is not assignet to the same task,. will have problems,....
                     $UsrReplace = $oUser->getUsrReplacedBy();
                     if (trim($UsrReplace) != '') {
                         //$users[$UsrReplace] = $UsrReplace;
                     }
                 }
             }
         }
         $rs->next();
         $row = $rs->getRow();
     }
     //to do: different types of sort
     sort($users);
     return $users;
 }