fixup commit for tag 'unstable_2_0_5'
[fa-stable.git] / admin / db / printers_db.inc
1 <?php
2 function write_printer_def($id, $name, $descr, $queue, $host, $port, $timeout)
3 {
4         if ($id>0)
5                 $sql = "UPDATE ".TB_PREF."printers SET description=".db_escape($descr)
6                 .",name=".db_escape($name).",queue=".db_escape($queue)
7                 .",host=".db_escape($host).",port='$port',timeout='$timeout' "
8                 ."WHERE id=$id";
9         else 
10                 $sql = "INSERT INTO ".TB_PREF."printers ("
11                         ."name,description,queue,host,port,timeout) "
12                         ."VALUES (".db_escape($name).",".db_escape($descr).","
13                         .db_escape($queue).",".db_escape($host).",'$port','$timeout')";
14
15         return db_query($sql,"could not write printer definition");
16 }
17
18 function get_all_printers() 
19 {
20         $sql = "SELECT * FROM ".TB_PREF."printers";
21         return db_query($sql,"could not get printer definitions");
22 }
23
24 function get_printer($id)
25 {
26                 $sql = "SELECT * FROM ".TB_PREF."printers
27                         WHERE id=$id";
28
29                 $result = db_query($sql,"could not get printer definition");
30                 return  db_fetch($result);
31 }
32
33 //============================================================================
34 // printer profiles functions
35 //
36 function update_printer_profile($name, $dest)
37 {
38         foreach( $dest as $rep => $printer) {
39                 if ($printer != '' || $rep == '') {
40                         $sql = "REPLACE INTO ".TB_PREF."print_profiles "
41                         ."(profile, report, printer) VALUES ("
42                         .db_escape($name).","
43                         .db_escape($rep).","
44                         .db_escape($printer).")";
45                 } else {
46                         $sql = "DELETE FROM ".TB_PREF."print_profiles WHERE ("
47                                 ."report=" . db_escape($rep)
48                                 ." AND profile=".db_escape($name).")";
49                 }
50                 $result = db_query($sql,"could not update printing profile");
51                 if(!$result) {
52                         return false;
53                 }
54         }
55         return true;
56 }
57 //
58 //      Get destination for report defined in given printing profile.
59 //
60 function get_report_printer($profile, $report)
61 {
62         $sql = "SELECT printer FROM ".TB_PREF."print_profiles WHERE "
63                 ."profile=".db_escape($profile)." AND report=";
64
65         $result = db_query($sql.db_escape($report), 'report printer lookup failed');
66
67         if (!$result) return false;
68         $ret = db_fetch($result);
69         if ($ret === false) {
70                 $result = db_query($sql."''", 'default report printer lookup failed');
71                 if (!$result) return false;
72
73                 $ret = db_fetch($result);
74                 if (!$ret) return false;
75         }
76         return get_printer($ret['printer']);
77 }
78
79 function delete_printer_profile($name)
80 {
81         $sql="DELETE FROM ".TB_PREF."print_profiles WHERE profile=".db_escape($name);
82         return db_query($sql,"could not delete printing profile");
83 }
84 //
85 // Get all report destinations for given profile.
86 //
87 function get_print_profile($name)
88 {
89         $sql = "SELECT  * FROM ".TB_PREF."print_profiles WHERE profile=".db_escape($name);
90         return db_query($sql,"could not get printing profile");
91 }
92
93 ?>