$keywords = CValue::get("keywords");
$first = intval(CValue::get("first", 0));
$group = CGroups::loadCurrent();
// Procédure active et non annulée
$where = array();
$where[] = "annule = '0' OR annule IS NULL";
$where[] = "doc_ged.group_id = '{$group->_id}' OR doc_ged.group_id IS NULL";
$where["actif"] = "= '1'";
$where[] = "date = (SELECT max(date) FROM doc_ged_suivi d1 WHERE d1.doc_ged_id = doc_ged.doc_ged_id AND actif = '1')";
if ($theme_id) {
    $where["doc_theme_id"] = "= '{$theme_id}'";
}
if ($chapitre_id) {
    $chapitre = new CChapitreDoc();
    $chapitre->load($chapitre_id);
    $chapitre->loadChapsDeep();
    $where["doc_ged.doc_chapitre_id"] = CSQLDataSource::prepareIn($chapitre->_chaps_and_subchaps);
}
if ($keywords) {
    $where["doc_ged.titre"] = "LIKE '%{$keywords}%'";
}
$ljoin = array();
$ljoin["doc_ged_suivi"] = "doc_ged.doc_ged_id = doc_ged_suivi.doc_ged_id";
$ljoin["doc_categories"] = "doc_ged.doc_categorie_id = doc_categories.doc_categorie_id";
$ljoin["doc_chapitres"] = "doc_ged.doc_chapitre_id = doc_chapitres.doc_chapitre_id";
$group = "doc_ged.doc_ged_id";
if ($sort_by == 'ref') {
    $sort_way = "ASC";
    if (CAppUI::conf("dPqualite CDocGed _reference_doc")) {
        $sort_by = $group = "doc_categories.code, doc_chapitres.code, doc_ged.num_ref";
    } else {