<?php
/**
 * cases_ReassignByUser.php
 *
 * ProcessMaker Open Source Edition
 * Copyright (C) 2004 - 2008 Colosa Inc.23
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 */

/**
 * Reassign ByUser routines
 * Author Erik Amaru Ortiz <erik@colosa.com>
 */

try {
    global $RBAC;
    switch ($RBAC->userCanAccess( 'PM_REASSIGNCASE' )) {
        case - 2:
            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
            G::header( 'location: ../login/login' );
            die();
            break;
        case - 1:
            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
            G::header( 'location: ../login/login' );
            die();
            break;
    }

    if (! isset( $_GET['REASSIGN_USER'] )) {
        $_GET['REASSIGN_USER'] = '';
    }
    $_GET['REASSIGN_BY'] = 2;
    $G_MAIN_MENU = 'processmaker';
    $G_SUB_MENU = 'cases';
    $G_ID_MENU_SELECTED = 'CASES';
    $G_ID_SUB_MENU_SELECTED = 'CASES_TO_REASSIGN';
    //////////////////
    ///SELECT USR_UID, CONCAT(USR_FIRSTNAME, ' ', USR_LASTNAME, ' (', USR_USERNAME, ')') AS USER_FULLNAME FROM USERS WHERE USR_STATUS <> 'CLOSED'//////
    require_once 'classes/model/Users.php';
    $oCriteria = new Criteria();
    $oCriteria->addSelectColumn( UsersPeer::USR_UID );
    $oCriteria->addSelectColumn( UsersPeer::USR_USERNAME );
    $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME );
    $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME );
    $oCriteria->addSelectColumn( UsersPeer::USR_EMAIL );
    $oCriteria->add( UsersPeer::USR_STATUS, '', Criteria::NOT_EQUAL );
    $oDataset = UsersPeer::doSelectRS( $oCriteria );
    $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
    ///////////////////////

    $oConf = new Configurations();
    $oConf->loadConfig( $obj, 'ENVIRONMENT_SETTINGS', '' );

    $defaultOption = isset( $oConf->aConfig['format'] ) ? $oConf->aConfig['format'] : '';
    $aUserInfo = array ();
    $aUserInfo[] = array ('USR_UID' => 'char','USER_FULLNAME' => 'char'
    );
    while ($oDataset->next()) {
        $aRow1 = $oDataset->getRow();
        $infoUser = G::getFormatUserList( $defaultOption, $aRow1 );
        $aUserInfo[] = array ('USR_UID' => $aRow1['USR_UID'],'USER_FULLNAME' => $infoUser
        );
    }
    global $_DBArray;
    $_DBArray['aUserInfo'] = $aUserInfo;
    $_SESSION['_DBArray'] = $_DBArray;
    //////////////////
    $G_PUBLISH = new Publisher();
    $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_ReassignBy', '', $_GET );

    $sUserToReassign = trim( $_GET['REASSIGN_USER'] );

    if ($_GET['REASSIGN_USER'] != '') {

        $oTasks = new Tasks();
        $oGroups = new Groups();
        $oUser = new Users();

        $oAppCache = new AppCacheView();

        $oCriteriaToDo = $oAppCache->getToDoListCriteria($sUserToReassign);
        $oCriteriaDraft = $oAppCache->getDraftListCriteria($sUserToReassign);

        $aCasesList = Array ();

        $oDataset = ApplicationPeer::doSelectRS( $oCriteriaToDo );
        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

        while ($oDataset->next()) {
            array_push( $aCasesList, $oDataset->getRow() );
        }

        $oDataset = ApplicationPeer::doSelectRS( $oCriteriaDraft );
        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

        while ($oDataset->next()) {
            array_push( $aCasesList, $oDataset->getRow() );
        }

        $filedNames = Array ("APP_UID","APP_NUMBER","APP_UPDATE_DATE","DEL_PRIORITY","DEL_INDEX","TAS_UID","DEL_INIT_DATE","DEL_FINISH_DATE","USR_UID","APP_STATUS","DEL_TASK_DUE_DATE","APP_CURRENT_USER","APP_TITLE","APP_PRO_TITLE","APP_TAS_TITLE","APP_DEL_PREVIOUS_USER"
        );

        $aCasesList = array_merge( Array ($filedNames
        ), $aCasesList );

        // G::pr($aCasesList); die;


        require_once ('classes/class.xmlfield_InputPM.php');

        global $_DBArray;
        $_DBArray['reassign_byuser'] = $aCasesList;
        $_SESSION['_DBArray'] = $_DBArray;

        $oCriteria = new Criteria( 'dbarray' );
        $oCriteria->setDBArrayTable( 'reassign_byuser' );

        $oHeadPublisher = & headPublisher::getSingleton();
        $oHeadPublisher->addScriptFile( '/jscore/cases/reassignByUser.js' );
        $G_PUBLISH->ROWS_PER_PAGE = 12;
        $G_PUBLISH->AddContent( 'propeltable', 'cases/paged-table-reassigByUser', 'cases/cases_ToReassignByUserList', $oCriteria, Array ('FROM_USR_UID' => $sUserToReassign
        ) );

    }

    G::RenderPage( 'publish', 'blank' );
} catch (Exception $oException) {
    $token = strtotime("now");
    PMException::registerErrorLog($oException, $token);
    G::outRes( G::LoadTranslation("ID_EXCEPTION_LOG_INTERFAZ", array($token)) );
    die;
}
?>
<div id="publisherContent[10]" style="display: none"></div>

<?php

