From 9473f52053d16e79b8e28af1ecd0af6508fe7a0a Mon Sep 17 00:00:00 2001 From: Jesse Weaver Date: Mon, 11 Jan 2016 16:07:33 -0700 Subject: [PATCH] Bug 15531: (followup) Use a quantity of 1, not null, for standing orders This seems to cause fewer problems with the existing acquisitions code. --- C4/Acquisition.pm | 2 +- Koha/Acquisition/Order.pm | 11 +++--- .../intranet-tmpl/prog/en/modules/acqui/basket.tt | 2 +- .../prog/en/modules/acqui/neworderempty.tt | 46 ++++++++++------------ t/db_dependent/Acquisition/NewOrder.t | 5 +-- t/db_dependent/Acquisition/StandingOrders.t | 18 +-------- 6 files changed, 31 insertions(+), 53 deletions(-) diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index d04f3e5..fa7b76d 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -1411,7 +1411,7 @@ q{SELECT *, aqbasket.is_standing FROM aqorders LEFT JOIN aqbasket USING (basketn my $sth = $dbh->prepare($query); $sth->execute( - ( $order->{quantity} < $quantrec ? 0 : ( $order->{quantity} - $quantrec ) ), + ( $order->{is_standing} ? 1 : ( $order->{quantity} - $quantrec ) ), ( defined $order_internalnote ? $order_internalnote : () ), ( defined $order_vendornote ? $order_vendornote : () ), $ordernumber diff --git a/Koha/Acquisition/Order.pm b/Koha/Acquisition/Order.pm index de0c49d..ede8ddf 100644 --- a/Koha/Acquisition/Order.pm +++ b/Koha/Acquisition/Order.pm @@ -26,17 +26,16 @@ sub fetch { sub insert { my ($self) = @_; + my $schema = Koha::Database->new->schema; + # Override quantity for standing orders + $self->{quantity} = 1 if ( $self->{basketno} && $schema->resultset('Aqbasket')->find( $self->{basketno} )->is_standing ); + # if these parameters are missing, we can't continue - for my $key (qw( basketno biblionumber budget_id )) { + for my $key (qw( basketno quantity biblionumber budget_id )) { croak "Cannot insert order: Mandatory parameter $key is missing" unless $self->{$key}; } - my $schema = Koha::Database->new->schema; - if ( !$self->{quantity} && !$schema->resultset('Aqbasket')->find( $self->{basketno} )->is_standing ) { - croak "Cannot insert order: Quantity is mandatory for non-standing orders"; - } - $self->{quantityreceived} ||= 0; $self->{entrydate} ||= output_pref( { dt => dt_from_string, dateformat => 'iso' } ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt index d586627..e44b43d 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt @@ -502,7 +502,7 @@ [% books_loo.ecostgste | $Price%] [% books_loo.rrpgsti | $Price %] [% books_loo.ecostgsti | $Price %] - [% IF is_standing and books_loo.quantity == 0 %]N/A[% ELSE %][% books_loo.quantity or 'N/A' %][% END %] + [% books_loo.quantity %] [% books_loo.totalgste | $Price %] [% books_loo.totalgsti | $Price %] [% books_loo.gstrate * 100 | $Price %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt index cb53e56..feb0f86 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt @@ -43,12 +43,10 @@ function Check(ff) { _alertString += "\n- "+ _("You must select a fund"); } -[% UNLESS basket.is_standing %] if (!(isNum(ff.quantity,0)) || ff.quantity.value == 0){ ok=1; _alertString += "\n- " + _("Quantity must be greater than '0'"); } -[% END %] if (!(isNum(ff.listprice,0))){ ok=1; @@ -415,7 +413,7 @@ $(document).ready(function() [% END %] - [% UNLESS subscriptionid %][% # it is a suggestion, we have not items %] + [% UNLESS subscriptionid || basket.is_standing %][% # it is a suggestion, we have not items %] [% IF (AcqCreateItemOrdering) %]