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

(-)a/C4/Serials.pm (-1 / +4 lines)
Lines 510-515 The valid search fields are: Link Here
510
  branch
510
  branch
511
  expiration_date
511
  expiration_date
512
  closed
512
  closed
513
  routinglist
513
514
514
The expiration_date search field is special; it specifies the maximum
515
The expiration_date search field is special; it specifies the maximum
515
subscription expiration date.
516
subscription expiration date.
Lines 553-558 sub SearchSubscriptions { Link Here
553
            LEFT JOIN biblioitems ON biblioitems.biblionumber = subscription.biblionumber
554
            LEFT JOIN biblioitems ON biblioitems.biblionumber = subscription.biblionumber
554
            LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
555
            LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
555
    |;
556
    |;
557
    if( $args->{routinglist} ) {
558
        $query .= q| INNER JOIN (SELECT DISTINCT subscriptionid FROM subscriptionroutinglist) srl ON srl.subscriptionid = subscription.subscriptionid|;
559
    }
556
    $query .= q| WHERE 1|;
560
    $query .= q| WHERE 1|;
557
    my @where_strs;
561
    my @where_strs;
558
    my @where_args;
562
    my @where_args;
Lines 609-615 sub SearchSubscriptions { Link Here
609
        push @where_strs, "subscription.closed = ?";
613
        push @where_strs, "subscription.closed = ?";
610
        push @where_args, "$args->{closed}";
614
        push @where_args, "$args->{closed}";
611
    }
615
    }
612
613
    if(@where_strs){
616
    if(@where_strs){
614
        $query .= ' AND ' . join(' AND ', @where_strs);
617
        $query .= ' AND ' . join(' AND ', @where_strs);
615
    }
618
    }
(-)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 (+2 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 116-121 if ($searched) { Link Here
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 / +42 lines)
Lines 16-22 use Koha::DateUtils qw( dt_from_string output_pref ); Link Here
16
use Koha::Acquisition::Booksellers;
16
use Koha::Acquisition::Booksellers;
17
use t::lib::Mocks;
17
use t::lib::Mocks;
18
use t::lib::TestBuilder;
18
use t::lib::TestBuilder;
19
use Test::More tests => 54;
19
use Test::More tests => 56;
20
20
21
BEGIN {
21
BEGIN {
22
    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 ));
22
    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 194-199 is( Link Here
194
    'SearchSubscriptions returned only one subscription when results_limit is set to "1"'
194
    'SearchSubscriptions returned only one subscription when results_limit is set to "1"'
195
);
195
);
196
196
197
# Set up fake data
198
my $subscriptionwithroutinglistid = NewSubscription(
199
    undef, "", undef, undef, $budget_id, $biblionumber,
200
    '2013-01-01', $frequency_id, undef, undef, undef,
201
    undef, undef, undef, undef, undef, undef,
202
    1, $notes, undef, '2013-01-01', undef, $pattern_id,
203
    undef, undef, 0, $internalnotes, 0,
204
    undef, undef, 0, undef, '2013-12-31', 0
205
);
206
207
#creating fake members
208
my $patron = $builder->build_object(
209
    {
210
        class => 'Koha::Patrons',
211
    }
212
);
213
my $patron2 = $builder->build_object(
214
    {
215
        class => 'Koha::Patrons',
216
    }
217
);
218
my $patronid1 = $patron->borrowernumber;
219
my $patronid2 = $patron2->borrowernumber;
220
221
# Add a fake routing list with fake members
222
addroutingmember($patronid1,$subscriptionwithroutinglistid);
223
addroutingmember($patronid2,$subscriptionwithroutinglistid);
224
225
# Perform SearchSubscriptions
226
my $fake_subscription = GetSubscription($subscriptionwithroutinglistid);
227
228
my @subscriptionswithroutinglist = SearchSubscriptions({
229
    issn       => $fake_subscription->{issn},
230
    orderby    => 'title',
231
    routinglist => 1
232
});
233
234
# Check the results
235
is(@subscriptionswithroutinglist, 1, 'SearchSubscriptions returned the expected number of subscriptions');
236
is($subscriptionswithroutinglist[0]->{title}, $fake_subscription->{title}, 'SearchSubscriptions returned the correct subscription');
237
197
my $frequency = GetSubscriptionFrequency($subscriptioninformation->{periodicity});
238
my $frequency = GetSubscriptionFrequency($subscriptioninformation->{periodicity});
198
my $old_frequency;
239
my $old_frequency;
199
if (not $frequency->{unit}) {
240
if (not $frequency->{unit}) {
200
- 

Return to bug 26567