Bugzilla – Attachment 16425 Details for
Bug 7677
Subscriptions: Ability to define default itemtype and automatically change itemtype of older issues on receive of next issue
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 7677: New areas in subscriptions and new functions when receiving.
Bug-7677-New-areas-in-subscriptions-and-new-functi.patch (text/plain), 28.02 KB, created by
Matthias Meusburger
on 2013-03-19 16:32:47 UTC
(
hide
)
Description:
Bug 7677: New areas in subscriptions and new functions when receiving.
Filename:
MIME Type:
Creator:
Matthias Meusburger
Created:
2013-03-19 16:32:47 UTC
Size:
28.02 KB
patch
obsolete
>From 5a9620d865ea2b60f2de9d5980ba5ae6ce745559 Mon Sep 17 00:00:00 2001 >From: Matthias Meusburger <matthias.meusburger@biblibre.com> >Date: Tue, 19 Mar 2013 10:07:41 +0100 >Subject: [PATCH] Bug 7677: New areas in subscriptions and new functions when > receiving. > > When enabling the makePreviousSerialAvailable syspref, the previously > received serial's itemtype is set as defined in the subscription. > (Please note that the item-level_itypes syspref must be set to specific item.) > It is also made available. > > You can define the serialsFieldsToAV syspref to associate authorized > values to the domain, origin and/or support fields. > > 995$l is automatically prefilled when receiving. >--- > C4/Biblio.pm | 1 - > C4/Items.pm | 9 +++ > C4/Serials.pm | 54 +++++++++++--- > installer/data/mysql/kohastructure.sql | 5 ++ > installer/data/mysql/sysprefs.sql | 2 + > installer/data/mysql/updatedatabase.pl | 40 +++++++++++ > .../prog/en/modules/admin/preferences/serials.pref | 9 +++ > .../prog/en/modules/serials/serials-edit.tt | 6 ++ > .../prog/en/modules/serials/subscription-add.tt | 73 +++++++++++++++++++ > serials/serials-edit.pl | 24 +++++++ > serials/subscription-add.pl | 76 +++++++++++++++++++- > t/db_dependent/Serials.t | 4 +- > 12 files changed, 291 insertions(+), 12 deletions(-) > >diff --git a/C4/Biblio.pm b/C4/Biblio.pm >index 16134d4..f38dca7 100644 >--- a/C4/Biblio.pm >+++ b/C4/Biblio.pm >@@ -2723,7 +2723,6 @@ sub TransformMarcToKohaOneField { > return $result; > } > >- > #" > > # >diff --git a/C4/Items.pm b/C4/Items.pm >index dbd06b6..d8b2ca1 100644 >--- a/C4/Items.pm >+++ b/C4/Items.pm >@@ -2718,6 +2718,9 @@ sub PrepareItemrecordDisplay { > while ( my ( $itemtype, $description ) = $sth->fetchrow_array ) { > push @authorised_values, $itemtype; > $authorised_lib{$itemtype} = $description; >+ >+ # If we have default value named itemtype or itemtypes, we use it >+ $defaultvalue = $itemtype if ($defaultvalues and ($defaultvalues->{'itemtypes'} eq $itemtype or $defaultvalues->{'itemtype'} eq $itemtype)); > } > #---- class_sources > } elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "cn_source" ) { >@@ -2744,6 +2747,12 @@ sub PrepareItemrecordDisplay { > while ( my ( $value, $lib ) = $authorised_values_sth->fetchrow_array ) { > push @authorised_values, $value; > $authorised_lib{$value} = $lib; >+ >+ # If we have a default value that has the same name as the authorised value category of the field, >+ # we use it >+ $defaultvalue = $value if ($defaultvalues and $defaultvalues->{$tagslib->{$tag}->{$subfield}->{authorised_value}} and $defaultvalues->{$tagslib->{$tag}->{$subfield}->{authorised_value}} eq $value); >+ >+ > } > } > $subfield_data{marc_value} = CGI::scrolling_list( >diff --git a/C4/Serials.pm b/C4/Serials.pm >index 0b31a2b..264ffe8 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -45,6 +45,7 @@ BEGIN { > &ReNewSubscription &GetLateIssues &GetLateOrMissingIssues > &GetSerialInformation &AddItem2Serial > &PrepareSerialsData &GetNextExpected &ModNextExpected >+ &GetPreviousSerialid > > &UpdateClaimdateIssues > &GetSuppliersWithLateIssues &getsupplierbyserialid >@@ -858,6 +859,39 @@ sub GetLatestSerials { > return \@serials; > } > >+=head2 GetPreviousSerialid >+ >+$serialid = GetPreviousSerialid($subscriptionid, $nth) >+get the $nth's previous serial for the given subscriptionid >+return : >+the serialid >+ >+=cut >+ >+sub GetPreviousSerialid { >+ my ( $subscriptionid, $nth ) = @_; >+ $nth ||= 1; >+ my $dbh = C4::Context->dbh; >+ my $return = undef; >+ >+ # Status 2: Arrived >+ my $strsth = "SELECT serialid >+ FROM serial >+ WHERE subscriptionid = ? >+ AND status = 2 >+ ORDER BY serialid DESC LIMIT $nth,1 >+ "; >+ my $sth = $dbh->prepare($strsth); >+ $sth->execute($subscriptionid); >+ my @serials; >+ my $line = $sth->fetchrow_hashref; >+ $return = $line->{'serialid'} if ($line); >+ >+ return $return; >+} >+ >+ >+ > =head2 GetDistributedTo > > $distributedto=GetDistributedTo($subscriptionid) >@@ -1259,7 +1293,8 @@ sub ModSubscription { > $whenmorethan1, $setto1, $lastvalue1, $innerloop1, $add2, $every2, $whenmorethan2, $setto2, > $lastvalue2, $innerloop2, $add3, $every3, $whenmorethan3, $setto3, $lastvalue3, $innerloop3, > $numberingmethod, $status, $biblionumber, $callnumber, $notes, $letter, $hemisphere, $manualhistory, >- $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount, $graceperiod, $location, $enddate, $subscriptionid >+ $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount, $graceperiod, $location, $enddate, $itemtype, >+ $ccode, $origin, $domain, $previousitemtype, $subscriptionid > ) = @_; > > # warn $irregularity; >@@ -1273,7 +1308,7 @@ sub ModSubscription { > numberingmethod=?, status=?, biblionumber=?, callnumber=?, notes=?, > letter=?, hemisphere=?,manualhistory=?,internalnotes=?,serialsadditems=?, > staffdisplaycount = ?,opacdisplaycount = ?, graceperiod = ?, location = ? >- ,enddate=? >+ ,enddate=?, itemtype=?, ccode=?, origin=?, domain=?, previousitemtype = ? > WHERE subscriptionid = ?"; > > #warn "query :".$query; >@@ -1290,10 +1325,11 @@ sub ModSubscription { > $numberingmethod, $status, $biblionumber, $callnumber, > $notes, $letter, $hemisphere, ( $manualhistory ? $manualhistory : 0 ), > $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount, >- $graceperiod, $location, $enddate, $subscriptionid >+ $graceperiod, $location, $enddate, $itemtype, >+ $ccode, $origin, $domain, $previousitemtype, >+ $subscriptionid > ); > my $rows = $sth->rows; >- > logaction( "SERIAL", "MODIFY", $subscriptionid, "" ) if C4::Context->preference("SubscriptionLog"); > return $rows; > } >@@ -1321,7 +1357,8 @@ sub NewSubscription { > $lastvalue1, $innerloop1, $add2, $every2, $whenmorethan2, $setto2, $lastvalue2, $innerloop2, > $add3, $every3, $whenmorethan3, $setto3, $lastvalue3, $innerloop3, $numberingmethod, $status, > $notes, $letter, $firstacquidate, $irregularity, $numberpattern, $callnumber, $hemisphere, $manualhistory, >- $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount, $graceperiod, $location, $enddate >+ $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount, $graceperiod, $location, $enddate, $itemtype, >+ $ccode, $origin, $domain, $previousitemtype > ) = @_; > my $dbh = C4::Context->dbh; > >@@ -1335,8 +1372,8 @@ sub NewSubscription { > add3,every3,whenmorethan3,setto3,lastvalue3,innerloop3, > numberingmethod, status, notes, letter,firstacquidate,irregularity, > numberpattern, callnumber, hemisphere,manualhistory,internalnotes,serialsadditems, >- staffdisplaycount,opacdisplaycount,graceperiod,location,enddate) >- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) >+ staffdisplaycount,opacdisplaycount,graceperiod,location,enddate, itemtype, ccode, origin, domain, previousitemtype) >+ VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) > |; > my $sth = $dbh->prepare($query); > $sth->execute( >@@ -1345,7 +1382,8 @@ sub NewSubscription { > $lastvalue1, $innerloop1, $add2, $every2, $whenmorethan2, $setto2, $lastvalue2, $innerloop2, > $add3, $every3, $whenmorethan3, $setto3, $lastvalue3, $innerloop3, $numberingmethod, "$status", > $notes, $letter, $firstacquidate, $irregularity, $numberpattern, $callnumber, $hemisphere, $manualhistory, >- $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount, $graceperiod, $location, $enddate >+ $internalnotes, $serialsadditems, $staffdisplaycount, $opacdisplaycount, $graceperiod, $location, $enddate, $itemtype, >+ $ccode, $origin, $domain, $previousitemtype > ); > > my $subscriptionid = $dbh->{'mysql_insertid'}; >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 221c4e4..1a00e9a 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -1922,6 +1922,11 @@ CREATE TABLE `subscription` ( > `graceperiod` int(11) NOT NULL default '0', > `enddate` date default NULL, > `closed` INT(1) NOT NULL DEFAULT 0, >+ `itemtype` VARCHAR( 10 ) NULL, >+ `ccode` VARCHAR( 10 ) NULL, >+ `origin` VARCHAR( 80 ) NULL, >+ `domain` VARCHAR( 80 ) NULL, >+ `previousitemtype` VARCHAR( 10 ) NULL, > PRIMARY KEY (`subscriptionid`) > ) ENGINE=InnoDB DEFAULT CHARSET=utf8; > >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index e3966ce..48c835c 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -421,3 +421,5 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES( > INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('PatronSelfRegistrationAdditionalInstructions','','A free text field to display additional instructions to newly self registered patrons.','','free'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UseQueryParser', '0', 'If enabled, try to use QueryParser for queries.', NULL, 'YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('FinesIncludeGracePeriod','1','If enabled, fines calculations will include the grace period.',NULL,'YesNo'); >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('makePreviousSerialAvailable','0','make previous serial automatically available when collecting a new serial. Please note that the item-level_itypes syspref must be set to specific item.','','YesNo'); >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('serialsFieldsToAV','','There are several fields from serials which can use authorised values. Those are support, origin, and domain. You can configure them like this: support:995$r|origin:995$s|domain:995$t','',''); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index f0a9269..6c9491f 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6532,6 +6532,46 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { > SetVersion ($DBversion); > } > >+$DBversion = "3.11.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do(qq{ >+ ALTER TABLE `subscription` ADD `itemtype` VARCHAR( 10 ) NULL , >+ ADD `ccode` VARCHAR( 10 ) NULL , >+ ADD `origin` VARCHAR( 80 ) NULL , >+ ADD `domain` VARCHAR( 80 ) NULL >+ }); >+ print "Upgrade to $DBversion done (Adds fields to subscription table)\n"; >+ SetVersion($DBversion); >+} >+ >+$DBversion = "3.11.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do( >+ "INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ('makePreviousSerialAvailable','0','make previous serial automatically available when collecting a new serial. Please note that the item-level_itypes syspref must be set to specific item.','','YesNo');" >+ ); >+ print "Upgrade to $DBversion done (added new syspref: makePreviousSerialAvailable)\n"; >+ SetVersion($DBversion); >+} >+ >+$DBversion = "3.11.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do( >+ "ALTER TABLE `subscription` ADD `previousitemtype` VARCHAR( 10 ) NULL" >+ ); >+ print "Upgrade to $DBversion done (adds field previousitemtype to subscription)\n"; >+ SetVersion($DBversion); >+} >+ >+$DBversion = "3.11.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do( >+ 'INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ("serialsFieldsToAV","","There are several fields from serials which can use authorised values. Those are support, origin, and domain. You can configure them like this: support:995$r|origin:995$s|domain:995$t","","");' >+ ); >+ print "Upgrade to $DBversion done (added new syspref: serialsFieldsToAV)\n"; >+ SetVersion($DBversion); >+} >+ >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/serials.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/serials.pref >index db727b6..677f4f8 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/serials.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/serials.pref >@@ -50,3 +50,12 @@ Serials: > - > - List of fields which must not be rewritten when a subscription is duplicated (Separated by pipe |) > - pref: SubscriptionDuplicateDroppedInput >+ - >+ - pref: makePreviousSerialAvailable >+ choices: >+ yes: Make >+ no: Do not make >+ - previous serial automatically available when collecting a new serial. Please note that the item-level_itypes syspref must be set to specific item. >+ - >+ - pref: serialsFieldsToAV >+ - "There are several fields from serials which can use authorised values. Those are support, origin, and domain. You can configure them like this: support:995$r|origin:995$s|domain:995$t" >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt >index 3a64b11..7e46cd3 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt >@@ -75,6 +75,12 @@ function unHideItems(index,labelindex, serialId) { > subfieldid = "subfield" + itemid.substr(4) + "h"; > // Setting text field > $("#" + subfieldid + " input[type='text']").val($("#serialseq" + serialId).val()); >+ // Also prefilling 995$l >+ subfieldid = "subfield" + itemid.substr(4) + "l"; >+ $("#" + subfieldid + " input[type='text']").val($("#serialseq" + serialId).val()); >+ // And prefilling for supplemental issue >+ $("#subfieldNEWl input[type='text']").val($("#serialseqNEW").val()); >+ > > } > function HideItems(index,labelindex) { >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt >index 35d4187..a58a1e7 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt >@@ -1049,6 +1049,79 @@ $(document).ready(function() { > [% FOREACH locations_loo IN locations_loop %][% IF ( locations_loo.selected ) %]<option value="[% locations_loo.authorised_value %]" selected="selected">[% locations_loo.lib %]</option>[% ELSE %]<option value="[% locations_loo.authorised_value %]">[% locations_loo.lib %]</option>[% END %][% END %] > </select> > </li> >+ <li> >+ <label for="itemtype">Item type:</label> >+ <select name="itemtype" id="itemtype"> >+ <option value=""></option> >+ [% FOREACH type IN typeloop %] >+ [% IF ( type.selected ) %] >+ <option value="[% type.code %]" selected="selected">[% type.value %]</option> >+ [% ELSE %] >+ <option value="[% type.code %]">[% type.value %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ [%IF makePreviousSerialAvailable %] >+ <li> >+ <label for="previousitemtype">Previous serial Item type:</label> >+ <select name="previousitemtype" id="previousitemtype"> >+ <option value=""></option> >+ [% FOREACH previous IN previoustypeloop %] >+ [% IF ( previous.selected ) %] >+ <option value="[% previous.code %]" selected="selected">[% previous.value %]</option> >+ [% ELSE %] >+ <option value="[% previous.code %]">[% previous.value %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ [% END %] >+ [% IF supportloop %] >+ <li> >+ <label for="support">Support:</label> >+ <select name="support" id="support"> >+ <option value=""></option> >+ [% FOREACH support IN supportloop %] >+ [% IF ( support.selected ) %] >+ <option value="[% support.code %]" selected="selected">[% support.value %]</option> >+ [% ELSE %] >+ <option value="[% support.code %]">[% support.value %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ [% END %] >+ [% IF originloop %] >+ <li> >+ <label for="origin">Origin:</label> >+ <select name="origin" id="origin"> >+ <option value=""></option> >+ [% FOREACH origin IN originloop %] >+ [% IF ( origin.selected ) %] >+ <option value="[% origin.code %]" selected="selected">[% origin.value %]</option> >+ [% ELSE %] >+ <option value="[% origin.code %]">[% origin.value %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ [% END %] >+ [% IF domainloop %] >+ <li> >+ <label for="domain">Domain:</label> >+ <select name="domain" id="domain"> >+ <option value=""></option> >+ [% FOREACH domain IN domainloop %] >+ [% IF ( domain.selected ) %] >+ <option value="[% domain.code %]" selected="selected">[% domain.value %]</option> >+ [% ELSE %] >+ <option value="[% domain.code %]">[% domain.value %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ [% END %] > <li> > <label for="callnumber">Call number:</label> > <input type="text" name="callnumber" id="callnumber" value="[% callnumber %]" size="20" /> >diff --git a/serials/serials-edit.pl b/serials/serials-edit.pl >index 66d3a4e..b9996cd 100755 >--- a/serials/serials-edit.pl >+++ b/serials/serials-edit.pl >@@ -90,6 +90,7 @@ if ( scalar(@subscriptionids) == 1 && index( $subscriptionids[0], q|,| ) > 0 ) { > } > my @errors; > my @errseq; >+my $dbh = C4::Context->dbh; > > # If user comes from subscription details > unless (@serialids) { >@@ -241,6 +242,29 @@ 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) { >+ >+ # Getting the itemnumber matching the serialid >+ my $query = "SELECT itemnumber FROM serialitems WHERE serialid=?"; >+ my $sth = $dbh->prepare($query); >+ $sth->execute($previous); >+ my @row = $sth->fetchrow_array; >+ if ($row[0]) { >+ my $itemnumber = $row[0]; >+ >+ # 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'); > if ( scalar(@moditems) ) { >diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl >index 10bccd1..8a912da 100755 >--- a/serials/subscription-add.pl >+++ b/serials/subscription-add.pl >@@ -142,6 +142,65 @@ $template->param(branchloop => $branchloop, > locations_loop=>$locations_loop, > ); > # prepare template variables common to all $op conditions: >+my $shelflocations = GetKohaAuthorisedValues( 'items.location', '' ); >+ >+my @locationarg = >+ map { { code => $_, value => $shelflocations->{$_}, selected => ( ( $subs->{location} and $_ eq $subs->{location} ) ? "selected=\"selected\"" : "" ), } } sort keys %{$shelflocations}; >+ >+my $typeloop = GetItemTypes(); >+ >+# Getting which field is mapped to which authorised value >+my $mapstring = C4::Context->preference('serialsFieldsToAV'); >+my %hashmap = split(/[:|]/, $mapstring); >+my $supportloop; >+my $originloop; >+my $domainloop; >+ >+if ($hashmap{'support'}) { >+ my ($field, $subfield) = split('\$', $hashmap{'support'}); >+ $supportloop = GetKohaAuthorisedValuesFromField($field, $subfield, ''); >+} >+ >+if ($hashmap{'origin'}) { >+ my ($field, $subfield) = split('\$', $hashmap{'origin'}); >+ $originloop = GetKohaAuthorisedValuesFromField($field, $subfield, ''); >+} >+ >+if ($hashmap{'domain'}) { >+ my ($field, $subfield) = split('\$', $hashmap{'domain'}); >+ $domainloop = GetKohaAuthorisedValuesFromField($field, $subfield, ''); >+} >+ >+ >+my @typearg = >+ map { { code => $_, value => $typeloop->{$_}{'description'}, selected => ( ( $subs->{itemtype} and $_ eq $subs->{itemtype} ) ? "selected=\"selected\"" : "" ), } } sort keys %{$typeloop}; >+my @previoustypearg = >+ map { { code => $_, value => $typeloop->{$_}{'description'}, selected => ( ( $subs->{previousitemtype} and $_ eq $subs->{previousitemtype} ) ? "selected=\"selected\"" : "" ), } } sort keys %{$typeloop}; >+my @supportarg = >+ map { { code => $_, value => $supportloop->{$_}, selected => ( ( $subs->{ccode} and $_ eq $subs->{ccode} ) ? "selected=\"selected\"" : "" ), } } sort keys %{$supportloop}; >+my @originarg = >+ map { { code => $_, value => $originloop->{$_}, selected => ( ( $subs->{origin} and $_ eq $subs->{origin} ) ? "selected=\"selected\"" : "" ), } } sort { lc $originloop->{$a} cmp lc $originloop->{$b} } keys %{$originloop}; >+my @domainarg = >+ map { { code => $_, value => $domainloop->{$_}, selected => ( ( $subs->{domain} and $_ eq $subs->{domain} ) ? "selected=\"selected\"" : "" ), } } sort keys %{$domainloop}; >+ >+ >+ >+$template->param( shelflocations => \@locationarg ); >+ >+$template->param( >+ branchloop => $branchloop, >+ typeloop => \@typearg, >+ previoustypeloop => \@previoustypearg, >+ supportloop => \@supportarg, >+ originloop => \@originarg, >+ domainloop => \@domainarg, >+ DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), >+ locations_loop=>$locations_loop, >+); >+# prepare template variables common to all $op conditions: >+$template->param( 'dateformat_' . C4::Context->preference('dateformat') => 1 ); >+$template->param('makePreviousSerialAvailable' => 1) if (C4::Context->preference('makePreviousSerialAvailable')); >+ > if ($op!~/^mod/) { > letter_loop(q{}, $template); > } >@@ -247,6 +306,11 @@ sub redirect_add_subscription { > my $staffdisplaycount = $query->param('staffdisplaycount'); > my $opacdisplaycount = $query->param('opacdisplaycount'); > my $location = $query->param('location'); >+ my $itemtype = $query->param('itemtype'); >+ my $support = $query->param('support'); >+ my $origin = $query->param('origin'); >+ my $domain = $query->param('domain'); >+ my $previousitemtype = $query->param('previousitemtype'); > my $startdate = format_date_in_iso( $query->param('startdate') ); > my $enddate = format_date_in_iso( $query->param('enddate') ); > my $firstacquidate = format_date_in_iso($query->param('firstacquidate')); >@@ -263,7 +327,7 @@ sub redirect_add_subscription { > $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3, > $numberingmethod, $status, $notes,$letter,$firstacquidate,join(",",@irregularity), > $numberpattern, $callnumber, $hemisphere,($manualhistory?$manualhistory:0),$internalnotes, >- $serialsadditems,$staffdisplaycount,$opacdisplaycount,$graceperiod,$location,$enddate >+ $serialsadditems,$staffdisplaycount,$opacdisplaycount,$graceperiod,$location,$enddate, $itemtype, $support, $origin, $domain, $previousitemtype > ); > ModSubscriptionHistory ($subscriptionid,$histstartdate,$histenddate,$recievedlist,$missinglist,$opacnote,$librariannote); > >@@ -319,6 +383,12 @@ sub redirect_mod_subscription { > my $letter = $query->param('letter'); > my $manualhistory = $query->param('manualhist'); > my $serialsadditems = $query->param('serialsadditems'); >+ my $itemtype = $query->param('itemtype'); >+ my $support = $query->param('support'); >+ my $origin = $query->param('origin'); >+ my $domain = $query->param('domain'); >+ my $previousitemtype = $query->param('previousitemtype'); >+ > # subscription history > my $histenddate = format_date_in_iso($query->param('histenddate')); > my $histstartdate = format_date_in_iso($query->param('histstartdate')); >@@ -349,9 +419,11 @@ sub redirect_mod_subscription { > $whenmorethan3, $setto3, $lastvalue3, $innerloop3, > $numberingmethod, $status, $biblionumber, $callnumber, > $notes, $letter, $hemisphere, $manualhistory,$internalnotes, >- $serialsadditems, $staffdisplaycount,$opacdisplaycount,$graceperiod,$location,$enddate,$subscriptionid >+ $serialsadditems, $staffdisplaycount,$opacdisplaycount,$graceperiod,$location,$enddate, $itemtype, $support, $origin, $domain, $previousitemtype, $subscriptionid > ); > ModSubscriptionHistory ($subscriptionid,$histstartdate,$histenddate,$recievedlist,$missinglist,$opacnote,$librariannote); >+ >+ > print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); > return; > } >diff --git a/t/db_dependent/Serials.t b/t/db_dependent/Serials.t >index 424effc..1785dfa 100644 >--- a/t/db_dependent/Serials.t >+++ b/t/db_dependent/Serials.t >@@ -37,7 +37,9 @@ if ($subscriptioninformation->{periodicity} % 16==0){ > whenmorethan1, setto1, lastvalue1, innerloop1, add2, every2, whenmorethan2, setto2, > lastvalue2, innerloop2, add3, every3, whenmorethan3, setto3, lastvalue3, innerloop3, > numberingmethod, status, biblionumber, callnumber, notes, letter, hemisphere, manualhistory, >- internalnotes, serialsadditems, staffdisplaycount, opacdisplaycount, graceperiod, location, enddate, subscriptionid >+ internalnotes, serialsadditems, staffdisplaycount, opacdisplaycount, graceperiod, location, enddate, >+ itemtype, support, origin, domain, previousitemtype, >+ subscriptionid > )}); > } > my $expirationdate = GetExpirationDate(1) ; >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 7677
:
16339
|
16425
|
16456
|
20537
|
20538
|
24099
|
24635
|
25980
|
25981
|
25983
|
27774
|
28950
|
28951
|
28952
|
28953
|
29570
|
29571
|
29572
|
34220
|
34221
|
34222
|
34223
|
34665
|
36389
|
36446
|
36448
|
36449
|
36450
|
36451
|
36452
|
36453
|
36679
|
36680
|
36681
|
36682
|
36683
|
42923
|
42924
|
45938
|
45939
|
45940
|
45941
|
45942
|
45943
|
46216
|
47475
|
52010
|
54876
|
55000
|
55323
|
55466
|
55467
|
55468
|
55469
|
55470
|
55471
|
55472
|
55473
|
55474
|
55475