Esempio n. 1
0
 /**
  * Implementation for 'GET' method for Rest API
  *
  * @param  mixed $appDelayUid Primary key
  *
  * @return array $result Returns array within multiple records or a single record depending if
  *                       a single selection was requested passing id(s) as param
  */
 protected function get($appDelayUid = null)
 {
     $result = array();
     try {
         $noArguments = true;
         $argumentList = func_get_args();
         foreach ($argumentList as $arg) {
             if (!is_null($arg)) {
                 $noArguments = false;
             }
         }
         if ($noArguments) {
             $criteria = new Criteria('workflow');
             $criteria->addSelectColumn(AppDelayPeer::APP_DELAY_UID);
             $criteria->addSelectColumn(AppDelayPeer::PRO_UID);
             $criteria->addSelectColumn(AppDelayPeer::APP_UID);
             $criteria->addSelectColumn(AppDelayPeer::APP_THREAD_INDEX);
             $criteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);
             $criteria->addSelectColumn(AppDelayPeer::APP_TYPE);
             $criteria->addSelectColumn(AppDelayPeer::APP_STATUS);
             $criteria->addSelectColumn(AppDelayPeer::APP_NEXT_TASK);
             $criteria->addSelectColumn(AppDelayPeer::APP_DELEGATION_USER);
             $criteria->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_USER);
             $criteria->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_DATE);
             $criteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_USER);
             $criteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_DATE);
             $criteria->addSelectColumn(AppDelayPeer::APP_AUTOMATIC_DISABLED_DATE);
             $dataset = AppEventPeer::doSelectRS($criteria);
             $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
             while ($dataset->next()) {
                 $result[] = $dataset->getRow();
             }
         } else {
             $record = AppDelayPeer::retrieveByPK($appDelayUid);
             if ($record) {
                 $result = $record->toArray(BasePeer::TYPE_FIELDNAME);
             } else {
                 $paramValues = "";
                 foreach ($argumentList as $arg) {
                     $paramValues .= strlen($paramValues) ? ', ' : '';
                     if (!is_null($arg)) {
                         $paramValues .= "{$arg}";
                     } else {
                         $paramValues .= "NULL";
                     }
                 }
                 throw new RestException(417, "table AppDelay ({$paramValues})");
             }
         }
     } catch (RestException $e) {
         throw new RestException($e->getCode(), $e->getMessage());
     } catch (Exception $e) {
         throw new RestException(412, $e->getMessage());
     }
     return $result;
 }
