source: pmb4.1/trunk/fuentes/pmb/circ/prolongation.inc.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 4 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 6.5 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: prolongation.inc.php,v 1.27 2013-04-11 08:04:09 mbertin Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9// script de prolongation d'un prêt
10
11/* on dispose en principe de :
12$form_cb -> code barre de l'exemplaire concerné
13$cb_doc -> code barre de l'exemplaire
14$date_retour -> la nouvelle date de retour (format MySQL)
15$date_retour_lib -> nouvelle date de retour au format dd mm yyyy
16*/ 
17
18require_once("$class_path/pret.class.php");
19require_once("$class_path/serial_display.class.php");
20require_once("$class_path/serials.class.php");
21
22function prolonger($id_prolong) {
23        global $id_empr,$date_retour, $date_retour_lib, $form_cb, $cb_doc, $confirm;
24        global $dbh, $alert_sound_list, $msg;
25        global $pmb_pret_restriction_prolongation, $pmb_pret_nombre_prolongation, $force_prolongation, $bloc_prolongation;
26        global $deflt2docs_location,$pmb_location_reservation;
27       
28                $prolongation=TRUE;     
29       
30                //Récupération des ids de notices et de bulletin par rapport à l'id de l'exemplaire placé en paramètre 
31                $query = "select expl_cb, expl_notice, expl_bulletin from exemplaires where expl_id='$id_prolong' limit 1";
32                $result = mysql_query($query, $dbh);
33       
34                if(mysql_num_rows($result)) {
35                        $retour = mysql_fetch_object($result);
36                       
37                        $cb_doc=$retour->expl_cb;
38                        //Récupération du nombre de prolongations effectuées pour l'exemplaire
39                        $query_prolong = "select cpt_prolongation, retour_initial,  pret_date from pret where pret_idexpl=".$id_prolong." limit 1";
40                        $result_prolong = mysql_query($query_prolong, $dbh);
41                        $data = mysql_fetch_array($result_prolong);
42                        $cpt_prolongation = $data['cpt_prolongation']; 
43                        $retour_initial =  $data['retour_initial'];
44                        $pret_date =  $data['pret_date'];
45                        $pret_day=explode(" ",$pret_date);
46                        if($pret_day[0] != today())     $cpt_prolongation++;                   
47                        if ($force_prolongation!=1) {
48                                //Rechercher s'il subsiste une réservation à traiter sur le bulletin ou la notice
49                                $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')";
50                               
51                                if($pmb_location_reservation ) {       
52                                        $query_resa = "select count(1) from resa,empr,resa_loc
53                                        where resa_idnotice=".$retour->expl_notice." and resa_idbulletin=".$retour->expl_bulletin." and (resa_cb='' or resa_cb='$cb_doc')
54                                        and resa_idempr=id_empr
55                                        and empr_location=resa_emprloc and resa_loc='".$deflt2docs_location."'
56                                        ";
57                                }       
58                                $result_resa = mysql_query($query_resa, $dbh);
59                                $has_resa = mysql_result($result_resa,0,0);
60                                if (!$has_resa) {
61                                        if ($pmb_pret_restriction_prolongation>0) {
62                                                //limitation simple du prêt
63                                                if($pmb_pret_restriction_prolongation==1) {
64                                                        $pret_nombre_prolongation=$pmb_pret_nombre_prolongation;
65                                                        $forcage_prolongation=1;
66                                                } else {
67                                                        //Initialisation des quotas pour nombre de prolongations
68                                                        $qt = new quota("PROLONG_NMBR_QUOTA");
69                                                        //Tableau de passage des paramètres
70                                                        $struct["READER"] = $id_empr;
71                                                        $struct["EXPL"] = $id_prolong;
72                               
73                                                        $pret_nombre_prolongation=$qt -> get_quota_value($struct);             
74                               
75                                                        $forcage_prolongation=$qt -> get_force_value($struct);
76                                                }
77                                                if($cpt_prolongation>$pret_nombre_prolongation) {
78                                                        $prolongation=FALSE;
79                                                }
80                                        }       
81                                } else {
82                                        $prolongation=FALSE;
83                                        $forcage_prolongation=1;
84                                }
85                        }                                               
86                        //est-ce qu'on a le droit de prolonger
87                        if ($prolongation==TRUE) {
88                                $query = "update pret set cpt_prolongation='".$cpt_prolongation."' where pret_idexpl=".$id_prolong." limit 1";
89                                mysql_query($query, $dbh);
90                                               
91                                // mettre ici la routine de prolongation
92                                $pretProlong = new pret ($id_empr, $id_prolong, $form_cb, "", "");
93                                $resultProlongation = $pretProlong->prolongation ($date_retour);
94                                $erreur_affichage="";
95                        } else {
96                                if ($retour->expl_notice!=0) {
97                                        $q= new notice($retour->expl_notice);
98                                        $nom=$q->tit1;
99                                } elseif ($retour->expl_bulletin!=0) {         
100                                        $query = "select bulletin_notice, bulletin_numero,date_date from bulletins where bulletin_id =".$retour->expl_bulletin;
101                                        $res = mysql_query($query, $dbh);       
102                                        $bull = mysql_fetch_object($res);
103                                        $q= new serial($bull->bulletin_notice);
104                                        $nom=$q->tit1.". ".$bull->bulletin_numero." (".formatdate($bull->date_date).")";
105                                }
106                                if($has_resa) {
107                                        if ($bloc_prolongation==0) {
108                                                $erreur_affichage="<table border='0' cellpadding='1' height='40' border='1'><tr><td width='33'><span><img src='./images/quest.png' /></span></td>
109                                                                <td width='100%'>";
110                                                $erreur_affichage.=$msg["document_prolong"]." '$nom' : <span class='erreur'>${msg[393]}</span>";
111                                                $erreur_affichage.="<input type='button' class='bouton' value='${msg[76]}' onClick=\"document.location='./circ.php?categ=pret&form_cb=".rawurlencode($form_cb)."'\">";
112                                                $erreur_affichage.="&nbsp;<input type='button' class='bouton' value='${msg[pret_plolongation_forcage]}' onClick=\"document.location='circ.php?categ=pret&sub=pret_prolongation&form_cb=".rawurlencode($form_cb)."&cb_doc=$cb_doc&id_doc=".$id_prolong."&date_retour=$date_retour&force_prolongation=$forcage_prolongation'\">";
113                                                $erreur_affichage.="</td></tr></table>";
114                                        } else {
115                                                $erreur_affichage.=$msg["document_prolong"]." '$nom' : <span class='erreur'>${msg[393]}</span><br />";
116                                        }
117                                } else {
118                                        if ($bloc_prolongation==0) {
119                                                $erreur_affichage = "<hr />
120                                                <div class='row'>
121                                                        <div class='colonne10'><img src='./images/error.png' /></div>
122                                                        <div class='colonne-suite'>".$msg["document_prolong"]." '$nom' : <span class='erreur'>".$msg[pret_plolongation_refuse]."</span></div>";
123                                                $alert_sound_list[]="critique";
124                                                $erreur_affichage.= "<input type='button' class='bouton' value='${msg[76]}' onClick=\"document.location='./circ.php?categ=pret&id_empr=$id_empr'\" />";
125                                                $erreur_affichage.= "&nbsp;<input type='button' class='bouton' value='${msg[pret_plolongation_forcage]}' onClick=\"document.location='./circ.php?categ=pret&sub=pret_prolongation&form_cb=".rawurlencode($form_cb)."&cb_doc=$cb_doc&id_doc=".$id_prolong."&date_retour=$date_retour&force_prolongation=$forcage_prolongation'\" />";   
126                                                $erreur_affichage.= "</div><br />";
127                                        } else {
128                                                $erreur_affichage.=$msg["document_prolong"]." '$nom' : <span class='erreur'>".$msg[pret_plolongation_refuse]."</span><br />";   
129                                        }
130                                }                       
131                        }
132                }
133        return $erreur_affichage; 
134}
135
136
Note: See TracBrowser for help on using the repository browser.