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
|
||||
&ModReceiveOrder &CancelReceipt &ModOrderBiblioitemNumber
|
||||
&GetCancelledOrders
|
||||
|
||||
&GetLastOrderNotReceivedFromSubscriptionid &GetLastOrderReceivedFromSubscriptionid
|
||||
&NewOrderItem &ModOrderItem &ModItemOrder
|
||||
|
||||
&GetParcels &GetParcel
|
||||
|
@ -1007,6 +1007,67 @@ sub GetOrder {
|
|||
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
|
||||
|
|
|
@ -41,6 +41,7 @@ BEGIN {
|
|||
&DelBudget
|
||||
&GetBudgetSpent
|
||||
&GetBudgetOrdered
|
||||
&GetBudgetName
|
||||
&GetPeriodsCount
|
||||
&GetChildBudgetsSpent
|
||||
|
||||
|
@ -356,6 +357,28 @@ sub GetBudgetOrdered {
|
|||
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 {
|
||||
my ($budget_period_id) = shift;
|
||||
|
|
|
@ -58,6 +58,7 @@ BEGIN {
|
|||
&CountIssues
|
||||
HasItems
|
||||
&GetSubscriptionsFromBorrower
|
||||
&subscriptionCurrentlyOnOrder
|
||||
|
||||
);
|
||||
}
|
||||
|
@ -1542,7 +1543,7 @@ sub ReNewSubscription {
|
|||
# renew subscription
|
||||
$query = qq|
|
||||
UPDATE subscription
|
||||
SET startdate=?,numberlength=?,weeklength=?,monthlength=?
|
||||
SET startdate=?,numberlength=?,weeklength=?,monthlength=?,reneweddate=NOW()
|
||||
WHERE subscriptionid=?
|
||||
|;
|
||||
$sth = $dbh->prepare($query);
|
||||
|
@ -2730,6 +2731,28 @@ sub ReopenSubscription {
|
|||
$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;
|
||||
__END__
|
||||
|
||||
|
|
|
@ -153,6 +153,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
|||
my $orderinfo = $input->Vars;
|
||||
$orderinfo->{'list_price'} ||= 0;
|
||||
$orderinfo->{'uncertainprice'} ||= 0;
|
||||
$orderinfo->{subscriptionid} ||= undef;
|
||||
|
||||
my $user = $input->remote_user;
|
||||
|
||||
|
|
|
@ -52,7 +52,6 @@ my $invoiceno = $invoice->{invoicenumber};
|
|||
my $datereceived = $invoice->{shipmentdate};
|
||||
my $booksellerid = $input->param('booksellerid');
|
||||
my $cnt = 0;
|
||||
my $error_url_str;
|
||||
my $ecost = $input->param('ecost');
|
||||
my $rrp = $input->param('rrp');
|
||||
my $note = $input->param("note");
|
||||
|
|
|
@ -97,7 +97,6 @@ my $budget_id = $input->param('budget_id') || 0;
|
|||
my $title = $input->param('title');
|
||||
my $author = $input->param('author');
|
||||
my $publicationyear = $input->param('publicationyear');
|
||||
my $bookseller = GetBookSellerFromId($booksellerid); # FIXME: else ERROR!
|
||||
my $ordernumber = $input->param('ordernumber') || '';
|
||||
our $biblionumber = $input->param('biblionumber');
|
||||
our $basketno = $input->param('basketno');
|
||||
|
@ -105,6 +104,7 @@ my $suggestionid = $input->param('suggestionid');
|
|||
my $close = $input->param('close');
|
||||
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 $subscriptionid = $input->param('subscriptionid');
|
||||
my $data;
|
||||
my $new = 'no';
|
||||
|
||||
|
@ -129,6 +129,9 @@ if(!$basketno) {
|
|||
}
|
||||
|
||||
our $basket = GetBasket($basketno);
|
||||
$booksellerid = $basket->{booksellerid} unless $booksellerid;
|
||||
my $bookseller = GetBookSellerFromId($booksellerid);
|
||||
|
||||
my $contract = &GetContract($basket->{contractnumber});
|
||||
|
||||
#simple parameters reading (all in one :-)
|
||||
|
@ -186,10 +189,8 @@ else { #modify order
|
|||
$biblionumber = $data->{'biblionumber'};
|
||||
$budget_id = $data->{'budget_id'};
|
||||
|
||||
#get basketno and supplierno. too!
|
||||
my $data2 = GetBasket( $data->{'basketno'} );
|
||||
$basketno = $data2->{'basketno'};
|
||||
$booksellerid = $data2->{'booksellerid'};
|
||||
$basket = GetBasket( $data->{'basketno'} );
|
||||
$basketno = $basket->{'basketno'};
|
||||
}
|
||||
|
||||
my $suggestion;
|
||||
|
@ -321,6 +322,26 @@ if (C4::Context->preference('AcqCreateItem') eq 'ordering' && !$ordernumber) {
|
|||
my @itemtypes;
|
||||
@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
|
||||
my (undef, $barcode_subfield) = GetMarcFromKohaField('items.barcode', '');
|
||||
|
||||
|
@ -392,6 +413,7 @@ $template->param(
|
|||
publishercode => $data->{'publishercode'},
|
||||
barcode_subfield => $barcode_subfield,
|
||||
import_batch_id => $import_batch_id,
|
||||
subscriptionid => $subscriptionid,
|
||||
(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'},
|
||||
ordernumber => $order->{'ordernumber'},
|
||||
biblioitemnumber => $order->{'biblioitemnumber'},
|
||||
subscriptionid => $order->{subscriptionid},
|
||||
booksellerid => $order->{'booksellerid'},
|
||||
freight => $freight,
|
||||
name => $bookseller->{'name'},
|
||||
|
|
|
@ -1945,6 +1945,7 @@ CREATE TABLE `subscription` (
|
|||
`graceperiod` int(11) NOT NULL default '0',
|
||||
`enddate` date default NULL,
|
||||
`closed` INT(1) NOT NULL DEFAULT 0,
|
||||
`reneweddate` date default NULL,
|
||||
PRIMARY KEY (`subscriptionid`),
|
||||
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
|
||||
|
@ -2811,8 +2812,6 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items
|
|||
`notes` mediumtext, -- notes related to this order line
|
||||
`supplierreference` 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)
|
||||
`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
|
||||
|
@ -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)
|
||||
`claims_count` int(11) default 0, -- count of claim letters 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
|
||||
PRIMARY KEY (`ordernumber`),
|
||||
KEY `basketno` (`basketno`),
|
||||
|
@ -2837,7 +2837,8 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items
|
|||
KEY `budget_id` (`budget_id`),
|
||||
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_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;
|
||||
|
||||
|
||||
|
|
|
@ -6984,6 +6984,17 @@ if ( CheckVersion($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
|
||||
|
||||
=head2 TableExists($table)
|
||||
|
|
|
@ -1,17 +1,22 @@
|
|||
<fieldset id="acqui_basket_add">
|
||||
<legend>Add order to basket</legend>
|
||||
[% IF has_budgets %]
|
||||
<form action="/cgi-bin/koha/acqui/neworderbiblio.pl" method="post">
|
||||
<input type="hidden" name="booksellerid" value="[% booksellerid %]" />
|
||||
<input type="hidden" name="basketno" value="[% basketno %]" />
|
||||
<ul><li><label for="q">From an existing record: </label><input id="q" type="text" size="25" name="q" />
|
||||
<input type="submit" class="submit" value="Search" /></li>
|
||||
<ul>
|
||||
<li>
|
||||
<label for="q">From an existing record: </label>
|
||||
<form action="/cgi-bin/koha/acqui/neworderbiblio.pl" method="post">
|
||||
<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/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/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>
|
||||
</ul>
|
||||
</form>
|
||||
</ul>
|
||||
[% 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>.
|
||||
[% 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>
|
||||
[% END %]
|
||||
|
||||
[% IF (AcqCreateItemOrdering) %]
|
||||
[% UNLESS subscriptionid %][% # it is a suggestion, we have not items %]
|
||||
[% IF (AcqCreateItemOrdering) %]
|
||||
|
||||
<div id="items_list" style="display:none">
|
||||
<p><b>Items list</b></p>
|
||||
<div style="width:100%;overflow:auto;">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th>Barcode</th>
|
||||
<th>Home library</th>
|
||||
<th>Holding library</th>
|
||||
<th>Not for loan</th>
|
||||
<th>Restricted</th>
|
||||
<th>Location</th>
|
||||
<th>Call number</th>
|
||||
<th>Copy number</th>
|
||||
<th>Stock number</th>
|
||||
<th>Collection code</th>
|
||||
<th>Item type</th>
|
||||
<th>Materials</th>
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="items_list" style="display:none">
|
||||
<p><b>Items list</b></p>
|
||||
<div style="width:100%;overflow:auto;">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th>Barcode</th>
|
||||
<th>Home library</th>
|
||||
<th>Holding library</th>
|
||||
<th>Not for loan</th>
|
||||
<th>Restricted</th>
|
||||
<th>Location</th>
|
||||
<th>Call number</th>
|
||||
<th>Copy number</th>
|
||||
<th>Stock number</th>
|
||||
<th>Collection code</th>
|
||||
<th>Item type</th>
|
||||
<th>Materials</th>
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="rows" id="itemfieldset">
|
||||
<legend>Item</legend>
|
||||
[% 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>
|
||||
[% END %]
|
||||
<fieldset class="rows" id="itemfieldset">
|
||||
<legend>Item</legend>
|
||||
[% 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>
|
||||
[% END %]
|
||||
|
||||
<div id="outeritemblock"></div>
|
||||
<div id="outeritemblock"></div>
|
||||
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
[% END %][%# UNLESS subscriptionid %]
|
||||
[% END %][%# IF (AcqCreateItemOrdering) %]
|
||||
<fieldset class="rows">
|
||||
<legend>Accounting Details</legend>
|
||||
|
@ -412,9 +414,17 @@ $(document).ready(function()
|
|||
[% ELSE %]
|
||||
<label class="required" for="quantity">Quantity: </label>
|
||||
[% 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 %]
|
||||
<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 %]
|
||||
<!-- 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 %]
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
</ol>
|
||||
</fieldset>
|
||||
<fieldset class="action">
|
||||
<input type="hidden" name="subscriptionid" value="[% subscriptionid %]" />
|
||||
<input type="submit" value="Save" />
|
||||
[% IF (suggestionid) %]
|
||||
<a class="cancel" href="/cgi-bin/koha/acqui/newordersuggestion.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]">Cancel</a>
|
||||
[% 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 %]
|
||||
</fieldset>
|
||||
</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() {
|
||||
[% IF (AcqCreateItemReceiving) %]
|
||||
cloneItemBlock(0, '[% UniqueItemFields %]');
|
||||
[% ELSIF (AcqCreateItem == 'ordering') %]
|
||||
[% ELSIF (AcqCreateItem == 'ordering') && not subscriptionid %]
|
||||
$("input[name='items_to_receive']").change(function() {
|
||||
CalcQtyToReceive();
|
||||
});
|
||||
|
@ -218,17 +218,19 @@ function IEEventHandler_KeyDown() {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="rows" id="itemfieldset">
|
||||
<legend>Item</legend>
|
||||
[% IF ( NoACQframework ) %]
|
||||
<p class="required">
|
||||
No ACQ framework, using default. You should create a
|
||||
framework with code ACQ, the items framework would be
|
||||
used
|
||||
</p>
|
||||
[% END %]
|
||||
<div id="outeritemblock"></div>
|
||||
</fieldset>
|
||||
[% UNLESS subscriptionid %]
|
||||
<fieldset class="rows" id="itemfieldset">
|
||||
<legend>Item</legend>
|
||||
[% IF ( NoACQframework ) %]
|
||||
<p class="required">
|
||||
No ACQ framework, using default. You should create a
|
||||
framework with code ACQ, the items framework would be
|
||||
used
|
||||
</p>
|
||||
[% END %]
|
||||
<div id="outeritemblock"></div>
|
||||
</fieldset>
|
||||
[% END %]
|
||||
[% ELSIF (AcqCreateItem == 'ordering') %]
|
||||
[% IF (items.size) %]
|
||||
<h5>Items</h5>
|
||||
|
@ -294,35 +296,39 @@ function IEEventHandler_KeyDown() {
|
|||
<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="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 %]" />
|
||||
[% ELSE %]
|
||||
[% ELSE%]
|
||||
<input type="text" readonly="readonly" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
|
||||
[% END %]
|
||||
</span></li>
|
||||
<li><label for="quantity">Quantity received: </label>
|
||||
[% 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 %]
|
||||
[% IF ( quantityreceived ) %]
|
||||
[% IF ( edit ) %]
|
||||
<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 %]
|
||||
[% IF ( items ) %]
|
||||
<input READONLY type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
|
||||
[% ELSE %]
|
||||
<input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
|
||||
[% END %]
|
||||
<input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
|
||||
[% IF ( items ) %]
|
||||
<input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
|
||||
[% ELSE %]
|
||||
<input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
|
||||
[% END %]
|
||||
<input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% IF ( items ) %]
|
||||
<input type="text" id="quantity" size="20" name="quantityrec" value="1" />
|
||||
[% IF ( subscriptionid ) %]
|
||||
<input type="text" readonly="readonly" id="quantity" size="20" name="quantityrec" value="1" />
|
||||
[% ELSE %]
|
||||
<input type="text" size="20" id="quantity" name="quantityrec" value="1" />
|
||||
<input type="text" id="quantity" size="20" name="quantityrec" value="1" />
|
||||
[% END %]
|
||||
<input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="0" />
|
||||
<input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="0" />
|
||||
[% END %]
|
||||
<div id="qtyrecerror" style="display:none">
|
||||
<p class="error">Warning, you have entered more items than expected.
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="yui-b">
|
||||
[% INCLUDE 'subscriptions-search.inc' %]
|
||||
[% INCLUDE 'serials-menu.inc' %]
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -129,7 +129,7 @@ $(document).ready(function() {
|
|||
<h2>Acquisition details</h2>
|
||||
<table>
|
||||
<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>
|
||||
<tbody>
|
||||
<tr>
|
||||
|
@ -139,7 +139,7 @@ $(document).ready(function() {
|
|||
<td>[% budget_name_ordered %]</td>
|
||||
<td>
|
||||
[% 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 %]
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -150,7 +150,7 @@ $(document).ready(function() {
|
|||
<td>[% budget_name_spent %]</td>
|
||||
<td>
|
||||
[% 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 %]
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -16,7 +16,7 @@ the kohaversion is divided in 4 parts :
|
|||
use strict;
|
||||
|
||||
sub kohaversion {
|
||||
our $VERSION = '3.11.00.115';
|
||||
our $VERSION = '3.11.00.116';
|
||||
# version needs to be set this way
|
||||
# so that it can be picked up by Makefile.PL
|
||||
# during install
|
||||
|
|
|
@ -106,7 +106,7 @@ my $branches = GetBranches();
|
|||
my @branches_loop;
|
||||
foreach (sort keys %$branches){
|
||||
my $selected = 0;
|
||||
$selected = 1 if( $branch eq $_ );
|
||||
$selected = 1 if( defined $branch and $branch eq $_ );
|
||||
push @branches_loop, {
|
||||
branchcode => $_,
|
||||
branchname => $branches->{$_}->{'branchname'},
|
||||
|
|
|
@ -15,10 +15,12 @@
|
|||
# with Koha; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Modern::Perl;
|
||||
use CGI;
|
||||
use C4::Acquisition;
|
||||
use C4::Auth;
|
||||
use C4::Bookseller qw/GetBookSellerFromId/;
|
||||
use C4::Budgets;
|
||||
use C4::Koha;
|
||||
use C4::Dates qw/format_date/;
|
||||
use C4::Serials;
|
||||
|
@ -122,34 +124,33 @@ my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($su
|
|||
my $default_bib_view = get_default_view();
|
||||
|
||||
my ( $order, $bookseller, $tmpl_infos );
|
||||
# FIXME = see http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5335#c52
|
||||
#if ( defined $subscriptionid ) {
|
||||
# my $lastOrderNotReceived = GetLastOrderNotReceivedFromSubscriptionid $subscriptionid;
|
||||
# my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;
|
||||
# if ( defined $lastOrderNotReceived ) {
|
||||
# my $basket = GetBasket $lastOrderNotReceived->{basketno};
|
||||
# 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} = sprintf( "%.2f", $tmpl_infos->{valuegsti_ordered} );
|
||||
# $tmpl_infos->{valuegste_ordered} = sprintf( "%.2f", $tmpl_infos->{valuegste_ordered} );
|
||||
# $tmpl_infos->{budget_name_ordered} = GetBudgetName $lastOrderNotReceived->{budget_id};
|
||||
# $tmpl_infos->{basketno} = $lastOrderNotReceived->{basketno};
|
||||
# $tmpl_infos->{ordered_exists} = 1;
|
||||
# }
|
||||
# if ( defined $lastOrderReceived ) {
|
||||
# my $basket = GetBasket $lastOrderReceived->{basketno};
|
||||
# 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} = sprintf( "%.2f", $tmpl_infos->{valuegsti_spent} );
|
||||
# $tmpl_infos->{valuegste_spent} = sprintf( "%.2f", $tmpl_infos->{valuegste_spent} );
|
||||
# $tmpl_infos->{budget_name_spent} = GetBudgetName $lastOrderReceived->{budget_id};
|
||||
# $tmpl_infos->{invoicenumber} = $lastOrderReceived->{booksellerinvoicenumber};
|
||||
# $tmpl_infos->{spent_exists} = 1;
|
||||
# }
|
||||
#}
|
||||
if ( defined $subscriptionid ) {
|
||||
my $lastOrderNotReceived = GetLastOrderNotReceivedFromSubscriptionid $subscriptionid;
|
||||
my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;
|
||||
if ( defined $lastOrderNotReceived ) {
|
||||
my $basket = GetBasket $lastOrderNotReceived->{basketno};
|
||||
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} = sprintf( "%.2f", $tmpl_infos->{valuegsti_ordered} );
|
||||
$tmpl_infos->{valuegste_ordered} = sprintf( "%.2f", $tmpl_infos->{valuegste_ordered} );
|
||||
$tmpl_infos->{budget_name_ordered} = GetBudgetName $lastOrderNotReceived->{budget_id};
|
||||
$tmpl_infos->{basketno} = $lastOrderNotReceived->{basketno};
|
||||
$tmpl_infos->{ordered_exists} = 1;
|
||||
}
|
||||
if ( defined $lastOrderReceived ) {
|
||||
my $basket = GetBasket $lastOrderReceived->{basketno};
|
||||
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} = sprintf( "%.2f", $tmpl_infos->{valuegsti_spent} );
|
||||
$tmpl_infos->{valuegste_spent} = sprintf( "%.2f", $tmpl_infos->{valuegste_spent} );
|
||||
$tmpl_infos->{budget_name_spent} = GetBudgetName $lastOrderReceived->{budget_id};
|
||||
$tmpl_infos->{invoiceid} = $lastOrderReceived->{invoiceid};
|
||||
$tmpl_infos->{spent_exists} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
$template->param(
|
||||
subscriptionid => $subscriptionid,
|
||||
subscriptionid => $subscriptionid,
|
||||
serialslist => \@serialslist,
|
||||
hasRouting => $hasRouting,
|
||||
routing => C4::Context->preference("RoutingSerials"),
|
||||
|
@ -171,7 +172,9 @@ $template->param(
|
|||
default_bib_view => $default_bib_view,
|
||||
(uc(C4::Context->preference("marcflavour"))) => 1,
|
||||
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;
|
||||
|
||||
|
@ -189,3 +192,36 @@ sub get_default_view {
|
|||
}
|
||||
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