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

(-)a/C4/Serials.pm (-1 / +5 lines)
Lines 511-516 The valid search fields are: Link Here
511
  branch
511
  branch
512
  expiration_date
512
  expiration_date
513
  closed
513
  closed
514
  routinglist
514
515
515
The expiration_date search field is special; it specifies the maximum
516
The expiration_date search field is special; it specifies the maximum
516
subscription expiration date.
517
subscription expiration date.
Lines 554-559 sub SearchSubscriptions { Link Here
554
            LEFT JOIN biblioitems ON biblioitems.biblionumber = subscription.biblionumber
555
            LEFT JOIN biblioitems ON biblioitems.biblionumber = subscription.biblionumber
555
            LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
556
            LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
556
    |;
557
    |;
558
    if ( $args->{routinglist} ) {
559
        $query .=
560
            q| INNER JOIN (SELECT DISTINCT subscriptionid FROM subscriptionroutinglist) srl ON srl.subscriptionid = subscription.subscriptionid|;
561
    }
557
    $query .= q| WHERE 1|;
562
    $query .= q| WHERE 1|;
558
    my @where_strs;
563
    my @where_strs;
559
    my @where_args;
564
    my @where_args;
Lines 610-616 sub SearchSubscriptions { Link Here
610
        push @where_strs, "subscription.closed = ?";
615
        push @where_strs, "subscription.closed = ?";
611
        push @where_args, "$args->{closed}";
616
        push @where_args, "$args->{closed}";
612
    }
617
    }
613
614
    if(@where_strs){
618
    if(@where_strs){
615
        $query .= ' AND ' . join(' AND ', @where_strs);
619
        $query .= ' AND ' . join(' AND ', @where_strs);
616
    }
620
    }
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-advsearch.inc (+5 lines)
Lines 50-55 Link Here
50
                    <label for="to">Expires before:</label>
50
                    <label for="to">Expires before:</label>
51
                    <input type="text" id="to" name="expiration_date_filter" value="[% expiration_date_filter | html %]" size="10" maxlength="10" class="flatpickr" />
51
                    <input type="text" id="to" name="expiration_date_filter" value="[% expiration_date_filter | html %]" size="10" maxlength="10" class="flatpickr" />
52
                </li>
52
                </li>
53
                <li class="local">
54
                        <label for="routinglist">Search routing lists only:</label>
55
                        <input type="checkbox" id="routinglist" name="routinglist" />
56
                </li>
57
53
                [% INCLUDE 'additional-fields-entry.inc' available=additional_fields_for_subscription values=additional_field_filters wrap_fieldset=0 %]
58
                [% INCLUDE 'additional-fields-entry.inc' available=additional_fields_for_subscription values=additional_field_filters wrap_fieldset=0 %]
54
            </ol>
59
            </ol>
55
            <input type="hidden" name="searched" value="1" />
60
            <input type="hidden" name="searched" value="1" />
