Bug 15685: Allow creation of items (AcqCreateItem) to be customizable per-basket
This adds a new basket attribute (create_items) that can optionally be
set to override AcqCreateItem.
The following have been modified to reflect this (with the value of
create_items that causes them to behave differently in parentheses):
* Cancelling receipt of an order (receiving)
* Creating an order by hand or from MARC (ordering)
* Receiving an order (receiving)
* Showing orders with uncertain price (ordering)
* Showing orders (receiving)
* Showing acquisition details in the OPAC (ordering)
Test plan:
1) Create baskets with "Create items when:" set to ordering,
receiving, cataloging and unset.
2) Test each of the above for each of these baskets, verifying that
the basket-specific attribute overrides AcqCreateItem if set and
falls back to the syspref otherwise.
NOTE: A check of AcqCreateItem in opac-detail.tt was removed because it
was redundant; the code path in question cannot be triggered unless
create_items/AcqCreateItems is set to the correct value anyway.
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Barbara Fondren <bfondren@roundrocktexas.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
4869f1b6ec
commit
b29493265b
|
|
@ -190,7 +190,7 @@ sub GetBasket {
|
|||
=head3 NewBasket
|
||||
|
||||
$basket = &NewBasket( $booksellerid, $authorizedby, $basketname,
|
||||
$basketnote, $basketbooksellernote, $basketcontractnumber, $deliveryplace, $billingplace, $is_standing );
|
||||
$basketnote, $basketbooksellernote, $basketcontractnumber, $deliveryplace, $billingplace, $is_standing, $create_items );
|
||||
|
||||
Create a new basket in aqbasket table
|
||||
|
||||
|
|
@ -209,7 +209,7 @@ The other parameters are optional, see ModBasketHeader for more info on them.
|
|||
sub NewBasket {
|
||||
my ( $booksellerid, $authorisedby, $basketname, $basketnote,
|
||||
$basketbooksellernote, $basketcontractnumber, $deliveryplace,
|
||||
$billingplace, $is_standing ) = @_;
|
||||
$billingplace, $is_standing, $create_items ) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query =
|
||||
'INSERT INTO aqbasket (creationdate,booksellerid,authorisedby) '
|
||||
|
|
@ -221,7 +221,7 @@ sub NewBasket {
|
|||
$basketnote ||= q{};
|
||||
$basketbooksellernote ||= q{};
|
||||
ModBasketHeader( $basket, $basketname, $basketnote, $basketbooksellernote,
|
||||
$basketcontractnumber, $booksellerid, $deliveryplace, $billingplace, $is_standing );
|
||||
$basketcontractnumber, $booksellerid, $deliveryplace, $billingplace, $is_standing, $create_items );
|
||||
return $basket;
|
||||
}
|
||||
|
||||
|
|
@ -598,21 +598,24 @@ Modifies a basket's header.
|
|||
|
||||
=item C<$is_standing> is the "is_standing" field in the aqbasket table.
|
||||
|
||||
=item C<$create_items> should be set to 'ordering', 'receiving' or 'cataloguing' (or undef, in which
|
||||
case the AcqCreateItem syspref takes precedence).
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
sub ModBasketHeader {
|
||||
my ($basketno, $basketname, $note, $booksellernote, $contractnumber, $booksellerid, $deliveryplace, $billingplace, $is_standing) = @_;
|
||||
my ($basketno, $basketname, $note, $booksellernote, $contractnumber, $booksellerid, $deliveryplace, $billingplace, $is_standing, $create_items) = @_;
|
||||
my $query = qq{
|
||||
UPDATE aqbasket
|
||||
SET basketname=?, note=?, booksellernote=?, booksellerid=?, deliveryplace=?, billingplace=?, is_standing=?
|
||||
SET basketname=?, note=?, booksellernote=?, booksellerid=?, deliveryplace=?, billingplace=?, is_standing=?, create_items=?
|
||||
WHERE basketno=?
|
||||
};
|
||||
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute($basketname, $note, $booksellernote, $booksellerid, $deliveryplace, $billingplace, $is_standing, $basketno);
|
||||
$sth->execute($basketname, $note, $booksellernote, $booksellerid, $deliveryplace, $billingplace, $is_standing, $create_items || undef, $basketno);
|
||||
|
||||
if ( $contractnumber ) {
|
||||
my $query2 ="UPDATE aqbasket SET contractnumber=? WHERE basketno=?";
|
||||
|
|
@ -1587,6 +1590,7 @@ sub CancelReceipt {
|
|||
my $parent_ordernumber = $order->{'parent_ordernumber'};
|
||||
|
||||
my @itemnumbers = GetItemnumbersFromOrder( $ordernumber );
|
||||
my $basket = Koha::Acquisition::Order->find( $order->{ordernumber} )->basket;
|
||||
|
||||
if($parent_ordernumber == $ordernumber || not $parent_ordernumber) {
|
||||
# The order line has no parent, just mark it as not received
|
||||
|
|
@ -1647,7 +1651,7 @@ sub CancelReceipt {
|
|||
WHERE ordernumber = ?
|
||||
|, undef, $parent_ordernumber);
|
||||
|
||||
_cancel_items_receipt( $ordernumber, $parent_ordernumber );
|
||||
_cancel_items_receipt( $basket->effective_create_items, $ordernumber, $parent_ordernumber );
|
||||
# Delete order line
|
||||
$query = qq{
|
||||
DELETE FROM aqorders
|
||||
|
|
@ -1658,7 +1662,7 @@ sub CancelReceipt {
|
|||
|
||||
}
|
||||
|
||||
if(C4::Context->preference('AcqCreateItem') eq 'ordering') {
|
||||
if( $basket->effective_create_items eq 'ordering' ) {
|
||||
my @affects = split q{\|}, C4::Context->preference("AcqItemSetSubfieldsWhenReceiptIsCancelled");
|
||||
if ( @affects ) {
|
||||
for my $in ( @itemnumbers ) {
|
||||
|
|
@ -1681,11 +1685,11 @@ sub CancelReceipt {
|
|||
}
|
||||
|
||||
sub _cancel_items_receipt {
|
||||
my ( $ordernumber, $parent_ordernumber ) = @_;
|
||||
my ( $effective_create_items, $ordernumber, $parent_ordernumber ) = @_;
|
||||
$parent_ordernumber ||= $ordernumber;
|
||||
|
||||
my @itemnumbers = GetItemnumbersFromOrder($ordernumber);
|
||||
if(C4::Context->preference('AcqCreateItem') eq 'receiving') {
|
||||
if ( $effective_create_items eq 'receiving' ) {
|
||||
# Remove items that were created at receipt
|
||||
my $query = qq{
|
||||
DELETE FROM items, aqorders_items
|
||||
|
|
|
|||
|
|
@ -45,6 +45,19 @@ sub bookseller {
|
|||
return Koha::Acquisition::Bookseller->_new_from_dbic( $bookseller_rs );
|
||||
}
|
||||
|
||||
|
||||
=head3 effective_create_items
|
||||
|
||||
Returns C<create_items> for this basket, falling back to C<AcqCreateItem> if unset.
|
||||
|
||||
=cut
|
||||
|
||||
sub effective_create_items {
|
||||
my ( $self ) = @_;
|
||||
|
||||
return $self->create_items || C4::Context->preference('AcqCreateItem');
|
||||
}
|
||||
|
||||
=head3 type
|
||||
|
||||
=cut
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ use Modern::Perl;
|
|||
|
||||
use Carp qw( croak );
|
||||
|
||||
use Koha::Acquisition::Baskets;
|
||||
use Koha::Database;
|
||||
use Koha::DateUtils qw( dt_from_string output_pref );
|
||||
|
||||
|
|
@ -98,9 +99,14 @@ sub add_item {
|
|||
$rs->create({ ordernumber => $self->ordernumber, itemnumber => $itemnumber });
|
||||
}
|
||||
|
||||
sub basket {
|
||||
my ( $self ) = @_;
|
||||
return Koha::Acquisition::Baskets->find( $self->{basketno} );
|
||||
}
|
||||
|
||||
=head2 Internal methods
|
||||
|
||||
=head3 _type (internal)
|
||||
=head3 _type
|
||||
|
||||
=cut
|
||||
|
||||
|
|
|
|||
|
|
@ -234,6 +234,8 @@ my $basketno=$$orderinfo{basketno};
|
|||
my $basket = GetBasket($basketno);
|
||||
|
||||
my $user = $input->remote_user;
|
||||
my $basketno=$$orderinfo{basketno};
|
||||
my $basket = Koha::Acquisition::Baskets->find( $basketno );
|
||||
|
||||
# create, modify or delete biblio
|
||||
# create if $quantity>0 and $existing='no'
|
||||
|
|
@ -291,7 +293,7 @@ if ( $basket->{is_standing} || $orderinfo->{quantity} ne '0' ) {
|
|||
}
|
||||
|
||||
# now, add items if applicable
|
||||
if (C4::Context->preference('AcqCreateItem') eq 'ordering') {
|
||||
if ($basket->effective_create_items eq 'ordering') {
|
||||
|
||||
my @tags = $input->multi_param('tag');
|
||||
my @subfields = $input->multi_param('subfield');
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ use C4::Members;
|
|||
|
||||
use Koha::Number::Price;
|
||||
use Koha::Libraries;
|
||||
use Koha::Acquisition::Baskets;
|
||||
use Koha::Acquisition::Currencies;
|
||||
use Koha::Acquisition::Orders;
|
||||
use Koha::Acquisition::Booksellers;
|
||||
|
|
@ -78,6 +79,7 @@ if ($cgiparams->{'import_batch_id'} && $op eq ""){
|
|||
if (! $cgiparams->{'basketno'}){
|
||||
die "Basketnumber required to order from iso2709 file import";
|
||||
}
|
||||
my $basket = Koha::Acquisition::Baskets->find( $cgiparams->{basketno} );
|
||||
|
||||
#
|
||||
# 1st step = choose the file to import into acquisition
|
||||
|
|
@ -102,7 +104,7 @@ if ($op eq ""){
|
|||
);
|
||||
import_biblios_list($template, $cgiparams->{'import_batch_id'});
|
||||
my $basket = GetBasket($cgiparams->{basketno});
|
||||
if ( C4::Context->preference('AcqCreateItem') eq 'ordering' && !$basket->{is_standing} ) {
|
||||
if ( $basket->effective_create_items eq 'ordering' && !$basket->{is_standing} ) {
|
||||
# prepare empty item form
|
||||
my $cell = PrepareItemrecordDisplay( '', '', '', 'ACQ' );
|
||||
|
||||
|
|
@ -381,7 +383,7 @@ if ($op eq ""){
|
|||
# parse the item sent by the form, and create an item just for the import_record_id we are dealing with
|
||||
# this is not optimised, but it's working !
|
||||
my $basket = GetBasket($cgiparams->{basketno});
|
||||
if ( C4::Context->preference('AcqCreateItem') eq 'ordering' && !$basket->{is_standing} ) {
|
||||
if ( $basket->effective_create_items eq 'ordering' && !$basket->{is_standing} ) {
|
||||
my @tags = $input->multi_param('tag');
|
||||
my @subfields = $input->multi_param('subfield');
|
||||
my @field_values = $input->multi_param('field_value');
|
||||
|
|
|
|||
|
|
@ -390,6 +390,7 @@ if ( $op eq 'list' ) {
|
|||
}
|
||||
|
||||
$template->param(
|
||||
basket => $basket,
|
||||
basketno => $basketno,
|
||||
basket => $basket,
|
||||
basketname => $basket->{'basketname'},
|
||||
|
|
|
|||
|
|
@ -145,6 +145,7 @@ if ( $op eq 'add_form' ) {
|
|||
scalar $input->param('deliveryplace'),
|
||||
scalar $input->param('billingplace'),
|
||||
scalar $input->param('is_standing') ? 1 : undef,
|
||||
scalar $input->param('create_items')
|
||||
);
|
||||
} else { #New basket
|
||||
$basketno = NewBasket(
|
||||
|
|
@ -157,6 +158,7 @@ if ( $op eq 'add_form' ) {
|
|||
scalar $input->param('deliveryplace'),
|
||||
scalar $input->param('billingplace'),
|
||||
scalar $input->param('is_standing') ? 1 : undef,
|
||||
scalar $input->param('create_items')
|
||||
);
|
||||
}
|
||||
print $input->redirect('basket.pl?basketno='.$basketno);
|
||||
|
|
|
|||
|
|
@ -60,12 +60,13 @@ my $order = GetOrder($ordernumber);
|
|||
my $new_ordernumber = $ordernumber;
|
||||
|
||||
$unitprice = Koha::Number::Price->new( $unitprice )->unformat();
|
||||
my $basket = Koha::Acquisition::Orders->find( $ordernumber )->basket;
|
||||
|
||||
#need old receivedate if we update the order, parcel.pl only shows the right parcel this way FIXME
|
||||
#need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
|
||||
if ($quantityrec > $origquantityrec ) {
|
||||
my @received_items = ();
|
||||
if(C4::Context->preference('AcqCreateItem') eq 'ordering') {
|
||||
@received_items = $input->multi_param('items_to_receive');
|
||||
if ($basket->effective_create_items eq 'ordering') {
|
||||
@received_items = $input->param('items_to_receive');
|
||||
my @affects = split q{\|}, C4::Context->preference("AcqItemSetSubfieldsWhenReceived");
|
||||
if ( @affects ) {
|
||||
my $frameworkcode = GetFrameworkCode($biblionumber);
|
||||
|
|
@ -111,7 +112,7 @@ if ($quantityrec > $origquantityrec ) {
|
|||
}
|
||||
|
||||
# now, add items if applicable
|
||||
if (C4::Context->preference('AcqCreateItem') eq 'receiving') {
|
||||
if ($basket->effective_create_items eq 'receiving') {
|
||||
|
||||
my @tags = $input->multi_param('tag');
|
||||
my @subfields = $input->multi_param('subfield');
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ if(!$basketno) {
|
|||
}
|
||||
|
||||
our $basket = GetBasket($basketno);
|
||||
my $basketobj = Koha::Acquisition::Baskets->find( $basketno );
|
||||
$booksellerid = $basket->{booksellerid} unless $booksellerid;
|
||||
my $bookseller = Koha::Acquisition::Booksellers->find( $booksellerid );
|
||||
|
||||
|
|
@ -243,7 +244,7 @@ if ($close) {
|
|||
$template->param( sort1 => $data->{'sort1'} );
|
||||
$template->param( sort2 => $data->{'sort2'} );
|
||||
|
||||
if (C4::Context->preference('AcqCreateItem') eq 'ordering' && !$ordernumber) {
|
||||
if ($basketobj->effective_create_items eq 'ordering' && !$ordernumber) {
|
||||
# Check if ACQ framework exists
|
||||
my $marc = GetMarcStructure(1, 'ACQ', { unsafe => 1 } );
|
||||
unless($marc) {
|
||||
|
|
@ -358,7 +359,7 @@ $template->param(
|
|||
barcode_subfield => $barcode_subfield,
|
||||
import_batch_id => $import_batch_id,
|
||||
subscriptionid => $subscriptionid,
|
||||
acqcreate => C4::Context->preference("AcqCreateItem") eq "ordering" ? 1 : "",
|
||||
acqcreate => $basketobj->effective_create_items eq "ordering" ? 1 : "",
|
||||
users_ids => join(':', @order_user_ids),
|
||||
users => \@order_users,
|
||||
(uc(C4::Context->preference("marcflavour"))) => 1
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ unless ( $results and @$results) {
|
|||
|
||||
# prepare the form for receiving
|
||||
my $order = $results->[0];
|
||||
my $basket = Koha::Acquisition::Order->fetch({ordernumber => $ordernumber})->basket;
|
||||
|
||||
# Check if ACQ framework exists
|
||||
my $acq_fw = GetMarcStructure( 1, 'ACQ', { unsafe => 1 } );
|
||||
|
|
@ -118,7 +119,7 @@ unless($acq_fw) {
|
|||
$template->param('NoACQframework' => 1);
|
||||
}
|
||||
|
||||
my $AcqCreateItem = C4::Context->preference('AcqCreateItem');
|
||||
my $AcqCreateItem = $basket->effective_create_items;
|
||||
if ($AcqCreateItem eq 'receiving') {
|
||||
$template->param(
|
||||
AcqCreateItemReceiving => 1,
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ use CGI qw ( -utf8 );
|
|||
use C4::Output;
|
||||
use C4::Suggestions;
|
||||
|
||||
use Koha::Acquisition::Baskets;
|
||||
use Koha::Acquisition::Bookseller;
|
||||
use Koha::Biblios;
|
||||
use Koha::DateUtils;
|
||||
|
|
@ -264,6 +265,7 @@ unless( defined $invoice->{closedate} ) {
|
|||
$line{left_holds_on_order} = 1 if $line{left_holds}==1 && ($line{items} == 0 || $itemholds );
|
||||
$line{holds} = $holds_count;
|
||||
$line{holds_on_order} = $itemholds?$itemholds:$holds_count if $line{left_holds_on_order};
|
||||
$line{basket} = Koha::Acquisition::Baskets->find( $line{basketno} );
|
||||
|
||||
my $budget_name = GetBudgetName( $line{budget_id} );
|
||||
$line{budget_name} = $budget_name;
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ use C4::Acquisition qw/SearchOrders GetOrder ModOrder/;
|
|||
use C4::Biblio qw/GetBiblioData/;
|
||||
|
||||
use Koha::Acquisition::Booksellers;
|
||||
use Koha::Acquisition::Baskets;
|
||||
|
||||
my $input=new CGI;
|
||||
|
||||
|
|
@ -72,6 +73,8 @@ my $op = $input->param('op');
|
|||
my $owner = $input->param('owner') || 0 ; # flag to see only "my" orders, or everyone orders
|
||||
my $bookseller = Koha::Acquisition::Booksellers->find( $booksellerid );
|
||||
|
||||
$template->param( basket => Koha::Acquisition::Baskets->find($basketno) );
|
||||
|
||||
#show all orders that have uncertain price for the bookseller
|
||||
my $pendingorders = SearchOrders({
|
||||
booksellerid => $booksellerid,
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE aqbasket ADD COLUMN create_items ENUM('ordering', 'receiving', 'cataloguing') DEFAULT NULL;
|
||||
|
|
@ -2992,6 +2992,7 @@ CREATE TABLE `aqbasket` ( -- stores data about baskets in acquisitions
|
|||
`basketgroupid` int(11), -- links this basket to its group (aqbasketgroups.id)
|
||||
`deliveryplace` varchar(10) default NULL, -- basket delivery place
|
||||
`billingplace` varchar(10) default NULL, -- basket billing place
|
||||
create_items ENUM('ordering', 'receiving', 'cataloguing') default NULL; -- when items should be created for orders in this basket
|
||||
branch varchar(10) default NULL, -- basket branch
|
||||
is_standing TINYINT(1) NOT NULL DEFAULT 0, -- orders in this basket are standing
|
||||
PRIMARY KEY (`basketno`),
|
||||
|
|
|
|||
|
|
@ -423,9 +423,18 @@
|
|||
[% IF ( creationdate ) %]<li><span class="label">Opened on:</span> [% creationdate | $KohaDates %]</li>[% END %]
|
||||
[% IF ( closedate ) %]<li><span class="label">Closed on:</span> [% closedate | $KohaDates %]</li>[% END %]
|
||||
[% IF ( estimateddeliverydate ) %]<li><span class="label">Estimated delivery date:</span> [% estimateddeliverydate | $KohaDates %]</li>[% END %]
|
||||
[% IF ( estimateddeliverydate ) %]<li><span class="label">Estimated delivery date:</span> [% estimateddeliverydate | $KohaDates %]</li>[% END %]
|
||||
<li><span class="label">Orders are standing:</span> [% IF is_standing %]Yes[% ELSE %]No[% END %]</li>
|
||||
|
||||
[% IF basket.create_items %]
|
||||
<li>
|
||||
<span class="label">Create items when:</span>
|
||||
[% SWITCH basket.create_items %]
|
||||
[% CASE 'receiving' %]Receiving items
|
||||
[% CASE 'cataloguing' %]Cataloguing items
|
||||
[% CASE %]Placing orders
|
||||
[% END %]
|
||||
</li>
|
||||
[% END %]
|
||||
|
||||
</ol>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
[% USE Branches %]
|
||||
[% USE Koha %]
|
||||
[% INCLUDE 'doc-head-open.inc' %]
|
||||
<title>Koha › Acquisitions ›
|
||||
[% IF ( add_form ) %]
|
||||
|
|
@ -42,7 +43,7 @@
|
|||
[% IF ( basketno ) %]
|
||||
<li>
|
||||
<input type="hidden" name="basketno" value="[% basketno %]" />
|
||||
<input type="hidden" name="is_an_edit" value="1" />
|
||||
<input type="hidden" name="rs_an_edit" value="1" />
|
||||
</li>
|
||||
[% END %]
|
||||
<li>
|
||||
|
|
@ -107,6 +108,21 @@
|
|||
[% END %]
|
||||
<div class="hint">Standing orders do not close when received.</div>
|
||||
</li>
|
||||
[% UNLESS basketno %]
|
||||
<li>
|
||||
<label for="create_items">Create items when:</label>
|
||||
<select name="create_items" id="create_items">
|
||||
[% SWITCH Koha.Preference('AcqCreateItem') %]
|
||||
[% CASE 'receiving' %]<option value="">use default (receiving an order).</option>
|
||||
[% CASE 'cataloguing' %]<option value="">use default (cataloging the record).</option>
|
||||
[% CASE %]<option value="">use default (placing an order).</option>
|
||||
[% END %]
|
||||
<option value="ordering">placing an order.</option>
|
||||
<option value="receiving">receiving an order.</option>
|
||||
<option value="cataloguing">cataloging the record.</option>
|
||||
</select>
|
||||
</li>
|
||||
[% END %]
|
||||
</ol>
|
||||
</fieldset>
|
||||
<fieldset class="action">
|
||||
|
|
|
|||
|
|
@ -441,7 +441,7 @@
|
|||
<td>[% order.unitprice | $Price %]</td>
|
||||
<td>[% order.total | $Price %]</td>
|
||||
<td>
|
||||
[% IF loop_receive.cannot_cancel or ( Koha.Preference("AcqCreateItem") == "receiving" and loop_receive.holds > 0 ) %]
|
||||
[% IF loop_receive.cannot_cancel or ( order.basket.effective_create_items == "receiving" and loop_receive.holds > 0 ) %]
|
||||
[% IF loop_receive.cannot_cancel %]
|
||||
[% span_title = BLOCK %]
|
||||
Cannot cancel receipt of this order line because it
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ var MSG_INVALIDPRICE = _("ERROR: Price is not a valid number, please check the p
|
|||
<input class="check_uncertain" data-ordernumber="[% uncertainpriceorder.ordernumber %]" type="text" size="10" name="price[% uncertainpriceorder.ordernumber %]" value="[% uncertainpriceorder.listprice %]" />
|
||||
</td>
|
||||
<td>
|
||||
[% IF Koha.Preference('AcqCreateItem') == 'ordering' %]
|
||||
[% IF basket.effective_create_items == 'ordering' %]
|
||||
[% uncertainpriceorder.quantity %]
|
||||
<input type="hidden" name="qty[% uncertainpriceorder.ordernumber %]" value="[% uncertainpriceorder.quantity %]" />
|
||||
[% ELSE %]
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ Acquisitions:
|
|||
ordering: placing an order.
|
||||
receiving: receiving an order.
|
||||
cataloguing: cataloging the record.
|
||||
- This is only the default behavior, and can be changed per-basket.
|
||||
-
|
||||
- "The following <a href='http://schema.koha-community.org/__VERSION__/tables/items.html' target='blank'>database columns</a> should be unique in an item:"
|
||||
- pref: UniqueItemFields
|
||||
|
|
|
|||
|
|
@ -654,7 +654,7 @@
|
|||
<p>This record has many physical items ([% items_count %]). <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblionumber | html %]&viewallitems=1">Click here to view them all.</a></p>
|
||||
[% ELSIF ( itemloop.size ) %]
|
||||
[% INCLUDE items_table items=itemloop tab="holdings" %]
|
||||
[% IF Koha.Preference('OPACAcquisitionDetails') and Koha.Preference('AcqCreateItem') != 'ordering' and acquisition_details.total_quantity > 0 %]
|
||||
[% IF Koha.Preference('OPACAcquisitionDetails') and acquisition_details.total_quantity > 0 %]
|
||||
[% IF acquisition_details.total_quantity == 1 %]
|
||||
<span>1 item is on order.</span>
|
||||
[% ELSE %]
|
||||
|
|
@ -681,7 +681,7 @@
|
|||
<div id="alternateholdings"><span class="holdings_label">Holdings:</span> [% ALTERNATEHOLDING.holding %]</div>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% IF Koha.Preference('OPACAcquisitionDetails') and Koha.Preference('AcqCreateItem') != 'ordering' and acquisition_details.total_quantity > 0 %]
|
||||
[% IF Koha.Preference('OPACAcquisitionDetails') and acquisition_details.total_quantity > 0 %]
|
||||
[% IF acquisition_details.total_quantity == 1 %]
|
||||
<span>1 item is on order.</span>
|
||||
[% ELSE %]
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ use Koha::RecordProcessor;
|
|||
use Koha::AuthorisedValues;
|
||||
use Koha::Biblios;
|
||||
use Koha::ItemTypes;
|
||||
use Koha::Acquisition::Order;
|
||||
use Koha::Virtualshelves;
|
||||
use Koha::Patrons;
|
||||
use Koha::Ratings;
|
||||
|
|
@ -639,7 +640,8 @@ if ( C4::Context->preference('OPACAcquisitionDetails' ) ) {
|
|||
});
|
||||
my $total_quantity = 0;
|
||||
for my $order ( @$orders ) {
|
||||
if ( C4::Context->preference('AcqCreateItem') eq 'ordering' ) {
|
||||
my $basket = Koha::Acquisition::Order->find( $order->{ordernumber} )->basket;
|
||||
if ( $basket->effective_create_items eq 'ordering' ) {
|
||||
for my $itemnumber ( C4::Acquisition::GetItemnumbersFromOrder( $order->{ordernumber} ) ) {
|
||||
push @itemnumbers_on_order, $itemnumber;
|
||||
}
|
||||
|
|
@ -700,9 +702,7 @@ if ( not $viewallitems and @items > $max_items_to_display ) {
|
|||
$itm->{transfertto} = $transfertto;
|
||||
}
|
||||
|
||||
if ( C4::Context->preference('OPACAcquisitionDetails')
|
||||
and C4::Context->preference('AcqCreateItem') eq 'ordering' )
|
||||
{
|
||||
if ( C4::Context->preference('OPACAcquisitionDetails') ) {
|
||||
$itm->{on_order} = 1
|
||||
if grep /^$itm->{itemnumber}$/, @itemnumbers_on_order;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue