function UpdateTrigger($data, $fields) { try { $Trigger = new Triggers(); $result = $Trigger->update($fields); return $result; } catch (Exception $e) { return array('Exception!! ' => $e->getMessage()); } }
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'] ); //}
* 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']);
/** * 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; } }