Ejemplo n.º 1
0
 /**
  * Remove the application document registry
  * @param array $aData
  * @return string
  * */
 public function remove($sOutDocUid)
 {
     $oConnection = Propel::getConnection(OutputDocumentPeer::DATABASE_NAME);
     try {
         $oOutputDocument = OutputDocumentPeer::retrieveByPK($sOutDocUid);
         if (!is_null($oOutputDocument)) {
             $oConnection->begin();
             Content::removeContent('OUT_DOC_TITLE', '', $oOutputDocument->getOutDocUid());
             Content::removeContent('OUT_DOC_DESCRIPTION', '', $oOutputDocument->getOutDocUid());
             Content::removeContent('OUT_DOC_FILENAME', '', $oOutputDocument->getOutDocUid());
             Content::removeContent('OUT_DOC_TEMPLATE', '', $oOutputDocument->getOutDocUid());
             $iResult = $oOutputDocument->delete();
             $oConnection->commit();
             return $iResult;
         } else {
             throw new Exception('This row doesn\'t exist!');
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
Ejemplo n.º 2
0
 /**
  * Implementation for 'GET' method for Rest API
  *
  * @param  mixed $outDocUid Primary key
  *
  * @return array $result Returns array within multiple records or a single record depending if
  *                       a single selection was requested passing id(s) as param
  */
 protected function get($outDocUid = null)
 {
     $result = array();
     try {
         $noArguments = true;
         $argumentList = func_get_args();
         foreach ($argumentList as $arg) {
             if (!is_null($arg)) {
                 $noArguments = false;
             }
         }
         if ($noArguments) {
             $criteria = new Criteria('workflow');
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_UID);
             $criteria->addSelectColumn(OutputDocumentPeer::PRO_UID);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_LANDSCAPE);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_MEDIA);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_LEFT_MARGIN);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_RIGHT_MARGIN);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_TOP_MARGIN);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_BOTTOM_MARGIN);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_GENERATE);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_TYPE);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_CURRENT_REVISION);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_FIELD_MAPPING);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_VERSIONING);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_DESTINATION_PATH);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_TAGS);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_PDF_SECURITY_ENABLED);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_PDF_SECURITY_OPEN_PASSWORD);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_PDF_SECURITY_OWNER_PASSWORD);
             $criteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_PDF_SECURITY_PERMISSIONS);
             $dataset = AppEventPeer::doSelectRS($criteria);
             $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
             while ($dataset->next()) {
                 $result[] = $dataset->getRow();
             }
         } else {
             $record = OutputDocumentPeer::retrieveByPK($outDocUid);
             if ($record) {
                 $result = $record->toArray(BasePeer::TYPE_FIELDNAME);
             } else {
                 $paramValues = "";
                 foreach ($argumentList as $arg) {
                     $paramValues .= strlen($paramValues) ? ', ' : '';
                     if (!is_null($arg)) {
                         $paramValues .= "{$arg}";
                     } else {
                         $paramValues .= "NULL";
                     }
                 }
                 throw new RestException(417, "table OutputDocument ({$paramValues})");
             }
         }
     } catch (RestException $e) {
         throw new RestException($e->getCode(), $e->getMessage());
     } catch (Exception $e) {
         throw new RestException(412, $e->getMessage());
     }
     return $result;
 }
Ejemplo n.º 3
0
    public function getSteps ($appUid, $index, $tasUid, $proUid)
    {
        //require_once 'classes/model/Step.php';
        //require_once 'classes/model/Content.php';
        //require_once 'classes/model/AppDocument.php';
        //require_once 'classes/model/InputDocumentPeer.php';
        //require_once 'classes/model/OutputDocument.php';
        //require_once 'classes/model/Dynaform.php';

        //G::LoadClass( 'pmScript' );
        G::LoadClass( 'case' );

        $steps = Array ();
        $case = new Cases();
        $step = new Step();
        $appDocument = new AppDocument();

        $caseSteps = $step->getAllCaseSteps( $proUid, $tasUid, $appUid );

        //getting externals steps
        $oPluginRegistry = &PMPluginRegistry::getSingleton();
        $eSteps = $oPluginRegistry->getSteps();
        $externalSteps = array ();

        foreach ($eSteps as $externalStep) {
            $externalSteps[$externalStep->sStepId] = $externalStep;
        }

        //getting the case record
        if ($appUid) {
            $caseData = $case->loadCase( $appUid );
            $pmScript = new PMScript();
            $pmScript->setFields( $caseData['APP_DATA'] );
        }

        $externalStepCount = 0;

        foreach ($caseSteps as $caseStep) {
            // if it has a condition
            if (trim( $caseStep->getStepCondition() ) != '') {
                $pmScript->setScript( $caseStep->getStepCondition() );

                if (! $pmScript->evaluate()) {
                    //evaluated false, jump & continue with the others steps
                    continue;
                }
            }

            $stepUid = $caseStep->getStepUidObj();
            $stepType = $caseStep->getStepTypeObj();
            $stepPosition = $caseStep->getStepPosition();

            $stepItem = array ();
            $stepItem['id'] = $stepUid;
            $stepItem['type'] = $stepType;

            switch ($stepType) {
                case 'DYNAFORM':
                    $oDocument = DynaformPeer::retrieveByPK( $stepUid );

                    $stepItem['title'] = $oDocument->getDynTitle();
                    $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=EDIT";
                    $stepItem['version'] = $oDocument->getDynVersion();
                    break;
                case 'OUTPUT_DOCUMENT':
                    $oDocument = OutputDocumentPeer::retrieveByPK( $caseStep->getStepUidObj() );
                    $outputDoc = $appDocument->getObject( $appUid, $index, $caseStep->getStepUidObj(), 'OUTPUT' );
                    $stepItem['title'] = $oDocument->getOutDocTitle();

                    if ($outputDoc['APP_DOC_UID']) {
                        $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=VIEW&DOC={$outputDoc['APP_DOC_UID']}";
                    } else {
                        $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=GENERATE";
                    }
                    break;
                case 'INPUT_DOCUMENT':
                    $oDocument = InputDocumentPeer::retrieveByPK( $stepUid );
                    $stepItem['title'] = $oDocument->getInpDocTitle();
                    $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=ATTACH";
                    break;
                case 'EXTERNAL':
                    $stepTitle = 'unknown ' . $caseStep->getStepUidObj();
                    $oPluginRegistry = PMPluginRegistry::getSingleton();
                    $externalStep = $externalSteps[$caseStep->getStepUidObj()];
                    $stepItem['id'] = $externalStep->sStepId;
                    $stepItem['title'] = $externalStep->sStepTitle;
                    $stepItem['url'] = "cases/cases_Step?UID={$externalStep->sStepId}&TYPE=EXTERNAL&POSITION=$stepPosition&ACTION=EDIT";
                    break;
            }

            $steps[] = $stepItem;
        }

        //last, assign task
        $stepItem = array ();
        $stepItem['id'] = '-1';
        $stepItem['type'] = '';
        $stepItem['title'] = G::LoadTranslation( 'ID_ASSIGN_TASK' );
        $stepItem['url'] = "cases/cases_Step?TYPE=ASSIGN_TASK&UID=-1&POSITION=10000&ACTION=ASSIGN";

        $steps[] = $stepItem;

        return $steps;
    }
Ejemplo n.º 4
0
    /**
     * Remove the application document registry
     * @param array $aData
     * @return string
     * */
    public function remove($sOutDocUid)
    {
        $oConnection = Propel::getConnection(OutputDocumentPeer::DATABASE_NAME);

        try {
            $oOutputDocument = OutputDocumentPeer::retrieveByPK($sOutDocUid);

            if (!is_null($oOutputDocument)) {
                $oConnection->begin();
                Content::removeContent('OUT_DOC_TITLE', '', $oOutputDocument->getOutDocUid());
                Content::removeContent('OUT_DOC_DESCRIPTION', '', $oOutputDocument->getOutDocUid());
                Content::removeContent('OUT_DOC_FILENAME', '', $oOutputDocument->getOutDocUid());
                Content::removeContent('OUT_DOC_TEMPLATE', '', $oOutputDocument->getOutDocUid());
                $iResult = $oOutputDocument->delete();
                $oConnection->commit();

                //Add Audit Log
                G::auditLog("DeleteOutputDocument", "Output Document Name: " . $oOutputDocument->getOutDocTitle() . ", Output Document Uid: " . $sOutDocUid . ", Description: " . $oOutputDocument->getOutDocDescription() . ", Filename generated: " . $oOutputDocument->getOutDocFilename());

                //Return
                return $iResult;
            } else {
                throw (new Exception('This row doesn\'t exist!'));
            }
        } catch (Exception $oError) {
            $oConnection->rollback();

            throw ($oError);
        }
    }
Ejemplo n.º 5
0
foreach ($rs as $key => $aRow) {
    $bAccessStep = false;
    if (trim($aRow->getStepCondition()) != '') {
        $oPMScript->setScript($aRow->getStepCondition());
        $bAccessStep = $oPMScript->evaluate();
    } else {
        $bAccessStep = true;
    }
    if ($bAccessStep) {
        switch ($aRow->getStepTypeObj()) {
            case 'DYNAFORM':
                $oDocument = DynaformPeer::retrieveByPK($aRow->getStepUidObj());
                $stepTitle = $oDocument->getDynTitle();
                break;
            case 'OUTPUT_DOCUMENT':
                $oDocument = OutputDocumentPeer::retrieveByPK($aRow->getStepUidObj());
                $stepTitle = $oDocument->getOutDocTitle();
                break;
            case 'INPUT_DOCUMENT':
                $oDocument = InputDocumentPeer::retrieveByPK($aRow->getStepUidObj());
                $stepTitle = $oDocument->getInpDocTitle();
                $sType = $oDocument->getInpDocFormNeeded();
                break;
            case 'EXTERNAL':
                $stepTitle = 'unknown ' . $aRow->getStepUidObj();
                $oPluginRegistry =& PMPluginRegistry::getSingleton();
                foreach ($externalSteps as $key => $val) {
                    if ($val->sStepId == $aRow->getStepUidObj()) {
                        $stepTitle = $val->sStepTitle;
                        //default title
                        $sNamespace = $val->sNamespace;
Ejemplo n.º 6
0
 /**
  * Update a output document for a project
  * @param string $sProcessUID
  * @param array  $outputDocumentData
  * @param string $sOutputDocumentUID
  * @param int $sFlag
  *
  * @access public
  */
 public function updateOutputDocument($sProcessUID, $outputDocumentData, $sFlag, $sOutputDocumentUID = '')
 {
     $oConnection = \Propel::getConnection(\OutputDocumentPeer::DATABASE_NAME);
     $pemission = $outputDocumentData['out_doc_pdf_security_permissions'];
     $pemission = explode("|", $pemission);
     foreach ($pemission as $row) {
         if ($row == "print" || $row == "modify" || $row == "copy" || $row == "forms" || $row == "") {
             $outputDocumentData['out_doc_pdf_security_permissions'] = $outputDocumentData['out_doc_pdf_security_permissions'];
         } else {
             throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('out_doc_pdf_security_permissions')));
         }
     }
     try {
         $oOutputDocument = \OutputDocumentPeer::retrieveByPK($sOutputDocumentUID);
         if (!is_null($oOutputDocument)) {
             if (isset($outputDocumentData['out_doc_pdf_security_open_password']) && $outputDocumentData['out_doc_pdf_security_open_password'] != "") {
                 $outputDocumentData['out_doc_pdf_security_open_password'] = \G::encrypt($outputDocumentData['out_doc_pdf_security_open_password'], $sOutputDocumentUID);
                 $outputDocumentData['out_doc_pdf_security_owner_password'] = \G::encrypt($outputDocumentData['out_doc_pdf_security_owner_password'], $sOutputDocumentUID);
             } else {
                 unset($outputDocumentData['out_doc_pdf_security_open_password']);
                 unset($outputDocumentData['out_doc_pdf_security_owner_password']);
             }
             $outputDocumentData = array_change_key_case($outputDocumentData, CASE_UPPER);
             $oOutputDocument->fromArray($outputDocumentData, \BasePeer::TYPE_FIELDNAME);
             if ($oOutputDocument->validate()) {
                 $oConnection->begin();
                 if (isset($outputDocumentData['OUT_DOC_TITLE'])) {
                     $uid = $this->titleExists($sProcessUID, $outputDocumentData["OUT_DOC_TITLE"]);
                     if ($uid != '') {
                         if ($uid != $sOutputDocumentUID && $sFlag == 0) {
                             throw new \Exception(\G::LoadTranslation("ID_OUTPUT_NOT_SAVE"));
                         }
                     }
                     $oOutputDocument->setOutDocTitle($outputDocumentData['OUT_DOC_TITLE']);
                 }
                 if (isset($outputDocumentData['OUT_DOC_DESCRIPTION'])) {
                     $oOutputDocument->setOutDocDescription($outputDocumentData['OUT_DOC_DESCRIPTION']);
                 }
                 if (isset($outputDocumentData['OUT_DOC_FILENAME'])) {
                     $oOutputDocument->setOutDocFilename($outputDocumentData['OUT_DOC_FILENAME']);
                 }
                 if (isset($outputDocumentData['OUT_DOC_TEMPLATE'])) {
                     $outputDocumentData['OUT_DOC_TEMPLATE'] = stripslashes($outputDocumentData['OUT_DOC_TEMPLATE']);
                     $outputDocumentData['OUT_DOC_TEMPLATE'] = str_replace("@amp@", "&", $outputDocumentData['OUT_DOC_TEMPLATE']);
                     $oOutputDocument->setOutDocTemplate($outputDocumentData['OUT_DOC_TEMPLATE']);
                 }
                 $oOutputDocument->save();
                 $oConnection->commit();
             } else {
                 $sMessage = '';
                 $aValidationFailures = $oOutputDocument->getValidationFailures();
                 foreach ($aValidationFailures as $oValidationFailure) {
                     $sMessage .= $oValidationFailure->getMessage();
                 }
                 throw new \Exception(\G::LoadTranslation("ID_REGISTRY_CANNOT_BE_UPDATED") . $sMessage);
             }
         } else {
             throw new \Exception(\G::LoadTranslation("ID_ROW_DOES_NOT_EXIST"));
         }
     } catch (\Exception $e) {
         throw $e;
     }
 }