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

(-)a/Koha/Serials.pm (-13 / +15 lines)
Lines 24-29 use Carp; Link Here
24
use Koha::Database;
24
use Koha::Database;
25
25
26
use Koha::Serial;
26
use Koha::Serial;
27
use Koha::Serial::Items;
27
28
28
use base qw(Koha::Objects);
29
use base qw(Koha::Objects);
29
30
Lines 33-39 BEGIN { Link Here
33
    require Exporter;
34
    require Exporter;
34
    @ISA    = qw(Exporter);
35
    @ISA    = qw(Exporter);
35
    @EXPORT = qw(
36
    @EXPORT = qw(
36
        &GetSerialItemsInformations
37
        &get_serial_items_count
37
    );
38
    );
38
}
39
}
39
40
Lines 59-87 sub object_class { Link Here
59
    return 'Koha::Serial';
60
    return 'Koha::Serial';
60
}
61
}
61
62
62
=head2 GetSerialItemsInformations
63
=head2 get_serial_items_count
63
64
64
    @serialsitemsinformations = GetSerialItemsInformations (@serialid)
65
    @serialsitemsinformations = get_serial_items_count (@serialid)
65
66
66
    return an array of specifique information of serials and serialitem a given array of serialid
67
    return an array of specifique information of serials and serialitem a given array of serialid
