public function getFolderContent($folderID, $docIdFilter = array(), $keyword = null, $searchType = null, $limit = 0, $start = 0, $user = '', $onlyActive = false) { require_once "classes/model/AppDocument.php"; require_once "classes/model/InputDocument.php"; require_once "classes/model/OutputDocument.php"; require_once "classes/model/Users.php"; G::LoadClass('case'); $oCase = new Cases(); G::LoadClass('process'); $oProcess = new Process(); $oAppDocument = new AppDocument(); $oCriteria = new Criteria(); 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'); } $numRecTotal = AppDocumentPeer::doCount($oCriteria); $auxCriteria = clone $oCriteria; $auxCriteria->addJoin(AppDocumentPeer::DOC_UID, OutputDocumentPeer::OUT_DOC_UID); $auxCriteria->add(AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT'); $auxCriteria->add(OutputDocumentPeer::OUT_DOC_UID, '-1', Criteria::NOT_EQUAL); $auxCriteria->add(OutputDocumentPeer::OUT_DOC_GENERATE, 'BOTH'); $numRecTotal += AppDocumentPeer::doCount($auxCriteria); $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 (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'))) { if (count($docIdFilter) > 0) { if (in_array($row['APP_DOC_UID'], $docIdFilter)) { $response['documents'][] = $completeInfo; } } elseif ($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; }
public function getDirectoryContentSortedBy ($folderID, $docIdFilter = array(), $keyword = null, $searchType = null, $limit = 0, $start = 0, $user = '', $onlyActive = false, $direction = 'ASC', $ColumnSort = 'appDocCreateDate', $search = null) { G::LoadClass( 'case' ); $oCase = new Cases(); G::LoadClass( 'process' ); $oProcess = new Process(); $oAppDocument = new AppDocument(); $oCriteria = new Criteria(); $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 ((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 ); } require_once ("classes/model/AppDelegation.php"); 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 ))) ); } $numRecTotal = AppDocumentPeer::doCount($oCriteria); $oCase->verifyTable(); //Need to review hot to get the Column Type name switch($ColumnSort) { case 'appDocCreateDate' : $ColumnSort = AppDocumentPeer::APP_DOC_CREATE_DATE; break; case 'name' : $ColumnSort = 'NAME'; break; default: break; } if($direction == 'ASC') { $oCriteria->addAscendingOrderByColumn( $ColumnSort ); } else { $oCriteria->addDescendingOrderByColumn( $ColumnSort ); } $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'] ); if ($completeInfo['APP_DOC_STATUS'] != "DELETED") { 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; }
function getFolderContent($folderID, $docIdFilter = array(), $keyword = NULL, $searchType = NULL, $limit = 0, $start = 0) { require_once "classes/model/AppDocument.php"; require_once "classes/model/InputDocument.php"; require_once "classes/model/OutputDocument.php"; require_once "classes/model/Users.php"; G::LoadClass('case'); $oCase = new Cases(); G::LoadClass('process'); $oProcess = new Process(); $oAppDocument = new AppDocument(); $oCriteria = new Criteria(); 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); } $oCase->verifyTable(); $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX); $oCriteria->addDescendingOrderByColumn(AppDocumentPeer::DOC_VERSION); $response['totalDocumentsCount'] = AppDocumentPeer::doCount($oCriteria); $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 (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'))) { if (count($docIdFilter) > 0) { if (in_array($row['APP_DOC_UID'], $docIdFilter)) { $response['documents'][] = $completeInfo; } } elseif ($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(); } return $response; }