コード例 #1
0
 /**
  * Validates all modified columns of given WebEntryEvent 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      WebEntryEvent $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(WebEntryEvent $obj, $cols = null)
 {
     $columns = array();
     if ($cols) {
         $dbMap = Propel::getDatabaseMap(WebEntryEventPeer::DATABASE_NAME);
         $tableMap = $dbMap->getTable(WebEntryEventPeer::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(WebEntryEventPeer::WEE_STATUS)) {
             $columns[WebEntryEventPeer::WEE_STATUS] = $obj->getWeeStatus();
         }
     }
     return BasePeer::doValidate(WebEntryEventPeer::DATABASE_NAME, WebEntryEventPeer::TABLE_NAME, $columns);
 }
コード例 #2
0
 /**
  * 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;
     }
 }