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

(-)a/C4/Serials.pm (-1 / +5 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 .=
559
            q| INNER JOIN (SELECT DISTINCT subscriptionid FROM subscriptionroutinglist) srl ON srl.subscriptionid = subscription.subscriptionid|;
560
    }
556
    $query .= q| WHERE 1|;
561
    $query .= q| WHERE 1|;
557
    my @where_strs;
562
    my @where_strs;
558
    my @where_args;
563
    my @where_args;
Lines 609-615 sub SearchSubscriptions { Link Here
609
        push @where_strs, "subscription.closed = ?";
614
        push @where_strs, "subscription.closed = ?";
610
        push @where_args, "$args->{closed}";
615
        push @where_args, "$args->{closed}";
611
    }
616
    }
612
613
    if(@where_strs){
617
    if(@where_strs){
614
        $query .= ' AND ' . join(' AND ', @where_strs);
618
        $query .= ' AND ' . join(' AND ', @where_strs);
615
    }
619
    }
(-)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 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 patrons
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 patrons
222
addroutingmember( $patronid1, $subscriptionwithroutinglistid );
223
addroutingmember( $patronid2, $subscriptionwithroutinglistid );
224
225
# Perform SearchSubscriptions
226
my $fake_subscription = GetSubscription($subscriptionwithroutinglistid);
227
228
my @subscriptionswithroutinglist = SearchSubscriptions(
229
    {
230
        issn        => $fake_subscription->{issn},
231
        orderby     => 'title',
232
        routinglist => 1
233
    }
234
);
235
236
# Check the results
237
is( @subscriptionswithroutinglist, 1, 'SearchSubscriptions returned the expected number of subscriptions' );
238
is(
239
    $subscriptionswithroutinglist[0]->{title}, $fake_subscription->{title},
240
    'SearchSubscriptions returned the correct subscription'
241
);
242
197
my $frequency = GetSubscriptionFrequency($subscriptioninformation->{periodicity});
243
my $frequency = GetSubscriptionFrequency($subscriptioninformation->{periodicity});
198
my $old_frequency;
244
my $old_frequency;
199
if (not $frequency->{unit}) {
245
if (not $frequency->{unit}) {
200
- 

Return to bug 26567