Esempio n. 2
0
    /**

     * execute Trigger, executes a ProcessMaker trigger.

     * Note that triggers which are tied to case derivation

     * will executing automatically.

     *

     * @param string $userId

     * @param string $caseId

     * @param string $delIndex

     * @return $result will return an object

     */

    public function executeTrigger ($userId, $caseId, $triggerIndex, $delIndex)

    {

        $g = new G();



        try {

            $g->sessionVarSave();



            $_SESSION["APPLICATION"] = $caseId;

            $_SESSION["INDEX"] = $delIndex;

            $_SESSION["USER_LOGGED"] = $userId;



            $oAppDel = new AppDelegation();

            $appdel = $oAppDel->Load( $caseId, $delIndex );



            if ($userId != $appdel['USR_UID']) {

                $result = new wsResponse( 17, G::loadTranslation( 'ID_CASE_ASSIGNED_ANOTHER_USER' ) );



                $g->sessionVarRestore();



                return $result;

            }



            if ($appdel['DEL_FINISH_DATE'] != null) {

                $result = new wsResponse( 18, G::loadTranslation( 'ID_CASE_DELEGATION_ALREADY_CLOSED' ) );



                $g->sessionVarRestore();



                return $result;

            }



            $oCriteria = new Criteria( 'workflow' );

            $oCriteria->addSelectColumn( AppDelayPeer::APP_UID );

            $oCriteria->addSelectColumn( AppDelayPeer::APP_DEL_INDEX );

            $oCriteria->addSelectColumn( AppDelayPeer::APP_DISABLE_ACTION_USER );

            $oCriteria->addSelectColumn( AppDelayPeer::APP_DISABLE_ACTION_DATE );

            $oCriteria->add( AppDelayPeer::APP_TYPE, '' );

            $oCriteria->add( $oCriteria->getNewCriterion( AppDelayPeer::APP_TYPE, 'PAUSE' )->addOr( $oCriteria->getNewCriterion( AppDelayPeer::APP_TYPE, 'CANCEL' ) ) );

            $oCriteria->addAscendingOrderByColumn( AppDelayPeer::APP_ENABLE_ACTION_DATE );

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

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

            $oDataset->next();

            $aRow = $oDataset->getRow();



            if (is_array( $aRow )) {

                if ($aRow['APP_DISABLE_ACTION_USER'] != 0 && $aRow['APP_DISABLE_ACTION_DATE'] != '') {

                    $result = new wsResponse( 19, G::loadTranslation( 'ID_CASE_IN_STATUS' ) . " " . $aRow['APP_TYPE'] );



                    $g->sessionVarRestore();



                    return $result;

                }

            }



            //Load data

            $oCase = new Cases();

            $appFields = $oCase->loadCase( $caseId );



            $appFields["APP_DATA"]["APPLICATION"] = $caseId;



            if (! isset( $_SESSION["PROCESS"] )) {

                $_SESSION["PROCESS"] = $appFields["PRO_UID"];

            }



            //executeTrigger

            $aTriggers = array ();

            $c = new Criteria();

            $c->add( TriggersPeer::TRI_UID, $triggerIndex );

            $rs = TriggersPeer::doSelectRS( $c );

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

            $rs->next();

            $row = $rs->getRow();



            if (is_array( $row ) && $row['TRI_TYPE'] == 'SCRIPT') {

                $aTriggers[] = $row;



                $oPMScript = new PMScript();

                $oPMScript->setFields( $appFields['APP_DATA'] );

                $oPMScript->setScript( $row['TRI_WEBBOT'] );

                $oPMScript->execute();



                if (isset($oPMScript->aFields["__ERROR__"]) && trim($oPMScript->aFields["__ERROR__"]) != "" && $oPMScript->aFields["__ERROR__"] != "none") {

                    throw new Exception($oPMScript->aFields["__ERROR__"]);

                }



                //Save data - Start

                $appFields['APP_DATA'] = $oPMScript->aFields;

                unset($appFields['APP_STATUS']);

                unset($appFields['APP_PROC_STATUS']);

                unset($appFields['APP_PROC_CODE']);

                unset($appFields['APP_PIN']);

                //$appFields = $oCase->loadCase($caseId);

                $oCase->updateCase( $caseId, $appFields );

                //Save data - End

            } else {

                $data['TRIGGER_INDEX'] = $triggerIndex;

                $result = new wsResponse( 100, G::loadTranslation( 'ID_INVALID_TRIGGER', SYS_LANG, $data ) );



                $g->sessionVarRestore();



                return $result;

            }



            $result = new wsResponse( 0, G::loadTranslation( 'ID_EXECUTED' ) . ": " . trim( $row['TRI_WEBBOT'] ) );

            //$result = new wsResponse(0, 'executed: ' . print_r($oPMScript, 1));



            $g->sessionVarRestore();



            return $result;

        } catch (Exception $e) {

            $result = new wsResponse( 100, $e->getMessage() );



            $g->sessionVarRestore();



            return $result;

        }

    }
Esempio n. 3
0
 $criteria = new Criteria('workflow');
 $criteria->addSelectColumn(AppDelegationPeer::APP_UID);
 $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
 $criteria->addSelectColumn(AppDelegationPeer::TAS_UID);
 $criteria->add(AppDelegationPeer::TAS_UID, $oData->task_uid);
 $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN');
 $casesNumRec = AppDelegationPeer::doCount($criteria);
 if ($casesNumRec == 0) {
     require_once 'classes/model/AppDelay.php';
     $criteria = new Criteria('workflow');
     $criteria->addSelectColumn(AppDelayPeer::APP_UID);
     $criteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);
     $criteria->add(AppDelayPeer::PRO_UID, $oData->pro_uid);
     $criteria->add(AppDelayPeer::APP_TYPE, 'PAUSE');
     $criteria->add(AppDelayPeer::APP_DISABLE_ACTION_DATE, null, Criteria::ISNULL);
     $dataset = AppDelayPeer::doSelectRS($criteria);
     if ($dataset->getRecordCount() > 0) {
         $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $dataset->next();
         while ($row = $dataset->getRow()) {
             $criteria = new Criteria('workflow');
             $criteria->addSelectColumn(AppDelegationPeer::TAS_UID);
             $criteria->add(AppDelegationPeer::APP_UID, $row['APP_UID']);
             $criteria->add(AppDelegationPeer::DEL_INDEX, $row['APP_DEL_INDEX']);
             $criteria->add(AppDelegationPeer::TAS_UID, $oData->task_uid);
             $casesNumRec += AppDelegationPeer::doCount($criteria);
             $dataset->next();
         }
     }
 }
 $response = new stdclass();
