kivitendo/SL/Notes.pm @ 68748667
7a7f33b5 | Moritz Bunkus | # Notes
|
||
package Notes;
|
||||
use SL::Common;
|
||||
use SL::DBUtils;
|
||||
e8784e42 | Sven Schöling | use SL::DB;
|
||
7a7f33b5 | Moritz Bunkus | |||
80f6efd0 | Sven Schöling | use strict;
|
||
7a7f33b5 | Moritz Bunkus | sub save {
|
||
$main::lxdebug->enter_sub();
|
||||
my $self = shift;
|
||||
my %params = @_;
|
||||
my $myconfig = \%main::myconfig;
|
||||
my $form = $main::form;
|
||||
e8784e42 | Sven Schöling | SL::DB->client->with_transaction(sub {
|
||
my $dbh = $params{dbh} || SL::DB->client->dbh;
|
||||
my ($query, @values);
|
||||
7a7f33b5 | Moritz Bunkus | |||
e8784e42 | Sven Schöling | if (!$params{id}) {
|
||
($params{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('note_id')|);
|
||||
$query = qq|INSERT INTO notes (created_by, trans_id, trans_module, subject, body, id)
|
||||
VALUES ((SELECT id FROM employee WHERE login = ?), ?, ?, ?, ?, ?)|;
|
||||
push @values, $::myconfig{login}, conv_i($params{trans_id}), $params{trans_module};
|
||||
7a7f33b5 | Moritz Bunkus | |||
e8784e42 | Sven Schöling | } else {
|
||
$query = qq|UPDATE notes SET subject = ?, body = ? WHERE id = ?|;
|
||||
}
|
||||
7a7f33b5 | Moritz Bunkus | |||
e8784e42 | Sven Schöling | push @values, $params{subject}, $params{body}, conv_i($params{id});
|
||
7a7f33b5 | Moritz Bunkus | |||
e8784e42 | Sven Schöling | do_query($form, $dbh, $query, @values);
|
||
6b23fb21 | Sven Schöling | 1;
|
||
}) or do { die SL::DB->client->error };
|
||||
7a7f33b5 | Moritz Bunkus | |||
$main::lxdebug->leave_sub();
|
||||
return $params{id};
|
||||
}
|
||||
sub retrieve {
|
||||
$main::lxdebug->enter_sub();
|
||||
my $self = shift;
|
||||
my %params = @_;
|
||||
Common::check_params(\%params, qw(id));
|
||||
my $myconfig = \%main::myconfig;
|
||||
my $form = $main::form;
|
||||
my $dbh = $form->get_standard_dbh($myconfig);
|
||||
80f6efd0 | Sven Schöling | my $ref = selectfirst_hashref_query($form, $dbh, qq|SELECT * FROM notes WHERE id = ?|, conv_i($params{id}));
|
||
7a7f33b5 | Moritz Bunkus | |||
$main::lxdebug->leave_sub();
|
||||
return $ref;
|
||||
}
|
||||
sub delete {
|
||||
$main::lxdebug->enter_sub();
|
||||
my $self = shift;
|
||||
my %params = @_;
|
||||
Common::check_params(\%params, qw(id));
|
||||
my $myconfig = \%main::myconfig;
|
||||
my $form = $main::form;
|
||||
e8784e42 | Sven Schöling | SL::DB->client->with_transaction(sub {
|
||
my $dbh = $params{dbh} || SL::DB->client->dbh;
|
||||
my $id = conv_i($params{id});
|
||||
7a7f33b5 | Moritz Bunkus | |||
e8784e42 | Sven Schöling | do_query($form, $dbh, qq|DELETE FROM follow_up_links WHERE follow_up_id IN (SELECT DISTINCT id FROM follow_ups WHERE note_id = ?)|, $id);
|
||
do_query($form, $dbh, qq|DELETE FROM follow_ups WHERE note_id = ?|, $id);
|
||||
do_query($form, $dbh, qq|DELETE FROM notes WHERE id = ?|, $id);
|
||||
6b23fb21 | Sven Schöling | 1;
|
||
}) or do { die SL::DB->client->error };
|
||||
7a7f33b5 | Moritz Bunkus | |||
$main::lxdebug->leave_sub();
|
||||
}
|
||||
1;
|