/**
  * Create the application document registry
  * @param array $aData
  * @return string
  **/
 public function create($aData)
 {
     $oConnection = Propel::getConnection(InputDocumentPeer::DATABASE_NAME);
     try {
         if (isset($aData['INP_DOC_UID']) && $aData['INP_DOC_UID'] == '') {
             unset($aData['INP_DOC_UID']);
         }
         if (!isset($aData['INP_DOC_UID'])) {
             $aData['INP_DOC_UID'] = G::generateUniqueID();
         }
         $oInputDocument = new InputDocument();
         $oInputDocument->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oInputDocument->validate()) {
             $oConnection->begin();
             if (isset($aData['INP_DOC_TITLE'])) {
                 $oInputDocument->setInpDocTitle($aData['INP_DOC_TITLE']);
             }
             if (isset($aData['INP_DOC_DESCRIPTION'])) {
                 $oInputDocument->setInpDocDescription($aData['INP_DOC_DESCRIPTION']);
             }
             $iResult = $oInputDocument->save();
             $oConnection->commit();
             return $aData['INP_DOC_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oInputDocument->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;
     }
 }
 /**
  * Create the application document registry
  *
  * @param array $aData
  * @return string
  *
  */
 public function create($aData)
 {
     $oConnection = Propel::getConnection(InputDocumentPeer::DATABASE_NAME);
     try {
         if (isset($aData['INP_DOC_UID']) && $aData['INP_DOC_UID'] == '') {
             unset($aData['INP_DOC_UID']);
         }
         if (!isset($aData['INP_DOC_UID'])) {
             $aData['INP_DOC_UID'] = G::generateUniqueID();
         }
         $oInputDocument = new InputDocument();
         $oInputDocument->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oInputDocument->validate()) {
             $oConnection->begin();
             if (isset($aData['INP_DOC_TITLE'])) {
                 $oInputDocument->setInpDocTitle($aData['INP_DOC_TITLE']);
             }
             if (isset($aData['INP_DOC_DESCRIPTION'])) {
                 $oInputDocument->setInpDocDescription($aData['INP_DOC_DESCRIPTION']);
             }
             $iResult = $oInputDocument->save();
             $oConnection->commit();
             //Add Audit Log
             switch ($aData['INP_DOC_FORM_NEEDED']) {
                 case 'VIRTUAL':
                     $docType = 'Digital';
                     break;
                 case 'REAL':
                     $docType = 'Printed';
                     break;
                 case 'VREAL':
                     $docType = 'Digital/Printed';
                     break;
             }
             if (isset($aData['INP_DOC_VERSIONING']) && $aData['INP_DOC_VERSIONING'] == 1) {
                 $enableVersion = 'Yes';
             } else {
                 $enableVersion = 'No';
             }
             $description = "Input Document Title: " . $aData['INP_DOC_TITLE'] . ", Input Document Uid: " . $aData['INP_DOC_UID'] . ", Document Type: " . $docType;
             if (!empty($aData['INP_DOC_DESCRIPTION'])) {
                 $description .= ", Description: " . $aData['INP_DOC_DESCRIPTION'];
             }
             if (!empty($aData['INP_DOC_DESTINATION_PATH'])) {
                 $description .= ", Destination Path: " . $aData['INP_DOC_DESTINATION_PATH'];
             }
             $inputDocMaxFileSize = "";
             if (!empty($aData['INP_DOC_MAX_FILESIZE'])) {
                 $inputDocMaxFileSize = $aData['INP_DOC_MAX_FILESIZE'] ? $aData['INP_DOC_MAX_FILESIZE'] . ' ' . $aData['INP_DOC_MAX_FILESIZE_UNIT'] : "256 MB";
                 $inputDocMaxFileSize = ", Maximum Input Document file size: " . $inputDocMaxFileSize;
             }
             if (!empty($aData['INP_DOC_MAX_FILESIZE'])) {
                 $description .= ", Extensions: " . $aData['INP_DOC_TYPE_FILE'];
             }
             $description .= $inputDocMaxFileSize;
             G::auditLog("CreateInputDocument", $description);
             return $aData['INP_DOC_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oInputDocument->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;
     }
 }