예제 #1
0
 /**
  * Create the application document registry
  * @param array $aData
  * @return string
  * */
 public function create($aData)
 {
     $oConnection = Propel::getConnection(OutputDocumentPeer::DATABASE_NAME);
     try {
         if (isset($aData['OUT_DOC_UID']) && $aData['OUT_DOC_UID'] == '') {
             unset($aData['OUT_DOC_UID']);
         }
         if (!isset($aData['OUT_DOC_UID'])) {
             $aData['OUT_DOC_UID'] = G::generateUniqueID();
         }
         if (!isset($aData['OUT_DOC_GENERATE'])) {
             $aData['OUT_DOC_GENERATE'] = 'BOTH';
         } else {
             if ($aData['OUT_DOC_GENERATE'] == '') {
                 $aData['OUT_DOC_GENERATE'] = 'BOTH';
             }
         }
         $oOutputDocument = new OutputDocument();
         $oOutputDocument->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oOutputDocument->validate()) {
             $oConnection->begin();
             if (isset($aData['OUT_DOC_TITLE'])) {
                 $oOutputDocument->setOutDocTitle($aData['OUT_DOC_TITLE']);
             }
             if (isset($aData['OUT_DOC_DESCRIPTION'])) {
                 $oOutputDocument->setOutDocDescription($aData['OUT_DOC_DESCRIPTION']);
             }
             $oOutputDocument->setOutDocFilename($aData['OUT_DOC_FILENAME']);
             if (isset($aData['OUT_DOC_TEMPLATE'])) {
                 $oOutputDocument->setOutDocTemplate($aData['OUT_DOC_TEMPLATE']);
             }
             $iResult = $oOutputDocument->save();
             $oConnection->commit();
             return $aData['OUT_DOC_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oOutputDocument->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;
     }
 }
예제 #2
0
    /**
     * Create the application document registry
     * @param array $aData
     * @return string
     * */
    public function create($aData)
    {
        $oConnection = Propel::getConnection(OutputDocumentPeer::DATABASE_NAME);

        try {
            if (isset($aData['OUT_DOC_UID']) && $aData['OUT_DOC_UID'] == '') {
                unset($aData['OUT_DOC_UID']);
            }

            if (!isset($aData['OUT_DOC_UID'])) {
                $aData['OUT_DOC_UID'] = G::generateUniqueID();
            }

            if (!isset($aData['OUT_DOC_GENERATE'])) {
                $aData['OUT_DOC_GENERATE'] = 'BOTH';
            } else {
                if ($aData['OUT_DOC_GENERATE'] == '') {
                    $aData['OUT_DOC_GENERATE'] = 'BOTH';
                }
            }

            $oOutputDocument = new OutputDocument();
            $oOutputDocument->fromArray($aData, BasePeer::TYPE_FIELDNAME);

            if ($oOutputDocument->validate()) {
                $oConnection->begin();

                if (isset($aData['OUT_DOC_TITLE'])) {
                    $oOutputDocument->setOutDocTitle($aData['OUT_DOC_TITLE']);
                }

                if (isset($aData['OUT_DOC_DESCRIPTION'])) {
                    $oOutputDocument->setOutDocDescription($aData['OUT_DOC_DESCRIPTION']);
                }

                $oOutputDocument->setOutDocFilename($aData['OUT_DOC_FILENAME']);

                if (isset($aData['OUT_DOC_TEMPLATE'])) {
                    $oOutputDocument->setOutDocTemplate($aData['OUT_DOC_TEMPLATE']);
                }

                $iResult = $oOutputDocument->save();
                $oConnection->commit();
                //Add Audit Log
                $description = "Output Document Name: ".$aData['OUT_DOC_TITLE'].", Output Document Uid: ".$aData['OUT_DOC_UID'].", Filename generated: ".$aData['OUT_DOC_FILENAME'];
                if(!empty($aData['OUT_DOC_DESCRIPTION'])){
                  $description .= ", Description: ".$aData['OUT_DOC_DESCRIPTION'];
                }
                if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){
                    $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR'];
                }
                if(!empty($aData['OUT_DOC_GENERATE'])){
                    $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE'];
                }
                if($aData['OUT_DOC_PDF_SECURITY_ENABLED']==0){
                  $pdfSecurity = 'Disabled';
                }else{
                  $pdfSecurity = 'Enabled';
                }
                $description .= ", PDF Security: ".$pdfSecurity;
                if(!empty($aData['OUT_DOC_VERSIONING'])){
                  $description .= ", Enable Versioning: Yes";
                }
                if(!empty($aData['OUT_DOC_DESTINATION_PATH'])){
                  $description .= ", Destination Path: ".$aData['OUT_DOC_DESTINATION_PATH'];
                }
                if(!empty($aData['OUT_DOC_TAGS'])){
                  $description .= ", Tags: ".$aData['OUT_DOC_TAGS'];
                }
                if(!empty($aData['OUT_DOC_OPEN_TYPE'])){
                    if($aData['OUT_DOC_OPEN_TYPE']==0){
                        $genLink = 'Open the file';
                    }else{
                        $genLink = 'Download the file';
                    }
                    $description .= ", By clicking on the generated file link: ".$genLink;
                }
                G::auditLog("CreateOutputDocument", $description);

                return $aData['OUT_DOC_UID'];
            } else {
                $sMessage = '';
                $aValidationFailures = $oOutputDocument->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);
        }
    }