Esempio n. 4
0
 public function isPaused($appUid, $delIndex)
 {
     $oCriteria = new Criteria('workflow');
     $oCriteria->add(AppDelayPeer::APP_UID, $appUid);
     $oCriteria->add(AppDelayPeer::APP_DEL_INDEX, $delIndex);
     $oCriteria->add(AppDelayPeer::APP_TYPE, 'PAUSE');
     $oCriteria->add($oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0, Criteria::EQUAL)->addOr($oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL)));
     $oDataset = AppDelayPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $aRow = $oDataset->getRow();
     if ($aRow) {
         return true;
     } else {
         return false;
     }
 }
Esempio n. 5
0
    public function reactivateCase($sApplicationUID, $iIndex, $user_logged)

    {

        $oApplication = new Application();

        $aFields = $oApplication->load(

                (isset($_POST['sApplicationUID']) ? $_POST['sApplicationUID'] : $_SESSION['APPLICATION'])

        );

        $aFields['APP_STATUS'] = 'TO_DO';

        $oApplication->update($aFields);

        $this->ReactivateCurrentDelegation($sApplicationUID, $iIndex);

        $c = new Criteria('workflow');

        $c->clearSelectColumns();

        $c->addSelectColumn(AppDelayPeer::APP_DELAY_UID);



        $c->add(AppDelayPeer::APP_UID, $sApplicationUID);

        $c->add(AppDelayPeer::PRO_UID, $aFields['PRO_UID']);

        $c->add(AppDelayPeer::APP_DEL_INDEX, $iIndex);

        $c->add(AppDelayPeer::APP_TYPE, 'CANCEL');

        $c->add(AppDelayPeer::APP_DISABLE_ACTION_USER, 0);

        $c->add(AppDelayPeer::APP_DISABLE_ACTION_DATE, null, Criteria::ISNULL);



        $oDataset = AppDelayPeer::doSelectRS($c);

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

        $oDataset->next();

        $aRow = $oDataset->getRow();

        //var_dump($aRow);

        $aFields = array();

        $aFields['APP_DELAY_UID'] = $aRow['APP_DELAY_UID'];

        $aFields['APP_DISABLE_ACTION_USER'] = $user_logged;

        $aFields['APP_DISABLE_ACTION_DATE'] = date('Y-m-d H:i:s');



        $delay = new AppDelay();

        $delay->update($aFields);

        //$this->ReactivateCurrentDelegation($sApplicationUID);

        $con = Propel::getConnection('workflow');

        $sql = "UPDATE APP_THREAD SET APP_THREAD_STATUS = 'OPEN' WHERE APP_UID =  '$sApplicationUID' " .

                " AND DEL_INDEX  ='$iIndex' ";

        $stmt = $con->createStatement();

        $rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);



        //update searchindex

        if ($this->appSolr != null) {

            $this->appSolr->updateApplicationSearchIndex($sApplicationUID);

        }

    }
