View | Details | Raw Unified | Return to bug 7839
Collapse All | Expand All

(-)a/C4/Serials.pm (+35 lines)
Lines 53-58 BEGIN { Link Here
53
      &check_routing &updateClaim &removeMissingIssue
53
      &check_routing &updateClaim &removeMissingIssue
54
      &CountIssues
54
      &CountIssues
55
      HasItems
55
      HasItems
56
      &GetSubscriptionsFromBorrower
56
57
57
    );
58
    );
58
}
59
}
Lines 2175-2180 sub in_array { # used in next sub down Link Here
2175
    return 0;
2176
    return 0;
2176
}
2177
}
2177
2178
2179
=head2 GetSubscriptionsFromBorrower
2180
2181
($count,@routinglist) = GetSubscriptionsFromBorrower($borrowernumber)
2182
2183
this gets the info from subscriptionroutinglist for each $subscriptionid
2184
2185
return :
2186
a count of the serial subscription routing lists to which a patron belongs,
2187
with the titles of those serial subscriptions as an array. Each element of the array
2188
contains a hash_ref with subscriptionID and title of subscription.
2189
2190
=cut
2191
2192
sub GetSubscriptionsFromBorrower {
2193
    my ($borrowernumber) = @_;
2194
    my $dbh              = C4::Context->dbh;
2195
    my $sth              = $dbh->prepare(
2196
        "SELECT subscription.subscriptionid, biblio.title
2197
			FROM subscription
2198
			JOIN biblio ON biblio.biblionumber = subscription.biblionumber
2199
			JOIN subscriptionroutinglist USING (subscriptionid)
2200
			WHERE subscriptionroutinglist.borrowernumber = ? ORDER BY title ASC
2201
                               "
2202
    );
2203
    $sth->execute($borrowernumber);
2204
    my @routinglist;
2205
    my $count = 0;
2206
    while ( my $line = $sth->fetchrow_hashref ) {
2207
        $count++;
2208
        push( @routinglist, $line );
2209
    }
2210
    return ( $count, @routinglist );
2211
}
2212
2178
=head2 GetNextDate
2213
=head2 GetNextDate
2179
2214
2180
$resultdate = GetNextDate($planneddate,$subscription)
2215
$resultdate = GetNextDate($planneddate,$subscription)
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc (+1 lines)
Lines 69-74 Link Here
69
    [% IF ( CAN_user_updatecharges ) %]
69
    [% IF ( CAN_user_updatecharges ) %]
