/**
  * This function is instancing to this class
  * param
  *
  * @return object
  */
 public static function getSingleton()
 {
     if (self::$instancefeature == null) {
         self::$instancefeature = new PMLicensedFeatures();
     }
     return self::$instancefeature;
 }
Esempio n. 2
0
    public function loadConfiguration($params)
    {
        if ($params['type'] != 'activity' 
            || !\PMLicensedFeatures
                ::getSingleton()
                ->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0='))
        {
            return false;
        }
        require_once 'classes/model/AbeConfiguration.php';

        $criteria = new \Criteria();
        $criteria->add(\AbeConfigurationPeer::PRO_UID, $params['PRO_UID']);
        $criteria->add(\AbeConfigurationPeer::TAS_UID, $params['TAS_UID']);
        $result = \AbeConfigurationPeer::doSelectRS($criteria);
        $result->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
        $result->next();
        $configuration = array();
        if ($configuration = $result->getRow()) {
            $configuration['ABE_UID'] = $configuration['ABE_UID'];
            $configuration['ABE_TYPE'] = $configuration['ABE_TYPE'];
            $configuration['DYN_UID'] = $configuration['DYN_UID'];
            $configuration['ABE_TEMPLATE'] = $configuration['ABE_TEMPLATE'];
            $configuration['ABE_SUBJECT_FIELD'] = $configuration['ABE_SUBJECT_FIELD'];
            $configuration['ABE_EMAIL_FIELD'] = $configuration['ABE_EMAIL_FIELD'];
            $configuration['ABE_ACTION_FIELD'] = $configuration['ABE_ACTION_FIELD'];
            $configuration['ABE_CASE_NOTE_IN_RESPONSE'] = $configuration['ABE_CASE_NOTE_IN_RESPONSE'] ? '["1"]' : '[]';
        }
        $configuration['feature'] = 'ActionsByEmail';
        $configuration['prefix'] = 'abe';
        $configuration['PRO_UID'] = $params['PRO_UID'];
        $configuration['TAS_UID'] = $params['TAS_UID'];
        $configuration['SYS_LANG'] = SYS_LANG;
        return $configuration;
    }
 public function __construct()
 {
     $licensedFeatures =& PMLicensedFeatures::getSingleton();
     if (!$licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
         G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
         G::header('location: ../login/login');
         die;
     }
     $this->loadSettings();
 }
Esempio n. 4
0
 /**
  * @return array
  *
  * @author Gustavo Cruz <*****@*****.**>
  * @copyright Colosa - Bolivia
  *
  * @url GET /enabled-features
  */
 public function doGetEnabledFeatures()
 {
     try {
         $enabledFeatures = array();
         /*----------------------------------********---------------------------------*/
         $keys = array ('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=');
         foreach ($keys as $key) {
             if (\PMLicensedFeatures
                 ::getSingleton()
                 ->verifyfeature($key)) {
                 $enabledFeatures[] = $key;
             }
         }
         /*----------------------------------********---------------------------------*/
         return $enabledFeatures;
     } catch (\Exception $e) {
         throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
     }
 }
Esempio n. 5
0
 /**
  */
 public static function auditLog($actionToLog, $valueToLog = "")
 {
     $workspace = defined('SYS_SYS') ? SYS_SYS : 'Wokspace Undefined';
     $oServerConf =& serverConf::getSingleton();
     $sflagAudit = $oServerConf->getAuditLogProperty('AL_OPTION', $workspace);
     $ipClient = G::getIpAddress();
     /*----------------------------------********---------------------------------*/
     $licensedFeatures = PMLicensedFeatures::getSingleton();
     if ($sflagAudit && $licensedFeatures->verifyfeature('vtSeHNhT0JnSmo1bTluUVlTYUxUbUFSVStEeXVqc1pEUG5EeXc0MGd2Q3ErYz0=')) {
         $username = isset($_SESSION['USER_LOGGED']) && $_SESSION['USER_LOGGED'] != '' ? $_SESSION['USER_LOGGED'] : 'Unknow User';
         $fullname = isset($_SESSION['USR_FULLNAME']) && $_SESSION['USR_FULLNAME'] != '' ? $_SESSION['USR_FULLNAME'] : '-';
         G::log("|" . $workspace . "|" . $ipClient . "|" . $username . "|" . $fullname . "|" . $actionToLog . "|" . $valueToLog, PATH_DATA, "audit.log");
     }
     /*----------------------------------********---------------------------------*/
 }
<?php

if (PMLicensedFeatures
        ::getSingleton()
        ->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=')) {
    global $G_PUBLISH;
    $G_PUBLISH = new Publisher();
    
    try {
        // Validations
        if (!isset($_REQUEST['APP_UID'])) {
            $_REQUEST['APP_UID'] = '';
        }
    
        if (!isset($_REQUEST['DEL_INDEX'])) {
            $_REQUEST['DEL_INDEX'] = '';
        }
    
        if ($_REQUEST['APP_UID'] == '') {
            throw new Exception('The parameter APP_UID is empty.');
        }
    
        if ($_REQUEST['DEL_INDEX'] == '') {
            throw new Exception('The parameter DEL_INDEX is empty.');
        }
    
        G::LoadClass('case');
        G::LoadClass('pmDynaform');
    
        $cases = new Cases();
        $caseFields = $cases->loadCase(G::decrypt($_REQUEST['APP_UID'], URL_KEY),G::decrypt($_REQUEST['DEL_INDEX'], URL_KEY));
<?php

if (PMLicensedFeatures::getSingleton()->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=')) {
    global $G_PUBLISH;
    $G_PUBLISH = new Publisher();
    try {
        // Validations
        if (!isset($_REQUEST['APP_UID'])) {
            $_REQUEST['APP_UID'] = '';
        }
        if (!isset($_REQUEST['DEL_INDEX'])) {
            $_REQUEST['DEL_INDEX'] = '';
        }
        if ($_REQUEST['APP_UID'] == '') {
            throw new Exception('The parameter APP_UID is empty.');
        }
        if ($_REQUEST['DEL_INDEX'] == '') {
            throw new Exception('The parameter DEL_INDEX is empty.');
        }
        G::LoadClass('case');
        G::LoadClass('pmDynaform');
        $cases = new Cases();
        $caseFields = $cases->loadCase(G::decrypt($_REQUEST['APP_UID'], URL_KEY), G::decrypt($_REQUEST['DEL_INDEX'], URL_KEY));
        //
        $criteria = new Criteria();
        $criteria->addSelectColumn(DynaformPeer::DYN_CONTENT);
        $criteria->addSelectColumn(DynaformPeer::PRO_UID);
        $criteria->add(DynaformPeer::DYN_UID, G::decrypt($_REQUEST['DYN_UID'], URL_KEY));
        $result = DynaformPeer::doSelectRS($criteria);
        $result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $result->next();
Esempio n. 8
0
 /**
  * Get data of Cases InputDocument
  *
  * @param string $applicationUid
  * @param string $userUid
  *
  * return array Return an array with data of an InputDocument
  */
 public function getCasesInputDocuments($applicationUid, $userUid)
 {
     try {
         //Verify data inbox
         $case = new \ProcessMaker\BusinessModel\Cases();
         $arrayResult = $case->getStatusInfo($applicationUid, 0, $userUid);
         $flagInbox = true;
         if (empty($arrayResult) || !preg_match("/^(?:TO_DO|DRAFT)\$/", $arrayResult["APP_STATUS"])) {
             $flagInbox = false;
         }
         $user = new \Users();
         $appDocument = new \AppDocument();
         $configuraction = new \Configurations();
         $confEnvSetting = $configuraction->getFormats();
         $arrayInputDocument = array();
         //Query
         $criteria = $this->getAppDocumentCriteriaByData($applicationUid);
         if (!$flagInbox) {
             $criteria->add(\AppDocumentPeer::USR_UID, $userUid, \Criteria::EQUAL);
         }
         $rsCriteria = \AppDocumentPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         /*----------------------------------********---------------------------------*/
         $licensedFeatures =& \PMLicensedFeatures::getSingleton();
         $enablePMGmail = false;
         if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
             \G::LoadClass("pmDrive");
             $pmDrive = new \PMDrive();
             $enablePMGmail = $pmDrive->getStatusService();
         }
         /*----------------------------------********---------------------------------*/
         while ($rsCriteria->next()) {
             $row = $rsCriteria->getRow();
             $arrayUserData = $user->load($row["USR_UID"]);
             $arrayAppDocument = $appDocument->load($row["APP_DOC_UID"], $row["DOC_VERSION"]);
             $row["APP_DOC_FILENAME"] = $arrayAppDocument["APP_DOC_FILENAME"];
             $row["APP_DOC_CREATE_USER"] = $configuraction->usersNameFormatBySetParameters($confEnvSetting["format"], $arrayUserData["USR_USERNAME"], $arrayUserData["USR_FIRSTNAME"], $arrayUserData["USR_LASTNAME"]);
             $row["APP_DOC_LINK"] = "cases/cases_ShowDocument?a=" . $row["APP_DOC_UID"] . "&v=" . $row["DOC_VERSION"];
             /*----------------------------------********---------------------------------*/
             //change donwload link - drive
             $driveDownload = @unserialize($arrayAppDocument['APP_DOC_DRIVE_DOWNLOAD']);
             if ($driveDownload !== false && is_array($driveDownload) && $enablePMGmail) {
                 if (array_key_exists('INPUT', $driveDownload)) {
                     $row['APP_DOC_LINK'] = $driveDownload['INPUT'];
                 } else {
                     if (array_key_exists('ATTACHED', $driveDownload)) {
                         $row['APP_DOC_LINK'] = $driveDownload['ATTACHED'];
                     }
                 }
             }
             /*----------------------------------********---------------------------------*/
             $arrayInputDocument[] = $this->getAppDocumentDataFromRecord($row);
         }
         //Return
         return $arrayInputDocument;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Esempio n. 9
0
    /**

     * Verify feature

     *

     * @param string $featureName Feature name

     *

     * return bool Return true if is valid the feature, false otherwise

     */

    public function pmLicensedFeaturesVerifyFeature($featureName)

    {

        try {

            $this->initPropel(true);



            $flag = PMLicensedFeatures::getSingleton()->verifyfeature($featureName);



            $this->close();



            //Return

            return $flag;

        } catch (Exception $e) {

            throw $e;

        }

    }
Esempio n. 10
0
     }
     $aFields = array("APP_UID" => $_SESSION["APPLICATION"], "DEL_INDEX" => $_SESSION["INDEX"], "USR_UID" => $_SESSION["USER_LOGGED"], "DOC_UID" => $indocUid, "APP_DOC_TYPE" => "INPUT", "APP_DOC_CREATE_DATE" => date("Y-m-d H:i:s"), "APP_DOC_COMMENT" => "", "APP_DOC_TITLE" => "", "APP_DOC_FILENAME" => $arrayFileName[$i], "FOLDER_UID" => $oFolder->createFromPath($aID["INP_DOC_DESTINATION_PATH"]), "APP_DOC_TAGS" => $oFolder->parseTags($aID["INP_DOC_TAGS"]), "APP_DOC_FIELDNAME" => $fieldName);
 } else {
     $aFields = array("APP_UID" => $_SESSION["APPLICATION"], "DEL_INDEX" => $_SESSION["INDEX"], "USR_UID" => $_SESSION["USER_LOGGED"], "DOC_UID" => -1, "APP_DOC_TYPE" => "ATTACHED", "APP_DOC_CREATE_DATE" => date("Y-m-d H:i:s"), "APP_DOC_COMMENT" => "", "APP_DOC_TITLE" => "", "APP_DOC_FILENAME" => $arrayFileName[$i], "APP_DOC_FIELDNAME" => $fieldName);
 }
 $oAppDocument = new AppDocument();
 $oAppDocument->create($aFields);
 $iDocVersion = $oAppDocument->getDocVersion();
 $sAppDocUid = $oAppDocument->getAppDocUid();
 $aInfo = pathinfo($oAppDocument->getAppDocFilename());
 $sExtension = isset($aInfo["extension"]) ? $aInfo["extension"] : "";
 $pathUID = G::getPathFromUID($_SESSION["APPLICATION"]);
 $sPathName = PATH_DOCUMENT . $pathUID . PATH_SEP;
 $sFileName = $sAppDocUid . "_" . $iDocVersion . "." . $sExtension;
 /*----------------------------------********---------------------------------*/
 $licensedFeatures =& PMLicensedFeatures::getSingleton();
 if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
     G::LoadClass("pmDrive");
     $pmDrive = new PMDrive();
     if ($pmDrive->getStatusService()) {
         $app = new Application();
         $user = new Users();
         $dataUser = $user->load($_SESSION['USER_LOGGED']);
         $pmDrive->setDriveUser($dataUser['USR_EMAIL']);
         $appData = $app->Load($_SESSION['APPLICATION']);
         if ($appData['APP_DRIVE_FOLDER_UID'] == null) {
             $process = new Process();
             $process->setProUid($appData['PRO_UID']);
             $result = $pmDrive->createFolder($process->getProTitle() . ' - ' . G::LoadTranslation("ID_CASE") . ' #' . $appData['APP_NUMBER'], $pmDrive->getFolderIdPMDrive($_SESSION['USER_LOGGED']));
             $appData['APP_DRIVE_FOLDER_UID'] = $result->id;
             $app->update($appData);
Esempio n. 11
0
 public function getFolderContent($folderID, $docIdFilter = array(), $keyword = null, $searchType = null, $limit = 0, $start = 0, $user = '', $onlyActive = false, $search = null)
 {
     //require_once ("classes/model/AppDocument.php");
     //require_once ("classes/model/InputDocument.php");
     //require_once ("classes/model/OutputDocument.php");
     //require_once ("classes/model/Users.php");
     /*----------------------------------********---------------------------------*/
     $licensedFeatures =& PMLicensedFeatures::getSingleton();
     $enablePMGmail = false;
     if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
         G::LoadClass("pmDrive");
         $pmDrive = new PMDrive();
         $enablePMGmail = $pmDrive->getStatusService();
     }
     /*----------------------------------********---------------------------------*/
     G::LoadClass('case');
     $oCase = new Cases();
     G::LoadClass('process');
     $oProcess = new Process();
     $oAppDocument = new AppDocument();
     //Query
     $oCriteria = new Criteria("workflow");
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID);
     $oCriteria->addSelectColumn(AppDocumentPeer::DOC_VERSION);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_UID);
     $oCriteria->addSelectColumn(AppDocumentPeer::DEL_INDEX);
     $oCriteria->addSelectColumn(AppDocumentPeer::DOC_UID);
     $oCriteria->addSelectColumn(AppDocumentPeer::USR_UID);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_CREATE_DATE);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_INDEX);
     $oCriteria->addSelectColumn(AppDocumentPeer::FOLDER_UID);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_PLUGIN);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TAGS);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_STATUS);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_STATUS_DATE);
     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_FIELDNAME);
     /*----------------------------------********---------------------------------*/
     if ($enablePMGmail) {
         $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_DRIVE_DOWNLOAD);
     }
     /*----------------------------------********---------------------------------*/
     if (is_array($docIdFilter) && count($docIdFilter) > 0) {
         //Search by App Doc UID no matter what Folder it is
         $oCriteria->add(AppDocumentPeer::APP_DOC_UID, $docIdFilter, CRITERIA::IN);
     } elseif ($folderID != null) {
         if ($folderID == "/") {
             $oCriteria->add(AppDocumentPeer::FOLDER_UID, array('root', '', null), CRITERIA::IN);
         } else {
             $oCriteria->add(AppDocumentPeer::FOLDER_UID, $folderID);
         }
     } elseif ($searchType == "TAG") {
         $oCriteria->add(AppDocumentPeer::APP_DOC_TAGS, "%" . $keyword . "%", CRITERIA::LIKE);
     }
     if ($user != '') {
         require_once "classes/model/AppDelegation.php";
         $criteria = new Criteria();
         $criteria->addSelectColumn(AppDelegationPeer::APP_UID);
         $criteria->setDistinct();
         $conditions = array();
         $conditions[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID);
         $conditions[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX);
         $criteria->addJoinMC($conditions, Criteria::LEFT_JOIN);
         $criteria->add(AppDelegationPeer::USR_UID, $user);
         $rs2 = AppDocumentPeer::doSelectRS($criteria);
         $rs2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $data = array();
         while ($rs2->next()) {
             $row = $rs2->getRow();
             $data[] = $row['APP_UID'];
         }
         $oCriteria->add(AppDocumentPeer::APP_UID, $data, CRITERIA::IN);
     }
     if ($onlyActive) {
         $oCriteria->add(AppDocumentPeer::APP_DOC_STATUS, 'ACTIVE');
     }
     $oCriteria->addSelectColumn(ContentPeer::CON_VALUE . ' AS NAME');
     $oCriteria->add(ContentPeer::CON_CATEGORY, "APP_DOC_FILENAME");
     $oCriteria->add(ContentPeer::CON_LANG, SYS_LANG);
     $oCriteria->addJoin(AppDocumentPeer::APP_DOC_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN);
     $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
     $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
     $oCriteria->addJoin(AppDocumentPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
     if ($search) {
         $oCriteria->add($oCriteria->getNewCriterion(ContentPeer::CON_VALUE, '%' . $search . '%', Criteria::LIKE)->addOr($oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%' . $search . '%', Criteria::LIKE)->addOr($oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%' . $search . '%', Criteria::LIKE))));
     }
     //Number records total
     $criteriaCount = clone $oCriteria;
     $criteriaCount->clearSelectColumns();
     $criteriaCount->addSelectColumn("COUNT(DISTINCT " . AppDocumentPeer::APP_DOC_UID . ") AS NUM_REC");
     $rsCriteriaCount = AppDocumentPeer::doSelectRS($criteriaCount);
     $rsCriteriaCount->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $rsCriteriaCount->next();
     $row = $rsCriteriaCount->getRow();
     $numRecTotal = $row["NUM_REC"];
     //Query
     $oCase->verifyTable();
     $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX);
     $oCriteria->addDescendingOrderByColumn(AppDocumentPeer::DOC_VERSION);
     $response['documents'] = array();
     $oCriteria->setLimit($limit);
     $oCriteria->setOffset($start);
     $rs = AppDocumentPeer::doSelectRS($oCriteria);
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $rs->next();
     $filesResult = array();
     while (is_array($row = $rs->getRow())) {
         //**** start get Doc Info
         $oApp = new Application();
         if ($oApp->exists($row['APP_UID']) || $row['APP_UID'] == "00000000000000000000000000000000") {
             //$completeInfo = array("APP_DOC_FILENAME" => $row ["APP_DOC_UID"],"APP_DOC_UID"=>$row ['APP_UID']);
             $completeInfo = $this->getCompleteDocumentInfo($row['APP_UID'], $row['APP_DOC_UID'], $row['DOC_VERSION'], $row['DOC_UID'], $row['USR_UID']);
             $oAppDocument = new AppDocument();
             $lastVersion = $oAppDocument->getLastAppDocVersion($row['APP_DOC_UID'], $row['APP_UID']);
             //$filesResult [] = $completeInfo;
             if ($completeInfo['APP_DOC_STATUS'] != "DELETED") {
                 /*----------------------------------********---------------------------------*/
                 if ($enablePMGmail) {
                     $driveDownload = @unserialize($completeInfo['APP_DOC_DRIVE_DOWNLOAD']);
                     switch ($completeInfo['APP_DOC_TYPE']) {
                         case 'INPUT':
                             if ($driveDownload !== false && is_array($driveDownload) && array_key_exists('INPUT', $driveDownload)) {
                                 $completeInfo['DOWNLOAD_LINK'] = $driveDownload['INPUT'];
                             }
                             break;
                         case 'ATTACHED':
                             if ($driveDownload !== false && is_array($driveDownload) && array_key_exists('ATTACHED', $driveDownload)) {
                                 $completeInfo['DOWNLOAD_LINK'] = $driveDownload['ATTACHED'];
                             }
                             break;
                         case 'OUTPUT':
                             if ($driveDownload !== false && is_array($driveDownload) && array_key_exists('OUTPUT_DOC', $driveDownload)) {
                                 $completeInfo['DOWNLOAD_LINK1'] = $driveDownload['OUTPUT_DOC'];
                             }
                             if ($driveDownload !== false && is_array($driveDownload) && array_key_exists('OUTPUT_PDF', $driveDownload)) {
                                 $completeInfo['DOWNLOAD_LINK'] = $driveDownload['OUTPUT_PDF'];
                             }
                             break;
                     }
                 }
                 /*----------------------------------********---------------------------------*/
                 if (in_array($row["APP_DOC_UID"], $completeInfo["INPUT_DOCUMENTS"]) || in_array($row["APP_DOC_UID"], $completeInfo["OUTPUT_DOCUMENTS"]) || in_array($completeInfo["USR_UID"], array($_SESSION["USER_LOGGED"], "-1")) || $user == "") {
                     if (count($docIdFilter) > 0) {
                         if (in_array($row['APP_DOC_UID'], $docIdFilter)) {
                             $response['documents'][] = $completeInfo;
                         }
                     } else {
                         if ($lastVersion == $row["DOC_VERSION"]) {
                             //Only Last Document version
                             if ($searchType == "ALL") {
                                 //If search in name of docs is active then filter
                                 if (stripos($completeInfo["APP_DOC_FILENAME"], $keyword) !== false || stripos($completeInfo["APP_DOC_TAGS"], $keyword) !== false) {
                                     $response["documents"][] = $completeInfo;
                                 }
                             } else {
                                 //No search filter active
                                 $response["documents"][] = $completeInfo;
                             }
                         }
                     }
                 }
             }
         }
         $rs->next();
     }
     $response["totalDocumentsCount"] = $numRecTotal;
     return $response;
 }
