Merge branch 'bug_5343' into 3.12-master
This commit is contained in:
commit
3cd9293b6a
20 changed files with 604 additions and 118 deletions
|
@ -58,7 +58,7 @@ BEGIN {
|
||||||
&SearchOrder &GetHistory &GetRecentAcqui
|
&SearchOrder &GetHistory &GetRecentAcqui
|
||||||
&ModReceiveOrder &CancelReceipt &ModOrderBiblioitemNumber
|
&ModReceiveOrder &CancelReceipt &ModOrderBiblioitemNumber
|
||||||
&GetCancelledOrders
|
&GetCancelledOrders
|
||||||
|
&GetLastOrderNotReceivedFromSubscriptionid &GetLastOrderReceivedFromSubscriptionid
|
||||||
&NewOrderItem &ModOrderItem &ModItemOrder
|
&NewOrderItem &ModOrderItem &ModItemOrder
|
||||||
|
|
||||||
&GetParcels &GetParcel
|
&GetParcels &GetParcel
|
||||||
|
@ -1007,6 +1007,67 @@ sub GetOrder {
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
=head3 GetLastOrderNotReceivedFromSubscriptionid
|
||||||
|
|
||||||
|
$order = &GetLastOrderNotReceivedFromSubscriptionid($subscriptionid);
|
||||||
|
|
||||||
|
Returns a reference-to-hash describing the last order not received for a subscription.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub GetLastOrderNotReceivedFromSubscriptionid {
|
||||||
|
my ( $subscriptionid ) = @_;
|
||||||
|
my $dbh = C4::Context->dbh;
|
||||||
|
my $query = qq|
|
||||||
|
SELECT * FROM aqorders
|
||||||
|
LEFT JOIN subscription
|
||||||
|
ON ( aqorders.subscriptionid = subscription.subscriptionid )
|
||||||
|
WHERE aqorders.subscriptionid = ?
|
||||||
|
AND aqorders.datereceived IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
|;
|
||||||
|
my $sth = $dbh->prepare( $query );
|
||||||
|
$sth->execute( $subscriptionid );
|
||||||
|
my $order = $sth->fetchrow_hashref;
|
||||||
|
return $order;
|
||||||
|
}
|
||||||
|
|
||||||
|
=head3 GetLastOrderReceivedFromSubscriptionid
|
||||||
|
|
||||||
|
$order = &GetLastOrderReceivedFromSubscriptionid($subscriptionid);
|
||||||
|
|
||||||
|
Returns a reference-to-hash describing the last order received for a subscription.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub GetLastOrderReceivedFromSubscriptionid {
|
||||||
|
my ( $subscriptionid ) = @_;
|
||||||
|
my $dbh = C4::Context->dbh;
|
||||||
|
my $query = qq|
|
||||||
|
SELECT * FROM aqorders
|
||||||
|
LEFT JOIN subscription
|
||||||
|
ON ( aqorders.subscriptionid = subscription.subscriptionid )
|
||||||
|
WHERE aqorders.subscriptionid = ?
|
||||||
|
AND aqorders.datereceived =
|
||||||
|
(
|
||||||
|
SELECT MAX( aqorders.datereceived )
|
||||||
|
FROM aqorders
|
||||||
|
LEFT JOIN subscription
|
||||||
|
ON ( aqorders.subscriptionid = subscription.subscriptionid )
|
||||||
|
WHERE aqorders.subscriptionid = ?
|
||||||
|
AND aqorders.datereceived IS NOT NULL
|
||||||
|
)
|
||||||
|
ORDER BY ordernumber DESC
|
||||||
|
LIMIT 1
|
||||||
|
|;
|
||||||
|
my $sth = $dbh->prepare( $query );
|
||||||
|
$sth->execute( $subscriptionid, $subscriptionid );
|
||||||
|
my $order = $sth->fetchrow_hashref;
|
||||||
|
return $order;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------#
|
#------------------------------------------------------------#
|
||||||
|
|
||||||
=head3 NewOrder
|
=head3 NewOrder
|
||||||
|
|
|
@ -41,6 +41,7 @@ BEGIN {
|
||||||
&DelBudget
|
&DelBudget
|
||||||
&GetBudgetSpent
|
&GetBudgetSpent
|
||||||
&GetBudgetOrdered
|
&GetBudgetOrdered
|
||||||
|
&GetBudgetName
|
||||||
&GetPeriodsCount
|
&GetPeriodsCount
|
||||||
&GetChildBudgetsSpent
|
&GetChildBudgetsSpent
|
||||||
|
|
||||||
|
@ -356,6 +357,28 @@ sub GetBudgetOrdered {
|
||||||
return $sum;
|
return $sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
=head2 GetBudgetName
|
||||||
|
|
||||||
|
my $budget_name = &GetBudgetName($budget_id);
|
||||||
|
|
||||||
|
get the budget_name for a given budget_id
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub GetBudgetName {
|
||||||
|
my ( $budget_id ) = @_;
|
||||||
|
my $dbh = C4::Context->dbh;
|
||||||
|
my $sth = $dbh->prepare(
|
||||||
|
qq|
|
||||||
|
SELECT budget_name
|
||||||
|
FROM aqbudgets
|
||||||
|
WHERE budget_id = ?
|
||||||
|
|);
|
||||||
|
|
||||||
|
$sth->execute($budget_id);
|
||||||
|
return $sth->fetchrow_array;
|
||||||
|
}
|
||||||
|
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
sub GetBudgetAuthCats {
|
sub GetBudgetAuthCats {
|
||||||
my ($budget_period_id) = shift;
|
my ($budget_period_id) = shift;
|
||||||
|
|
|
@ -58,6 +58,7 @@ BEGIN {
|
||||||
&CountIssues
|
&CountIssues
|
||||||
HasItems
|
HasItems
|
||||||
&GetSubscriptionsFromBorrower
|
&GetSubscriptionsFromBorrower
|
||||||
|
&subscriptionCurrentlyOnOrder
|
||||||
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1542,7 +1543,7 @@ sub ReNewSubscription {
|
||||||
# renew subscription
|
# renew subscription
|
||||||
$query = qq|
|
$query = qq|
|
||||||
UPDATE subscription
|
UPDATE subscription
|
||||||
SET startdate=?,numberlength=?,weeklength=?,monthlength=?
|
SET startdate=?,numberlength=?,weeklength=?,monthlength=?,reneweddate=NOW()
|
||||||
WHERE subscriptionid=?
|
WHERE subscriptionid=?
|
||||||
|;
|
|;
|
||||||
$sth = $dbh->prepare($query);
|
$sth = $dbh->prepare($query);
|
||||||
|
@ -2730,6 +2731,28 @@ sub ReopenSubscription {
|
||||||
$sth->execute( $subscriptionid );
|
$sth->execute( $subscriptionid );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
=head2 subscriptionCurrentlyOnOrder
|
||||||
|
|
||||||
|
$bool = subscriptionCurrentlyOnOrder( $subscriptionid );
|
||||||
|
|
||||||
|
Return 1 if subscription is currently on order else 0.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub subscriptionCurrentlyOnOrder {
|
||||||
|
my ( $subscriptionid ) = @_;
|
||||||
|
my $dbh = C4::Context->dbh;
|
||||||
|
my $query = qq|
|
||||||
|
SELECT COUNT(*) FROM aqorders
|
||||||
|
WHERE subscriptionid = ?
|
||||||
|
AND datereceived IS NULL
|
||||||
|
AND datecancellationprinted IS NULL
|
||||||
|
|;
|
||||||
|
my $sth = $dbh->prepare( $query );
|
||||||
|
$sth->execute($subscriptionid);
|
||||||
|
return $sth->fetchrow_array;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
__END__
|
__END__
|
||||||
|
|
||||||
|
|
|
@ -153,6 +153,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
||||||
my $orderinfo = $input->Vars;
|
my $orderinfo = $input->Vars;
|
||||||
$orderinfo->{'list_price'} ||= 0;
|
$orderinfo->{'list_price'} ||= 0;
|
||||||
$orderinfo->{'uncertainprice'} ||= 0;
|
$orderinfo->{'uncertainprice'} ||= 0;
|
||||||
|
$orderinfo->{subscriptionid} ||= undef;
|
||||||
|
|
||||||
my $user = $input->remote_user;
|
my $user = $input->remote_user;
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,6 @@ my $invoiceno = $invoice->{invoicenumber};
|
||||||
my $datereceived = $invoice->{shipmentdate};
|
my $datereceived = $invoice->{shipmentdate};
|
||||||
my $booksellerid = $input->param('booksellerid');
|
my $booksellerid = $input->param('booksellerid');
|
||||||
my $cnt = 0;
|
my $cnt = 0;
|
||||||
my $error_url_str;
|
|
||||||
my $ecost = $input->param('ecost');
|
my $ecost = $input->param('ecost');
|
||||||
my $rrp = $input->param('rrp');
|
my $rrp = $input->param('rrp');
|
||||||
my $note = $input->param("note");
|
my $note = $input->param("note");
|
||||||
|
|
|
@ -97,7 +97,6 @@ my $budget_id = $input->param('budget_id') || 0;
|
||||||
my $title = $input->param('title');
|
my $title = $input->param('title');
|
||||||
my $author = $input->param('author');
|
my $author = $input->param('author');
|
||||||
my $publicationyear = $input->param('publicationyear');
|
my $publicationyear = $input->param('publicationyear');
|
||||||
my $bookseller = GetBookSellerFromId($booksellerid); # FIXME: else ERROR!
|
|
||||||
my $ordernumber = $input->param('ordernumber') || '';
|
my $ordernumber = $input->param('ordernumber') || '';
|
||||||
our $biblionumber = $input->param('biblionumber');
|
our $biblionumber = $input->param('biblionumber');
|
||||||
our $basketno = $input->param('basketno');
|
our $basketno = $input->param('basketno');
|
||||||
|
@ -105,6 +104,7 @@ my $suggestionid = $input->param('suggestionid');
|
||||||
my $close = $input->param('close');
|
my $close = $input->param('close');
|
||||||
my $uncertainprice = $input->param('uncertainprice');
|
my $uncertainprice = $input->param('uncertainprice');
|
||||||
my $import_batch_id = $input->param('import_batch_id'); # if this is filled, we come from a staged file, and we will return here after saving the order !
|
my $import_batch_id = $input->param('import_batch_id'); # if this is filled, we come from a staged file, and we will return here after saving the order !
|
||||||
|
my $subscriptionid = $input->param('subscriptionid');
|
||||||
my $data;
|
my $data;
|
||||||
my $new = 'no';
|
my $new = 'no';
|
||||||
|
|
||||||
|
@ -129,6 +129,9 @@ if(!$basketno) {
|
||||||
}
|
}
|
||||||
|
|
||||||
our $basket = GetBasket($basketno);
|
our $basket = GetBasket($basketno);
|
||||||
|
$booksellerid = $basket->{booksellerid} unless $booksellerid;
|
||||||
|
my $bookseller = GetBookSellerFromId($booksellerid);
|
||||||
|
|
||||||
my $contract = &GetContract($basket->{contractnumber});
|
my $contract = &GetContract($basket->{contractnumber});
|
||||||
|
|
||||||
#simple parameters reading (all in one :-)
|
#simple parameters reading (all in one :-)
|
||||||
|
@ -186,10 +189,8 @@ else { #modify order
|
||||||
$biblionumber = $data->{'biblionumber'};
|
$biblionumber = $data->{'biblionumber'};
|
||||||
$budget_id = $data->{'budget_id'};
|
$budget_id = $data->{'budget_id'};
|
||||||
|
|
||||||
#get basketno and supplierno. too!
|
$basket = GetBasket( $data->{'basketno'} );
|
||||||
my $data2 = GetBasket( $data->{'basketno'} );
|
$basketno = $basket->{'basketno'};
|
||||||
$basketno = $data2->{'basketno'};
|
|
||||||
$booksellerid = $data2->{'booksellerid'};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
my $suggestion;
|
my $suggestion;
|
||||||
|
@ -321,6 +322,26 @@ if (C4::Context->preference('AcqCreateItem') eq 'ordering' && !$ordernumber) {
|
||||||
my @itemtypes;
|
my @itemtypes;
|
||||||
@itemtypes = C4::ItemType->all unless C4::Context->preference('item-level_itypes');
|
@itemtypes = C4::ItemType->all unless C4::Context->preference('item-level_itypes');
|
||||||
|
|
||||||
|
if ( defined $subscriptionid ) {
|
||||||
|
my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;
|
||||||
|
if ( defined $lastOrderReceived ) {
|
||||||
|
$budget_id = $lastOrderReceived->{budgetid};
|
||||||
|
$data->{listprice} = $lastOrderReceived->{listprice};
|
||||||
|
$data->{uncertainprice} = $lastOrderReceived->{uncertainprice};
|
||||||
|
$data->{gstrate} = $lastOrderReceived->{gstrate};
|
||||||
|
$data->{discount} = $lastOrderReceived->{discount};
|
||||||
|
$data->{rrp} = $lastOrderReceived->{rrp};
|
||||||
|
$data->{ecost} = $lastOrderReceived->{ecost};
|
||||||
|
$data->{quantity} = $lastOrderReceived->{quantity};
|
||||||
|
$data->{unitprice} = $lastOrderReceived->{unitprice};
|
||||||
|
$data->{notes} = $lastOrderReceived->{notes};
|
||||||
|
$data->{sort1} = $lastOrderReceived->{sort1};
|
||||||
|
$data->{sort2} = $lastOrderReceived->{sort2};
|
||||||
|
|
||||||
|
$basket = GetBasket( $input->param('basketno') );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Find the items.barcode subfield for barcode validations
|
# Find the items.barcode subfield for barcode validations
|
||||||
my (undef, $barcode_subfield) = GetMarcFromKohaField('items.barcode', '');
|
my (undef, $barcode_subfield) = GetMarcFromKohaField('items.barcode', '');
|
||||||
|
|
||||||
|
@ -392,6 +413,7 @@ $template->param(
|
||||||
publishercode => $data->{'publishercode'},
|
publishercode => $data->{'publishercode'},
|
||||||
barcode_subfield => $barcode_subfield,
|
barcode_subfield => $barcode_subfield,
|
||||||
import_batch_id => $import_batch_id,
|
import_batch_id => $import_batch_id,
|
||||||
|
subscriptionid => $subscriptionid,
|
||||||
(uc(C4::Context->preference("marcflavour"))) => 1
|
(uc(C4::Context->preference("marcflavour"))) => 1
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
107
acqui/newordersubscription.pl
Executable file
107
acqui/newordersubscription.pl
Executable file
|
@ -0,0 +1,107 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# Copyright 2012 BibLibre
|
||||||
|
#
|
||||||
|
# This file is part of Koha.
|
||||||
|
#
|
||||||
|
# Koha is free software; you can redistribute it and/or modify it under the
|
||||||
|
# terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||||
|
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with Koha; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
use Modern::Perl;
|
||||||
|
use CGI;
|
||||||
|
use C4::Acquisition;
|
||||||
|
use C4::Auth;
|
||||||
|
use C4::Bookseller qw/GetBookSellerFromId/;
|
||||||
|
use C4::Branch;
|
||||||
|
use C4::Context;
|
||||||
|
use C4::Output;
|
||||||
|
use C4::Serials;
|
||||||
|
|
||||||
|
my $query = new CGI;
|
||||||
|
my $title = $query->param('title_filter');
|
||||||
|
my $ISSN = $query->param('ISSN_filter');
|
||||||
|
my $EAN = $query->param('EAN_filter');
|
||||||
|
my $publisher = $query->param('publisher_filter');
|
||||||
|
my $supplier = $query->param('supplier_filter');
|
||||||
|
my $branch = $query->param('branch_filter');
|
||||||
|
my $routing = $query->param('routing') || C4::Context->preference("RoutingSerials");
|
||||||
|
my $searched = $query->param('searched');
|
||||||
|
my $biblionumber = $query->param('biblionumber');
|
||||||
|
|
||||||
|
my $basketno = $query->param('basketno');
|
||||||
|
my $booksellerid = $query->param('booksellerid');
|
||||||
|
|
||||||
|
my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
|
||||||
|
{ template_name => "acqui/newordersubscription.tt",
|
||||||
|
query => $query,
|
||||||
|
type => "intranet",
|
||||||
|
authnotrequired => 0,
|
||||||
|
flagsrequired => { acquisition => 'order_manage' },
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
my $basket = GetBasket($basketno);
|
||||||
|
$booksellerid = $basket->{booksellerid} unless $booksellerid;
|
||||||
|
my ($bookseller) = GetBookSellerFromId($booksellerid);
|
||||||
|
|
||||||
|
my @subscriptions;
|
||||||
|
if ($searched) {
|
||||||
|
@subscriptions = SearchSubscriptions({
|
||||||
|
title => $title,
|
||||||
|
issn => $ISSN,
|
||||||
|
ean => $EAN,
|
||||||
|
publisher => $publisher,
|
||||||
|
bookseller => $supplier,
|
||||||
|
branch => $branch
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach my $sub (@subscriptions) {
|
||||||
|
$sub->{alreadyOnOrder} = subscriptionCurrentlyOnOrder $sub->{subscriptionid};
|
||||||
|
|
||||||
|
# to toggle between create or edit routing list options
|
||||||
|
if ($routing) {
|
||||||
|
$sub->{routingedit} = check_routing( $sub->{subscriptionid} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
my $branches = GetBranches();
|
||||||
|
my @branches_loop;
|
||||||
|
foreach (sort keys %$branches){
|
||||||
|
my $selected = 0;
|
||||||
|
$selected = 1 if defined $branch && $branch eq $_;
|
||||||
|
push @branches_loop, {
|
||||||
|
branchcode => $_,
|
||||||
|
branchname => $branches->{$_}->{branchname},
|
||||||
|
selected => $selected,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
$template->param(
|
||||||
|
subs_loop => \@subscriptions,
|
||||||
|
title_filter => $title,
|
||||||
|
ISSN_filter => $ISSN,
|
||||||
|
EAN_filter => $EAN,
|
||||||
|
publisher_filter => $publisher,
|
||||||
|
supplier_filter => $supplier,
|
||||||
|
branch_filter => $branch,
|
||||||
|
branches_loop => \@branches_loop,
|
||||||
|
done_searched => $searched,
|
||||||
|
routing => $routing,
|
||||||
|
booksellerid => $booksellerid,
|
||||||
|
basketno => $basket->{basketno},
|
||||||
|
basketname => $basket->{basketname},
|
||||||
|
booksellername => $bookseller->{name},
|
||||||
|
dateformat => C4::Context->preference("dateformat"),
|
||||||
|
);
|
||||||
|
output_html_with_http_headers $query, $cookie, $template->output;
|
|
@ -199,6 +199,7 @@ $template->param(
|
||||||
biblionumber => $order->{'biblionumber'},
|
biblionumber => $order->{'biblionumber'},
|
||||||
ordernumber => $order->{'ordernumber'},
|
ordernumber => $order->{'ordernumber'},
|
||||||
biblioitemnumber => $order->{'biblioitemnumber'},
|
biblioitemnumber => $order->{'biblioitemnumber'},
|
||||||
|
subscriptionid => $order->{subscriptionid},
|
||||||
booksellerid => $order->{'booksellerid'},
|
booksellerid => $order->{'booksellerid'},
|
||||||
freight => $freight,
|
freight => $freight,
|
||||||
name => $bookseller->{'name'},
|
name => $bookseller->{'name'},
|
||||||
|
|
|
@ -1945,6 +1945,7 @@ CREATE TABLE `subscription` (
|
||||||
`graceperiod` int(11) NOT NULL default '0',
|
`graceperiod` int(11) NOT NULL default '0',
|
||||||
`enddate` date default NULL,
|
`enddate` date default NULL,
|
||||||
`closed` INT(1) NOT NULL DEFAULT 0,
|
`closed` INT(1) NOT NULL DEFAULT 0,
|
||||||
|
`reneweddate` date default NULL,
|
||||||
PRIMARY KEY (`subscriptionid`),
|
PRIMARY KEY (`subscriptionid`),
|
||||||
CONSTRAINT subscription_ibfk_1 FOREIGN KEY (periodicity) REFERENCES subscription_frequencies (id) ON DELETE SET NULL ON UPDATE CASCADE,
|
CONSTRAINT subscription_ibfk_1 FOREIGN KEY (periodicity) REFERENCES subscription_frequencies (id) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||||
CONSTRAINT subscription_ibfk_2 FOREIGN KEY (numberpattern) REFERENCES subscription_numberpatterns (id) ON DELETE SET NULL ON UPDATE CASCADE
|
CONSTRAINT subscription_ibfk_2 FOREIGN KEY (numberpattern) REFERENCES subscription_numberpatterns (id) ON DELETE SET NULL ON UPDATE CASCADE
|
||||||
|
@ -2811,8 +2812,6 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items
|
||||||
`notes` mediumtext, -- notes related to this order line
|
`notes` mediumtext, -- notes related to this order line
|
||||||
`supplierreference` mediumtext, -- not used? always NULL
|
`supplierreference` mediumtext, -- not used? always NULL
|
||||||
`purchaseordernumber` mediumtext, -- not used? always NULL
|
`purchaseordernumber` mediumtext, -- not used? always NULL
|
||||||
`subscription` tinyint(1) default NULL, -- not used? always NULL
|
|
||||||
`serialid` varchar(30) default NULL, -- not used? always NULL
|
|
||||||
`basketno` int(11) default NULL, -- links this order line to a specific basket (aqbasket.basketno)
|
`basketno` int(11) default NULL, -- links this order line to a specific basket (aqbasket.basketno)
|
||||||
`biblioitemnumber` int(11) default NULL, -- links this order line the biblioitems table (biblioitems.biblioitemnumber)
|
`biblioitemnumber` int(11) default NULL, -- links this order line the biblioitems table (biblioitems.biblioitemnumber)
|
||||||
`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, -- the date and time this order line was last modified
|
`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, -- the date and time this order line was last modified
|
||||||
|
@ -2830,6 +2829,7 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items
|
||||||
`uncertainprice` tinyint(1), -- was this price uncertain (1 for yes, 0 for no)
|
`uncertainprice` tinyint(1), -- was this price uncertain (1 for yes, 0 for no)
|
||||||
`claims_count` int(11) default 0, -- count of claim letters generated
|
`claims_count` int(11) default 0, -- count of claim letters generated
|
||||||
`claimed_date` date default NULL, -- last date a claim was generated
|
`claimed_date` date default NULL, -- last date a claim was generated
|
||||||
|
`subscriptionid` int(11) default NULL, -- links this order line to a subscription (subscription.subscriptionid)
|
||||||
parent_ordernumber int(11) default NULL, -- ordernumber of parent order line, or same as ordernumber if no parent
|
parent_ordernumber int(11) default NULL, -- ordernumber of parent order line, or same as ordernumber if no parent
|
||||||
PRIMARY KEY (`ordernumber`),
|
PRIMARY KEY (`ordernumber`),
|
||||||
KEY `basketno` (`basketno`),
|
KEY `basketno` (`basketno`),
|
||||||
|
@ -2837,7 +2837,8 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items
|
||||||
KEY `budget_id` (`budget_id`),
|
KEY `budget_id` (`budget_id`),
|
||||||
CONSTRAINT `aqorders_ibfk_1` FOREIGN KEY (`basketno`) REFERENCES `aqbasket` (`basketno`) ON DELETE CASCADE ON UPDATE CASCADE,
|
CONSTRAINT `aqorders_ibfk_1` FOREIGN KEY (`basketno`) REFERENCES `aqbasket` (`basketno`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
CONSTRAINT `aqorders_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE,
|
CONSTRAINT `aqorders_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||||
CONSTRAINT aqorders_ibfk_3 FOREIGN KEY (invoiceid) REFERENCES aqinvoices (invoiceid) ON DELETE SET NULL ON UPDATE CASCADE
|
CONSTRAINT aqorders_ibfk_3 FOREIGN KEY (invoiceid) REFERENCES aqinvoices (invoiceid) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `aqorders_subscriptionid` FOREIGN KEY (`subscriptionid`) REFERENCES `subscription` (`subscriptionid`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6984,6 +6984,17 @@ if ( CheckVersion($DBversion) ) {
|
||||||
SetVersion ($DBversion);
|
SetVersion ($DBversion);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$DBversion = "3.11.00.116";
|
||||||
|
if ( CheckVersion($DBversion) ) {
|
||||||
|
$dbh->do(q{ALTER TABLE aqorders DROP COLUMN serialid;});
|
||||||
|
$dbh->do(q{ALTER TABLE aqorders DROP COLUMN subscription;});
|
||||||
|
$dbh->do(q{ALTER TABLE aqorders ADD COLUMN subscriptionid INT(11) DEFAULT NULL;});
|
||||||
|
$dbh->do(q{ALTER TABLE aqorders ADD CONSTRAINT aqorders_subscriptionid FOREIGN KEY (subscriptionid) REFERENCES subscription (subscriptionid) ON DELETE CASCADE ON UPDATE CASCADE;});
|
||||||
|
$dbh->do(q{ALTER TABLE subscription ADD COLUMN reneweddate DATE DEFAULT NULL;});
|
||||||
|
print "Upgrade to $DBversion done (Bug 5343: table aqorders: DROP serialid and subscription fields and ADD subscriptionid, table subscription: ADD reneweddate)\n";
|
||||||
|
SetVersion ($DBversion);
|
||||||
|
}
|
||||||
|
|
||||||
=head1 FUNCTIONS
|
=head1 FUNCTIONS
|
||||||
|
|
||||||
=head2 TableExists($table)
|
=head2 TableExists($table)
|
||||||
|
|
|
@ -1,17 +1,22 @@
|
||||||
<fieldset id="acqui_basket_add">
|
<fieldset id="acqui_basket_add">
|
||||||
<legend>Add order to basket</legend>
|
<legend>Add order to basket</legend>
|
||||||
[% IF has_budgets %]
|
[% IF has_budgets %]
|
||||||
<form action="/cgi-bin/koha/acqui/neworderbiblio.pl" method="post">
|
<ul>
|
||||||
<input type="hidden" name="booksellerid" value="[% booksellerid %]" />
|
<li>
|
||||||
<input type="hidden" name="basketno" value="[% basketno %]" />
|
<label for="q">From an existing record: </label>
|
||||||
<ul><li><label for="q">From an existing record: </label><input id="q" type="text" size="25" name="q" />
|
<form action="/cgi-bin/koha/acqui/neworderbiblio.pl" method="post">
|
||||||
<input type="submit" class="submit" value="Search" /></li>
|
<input type="hidden" name="booksellerid" value="[% booksellerid %]" />
|
||||||
|
<input type="hidden" name="basketno" value="[% basketno %]" />
|
||||||
|
<input id="q" type="text" size="25" name="q" />
|
||||||
|
<input type="submit" class="submit" value="Search" />
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
<li><a href="/cgi-bin/koha/acqui/newordersuggestion.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">From a suggestion</a></li>
|
<li><a href="/cgi-bin/koha/acqui/newordersuggestion.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">From a suggestion</a></li>
|
||||||
|
<li><a href="/cgi-bin/koha/acqui/newordersubscription.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">From a subscription</a></li>
|
||||||
<li><a href="/cgi-bin/koha/acqui/neworderempty.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">From a new (empty) record</a></li>
|
<li><a href="/cgi-bin/koha/acqui/neworderempty.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">From a new (empty) record</a></li>
|
||||||
<li><a href="/cgi-bin/koha/acqui/z3950_search.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">From an external source</a></li>
|
<li><a href="/cgi-bin/koha/acqui/z3950_search.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">From an external source</a></li>
|
||||||
<li><a href="/cgi-bin/koha/acqui/addorderiso2709.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]"> From a staged file</a></li>
|
<li><a href="/cgi-bin/koha/acqui/addorderiso2709.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]"> From a staged file</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</form>
|
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
You can't create any orders unless you first <a href="/cgi-bin/koha/admin/aqbudgetperiods.pl">define a budget and a fund</a>.
|
You can't create any orders unless you first <a href="/cgi-bin/koha/admin/aqbudgetperiods.pl">define a budget and a fund</a>.
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
<div id="advsearch">
|
||||||
|
<form action="" method="get">
|
||||||
|
<fieldset class="brief">
|
||||||
|
<a id="unfold_advsearch" style="cursor:pointer" onclick="$('#advsearch_form').slideToggle(400);">Advanced search</a>
|
||||||
|
<div id="advsearch_form" style="display:none">
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<label for="issn">ISSN:</label>
|
||||||
|
<input type="text" id="issn" name="ISSN_filter" value="[% ISSN_filter %]" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label for="title">Title:</label>
|
||||||
|
<input type="text" id="title" name="title_filter" value="[% title_filter %]" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label for="ean">EAN:</label>
|
||||||
|
<input type="text" id="ean" name="EAN_filter" value="[% EAN_filter %]" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label for="publisher">Publisher:</label>
|
||||||
|
<input type="text" id="publisher" name="publisher_filter" value="[% publisher_filter %]" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label for="supplier">Supplier:</label>
|
||||||
|
<input type="text" id="supplier" name="supplier_filter" value="[% supplier_filter %]" />
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label for="branch">Branch:</label>
|
||||||
|
<select id="branch" name="branch_filter">
|
||||||
|
<option value="">All</option>
|
||||||
|
[% FOREACH branch IN branches_loop %]
|
||||||
|
[% IF (branch.selected) %]
|
||||||
|
<option selected="branch.selected" value="[% branch.branchcode %]">[% branch.branchname %]</option>
|
||||||
|
[% ELSE %]
|
||||||
|
<option value="[% branch.branchcode %]">[% branch.branchname %]</option>
|
||||||
|
[% END %]
|
||||||
|
[% END %]
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<input type="hidden" name="searched" value="1" />
|
||||||
|
[% IF (booksellerid) %]
|
||||||
|
<input type="hidden" name="booksellerid" value="[% booksellerid %]" />
|
||||||
|
[% END %]
|
||||||
|
[% IF (basketno) %]
|
||||||
|
<input type="hidden" name="basketno" value="[% basketno %]" />
|
||||||
|
[% END %]
|
||||||
|
<fieldset class="action">
|
||||||
|
<input type="submit" value="Search" />
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
|
@ -361,46 +361,48 @@ $(document).ready(function()
|
||||||
</fieldset>
|
</fieldset>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
[% IF (AcqCreateItemOrdering) %]
|
[% UNLESS subscriptionid %][% # it is a suggestion, we have not items %]
|
||||||
|
[% IF (AcqCreateItemOrdering) %]
|
||||||
|
|
||||||
<div id="items_list" style="display:none">
|
<div id="items_list" style="display:none">
|
||||||
<p><b>Items list</b></p>
|
<p><b>Items list</b></p>
|
||||||
<div style="width:100%;overflow:auto;">
|
<div style="width:100%;overflow:auto;">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th> </th>
|
<th> </th>
|
||||||
<th> </th>
|
<th> </th>
|
||||||
<th>Barcode</th>
|
<th>Barcode</th>
|
||||||
<th>Home library</th>
|
<th>Home library</th>
|
||||||
<th>Holding library</th>
|
<th>Holding library</th>
|
||||||
<th>Not for loan</th>
|
<th>Not for loan</th>
|
||||||
<th>Restricted</th>
|
<th>Restricted</th>
|
||||||
<th>Location</th>
|
<th>Location</th>
|
||||||
<th>Call number</th>
|
<th>Call number</th>
|
||||||
<th>Copy number</th>
|
<th>Copy number</th>
|
||||||
<th>Stock number</th>
|
<th>Stock number</th>
|
||||||
<th>Collection code</th>
|
<th>Collection code</th>
|
||||||
<th>Item type</th>
|
<th>Item type</th>
|
||||||
<th>Materials</th>
|
<th>Materials</th>
|
||||||
<th>Notes</th>
|
<th>Notes</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<fieldset class="rows" id="itemfieldset">
|
<fieldset class="rows" id="itemfieldset">
|
||||||
<legend>Item</legend>
|
<legend>Item</legend>
|
||||||
[% IF ( NoACQframework ) %]
|
[% IF ( NoACQframework ) %]
|
||||||
<div class="dialog message">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</div>
|
<div class="dialog message">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</div>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
<div id="outeritemblock"></div>
|
<div id="outeritemblock"></div>
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
[% END %][%# UNLESS subscriptionid %]
|
||||||
[% END %][%# IF (AcqCreateItemOrdering) %]
|
[% END %][%# IF (AcqCreateItemOrdering) %]
|
||||||
<fieldset class="rows">
|
<fieldset class="rows">
|
||||||
<legend>Accounting Details</legend>
|
<legend>Accounting Details</legend>
|
||||||
|
@ -412,9 +414,17 @@ $(document).ready(function()
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
<label class="required" for="quantity">Quantity: </label>
|
<label class="required" for="quantity">Quantity: </label>
|
||||||
[% IF (AcqCreateItemOrdering) %]
|
[% IF (AcqCreateItemOrdering) %]
|
||||||
<input type="text" readonly="readonly" size="20" id="quantity" name="quantity" value="0" />
|
[% IF subscriptionid %]
|
||||||
|
<input type="text" readonly="readonly" size="20" id="quantity" name="quantity" value="1" />
|
||||||
|
[% ELSE %]
|
||||||
|
<input type="text" readonly="readonly" size="20" id="quantity" name="quantity" value="0" />
|
||||||
|
[% END %]
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
<input type="text" size="20" id="quantity" name="quantity" value="[% quantityrec %]" onchange="updateCosts();" />
|
[% IF subscriptionid %]
|
||||||
|
<input type="text" readonly="readonly" size="20" id="quantity" name="quantity" value="1" />
|
||||||
|
[% ELSE %]
|
||||||
|
<input type="text" size="20" id="quantity" name="quantity" value="[% quantityrec %]" onchange="updateCosts();" />
|
||||||
|
[% END %]
|
||||||
[% END %]
|
[% END %]
|
||||||
[% END %]
|
[% END %]
|
||||||
<!-- origquantityrec only here for javascript compatibility (additem.js needs it, useless here, usefull when receiveing an order -->
|
<!-- origquantityrec only here for javascript compatibility (additem.js needs it, useless here, usefull when receiveing an order -->
|
||||||
|
@ -586,14 +596,19 @@ $(document).ready(function()
|
||||||
[% END %]
|
[% END %]
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset class="action">
|
<fieldset class="action">
|
||||||
|
<input type="hidden" name="subscriptionid" value="[% subscriptionid %]" />
|
||||||
<input type="submit" value="Save" />
|
<input type="submit" value="Save" />
|
||||||
[% IF (suggestionid) %]
|
[% IF (suggestionid) %]
|
||||||
<a class="cancel" href="/cgi-bin/koha/acqui/newordersuggestion.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">Cancel</a>
|
<a class="cancel" href="/cgi-bin/koha/acqui/newordersuggestion.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">Cancel</a>
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
<a class="cancel" href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno %]">Cancel</a>
|
[% IF subscriptionid %]
|
||||||
|
<a class="cancel" href="/cgi-bin/koha/acqui/newordersubscription.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">Cancel</a>
|
||||||
|
[% ELSE %]
|
||||||
|
<a class="cancel" href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno %]">Cancel</a>
|
||||||
|
[% END %]
|
||||||
[% END %]
|
[% END %]
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -0,0 +1,120 @@
|
||||||
|
[% USE KohaDates %]
|
||||||
|
[% INCLUDE 'doc-head-open.inc' %]
|
||||||
|
<title>Koha › Serials [% biblionumber %]</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
|
||||||
|
[% INCLUDE 'doc-head-close.inc' %]
|
||||||
|
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
|
||||||
|
[% INCLUDE 'datatables-strings.inc' %]
|
||||||
|
<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA[
|
||||||
|
function updateRowsVisibility(show_only_renewed) {
|
||||||
|
if ( show_only_renewed ) {
|
||||||
|
$("#srlt [data-reneweddate='']").hide();
|
||||||
|
} else {
|
||||||
|
$("#srlt > tbody > tr").show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[% IF (dateformat == 'metric') %]
|
||||||
|
dt_add_type_uk_date();
|
||||||
|
[% END %]
|
||||||
|
$(document).ready(function() {
|
||||||
|
$("#srlt").dataTable($.extend(true, {}, dataTablesDefaults, {
|
||||||
|
"aoColumnDefs": [
|
||||||
|
[% IF (dateformat == 'metric') %]
|
||||||
|
{ "aTargets": [ -2 ], "sType": "uk_date" },
|
||||||
|
[% END %]
|
||||||
|
],
|
||||||
|
} ) )
|
||||||
|
|
||||||
|
$("#show_only_renewed").click(function(){
|
||||||
|
updateRowsVisibility($(this+":checked").val());
|
||||||
|
});
|
||||||
|
$("#show_only_renewed").attr('checked', false);
|
||||||
|
updateRowsVisibility(false);
|
||||||
|
|
||||||
|
$("#advsearch_form").show();
|
||||||
|
});
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
[% INCLUDE 'header.inc' %]
|
||||||
|
[% INCLUDE 'acquisitions-search.inc' %]
|
||||||
|
|
||||||
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a> › <a href="/cgi-bin/koha/acqui/supplier.pl?supplierid=[% supplierid %]">[% booksellername %]</a> › <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno %]">Shopping Basket [% basketno %]</a> › Add order from a subscription</div>
|
||||||
|
|
||||||
|
<div id="doc3" class="yui-t2">
|
||||||
|
<div id="bd">
|
||||||
|
<div id="yui-main">
|
||||||
|
<div class="yui-b">
|
||||||
|
<h2>Serials subscriptions</h2>
|
||||||
|
[% IF (done_searched) %]
|
||||||
|
<label for="show_only_renewed">
|
||||||
|
<input type="checkbox" style="vertical-align: middle;" id="show_only_renewed" />
|
||||||
|
Show only renewed
|
||||||
|
</label>
|
||||||
|
[% IF (subs_loop) %]
|
||||||
|
<table id="srlt">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>ISSN</th>
|
||||||
|
<th>Title</th>
|
||||||
|
<th> Notes </th>
|
||||||
|
<th>Library</th>
|
||||||
|
<th>Call number</th>
|
||||||
|
<th>Expiration date</th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
[% FOREACH sub IN subs_loop %]
|
||||||
|
<tr data-reneweddate="[% sub.reneweddate %]" >
|
||||||
|
<td>[% sub.issn %]</td>
|
||||||
|
<td><a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% sub.subscriptionid %]" class="button" title="subscription detail">[% IF (sub.title) %][% sub.title |html %][% ELSE %]
|
||||||
|
---
|
||||||
|
[% END %][% IF (sub.unititle) %], [% sub.unititle %][% END %]</a>
|
||||||
|
</td>
|
||||||
|
<td>[% notes %]
|
||||||
|
[% IF (sub.internalnotes) %]([% sub.internalnotes %])[% END %]
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
[% IF (sub.branchcode) %][% sub.branchcode %][% END %]
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
[% IF (sub.callnumber) %][% sub.callnumber %][% END %]
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
[% IF (sub.enddate) %][% sub.enddate | $KohaDates %][% END %]
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
[% IF (sub.alreadyOnOrder) %]
|
||||||
|
Outstanding order (only one order per subscription is allowed)
|
||||||
|
[% ELSIF not sub.aqbooksellerid || booksellerid == sub.aqbooksellerid%]
|
||||||
|
<a href="/cgi-bin/koha/acqui/neworderempty.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]&biblionumber=[% sub.biblionumber %]&subscriptionid=[% sub.subscriptionid %]" title="Order this one">
|
||||||
|
Order
|
||||||
|
</a>
|
||||||
|
[% ELSE %]
|
||||||
|
<a title="This subscription depends on another supplier" style="cursor:help">Cannot be ordered</a>
|
||||||
|
[% END %]
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
[% END %]
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
[% ELSE %]
|
||||||
|
<p>Sorry, there is no result for your search.</p>
|
||||||
|
[% END %]
|
||||||
|
[% ELSE %]
|
||||||
|
<p>Use the search form on the left to find subscriptions.</p>
|
||||||
|
[% END %]
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="yui-b">
|
||||||
|
[% INCLUDE 'subscriptions-search.inc' %]
|
||||||
|
[% INCLUDE 'acquisitions-menu.inc' %]
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
[% INCLUDE 'intranet-bottom.inc' %]
|
|
@ -122,7 +122,7 @@ function IEEventHandler_KeyDown() {
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
[% IF (AcqCreateItemReceiving) %]
|
[% IF (AcqCreateItemReceiving) %]
|
||||||
cloneItemBlock(0, '[% UniqueItemFields %]');
|
cloneItemBlock(0, '[% UniqueItemFields %]');
|
||||||
[% ELSIF (AcqCreateItem == 'ordering') %]
|
[% ELSIF (AcqCreateItem == 'ordering') && not subscriptionid %]
|
||||||
$("input[name='items_to_receive']").change(function() {
|
$("input[name='items_to_receive']").change(function() {
|
||||||
CalcQtyToReceive();
|
CalcQtyToReceive();
|
||||||
});
|
});
|
||||||
|
@ -218,17 +218,19 @@ function IEEventHandler_KeyDown() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<fieldset class="rows" id="itemfieldset">
|
[% UNLESS subscriptionid %]
|
||||||
<legend>Item</legend>
|
<fieldset class="rows" id="itemfieldset">
|
||||||
[% IF ( NoACQframework ) %]
|
<legend>Item</legend>
|
||||||
<p class="required">
|
[% IF ( NoACQframework ) %]
|
||||||
No ACQ framework, using default. You should create a
|
<p class="required">
|
||||||
framework with code ACQ, the items framework would be
|
No ACQ framework, using default. You should create a
|
||||||
used
|
framework with code ACQ, the items framework would be
|
||||||
</p>
|
used
|
||||||
[% END %]
|
</p>
|
||||||
<div id="outeritemblock"></div>
|
[% END %]
|
||||||
</fieldset>
|
<div id="outeritemblock"></div>
|
||||||
|
</fieldset>
|
||||||
|
[% END %]
|
||||||
[% ELSIF (AcqCreateItem == 'ordering') %]
|
[% ELSIF (AcqCreateItem == 'ordering') %]
|
||||||
[% IF (items.size) %]
|
[% IF (items.size) %]
|
||||||
<h5>Items</h5>
|
<h5>Items</h5>
|
||||||
|
@ -294,35 +296,39 @@ function IEEventHandler_KeyDown() {
|
||||||
<li><label for="bookfund">Budget: </label><span> [% bookfund %] </span></li>
|
<li><label for="bookfund">Budget: </label><span> [% bookfund %] </span></li>
|
||||||
<li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
|
<li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
|
||||||
<li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
|
<li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
|
||||||
[% IF ( edit ) %]
|
[% IF ( edit and not subscriptionid) %]
|
||||||
<input type="text" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
|
<input type="text" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
|
||||||
[% ELSE %]
|
[% ELSE%]
|
||||||
<input type="text" readonly="readonly" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
|
<input type="text" readonly="readonly" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
|
||||||
[% END %]
|
[% END %]
|
||||||
</span></li>
|
</span></li>
|
||||||
<li><label for="quantity">Quantity received: </label>
|
<li><label for="quantity">Quantity received: </label>
|
||||||
[% IF (AcqCreateItemReceiving) %]
|
[% IF (AcqCreateItemReceiving) %]
|
||||||
<input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="0" />
|
[% IF ( subscriptionid ) %]
|
||||||
|
<input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="1" />
|
||||||
|
[% ELSE %]
|
||||||
|
<input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="0" />
|
||||||
|
[% END %]
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
[% IF ( quantityreceived ) %]
|
[% IF ( quantityreceived ) %]
|
||||||
[% IF ( edit ) %]
|
[% IF ( edit ) %]
|
||||||
<input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceived %]" />
|
<input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceived %]" />
|
||||||
<input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
|
<input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
[% IF ( items ) %]
|
[% IF ( items ) %]
|
||||||
<input READONLY type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
|
<input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
<input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
|
<input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
|
||||||
[% END %]
|
[% END %]
|
||||||
<input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
|
<input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
|
||||||
[% END %]
|
[% END %]
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
[% IF ( items ) %]
|
[% IF ( subscriptionid ) %]
|
||||||
<input type="text" id="quantity" size="20" name="quantityrec" value="1" />
|
<input type="text" readonly="readonly" id="quantity" size="20" name="quantityrec" value="1" />
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
<input type="text" size="20" id="quantity" name="quantityrec" value="1" />
|
<input type="text" id="quantity" size="20" name="quantityrec" value="1" />
|
||||||
[% END %]
|
[% END %]
|
||||||
<input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="0" />
|
<input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="0" />
|
||||||
[% END %]
|
[% END %]
|
||||||
<div id="qtyrecerror" style="display:none">
|
<div id="qtyrecerror" style="display:none">
|
||||||
<p class="error">Warning, you have entered more items than expected.
|
<p class="error">Warning, you have entered more items than expected.
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="yui-b">
|
<div class="yui-b">
|
||||||
|
[% INCLUDE 'subscriptions-search.inc' %]
|
||||||
[% INCLUDE 'serials-menu.inc' %]
|
[% INCLUDE 'serials-menu.inc' %]
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -129,7 +129,7 @@ $(document).ready(function() {
|
||||||
<h2>Acquisition details</h2>
|
<h2>Acquisition details</h2>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr><th></th><th>Price exc. taxes</th><th>Price inc. taxes</th><th>fund</th><th></th></tr>
|
<tr><th></th><th>Price exc. taxes</th><th>Price inc. taxes</th><th>Fund</th><th></th></tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -139,7 +139,7 @@ $(document).ready(function() {
|
||||||
<td>[% budget_name_ordered %]</td>
|
<td>[% budget_name_ordered %]</td>
|
||||||
<td>
|
<td>
|
||||||
[% IF ( ordered_exists ) %]
|
[% IF ( ordered_exists ) %]
|
||||||
<a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno %]">See basket informations</a>
|
<a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno %]">See basket information</a>
|
||||||
[% END %]
|
[% END %]
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -150,7 +150,7 @@ $(document).ready(function() {
|
||||||
<td>[% budget_name_spent %]</td>
|
<td>[% budget_name_spent %]</td>
|
||||||
<td>
|
<td>
|
||||||
[% IF ( spent_exists ) %]
|
[% IF ( spent_exists ) %]
|
||||||
<a href="/cgi-bin/koha/acqui/invoice.pl?invoicenumber=[% invoicenumber %]">See invoice informations</a>
|
<a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% invoiceid %]">See invoice information</a>
|
||||||
[% END %]
|
[% END %]
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -16,7 +16,7 @@ the kohaversion is divided in 4 parts :
|
||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
sub kohaversion {
|
sub kohaversion {
|
||||||
our $VERSION = '3.11.00.115';
|
our $VERSION = '3.11.00.116';
|
||||||
# version needs to be set this way
|
# version needs to be set this way
|
||||||
# so that it can be picked up by Makefile.PL
|
# so that it can be picked up by Makefile.PL
|
||||||
# during install
|
# during install
|
||||||
|
|
|
@ -106,7 +106,7 @@ my $branches = GetBranches();
|
||||||
my @branches_loop;
|
my @branches_loop;
|
||||||
foreach (sort keys %$branches){
|
foreach (sort keys %$branches){
|
||||||
my $selected = 0;
|
my $selected = 0;
|
||||||
$selected = 1 if( $branch eq $_ );
|
$selected = 1 if( defined $branch and $branch eq $_ );
|
||||||
push @branches_loop, {
|
push @branches_loop, {
|
||||||
branchcode => $_,
|
branchcode => $_,
|
||||||
branchname => $branches->{$_}->{'branchname'},
|
branchname => $branches->{$_}->{'branchname'},
|
||||||
|
|
|
@ -15,10 +15,12 @@
|
||||||
# with Koha; if not, write to the Free Software Foundation, Inc.,
|
# with Koha; if not, write to the Free Software Foundation, Inc.,
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
use strict;
|
use Modern::Perl;
|
||||||
use warnings;
|
|
||||||
use CGI;
|
use CGI;
|
||||||
|
use C4::Acquisition;
|
||||||
use C4::Auth;
|
use C4::Auth;
|
||||||
|
use C4::Bookseller qw/GetBookSellerFromId/;
|
||||||
|
use C4::Budgets;
|
||||||
use C4::Koha;
|
use C4::Koha;
|
||||||
use C4::Dates qw/format_date/;
|
use C4::Dates qw/format_date/;
|
||||||
use C4::Serials;
|
use C4::Serials;
|
||||||
|
@ -122,34 +124,33 @@ my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($su
|
||||||
my $default_bib_view = get_default_view();
|
my $default_bib_view = get_default_view();
|
||||||
|
|
||||||
my ( $order, $bookseller, $tmpl_infos );
|
my ( $order, $bookseller, $tmpl_infos );
|
||||||
# FIXME = see http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5335#c52
|
if ( defined $subscriptionid ) {
|
||||||
#if ( defined $subscriptionid ) {
|
my $lastOrderNotReceived = GetLastOrderNotReceivedFromSubscriptionid $subscriptionid;
|
||||||
# my $lastOrderNotReceived = GetLastOrderNotReceivedFromSubscriptionid $subscriptionid;
|
my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;
|
||||||
# my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;
|
if ( defined $lastOrderNotReceived ) {
|
||||||
# if ( defined $lastOrderNotReceived ) {
|
my $basket = GetBasket $lastOrderNotReceived->{basketno};
|
||||||
# my $basket = GetBasket $lastOrderNotReceived->{basketno};
|
my $bookseller = GetBookSellerFromId $basket->{booksellerid};
|
||||||
# my $bookseller = GetBookSellerFromId $basket->{booksellerid};
|
( $tmpl_infos->{valuegsti_ordered}, $tmpl_infos->{valuegste_ordered} ) = get_value_with_gst_params ( $lastOrderNotReceived->{ecost}, $lastOrderNotReceived->{gstrate}, $bookseller );
|
||||||
# ( $tmpl_infos->{valuegsti_ordered}, $tmpl_infos->{valuegste_ordered} ) = get_value_with_gst_params ( $lastOrderNotReceived->{ecost}, $lastOrderNotReceived->{gstrate}, $bookseller );
|
$tmpl_infos->{valuegsti_ordered} = sprintf( "%.2f", $tmpl_infos->{valuegsti_ordered} );
|
||||||
# $tmpl_infos->{valuegsti_ordered} = sprintf( "%.2f", $tmpl_infos->{valuegsti_ordered} );
|
$tmpl_infos->{valuegste_ordered} = sprintf( "%.2f", $tmpl_infos->{valuegste_ordered} );
|
||||||
# $tmpl_infos->{valuegste_ordered} = sprintf( "%.2f", $tmpl_infos->{valuegste_ordered} );
|
$tmpl_infos->{budget_name_ordered} = GetBudgetName $lastOrderNotReceived->{budget_id};
|
||||||
# $tmpl_infos->{budget_name_ordered} = GetBudgetName $lastOrderNotReceived->{budget_id};
|
$tmpl_infos->{basketno} = $lastOrderNotReceived->{basketno};
|
||||||
# $tmpl_infos->{basketno} = $lastOrderNotReceived->{basketno};
|
$tmpl_infos->{ordered_exists} = 1;
|
||||||
# $tmpl_infos->{ordered_exists} = 1;
|
}
|
||||||
# }
|
if ( defined $lastOrderReceived ) {
|
||||||
# if ( defined $lastOrderReceived ) {
|
my $basket = GetBasket $lastOrderReceived->{basketno};
|
||||||
# my $basket = GetBasket $lastOrderReceived->{basketno};
|
my $bookseller = GetBookSellerFromId $basket->{booksellerid};
|
||||||
# my $bookseller = GetBookSellerFromId $basket->{booksellerid};
|
( $tmpl_infos->{valuegsti_spent}, $tmpl_infos->{valuegste_spent} ) = get_value_with_gst_params ( $lastOrderReceived->{unitprice}, $lastOrderReceived->{gstrate}, $bookseller );
|
||||||
# ( $tmpl_infos->{valuegsti_spent}, $tmpl_infos->{valuegste_spent} ) = get_value_with_gst_params ( $lastOrderReceived->{unitprice}, $lastOrderReceived->{gstrate}, $bookseller );
|
$tmpl_infos->{valuegsti_spent} = sprintf( "%.2f", $tmpl_infos->{valuegsti_spent} );
|
||||||
# $tmpl_infos->{valuegsti_spent} = sprintf( "%.2f", $tmpl_infos->{valuegsti_spent} );
|
$tmpl_infos->{valuegste_spent} = sprintf( "%.2f", $tmpl_infos->{valuegste_spent} );
|
||||||
# $tmpl_infos->{valuegste_spent} = sprintf( "%.2f", $tmpl_infos->{valuegste_spent} );
|
$tmpl_infos->{budget_name_spent} = GetBudgetName $lastOrderReceived->{budget_id};
|
||||||
# $tmpl_infos->{budget_name_spent} = GetBudgetName $lastOrderReceived->{budget_id};
|
$tmpl_infos->{invoiceid} = $lastOrderReceived->{invoiceid};
|
||||||
# $tmpl_infos->{invoicenumber} = $lastOrderReceived->{booksellerinvoicenumber};
|
$tmpl_infos->{spent_exists} = 1;
|
||||||
# $tmpl_infos->{spent_exists} = 1;
|
}
|
||||||
# }
|
}
|
||||||
#}
|
|
||||||
|
|
||||||
$template->param(
|
$template->param(
|
||||||
subscriptionid => $subscriptionid,
|
subscriptionid => $subscriptionid,
|
||||||
serialslist => \@serialslist,
|
serialslist => \@serialslist,
|
||||||
hasRouting => $hasRouting,
|
hasRouting => $hasRouting,
|
||||||
routing => C4::Context->preference("RoutingSerials"),
|
routing => C4::Context->preference("RoutingSerials"),
|
||||||
|
@ -171,7 +172,9 @@ $template->param(
|
||||||
default_bib_view => $default_bib_view,
|
default_bib_view => $default_bib_view,
|
||||||
(uc(C4::Context->preference("marcflavour"))) => 1,
|
(uc(C4::Context->preference("marcflavour"))) => 1,
|
||||||
show_acquisition_details => defined $tmpl_infos->{ordered_exists} || defined $tmpl_infos->{spent_exists} ? 1 : 0,
|
show_acquisition_details => defined $tmpl_infos->{ordered_exists} || defined $tmpl_infos->{spent_exists} ? 1 : 0,
|
||||||
);
|
basketno => $order->{basketno},
|
||||||
|
%$tmpl_infos,
|
||||||
|
);
|
||||||
|
|
||||||
output_html_with_http_headers $query, $cookie, $template->output;
|
output_html_with_http_headers $query, $cookie, $template->output;
|
||||||
|
|
||||||
|
@ -189,3 +192,36 @@ sub get_default_view {
|
||||||
}
|
}
|
||||||
return 'detail';
|
return 'detail';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub get_value_with_gst_params {
|
||||||
|
my $value = shift;
|
||||||
|
my $gstrate = shift;
|
||||||
|
my $bookseller = shift;
|
||||||
|
if ( $bookseller->{listincgst} ) {
|
||||||
|
return ( $value, $value / ( 1 + $gstrate ) );
|
||||||
|
} else {
|
||||||
|
return ( $value * ( 1 + $gstrate ), $value );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub get_gste {
|
||||||
|
my $value = shift;
|
||||||
|
my $gstrate = shift;
|
||||||
|
my $bookseller = shift;
|
||||||
|
if ( $bookseller->{invoiceincgst} ) {
|
||||||
|
return $value / ( 1 + $gstrate );
|
||||||
|
} else {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub get_gst {
|
||||||
|
my $value = shift;
|
||||||
|
my $gstrate = shift;
|
||||||
|
my $bookseller = shift;
|
||||||
|
if ( $bookseller->{invoiceincgst} ) {
|
||||||
|
return $value / ( 1 + $gstrate ) * $gstrate;
|
||||||
|
} else {
|
||||||
|
return $value * ( 1 + $gstrate ) - $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue