Lines 24-30
use Carp;
Link Here
|
24 |
|
24 |
|
25 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
25 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
26 |
use C4::Context; |
26 |
use C4::Context; |
27 |
use C4::Dates qw/format_date/; |
27 |
use C4::Dates qw/format_date format_date_in_iso/; |
28 |
use C4::Output; |
28 |
use C4::Output; |
29 |
use C4::Dates; |
29 |
use C4::Dates; |
30 |
use XML::Simple; |
30 |
use XML::Simple; |
Lines 546-567
sub delete_report {
Link Here
|
546 |
$sth->execute($id); |
546 |
$sth->execute($id); |
547 |
} |
547 |
} |
548 |
|
548 |
|
|
|
549 |
# $filter is either { date => $d, author => $a, keyword => $kw } |
550 |
# or $keyword. Optional. |
551 |
my $DATE_FORMAT = "%d/%m/%Y"; |
549 |
sub get_saved_reports { |
552 |
sub get_saved_reports { |
|
|
553 |
my ($filter) = @_; |
554 |
$filter = { keyword => $filter } if $filter && !ref( $filter ); |
555 |
|
550 |
my $dbh = C4::Context->dbh(); |
556 |
my $dbh = C4::Context->dbh(); |
551 |
my $query = "SELECT *,saved_sql.id AS id FROM saved_sql |
557 |
my (@cond,@args); |
552 |
LEFT JOIN saved_reports ON saved_reports.report_id = saved_sql.id |
558 |
my $query = "SELECT saved_sql.id, report_id, report, |
553 |
ORDER by date_created"; |
559 |
date_run, date_created, last_modified, savedsql, last_run, |
554 |
my $sth = $dbh->prepare($query); |
560 |
report_name, type, notes, |
555 |
$sth->execute(); |
561 |
borrowernumber, surname as borrowersurname, firstname as borrowerfirstname |
556 |
|
562 |
FROM saved_sql |
557 |
my $result = $sth->fetchall_arrayref({}); |
563 |
LEFT JOIN saved_reports ON saved_reports.report_id = saved_sql.id |
558 |
foreach (@$result){ |
564 |
LEFT OUTER JOIN borrowers USING (borrowernumber)"; |
559 |
$_->{date_created} = format_date($_->{date_created}); |
565 |
if ($filter) { |
560 |
|
566 |
if (my $date = $filter->{date}) { |
561 |
my $member = C4::Members::GetMember(borrowernumber=>$_->{borrowernumber}); |
567 |
$date = format_date_in_iso($date); |
562 |
$_->{borrowerfirstname} = $member->{firstname}; |
568 |
push @cond, "DATE(date_run) = ? OR |
563 |
$_->{borrowersurname} = $member->{surname}; |
569 |
DATE(date_created) = ? OR |
|
|
570 |
DATE(last_modified) = ? OR |
571 |
DATE(last_run) = ?"; |
572 |
push @args, $date, $date, $date, $date; |
573 |
} |
574 |
if (my $author = $filter->{author}) { |
575 |
$author = "%$author%"; |
576 |
push @cond, "surname LIKE ? OR |
577 |
firstname LIKE ?"; |
578 |
push @args, $author, $author; |
579 |
} |
580 |
if (my $keyword = $filter->{keyword}) { |
581 |
$keyword = "%$keyword%"; |
582 |
push @cond, "report LIKE ? OR |
583 |
report_name LIKE ? OR |
584 |
notes LIKE ? OR |
585 |
savedsql LIKE ?"; |
586 |
push @args, $keyword, $keyword, $keyword, $keyword; |
587 |
} |
564 |
} |
588 |
} |
|
|
589 |
$query .= " WHERE ".join( " AND ", map "($_)", @cond ) if @cond; |
590 |
$query .= " ORDER by date_created"; |
591 |
|
592 |
my $result = $dbh->selectall_arrayref($query, {Slice => {}}, @args); |
593 |
$_->{date_created} = format_date($_->{date_created}) foreach @$result; |
594 |
|
565 |
return $result; |
595 |
return $result; |
566 |
} |
596 |
} |
567 |
|
597 |
|