Esempio n. 12
0
 public function jsonr(&$json)
 {
     foreach ($json as $key => &$value) {
         $sw1 = is_array($value);
         $sw2 = is_object($value);
         if ($sw1 || $sw2) {
             $this->jsonr($value);
         }
         if (!$sw1 && !$sw2) {
             //read event
             $fn = $this->onPropertyRead;
             if (function_exists($fn)) {
                 $fn($json, $key, $value);
             }
             //set properties from trigger
             $prefixs = array("@@", "@#", "@%", "@?", "@\$", "@=");
             if (is_string($value) && in_array(substr($value, 0, 2), $prefixs)) {
                 $triggerValue = substr($value, 2);
                 if (isset($this->fields["APP_DATA"][$triggerValue])) {
                     $json->{$key} = $this->fields["APP_DATA"][$triggerValue];
                 }
             }
             //set properties from 'formInstance' variable
             if (isset($this->fields["APP_DATA"]["formInstance"])) {
                 $formInstance = $this->fields["APP_DATA"]["formInstance"];
                 if (!is_array($formInstance)) {
                     $formInstance = array($formInstance);
                 }
                 $nfi = count($formInstance);
                 for ($ifi = 0; $ifi < $nfi; $ifi++) {
                     $fi = $formInstance[$ifi];
                     if (is_object($fi) && isset($fi->id) && $key === "id" && $json->{$key} === $fi->id) {
                         foreach ($fi as $keyfi => $valuefi) {
                             if (isset($json->{$keyfi})) {
                                 $json->{$keyfi} = $valuefi;
                             }
                         }
                     }
                 }
             }
             //options & query
             if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "hidden" || $value === "dropdown" || $value === "checkgroup" || $value === "radio" || $value === "suggest")) {
                 if (!isset($json->dbConnection)) {
                     $json->dbConnection = "none";
                 }
                 if (!isset($json->sql)) {
                     $json->sql = "";
                 }
                 $json->optionsSql = array();
                 if ($json->dbConnection !== "" && $json->dbConnection !== "none" && $json->sql !== "") {
                     $cnn = Propel::getConnection($json->dbConnection);
                     $stmt = $cnn->createStatement();
                     try {
                         $sql = G::replaceDataField($json->sql, $this->getValuesDependentFields($json));
                         $rs = $stmt->executeQuery($sql, \ResultSet::FETCHMODE_NUM);
                         while ($rs->next()) {
                             $row = $rs->getRow();
                             $option = new stdClass();
                             $option->value = $row[0];
                             $option->label = isset($row[1]) ? $row[1] : $row[0];
                             array_push($json->optionsSql, $option);
                         }
                     } catch (Exception $e) {
                     }
                 }
             }
             //data
             if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "hidden")) {
                 $json->data = new stdClass();
                 $json->data->value = "";
                 $json->data->label = "";
                 if (isset($json->optionsSql[0])) {
                     $json->data->value = $json->optionsSql[0]->value;
                     $json->data->label = $json->optionsSql[0]->value;
                 }
                 if ($json->defaultValue !== "") {
                     $json->data->value = $json->defaultValue;
                     $json->data->label = $json->defaultValue;
                 }
                 if (isset($this->fields["APP_DATA"][$json->name])) {
                     $json->data->value = $this->fields["APP_DATA"][$json->name];
                     $json->data->label = $this->fields["APP_DATA"][$json->name];
                 }
                 $json->optionsSql = array();
             }
             if ($key === "type" && $value === "dropdown") {
                 $json->data = new stdClass();
                 $json->data->value = "";
                 $json->data->label = "";
                 if ($json->defaultValue !== "") {
                     foreach ($json->optionsSql as $os) {
                         if ($os->value === $json->defaultValue) {
                             $json->data->value = $os->value;
                             $json->data->label = $os->label;
                         }
                     }
                     foreach ($json->options as $os) {
                         if ($os->value === $json->defaultValue) {
                             $json->data->value = $os->value;
                             $json->data->label = $os->label;
                         }
                     }
                 }
                 if (isset($this->fields["APP_DATA"][$json->name])) {
                     $json->data->value = $this->fields["APP_DATA"][$json->name];
                 }
                 if (isset($this->fields["APP_DATA"][$json->name . "_label"])) {
                     $json->data->label = $this->fields["APP_DATA"][$json->name . "_label"];
                 }
             }
             if ($key === "type" && $value === "suggest") {
                 $json->data = new stdClass();
                 $json->data->value = "";
                 $json->data->label = "";
                 if ($json->defaultValue !== "") {
                     $json->data->value = $json->defaultValue;
                     $json->data->label = $json->defaultValue;
                     foreach ($json->optionsSql as $os) {
                         if ($os->value === $json->defaultValue) {
                             $json->data->value = $os->value;
                             $json->data->label = $os->label;
                         }
                     }
                     foreach ($json->options as $os) {
                         if ($os->value === $json->defaultValue) {
                             $json->data->value = $os->value;
                             $json->data->label = $os->label;
                         }
                     }
                 }
                 if (isset($this->fields["APP_DATA"][$json->name])) {
                     $json->data->value = $this->fields["APP_DATA"][$json->name];
                 }
                 if (isset($this->fields["APP_DATA"][$json->name . "_label"])) {
                     $json->data->label = $this->fields["APP_DATA"][$json->name . "_label"];
                 }
                 $json->optionsSql = array();
             }
             if ($key === "type" && $value === "radio") {
                 $json->data = new stdClass();
                 $json->data->value = "";
                 $json->data->label = "";
                 if ($json->defaultValue !== "") {
                     foreach ($json->optionsSql as $os) {
                         if ($os->value === $json->defaultValue) {
                             $json->data->value = $os->value;
                             $json->data->label = $os->label;
                         }
                     }
                     foreach ($json->options as $os) {
                         if ($os->value === $json->defaultValue) {
                             $json->data->value = $os->value;
                             $json->data->label = $os->label;
                         }
                     }
                 }
                 if (isset($this->fields["APP_DATA"][$json->name])) {
                     $json->data->value = $this->fields["APP_DATA"][$json->name];
                 }
                 if (isset($this->fields["APP_DATA"][$json->name . "_label"])) {
                     $json->data->label = $this->fields["APP_DATA"][$json->name . "_label"];
                 }
             }
             if ($key === "type" && $value === "checkbox") {
                 $json->data = new stdClass();
                 $json->data->value = "0";
                 $json->data->label = "";
                 foreach ($json->options as $os) {
                     if ($os->value === false || $os->value === 0 || $os->value === "0") {
                         $json->data->label = $os->label;
                     }
                 }
                 if ($json->defaultValue !== "") {
                     $json->data->value = $json->defaultValue;
                     foreach ($json->options as $os) {
                         if (($json->data->value === "true" || $json->data->value === "1") && ($os->value === true || $os->value === 1 || $os->value === "1")) {
                             $json->data->label = $os->label;
                         }
                         if (($json->data->value === "false" || $json->data->value === "0") && ($os->value === false || $os->value === 0 || $os->value === "0")) {
                             $json->data->label = $os->label;
                         }
                     }
                 }
                 if (isset($this->fields["APP_DATA"][$json->name])) {
                     $json->data->value = $this->fields["APP_DATA"][$json->name];
                     if (is_array($json->data->value) && isset($json->data->value[0])) {
                         $json->data->value = $json->data->value[0];
                     }
                     foreach ($json->options as $os) {
                         if (($json->data->value === true || $json->data->value === 1 || $json->data->value === "1") && ($os->value === true || $os->value === 1 || $os->value === "1")) {
                             $json->data->label = $os->label;
                         }
                         if (($json->data->value === false || $json->data->value === 0 || $json->data->value === "0") && ($os->value === false || $os->value === 0 || $os->value === "0")) {
                             $json->data->label = $os->label;
                         }
                     }
                 }
             }
             if ($key === "type" && $value === "checkgroup") {
                 $json->data = new stdClass();
                 $json->data->value = "";
                 $json->data->label = "[]";
                 if ($json->defaultValue !== "") {
                     $dataValue = array();
                     $dataLabel = array();
                     $dv = explode("|", $json->defaultValue);
                     foreach ($dv as $idv) {
                         foreach ($json->optionsSql as $os) {
                             if ($os->value === trim($idv)) {
                                 array_push($dataValue, $os->value);
                                 array_push($dataLabel, $os->label);
                             }
                         }
                         foreach ($json->options as $os) {
                             if ($os->value === trim($idv)) {
                                 array_push($dataValue, $os->value);
                                 array_push($dataLabel, $os->label);
                             }
                         }
                     }
                     $json->data->value = $dataValue;
                     $json->data->label = G::json_encode($dataLabel);
                 }
                 if (isset($this->fields["APP_DATA"][$json->name])) {
                     $json->data->value = $this->fields["APP_DATA"][$json->name];
                 }
                 if (isset($this->fields["APP_DATA"][$json->name . "_label"])) {
                     $json->data->label = $this->fields["APP_DATA"][$json->name . "_label"];
                 }
             }
             if ($key === "type" && $value === "datetime") {
                 $json->data = new stdClass();
                 $json->data->value = "";
                 $json->data->label = "";
                 if (isset($this->fields["APP_DATA"][$json->name])) {
                     $json->data->value = $this->fields["APP_DATA"][$json->name];
                 }
                 if (isset($this->fields["APP_DATA"][$json->name . "_label"])) {
                     $json->data->label = $this->fields["APP_DATA"][$json->name . "_label"];
                 }
             }
             if ($key === "type" && $value === "file" && isset($this->fields["APP_DATA"]["APPLICATION"])) {
                 /*----------------------------------********---------------------------------*/
                 $licensedFeatures =& PMLicensedFeatures::getSingleton();
                 $enablePMGmail = false;
                 if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
                     G::LoadClass("pmDrive");
                     $pmDrive = new PMDrive();
                     $enablePMGmail = $pmDrive->getStatusService();
                 }
                 /*----------------------------------********---------------------------------*/
                 $oCriteria = new Criteria("workflow");
                 $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID);
                 $oCriteria->addSelectColumn(AppDocumentPeer::DOC_VERSION);
                 $oCriteria->addSelectColumn(ContentPeer::CON_VALUE);
                 /*----------------------------------********---------------------------------*/
                 if ($enablePMGmail) {
                     $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_DRIVE_DOWNLOAD);
                 }
                 /*----------------------------------********---------------------------------*/
                 $oCriteria->addJoin(AppDocumentPeer::APP_DOC_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN);
                 $oCriteria->add(AppDocumentPeer::APP_UID, $this->fields["APP_DATA"]["APPLICATION"]);
                 $oCriteria->add(AppDocumentPeer::APP_DOC_FIELDNAME, $json->name);
                 $oCriteria->add(ContentPeer::CON_CATEGORY, 'APP_DOC_FILENAME');
                 $rs = AppDocumentPeer::doSelectRS($oCriteria);
                 $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
                 $links = array();
                 $labelsFromDb = array();
                 while ($rs->next()) {
                     $row = $rs->getRow();
                     $linkDownload = "../cases/cases_ShowDocument?a=" . $row["APP_DOC_UID"] . "&v=" . $row["DOC_VERSION"];
                     /*----------------------------------********---------------------------------*/
                     //change donwload link - drive
                     $driveDownload = @unserialize($row['APP_DOC_DRIVE_DOWNLOAD']);
                     if ($driveDownload !== false && is_array($driveDownload) && array_key_exists('ATTACHED', $driveDownload) && $enablePMGmail) {
                         $linkDownload = $driveDownload['ATTACHED'];
                     }
                     /*----------------------------------********---------------------------------*/
                     array_push($links, $linkDownload);
                     array_push($labelsFromDb, $row["CON_VALUE"]);
                 }
                 $json->data = new stdClass();
                 $json->data->value = $links;
                 if (sizeof($labelsFromDb)) {
                     $json->data->label = G::json_encode($labelsFromDb);
                 } else {
                     $json->data->label = isset($this->fields["APP_DATA"][$json->name . "_label"]) ? $this->fields["APP_DATA"][$json->name . "_label"] : (isset($this->fields["APP_DATA"][$json->name]) ? $this->fields["APP_DATA"][$json->name] : "[]");
                 }
             }
             if ($key === "type" && $value === "file" && isset($json->variable)) {
                 //todo
                 $oCriteria = new Criteria("workflow");
                 $oCriteria->addSelectColumn(ProcessVariablesPeer::INP_DOC_UID);
                 $oCriteria->add(ProcessVariablesPeer::VAR_NAME, $json->variable);
                 $rs = ProcessVariablesPeer::doSelectRS($oCriteria);
                 $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
                 $rs->next();
                 $row = $rs->getRow();
                 if (isset($row["INP_DOC_UID"])) {
                     $json->inputDocuments = array($row["INP_DOC_UID"]);
                 }
             }
             //synchronize var_label
             if ($key === "type" && ($value === "dropdown" || $value === "suggest")) {
                 if (isset($this->fields["APP_DATA"]["__VAR_CHANGED__"]) && in_array($json->name, explode(",", $this->fields["APP_DATA"]["__VAR_CHANGED__"]))) {
                     foreach ($json->optionsSql as $io) {
                         if ($json->data->value === $io->value) {
                             $json->data->label = $io->label;
                         }
                     }
                     foreach ($json->options as $io) {
                         if ($json->data->value === $io->value) {
                             $json->data->label = $io->label;
                         }
                     }
                     $_SESSION["TRIGGER_DEBUG"]["DATA"][] = array("key" => $json->name . "_label", "value" => $json->data->label);
                 }
             }
             if ($key === "type" && $value === "checkgroup") {
                 if (isset($this->fields["APP_DATA"]["__VAR_CHANGED__"]) && in_array($json->name, explode(",", $this->fields["APP_DATA"]["__VAR_CHANGED__"]))) {
                     $dataValue = array();
                     $dataLabel = array();
                     $dv = array();
                     if (isset($this->fields["APP_DATA"][$json->name])) {
                         $dv = $this->fields["APP_DATA"][$json->name];
                     }
                     foreach ($dv as $idv) {
                         foreach ($json->optionsSql as $os) {
                             if ($os->value === $idv) {
                                 array_push($dataValue, $os->value);
                                 array_push($dataLabel, $os->label);
                             }
                         }
                         foreach ($json->options as $os) {
                             if ($os->value === $idv) {
                                 array_push($dataValue, $os->value);
                                 array_push($dataLabel, $os->label);
                             }
                         }
                     }
                     $json->data->value = $dataValue;
                     $json->data->label = G::json_encode($dataLabel);
                     $_SESSION["TRIGGER_DEBUG"]["DATA"][] = array("key" => $json->name . "_label", "value" => $json->data->label);
                 }
             }
             if ($key === "type" && $value === "datetime") {
                 if (isset($this->fields["APP_DATA"]["__VAR_CHANGED__"]) && in_array($json->name, explode(",", $this->fields["APP_DATA"]["__VAR_CHANGED__"]))) {
                     $json->data->label = $json->data->value;
                     $_SESSION["TRIGGER_DEBUG"]["DATA"][] = array("key" => $json->name . "_label", "value" => $json->data->label);
                 }
             }
             //grid
             if ($key === "type" && $value === "grid") {
                 if (isset($this->fields["APP_DATA"][$json->name])) {
                     //rows
                     $rows = $this->fields["APP_DATA"][$json->name];
                     foreach ($rows as $keyRow => $row) {
                         //cells
                         $cells = array();
                         foreach ($json->columns as $column) {
                             //data
                             if ($column->type === "text" || $column->type === "textarea" || $column->type === "dropdown" || $column->type === "suggest" || $column->type === "datetime" || $column->type === "checkbox" || $column->type === "file" || $column->type === "link" || $column->type === "hidden") {
                                 array_push($cells, array("value" => isset($row[$column->name]) ? $row[$column->name] : "", "label" => isset($row[$column->name . "_label"]) ? $row[$column->name . "_label"] : (isset($row[$column->name]) ? $row[$column->name] : "")));
                             }
                         }
                         $rows[$keyRow] = $cells;
                     }
                     $json->rows = count($rows);
                     $json->data = $rows;
                 }
                 //todo compatibility 'columnWidth'
                 foreach ($json->columns as $column) {
                     if (!isset($column->columnWidth) && $column->type !== "hidden") {
                         $json->layout = "static";
                         $column->columnWidth = "";
                     }
                 }
             }
             //languages
             if ($this->lang === null && $key === "language" && isset($json->language)) {
                 $this->lang = $json->language;
             }
             if ($this->langs !== null) {
                 if (($key === "label" || $key === "title" || $key === "hint" || $key === "placeholder" || $key === "validateMessage" || $key === "alternateText" || $key === "comment" || $key === "alt") && isset($this->langs->{$this->lang})) {
                     $langs = $this->langs->{$this->lang}->Labels;
                     foreach ($langs as $langsValue) {
                         if (is_object($json) && $json->{$key} === $langsValue->msgid) {
                             $json->{$key} = $langsValue->msgstr;
                         }
                         if (is_array($json) && $json[$key] === $langsValue->msgid) {
                             $json[$key] = $langsValue->msgstr;
                         }
                     }
                 }
             }
             //EDIT,VIEW
             if (isset($this->fields["STEP_MODE"]) && $this->fields["STEP_MODE"] === "VIEW" && isset($json->mode)) {
                 $json->mode = "view";
             }
             if ($key === "type" && $value === "form" && $this->records != null) {
                 foreach ($this->records as $ri) {
                     if ($json->id === $ri["DYN_UID"] && !isset($json->jsonUpdate)) {
                         $jsonUpdate = G::json_decode($ri["DYN_CONTENT"]);
                         $jsonUpdate = $jsonUpdate->items[0];
                         $jsonUpdate->colSpan = $json->colSpan;
                         $jsonUpdate->jsonUpdate = true;
                         $json = $jsonUpdate;
                         $this->jsonr($json);
                     }
                 }
             }
         }
     }
 }