Esempio n. 6
0
    /**

     * Migrate all cases to New list

     *

     * return all LIST TABLES with data

     */

    public function migrateList ($workSpace)

    {

        if ($this->listFirstExecution('check')) {

            return 1;

        }

        $this->initPropel(true);

        $appCache = new AppCacheView();

        $users    = new Users();

        G::LoadClass("case");

        $case = new Cases();



        //Select data CANCELLED

        $canCriteria = $appCache->getSelAllColumns();

        $canCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::EQUAL);

        $canCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL);

        $rsCriteria = AppCacheViewPeer::doSelectRS($canCriteria);

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

        //Insert data LIST_CANCELED

        while ($rsCriteria->next()) {

              $row = $rsCriteria->getRow();

              $listCanceled = new ListCanceled();

              $listCanceled->remove($row["APP_UID"]);

              $listCanceled->setDeleted(false);

              $listCanceled->create($row);

        }

        CLI::logging("> Completed table LIST_CANCELED\n");



        //Select data COMPLETED

        $comCriteria = $appCache->getSelAllColumns();

        $comCriteria->add(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::EQUAL);

        $comCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL);

        $rsCriteria = AppCacheViewPeer::doSelectRS($comCriteria);

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

        //Insert new data LIST_COMPLETED

        while ($rsCriteria->next()) {

              $row = $rsCriteria->getRow();

              $listCompleted = new ListCompleted();

              $listCompleted->remove($row["APP_UID"]);

              $listCompleted->setDeleted(false);

              $listCompleted->create($row);

        }

        CLI::logging("> Completed table LIST_COMPLETED\n");



        //Select data TO_DO OR DRAFT

        $inbCriteria = $appCache->getSelAllColumns();

        $rsCriteria = AppCacheViewPeer::doSelectRS($inbCriteria);

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



        $criteriaUser = new Criteria();

        $criteriaUser->addSelectColumn( UsersPeer::USR_UID );

        $criteriaUser->addSelectColumn( UsersPeer::USR_FIRSTNAME );

        $criteriaUser->addSelectColumn( UsersPeer::USR_LASTNAME );

        $criteriaUser->addSelectColumn( UsersPeer::USR_USERNAME );

        //Insert new data LIST_INBOX

        while ($rsCriteria->next()) {

            $row = $rsCriteria->getRow();

            $isSelfService = ($row['USR_UID'] == '') ? true : false;

            if($row["DEL_THREAD_STATUS"] == 'OPEN'){

                //Update information about the previous_user

                $row["DEL_PREVIOUS_USR_UID"] = $row["PREVIOUS_USR_UID"];

                $criteriaUser->add( UsersPeer::USR_UID, $row["PREVIOUS_USR_UID"] );

                $datasetU = UsersPeer::doSelectRS($criteriaUser);

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

                $datasetU->next();

                $arrayUsers = $datasetU->getRow();

                $row["DEL_PREVIOUS_USR_USERNAME"] = $arrayUsers["USR_USERNAME"];

                $row["DEL_PREVIOUS_USR_FIRSTNAME"]= $arrayUsers["USR_FIRSTNAME"];

                $row["DEL_PREVIOUS_USR_LASTNAME"] = $arrayUsers["USR_LASTNAME"];

                //Update the due date

                $row["DEL_DUE_DATE"]         = $row["DEL_TASK_DUE_DATE"];

                $listInbox = new ListInbox();

                $listInbox->remove($row["APP_UID"],$row["DEL_INDEX"]);

                $listInbox->setDeleted(false);

                $listInbox->create($row, $isSelfService);

            } else {

                // create participated List when the thread is CLOSED

                $listParticipatedHistory = new ListParticipatedHistory();

                $listParticipatedHistory->remove($row['APP_UID'], $row['DEL_INDEX']);

                $listParticipatedHistory = new ListParticipatedHistory();

                $listParticipatedHistory->create($row);



                $oCriteria = new Criteria('workflow');

                $oCriteria->add(ListParticipatedLastPeer::APP_UID, $row['APP_UID']);

                $oCriteria->add(ListParticipatedLastPeer::USR_UID, $row['USR_UID']);

                ListParticipatedLastPeer::doDelete($oCriteria);



                $listParticipatedLast = new ListParticipatedLast();

                $listParticipatedLast->create($row);

                $listParticipatedLast = new ListParticipatedLast();

                $listParticipatedLast->refresh($row);

            }



        }



        CLI::logging("> Completed table LIST_INBOX\n");

        //With this List is populated the LIST_PARTICIPATED_HISTORY and LIST_PARTICIPATED_LAST

        CLI::logging("> Completed table LIST_PARTICIPATED_HISTORY\n");

        CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n");



        //Select data TO_DO OR DRAFT CASES CREATED BY AN USER

        $myiCriteria = $appCache->getSelAllColumns();

        $myiCriteria->add(AppCacheViewPeer::DEL_INDEX, "1", CRITERIA::EQUAL);

        $rsCriteria = AppCacheViewPeer::doSelectRS($myiCriteria);

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

        //Insert new data LIST_MY_INBOX

        while ($rsCriteria->next()) {

              $row = $rsCriteria->getRow();

              $listMyInbox = new ListMyInbox();

              $listMyInbox ->remove($row["APP_UID"],$row["USR_UID"]);

              $listMyInbox->setDeleted(false);

              $listMyInbox->create($row);

        }

        CLI::logging("> Completed table LIST_MY_INBOX\n");



        //Select data PAUSED

        $delaycriteria = new Criteria("workflow");

        $delaycriteria->addSelectColumn(AppDelayPeer::APP_UID);

        $delaycriteria->addSelectColumn(AppDelayPeer::PRO_UID);

        $delaycriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);

        $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER);

        $delaycriteria->addSelectColumn(AppCacheViewPeer::USR_UID);

        $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_STATUS);

        $delaycriteria->addSelectColumn(AppCacheViewPeer::TAS_UID);



        $delaycriteria->addJoin( AppCacheViewPeer::APP_UID, AppDelayPeer::APP_UID . ' AND ' . AppCacheViewPeer::DEL_INDEX . ' = ' . AppDelayPeer::APP_DEL_INDEX, Criteria::INNER_JOIN );

        $delaycriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, "0", CRITERIA::EQUAL);

        $delaycriteria->add(AppDelayPeer::APP_TYPE, "PAUSE", CRITERIA::EQUAL);

        $rsCriteria = AppDelayPeer::doSelectRS($delaycriteria);

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

        //Insert new data LIST_PAUSED

        while ($rsCriteria->next()) {

              $row = $rsCriteria->getRow();

              $data = $row;

              $data["DEL_INDEX"] = $row["APP_DEL_INDEX"];

              $listPaused = new ListPaused();

              $listPaused ->remove($row["APP_UID"],$row["APP_DEL_INDEX"],$data);

              $listPaused->setDeleted(false);

              $listPaused->create($data);

        }

        CLI::logging("> Completed table LIST_PAUSED\n");



        //Select and Insert LIST_UNASSIGNED

        $unaCriteria = $appCache->getSelAllColumns();

        $unaCriteria->add(AppCacheViewPeer::USR_UID, "", CRITERIA::EQUAL);

        $rsCriteria = AppCacheViewPeer::doSelectRS($unaCriteria);

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

        $del = new ListUnassignedPeer();

        $del->doDeleteAll();

        $del = new ListUnassignedGroupPeer();

        $del->doDeleteAll();

        while ($rsCriteria->next()) {

            $row = $rsCriteria->getRow();

            $listUnassigned = new ListUnassigned();

            $unaUid = $listUnassigned->generateData($row["APP_UID"],$row["PREVIOUS_USR_UID"]);

        }

        CLI::logging("> Completed table LIST_UNASSIGNED\n");

        CLI::logging("> Completed table LIST_UNASSIGNED_GROUP\n");



        // ADD LISTS COUNTS

        $aTypes = array(

            'to_do',

            'draft',

            'cancelled',

            'sent',

            'paused',

            'completed',

            'selfservice'

        );



        $users = new Users();

        $criteria = new Criteria();

        $criteria->addSelectColumn(UsersPeer::USR_UID);

        $dataset = UsersPeer::doSelectRS($criteria);

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

        while($dataset->next()) {

            $aRow = $dataset->getRow();

            $oAppCache = new AppCacheView();

            $aCount = $oAppCache->getAllCounters( $aTypes, $aRow['USR_UID'] );

            $newData = array(

                'USR_UID'                   => $aRow['USR_UID'],

                'USR_TOTAL_INBOX'           => $aCount['to_do'],

                'USR_TOTAL_DRAFT'           => $aCount['draft'],

                'USR_TOTAL_CANCELLED'       => $aCount['cancelled'],

                'USR_TOTAL_PARTICIPATED'    => $aCount['sent'],

                'USR_TOTAL_PAUSED'          => $aCount['paused'],

                'USR_TOTAL_COMPLETED'       => $aCount['completed'],

                'USR_TOTAL_UNASSIGNED'      => $aCount['selfservice']

            );

            $users->update($newData);

        }

        $this->listFirstExecution('insert');

        return true;

    }
