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

(-)a/C4/Serials.pm (-2 / +22 lines)
Lines 1175-1182 sub ModSerialStatus { Link Here
1175
        }
1175
        }
1176
    }
1176
    }
1177
1177
1178
    # create new waited entry if needed (ie : was a "waited" and has changed)
1178
    # create new expected entry if needed (ie : was "expected" and has changed)
1179
    if ( $oldstatus == EXPECTED && $status != EXPECTED ) {
1179
    # BUG 12748: Check if there are no other expected issues.
1180
    my $otherIssueExpected = scalar findSerialByStatus(EXPECTED, $subscriptionid);
1181
    if ( !$otherIssueExpected && $oldstatus == EXPECTED && $status != EXPECTED ) {
1180
        my $subscription = GetSubscription($subscriptionid);
1182
        my $subscription = GetSubscription($subscriptionid);
1181
        my $pattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subscription->{numberpattern});
1183
        my $pattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subscription->{numberpattern});
1182
1184
Lines 2687-2692 sub _can_do_on_subscription { Link Here
2687
    return 0;
2689
    return 0;
2688
}
2690
}
2689
2691
2692
=head2 findSerialByStatus
2693
2694
    @serials = findSerialByStatus($status, $subscriptionid);
2695
2696
    Returns an array of serials matching a given status and subscription id.
2697
2698
=cut
2699
2700
sub findSerialByStatus{
2701
    my($status, $subscriptionid) = @_;
2702
    my $dbh = C4::Context->dbh;
2703
    my $query = q| SELECT * from serial
2704
                    WHERE status = ?
2705
                    AND subscriptionid = ?
2706
                |;
2707
    my $serials = $dbh->selectall_arrayref( $query, { Slice => {} }, $status, $subscriptionid );
2708
    return @$serials;
2709
}
2690
1;
2710
1;
2691
__END__
2711
__END__
2692
2712
(-)a/t/db_dependent/Serials.t (-2 / +4 lines)
Lines 15-21 use C4::Bookseller; Link Here
15
use C4::Biblio;
15
use C4::Biblio;
16
use C4::Budgets;
16
use C4::Budgets;
17
use Koha::DateUtils;
17
use Koha::DateUtils;
18
use Test::More tests => 45;
18
use Test::More tests => 48;
19
19
20
BEGIN {
20
BEGIN {
21
    use_ok('C4::Serials');
21
    use_ok('C4::Serials');
Lines 173-178 is(C4::Serials::ModSubscriptionHistory(), undef, 'test modding subscription hist Link Here
173
173
174
is(C4::Serials::ModSerialStatus(),undef, 'test modding serials');
174
is(C4::Serials::ModSerialStatus(),undef, 'test modding serials');
175
175
176
is(C4::Serials::findSerialByStatus(), 0, 'test finding serial by status with no parameters');
176
is(C4::Serials::NewIssue(), undef, 'test getting 0 when nothing is entered');
177
is(C4::Serials::NewIssue(), undef, 'test getting 0 when nothing is entered');
177
178
178
is(C4::Serials::HasSubscriptionStrictlyExpired(), undef, 'test if the subscriptions has expired');
179
is(C4::Serials::HasSubscriptionStrictlyExpired(), undef, 'test if the subscriptions has expired');
Lines 218-223 for my $status ( @statuses ) { Link Here
218
    $counter++;
219
    $counter++;
219
}
220
}
220
# Here we have 15 serials with statuses : 2*2 + 5*3 + 2*4 + 1*41 + 1*42 + 1*43 + 1*44 + 1*5 + 1*1
221
# Here we have 15 serials with statuses : 2*2 + 5*3 + 2*4 + 1*41 + 1*42 + 1*43 + 1*44 + 1*5 + 1*1
222
my @serialsByStatus = C4::Serials::findSerialByStatus(2,$subscriptionid);
223
is(@serialsByStatus,2,"findSerialByStatus returns all serials with chosen status");
221
( $total_issues, @serials ) = C4::Serials::GetSerials( $subscriptionid );
224
( $total_issues, @serials ) = C4::Serials::GetSerials( $subscriptionid );
222
is( $total_issues, @statuses + 1, "GetSerials returns total_issues" );
225
is( $total_issues, @statuses + 1, "GetSerials returns total_issues" );
223
my @arrived_missing = map { my $status = $_->{status}; ( grep { /^$status$/ } qw( 2 4 41 42 43 44 5 ) ) ? $_ : () } @serials;
226
my @arrived_missing = map { my $status = $_->{status}; ( grep { /^$status$/ } qw( 2 4 41 42 43 44 5 ) ) ? $_ : () } @serials;
224
- 

Return to bug 12748