Esempio n. 13
0
 /**
  * Get if the license has the feature
  *
  * return uid
  *
  */
 public function hasGmailFeature()
 {
     require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.licensedFeatures.php";
     $licensedFeatures = new \PMLicensedFeatures();
     if (!$licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
         return false;
     } else {
         return true;
     }
 }
Esempio n. 14
0
 public function getAllGeneratedDocumentsCriteria($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID)
 {
     \G::LoadClass("configuration");
     $conf = new \Configurations();
     $confEnvSetting = $conf->getFormats();
     //verifica si la tabla OBJECT_PERMISSION
     $cases = new \cases();
     $cases->verifyTable();
     $listing = false;
     $oPluginRegistry =& \PMPluginRegistry::getSingleton();
     if ($oPluginRegistry->existsTrigger(PM_CASE_DOCUMENT_LIST)) {
         $folderData = new \folderData(null, null, $sApplicationUID, null, $sUserUID);
         $folderData->PMType = "OUTPUT";
         $folderData->returnList = true;
         //$oPluginRegistry = & PMPluginRegistry::getSingleton();
         $listing = $oPluginRegistry->executeTriggers(PM_CASE_DOCUMENT_LIST, $folderData);
     }
     /*----------------------------------********---------------------------------*/
     $licensedFeatures =& \PMLicensedFeatures::getSingleton();
     $enablePMGmail = false;
     if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
         G::LoadClass("pmDrive");
         $pmDrive = new \PMDrive();
         $enablePMGmail = $pmDrive->getStatusService();
     }
     /*----------------------------------********---------------------------------*/
     $aObjectPermissions = $cases->getAllObjects($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID);
     if (!is_array($aObjectPermissions)) {
         $aObjectPermissions = array('DYNAFORMS' => array(-1), 'INPUT_DOCUMENTS' => array(-1), 'OUTPUT_DOCUMENTS' => array(-1));
     }
     if (!isset($aObjectPermissions['DYNAFORMS'])) {
         $aObjectPermissions['DYNAFORMS'] = array(-1);
     } else {
         if (!is_array($aObjectPermissions['DYNAFORMS'])) {
             $aObjectPermissions['DYNAFORMS'] = array(-1);
         }
     }
     if (!isset($aObjectPermissions['INPUT_DOCUMENTS'])) {
         $aObjectPermissions['INPUT_DOCUMENTS'] = array(-1);
     } else {
         if (!is_array($aObjectPermissions['INPUT_DOCUMENTS'])) {
             $aObjectPermissions['INPUT_DOCUMENTS'] = array(-1);
         }
     }
     if (!isset($aObjectPermissions['OUTPUT_DOCUMENTS'])) {
         $aObjectPermissions['OUTPUT_DOCUMENTS'] = array(-1);
     } else {
         if (!is_array($aObjectPermissions['OUTPUT_DOCUMENTS'])) {
             $aObjectPermissions['OUTPUT_DOCUMENTS'] = array(-1);
         }
     }
     $aDelete = $cases->getAllObjectsFrom($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID, 'DELETE');
     $oAppDocument = new \AppDocument();
     $oCriteria = new \Criteria('workflow');
     $oCriteria->add(\AppDocumentPeer::APP_UID, $sApplicationUID);
     $oCriteria->add(\AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT');
     $oCriteria->add(\AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), \Criteria::IN);
     //$oCriteria->add(AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['OUTPUT_DOCUMENTS'], Criteria::IN);
     $oCriteria->add($oCriteria->getNewCriterion(\AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['OUTPUT_DOCUMENTS'], \Criteria::IN)->addOr($oCriteria->getNewCriterion(\AppDocumentPeer::USR_UID, $sUserUID, \Criteria::EQUAL)));
     $aConditions = array();
     $aConditions[] = array(\AppDocumentPeer::APP_UID, \AppDelegationPeer::APP_UID);
     $aConditions[] = array(\AppDocumentPeer::DEL_INDEX, \AppDelegationPeer::DEL_INDEX);
     $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
     $oCriteria->add(\AppDelegationPeer::PRO_UID, $sProcessUID);
     $oCriteria->addAscendingOrderByColumn(\AppDocumentPeer::APP_DOC_INDEX);
     $oDataset = \AppDocumentPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $aOutputDocuments = array();
     $aOutputDocuments[] = array('APP_DOC_UID' => 'char', 'DOC_UID' => 'char', 'APP_DOC_COMMENT' => 'char', 'APP_DOC_FILENAME' => 'char', 'APP_DOC_INDEX' => 'integer');
     $oUser = new \Users();
     while ($aRow = $oDataset->getRow()) {
         $oCriteria2 = new \Criteria('workflow');
         $oCriteria2->add(\AppDelegationPeer::APP_UID, $sApplicationUID);
         $oCriteria2->add(\AppDelegationPeer::DEL_INDEX, $aRow['DEL_INDEX']);
         $oDataset2 = \AppDelegationPeer::doSelectRS($oCriteria2);
         $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset2->next();
         $aRow2 = $oDataset2->getRow();
         $oTask = new \Task();
         if ($oTask->taskExists($aRow2['TAS_UID'])) {
             $aTask = $oTask->load($aRow2['TAS_UID']);
         } else {
             $aTask = array('TAS_TITLE' => '(TASK DELETED)');
         }
         $lastVersion = $oAppDocument->getLastDocVersion($aRow['DOC_UID'], $sApplicationUID);
         if ($lastVersion == $aRow['DOC_VERSION']) {
             //Only show last document Version
             $aAux = $oAppDocument->load($aRow['APP_DOC_UID'], $aRow['DOC_VERSION']);
             //Get output Document information
             $oOutputDocument = new \OutputDocument();
             $aGields = $oOutputDocument->load($aRow['DOC_UID']);
             //OUTPUTDOCUMENT
             $outDocTitle = $aGields['OUT_DOC_TITLE'];
             switch ($aGields['OUT_DOC_GENERATE']) {
                 //G::LoadTranslation(ID_DOWNLOAD)
                 case "PDF":
                     $fileDoc = 'javascript:alert("NO DOC")';
                     $fileDocLabel = " ";
                     $filePdf = 'cases/cases_ShowOutputDocument?a=' . $aRow['APP_DOC_UID'] . '&v=' . $aRow['DOC_VERSION'] . '&ext=pdf&random=' . rand();
                     $filePdfLabel = ".pdf";
                     if (is_array($listing)) {
                         foreach ($listing as $folderitem) {
                             if ($folderitem->filename == $aRow['APP_DOC_UID'] && $folderitem->type == "PDF") {
                                 $filePdfLabel = \G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .pdf";
                                 $filePdf = $folderitem->downloadScript;
                                 continue;
                             }
                         }
                     }
                     break;
                 case "DOC":
                     $fileDoc = 'cases/cases_ShowOutputDocument?a=' . $aRow['APP_DOC_UID'] . '&v=' . $aRow['DOC_VERSION'] . '&ext=doc&random=' . rand();
                     $fileDocLabel = ".doc";
                     $filePdf = 'javascript:alert("NO PDF")';
                     $filePdfLabel = " ";
                     if (is_array($listing)) {
                         foreach ($listing as $folderitem) {
                             if ($folderitem->filename == $aRow['APP_DOC_UID'] && $folderitem->type == "DOC") {
                                 $fileDocLabel = \G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .doc";
                                 $fileDoc = $folderitem->downloadScript;
                                 continue;
                             }
                         }
                     }
                     break;
                 case "BOTH":
                     $fileDoc = 'cases/cases_ShowOutputDocument?a=' . $aRow['APP_DOC_UID'] . '&v=' . $aRow['DOC_VERSION'] . '&ext=doc&random=' . rand();
                     $fileDocLabel = ".doc";
                     if (is_array($listing)) {
                         foreach ($listing as $folderitem) {
                             if ($folderitem->filename == $aRow['APP_DOC_UID'] && $folderitem->type == "DOC") {
                                 $fileDocLabel = G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .doc";
                                 $fileDoc = $folderitem->downloadScript;
                                 continue;
                             }
                         }
                     }
                     $filePdf = 'cases/cases_ShowOutputDocument?a=' . $aRow['APP_DOC_UID'] . '&v=' . $aRow['DOC_VERSION'] . '&ext=pdf&random=' . rand();
                     $filePdfLabel = ".pdf";
                     if (is_array($listing)) {
                         foreach ($listing as $folderitem) {
                             if ($folderitem->filename == $aRow['APP_DOC_UID'] && $folderitem->type == "PDF") {
                                 $filePdfLabel = \G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .pdf";
                                 $filePdf = $folderitem->downloadScript;
                                 continue;
                             }
                         }
                     }
                     break;
             }
             try {
                 $aAux1 = $oUser->load($aAux['USR_UID']);
                 $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]);
             } catch (\Exception $oException) {
                 $sUser = '******';
             }
             /*----------------------------------********---------------------------------*/
             //change donwload link - drive
             $driveDownload = @unserialize($aRow['APP_DOC_DRIVE_DOWNLOAD']);
             if ($driveDownload !== false && is_array($driveDownload) && array_key_exists('OUTPUT_DOC', $driveDownload) && $enablePMGmail) {
                 $fileDoc = $driveDownload['OUTPUT_DOC'];
             }
             if ($driveDownload !== false && is_array($driveDownload) && array_key_exists('OUTPUT_PDF', $driveDownload) && $enablePMGmail) {
                 $filePdf = $driveDownload['OUTPUT_PDF'];
             }
             /*----------------------------------********---------------------------------*/
             //if both documents were generated, we choose the pdf one, only if doc was
             //generate then choose the doc file.
             $firstDocLink = $filePdf;
             $firstDocLabel = $filePdfLabel;
             if ($aGields['OUT_DOC_GENERATE'] == 'DOC') {
                 $firstDocLink = $fileDoc;
                 $firstDocLabel = $fileDocLabel;
             }
             $aFields = array('APP_DOC_UID' => $aAux['APP_DOC_UID'], 'DOC_UID' => $aAux['DOC_UID'], 'APP_DOC_COMMENT' => $aAux['APP_DOC_COMMENT'], 'APP_DOC_FILENAME' => $aAux['APP_DOC_FILENAME'], 'APP_DOC_INDEX' => $aAux['APP_DOC_INDEX'], 'ORIGIN' => $aTask['TAS_TITLE'], 'CREATE_DATE' => $aAux['APP_DOC_CREATE_DATE'], 'CREATED_BY' => $sUser, 'FILEDOC' => $fileDoc, 'FILEPDF' => $filePdf, 'OUTDOCTITLE' => $outDocTitle, 'DOC_VERSION' => $aAux['DOC_VERSION'], 'TYPE' => $aAux['APP_DOC_TYPE'] . ' ' . $aGields['OUT_DOC_GENERATE'], 'DOWNLOAD_LINK' => $firstDocLink, 'DOWNLOAD_FILE' => $aAux['APP_DOC_FILENAME'] . $firstDocLabel);
             if (trim($fileDocLabel) != '') {
                 $aFields['FILEDOCLABEL'] = $fileDocLabel;
             }
             if (trim($filePdfLabel) != '') {
                 $aFields['FILEPDFLABEL'] = $filePdfLabel;
             }
             if ($aFields['APP_DOC_FILENAME'] != '') {
                 $aFields['TITLE'] = $aFields['APP_DOC_FILENAME'];
             } else {
                 $aFields['TITLE'] = $aFields['APP_DOC_COMMENT'];
             }
             //$aFields['POSITION'] = $_SESSION['STEP_POSITION'];
             $aFields['CONFIRM'] = \G::LoadTranslation('ID_CONFIRM_DELETE_ELEMENT');
             if (in_array($aRow['APP_DOC_UID'], $aObjectPermissions['OUTPUT_DOCUMENTS'])) {
                 if (in_array($aRow['APP_DOC_UID'], $aDelete['OUTPUT_DOCUMENTS'])) {
                     $aFields['ID_DELETE'] = \G::LoadTranslation('ID_DELETE');
                 }
             }
             $aOutputDocuments[] = $aFields;
         }
         $oDataset->next();
     }
     global $_DBArray;
     $_DBArray['outputDocuments'] = $aOutputDocuments;
     \G::LoadClass('ArrayPeer');
     $oCriteria = new \Criteria('dbarray');
     $oCriteria->setDBArrayTable('outputDocuments');
     $oCriteria->addDescendingOrderByColumn('CREATE_DATE');
     return $oCriteria;
 }