Esempio n. 7
0
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      Connection $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(self::DATABASE_NAME);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria();
         $criteria->add(AppDelayPeer::APP_DELAY_UID, $pks, Criteria::IN);
         $objs = AppDelayPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
Esempio n. 8
0
 $Fields['CANT_DELEGATIONS'] = count($delegations);
 $Fields['DELEGATIONS'] = $delegations;
 require_once 'classes/model/AppDelay.php';
 $oCriteria = new Criteria('workflow');
 $oCriteria->addSelectColumn(AppDelayPeer::APP_THREAD_INDEX);
 $oCriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);
 $oCriteria->addSelectColumn(AppDelayPeer::APP_TYPE);
 $oCriteria->addSelectColumn(AppDelayPeer::APP_STATUS);
 $oCriteria->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_USER);
 $oCriteria->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_DATE);
 $oCriteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_USER);
 $oCriteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_DATE);
 $oCriteria->add(AppDelayPeer::APP_UID, $appUid);
 $oCriteria->addAscendingOrderByColumn(AppDelayPeer::APP_TYPE);
 $oCriteria->addAscendingOrderByColumn(AppDelayPeer::APP_ENABLE_ACTION_DATE);
 $oDataset = AppDelayPeer::doSelectRS($oCriteria);
 $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
 $oDataset->next();
 $aDelays = array();
 while ($aRow = $oDataset->getRow()) {
     $aDelays[] = $aRow;
     $oDataset->next();
 }
 $Fields['DELAYS'] = $aDelays;
 $Fields['CANT_DELAYS'] = count($aDelays);
 require_once 'classes/model/SubApplication.php';
 $oCriteria = new Criteria('workflow');
 $oCriteria->addSelectColumn(SubApplicationPeer::APP_UID);
 $oCriteria->addSelectColumn(SubApplicationPeer::APP_PARENT);
 $oCriteria->addSelectColumn(SubApplicationPeer::DEL_INDEX_PARENT);
 $oCriteria->addSelectColumn(SubApplicationPeer::DEL_THREAD_PARENT);
