code barre de l'exemplaire concerné $cb_doc -> code barre de l'exemplaire $date_retour -> la nouvelle date de retour (format MySQL) $date_retour_lib -> nouvelle date de retour au format dd mm yyyy */ require_once("$class_path/pret.class.php"); require_once("$class_path/serial_display.class.php"); require_once("$class_path/serials.class.php"); function prolonger($id_prolong) { global $id_empr,$date_retour, $date_retour_lib, $form_cb, $cb_doc, $confirm; global $dbh, $alert_sound_list, $msg; global $pmb_pret_restriction_prolongation, $pmb_pret_nombre_prolongation, $force_prolongation, $bloc_prolongation; global $deflt2docs_location,$pmb_location_reservation; $prolongation=TRUE; //Récupération des ids de notices et de bulletin par rapport à l'id de l'exemplaire placé en paramètre $query = "select expl_cb, expl_notice, expl_bulletin from exemplaires where expl_id='$id_prolong' limit 1"; $result = mysql_query($query, $dbh); if(mysql_num_rows($result)) { $retour = mysql_fetch_object($result); $cb_doc=$retour->expl_cb; //Récupération du nombre de prolongations effectuées pour l'exemplaire $query_prolong = "select cpt_prolongation, retour_initial, pret_date from pret where pret_idexpl=".$id_prolong." limit 1"; $result_prolong = mysql_query($query_prolong, $dbh); $data = mysql_fetch_array($result_prolong); $cpt_prolongation = $data['cpt_prolongation']; $retour_initial = $data['retour_initial']; $pret_date = $data['pret_date']; $pret_day=explode(" ",$pret_date); if($pret_day[0] != today()) $cpt_prolongation++; if ($force_prolongation!=1) { //Rechercher s'il subsiste une réservation à traiter sur le bulletin ou la notice $query_resa = "select count(1) from resa where resa_idnotice=".$retour->expl_notice." and resa_idbulletin=".$retour->expl_bulletin." and (resa_cb='' or resa_cb='$cb_doc')"; if($pmb_location_reservation ) { $query_resa = "select count(1) from resa,empr,resa_loc where resa_idnotice=".$retour->expl_notice." and resa_idbulletin=".$retour->expl_bulletin." and (resa_cb='' or resa_cb='$cb_doc') and resa_idempr=id_empr and empr_location=resa_emprloc and resa_loc='".$deflt2docs_location."' "; } $result_resa = mysql_query($query_resa, $dbh); $has_resa = mysql_result($result_resa,0,0); if (!$has_resa) { if ($pmb_pret_restriction_prolongation>0) { //limitation simple du prêt if($pmb_pret_restriction_prolongation==1) { $pret_nombre_prolongation=$pmb_pret_nombre_prolongation; $forcage_prolongation=1; } else { //Initialisation des quotas pour nombre de prolongations $qt = new quota("PROLONG_NMBR_QUOTA"); //Tableau de passage des paramètres $struct["READER"] = $id_empr; $struct["EXPL"] = $id_prolong; $pret_nombre_prolongation=$qt -> get_quota_value($struct); $forcage_prolongation=$qt -> get_force_value($struct); } if($cpt_prolongation>$pret_nombre_prolongation) { $prolongation=FALSE; } } } else { $prolongation=FALSE; $forcage_prolongation=1; } } //est-ce qu'on a le droit de prolonger if ($prolongation==TRUE) { $query = "update pret set cpt_prolongation='".$cpt_prolongation."' where pret_idexpl=".$id_prolong." limit 1"; mysql_query($query, $dbh); // mettre ici la routine de prolongation $pretProlong = new pret ($id_empr, $id_prolong, $form_cb, "", ""); $resultProlongation = $pretProlong->prolongation ($date_retour); $erreur_affichage=""; } else { if ($retour->expl_notice!=0) { $q= new notice($retour->expl_notice); $nom=$q->tit1; } elseif ($retour->expl_bulletin!=0) { $query = "select bulletin_notice, bulletin_numero,date_date from bulletins where bulletin_id =".$retour->expl_bulletin; $res = mysql_query($query, $dbh); $bull = mysql_fetch_object($res); $q= new serial($bull->bulletin_notice); $nom=$q->tit1.". ".$bull->bulletin_numero." (".formatdate($bull->date_date).")"; } if($has_resa) { if ($bloc_prolongation==0) { $erreur_affichage="
"; $erreur_affichage.=$msg["document_prolong"]." '$nom' : ${msg[393]}"; $erreur_affichage.=""; $erreur_affichage.=" "; $erreur_affichage.="
"; } else { $erreur_affichage.=$msg["document_prolong"]." '$nom' : ${msg[393]}
"; } } else { if ($bloc_prolongation==0) { $erreur_affichage = "
".$msg["document_prolong"]." '$nom' : ".$msg[pret_plolongation_refuse]."
"; $alert_sound_list[]="critique"; $erreur_affichage.= ""; $erreur_affichage.= " "; $erreur_affichage.= "

"; } else { $erreur_affichage.=$msg["document_prolong"]." '$nom' : ".$msg[pret_plolongation_refuse]."
"; } } } } return $erreur_affichage; }