Example #1
0
 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;
 }
Example #2
0
    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;
    }
Example #3
0
 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;
 }