Bug 19319: Only fetch the record if it exists
[srvgit] / opac / opac-main.pl
index 776ae72..33e100f 100755 (executable)
@@ -25,6 +25,10 @@ use C4::Output;
 use C4::NewsChannels;    # GetNewsToDisplay
 use C4::Languages qw(getTranslatedLanguages accept_language);
 use C4::Koha qw( GetDailyQuote );
+use C4::Members;
+use C4::Overdues;
+use Koha::Checkouts;
+use Koha::Holds;
 
 my $input = new CGI;
 my $dbh   = C4::Context->dbh;
@@ -54,12 +58,31 @@ if (C4::Context->userenv) {
 if (defined $input->param('branch') and length $input->param('branch')) {
     $homebranch = $input->param('branch');
 }
+elsif (C4::Context->userenv and defined $input->param('branch') and length $input->param('branch') == 0 ){
+   $homebranch = "";
+}
 my $all_koha_news   = &GetNewsToDisplay($news_lang,$homebranch);
 my $koha_news_count = scalar @$all_koha_news;
 
 my $quote = GetDailyQuote();   # other options are to pass in an exact quote id or select a random quote each pass... see perldoc C4::Koha
 
+# For dashboard
+my $checkouts = Koha::Checkouts->search({ borrowernumber => $borrowernumber })->count;
+my ( $overdues_count, $overdues ) = checkoverdues($borrowernumber);
+my $holds_pending = Koha::Holds->search({ borrowernumber => $borrowernumber, found => undef })->count;
+my $holds_waiting = Koha::Holds->search({ borrowernumber => $borrowernumber })->waiting->count;
+my ( $total , $accts, $numaccts) = GetMemberAccountRecords( $borrowernumber );
+
+if  ( $checkouts > 0 || $overdues_count > 0 || $holds_pending > 0 || $holds_waiting > 0 || $total > 0 ) {
+    $template->param( dashboard_info => 1 );
+}
+
 $template->param(
+    checkouts           => $checkouts,
+    overdues            => $overdues_count,
+    holds_pending       => $holds_pending,
+    holds_waiting       => $holds_waiting,
+    total_owing         => $total,
     koha_news           => $all_koha_news,
     koha_news_count     => $koha_news_count,
     branchcode          => $homebranch,