Projekt

Allgemein

Profil

Herunterladen (2,17 KB) Statistiken
| Zweig: | Markierung: | Revision:
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;