Exemplo n.º 1
0
 case 'saveTriggerCondition':
     $oStepTrigger = new StepTrigger();
     $oStepTrigger->update(array('STEP_UID' => $aData['STEP_UID'], 'TAS_UID' => $_SESSION['TASK'], 'TRI_UID' => $aData['TRI_UID'], 'ST_TYPE' => $aData['ST_TYPE'], 'ST_CONDITION' => $aData['ST_CONDITION']));
     break;
 case 'upTrigger':
     $aData['iPosition'] = (int) $aData['iPosition'];
     $oStepTrigger = new StepTrigger();
     $oStepTrigger->up($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType'], $aData['iPosition']);
     break;
 case 'downTrigger':
     $aData['iPosition'] = (int) $aData['iPosition'];
     $oStepTrigger = new StepTrigger();
     $oStepTrigger->down($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType'], $aData['iPosition']);
     break;
 case 'ofToAssignTrigger':
     $oStepTrigger = new StepTrigger();
     $oStepTrigger->reOrder($aData['sStep'], $_SESSION['TASK'], $aData['sType'], $aData['iPosition']);
     $oStepTrigger->remove($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType']);
     break;
 case 'counterTriggers':
     G::LoadClass('processMap');
     $oProcessMap = new ProcessMap();
     $oCriteria1 = $oProcessMap->getStepTriggersCriteria($aData['sStep'], $_SESSION['TASK'], $aData['sType']);
     if ($aData['sType'] == 'BEFORE') {
         $oCriteria2 = $oProcessMap->getStepTriggersCriteria($aData['sStep'], $_SESSION['TASK'], 'AFTER');
     } else {
         $oCriteria2 = $oProcessMap->getStepTriggersCriteria($aData['sStep'], $_SESSION['TASK'], 'BEFORE');
     }
     $iCantity = StepTriggerPeer::doCount($oCriteria1);
     $iTotal = $iCantity + StepTriggerPeer::doCount($oCriteria2);
     echo $iTotal . '|' . $iCantity;
Exemplo n.º 2
0
    /**

     * Create Step Trigger Rows for a Process form an array

     *

     * @param array $aStepTrigger

     * @return void

     */

    public function createStepTriggerRows ($aStepTrigger)

    {

        foreach ($aStepTrigger as $key => $row) {

            $oStepTrigger = new StepTrigger();

            //unset ($row['TAS_UID']);

            if ($oStepTrigger->stepTriggerExists( $row['STEP_UID'], $row['TAS_UID'], $row['TRI_UID'], $row['ST_TYPE'] )) {

                $oStepTrigger->remove( $row['STEP_UID'], $row['TAS_UID'], $row['TRI_UID'], $row['ST_TYPE'] );

            }

            $res = $oStepTrigger->createRow( $row );

        }

        return;

    }
Exemplo n.º 3
0
    /**
     * Get all Triggers of a Step
     *
     * @param string $stepUid Unique id of Step
     * @param string $taskUid Unique id of Task
     *
     * return array Return an array with all Triggers of a Step
     */
    public function getTriggers($stepUid, $taskUid = "")
    {
        try {
            $arrayTrigger = array();

            //Verify data
            if ($stepUid != "") {
                $this->throwExceptionIfNotExistsStep($stepUid);
            }

            if ($stepUid == "") {
                $this->throwExceptionIfNotExistsTask($taskUid);
            }

            //Get data
            $bmTrigger = new \ProcessMaker\BusinessModel\Trigger();
            $bmStepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();

            $stepTrigger = new \StepTrigger();

            if ($stepUid != "") {
                //Load Step
                $step = new \Step();

                $arrayStepData = $step->load($stepUid);

                $taskUid = $arrayStepData["TAS_UID"];
            }

            $arrayTriggerType1 = array(
                "BEFORE" => "BEFORE",
                "AFTER"  => "AFTER"
            );

            $arrayTriggerType2 = array(
                "BEFORE_ASSIGNMENT" => "BEFORE",
                "BEFORE_ROUTING"    => "BEFORE",
                "AFTER_ROUTING"     => "AFTER"
            );

            $arrayTriggerType = ($stepUid != "")? $arrayTriggerType1 : $arrayTriggerType2;

            foreach ($arrayTriggerType as $index => $value) {
                $triggerType = $index;
                $type = $value;

                $flagStepAssignTask = 0;

                switch ($triggerType) {
                    case "BEFORE_ASSIGNMENT":
                        $stepUid = "-1";
                        $flagStepAssignTask = 1;
                        break;
                    case "BEFORE_ROUTING":
                        $stepUid = "-2";
                        $flagStepAssignTask = 1;
                        break;
                    case "AFTER_ROUTING":
                        $stepUid = "-2";
                        $flagStepAssignTask = 1;
                        break;
                }

                $stepTrigger->orderPosition($stepUid, $taskUid, $type);

                //Criteria
                $criteria = $bmTrigger->getTriggerCriteria();

                $criteria->addSelectColumn(\StepTriggerPeer::ST_TYPE);
                $criteria->addSelectColumn(\StepTriggerPeer::ST_CONDITION);
                $criteria->addSelectColumn(\StepTriggerPeer::ST_POSITION);
                $criteria->addJoin(\StepTriggerPeer::TRI_UID, \TriggersPeer::TRI_UID, \Criteria::LEFT_JOIN);
                $criteria->add(\StepTriggerPeer::STEP_UID, $stepUid, \Criteria::EQUAL);
                $criteria->add(\StepTriggerPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
                $criteria->add(\StepTriggerPeer::ST_TYPE, $type, \Criteria::EQUAL);
                $criteria->addAscendingOrderByColumn(\StepTriggerPeer::ST_POSITION);

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

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

                    if ($flagStepAssignTask == 1) {
                        $row["ST_TYPE"] = $triggerType;
                    }

                    $arrayTrigger[] = $bmStepTrigger->getTriggerDataFromRecord($row);
                }
            }

            return $arrayTrigger;
        } catch (\Exception $e) {
            throw $e;
        }
    }
 /**
  * Validates all modified columns of given StepTrigger object.
  * If parameter $columns is either a single column name or an array of column names
  * than only those columns are validated.
  *
  * NOTICE: This does not apply to primary or foreign keys for now.
  *
  * @param      StepTrigger $obj The object to validate.
  * @param      mixed $cols Column name or array of column names.
  *
  * @return     mixed TRUE if all columns are valid or the error message of the first invalid column.
  */
 public static function doValidate(StepTrigger $obj, $cols = null)
 {
     $columns = array();
     if ($cols) {
         $dbMap = Propel::getDatabaseMap(StepTriggerPeer::DATABASE_NAME);
         $tableMap = $dbMap->getTable(StepTriggerPeer::TABLE_NAME);
         if (!is_array($cols)) {
             $cols = array($cols);
         }
         foreach ($cols as $colName) {
             if ($tableMap->containsColumn($colName)) {
                 $get = 'get' . $tableMap->getColumn($colName)->getPhpName();
                 $columns[$colName] = $obj->{$get}();
             }
         }
     } else {
         if ($obj->isNew() || $obj->isColumnModified(StepTriggerPeer::ST_TYPE)) {
             $columns[StepTriggerPeer::ST_TYPE] = $obj->getStType();
         }
     }
     return BasePeer::doValidate(StepTriggerPeer::DATABASE_NAME, StepTriggerPeer::TABLE_NAME, $columns);
 }
Exemplo n.º 5
0
 /**
  * Delete Trigger
  * @var string $sTriggerUID. Uid for Trigger
  *
  * @author Brayan Pereyra (Cochalo) <*****@*****.**>
  * @copyright Colosa - Bolivia
  *
  * @return void
  */
 public function deleteTrigger($sTriggerUID = '')
 {
     $oTrigger = new \Triggers();
     $oTrigger->load($sTriggerUID);
     $res = $oTrigger->verifyDependecies($sTriggerUID);
     $messageEnd = '';
     if ($res->code != 0) {
         foreach ($res->dependencies as $Object => $aDeps) {
             $nDeps = count($aDeps);
             $message = str_replace('{N}', $nDeps, \G::LoadTranslation('ID_TRIGGERS_VALIDATION_ERR2'));
             $message = str_replace('{Object}', $Object, $message);
             $messageEnd .= $message . "\n";
             foreach ($aDeps as $dep) {
                 if (substr($Object, -1) == 's') {
                     $Object = substr($Object, 0, strlen($Object) - 1);
                 }
                 $message = str_replace('{Object}', $Object, \G::LoadTranslation('ID_TRIGGERS_VALIDATION_ERR3'));
                 $message = str_replace('{Description}', '"' . $dep['DESCRIPTION'] . '"', $message);
                 $messageEnd .= $message . "\n";
             }
             $messageEnd .= "\n";
         }
         throw new \Exception($messageEnd);
     }
     $oTrigger->remove($sTriggerUID);
     $oStepTrigger = new \StepTrigger();
     $oStepTrigger->removeTrigger($sTriggerUID);
 }
Exemplo n.º 6
0
 function remove($sStepUID)
 {
     require_once 'classes/model/StepTrigger.php';
     $oStepTriggers = new StepTrigger();
     $oCriteria = new Criteria('workflow');
     $oCriteria->add(StepTriggerPeer::STEP_UID, $sStepUID);
     $oDataset = StepTriggerPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     while ($oDataset->next()) {
         $aRow = $oDataset->getRow();
         $oStepTriggers->remove($aRow['STEP_UID'], $aRow['TAS_UID'], $aRow['TRI_UID'], $aRow['ST_TYPE']);
     }
     /*$con = Propel::getConnection(StepPeer::DATABASE_NAME);
       try
       {
         $con->begin();
         //$this->fromArray($fields,BasePeer::TYPE_FIELDNAME);
         $this->setStepUid($sStepUID);
         $result=$this->delete();
         $con->commit();
         return $result;
       }
       catch(Exception $e)
       {
         $con->rollback();
         throw($e);
       }*/
     $oConnection = Propel::getConnection(StepPeer::DATABASE_NAME);
     try {
         $oStep = StepPeer::retrieveByPK($sStepUID);
         if (!is_null($oStep)) {
             $oConnection->begin();
             $iResult = $oStep->delete();
             $oConnection->commit();
             return $iResult;
         } else {
             throw new Exception('This row doesn\'t exist!');
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
Exemplo n.º 7
0
 /**
  * Update Trigger of a Step
  *
  * @param string $stepUid    Unique id of Step
  * @param string $type       Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING)
  * @param string $taskUid    Unique id of Task
  * @param string $triggerUid Unique id of Trigger
  * @param array  $arrayData  Data
  *
  * return array Data updated of the Trigger assigned to a Step
  */
 public function updateAll($stepUid, $type, $taskUid, $triggerUid, $arrayData)
 {
     try {
         $flagStepAssignTask = 0;
         if ($stepUid == "" || $stepUid == "-1" || $stepUid == "-2") {
             $flagStepAssignTask = 1;
             switch ($type) {
                 case "BEFORE_ASSIGNMENT":
                     $stepUid = "-1";
                     $type = "BEFORE";
                     break;
                 case "BEFORE_ROUTING":
                     $stepUid = "-2";
                     $type = "BEFORE";
                     break;
                 case "AFTER_ROUTING":
                     $stepUid = "-2";
                     $type = "AFTER";
                     break;
             }
         }
         //Verify data
         if ($flagStepAssignTask == 0) {
             $step = new \Step();
             if (!$step->StepExists($stepUid)) {
                 throw new \Exception(\G::LoadTranslation("ID_STEP_DOES_NOT_EXIST", array("step_uid", $stepUid)));
             }
         }
         $trigger = new \Triggers();
         if (!$trigger->TriggerExists($triggerUid)) {
             throw new \Exception(\G::LoadTranslation("ID_TRIGGER_DOES_NOT_EXIST", array("tri_uid", $triggerUid)));
         }
         //Update
         $stepTrigger = new \StepTrigger();
         $arrayUpdateData = array();
         $arrayUpdateData["STEP_UID"] = $stepUid;
         $arrayUpdateData["TAS_UID"] = $taskUid;
         $arrayUpdateData["TRI_UID"] = $triggerUid;
         $arrayUpdateData["ST_TYPE"] = $type;
         if (isset($arrayData["st_condition"])) {
             $arrayUpdateData["ST_CONDITION"] = $arrayData["st_condition"];
         }
         $stepTrigger->update($arrayUpdateData);
         return array_change_key_case($arrayUpdateData, CASE_LOWER);
     } catch (\Exception $e) {
         throw $e;
     }
 }
Exemplo n.º 8
0
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 */
if (($RBAC_Response = $RBAC->userCanAccess("PM_FACTORY")) != 1) {
    return $RBAC_Response;
}
try {
    require_once 'classes/model/Triggers.php';
    $oTrigger = new Triggers();
    $triggerObj = $oTrigger->load($_POST['TRI_UID']);
    $oTrigger->remove($_POST['TRI_UID']);
    require_once 'classes/model/StepTrigger.php';
    $oStepTrigger = new StepTrigger();
    $oStepTrigger->removeTrigger($_POST['TRI_UID']);
    $result->success = true;
    $result->msg = G::LoadTranslation('ID_TRIGGERS_REMOVED');
} catch (Exception $e) {
    $result->success = false;
    $result->msg = $e->getMessage();
}
print G::json_encode($result);
Exemplo n.º 9
0
 case 'subprocessProperties':
     require_once 'classes/model/Content.php';
     $lang = defined('SYS_LANG') ? SYS_LANG : 'en';
     //$cont = Content::addContent( 'SP_TITLE', '', $_POST['form']['SP_UID'], $lang, $_POST['form']['SPROCESS_NAME'] );
     $cont = Content::addContent('TAS_TITLE', '', $_POST['TAS_PARENT'], $lang, $_POST['SPROCESS_NAME']);
     break;
 case 'deleteTriggers':
     try {
         require_once 'classes/model/Triggers.php';
         require_once 'classes/model/StepTrigger.php';
         $TRI_UIDS = explode(',', $_POST['TRI_UID']);
         foreach ($TRI_UIDS as $i => $TRI_UID) {
             $oTrigger = new Triggers();
             $triggerObj = $oTrigger->load($TRI_UID);
             $oTrigger->remove($TRI_UID);
             $oStepTrigger = new StepTrigger();
             $oStepTrigger->removeTrigger($TRI_UID);
         }
         $result->success = true;
         $result->message = G::LoadTranslation('ID_TRIGGERS_REMOVED');
     } catch (Exception $e) {
         $result->success = false;
         $result->message = $e->getMessage();
     }
     print G::json_encode($result);
     break;
 case 'getOutputDocsTemplates':
     require_once 'classes/model/OutputDocument.php';
     $ooutputDocument = new OutputDocument();
     if (isset($_GET['OUT_DOC_UID'])) {
         $rows = $ooutputDocument->load($_GET['OUT_DOC_UID']);