Esempio n. 15
0
 /**
  * Get data of Cases OutputDocument
  *
  * @param string $applicationUid
  * @param string $outputDocumentUid
  * @param string $userUid
  *
  * return object Return an object with data of an OutputDocument
  */
 public function addCasesOutputDocument($applicationUid, $outputDocumentUid, $userUid)
 {
     try {
         $sApplication = $applicationUid;
         $index = \AppDelegation::getCurrentIndex($applicationUid);
         $sUserLogged = $userUid;
         $outputID = $outputDocumentUid;
         $g = new \G();
         $g->sessionVarSave();
         \G::LoadClass('case');
         $oCase = new \Cases();
         $oCase->thisIsTheCurrentUser($sApplication, $index, $sUserLogged, '', 'casesListExtJs');
         //require_once 'classes/model/OutputDocument.php';
         $oOutputDocument = new \OutputDocument();
         $aOD = $oOutputDocument->load($outputID);
         $Fields = $oCase->loadCase($sApplication);
         $sFilename = preg_replace('[^A-Za-z0-9_]', '_', \G::replaceDataField($aOD['OUT_DOC_FILENAME'], $Fields['APP_DATA']));
         require_once PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "AppFolder.php";
         require_once PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "AppDocument.php";
         //Get the Custom Folder ID (create if necessary)
         $oFolder = new \AppFolder();
         $folderId = $oFolder->createFromPath($aOD['OUT_DOC_DESTINATION_PATH'], $sApplication);
         //Tags
         $fileTags = $oFolder->parseTags($aOD['OUT_DOC_TAGS'], $sApplication);
         //Get last Document Version and apply versioning if is enabled
         $oAppDocument = new \AppDocument();
         $lastDocVersion = $oAppDocument->getLastDocVersion($outputID, $sApplication);
         $oCriteria = new \Criteria('workflow');
         $oCriteria->add(\AppDocumentPeer::APP_UID, $sApplication);
         $oCriteria->add(\AppDocumentPeer::DOC_UID, $outputID);
         $oCriteria->add(\AppDocumentPeer::DOC_VERSION, $lastDocVersion);
         $oCriteria->add(\AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT');
         $oDataset = \AppDocumentPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         if ($aOD['OUT_DOC_VERSIONING'] && $lastDocVersion != 0) {
             //Create new Version of current output
             $lastDocVersion++;
             if ($aRow = $oDataset->getRow()) {
                 $aFields = array('APP_DOC_UID' => $aRow['APP_DOC_UID'], 'APP_UID' => $sApplication, 'DEL_INDEX' => $index, 'DOC_UID' => $outputID, 'DOC_VERSION' => $lastDocVersion + 1, 'USR_UID' => $sUserLogged, 'APP_DOC_TYPE' => 'OUTPUT', 'APP_DOC_CREATE_DATE' => date('Y-m-d H:i:s'), 'APP_DOC_FILENAME' => $sFilename, 'FOLDER_UID' => $folderId, 'APP_DOC_TAGS' => $fileTags);
                 $oAppDocument = new \AppDocument();
                 $oAppDocument->create($aFields);
                 $sDocUID = $aRow['APP_DOC_UID'];
             }
         } else {
             ////No versioning so Update a current Output or Create new if no exist
             if ($aRow = $oDataset->getRow()) {
                 //Update
                 $aFields = array('APP_DOC_UID' => $aRow['APP_DOC_UID'], 'APP_UID' => $sApplication, 'DEL_INDEX' => $index, 'DOC_UID' => $outputID, 'DOC_VERSION' => $lastDocVersion, 'USR_UID' => $sUserLogged, 'APP_DOC_TYPE' => 'OUTPUT', 'APP_DOC_CREATE_DATE' => date('Y-m-d H:i:s'), 'APP_DOC_FILENAME' => $sFilename, 'FOLDER_UID' => $folderId, 'APP_DOC_TAGS' => $fileTags);
                 $oAppDocument = new \AppDocument();
                 $oAppDocument->update($aFields);
                 $sDocUID = $aRow['APP_DOC_UID'];
             } else {
                 //we are creating the appdocument row
                 //create
                 if ($lastDocVersion == 0) {
                     $lastDocVersion++;
                 }
                 $aFields = array('APP_UID' => $sApplication, 'DEL_INDEX' => $index, 'DOC_UID' => $outputID, 'DOC_VERSION' => $lastDocVersion, 'USR_UID' => $sUserLogged, 'APP_DOC_TYPE' => 'OUTPUT', 'APP_DOC_CREATE_DATE' => date('Y-m-d H:i:s'), 'APP_DOC_FILENAME' => $sFilename, 'FOLDER_UID' => $folderId, 'APP_DOC_TAGS' => $fileTags);
                 $oAppDocument = new \AppDocument();
                 $aFields['APP_DOC_UID'] = $sDocUID = $oAppDocument->create($aFields);
             }
         }
         $sFilename = $aFields['APP_DOC_UID'] . "_" . $lastDocVersion;
         $pathOutput = PATH_DOCUMENT . \G::getPathFromUID($sApplication) . PATH_SEP . 'outdocs' . PATH_SEP;
         //G::pr($sFilename);die;
         \G::mk_dir($pathOutput);
         $aProperties = array();
         if (!isset($aOD['OUT_DOC_MEDIA'])) {
             $aOD['OUT_DOC_MEDIA'] = 'Letter';
         }
         if (!isset($aOD['OUT_DOC_LEFT_MARGIN'])) {
             $aOD['OUT_DOC_LEFT_MARGIN'] = '15';
         }
         if (!isset($aOD['OUT_DOC_RIGHT_MARGIN'])) {
             $aOD['OUT_DOC_RIGHT_MARGIN'] = '15';
         }
         if (!isset($aOD['OUT_DOC_TOP_MARGIN'])) {
             $aOD['OUT_DOC_TOP_MARGIN'] = '15';
         }
         if (!isset($aOD['OUT_DOC_BOTTOM_MARGIN'])) {
             $aOD['OUT_DOC_BOTTOM_MARGIN'] = '15';
         }
         $aProperties['media'] = $aOD['OUT_DOC_MEDIA'];
         $aProperties['margins'] = array('left' => $aOD['OUT_DOC_LEFT_MARGIN'], 'right' => $aOD['OUT_DOC_RIGHT_MARGIN'], 'top' => $aOD['OUT_DOC_TOP_MARGIN'], 'bottom' => $aOD['OUT_DOC_BOTTOM_MARGIN']);
         if (isset($aOD['OUT_DOC_REPORT_GENERATOR'])) {
             $aProperties['report_generator'] = $aOD['OUT_DOC_REPORT_GENERATOR'];
         }
         $this->generate($outputID, $Fields['APP_DATA'], $pathOutput, $sFilename, $aOD['OUT_DOC_TEMPLATE'], (bool) $aOD['OUT_DOC_LANDSCAPE'], $aOD['OUT_DOC_GENERATE'], $aProperties, $applicationUid);
         /*----------------------------------********---------------------------------*/
         $licensedFeatures =& \PMLicensedFeatures::getSingleton();
         if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
             \G::LoadClass("pmDrive");
             $pmDrive = new \PMDrive();
             if ($pmDrive->getStatusService()) {
                 $app = new \Application();
                 $user = new \Users();
                 $dataUser = $user->load($userUid);
                 $pmDrive->setDriveUser($dataUser['USR_EMAIL']);
                 $appData = $app->Load($applicationUid);
                 if ($appData['APP_DRIVE_FOLDER_UID'] == null) {
                     $process = new \Process();
                     $process->setProUid($appData['PRO_UID']);
                     $result = $pmDrive->createFolder($process->getProTitle() . ' - ' . G::LoadTranslation("ID_CASE") . ' #' . $appData['APP_NUMBER'], $pmDrive->getFolderIdPMDrive($userUid));
                     $appData['APP_DRIVE_FOLDER_UID'] = $result->id;
                     $app->update($appData);
                 }
                 $fileIdDriveDoc = '';
                 $fileIdDrivePdf = '';
                 $sFilenameOriginal = preg_replace('[^A-Za-z0-9_]', '_', \G::replaceDataField($aOD['OUT_DOC_FILENAME'], $Fields['APP_DATA']));
                 switch ($aOD['OUT_DOC_GENERATE']) {
                     case "BOTH":
                         $result = $pmDrive->uploadFile('application/pdf', $pathOutput . $sFilename . '.pdf', $sFilenameOriginal . '.pdf', $appData['APP_DRIVE_FOLDER_UID']);
                         $oAppDocument->setDriveDownload('OUTPUT_PDF', $result->webContentLink);
                         $fileIdDrivePdf = $result->id;
                         $result = $pmDrive->uploadFile('application/doc', $pathOutput . $sFilename . '.doc', $sFilenameOriginal . '.doc', $appData['APP_DRIVE_FOLDER_UID']);
                         $oAppDocument->setDriveDownload('OUTPUT_DOC', $result->webContentLink);
                         $fileIdDriveDoc = $result->id;
                         break;
                     case "PDF":
                         $result = $pmDrive->uploadFile('application/pdf', $pathOutput . $sFilename . '.pdf', $sFilenameOriginal . '.pdf', $appData['APP_DRIVE_FOLDER_UID']);
                         $oAppDocument->setDriveDownload('OUTPUT_PDF', $result->webContentLink);
                         $fileIdDrivePdf = $result->id;
                         break;
                     case "DOC":
                         $result = $pmDrive->uploadFile('application/doc', $pathOutput . $sFilename . '.doc', $sFilenameOriginal . '.doc', $appData['APP_DRIVE_FOLDER_UID']);
                         $oAppDocument->setDriveDownload('OUTPUT_DOC', $result->webContentLink);
                         $fileIdDriveDoc = $result->id;
                         break;
                 }
                 $aFields['DOC_VERSION'] = $oAppDocument->getDocVersion();
                 // $docVersion;
                 $aFields['APP_DOC_UID'] = $oAppDocument->getAppDocUid();
                 //$appDocUid;
                 $appDocUid = $aFields['APP_DOC_UID'];
                 $oAppDocument->update($aFields);
                 //$option = 'pmDrive';
                 //add permissions
                 $criteria = new \Criteria('workflow');
                 $criteria->addSelectColumn(\ApplicationPeer::PRO_UID);
                 $criteria->addSelectColumn(\TaskUserPeer::TAS_UID);
                 $criteria->addSelectColumn(\TaskUserPeer::USR_UID);
                 $criteria->addSelectColumn(\TaskUserPeer::TU_RELATION);
                 $criteria->add(\ApplicationPeer::APP_UID, $applicationUid);
                 $criteria->addJoin(\ApplicationPeer::PRO_UID, \TaskPeer::PRO_UID, \Criteria::LEFT_JOIN);
                 $criteria->addJoin(\TaskPeer::TAS_UID, \TaskUserPeer::TAS_UID, \Criteria::LEFT_JOIN);
                 $dataset = \ApplicationPeer::doSelectRS($criteria);
                 $dataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                 $userPermission = array();
                 $case = new \Cases();
                 while ($dataset->next()) {
                     $row = $dataset->getRow();
                     if ($row['TU_RELATION'] == 1) {
                         //users
                         $dataUser = $user->load($row['USR_UID']);
                         if (array_search($dataUser['USR_EMAIL'], $userPermission) === false) {
                             $objectPermissions = $case->getAllObjects($row['PRO_UID'], $applicationUid, $row['TAS_UID'], $row['USR_UID']);
                             if (array_search($appDocUid, $objectPermissions['OUTPUT_DOCUMENTS']) !== false) {
                                 $userPermission[] = $dataUser['USR_EMAIL'];
                             }
                         }
                     } else {
                         //Groups
                         $criteria = new \Criteria('workflow');
                         $criteria->addSelectColumn(\UsersPeer::USR_EMAIL);
                         $criteria->addSelectColumn(\UsersPeer::USR_UID);
                         $criteria->add(\GroupUserPeer::GRP_UID, $row['USR_UID']);
                         $criteria->addJoin(\GroupUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
                         $oDataset = \AppDelegationPeer::doSelectRS($criteria);
                         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                         while ($oDataset->next()) {
                             $aRow = $oDataset->getRow();
                             if (array_search($aRow['USR_EMAIL'], $userPermission) === false) {
                                 $objectPermissions = $case->getAllObjects($row['PRO_UID'], $applicationUid, $row['TAS_UID'], $aRow['USR_UID']);
                                 if (array_search($appDocUid, $objectPermissions['OUTPUT_DOCUMENTS']) !== false) {
                                     $userPermission[] = $aRow['USR_EMAIL'];
                                 }
                             }
                         }
                     }
                 }
                 $userPermission = array_unique($userPermission);
                 foreach ($userPermission as $key => $val) {
                     $pmDrive->setPermission($appData['APP_DRIVE_FOLDER_UID'], $val, 'user', 'writer');
                     $pmDrive->setPermission($fileIdDrivePdf, $val);
                     $pmDrive->setPermission($fileIdDriveDoc, $val);
                 }
             }
         }
         /*----------------------------------********---------------------------------*/
         //Plugin Hook PM_UPLOAD_DOCUMENT for upload document
         //G::LoadClass('plugin');
         $oPluginRegistry =& \PMPluginRegistry::getSingleton();
         if ($oPluginRegistry->existsTrigger(PM_UPLOAD_DOCUMENT) && class_exists('uploadDocumentData')) {
             $triggerDetail = $oPluginRegistry->getTriggerInfo(PM_UPLOAD_DOCUMENT);
             $aFields['APP_DOC_PLUGIN'] = $triggerDetail->sNamespace;
             $oAppDocument1 = new \AppDocument();
             $oAppDocument1->update($aFields);
             $sPathName = PATH_DOCUMENT . \G::getPathFromUID($sApplication) . PATH_SEP;
             $oData['APP_UID'] = $sApplication;
             $oData['ATTACHMENT_FOLDER'] = true;
             switch ($aOD['OUT_DOC_GENERATE']) {
                 case "BOTH":
                     $documentData = new \uploadDocumentData($sApplication, $sUserLogged, $pathOutput . $sFilename . '.pdf', $sFilename . '.pdf', $sDocUID, $oAppDocument->getDocVersion());
                     $documentData->sFileType = "PDF";
                     $documentData->bUseOutputFolder = true;
                     $uploadReturn = $oPluginRegistry->executeTriggers(PM_UPLOAD_DOCUMENT, $documentData);
                     if ($uploadReturn) {
                         //Only delete if the file was saved correctly
                         unlink($pathOutput . $sFilename . '.pdf');
                     }
                     $documentData = new \uploadDocumentData($sApplication, $sUserLogged, $pathOutput . $sFilename . '.doc', $sFilename . '.doc', $sDocUID, $oAppDocument->getDocVersion());
                     $documentData->sFileType = "DOC";
                     $documentData->bUseOutputFolder = true;
                     $uploadReturn = $oPluginRegistry->executeTriggers(PM_UPLOAD_DOCUMENT, $documentData);
                     if ($uploadReturn) {
                         //Only delete if the file was saved correctly
                         unlink($pathOutput . $sFilename . '.doc');
                     }
                     break;
                 case "PDF":
                     $documentData = new \uploadDocumentData($sApplication, $sUserLogged, $pathOutput . $sFilename . '.pdf', $sFilename . '.pdf', $sDocUID, $oAppDocument->getDocVersion());
                     $documentData->sFileType = "PDF";
                     $documentData->bUseOutputFolder = true;
                     $uploadReturn = $oPluginRegistry->executeTriggers(PM_UPLOAD_DOCUMENT, $documentData);
                     if ($uploadReturn) {
                         //Only delete if the file was saved correctly
                         unlink($pathOutput . $sFilename . '.pdf');
                     }
                     break;
                 case "DOC":
                     $documentData = new \uploadDocumentData($sApplication, $sUserLogged, $pathOutput . $sFilename . '.doc', $sFilename . '.doc', $sDocUID, $oAppDocument->getDocVersion());
                     $documentData->sFileType = "DOC";
                     $documentData->bUseOutputFolder = true;
                     $uploadReturn = $oPluginRegistry->executeTriggers(PM_UPLOAD_DOCUMENT, $documentData);
                     if ($uploadReturn) {
                         //Only delete if the file was saved correctly
                         unlink($pathOutput . $sFilename . '.doc');
                     }
                     break;
             }
         }
         $g->sessionVarRestore();
         $oAppDocument = \AppDocumentPeer::retrieveByPK($aFields['APP_DOC_UID'], $lastDocVersion);
         if ($oAppDocument->getAppDocStatus() == 'DELETED') {
             $oAppDocument->setAppDocStatus('ACTIVE');
             $oAppDocument->save();
         }
         $response = $this->getCasesOutputDocument($applicationUid, $userUid, $aFields['APP_DOC_UID']);
         return $response;
     } catch (\Exception $e) {
         throw $e;
     }
 }