67
68
68
=cut
69
=cut
69
70
70
sub GetSerialItemsInformations{
71
sub get_serial_items_count{
71
    my ( @serialid ) = @_;
72
    my ( @self ) = @_;
72
    my @serialitemsinformation;
73
    my @serialitemsinformation;
73
    my $dbh = C4::Context->dbh;
74
74
75
    foreach my $sid ( @serialid ) {
75
    foreach my $sid ( @self ) {
76
        my $sth = $dbh->prepare("select count(i.itemnumber) as countitems,s.itemnumber as itemnumber  from items i natural join serialitems s where s.serialid=?");
76
        my $serialitems = Koha::Serial::Items->search({ serialid => $sid}) ;
77
        $sth->execute( $sid );
78
77
79
        my $line = $sth->fetchrow_hashref;
78
        my $countitem = 0;
80
        if( $line->{'countitems'} ){
79
        while ( my $s = $serialitems->next() ) {
81
            push @serialitemsinformation, $line;
80
            $countitem++;
82
        }
81
        }
82
83
        push @serialitemsinformation,{'countitems' => $countitem, 'serialid' => $sid } if $countitem;
83
    }
84
    }
84
   return @serialitemsinformation;
85
86
    return @serialitemsinformation;
85
}
87
}
86
88
87
=head1 AUTHOR
89
=head1 AUTHOR
(-)a/serials/serials-collection.pl (-1 / +1 lines)
Lines 63-69 my $subscriptions; Link Here
63
my $delete;
63
my $delete;
64
my $countitems=0;
64
my $countitems=0;
65
my @ids=split("!",$serialsid);
65
my @ids=split("!",$serialsid);
66
my @serialitemsinformation=GetSerialItemsInformations(@ids);
66
my @serialitemsinformation=get_serial_items_count(@ids);
67
my $subscriptionid = $subscriptionid[0];
67
my $subscriptionid = $subscriptionid[0];
68
if($op eq 'gennext' && @subscriptionid){
68
if($op eq 'gennext' && @subscriptionid){
69
    my $subscriptionid = $subscriptionid[0];
69
    my $subscriptionid = $subscriptionid[0];
(-)a/t/db_dependent/Serials.t (-19 / +18 lines)
Lines 348-356 subtest "Do not generate an expected if one already exists" => sub { Link Here
348
    is( @serialsByStatus, 1, "ModSerialStatus delete corectly serial expected and not create another if exists" );
348
    is( @serialsByStatus, 1, "ModSerialStatus delete corectly serial expected and not create another if exists" );
349
};
349
};
350
350
351
subtest "Test GetSerialItemsInformations " => sub {
351
subtest "Test get_serial_items_count " => sub {
352
    plan tests => 4;
352
    plan tests => 4;
353
    is (Koha::Serials::GetSerialItemsInformations(),0,"test GetSerialItemsInformation with nothing parameters ");
353
    is (Koha::Serials::get_serial_items_count(),0,"test get_serial_items_count with nothing parameters ");
354
    my $branchcode = $builder->build({ source => 'Branch' })->{ branchcode };
354
    my $branchcode = $builder->build({ source => 'Branch' })->{ branchcode };
355
    my $itemtype   = $builder->build({ source => 'Itemtype' })->{ itemtype };
355
    my $itemtype   = $builder->build({ source => 'Itemtype' })->{ itemtype };
356
    my ($biblionumber1, $bibitemnumber) = AddBiblio(MARC::Record->new, '');
356
    my ($biblionumber1, $bibitemnumber) = AddBiblio(MARC::Record->new, '');
Lines 365-395 subtest "Test GetSerialItemsInformations " => sub { Link Here
365
    my $itemnumber3 = AddItem({ barcode => '0103', %item_infos }, $biblionumber1);
365
    my $itemnumber3 = AddItem({ barcode => '0103', %item_infos }, $biblionumber1);
366
    my $itemnumber4 = AddItem({ barcode => '0104', %item_infos }, $biblionumber1);
366
    my $itemnumber4 = AddItem({ barcode => '0104', %item_infos }, $biblionumber1);
367
    my @serialid = ($serials[0]->{serialid},$serials[1]->{serialid});
367
    my @serialid = ($serials[0]->{serialid},$serials[1]->{serialid});
368
    is (Koha::Serials::GetSerialItemsInformations(@serialid),0,"test GetSerialItemsInformation with array of serialid and none have items");
368
    is (Koha::Serials::get_serial_items_count(@serialid),0,"test get_serial_items_count with array of serialid and none have items");
369
    subtest "Test with 2 serials and each have one item" => sub {
369
    subtest "Test with 2 serials and each have one item" => sub {
370
        plan tests => 5;
370
        plan tests => 5;
371
        AddItem2Serial($serialid[0],$itemnumber1);
371
        AddItem2Serial($serialid[0],$itemnumber1);
372
        my @result = Koha::Serials::GetSerialItemsInformations(@serialid);
372
        my @result = Koha::Serials::get_serial_items_count(@serialid);
373
        is (scalar @result, 1 , "GetSerialItemsInformation return right length of array using 1 serial with 1 item");
373
        is (scalar @result, 1 , "get_serial_items_count return right length of array using 1 serial with 1 item");
374
        is ($result[0]->{countitems}, 1 , "GetSerialItemsInformation return right number items of serial1");
374
        is ($result[0]->{countitems}, 1 , "get_serial_items_count return right number items of serial1");
375
        AddItem2Serial($serialid[1],$itemnumber3);
375
        AddItem2Serial($serialid[1],$itemnumber3);
376
        @result = Koha::Serials::GetSerialItemsInformations(@serialid);
376
        @result = Koha::Serials::get_serial_items_count(@serialid);
377
        is (scalar @result, 2 , "GetSerialItemsInformation return right length of array using 2 serials and each have 1 item");
377
        is (scalar @result, 2 , "get_serial_items_count return right length of array using 2 serials and each have 1 item");
378
        is ($result[0]->{countitems}, 1 , "GetSerialItemsInformation return right number items of serial1");
378
        is ($result[0]->{countitems}, 1 , "get_serial_items_count return right number items of serial1");
379
        is ($result[1]->{countitems}, 1 , "GetSerialItemsInformation return right number items of serial2");
379
        is ($result[1]->{countitems}, 1 , "get_serial_items_count return right number items of serial2");
380
    };
380
    };
381
    subtest "Test with 2 serials and each have 2 items" => sub {
381
    subtest "Test with 2 serials and each have 2 items" => sub {
382
        plan tests => 6;
382
        plan tests => 6;
383
        AddItem2Serial($serialid[0],$itemnumber2);
383
        AddItem2Serial($serialid[0],$itemnumber2);
384
        my @result = Koha::Serials::GetSerialItemsInformations(@serialid);
384
        my @result = Koha::Serials::get_serial_items_count(@serialid);
385
        is (scalar @result, 2 , "GetSerialItemsInformation return right length of array using 2 serials ");
385
        is (scalar @result, 2 , "get_serial_items_count return right length of array using 2 serials ");
386
        is ($result[0]->{countitems}, 2 , "GetSerialItemsInformation return right number items of serial1");
386
        is ($result[0]->{countitems}, 2 , "get_serial_items_count return right number items of serial1");
387
        is ($result[1]->{countitems}, 1 , "GetSerialItemsInformation return right number items of serial2");
387
        is ($result[1]->{countitems}, 1 , "get_serial_items_count return right number items of serial2");
388
        AddItem2Serial($serialid[1],$itemnumber4);
388
        AddItem2Serial($serialid[1],$itemnumber4);
389
        @result = Koha::Serials::GetSerialItemsInformations(@serialid);
389
        @result = Koha::Serials::get_serial_items_count(@serialid);
390
        is (scalar @result, 2 , "GetSerialItemsInformation return right length of array using 2 serials and each have 2 items ");
390
        is (scalar @result, 2 , "get_serial_items_count return right length of array using 2 serials and each have 2 items ");
391
        is ($result[0]->{countitems}, 2 , "GetSerialItemsInformation return right number items of serial1");
391
        is ($result[0]->{countitems}, 2 , "get_serial_items_count return right number items of serial1");
392
        is ($result[1]->{countitems}, 2 , "GetSerialItemsInformation return right number items of serial2");
392
        is ($result[1]->{countitems}, 2 , "get_serial_items_count return right number items of serial2");
393
    };
393
    };
394
};
394
};
395
395
396
- 

Return to bug 17674