source: pmb4.2/trunk/fuentes/pmb/acquisition/suggestions/func_suggestions.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: 14.6 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: func_suggestions.inc.php,v 1.22 2015-04-03 11:16:25 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9// gestion des suggestions
10require_once($class_path.'/entites.class.php');
11require_once($class_path.'/suggestions.class.php');
12require_once($class_path.'/suggestions_origine.class.php');
13require_once($class_path.'/suggestions_map.class.php');
14require_once($include_path.'/mail.inc.php');
15require_once($include_path.'/explnum.inc.php');
16require_once($class_path.'/explnum_doc.class.php');
17require_once($class_path.'/z3950_notice.class.php');
18
19//Supprime la suggestion
20function sup_sug() {
21
22        global $id_sug;
23               
24        suggestions::delete($id_sug);
25        suggestions_origine::delete($id_sug);   
26       
27}
28
29
30//Enregistre la suggestion
31function update_sug() {
32
33        global $id_bibli, $id_sug,$id_notice;   
34        global $tit, $edi, $aut, $cod, $pri, $com, $com_gestion, $date_publi;
35        global $statut, $orig, $typ, $url_sug, $sug_src;       
36        global $sug_map;
37        global $acquisition_sugg_categ, $acquisition_sugg_categ_default;
38        global $num_categ;
39        global $sugg_location_id;
40        global $nombre_expl;
41        global $creator_orig_id;
42        global $dbh;
43       
44        if (!$id_sug && suggestions::exists($orig, $tit, $aut, $edi, $cod)) return;
45       
46        $sug = new suggestions($id_sug);
47        $sug->titre = stripslashes($tit);
48        $sug->editeur = stripslashes($edi);
49        $sug->auteur = stripslashes($aut);
50        $sug->code = stripslashes($cod);       
51        $sug->num_notice=$id_notice;
52        $pri = str_replace(',','.',$pri);
53        if (is_numeric($pri)) $sug->prix = $pri; 
54        $sug->url_suggestion = stripslashes($url_sug);
55        $sug->commentaires = stripslashes($com);
56        $sug->commentaires_gestion = stripslashes($com_gestion);
57        $sug->nb=$nombre_expl;
58        $sug->date_publi = $date_publi;
59        $sug->sugg_src = $sug_src; 
60               
61        $q = "select count(1) from docs_location where idlocation = '".$sugg_location_id."' ";
62        $r = pmb_mysql_query($q); 
63        if ($sugg_location_id && pmb_mysql_result($r, 0, 0)) {
64                $sug->sugg_location=$sugg_location_id;
65        } else {
66                $sug->sugg_location=0;
67        }       
68       
69        // chargement de la PJ
70        $explnum_doc = "";
71        if($_FILES['piece_jointe_sug']['name']){                       
72                $explnum_doc = new explnum_doc();
73                $explnum_doc->load_file($_FILES['piece_jointe_sug']);
74                $explnum_doc->analyse_file();
75        } 
76                       
77        if (!$id_sug) {
78
79                $sug->statut = $sug_map->getFirstStateId(); 
80                $sug->date_creation = today();
81
82                if ($num_categ && suggestions_categ::exists($num_categ)) {
83                        $sug->num_categ=$num_categ;
84                } else {
85                        $sug->num_categ='1';
86                }
87               
88                $sug->save($explnum_doc);               
89               
90                $sug_orig = new suggestions_origine($orig, $sug->id_suggestion);
91                $sug_orig->type_origine = $typ;
92                $sug_orig->save();
93               
94        } else {
95               
96                if ($num_categ && suggestions_categ::exists($num_categ)) {
97                        $sug->num_categ=$num_categ;
98                }                                               
99                $sug->save($explnum_doc);
100                               
101                if($creator_orig_id){
102                        $sug_orig = new suggestions_origine($creator_orig_id, $sug->id_suggestion);
103                        $sug_orig->type_origine = $typ;
104                        $sug_orig->save();
105                }
106               
107        }
108
109}
110
111
112//Fusionne les suggestions cochées
113//En cours/Validées
114function sug_fusChk(){
115
116        global $dbh;
117        global $msg, $charset;
118        global $error;
119        global $current_module;
120        global $chk;
121        global $bt_fusVal, $script;
122        global $sug_map;
123       
124        $tab_enc = array();
125        $tab_val = array();
126        foreach($chk as $key=>$id_sug) {
127                $sug = new suggestions($id_sug);
128                       
129                $state_name = $sug_map->getStateNameFromId($sug->statut);
130                $merge=$sug_map->getState_MERGE($state_name);
131                if ($merge == 'FROM') $tab_enc[] = $sug;
132                if ($merge == 'TO') $tab_val[] = $sug;                 
133
134
135        }
136       
137        $titre = htmlentities($msg['acquisition_sug_fus'].' : '.$msg['acquisition_sug'], ENT_QUOTES, $charset);
138        $action ="./acquisition.php?categ=sug&action=fusVal";
139
140        print "
141                        <form class='form-$current_module' id='sug_list_form' name='sug_list_form' method='post' action=\"$action\" >
142                        <h3>$titre</h3>
143                        <!--    Contenu du form    -->
144                        <div class='form-contenu'>
145                                <table width='100%'>
146                                        <tr>
147                                                <th>".htmlentities($msg['acquisition_sug_dat_cre'], ENT_QUOTES, $charset)."</th>
148                                                <th>".htmlentities($msg['acquisition_sug_tit'], ENT_QUOTES, $charset)."</th>
149                                                <th>".htmlentities($msg['acquisition_sug_edi'], ENT_QUOTES, $charset)."</th>
150                                                <th>".htmlentities($msg['acquisition_sug_aut'], ENT_QUOTES, $charset)."</th>
151                                                <th>".htmlentities($msg['acquisition_sug_etat'], ENT_QUOTES, $charset)."</th>   
152                                                <th>&nbsp;</th>
153                                        </tr>";
154                               
155        $parity=1;
156
157        if(count($tab_val) != 0) {      //S'il y a des suggestions validées, on ne peut fusionner qu'avec l'une d'elles.
158               
159                foreach($tab_val as $key=>$sug) {
160                                               
161                        $lib_statut = htmlentities($msg['acquisition_sug_val'], ENT_QUOTES, $charset);
162                       
163                        if ($parity % 2) {
164                                $pair_impair = "even";
165                        } else {
166                                $pair_impair = "odd";
167                        }
168                        $parity += 1;
169                        $tr_javascript = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" onclick=\"document.getElementById('chk[".$sug->id_suggestion."]').checked = true;\"";
170                    print ("<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer' >
171                                                <td><i>".formatdate($sug->date_creation)."</i></td>
172                                                <td><i>".htmlentities($sug->titre, ENT_QUOTES, $charset)."</i></td>
173                                                <td><i>".htmlentities($sug->editeur, ENT_QUOTES, $charset)."</i></td>
174                                                <td><i>".htmlentities($sug->auteur, ENT_QUOTES, $charset)."</i></td>
175                                                <td><i>$lib_statut</i></td>
176                                                <td>
177                                                        <input type='hidden' name='sug[]' value='".$sug->id_suggestion."' />
178                                                        <input type='radio' id='chk[".$sug->id_suggestion."]' name='chk[]' value='".$sug->id_suggestion."' />
179                                                </td>
180                                        </tr>");
181                }
182                foreach($tab_enc as $key=>$sug) {
183                                               
184                        $lib_statut = htmlentities($msg['acquisition_sug_enc'], ENT_QUOTES, $charset);
185                       
186                        if ($parity % 2) {
187                                $pair_impair = "even";
188                        } else {
189                                $pair_impair = "odd";
190                        }
191                        $parity += 1;
192                        $tr_javascript = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" ";
193                    print ("<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer' >
194                                                <td><i>".formatdate($sug->date_creation)."</i></td>
195                                                <td><i>".htmlentities($sug->titre, ENT_QUOTES, $charset)."</i></td>
196                                                <td><i>".htmlentities($sug->editeur, ENT_QUOTES, $charset)."</i></td>
197                                                <td><i>".htmlentities($sug->auteur, ENT_QUOTES, $charset)."</i></td>
198                                                <td><i>$lib_statut</i></td>
199                                                <td>
200                                                        <input type='hidden' name='sug[]' value='".$sug->id_suggestion."' />
201                                                </td>
202                                        </tr>");
203                }
204
205               
206        } else {        //Sinon on peut fusionner avec n'importe quelle suggestion.
207
208                foreach($tab_val as $key=>$sug) {
209                                               
210                        $lib_statut = htmlentities($msg['acquisition_sug_val'], ENT_QUOTES, $charset);
211                       
212                        if ($parity % 2) {
213                                $pair_impair = "even";
214                        } else {
215                                $pair_impair = "odd";
216                        }
217                        $parity += 1;
218                        $tr_javascript = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" onclick=\"document.getElementById('chk[".$sug->id_suggestion."]').checked = true;\"";
219                    print ("<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer' >
220                                                <td><i>".formatdate($sug->date_creation)."</i></td>
221                                                <td><i>".htmlentities($sug->titre, ENT_QUOTES, $charset)."</i></td>
222                                                <td><i>".htmlentities($sug->editeur, ENT_QUOTES, $charset)."</i></td>
223                                                <td><i>".htmlentities($sug->auteur, ENT_QUOTES, $charset)."</i></td>
224                                                <td><i>$lib_statut</i></td>
225                                                <td>
226                                                        <input type='hidden' name='sug[]' value='".$sug->id_suggestion."' />
227                                                        <input type='radio' id='chk[".$sug->id_suggestion."]' name='chk[]' value='".$sug->id_suggestion."' />
228                                                </td>
229                                        </tr>");
230                }
231                foreach($tab_enc as $key=>$sug) {
232                                               
233                        $lib_statut = htmlentities($msg['acquisition_sug_enc'], ENT_QUOTES, $charset);
234                       
235                        if ($parity % 2) {
236                                $pair_impair = "even";
237                        } else {
238                                $pair_impair = "odd";
239                        }
240                        $parity += 1;
241                        $tr_javascript = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" onclick=\"document.getElementById('chk[".$sug->id_suggestion."]').checked = true;\"";
242                    print ("<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer' >
243                                                <td><i>".formatdate($sug->date_creation)."</i></td>
244                                                <td><i>".htmlentities($sug->titre, ENT_QUOTES, $charset)."</i></td>
245                                                <td><i>".htmlentities($sug->editeur, ENT_QUOTES, $charset)."</i></td>
246                                                <td><i>".htmlentities($sug->auteur, ENT_QUOTES, $charset)."</i></td>
247                                                <td><i>$lib_statut</i></td>
248                                                <td>
249                                                        <input type='hidden' name='sug[]' value='".$sug->id_suggestion."' />
250                                                        <input type='radio' id='chk[".$sug->id_suggestion."]' name='chk[]' value='".$sug->id_suggestion."' />
251                                                </td>
252                                        </tr>");
253                }
254               
255        }
256       
257        print "         </table>
258                        </div>
259                        <div class='row'>
260                                <div class='left'>
261                                        <input type='button' class='bouton' value='$msg[76]' onClick=\"history.go(-1);\" />
262                                </div>
263                                <div class='right'>".$bt_fusVal."</div>
264                        </div>
265                        <div class='row'></div>
266                        </div>
267                        </form>";
268        print $script;                 
269                       
270}
271
272
273//Valide la fusion de suggestions
274function sug_fusVal(){
275       
276        global $dbh; 
277        global $msg, $charset;
278        global $chk, $sug;
279
280        $fus = new suggestions($chk[0]);
281        $q = suggestions_origine::listOccurences($chk[0], 1);
282        $tab_orig = pmb_mysql_query($q, $dbh);
283        $row_orig = pmb_mysql_fetch_object($tab_orig);
284        $orig = $row_orig->origine;
285       
286        foreach($sug as $key=>$id_sug) {
287                if ($id_sug != $chk[0]){
288                        suggestions::delete($id_sug);
289                        suggestions_origine::fusionne($orig, $id_sug, $chk[0]);
290                }
291        }
292       
293}
294
295
296//Recuperation du statut session d'affichage des suggestions
297function getSessionSugState() {
298        global $deflt3sug_statut;
299        if (!$_SESSION['sug_statut'] && $deflt3sug_statut) {
300                $_SESSION['sug_statut']=$deflt3sug_statut;
301        }
302        return $_SESSION['sug_statut'];
303}
304//Definition du statut session d'affichage des suggestions
305function setSessionSugState($statut) {
306        $_SESSION['sug_statut']=$statut;
307        return;
308}
309
310//Catalogue la notice à partir du blob unimarc
311function save_unimarc_notice(){
312        global $msg, $idbibli, $id_sug, $dbh;
313       
314        $req_uni = "select notice_unimarc from suggestions where id_suggestion='".$id_sug."'";
315        $res = pmb_mysql_query($req_uni,$dbh);
316        if(pmb_mysql_num_rows($res)){
317                $notice_uni = pmb_mysql_result($res,0,0);
318        }
319        $z=new z3950_notice("form");
320        if($notice_uni) $z->notice = $notice_uni;
321        $ret=$z->insert_in_database();
322        if ($ret[0]) {
323                if($z->bull_id && $z->perio_id){
324                        $notice_display=new serial_display($ret[1],6);
325                } else $notice_display=new mono_display($ret[1],6);
326                $retour = "
327                <script src='javascript/tablist.js'></script>
328                <br /><div class='erreur'></div>
329                <div class='row'>
330                        <div class='colonne10'>
331                                <img src='./images/tick.gif' align='left'>
332                        </div>
333                        <div class='colonne80'>
334                                <strong>".$msg["z3950_integr_not_ok"]."</strong>
335                                ".$notice_display->result."
336                        </div>
337                </div>
338                <div class='row'>";
339               
340                if($z->bull_id && $z->perio_id)
341                        $url_view = "catalog.php?categ=serials&sub=bulletinage&action=view&bul_id=$z->bull_id&art_to_show=$ret[1]";
342                else $url_view = "catalog.php?categ=isbd&id=".$ret[1];
343                $retour .= "
344                <form class='form-$current_module' name='dummy' >
345                        <input type='hidden' name='page' value='".htmlentities($page,ENT_QUOTES,$charset)."'/> 
346                        <input type='button' name='ok' class='bouton' value='".$msg["bt_retour"]."'  onClick=\"document.location='acquisition.php?categ=sug&action=modif&id_bibli=$idbibli&id_sug=$id_sug'\" />&nbsp;
347                        <input type='button' name='cancel' class='bouton' value='".$msg["z3950_integr_not_lavoir"]."' onClick=\"document.location='$url_view'\"/>
348                </form>
349                <script type='text/javascript'>
350                        document.forms['dummy'].elements['ok'].focus();
351                </script>
352                </div>
353                ";
354                print $retour;
355               
356                //On attache la notice à la suggestion
357                $req = " update suggestions set num_notice='".$ret[1]."' where id_suggestion='".$id_sug."'";
358                pmb_mysql_query($req,$dbh);
359               
360        } else if ($ret[1]){
361                if($z->bull_id && $z->perio_id){
362                        $notice_display=new serial_display($ret[1],6);
363                } else $notice_display=new mono_display($ret[1],6);
364                $retour = "
365                <script src='javascript/tablist.js'></script>
366                <br /><div class='erreur'>$msg[540]</div>
367                <div class='row'>
368                        <div class='colonne10'>
369                                <img src='./images/error.gif' align='left'>
370                        </div>
371                        <div class='colonne80'>
372                                <strong>".($msg["z3950_integr_not_existait"])."</strong><br /><br />
373                                ".$notice_display->result."
374                        </div>
375                </div>
376                <div class='row'>";
377                if($z->bull_id && $z->perio_id)
378                        $url_view = "catalog.php?categ=serials&sub=bulletinage&action=view&bul_id=$z->bull_id&art_to_show=$ret[1]";
379                else $url_view = "catalog.php?categ=isbd&id=".$ret[1];
380                $retour .= "
381                <form class='form-$current_module' name='dummy'>
382                        <input type='hidden' name='page' value='".htmlentities($page,ENT_QUOTES,$charset)."'/> 
383                        <input type='button' name='ok' class='bouton' value='".$msg["bt_retour"]."' onClick=\"document.location='acquisition.php?categ=sug&action=modif&id_bibli=$idbibli&id_sug=$id_sug'\" />&nbsp;
384                        <input type='button' name='cancel' class='bouton' value='".$msg["z3950_integr_not_lavoir"]."' onClick=\"document.location='$url_view'\"/>
385                </form>
386                <script type='text/javascript'>
387                        document.forms['dummy'].elements['ok'].focus();
388                </script>
389                </div>
390                ";
391                print $retour;
392               
393                //On attache la notice à la suggestion
394                $req = " update suggestions set num_notice='".$ret[1]."' where id_suggestion='".$id_sug."'";
395                pmb_mysql_query($req,$dbh);
396        }
397        else {
398                $retour = "<script src='javascript/tablist.js'></script>";
399                $retour .= form_error_message($msg["connecteurs_cant_integrate_title"], ($ret[1]?$msg["z3950_integr_not_existait"]:$msg["z3950_integr_not_newrate"]), $msg["connecteurs_back_to_list"], "catalog.php?categ=search&mode=7&sub=launch",array("serialized_search"=>$sc->serialize_search()));
400                print $retour;
401        }
402}
403
404/*
405 * Formulaire de validation de la suppression de notice
406 */
407function catalog_notice_form(){
408        global $msg, $chk, $statut;
409       
410        $display = "
411        <form class='form-$current_module' name='cat_noti'  method='post' action='./acquisition.php?categ=sug&action=list&statut=$statut'>
412                <h3>".$msg["acquisition_catalog_notice_associee"]."</h3>
413                <div class='form-contenu'>
414                        <div class='row'>
415                                <div>
416                                        <img src='./images/error.gif'  >
417                                        <strong>".$msg["acquisition_catalog_notice_ask"]."</strong>
418                                </div>
419                        </div>
420                </div>
421                <div></div>
422                <div class='row'>
423                        <input type='hidden' name='catnoti' id='catnoti'>";
424                        if($chk) 
425                                $display .= "<input type='hidden' name='chk' value='".implode(',',$chk)."' />";
426                        $display .= 
427                                "<input type='submit' name='non_btn' class='bouton' value='$msg[39]' onclick='this.form.catnoti.value=\"0\";'/>
428                                <input type='submit' class='bouton' name='ok_btn' value='$msg[40]' onclick='this.form.catnoti.value=\"1\";'/>                                   
429                </div>
430               
431        </form>         
432        ";
433                               
434        print $display;
435}
436?>
437
Note: See TracBrowser for help on using the repository browser.