X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=serials%2Fserials-edit.pl;h=2bff94b66e203ad1b5b25e1df03e044083b43350;hb=c73e269a13f64fe016dc90941280c9d2e9cfb02c;hp=efd9c782955c4a46f8d23d8f0eb96ef492c7612d;hpb=018de8802d1aa8af9e309187c210f2036957e10a;p=koha.git diff --git a/serials/serials-edit.pl b/serials/serials-edit.pl index efd9c78295..2bff94b66e 100755 --- a/serials/serials-edit.pl +++ b/serials/serials-edit.pl @@ -74,19 +74,20 @@ use C4::Context; use C4::Serials; use C4::Search qw/enabled_staff_search_views/; use Koha::DateUtils; +use Koha::Serial::Items; use List::MoreUtils qw/uniq/; my $query = CGI->new(); my $dbh = C4::Context->dbh; -my @serialids = $query->param('serialid'); -my @serialseqs = $query->param('serialseq'); -my @planneddates = $query->param('planneddate'); -my @publisheddates = $query->param('publisheddate'); -my @publisheddatetexts = $query->param('publisheddatetext'); -my @status = $query->param('status'); -my @notes = $query->param('notes'); -my @subscriptionids = $query->param('subscriptionid'); +my @serialids = $query->multi_param('serialid'); +my @serialseqs = $query->multi_param('serialseq'); +my @planneddates = $query->multi_param('planneddate'); +my @publisheddates = $query->multi_param('publisheddate'); +my @publisheddatetexts = $query->multi_param('publisheddatetext'); +my @status = $query->multi_param('status'); +my @notes = $query->multi_param('notes'); +my @subscriptionids = $query->multi_param('subscriptionid'); my $op = $query->param('op'); if ( scalar(@subscriptionids) == 1 && index( $subscriptionids[0], q|,| ) > 0 ) { @subscriptionids = split( /,/, $subscriptionids[0] ); @@ -128,7 +129,8 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( my @serialdatalist; my %processedserialid; -my $today = output_pref( dt_from_string ); +my $today = output_pref( { dt => dt_from_string, dateonly => 1 } ); + foreach my $serialid (@serialids) { #filtering serialid for duplication @@ -249,17 +251,36 @@ if ( $op and $op eq 'serialchangestatus' ) { $notes[$i] ); } + my $makePreviousSerialAvailable = C4::Context->preference('makePreviousSerialAvailable'); + if ($makePreviousSerialAvailable && $serialids[$i] ne "NEW") { + # We already have created the new expected serial at this point, so we get the second previous serial + my $previous = GetPreviousSerialid($subscriptionids[$i]); + if ($previous) { + + my $serialitem = Koha::Serial::Items->search( {serialid => $previous} )->next; + my $itemnumber = $serialitem ? $serialitem->itemnumber : undef; + if ($itemnumber) { + + # Getting the itemtype to set from the database + my $subscriptioninfos = GetSubscription($subscriptionids[$i]); + + # Changing the status to "available" and the itemtype according to the previousitemtype db field + ModItem({notforloan => 0, itype => $subscriptioninfos->{'previousitemtype'} }, undef, $itemnumber); + } + } + } + } - my @moditems = $query->param('moditem'); + my @moditems = $query->multi_param('moditem'); if ( scalar(@moditems) ) { - my @tags = $query->param('tag'); - my @subfields = $query->param('subfield'); - my @field_values = $query->param('field_value'); - my @serials = $query->param('serial'); - my @bibnums = $query->param('bibnum'); - my @itemid = $query->param('itemid'); - my @ind_tag = $query->param('ind_tag'); - my @indicator = $query->param('indicator'); + my @tags = $query->multi_param('tag'); + my @subfields = $query->multi_param('subfield'); + my @field_values = $query->multi_param('field_value'); + my @serials = $query->multi_param('serial'); + my @bibnums = $query->multi_param('bibnum'); + my @itemid = $query->multi_param('itemid'); + my @ind_tag = $query->multi_param('ind_tag'); + my @indicator = $query->multi_param('indicator'); #Rebuilding ALL the data for items into a hash # parting them on $itemid. @@ -397,11 +418,7 @@ if ( $op and $op eq 'serialchangestatus' ) { print $query->redirect($redirect); } } -my $location = GetAuthorisedValues('LOC', $serialdatalist[0]->{'location'}); -my $locationlib; -foreach (@$location) { - $locationlib = $_->{'lib'} if $_->{'selected'}; -} +my $location = $serialdatalist[0]->{'location'}; my $default_bib_view = get_default_view(); $template->param( @@ -412,7 +429,7 @@ $template->param( biblionumber => $serialdatalist[0]->{'biblionumber'}, serialslist => \@serialdatalist, default_bib_view => $default_bib_view, - location => $locationlib, + location => $location, (uc(C4::Context->preference("marcflavour"))) => 1 );