Esempio n. 9
0
    /**
     * Get status info Case
     *
     * @param string $applicationUid Unique id of Case
     * @param int    $del_index      {@min 1}
     * @param string $userUid        Unique id of User
     *
     * return array Return an array with status info Case, array empty otherwise
     */
    public function getStatusInfo($applicationUid, $delIndex = 0, $userUid = "")
    {
        try {
            //Verify data
            $this->throwExceptionIfNotExistsCase($applicationUid, $delIndex, $this->getFieldNameByFormatFieldName("APP_UID"));

            //Get data
            //Status is PAUSED
            $delimiter = \DBAdapter::getStringDelimiter();

            $criteria = new \Criteria("workflow");

            $criteria->addSelectColumn($delimiter . "PAUSED" . $delimiter . " AS APP_STATUS");
            $criteria->addSelectColumn(\AppDelayPeer::APP_DEL_INDEX . " AS DEL_INDEX");

            $criteria->add(\AppDelayPeer::APP_UID, $applicationUid, \Criteria::EQUAL);
            $criteria->add(\AppDelayPeer::APP_TYPE, "PAUSE", \Criteria::EQUAL);
            $criteria->add(
                $criteria->getNewCriterion(\AppDelayPeer::APP_DISABLE_ACTION_USER, null, \Criteria::ISNULL)->addOr(
                $criteria->getNewCriterion(\AppDelayPeer::APP_DISABLE_ACTION_USER, 0, \Criteria::EQUAL))
            );

            if ($delIndex != 0) {
                $criteria->add(\AppDelayPeer::APP_DEL_INDEX, $delIndex, \Criteria::EQUAL);
            }

            if ($userUid != "") {
                $criteria->add(\AppDelayPeer::APP_DELEGATION_USER, $userUid, \Criteria::EQUAL);
            }

            $rsCriteria = \AppDelayPeer::doSelectRS($criteria);
            $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

            if ($rsCriteria->next()) {
                $row = $rsCriteria->getRow();

                //Return
                return array("APP_STATUS" => $row["APP_STATUS"], "DEL_INDEX" => $row["DEL_INDEX"]);
            }

            //Status is TO_DO, DRAFT
            $criteria = new \Criteria("workflow");

            $criteria->addSelectColumn(\ApplicationPeer::APP_STATUS);
            $criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX);

            $arrayCondition = array();
            $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppDelegationPeer::APP_UID, \Criteria::EQUAL);
            $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppThreadPeer::APP_UID, \Criteria::EQUAL);
            $arrayCondition[] = array(\ApplicationPeer::APP_UID, $delimiter . $applicationUid . $delimiter, \Criteria::EQUAL);
            $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);

            $criteria->add(
                $criteria->getNewCriterion(\ApplicationPeer::APP_STATUS, "TO_DO", \Criteria::EQUAL)->addAnd(
                $criteria->getNewCriterion(\AppDelegationPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL))->addAnd(
                $criteria->getNewCriterion(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"))->addAnd(
                $criteria->getNewCriterion(\AppThreadPeer::APP_THREAD_STATUS, "OPEN"))
            )->addOr(
                $criteria->getNewCriterion(\ApplicationPeer::APP_STATUS, "DRAFT", \Criteria::EQUAL)->addAnd(
                $criteria->getNewCriterion(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"))->addAnd(
                $criteria->getNewCriterion(\AppThreadPeer::APP_THREAD_STATUS, "OPEN"))
            );

            if ($delIndex != 0) {
                $criteria->add(\AppDelegationPeer::DEL_INDEX, $delIndex, \Criteria::EQUAL);
            }

            if ($userUid != "") {
                $criteria->add(\AppDelegationPeer::USR_UID, $userUid, \Criteria::EQUAL);
            }

            $rsCriteria = \ApplicationPeer::doSelectRS($criteria);
            $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

            if ($rsCriteria->next()) {
                $row = $rsCriteria->getRow();

                //Return
                return array("APP_STATUS" => $row["APP_STATUS"], "DEL_INDEX" => $row["DEL_INDEX"]);
            }

            //Status is CANCELLED, COMPLETED
            $criteria = new \Criteria("workflow");

            $criteria->addSelectColumn(\ApplicationPeer::APP_STATUS);
            $criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX);

            $arrayCondition = array();
            $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppDelegationPeer::APP_UID, \Criteria::EQUAL);
            $arrayCondition[] = array(\ApplicationPeer::APP_UID, $delimiter . $applicationUid . $delimiter, \Criteria::EQUAL);
            $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);

            $criteria->add(\ApplicationPeer::APP_STATUS, array("CANCELLED", "COMPLETED"), \Criteria::IN);
            $criteria->add(\AppDelegationPeer::DEL_LAST_INDEX, 1, \Criteria::EQUAL);

            if ($delIndex != 0) {
                $criteria->add(\AppDelegationPeer::DEL_INDEX, $delIndex, \Criteria::EQUAL);
            }

            if ($userUid != "") {
                $criteria->add(\AppDelegationPeer::USR_UID, $userUid, \Criteria::EQUAL);
            }

            $rsCriteria = \ApplicationPeer::doSelectRS($criteria);
            $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

            if ($rsCriteria->next()) {
                $row = $rsCriteria->getRow();

                //Return
                return array("APP_STATUS" => $row["APP_STATUS"], "DEL_INDEX" => $row["DEL_INDEX"]);
            }

            //Return
            return array();
        } catch (\Exception $e) {
            throw $e;
        }
    }
