Пример #1
0
 /**
  * Create the report var registry
  * @param array $aData
  * @return string
  **/
 public function create($aData)
 {
     $oConnection = Propel::getConnection(ReportVarPeer::DATABASE_NAME);
     try {
         if (isset($aData['REP_VAR_UID']) && $aData['REP_VAR_UID'] == '') {
             unset($aData['REP_VAR_UID']);
         }
         if (!isset($aData['REP_VAR_UID'])) {
             $aData['REP_VAR_UID'] = G::generateUniqueID();
         }
         $oReportVar = new ReportVar();
         $oReportVar->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oReportVar->validate()) {
             $oConnection->begin();
             $iResult = $oReportVar->save();
             $oConnection->commit();
             return $aData['REP_VAR_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oReportVar->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }