}
}
-$sql = 'SELECT DISTINCT per_id, ';
+$sql = 'SELECT DISTINCT personne.per_id, ';
$sqlfiltre = '';
foreach ($infos as $info) {
continue;
if (get_class ($info['obj']) == 'Info_coche_calcule')
continue;
- $sql .= $info['obj']->fct()." (".$_SESSION['token'].", per_id, '".pg_escape_string ($info['inf_code'])."') AS ".$info['inf_code'].", ";
+ $sql .= $info['obj']->fct()." (".$_SESSION['token'].", personne.per_id, '".pg_escape_string ($info['inf_code'])."') AS ".$info['inf_code'].", ";
if (isset ($_GET['rech-'.$info['inf_code']]) && $_GET['rech-'.$info['inf_code']]) {
if ($type[$info['int_id']]['int_code'] == 'texte') {
$parts = array ();
foreach ($_GET['rech-'.$info['inf_code']] as $val) {
if ($val)
- $parts[] = $info['obj']->fct()." (".$_SESSION['token'].", per_id, '".pg_escape_string ($info['inf_code'])."') ilike '%".$val."%'";
+ $parts[] = $info['obj']->fct()." (".$_SESSION['token'].", personne.per_id, '".pg_escape_string ($info['inf_code'])."') ilike '%".$val."%'";
}
if (count ($parts))
$sqlfiltre .= " AND (".implode (' OR ', $parts).' )';
$parts = array ();
foreach ($_GET['rech-'.$info['inf_code']] as $val) {
if ($val)
- $parts[] = $info['obj']->fct()." (".$_SESSION['token'].", per_id, '".pg_escape_string ($info['inf_code'])."') = ".$val;
+ $parts[] = $info['obj']->fct()." (".$_SESSION['token'].", personne.per_id, '".pg_escape_string ($info['inf_code'])."') = ".$val;
}
if (count ($parts))
$sqlfiltre .= " AND (".implode (' OR ', $parts).' )';
}
$mets = implode (', ', $metparts);
if ($val)
- $parts[] = $info['obj']->fct()." (".$_SESSION['token'].", per_id, '".pg_escape_string ($info['inf_code'])."') IN (".$mets.")";
+ $parts[] = $info['obj']->fct()." (".$_SESSION['token'].", personne.per_id, '".pg_escape_string ($info['inf_code'])."') IN (".$mets.")";
}
if (count ($parts))
$sqlfiltre .= " AND (".implode (' OR ', $parts).' )';
}
}
}
+$sqlstatut = '';
+$sqlstatutjoin = '';
+if ($entite[$lis['ent_id']]['ent_code'] == 'famille' && $lis['lis_locked']) {
+ $sqlstatut = " AND personne_info.inf_code ilike 'famille_'";
+ $sqlstatut .= " AND personne_info_integer_get(".$_SESSION['token'].", personne_info.per_id, 'statut_usager') = ANY(select array_agg(sta_id) from liste_statut inner join liste using (lis_id) where lis_locked and lis_id = ".$lis['lis_id'].")";
+ $sqlstatutjoin = " LEFT JOIN personne_info_lien_familial ON personne_info_lien_familial.per_id_parent = personne.per_id LEFT JOIN personne_info using (pin_id)";
+}
+
$sql = substr ($sql, 0, -2);
if ($entite[$lis['ent_id']]['ent_code'] == 'usager') {
if ($_SESSION['uti_root']) {
- $sql .= ' FROM personne INNER JOIN personne_etablissement USING (per_id) WHERE eta_id = '.$_SESSION['eta_id'];
+ $sql .= ' FROM personne INNER JOIN personne_etablissement USING (per_id)';
+ $sql .= $sqlstatutjoin;
+ $sql .= ' WHERE eta_id = '.$_SESSION['eta_id'];
} else {
- $sql .= ' FROM personne INNER JOIN personne_groupe USING (per_id) INNER JOIN login.grouputil_groupe USING(grp_id) INNER JOIN login.utilisateur_grouputil USING(gut_id) WHERE uti_id = '.$_SESSION['uti_id'];
+ $sql .= ' FROM personne INNER JOIN personne_groupe USING (per_id) INNER JOIN login.grouputil_groupe USING(grp_id) INNER JOIN login.utilisateur_grouputil USING(gut_id)';
+ $sql .= $sqlstatutjoin;
+ $sql .= ' WHERE uti_id = '.$_SESSION['uti_id'];
}
$sql .= " AND ent_code = '".$entite[$lis['ent_id']]['ent_code']."'";
} else {
$sql .= ' FROM personne';
+ $sql .= $sqlstatutjoin;
$sql .= " WHERE ent_code = '".$entite[$lis['ent_id']]['ent_code']."'";
}
$sql .= $sqlfiltre;
+$sql .= $sqlstatut;
//echo $sql;
$sortcol = isset ($_GET['col']) && $_GET['col'] ? $_GET['col'] : 'nom';