Esempio n. 10
0
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME,
  * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = AppDelayPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setAppDelayUid($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setProUid($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setAppUid($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setAppThreadIndex($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setAppDelIndex($arr[$keys[4]]);
     }
     if (array_key_exists($keys[5], $arr)) {
         $this->setAppType($arr[$keys[5]]);
     }
     if (array_key_exists($keys[6], $arr)) {
         $this->setAppStatus($arr[$keys[6]]);
     }
     if (array_key_exists($keys[7], $arr)) {
         $this->setAppNextTask($arr[$keys[7]]);
     }
     if (array_key_exists($keys[8], $arr)) {
         $this->setAppDelegationUser($arr[$keys[8]]);
     }
     if (array_key_exists($keys[9], $arr)) {
         $this->setAppEnableActionUser($arr[$keys[9]]);
     }
     if (array_key_exists($keys[10], $arr)) {
         $this->setAppEnableActionDate($arr[$keys[10]]);
     }
     if (array_key_exists($keys[11], $arr)) {
         $this->setAppDisableActionUser($arr[$keys[11]]);
     }
     if (array_key_exists($keys[12], $arr)) {
         $this->setAppDisableActionDate($arr[$keys[12]]);
     }
     if (array_key_exists($keys[13], $arr)) {
         $this->setAppAutomaticDisabledDate($arr[$keys[13]]);
     }
 }