(-)a/serials/serials-search.pl (-10 / +12 lines)
Lines 52-57 my $location = $query->param('location_filter') || ''; Link Here
52
my $expiration_date = $query->param('expiration_date_filter') || '';
52
my $expiration_date = $query->param('expiration_date_filter') || '';
53
my $routing       = $query->param('routing') || C4::Context->preference("RoutingSerials");
53
my $routing       = $query->param('routing') || C4::Context->preference("RoutingSerials");
54
my $searched      = $query->param('searched') || 0;
54
my $searched      = $query->param('searched') || 0;
55
my $routinglist = $query->param('routinglist');
55
my $mana      = $query->param('mana') || 0;
56
my $mana      = $query->param('mana') || 0;
56
my @subscriptionids = $query->multi_param('subscriptionid');
57
my @subscriptionids = $query->multi_param('subscriptionid');
57
my $op            = $query->param('op');
58
my $op            = $query->param('op');
Lines 105-121 if ($searched) { Link Here
105
    else {
106
    else {
106
        my $subscriptions = SearchSubscriptions(
107
        my $subscriptions = SearchSubscriptions(
107
            {
108
            {
108
                biblionumber => $biblionumber,
109
                biblionumber      => $biblionumber,
109
                title        => $title,
110
                title             => $title,
110
                issn         => $ISSN,
111
                issn              => $ISSN,
111
                ean          => $EAN,
112
                ean               => $EAN,
112
                callnumber   => $callnumber,
113
                callnumber        => $callnumber,
113
                publisher    => $publisher,
114
                publisher         => $publisher,
114
                bookseller   => $bookseller,
115
                bookseller        => $bookseller,
115
                branch       => $branch,
116
                branch            => $branch,
116
                additional_fields => \@additional_field_filters,
117
                additional_fields => \@additional_field_filters,
117
                location     => $location,
118
                location          => $location,
118
                expiration_date => $expiration_date,
119
                expiration_date   => $expiration_date,
120
                routinglist       => $routinglist,
119
            },
121
            },
120
            { results_limit => C4::Context->preference('SerialsSearchResultsLimit') }
122
            { results_limit => C4::Context->preference('SerialsSearchResultsLimit') }
121
        );
123
        );
(-)a/t/db_dependent/Serials.t (-2 / +47 lines)
Lines 17-23 use Koha::Acquisition::Booksellers; Link Here
17
use t::lib::Mocks;
17
use t::lib::Mocks;
18
use t::lib::TestBuilder;
18
use t::lib::TestBuilder;
19
use Test::MockModule;
19
use Test::MockModule;
20
use Test::More tests => 55;
20
use Test::More tests => 57;
21
21
22
BEGIN {
22
BEGIN {
23
    use_ok('C4::Serials', qw( updateClaim NewSubscription GetSubscription GetSubscriptionHistoryFromSubscriptionId SearchSubscriptions ModSubscription GetExpirationDate GetSerials GetSerialInformation NewIssue AddItem2Serial DelSubscription GetFullSubscription PrepareSerialsData GetSubscriptionsFromBiblionumber ModSubscriptionHistory GetSerials2 GetLatestSerials GetNextSeq GetSeq CountSubscriptionFromBiblionumber ModSerialStatus findSerialsByStatus HasSubscriptionStrictlyExpired HasSubscriptionExpired GetLateOrMissingIssues check_routing addroutingmember GetNextDate ));
23
    use_ok('C4::Serials', qw( updateClaim NewSubscription GetSubscription GetSubscriptionHistoryFromSubscriptionId SearchSubscriptions ModSubscription GetExpirationDate GetSerials GetSerialInformation NewIssue AddItem2Serial DelSubscription GetFullSubscription PrepareSerialsData GetSubscriptionsFromBiblionumber ModSubscriptionHistory GetSerials2 GetLatestSerials GetNextSeq GetSeq CountSubscriptionFromBiblionumber ModSerialStatus findSerialsByStatus HasSubscriptionStrictlyExpired HasSubscriptionExpired GetLateOrMissingIssues check_routing addroutingmember GetNextDate ));
Lines 199-204 is( Link Here
199
    'SearchSubscriptions returned only one subscription when results_limit is set to "1"'
199
    'SearchSubscriptions returned only one subscription when results_limit is set to "1"'
200
);
200
);
201
201
202
# Set up fake data
203
my $subscriptionwithroutinglistid = NewSubscription(
204
    undef,        "",            undef, undef,          $budget_id, $biblionumber,
205
    '2013-01-01', $frequency_id, undef, undef,          undef,
206
    undef,        undef,         undef, undef,          undef, undef,
207
    1,            $notes,        undef, '2013-01-01',   undef, $pattern_id,
208
    undef,        undef,         0,     $internalnotes, 0,
209
    undef,        undef,         0,     undef,          '2013-12-31', 0
210
);
211
212
#creating fake patrons
213
my $patron = $builder->build_object(
214
    {
215
        class => 'Koha::Patrons',
216
    }
217
);
218
my $patron2 = $builder->build_object(
219
    {
220
        class => 'Koha::Patrons',
221
    }
222
);
223
my $patronid1 = $patron->borrowernumber;
224
my $patronid2 = $patron2->borrowernumber;
225
226
# Add a fake routing list with fake patrons
227
addroutingmember( $patronid1, $subscriptionwithroutinglistid );
228
addroutingmember( $patronid2, $subscriptionwithroutinglistid );
229
230
# Perform SearchSubscriptions
231
my $fake_subscription = GetSubscription($subscriptionwithroutinglistid);
232
233
my @subscriptionswithroutinglist = SearchSubscriptions(
234
    {
235
        issn        => $fake_subscription->{issn},
236
        orderby     => 'title',
237
        routinglist => 1
238
    }
239
);
240
241
# Check the results
242
is( @subscriptionswithroutinglist, 1, 'SearchSubscriptions returned the expected number of subscriptions' );
243
is(
244
    $subscriptionswithroutinglist[0]->{title}, $fake_subscription->{title},
245
    'SearchSubscriptions returned the correct subscription'
246
);
247
202
my $frequency = GetSubscriptionFrequency($subscriptioninformation->{periodicity});
248
my $frequency = GetSubscriptionFrequency($subscriptioninformation->{periodicity});
203
my $old_frequency;
249
my $old_frequency;
204
if (not $frequency->{unit}) {
250
if (not $frequency->{unit}) {
205
- 

Return to bug 26567