/** * @url PUT /:prjUid/process-supervisor/input-document/:pui_uid * * @param string $prjUid {@min 32} {@max 32} * @param string $pui_uid {@min 32} {@max 32} * @param int $pui_position * * @status 201 */ public function doPutProcessSupervisorInputDocument($prjUid, $pui_uid, $pui_position = null) { try { $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); $objectData = $supervisor->updateProcessSupervisorInputDocument($prjUid, $pui_uid, $pui_position); //Response $response = $objectData; } catch (\Exception $e) { //Response throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } return $response; }
/** * Check if the user is Supervisor * * @param string $applicationUid Unique id of Case * @param string $userUid Unique id of User * * return array Return data of input documents */ public function getCasesInputDocumentsBySupervisor($applicationUid, $userUid) { try { //Verify data Supervisor $application = \ApplicationPeer::retrieveByPK($applicationUid); $flagSupervisor = 0; $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); $processSupervisor = $supervisor->getProcessSupervisors($application->getProUid(), "ASSIGNED"); $arraySupervisor = $processSupervisor["data"]; foreach ($arraySupervisor as $value) { if (!empty($value["usr_uid"]) && $value["usr_uid"] == $userUid) { $flagSupervisor = 1; break; } } $user = new \Users(); $appDocument = new \AppDocument(); $configuraction = new \Configurations(); $confEnvSetting = $configuraction->getFormats(); $arrayInputDocument = array(); //Query $criteria = $this->getAppDocumentCriteriaByData($applicationUid); $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); } if (!empty($arrayInputDocument) && $flagSupervisor == 0) { throw new \Exception(\G::LoadTranslation("ID_USER_IS_NOT_SUPERVISOR")); } //Return return $arrayInputDocument; } catch (\Exception $e) { throw $e; } }
/** * Check if the user is Supervisor * * @param string $applicationUid Unique id of Case * @param string $userUid Unique id of User * * return array Return data of input documents */ public function getCasesInputDocumentsBySupervisor($applicationUid, $userUid) { try { //Verify data Supervisor $application = \ApplicationPeer::retrieveByPK($applicationUid); $flagSupervisor = 0; $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); $arraySupervisor = $supervisor->getProcessSupervisors($application->getProUid()); foreach ($arraySupervisor as $value) { if($value["usr_uid"] == $userUid) { $flagSupervisor = 1; break; } } $user = new \Users(); $appDocument = new \AppDocument(); $configuraction = new \Configurations(); $confEnvSetting = $configuraction->getFormats(); $arrayInputDocument = array(); //Query $criteria = $this->getAppDocumentCriteriaByData($applicationUid); $rsCriteria = \AppDocumentPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); 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"]; $arrayInputDocument[] = $this->getAppDocumentDataFromRecord($row); } if (!empty($arrayInputDocument) && $flagSupervisor == 0) { throw new \Exception(\G::LoadTranslation("ID_USER_IS_NOT_SUPERVISOR")); } //Return return $arrayInputDocument; } catch (\Exception $e) { throw $e; } }