';
demandes_notes::note_read($note->id_note,true,"_opac");
}
$dialog.='';
}
// Annulation de l'alerte sur l'action dépliée après lecture des nouvelles notes si c'est la personne à laquelle est affectée l'action qui la lit
demandes_actions::action_read($num_action,true,"_opac");
// Mise à jour de la demande dont est issue l'action
demandes_actions::action_majParentEnfant($num_action,$num_demande,"_opac");
$form_dialog_note = str_replace('!!dialog!!',$dialog,$form_dialog_note);
return $form_dialog_note;
}
/*
* Inutile depuis la refonte
* Affichage de la liste des notes associées à une action
*/
public function show_list_notes($idaction=0){
global $form_table_note, $msg, $charset;
$req = "select id_note, CONCAT(SUBSTRING(contenu,1,50),'','...') as titre, contenu, date_note, prive, rapport,notes_num_user,notes_type_user
from demandes_notes where num_action='".$idaction."' and num_note_parent=0 order by date_note desc ,id_note desc";
$res = pmb_mysql_query($req);
$liste ="";
if(pmb_mysql_num_rows($res)){
while(($note = pmb_mysql_fetch_object($res))){
$createur = $this->getCreateur($note->notes_num_user,$note->notes_type_user);
$contenu = "
";
$contenu .= $this->getChilds($fille->id_note);
if(strlen($fille->titre)<50){
$fille->titre = str_replace('...','',$fille->titre);
}
$display .= "".gen_plus("note_".$fille->id_note,"[".formatdate($fille->date_note)."] ".$fille->titre.($createur ? " ".sprintf($msg['demandes_action_by'],$createur."") : ""), $contenu)."";
}
}
return $display;
}
/*
* Alerte par mail
*/
public function send_alert_by_mail($idsender){
global $msg, $empr_nom, $empr_prenom, $empr_mail,$opac_url_base,$pmb_url_base,$demandes_email_generic;
if ($demandes_email_generic) {
$deg=explode(",",$demandes_email_generic);
if (($deg[0]==2)||($deg[0]==3)) {
$bcc=$deg[1];
} else $bcc="";
}
$contenu = sprintf($msg['demandes_note_mail_new'],$empr_prenom." ".$empr_nom." " ,$this->libelle_action,$this->libelle_demande).' ';
$contenu.=$this->contenu.' ';
$lien_opac=''.$msg['demandes_see_last_note'].'';
$lien_gestion=''.$msg['demandes_see_last_note'].'';
$objet = $msg['demandes_note_mail_new_object'];
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1";
//Envoi du mail aux autres documentalistes concernés par la demande
$req = "SELECT user_email, prenom,nom FROM users
JOIN demandes_users ON num_user=userid
WHERE num_demande='".$this->num_demande."' AND num_user !='".$idsender."'";
$res = pmb_mysql_query($req);
while(($user = pmb_mysql_fetch_object($res))){
if($user->user_email){
if($user->prenom){
$user->nom=$user->prenom.' '.$user->nom;
}
$envoi_OK = mailpmb($user->nom,$user->user_email,$objet,$contenu.$lien_gestion,$empr_prenom." ".$empr_nom,$empr_mail,$headers,"", $bcc );
}
}
}
/*
* Retourne le nom de celui qui a créé l'action
*/
public function getCreateur($id_createur,$type_createur=0){
if(!$type_createur)
$rqt = "select concat(prenom,' ',nom) as nom, username from users where userid='".$id_createur."'";
else
$rqt = "select concat(empr_prenom,' ',empr_nom) as nom from empr where id_empr='".$id_createur."'";
$res = pmb_mysql_query($rqt);
if(pmb_mysql_num_rows($res)){
$createur = pmb_mysql_fetch_object($res);
return (trim($createur->nom) ? $createur->nom : $createur->username);
}
return "";
}
/*
* Met à jour les alertes sur l'action et la demande en gestion dont dépend la note
*/
public static function note_majParent($id_note,$id_action,$id_demande,$side="_opac"){
$id_note = intval($id_note);
$id_action = intval($id_action);
$id_demande = intval($id_demande);
$ok = false;
if($id_note){
$select = "SELECT notes_read".$side." FROM demandes_notes WHERE id_note=".$id_note;
$result = pmb_mysql_query($select);
$read = pmb_mysql_result($result,0,0);
if($read == 1){
if(demandes_actions::action_read($id_action,false,$side) && demandes::demande_read($id_demande,false,$side)){
$ok = true;
}
} else {
// maj action : controle s'il existe des notes non lues pour l'action en cours
$query = "SELECT notes_read".$side." FROM demandes_notes WHERE num_action=".$id_action." AND id_note!=".$id_note." AND notes_read".$side."=1";
$result = pmb_mysql_query($query);
if(pmb_mysql_num_rows($result)){
$ok = demandes_actions::action_read($id_action,false,$side);
} else {
$ok = demandes_actions::action_read($id_action,true,$side);
}
// maj demande : controle s'il existe des actions non lues pour la demande en cours
if($ok){
$query = "SELECT actions_read".$side." FROM demandes_actions WHERE num_demande=".$id_demande." AND id_action!=".$id_action." AND actions_read".$side."=1";
$result = pmb_mysql_query($query);
if(pmb_mysql_num_rows($result)){
$ok = demandes::demande_read($id_demande,false,$side);
} else {
$ok = demandes::demande_read($id_demande,true,$side);
}
}
}
}
return $ok;
}
/*
* Met à jour les alertes sur l'action et la demande dont dépend la note
*/
public static function note_read($id_note,$booleen=true,$side="_opac"){
$id_note = intval($id_note);
$value = "";
if($booleen){
$value = 0;
} else {
$value = 1;
}
$query = "UPDATE demandes_notes SET notes_read".$side."=".$value." WHERE id_note=".$id_note;
pmb_mysql_query($query);
}
}
?>