70
        [% IF ( finesview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% borrowernumber %]">Fines</a></li>
70
        [% IF ( finesview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% borrowernumber %]">Fines</a></li>
71
    [% END %]
71
    [% END %]
72
	[% IF ( routinglistview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/routing-lists.pl?borrowernumber=[% borrowernumber %]">Routing Lists</a></li>
72
    [% IF ( intranetreadinghistory ) %]
73
    [% IF ( intranetreadinghistory ) %]
73
        [% IF ( readingrecordview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/readingrec.pl?borrowernumber=[% borrowernumber %]">Circulation history</a></li>
74
        [% IF ( readingrecordview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/readingrec.pl?borrowernumber=[% borrowernumber %]">Circulation history</a></li>
74
    [% END %]
75
    [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/routing-lists.tt (+80 lines)
Line 0 Link Here
1
[% INCLUDE 'doc-head-open.inc' %]
2
<title>Subscription Routing Lists for [% INCLUDE 'patron-title.inc' %]</title>
3
[% INCLUDE 'doc-head-close.inc' %]
4
</head>
5
<body>
6
[% INCLUDE 'header.inc' %]
7
[% INCLUDE 'patron-search.inc' %]
8
9
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>  &rsaquo; Subscription Routing Lists for [% INCLUDE 'patron-title.inc' %]</div>
10
11
<div id="doc3" class="yui-t2">
12
    <div id="bd">
13
    <div id="yui-main">
14
    <div class="yui-b">
15
[% INCLUDE 'circ-toolbar.inc' %]
16
17
<!-- Search Bar -->
18
<p class="tip">Search Subscriptions:</p>
19
<form action="/cgi-bin/koha/serials/serials-home.pl" method="get">[% IF ( routing ) %]<input type="hidden" name="routing" value="[% routing %]" />[% END %]<input type="hidden" name="searched" value="1" /> <label for="ISSN_filter">ISSN:</label> <input type="text" size="10" maxlength="11" name="ISSN_filter" id="ISSN_filter" value="[% ISSN_filter %]" /> <label for="title_filter">Title:</label> <input type="text" size="20" maxlength="40" name="title_filter" id="title_filter" value="[% title_filter %]" /><input type="submit" value="Search" class="submit" />
20
</form>
21
<!-- Search Bar End -->
22
23
<h1>
24
[% IF ( countSubscrip ) %]
25
[% countSubscrip %] Subscription Routing List(s)
26
[% ELSE %]
27
0 Subscription Routing Lists
28
[% END %]
29
</h1>
30
31
<div id="subscriptions">
32
[% IF ( subscripLoop ) %]
33
<table id="subscriptiont">
34
              <thead>
35
                <tr>
36
                  <th>Subscription Title</th>
37
                  <th>Routing List</th>
38
                </tr>
39
              </thead>
40
              <tbody>
41
[% FOREACH subscripLoop IN subscripLoop %]
42
<tr>
43
    <td>
44
    <a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscripLoop.subscriptionid %]"><strong>
45
    [% subscripLoop.title %]
46
    </strong>
47
                    </a>
48
                  </td>
49
                  <td>
50
                    <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscripLoop.subscriptionid %]"><strong>
51
                    Edit Routing List
52
                      </strong>
53
                    </a>
54
                    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
55
                    <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
56
                  </td>
57
                </tr>
58
                [% END %]
59
                </tbody>
60
            </table>
61
            </form>
62
          [% ELSE %]
63
          <p>Patron does not belong to any subscription routing lists.</p> 
64
          <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
65
                    <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
66
                    [% END %]
67
                   
68
</div>
69
70
                  
71
72
73
</div>
74
</div>
75
76
<div class="yui-b">
77
[% INCLUDE 'circ-menu.inc' %]
78
</div>
79
</div>
80
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/members/routing-lists.pl (-1 / +133 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
# Copyright 2012 Prosentient Systems
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 2 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use strict;
21
#use warnings; FIXME - Bug 2505 
22
use CGI;
23
use C4::Output;
24
use C4::Auth qw/:DEFAULT get_session/;
25
use C4::Branch; # GetBranches
26
use C4::Members;
27
use C4::Context;
28
use C4::Serials; 
29
use CGI::Session;
30
31
my $query = new CGI;
32
33
my $sessionID = $query->cookie("CGISESSID") ;
34
my $session = get_session($sessionID);
35
36
# branch are now defined by the userenv
37
# but first we have to check if someone has tried to change them
38
39
my $branch = $query->param('branch');
40
if ($branch){
41
    # update our session so the userenv is updated
42
    $session->param('branch', $branch);
43
    $session->param('branchname', GetBranchName($branch));
44
}
45
46
my ( $template, $loggedinuser, $cookie ) = get_template_and_user (
47
    {
48
        template_name   => 'members/routing-lists.tt',
49
        query           => $query,
50
        type            => "intranet",
51
        authnotrequired => 0,
52
        flagsrequired   => { circulate => 'circulate_remaining_permissions' },
53
    }
54
);
55
56
my $branches = GetBranches();
57
58
my $findborrower = $query->param('findborrower');
59
$findborrower =~ s|,| |g;
60
61
my $borrowernumber = $query->param('borrowernumber');
62
63
$branch  = C4::Context->userenv->{'branch'};  
64
65
# get the borrower information.....
66
my $borrower;
67
if ($borrowernumber) {
68
    $borrower = GetMemberDetails( $borrowernumber, 0 );
69
}
70
71
72
##################################################################################
73
# BUILD HTML
74
# I'm trying to show the title of subscriptions where the borrowernumber is attached via a routing list
75
76
if ($borrowernumber) {
77
# new op dev
78
  my $count;
79
  my @borrowerSubscriptions;
80
  ($count, @borrowerSubscriptions) = GetSubscriptionsFromBorrower($borrowernumber );
81
  my @subscripLoop;
82
  
83
    foreach my $num_res (@borrowerSubscriptions) {
84
        my %getSubscrip;
85
        $getSubscrip{subscriptionid}	= $num_res->{'subscriptionid'};
86
        $getSubscrip{title}			= $num_res->{'title'};
87
        $getSubscrip{borrowernumber}		= $num_res->{'borrowernumber'};
88
        push( @subscripLoop, \%getSubscrip ); 
89
    }
90
    
91
    $template->param( 
92
        countSubscrip => scalar @subscripLoop,
93
        subscripLoop  => \@subscripLoop,
94
        routinglistview => 1          
95
    );
96
    
97
    $template->param( adultborrower => 1 ) if ( $borrower->{'category_type'} eq 'A' );
98
}
99
100
##################################################################################
101
102
103
# Computes full borrower address
104
my (undef, $roadttype_hashref) = &GetRoadTypes();
105
my $address = $borrower->{'streetnumber'}.' '.$roadttype_hashref->{$borrower->{'streettype'}}.' '.$borrower->{'address'};
106
107
$template->param(
108
    
109
    findborrower      => $findborrower,
110
    borrower          => $borrower,
111
    borrowernumber    => $borrowernumber,
112
    branch            => $branch,
113
    branchname        => GetBranchName($borrower->{'branchcode'}),
114
    firstname         => $borrower->{'firstname'},
115
    surname           => $borrower->{'surname'},
116
    categorycode      => $borrower->{'categorycode'},
117
    categoryname      => $borrower->{description},
118
    address           => $address,
119
    address2          => $borrower->{'address2'},
120
    email             => $borrower->{'email'},
121
    emailpro          => $borrower->{'emailpro'},
122
    borrowernotes     => $borrower->{'borrowernotes'},
123
    city              => $borrower->{'city'},
124
    zipcode           => $borrower->{'zipcode'},
125
    country           => $borrower->{'country'},
126
    phone             => $borrower->{'phone'} || $borrower->{'mobile'},
127
    cardnumber        => $borrower->{'cardnumber'},   
128
);
129
130
my ($picture, $dberror) = GetPatronImage($borrower->{'cardnumber'});
131
$template->param( picture => 1 ) if $picture;
132
133
output_html_with_http_headers $query, $cookie, $template->output;

Return to bug 7839