/** * Create WebEntry-Event for a Project * * @param string $projectUid Unique id of Project * @param string $userUidCreator Unique id of creator User * @param array $arrayData Data * * return array Return data of the new WebEntry-Event created */ public function create($projectUid, $userUidCreator, array $arrayData) { try { //Verify data $process = new \ProcessMaker\BusinessModel\Process(); $validator = new \ProcessMaker\BusinessModel\Validator(); $validator->throwExceptionIfDataIsNotArray($arrayData, "\$arrayData"); $validator->throwExceptionIfDataIsEmpty($arrayData, "\$arrayData"); //Set data $arrayData = array_change_key_case($arrayData, CASE_UPPER); unset($arrayData["WEE_UID"]); unset($arrayData["PRJ_UID"]); unset($arrayData["WEE_WE_UID"]); unset($arrayData["WEE_WE_TAS_UID"]); if (!isset($arrayData["WEE_DESCRIPTION"])) { $arrayData["WEE_DESCRIPTION"] = ""; } if (!isset($arrayData["WEE_STATUS"])) { $arrayData["WEE_STATUS"] = "ENABLED"; } //Verify data $process->throwExceptionIfNotExistsProcess($projectUid, $this->arrayFieldNameForException["projectUid"]); $this->throwExceptionIfDataIsInvalid("", $projectUid, $arrayData); //Create $cnn = \Propel::getConnection("workflow"); $this->webEntryEventWebEntryUid = ""; $this->webEntryEventWebEntryTaskUid = ""; try { //WebEntry if ($arrayData["WEE_STATUS"] == "ENABLED") { $this->createWebEntry($projectUid, $arrayData["EVN_UID"], $arrayData["ACT_UID"], $arrayData["DYN_UID"], $arrayData["USR_UID"], $arrayData["WEE_TITLE"], $arrayData["WEE_DESCRIPTION"], $userUidCreator); } //WebEntry-Event $webEntryEvent = new \WebEntryEvent(); $webEntryEvent->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME); $webEntryEventUid = \ProcessMaker\Util\Common::generateUID(); $webEntryEvent->setWeeUid($webEntryEventUid); $webEntryEvent->setPrjUid($projectUid); $webEntryEvent->setWeeWeUid($this->webEntryEventWebEntryUid); $webEntryEvent->setWeeWeTasUid($this->webEntryEventWebEntryTaskUid); if ($webEntryEvent->validate()) { $cnn->begin(); $result = $webEntryEvent->save(); $cnn->commit(); //Set WEE_TITLE if (isset($arrayData["WEE_TITLE"])) { $result = \Content::addContent("WEE_TITLE", "", $webEntryEventUid, SYS_LANG, $arrayData["WEE_TITLE"]); } //Set WEE_DESCRIPTION if (isset($arrayData["WEE_DESCRIPTION"])) { $result = \Content::addContent("WEE_DESCRIPTION", "", $webEntryEventUid, SYS_LANG, $arrayData["WEE_DESCRIPTION"]); } //Return return $this->getWebEntryEvent($webEntryEventUid); } else { $msg = ""; foreach ($webEntryEvent->getValidationFailures() as $validationFailure) { $msg = $msg . ($msg != "" ? "\n" : "") . $validationFailure->getMessage(); } throw new \Exception(\G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED") . ($msg != "" ? "\n" . $msg : "")); } } catch (\Exception $e) { $cnn->rollback(); $this->deleteWebEntry($this->webEntryEventWebEntryUid, $this->webEntryEventWebEntryTaskUid); throw $e; } } catch (\Exception $e) { throw $e; } }