function GetAppParentIndex ($aData)

    {

        //('SELECT * FROM APP_THREAD WHERE APP_UID='".$aData['APP_UID']."' AND DEL_INDEX = '".$aData['DEL_INDEX']."'");

        try {

            $aThreads = array ();

            $c = new Criteria();

            $c->addSelectColumn( AppThreadPeer::APP_THREAD_PARENT );

            $c->add( AppThreadPeer::APP_UID, $aData['APP_UID'] );

            $c->add( AppThreadPeer::DEL_INDEX, $aData['DEL_INDEX'] );

            $rs = AppThreadPeer::doSelectRs( $c );

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

            $rs->next();

            $row = $rs->getRow();

            while (is_array( $row )) {

                $aThreads = $row;

                $rs->next();

                $row = $rs->getRow();

            }

            return $aThreads;

        } catch (exception $e) {

            throw ($e);

        }

    }
    public function cancelCase($sApplicationUID, $iIndex, $user_logged)

    {

        $this->getExecuteTriggerProcess($sApplicationUID, 'CANCELED');



        $oApplication = new Application();

        $aFields = $oApplication->load($sApplicationUID);

        $appStatusCurrent = $aFields['APP_STATUS'];

        $oCriteria = new Criteria('workflow');

        $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);

        $oCriteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);

        if (AppDelegationPeer::doCount($oCriteria) == 1) {

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

            $oApplication->update($aFields);



            G::LoadClass('reportTables');

            require_once 'classes/model/AdditionalTables.php';

            $oReportTables = new ReportTables();

            $addtionalTables = new additionalTables();

            $oReportTables->updateTables($aFields['PRO_UID'], $aFields['APP_UID'], $aFields['APP_NUMBER'], $aFields['APP_DATA']);

            $addtionalTables->updateReportTables($aFields['PRO_UID'], $aFields['APP_UID'], $aFields['APP_NUMBER'], $aFields['APP_DATA'], $aFields['APP_STATUS']);

        }

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

        $oAppDel = new AppDelegation();

        $oAppDel->Load($sApplicationUID, $iIndex);

        $aAppDel = $oAppDel->toArray(BasePeer::TYPE_FIELDNAME);

        $this->closeAppThread($sApplicationUID, $aAppDel['DEL_THREAD']);



        $delay = new AppDelay();

        $array['PRO_UID'] = $aFields['PRO_UID'];

        $array['APP_UID'] = $sApplicationUID;



        $c = new Criteria('workflow');

        $c->clearSelectColumns();

        $c->addSelectColumn(AppThreadPeer::APP_THREAD_INDEX);

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

        $c->add(AppThreadPeer::DEL_INDEX, $iIndex);

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

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

        $oDataset->next();

        $aRow = $oDataset->getRow();

        $array['APP_THREAD_INDEX'] = $aRow['APP_THREAD_INDEX'];

        $array['APP_DEL_INDEX'] = $iIndex;

        $array['APP_TYPE'] = 'CANCEL';



        $c = new Criteria('workflow');

        $c->clearSelectColumns();

        $c->addSelectColumn(ApplicationPeer::APP_STATUS);

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

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

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

        $oDataset->next();

        $aRow1 = $oDataset->getRow();

        $array['APP_STATUS'] = $aRow1['APP_STATUS'];



        $array['APP_DELEGATION_USER'] = $user_logged;

        $array['APP_ENABLE_ACTION_USER'] = $user_logged;

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

        $delay->create($array);



        //Before cancel a case verify if is a child case

        $oCriteria2 = new Criteria('workflow');

        $oCriteria2->add(SubApplicationPeer::APP_UID, $sApplicationUID);

        $oCriteria2->add(SubApplicationPeer::SA_STATUS, 'ACTIVE');

        if (SubApplicationPeer::doCount($oCriteria2) > 0) {

            G::LoadClass('derivation');

            $oDerivation = new Derivation();

            $oDerivation->verifyIsCaseChild($sApplicationUID, $iIndex);

        }



        //update searchindex

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

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

        }

        /*----------------------------------********---------------------------------*/

    }
 /**
  * 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 = AppThreadPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setAppUid($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setAppThreadIndex($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setAppThreadParent($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setAppThreadStatus($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setDelIndex($arr[$keys[4]]);
     }
 }
 public function getActionOptions()
 {
     $APP_UID = $_SESSION['APPLICATION'];
     $c = new Criteria('workflow');
     $c->clearSelectColumns();
     $c->addSelectColumn(AppThreadPeer::APP_THREAD_PARENT);
     $c->add(AppThreadPeer::APP_UID, $APP_UID);
     $c->add(AppThreadPeer::APP_THREAD_STATUS, 'OPEN');
     $cant = AppThreadPeer::doCount($c);
     $oCase = new Cases();
     $aFields = $oCase->loadCase($_SESSION['APPLICATION'], $_SESSION['INDEX']);
     global $RBAC;
     $options = array();
     switch ($aFields['APP_STATUS']) {
         case 'DRAFT':
             if (!AppDelay::isPaused($_SESSION['APPLICATION'], $_SESSION['INDEX'])) {
                 $options[] = array('text' => G::LoadTranslation('ID_PAUSED_CASE'), 'fn' => 'setUnpauseCaseDate');
             } else {
                 $options[] = array('text' => G::LoadTranslation('ID_UNPAUSE'), 'fn' => 'unpauseCase');
             }
             $options[] = array('text' => G::LoadTranslation('ID_DELETE'), 'fn' => 'deleteCase');
             if ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1) {
                 $options[] = array('text' => G::LoadTranslation('ID_REASSIGN'), 'fn' => 'getUsersToReassign');
             }
             break;
         case 'TO_DO':
             if (!AppDelay::isPaused($_SESSION['APPLICATION'], $_SESSION['INDEX'])) {
                 $options[] = array('text' => G::LoadTranslation('ID_PAUSED_CASE'), 'fn' => 'setUnpauseCaseDate');
                 if ($cant == 1) {
                     if ($RBAC->userCanAccess('PM_CANCELCASE') == 1) {
                         $options[] = array('text' => G::LoadTranslation('ID_CANCEL'), 'fn' => 'cancelCase');
                     } else {
                         $options[] = array('text' => G::LoadTranslation('ID_CANCEL'), 'fn' => 'cancelCase', 'hide' => 'hiden');
                     }
                 }
             } else {
                 $options[] = array('text' => G::LoadTranslation('ID_UNPAUSE'), 'fn' => 'unpauseCase');
             }
             if ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1) {
                 $options[] = array('text' => G::LoadTranslation('ID_REASSIGN'), 'fn' => 'getUsersToReassign');
             }
             break;
         case 'CANCELLED':
             $options[] = array('text' => G::LoadTranslation('ID_REACTIVATE'), 'fn' => 'reactivateCase');
             break;
     }
     if ($_SESSION['TASK'] != '-1') {
         $oTask = new Task();
         $aTask = $oTask->load($_SESSION['TASK']);
         if ($aTask['TAS_TYPE'] == 'ADHOC') {
             $options[] = array('text' => G::LoadTranslation('ID_ADHOC_ASSIGNMENT'), 'fn' => 'adhocAssignmentUsers');
         }
     }
     return $options;
 }
 /**
  * Retrieve object using using composite pkey values.
  * @param string $app_uid
  * @param int $app_thread_index
  * @param      Connection $con
  * @return     AppThread
  */
 public static function retrieveByPK($app_uid, $app_thread_index, $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(self::DATABASE_NAME);
     }
     $criteria = new Criteria();
     $criteria->add(AppThreadPeer::APP_UID, $app_uid);
     $criteria->add(AppThreadPeer::APP_THREAD_INDEX, $app_thread_index);
     $v = AppThreadPeer::doSelect($criteria, $con);
     return !empty($v) ? $v[0] : null;
 }
