abt_id=$r->abt_id;
$this->abt_name=$r->abt_name;
$this->num_notice=$r->num_notice;
$this->base_modele_name=$r->base_modele_name;
$this->base_modele_id=$r->base_modele_id;
$this->num_notice=$r->num_notice; //numéro de la notice liée
$this->duree_abonnement=$r->duree_abonnement; //Durée de l'abonnement
$this->date_debut=$r->date_debut; //Date de début de validité du modèle
$this->date_fin=$r->date_fin; //Date de fin de validité du modèle
$this->fournisseur=$r->fournisseur;// id du fournisseur
$this->destinataire=$r->destinataire;
$this->cote=$r->cote;
$this->typdoc_id=$r->typdoc_id;
$this->exemp_auto=$r->exemp_auto;
$this->location_id=$r->location_id;
$this->section_id=$r->section_id;
$this->lender_id=$r->lender_id;
$this->statut_id=$r->statut_id;
$this->codestat_id=$r->codestat_id;
$this->type_antivol=$r->type_antivol;
$this->abt_numeric=$r->abt_numeric;
} else {
$this->error=true;
$this->error_message="Le modèle demandé n'existe pas";
}
}
}
function getData() {
if ($this->abt_id) {
$requete="select * from abts_abts where abt_id=".$this->abt_id;
$resultat=mysql_query($requete);
if (mysql_num_rows($resultat)) {
$r=mysql_fetch_object($resultat);
$this->abt_id=$r->abt_id;
$this->abt_name=$r->abt_name;
$this->num_notice=$r->num_notice;
$this->base_modele_name=$r->base_modele_name;
$this->base_modele_id=$r->base_modele_id;
$this->num_notice=$r->num_notice; //numéro de la notice liée
$this->duree_abonnement=$r->duree_abonnement; //Durée de l'abonnement
$this->date_debut=$r->date_debut; //Date de début de validité du modèle
$this->date_fin=$r->date_fin; //Date de fin de validité du modèle
$this->fournisseur=$r->fournisseur;// id du fournisseur
$this->destinataire=$r->destinataire;
$this->cote=$r->cote;
$this->typdoc_id=$r->typdoc_id;
$this->exemp_auto=$r->exemp_auto;
$this->location_id=$r->location_id;
$this->section_id=$r->section_id;
$this->lender_id=$r->lender_id;
$this->statut_id=$r->statut_id;
$this->codestat_id=$r->codestat_id;
$this->type_antivol=$r->type_antivol;
$this->abt_numeric=$r->abt_numeric;
} else {
$this->error=true;
$this->error_message="Le modèle demandé n'existe pas";
}
}
}
function set_perio($num_notice) {
$this->num_notice=0;
$requete="select niveau_biblio from notices where notice_id=".$num_notice;
$resultat=mysql_query($requete);
if (mysql_num_rows($resultat)) {
if (mysql_result($resultat,0,0)=="s")
$this->num_notice=$num_notice;
} else {
$this->error=true;
$this->error_message="La notice liée n'existe pas ou n'est pas un périodique";
}
}
function show_abonnement() {
global $abonnement_view,$serial_id;
global $dbh,$msg;
$perio=new serial_display($this->num_notice,1);
$r=$abonnement_view;
$r=str_replace("!!view_id_abonnement!!","catalog.php?categ=serials&sub=abon&serial_id=$serial_id&abt_id=$this->abt_id",$r);
$r=str_replace("!!id_abonnement!!",$this->abt_id,$r);
$r=str_replace("!!abonnement_header!!",$this->abt_name,$r);
$modele=0;
$modele_list="";
$requete="select modele_id from abts_abts_modeles where abt_id='$this->abt_id'";
$resultat=mysql_query($requete, $dbh);
while ($r_a=mysql_fetch_object($resultat)) {
$modele_id=$r_a->modele_id;
$modele_name=pmb_sql_value("select modele_name from abts_modeles where modele_id='$modele_id'");
$num_periodicite=pmb_sql_value("select num_periodicite from abts_modeles where modele_id='$modele_id'");
$periodicite=pmb_sql_value("SELECT libelle from abts_periodicites where periodicite_id='".$num_periodicite."'");
if ($modele_list) $modele_list.=",";
$modele_list.=" $modele_name";
if($periodicite) $modele_list.=" ($periodicite)";
}
$r=str_replace("!!modele_lie!!",$modele_list,$r);
$r=str_replace("!!duree_abonnement!!",$this->duree_abonnement,$r);
$r=str_replace("!!date_debut!!",format_date($this->date_debut),$r);
$r=str_replace("!!date_fin!!",format_date($this->date_fin),$r);
$r=str_replace("!!nombre_de_series!!",pmb_sql_value("select sum(nombre) from abts_grille_abt where num_abt='$this->abt_id' and type ='1'"),$r);
$r=str_replace("!!nombre_de_horsseries!!",pmb_sql_value("select sum(nombre) from abts_grille_abt where num_abt='$this->abt_id' and type ='2'"),$r);
if($this->fournisseur) $fournisseur_name=$msg["abonnements_fournisseur"].": ".pmb_sql_value("SELECT raison_sociale from entites where id_entite = '".$this->fournisseur."' ");
$r=str_replace("!!fournisseur!!",$fournisseur_name,$r);
$r=str_replace("!!commentaire!!",$this->destinataire,$r);
return $r;
}
function show_form() {
global $creation_abonnement_form;
global $serial_header;
global $msg;
global $charset;
global $tpl_del_bouton,$tpl_copy_bouton,$serial_id,$edition_abonnement_form,$pmb_antivol;
global $dbh;
if (!$this->abt_id) {
$r=$serial_header.$creation_abonnement_form;
$r=str_replace('!!page_title!!', $msg[4000].$msg[1003].$msg["abts_abonnements_add_title"], $r);
$r=str_replace('!!libelle_form!!', $msg["abts_abonnements_add_title"], $r);
//Checkbox des modèles à associer à l'abonnement
$resultat=mysql_query("select modele_id,modele_name from abts_modeles where num_notice='$serial_id'");
$liste_modele="
";
//Confection du javascript pour tester au moins une sélection de modèle
$test_liste_modele="if(";
$cpt=0;
while ($rp=mysql_fetch_object($resultat)) {
if( $cpt++ >0) $test_liste_modele.=" || ";
$liste_modele.="
".mysql_error());
while ($r_a=mysql_fetch_object($resultat)) {
$modele_id=$r_a->modele_id;
$num=$r_a->num;
$vol=$r_a->vol;
$tome=$r_a->tome;
$delais=$r_a->delais;
$critique=$r_a->critique;
$modele_name=pmb_sql_value("select modele_name from abts_modeles where modele_id='$modele_id'");
$num_periodicite=pmb_sql_value("select num_periodicite from abts_modeles where modele_id='$modele_id'");
$periodicite=pmb_sql_value("select libelle from abts_periodicites where periodicite_id ='".$num_periodicite."'");
$num_statut=$r_a->num_statut_general;
if($periodicite) $modele_name.=" ($periodicite)";
if(!$num_statut)$num_statut=$this->statut_id;
$modele_list.=$this->gen_tpl_abt_modele($modele_id,$modele_name,$num,$vol,$tome,$delais,$critique,$num_statut);
}
$r=str_replace("!!modele_list!!",$modele_list,$r);
// calendrier de réception s'il y a des enregistrement présents dans la grille
if (pmb_sql_value("select sum(nombre) from abts_grille_abt where num_abt='$this->abt_id'"))
{
$calend="
";
$calend.= <<
function ad_date(obj,e) {
if(!e) e=window.event;
var tgt = e.target || e.srcElement; // IE doesn't use .target
var strid = tgt.id;
var type = tgt.tagName;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
var id_obj=document.getElementById(obj);
var pos=findPos(id_obj);
var url="./catalog/serials/abonnement/abonnement_parution_edition.php?abonnement_id=!!abonnement_id!!&date_parution="+obj+"&type_serie=1&numero=";
var notice_view=document.createElement("iframe");
notice_view.setAttribute('id','frame_abts');
notice_view.setAttribute('name','periodique');
notice_view.src=url;
var att=document.getElementById("att");
notice_view.style.visibility="hidden";
notice_view.style.display="block";
notice_view=att.appendChild(notice_view);
w=notice_view.clientWidth;
h=notice_view.clientHeight;
notice_view.style.left=pos[0]+"px";
notice_view.style.top=pos[1]+"px";
notice_view.style.visibility="visible";
}
function duplique(obj,e) {
if(!e) e=window.event;
var tgt = e.target || e.srcElement; // IE doesn't use .target
var strid = tgt.id;
var type = tgt.tagName;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
var id_obj=document.getElementById(obj);
var pos=findPos(id_obj);
var url="./catalog/serials/abonnement/abonnement_duplique.php?abonnement_id=!!abonnement_id!!&serial_id=!!serial_id!!";
var notice_view=document.createElement("iframe");
notice_view.setAttribute('id','frame_abts');
notice_view.setAttribute('name','periodique');
notice_view.src=url;
var att=document.getElementById("att");
notice_view.style.visibility="hidden";
notice_view.style.display="block";
notice_view=att.appendChild(notice_view);
w=notice_view.clientWidth;
h=notice_view.clientHeight;
posx=(getWindowWidth()/2-(w/2))<0?0:(getWindowWidth()/2-(w/2))
posy=(getWindowHeight()/2-(h/2))<0?0:(getWindowHeight()/2-(h/2));
notice_view.style.left=posx+"px";
notice_view.style.top=posy+"px";
notice_view.style.visibility="visible";
}
function kill_frame_periodique() {
var notice_view=document.getElementById("frame_abts");
notice_view.parentNode.removeChild(notice_view);
}
ENDOFTEXT;
$calend=str_replace("!!serial_id!!",$serial_id,$calend);
$calend=str_replace("!!abonnement_id!!",$this->abt_id,$calend);
$base_url="./catalog.php?categ=serials&sub=abonnement&serial_id="."$serial_id&abonnement_id=$this->abonnement_id";
$base_url_mois='';
$calend.= "
\n";
$calend.="";
$r.=$calend;
}
$r=str_replace("!!test_liste_modele!!","",$r);
}
$r=str_replace("!!action!!","./catalog.php?categ=serials&sub=abon&serial_id="."$serial_id"."&abt_id="."$this->abt_id",$r);
$r=str_replace('!!bouton_prolonge!!', $bouton_prolonge, $r);
$r=str_replace("!!serial_id!!",$serial_id,$r);
//Remplacement des valeurs
$r=str_replace("!!abt_id!!",htmlentities($this->abt_id,ENT_QUOTES,$charset),$r);
$r=str_replace("!!abt_name!!",htmlentities($this->abt_name,ENT_QUOTES,$charset),$r);
//Notice mère
$perio=new serial_display($this->num_notice,1);
$r=str_replace("!!num_notice_libelle!!",$perio->header,$r);
$r=str_replace("!!num_notice!!",$this->num_notice,$r);
return $r;
}
// ----------------------------------------------------------------------------
// fonction do_selector qui génère des combo_box avec tout ce qu'il faut
// ----------------------------------------------------------------------------
function do_selector() {
global $dbh;
global $charset;
global $deflt_docs_section;
global $deflt_docs_location;
if (!$this->section_id) $this->section_id=$deflt_docs_section ;
if (!$this->location_id) $this->location_id=$deflt_docs_location;
$rqtloc = "SELECT idlocation FROM docs_location order by location_libelle";
$resloc = mysql_query($rqtloc, $dbh);
while ($loc=mysql_fetch_object($resloc)) {
$requete = "SELECT idsection, section_libelle FROM docs_section, docsloc_section where idsection=num_section and num_location='$loc->idlocation' order by section_libelle";
$result = mysql_query($requete, $dbh);
$nbr_lignes = mysql_num_rows($result);
if ($nbr_lignes) {
if ($loc->idlocation==$this->location_id) $selector .= "