Merge branch 'master' of ssh://git-sdonath@lx-office.linet-services.de/~/lx-office-erp
[kivitendo-erp.git] / SL / Printer.pm
1 package SL::Printer;
2
3 use SL::DBUtils;
4
5 sub all_printers {
6   $::lxdebug->enter_sub;
7
8   my ($self, %params) = @_;
9
10   my $dbh = $::auth->get_user_dbh($params{login});
11
12   my $query = qq|SELECT * FROM printers ORDER BY printer_description|;
13   my @printers = selectall_hashref_query($::form, $dbh, $query);
14
15   $dbh->disconnect;
16
17   $::lxdebug->leave_sub;
18
19   return wantarray ? @printers : \@printers;
20 }
21
22 sub get_printer {
23   $::lxdebug->enter_sub;
24
25   my ($self, %params) = @_;
26
27   my $dbh = $::auth->get_user_dbh($params{login});
28
29   my $query = qq|SELECT * FROM printers WHERE id = ?|;
30   my ($printer) = selectfirst_hashref_query($::form, $dbh, $query, $params{id});
31
32   $dbh->disconnect;
33
34   $::lxdebug->leave_sub;
35
36   return $printer;
37 }
38
39 sub save_printer {
40   $main::lxdebug->enter_sub();
41
42   my ($self, %params) = @_;
43
44   # connect to database
45   my $dbh = $::auth->get_user_dbh($params{login});
46   my $printer = $params{printer};
47
48   unless ($printer->{id}) {
49     ($printer->{id}) = selectfirst_array_query($::form, $dbh, "SELECT nextval('id'::text)");
50     do_query($::form, $dbh, "INSERT INTO printers (id, printer_description) VALUES (?, '')", $printer->{id});
51   }
52
53   my $query = <<SQL;
54     UPDATE printers SET
55       printer_description = ?,
56       template_code = ?,
57       printer_command = ?
58     WHERE id = ?
59 SQL
60   do_query($::form, $dbh, $query,
61     $printer->{printer_description},
62     $printer->{template_code},
63     $printer->{printer_command},
64     $printer->{id},
65   );
66
67   $dbh->commit;
68   $dbh->disconnect;
69
70   $::lxdebug->leave_sub;
71 }
72
73 sub delete_printer {
74   $::lxdebug->enter_sub;
75
76   my ($self, %params) = @_;
77
78   my $dbh = $::auth->get_user_dbh($params{login});
79
80   my $query = qq|DELETE FROM printers WHERE id = ?|;
81   do_query($::form, $dbh, $query, $params{id});
82
83   $dbh->commit;
84   $dbh->disconnect;
85
86   $::lxdebug->leave_sub;
87 }
88
89 1;