Exemple #6
0
 public function update($aData)
 {
     $con = Propel::getConnection(AppThreadPeer::DATABASE_NAME);
     try {
         $con->begin();
         $oApp = AppThreadPeer::retrieveByPK($aData['APP_UID'], $aData['APP_THREAD_INDEX']);
         if (is_object($oApp) && get_class($oApp) == 'AppThread') {
             $oApp->fromArray($aData, BasePeer::TYPE_FIELDNAME);
             if ($oApp->validate()) {
                 $res = $oApp->save();
                 $con->commit();
                 return $res;
             } else {
                 $msg = '';
                 foreach ($this->getValidationFailures() as $objValidationFailure) {
                     $msg .= $objValidationFailure->getMessage() . "<br/>";
                 }
                 throw new PropelException('The AppThread row cannot be created!', new PropelException($msg));
             }
         } else {
             $con->rollback();
             throw new Exception("This AppThread row doesn't exist!");
         }
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Exemple #7
0
 /**
  * Implementation for 'DELETE' method for Rest API
  *
  * @param  mixed $appUid, $appThreadIndex 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 delete($appUid, $appThreadIndex)
 {
     $conn = Propel::getConnection(AppThreadPeer::DATABASE_NAME);
     try {
         $conn->begin();
         $obj = AppThreadPeer::retrieveByPK($appUid, $appThreadIndex);
         if (!is_object($obj)) {
             throw new RestException(412, 'Record does not exist.');
         }
         $obj->delete();
         $conn->commit();
     } catch (Exception $e) {
         $conn->rollback();
         throw new RestException(412, $e->getMessage());
     }
 }
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 *
 */
require_once 'classes/model/AppThread.php';
require_once 'classes/model/AppDelay.php';
G::LoadClass('tree');
G::LoadClass('case');
$APP_UID = $_SESSION['APPLICATION'];
$c = new Criteria('workflow');
$c->clearSelectColumns();
$c->addSelectColumn(AppThreadPeer::APP_THREAD_PARENT);
$c->add(AppThreadPeer::APP_UID, $APP_UID);
$c->add(AppThreadPeer::APP_THREAD_STATUS, 'OPEN');
$cant = AppThreadPeer::doCount($c);
$oTree = new Tree();
$oTree->nodeType = "blank";
$oTree->name = 'Actions';
$oTree->showSign = false;
$oCase = new Cases();
$aFields = $oCase->loadCase($_SESSION['APPLICATION'], $_SESSION['INDEX']);
$oCriteria = new Criteria('workflow');
$oCriteria->add(AppDelayPeer::APP_UID, $_SESSION['APPLICATION']);
$oCriteria->add(AppDelayPeer::APP_DEL_INDEX, $_SESSION['INDEX']);
$oCriteria->add(AppDelayPeer::APP_TYPE, 'PAUSE');
$oCriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, null);
$oDataset = AppDelayPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();