function UpdateTrigger($data, $fields)
 {
     try {
         $Trigger = new Triggers();
         $result = $Trigger->update($fields);
         return $result;
     } catch (Exception $e) {
         return array('Exception!! ' => $e->getMessage());
     }
 }
Beispiel #2
0
 function update($aData)
 {
     $oConnection = Propel::getConnection(EventPeer::DATABASE_NAME);
     try {
         $oEvent = EventPeer::retrieveByPK($aData['EVN_UID']);
         if (!is_null($oEvent)) {
             //$oEvent->setProUid( $aData['PRO_UID'] );
             if (isset($aData['EVN_RELATED_TO'])) {
                 $oEvent->setEvnRelatedTo($aData['EVN_RELATED_TO']);
                 if ($aData['EVN_RELATED_TO'] == 'SINGLE') {
                     if (isset($aData['TAS_UID']) && $aData['TAS_UID'] != '') {
                         $oEvent->setTasUid($aData['TAS_UID']);
                     }
                     $oEvent->setEvnTasUidTo('');
                     $oEvent->setEvnTasUidFrom('');
                 } else {
                     $oEvent->setTasUid('');
                     if (isset($aData['EVN_TAS_UID_TO'])) {
                         $oEvent->setEvnTasUidTo($aData['EVN_TAS_UID_TO']);
                     }
                     if (isset($aData['EVN_TAS_UID_FROM'])) {
                         $oEvent->setEvnTasUidFrom($aData['EVN_TAS_UID_FROM']);
                     }
                 }
             }
             if (isset($aData['EVN_POSX'])) {
                 $oEvent->setEvnPosx($aData['EVN_POSX']);
             }
             if (isset($aData['EVN_POSY'])) {
                 $oEvent->setEvnPosy($aData['EVN_POSY']);
             }
             if (isset($aData['EVN_TAS_ESTIMATED_DURATION'])) {
                 $oEvent->setEvnTasEstimatedDuration($aData['EVN_TAS_ESTIMATED_DURATION']);
             }
             if (isset($aData['EVN_WHEN_OCCURS'])) {
                 $oEvent->setEvnWhenOccurs($aData['EVN_WHEN_OCCURS']);
             }
             if (isset($aData['EVN_STATUS'])) {
                 $oEvent->setEvnStatus($aData['EVN_STATUS']);
             }
             if (isset($aData['EVN_WHEN'])) {
                 $oEvent->setEvnWhen($aData['EVN_WHEN']);
             }
             if (isset($aData['TRI_UID'])) {
                 $oEvent->setTriUid($aData['TRI_UID']);
             }
             if (isset($aData['EVN_TYPE'])) {
                 $oEvent->setEvnType($aData['EVN_TYPE']);
             }
             if (isset($aData['EVN_CONDITIONS'])) {
                 $oEvent->setEvnConditions($aData['EVN_CONDITIONS']);
             }
             if (isset($aData['EVN_ACTION'])) {
                 $oEvent->setEvnAction($aData['EVN_ACTION']);
             }
             //if ( isset ($aData['ENV_MAX_ATTEMPTS'] )) $oEvent->setEvnMaxAttempts( 3 );
             if (isset($aData['EVN_ACTION_PARAMETERS']) && $aData['EVN_ACTION_PARAMETERS'] != 0) {
                 $oTP = new TemplatePower(PATH_TPL . 'events' . PATH_SEP . 'sendMessage.tpl');
                 $oTP->prepare();
                 $oTP->assign('from', '*****@*****.**');
                 $oTP->assign('subject', addslashes($aData['EVN_ACTION_PARAMETERS']['SUBJECT']));
                 $oTP->assign('template', $aData['EVN_ACTION_PARAMETERS']['TEMPLATE']);
                 $oTP->assign('timestamp', date("l jS \\of F Y h:i:s A"));
                 $recipientTO = implode(',', $aData['EVN_ACTION_PARAMETERS']['TO']);
                 $recipientCC = implode(',', $aData['EVN_ACTION_PARAMETERS']['CC']);
                 $recipientBCC = implode(',', $aData['EVN_ACTION_PARAMETERS']['BCC']);
                 $oTP->assign('TO', addslashes($recipientTO));
                 $oTP->assign('CC', addslashes($recipientCC));
                 $oTP->assign('BCC', addslashes($recipientBCC));
                 $sTrigger = $oTP->getOutputContent();
                 $oTrigger = new Triggers();
                 $aTrigger = $oTrigger->load($oEvent->getTriUid());
                 $aTrigger['TRI_WEBBOT'] = $sTrigger;
                 $oTrigger->update($aTrigger);
                 $oParameters = new StdClass();
                 $oParameters->hash = md5($sTrigger);
                 $oParameters->SUBJECT = $aData['EVN_ACTION_PARAMETERS']['SUBJECT'];
                 $oParameters->TO = $aData['EVN_ACTION_PARAMETERS']['TO'];
                 $oParameters->CC = $aData['EVN_ACTION_PARAMETERS']['CC'];
                 $oParameters->BCC = $aData['EVN_ACTION_PARAMETERS']['BCC'];
                 $oParameters->TEMPLATE = $aData['EVN_ACTION_PARAMETERS']['TEMPLATE'];
                 //$oParameters->TRI_UID  = $sTrigger->getTriUid();
                 $oEvent->setEvnActionParameters(serialize($oParameters));
             }
             if ($oEvent->validate()) {
                 //start the transaction
                 $oConnection->begin();
                 if (array_key_exists('EVN_DESCRIPTION', $aData)) {
                     $oEvent->setEvnDescription($aData['EVN_DESCRIPTION']);
                 }
                 $iResult = $oEvent->save();
                 $oConnection->commit();
                 return $iResult;
             } else {
                 $sMessage = '';
                 $aValidationFailures = $oEvent->getValidationFailures();
                 foreach ($aValidationFailures as $oValidationFailure) {
                     $sMessage .= $oValidationFailure->getMessage() . '<br />';
                 }
                 throw new Exception('The registry cannot be updated!<br />' . $sMessage);
             }
         } else {
             throw new Exception('This row doesn\'t exist!');
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
 $oProcessMap = new processMap(new DBConnection());
 if (isset($_POST['form'])) {
     $value = $_POST['form'];
 } else {
     $value = $_POST;
 }
 /*----------------------------------********---------------------------------*/
 $swCreate = true;
 if ($value['TRI_UID'] != '') {
     $oTrigger->load($value['TRI_UID']);
 } else {
     $oTrigger->create($value);
     $value['TRI_UID'] = $oTrigger->getTriUid();
     $swCreate = false;
 }
 $oTrigger->update($value);
 if ($swCreate) {
     //Add Audit Log
     $fields = $oTrigger->load($value['TRI_UID']);
     $description = "Trigger Name: " . $fields['TRI_TITLE'] . ", Trigger Uid: " . $value['TRI_UID'];
     if (isset($fields['TRI_DESCRIPTION'])) {
         $description .= ", Description: " . $fields['TRI_DESCRIPTION'];
     }
     if (isset($value["TRI_WEBBOT"])) {
         $description .= ", [EDIT CODE]";
     }
     G::auditLog("UpdateTrigger", $description);
 }
 //if (! isset( $_POST['mode'] )) {
 //    $oProcessMap->triggersList( $value['PRO_UID'] );
 //}
Beispiel #4
0
 * Copyright (C) 2004 - 2008 Colosa Inc.23
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * 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;
}
require_once 'classes/model/Triggers.php';
$oTrigger = new Triggers();
if ($_POST['form']['TRI_UID'] != '') {
    $oTrigger->load($_POST['form']['TRI_UID']);
} else {
    $oTrigger->create($_POST['form']);
    $_POST['form']['TRI_UID'] = $oTrigger->getTriUid();
}
$oTrigger->update($_POST['form']);
Beispiel #5
0
 /**
  * Save Data for Trigger
  * @var string $sProcessUID. Uid for Process
  * @var string $dataTrigger. Data for Trigger
  * @var string $create. Create o Update Trigger
  * @var string $sTriggerUid. Uid for Trigger
  *
  * @author Brayan Pereyra (Cochalo) <*****@*****.**>
  * @copyright Colosa - Bolivia
  *
  * @return array
  */
 public function saveTrigger($sProcessUID = '', $dataTrigger = array(), $create = false, $sTriggerUid = '')
 {
     if ($sProcessUID == '' || count($dataTrigger) == 0) {
         return false;
     }
     $dataTrigger = array_change_key_case($dataTrigger, CASE_UPPER);
     if ($create && isset($dataTrigger['TRI_UID'])) {
         unset($dataTrigger['TRI_UID']);
     }
     $dataTrigger = (array) $dataTrigger;
     $dataTrigger['TRI_TYPE'] = 'SCRIPT';
     if (isset($dataTrigger['TRI_TITLE'])) {
         if (!$this->verifyNameTrigger($sProcessUID, $dataTrigger['TRI_TITLE'], $sTriggerUid)) {
             throw new \Exception(\G::LoadTranslation("ID_CANT_SAVE_TRIGGER"));
         }
     }
     /*----------------------------------********---------------------------------*/
     $dataTrigger['PRO_UID'] = $sProcessUID;
     $oTrigger = new \Triggers();
     if ($create) {
         $oTrigger->create($dataTrigger);
         $dataTrigger['TRI_UID'] = $oTrigger->getTriUid();
     }
     $oTrigger->update($dataTrigger);
     if ($create) {
         $dataResp = $oTrigger->load($dataTrigger['TRI_UID']);
         $dataResp = array_change_key_case($dataResp, CASE_LOWER);
         if (isset($dataResp['pro_uid'])) {
             unset($dataResp['pro_uid']);
         }
         return $dataResp;
     }
     return array();
 }
                        $option = floatval($aDataTriggers[$sOptionTrigger]);
                        break;
                    default:
                        $option = is_numeric($aDataTriggers[$sOptionTrigger]) || is_bool($aDataTriggers[$sOptionTrigger]) ? trim($aDataTriggers[$sOptionTrigger]) : strstr($aDataTriggers[$sOptionTrigger], "array") ? trim($aDataTriggers[$sOptionTrigger]) : '"' . trim($aDataTriggers[$sOptionTrigger]) . '"';
                        break;
                }
            }
        } else {
            $option = "' '";
        }
        $methodParamsFinal[] = $option;
    }
    $i++;
}
$sPMfunction .= isset($aDataTriggers['TRI_ANSWER']) && $aDataTriggers['TRI_ANSWER'] != '' ? $aDataTriggers['TRI_ANSWER'] . " = " : "";
$sPMfunction .= $aDataTriggers['PMFUNTION_NAME'] . " (" . implode(",", $methodParamsFinal) . ");";
//Create Trigger
$aDataTriggers['TRI_WEBBOT'] = $sPMfunction;
$aDataTriggersParams = array();
$aDataTriggersParams['hash'] = G::encryptOld($sPMfunction);
$aDataTriggersParams['params'] = $aDataTriggers;
$aDataTriggers['TRI_PARAM'] = serialize($aDataTriggersParams);
//$oTrigger->create ( $aDataTriggers );
$aDataTriggerLoaded = $oTrigger->load($triUid);
//var_dump($aDataTriggerLoaded);
//die;
//Update Info
$aDataTriggers['TRI_UID'] = $oTrigger->getTriUid();
$oTrigger->update($aDataTriggers);
//Update Trigger Array
$oProcessMap->triggersList($aDataTriggers['PRO_UID']);
 /**
  * Update Trigger
  *
  * @param string $libraryName Library name
  * @param string $methodName  Method name
  * @param string $triggerUid  Unique id of Trigger
  * @param array  $arrayData   Data
  *
  * return array Return data of the Trigger updated
  */
 public function update($libraryName, $methodName, $triggerUid, $arrayData)
 {
     try {
         $arrayData = array_change_key_case($arrayData, CASE_UPPER);
         //Verify data
         $this->throwExceptionIfLibraryAndMethodIsInvalidForTrigger($libraryName, $methodName, $triggerUid, $this->arrayFieldNameForException["libraryName"], $this->arrayFieldNameForException["methodName"], $this->arrayFieldNameForException["triggerUid"]);
         //Load Trigger
         $trigger = new \Triggers();
         $arrayTriggerData = $trigger->load($triggerUid);
         $processUid = $arrayTriggerData["PRO_UID"];
         //Verify data
         $process = new \ProcessMaker\BusinessModel\Process();
         $trigger = new \ProcessMaker\BusinessModel\Trigger();
         $process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, false);
         if (isset($arrayData["TRI_PARAMS"])) {
             $arrayParamData = $this->throwExceptionIfDataNotMetTriggerParamsDefinition($libraryName, $methodName, $arrayData, $this->arrayFieldNameForException["libraryName"], $this->arrayFieldNameForException["methodName"], $this->arrayFieldNameForException["triggerParams"]);
         }
         if (isset($arrayData["TRI_TITLE"])) {
             $trigger->throwExceptionIfExistsTitle($processUid, $arrayData["TRI_TITLE"], $this->arrayFieldNameForException["triggerTitle"], $triggerUid);
         }
         //TRI_PARAMS
         if (isset($arrayData["TRI_PARAMS"])) {
             $arrayData["TRI_PARAMS"] = array_change_key_case($arrayData["TRI_PARAMS"], CASE_UPPER);
         }
         //Update
         $trigger = new \Triggers();
         $arrayData["TRI_UID"] = $triggerUid;
         $result = $trigger->update($arrayData);
         if (isset($arrayData["TRI_PARAMS"])) {
             $this->setData($libraryName, $methodName, $triggerUid, $arrayParamData);
         }
         //Return
         unset($arrayData["TRI_UID"]);
         if (!$this->formatFieldNameInUppercase) {
             if (isset($arrayData["TRI_PARAMS"])) {
                 $arrayData["TRI_PARAMS"] = array_change_key_case($arrayData["TRI_PARAMS"], CASE_LOWER);
             }
             $arrayData = array_change_key_case($arrayData, CASE_LOWER);
         }
         return $arrayData;
     } catch (\Exception $e) {
         throw $e;
     }
 }