source: pmb4.2/trunk/fuentes/pmb/catalog/serials/ajax/collections_state.inc.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 3.7 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: collections_state.inc.php,v 1.9 2015-04-03 11:16:29 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9function ajax_calculate_collections_state() {
10        global $msg,$id_location,$id_serial;
11       
12        $rqt="select bulletin_id,bulletin_numero,mention_date from bulletins where bulletin_notice=$id_serial order by date_date";
13       
14        $execute_query=pmb_mysql_query($rqt);
15        $compt=pmb_mysql_num_rows($execute_query);
16        $temp="";
17        $i=0;
18        $debut="";
19        $t=array();
20       
21        //est-ce que l'état des collections est localisé
22        if ($id_location){
23                $restrict_location=" and expl_location=$id_location";
24        }else{
25                $restrict_location="";
26        }
27       
28        //parcours des bulletins de la notice de périodique
29        while ($r=pmb_mysql_fetch_object($execute_query)) {
30               
31                $rqt1="select expl_id from exemplaires where expl_bulletin=".$r->bulletin_id.$restrict_location;
32                $compt1=pmb_mysql_num_rows(pmb_mysql_query($rqt1));
33                $temp=pmb_mysql_error();
34                //remplissage d'un tableau avec des trous si le bulletin n'a aucun exemplaire associé
35                if ($compt1==0) {
36                        $t[]="";
37                } else {
38                        $item=$r->bulletin_numero;
39                        if ($r->mention_date) $item.=" (".$r->mention_date.")";
40                        $t[]=$item;
41                        //détermination du premier bulletin de la liste qui a des exemplaires associés
42                        if ($debut === "") $debut=count($t)-1;
43                        //comptage des bulletins avec des exemplaires associés
44                        $i++;
45                }       
46        }
47        //si tous les bulletins ont des exemplaires associés, on prend l'intégralité de la liste
48        if ($i==$compt) {
49                $all="";
50                $all.=$t[$debut];
51                $all.=" - ";
52                $j=count($t)-1;
53                $all.=$t[$j];
54                $temp=$all;
55        } else {
56                $tableau_final=array();
57                //parcours du tableau final
58                for ($j=0;$j<count($t);$j++) {
59                        //si l'élément n'est pas un trou
60                        if ($t[$j]!="") {
61                                $temp1=$t[$j];
62                                $bool=false;
63                                //parcours du tableau à partir de l'élément jusqu'au premier trou existant
64                                for ($x=$j;$x<count($t);$x++) {
65                                        if ($t[$x]=="") {
66                                                if ($t[$x-1]!=$t[$j]) $temp1.=" - ".$t[$x-1];
67                                                $j=$x;
68                                                $x=count($t);
69                                                $bool=true;                                     
70                                        }       
71                                }
72                                //si aucun trou jusqu'à la fin n'est trouvé, on finit la borne par le dernier
73                                //numéro et on quitte la boucle de parcours
74                                if ($bool==false) {
75                                        $temp1.=" - ".$t[count($t)-1];
76                                        $j=count($t);
77                                }
78                                //on remplit un tableau avec les intervalles trouvés
79                                $tableau_final[]=$temp1;
80                        } else {
81                                //on remplit un tableau avec l'élément trouvé
82                                if ($t[$j-1]!="") $tableau_final[]=$t[$j-1];
83                        }
84                }
85                $temp=implode(";",$tableau_final);
86        }
87        ajax_http_send_response($temp,"text/text");
88       
89        return;
90}
91
92function ajax_modify_collections_state() {
93        global $id_serial,$id_location,$texte_coll_state,$charset;
94        if ($id_location) $restrict_location=" and location_id=$id_location";
95        $rqt1="select state_collections from collections_state where id_serial=$id_serial $restrict_location";
96        $execute_query1=pmb_mysql_query($rqt1);
97        if (pmb_mysql_num_rows($execute_query1)) $rqt2="update collections_state set state_collections='".$texte_coll_state."' where id_serial=$id_serial $restrict_location"; 
98                else $rqt2="insert into collections_state (id_serial,location_id,state_collections) values ('$id_serial','$id_location','".$texte_coll_state."')";
99        @pmb_mysql_query($rqt2);
100        if (pmb_mysql_error()) $texte_coll_state=pmb_mysql_error();
101       
102        ajax_http_send_response($texte_coll_state,"text/text");
103        return;
104}
105
106switch ($fname) {
107        case "calculate_collections_state":
108                ajax_calculate_collections_state();
109                break;
110        case "modify_collections_state":
111                ajax_modify_collections_state();
112                break;
113        default:
114                ajax_http_send_error("404 Not Found","Invalid command : ".$fname);
115                break;
116}
117
118?>
Note: See TracBrowser for help on using the repository browser.