[Koha-patches] [PATCH 25/78] basket management
paul.poulain at biblibre.com
paul.poulain at biblibre.com
Thu May 28 18:32:35 CEST 2009
From: Paul Poulain <paul.poulain at biblibre.com>
lot of new things:
* basket now explicitely created
* they can have a name, a bookseller note, a private (library) note, a contract attached
* deal with granular permissions
* feature to delete a basket
* feature to close/reopen a basket
in template, add link to fill a basket from a z3950 search or from a staged file
---
acqui/basket.pl | 186 ++++++++++++++-----
.../prog/en/modules/acqui/basket.tmpl | 158 ++++++++++++++---
2 files changed, 272 insertions(+), 72 deletions(-)
diff --git a/acqui/basket.pl b/acqui/basket.pl
index 0e29473..01b63c6 100755
--- a/acqui/basket.pl
+++ b/acqui/basket.pl
@@ -1,9 +1,9 @@
#!/usr/bin/perl
#script to show display basket of orders
-#written by chris at katipo.co.nz 24/2/2000
-# Copyright 2000-2002 Katipo Communications
+# Copyright 2000 - 2004 Katipo
+# Copyright 2008 - 2009 BibLibre SARL
#
# This file is part of Koha.
#
@@ -21,16 +21,19 @@
# Suite 330, Boston, MA 02111-1307 USA
use strict;
+use warnings;
use C4::Auth;
use C4::Koha;
use C4::Output;
use CGI;
use C4::Acquisition;
-use C4::Bookfund;
+use C4::Budgets;
+
use C4::Bookseller;
use C4::Dates qw/format_date/;
use C4::Debug;
+use C4::Members qw/GetMember/; #needed for permissions checking for changing basketgroup of a basket
=head1 NAME
basket.pl
@@ -62,7 +65,7 @@ the supplier this script have to display the basket.
my $query = new CGI;
my $basketno = $query->param('basketno');
my $booksellerid = $query->param('supplierid');
-my $sort = $query->param('order');
+my $sort = $query->param('order') || "aqorders.ordernumber";
my @sort_loop;
if (defined $sort) {
@@ -72,8 +75,8 @@ if (defined $sort) {
);
# other possibly valid tables for later: aqbookfund biblio biblioitems
if (
- (/^\s*(aqorderbreakdown)\.(\w+)\s*$/ and $2 eq 'bookfundid' ) or
- (/^\s*(biblioitems)\.(\w+)\s*$/ and $2 eq 'publishercode')
+ (/^\s*(biblioitems)\.(\w+)\s*$/ and $2 eq 'publishercode') or
+ (/^\s*(aqorders)\.(\w+)\s*$/ and $2 eq 'ordernumber' )
) {
$sorthash{table} = $1;
$sorthash{field} = $2;
@@ -90,7 +93,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
query => $query,
type => "intranet",
authnotrequired => 0,
- flagsrequired => { acquisition => 1 },
+ flagsrequired => { acquisition => 'order_manage' },
debug => 1,
}
);
@@ -103,12 +106,54 @@ my $basket = GetBasket($basketno);
# warn "=>".$basket->{booksellerid};
$booksellerid = $basket->{booksellerid} unless $booksellerid;
my ($bookseller) = GetBookSellerFromId($booksellerid);
+my $op = $query->param('op');
-if ( !$bookseller ) {
+if ( $op eq 'delete_confirm' ) {
+ my $basketno = $query->param('basketno');
+ DelBasket($basketno);
+ $template->param( delete_confirmed => 1 );
+} elsif ( !$bookseller ) {
$template->param( NO_BOOKSELLER => 1 );
-}
-else {
-
+} elsif ( $op eq 'del_basket') {
+ $template->param( delete_confirm => 1 );
+ if ( C4::Context->preference("IndependantBranches") ) {
+ my $userenv = C4::Context->userenv;
+ unless ( $userenv->{flags} == 1 ) {
+ my $validtest = ( $basket->{creationdate} eq '' )
+ || ( $userenv->{branch} eq $basket->{branch} )
+ || ( $userenv->{branch} eq '' )
+ || ( $basket->{branch} eq '' );
+ unless ($validtest) {
+ print $query->redirect("../mainpage.pl");
+ exit 1;
+ }
+ }
+ }
+ $basket->{creationdate} = "" unless ( $basket->{creationdate} );
+ $basket->{authorisedby} = $loggedinuser unless ( $basket->{authorisedby} );
+ my $contract = &GetContract($basket->{contractnumber});
+ my $count = scalar GetOrders( $basketno);
+ $template->param(
+ basketno => $basketno,
+ basketname => $basket->{'basketname'},
+ basketnote => $basket->{note},
+ basketbooksellernote => $basket->{booksellernote},
+ basketcontractno => $basket->{contractnumber},
+ basketcontractname => $contract->{contractname},
+ creationdate => format_date( $basket->{creationdate} ),
+ authorisedby => $basket->{authorisedby},
+ authorisedbyname => $basket->{authorisedbyname},
+ closedate => format_date( $basket->{closedate} ),
+ active => $bookseller->{'active'},
+ booksellerid => $bookseller->{'id'},
+ name => $bookseller->{'name'},
+ address1 => $bookseller->{'address1'},
+ address2 => $bookseller->{'address2'},
+ address3 => $bookseller->{'address3'},
+ address4 => $bookseller->{'address4'},
+ count => $count,
+ );
+} else {
# get librarian branch...
if ( C4::Context->preference("IndependantBranches") ) {
my $userenv = C4::Context->userenv;
@@ -123,7 +168,26 @@ else {
}
}
}
-
+#if the basket is closed,and the user has the permission to edit basketgroups, display a list of basketgroups
+ my $basketgroups;
+ my $member = GetMember($loggedinuser, "borrowernumber");
+ if ($basket->{closedate} && haspermission(C4::Context->dbh, $member->{userid}, { flagsrequired => { acquisition => 'group_manage'} })) {
+ $basketgroups = GetBasketgroups($basket->{booksellerid});
+ for (my $i=0; $i < scalar(@$basketgroups); $i++) {
+ if (@$basketgroups[$i]->{closed}) {
+ splice(@$basketgroups, $i, 1);
+ $i--;
+ } elsif ($basket->{basketgroupid} == @$basketgroups[$i]->{id}){
+ @$basketgroups[$i]->{default} = 1;
+ }
+ }
+ my %emptygroup = ( id => undef,
+ name => "No group");
+ if ( ! $basket->{basketgroupid} ) {
+ $emptygroup{default} = 1;
+ }
+ unshift( @$basketgroups, \%emptygroup );
+ }
# if new basket, pre-fill infos
$basket->{creationdate} = "" unless ( $basket->{creationdate} );
$basket->{authorisedby} = $loggedinuser unless ( $basket->{authorisedby} );
@@ -145,10 +209,14 @@ else {
my $qty_total;
my @books_loop;
+
for ( my $i = 0 ; $i < $count ; $i++ ) {
my $rrp = $results[$i]->{'listprice'};
my $qty = $results[$i]->{'quantity'};
+
+ my $budget = GetBudget( $results[$i]->{'budget_id'} );
$rrp = ConvertCurrency( $results[$i]->{'currency'}, $rrp );
+
$sub_total_rrp += $qty * $results[$i]->{'rrp'};
my $line_total = $qty * $results[$i]->{'ecost'};
# FIXME: what about the "actual cost" field?
@@ -156,16 +224,28 @@ else {
$qty_total += $qty;
my %line = %{ $results[$i] };
($i%2) and $line{toggle} = 1;
- $line{order_received}= ( $qty eq $results[$i]->{'quantityreceived'} );
- $line{basketno} = $basketno;
- $line{i} = $i;
- $line{rrp} = sprintf( "%.2f", $line{'rrp'} );
- $line{ecost} = sprintf( "%.2f", $line{'ecost'} );
- $line{line_total} = sprintf( "%.2f", $line_total );
- $line{odd} = $i % 2;
+
+ $line{order_received} = ( $qty eq $results[$i]->{'quantityreceived'} );
+ $line{basketno} = $basketno;
+ $line{i} = $i;
+ $line{budget_name} = $budget->{budget_name};
+ $line{rrp} = sprintf( "%.2f", $line{'rrp'} );
+ $line{ecost} = sprintf( "%.2f", $line{'ecost'} );
+ $line{line_total} = sprintf( "%.2f", $line_total );
+ $line{odd} = $i % 2;
+ if ($line{uncertainprice}) {
+ $template->param( unclosable => 1 );
+ for my $key (qw/ecost line_total rrp/) {
+ $line{$key} .= '??';
+ }
+ }
push @books_loop, \%line;
}
- my $prefgist = C4::Context->preference("gist") || 0;
+
+
+
+
+ my $prefgist = $bookseller->{gstrate} || C4::Context->preference("gist") || 0;
my $gist = $sub_total * $prefgist;
my $gist_rrp = $sub_total_rrp * $prefgist;
$grand_total = $sub_total_est = $sub_total;
@@ -181,36 +261,44 @@ else {
if ($temp = $bookseller->{'discount'}) {
$template->param(discount => sprintf( "%.2f", $temp ));
}
+ my $contract = &GetContract($basket->{contractnumber});
$template->param(
- basketno => $basketno,
- creationdate => format_date( $basket->{creationdate} ),
- authorisedby => $basket->{authorisedby},
- authorisedbyname => $basket->{authorisedbyname},
- closedate => format_date( $basket->{closedate} ),
- active => $bookseller->{'active'},
- booksellerid => $bookseller->{'id'},
- name => $bookseller->{'name'},
- address1 => $bookseller->{'address1'},
- address2 => $bookseller->{'address2'},
- address3 => $bookseller->{'address3'},
- address4 => $bookseller->{'address4'},
- entrydate => format_date( $results[0]->{'entrydate'} ),
- books_loop => \@books_loop,
- sort_loop => \@sort_loop,
- count => $count,
- gist => $gist ? sprintf( "%.2f", $gist ) : 0,
- gist_rate => sprintf( "%.2f", $prefgist * 100) . '%',
- gist_est => sprintf( "%.2f", $sub_total_est * $prefgist ),
- gist_rrp => sprintf( "%.2f", $gist_rrp),
- sub_total => sprintf( "%.2f", $sub_total ),
- grand_total => sprintf( "%.2f", $grand_total ),
- sub_total_est => sprintf( "%.2f", $sub_total_est),
- grand_total_est => sprintf( "%.2f", $grand_total_est),
- sub_total_rrp => sprintf( "%.2f", $sub_total_rrp),
- grand_total_rrp => sprintf( "%.2f", $sub_total_rrp + $gist_rrp),
- currency => $bookseller->{'listprice'},
- qty_total => $qty_total,
- GST => $prefgist,
+ basketno => $basketno,
+ basketname => $basket->{'basketname'},
+ basketnote => $basket->{note},
+ basketbooksellernote => $basket->{booksellernote},
+ basketcontractno => $basket->{contractnumber},
+ basketcontractname => $contract->{contractname},
+ creationdate => format_date( $basket->{creationdate} ),
+ authorisedby => $basket->{authorisedby},
+ authorisedbyname => $basket->{authorisedbyname},
+ closedate => format_date( $basket->{closedate} ),
+ active => $bookseller->{'active'},
+ booksellerid => $bookseller->{'id'},
+ name => $bookseller->{'name'},
+ address1 => $bookseller->{'address1'},
+ address2 => $bookseller->{'address2'},
+ address3 => $bookseller->{'address3'},
+ address4 => $bookseller->{'address4'},
+ entrydate => format_date( $results[0]->{'entrydate'} ),
+ books_loop => \@books_loop,
+ sort_loop => \@sort_loop,
+ count => $count,
+ gist => $gist ? sprintf( "%.2f", $gist ) : 0,
+ gist_rate => sprintf( "%.2f", $prefgist * 100 ) . '%',
+ gist_est => sprintf( "%.2f", $sub_total_est * $prefgist ),
+ gist_rrp => sprintf( "%.2f", $gist_rrp ),
+ sub_total => sprintf( "%.2f", $sub_total ),
+ grand_total => sprintf( "%.2f", $grand_total ),
+ sub_total_est => sprintf( "%.2f", $sub_total_est ),
+ grand_total_est => sprintf( "%.2f", $grand_total_est ),
+ sub_total_rrp => sprintf( "%.2f", $sub_total_rrp ),
+ grand_total_rrp => sprintf( "%.2f", $sub_total_rrp + $gist_rrp ),
+ currency => $bookseller->{'listprice'},
+ qty_total => $qty_total,
+ GST => $prefgist,
+ basketgroups => $basketgroups,
+ grouped => $basket->{basketgroupid},
);
}
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl
index cee6d91..555c294 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl
@@ -12,6 +12,19 @@
}
//]]>
</script>
+<!-- TMPL_ELSE -->
+<!-- TMPL_UNLESS name="grouped" -->
+<script type="text/javascript">
+//<![CDATA[
+ function confirm_reopen() {
+ var is_confirmed = confirm(_('Are you sure you want to reopen this basket?'));
+ if (is_confirmed) {
+ window.location = "/cgi-bin/koha/acqui/booksellers.pl?op=reopen&basketno=<!-- TMPL_VAR NAME="basketno" -->&supplierid=<!-- TMPL_VAR name="booksellerid" -->";
+ }
+ }
+//]]>
+</script>
+<!-- /TMPL_UNLESS -->
<!-- /TMPL_UNLESS -->
<style type="text/css">
.sortmsg {font-size: 80%;}
@@ -29,24 +42,122 @@
<div id="bd">
<div id="yui-main">
<div class="yui-b">
+
+ <!-- TMPL_UNLESS name="closedate" -->
+ <div id="toolbar">
+ <script type="text/javascript">
+ //<![CDATA[
+ // prepare DOM for YUI Toolbar
+ $(document).ready(function() {
+ yuiToolbar();
+ });
+ // YUI Toolbar Functions
+ function yuiToolbar() {
+ <!-- TMPL_IF name="unclosable" -->
+ new YAHOO.widget.Button("uncertpricesbutton");
+ new YAHOO.widget.Button("closebutton", {disabled:true});
+ <!-- TMPL_ELSE -->
+ new YAHOO.widget.Button("closebutton");
+ <!-- /TMPL_IF -->
+ new YAHOO.widget.Button("basketheadbutton");
+ new YAHOO.widget.Button("delbasketbutton");
+ }
+ //]]>
+ </script>
+ <ul id=toolbar-list" class="toolbar">
+ <li><a href="basketheader.pl?basketno=<!-- TMPL_VAR NAME="basketno" -->&op=add_form" class="button" id="basketheadbutton">Edit basket header information</a></li>
+ <li><a href="<!-- TMPL_VAR NAME="script_name" -->?op=del_basket&basketno=<!-- TMPL_VAR NAME="basketno" -->&booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->" class="button" id="delbasketbutton">Delete this basket</a></li>
+ <!-- TMPL_IF name="unclosable" -->
+ <li><button onclick="confirm_close()" class="yui-button-disabled" id="closebutton" type="push" disabled="true" title="You can not close this basket" >Can not close basket</a></li>
+ <li><a href="/cgi-bin/koha/acqui/uncertainprice.pl?booksellerid=<!-- TMPL_VAR name="booksellerid" -->&owner=1" class="button" id="uncertpricesbutton">Uncertain prices</a></li>
+ <!-- TMPL_ELSE -->
+ <li><a href="javascript:confirm_close()" class="button" id="closebutton">Close this basket</a></li>
+ <!-- /TMPL_IF -->
+ </ul>
+ </div>
+ <!-- TMPL_ELSE -->
+ <!-- TMPL_UNLESS name="grouped" -->
+ <div id="toolbar">
+ <script type="text/javascript">
+ //<![CDATA[
+ // prepare DOM for YUI Toolbar
+ $(document).ready(function() {
+ yuiToolbar();
+ });
+ // YUI Toolbar Functions
+ function yuiToolbar() {
+ new YAHOO.widget.Button("reopenbutton");
+ }
+ //]]>
+ </script>
+ <ul id="toolbar-list" class="toolbar">
+ <li><a href="javascript:confirm_reopen()" class="button" id="reopenbutton">Reopen this basket</a></li>
+ </ul>
+ </div>
+ <!-- /TMPL_UNLESS -->
+ <!-- /TMPL_UNLESS -->
+
<!-- TMPL_IF NAME="NO_BOOKSELLER" -->
<h2>Supplier Not Found</h2>
<!-- TMPL_ELSE -->
- <h1><!-- TMPL_UNLESS name="basketno" -->New <!-- /TMPL_UNLESS -->Basket <!-- TMPL_VAR NAME="basketno" --> for <a href="supplier.pl?supplierid=<!-- TMPL_VAR NAME="booksellerid" -->"><!-- TMPL_VAR NAME="name" --></a></h1>
-
+ <!-- TMPL_IF NAME="delete_confirmed" -->
+ <h3>Basket deleted</h3>
+ <META HTTP-EQUIV=Refresh CONTENT="0; URL=booksellers.pl">
+ <!-- TMPL_ELSE -->
+ <h1><!-- TMPL_UNLESS name="basketno" -->New <!-- /TMPL_UNLESS --><!-- TMPL_IF NAME="delete_confirm" -->Delete<!-- /TMPL_IF -->Basket <!-- TMPL_VAR NAME="basketno" --> for <a href="supplier.pl?supplierid=<!-- TMPL_VAR NAME="booksellerid" -->"><!-- TMPL_VAR NAME="name" --></a></h1>
+ <!-- TMPL_IF NAME="delete_confirm" -->
+ <h2>
+ <span class="yui-button yui-link-button">
+ <em class="first-child">
+ <a href="<!-- TMPL_VAR NAME="script_name" -->?op=delete_confirm&basketno=<!-- TMPL_VAR NAME="basketno" -->&booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->" class="yui-link-button">Yes, delete this basket!</a>
+ </em>
+ </span>
+ <span class="yui-button yui-link-button">
+ <em class="first-child">
+ <a href="<!-- TMPL_VAR name="script_name" -->?basketno=<!-- TMPL_VAR name="basketno" -->" class="yui-link-button">Cancel</a>
+ </em>
+ </span>
+ </h2>
+ <!-- /TMPL_IF -->
<!-- TMPL_IF NAME="basketno" --><div id="acqui_basket_summary">
<h2>Basket Details</h2>
<p>Basket number: <!-- TMPL_VAR NAME="basketno" --></p>
+ <p>Basket name: <!--TMPL_VAR NAME="basketname" --></p>
+ <p>Internal note: <!-- TMPL_VAR NAME="basketnote" --></p>
+ <p>Bookseller note: <!-- TMPL_VAR NAME="basketbooksellernote" --></p>
+ <!-- TMPL_IF NAME="basketcontractno" -->
+ <p>Contract number: <!-- TMPL_VAR NAME="basketcontractno" --></p>
+ <p>Contract name: <a href="../admin/aqcontract.pl?op=add_form&contractnumber=<!-- TMPL_VAR NAME="basketcontractno" -->"><!-- TMPL_VAR NAME="basketcontractname" --></a></p>
+ <!-- /TMPL_IF -->
<p>Managed by: <!-- TMPL_VAR NAME="authorisedbyname" --></p>
<p>Open on: <!-- TMPL_VAR NAME="creationdate" --></p>
<p>For vendor ID: <!-- TMPL_VAR NAME="booksellerid" --></p>
<p>Invoice number: <!-- TMPL_VAR NAME="booksellerinvoicenumber" --></p>
- <!-- TMPL_IF name="closedate" --><p>Closed On: <!-- TMPL_VAR name="closedate" --></p><!-- /TMPL_IF -->
- <!-- TMPL_UNLESS name="closedate" -->
- <p><a href="javascript:confirm_close()" class="button">Close this basket</a></p>
- <!-- /TMPL_UNLESS -->
+ <!-- TMPL_IF name="closedate" -->
+ <form action="/cgi-bin/koha/acqui/basketgroup.pl" method="post">
+ <p>Closed On: <!-- TMPL_VAR name="closedate" --></p>
+ <!-- TMPL_IF name="basketgroups" -->
+ <p> basketgroup: <select id="basketgroupid" name="basketgroupid">
+ <!-- TMPL_LOOP name="basketgroups" -->
+ <!-- TMPL_IF name="default" -->
+ <option value="<!-- TMPL_VAR name="id" -->" selected="selected"><!-- TMPL_VAR name="name" --></option>
+ <!-- TMPL_ELSE -->
+ <option value="<!-- TMPL_VAR name="id" -->"><!-- TMPL_VAR name="name" --></option>
+ <!-- /TMPL_IF -->
+ <!-- /TMPL_LOOP -->
+ </select>
+ <input type="hidden" id="basketno" value="<!-- TMPL_VAR name="basketno" -->" name="basketno" />
+ <input type="hidden" value="mod_basket" name="op" />
+ <input type="hidden" name="booksellerid" value="<!-- TMPL_VAR name="booksellerid" -->" />
+ <input type="submit" value="Change basketgroup" />
+ </p>
+ </form>
+ <!-- /TMPL_IF -->
+ <!-- /TMPL_IF -->
+ <p>Number of orders: <!-- TMPL_VAR name="count" --></p>
</div><!-- /TMPL_IF -->
+ <!-- TMPL_UNLESS name="delete_confirm" -->
<div id="acqui_basket_content">
<h2>Order Details</h2>
<!-- TMPL_IF NAME="sort_loop" -->
@@ -59,7 +170,6 @@
<!-- /TMPL_IF -->
<!-- /TMPL_LOOP -->
<!-- /TMPL_IF -->
-
<!-- TMPL_IF name="books_loop" -->
<table>
<tr>
@@ -71,9 +181,7 @@
<th>Est.</th>
<th>Qty.</th>
<th>Total</th>
- <th>
- <a href="basket.pl?basketno=<!-- TMPL_VAR name="basketno" -->&order=aqorderbreakdown.bookfundid,biblioitems.publishercode">Fund</a>
- </th>
+ <th>Budget</th>
<!-- TMPL_IF name="active" -->
<!-- TMPL_UNLESS name="closedate" -->
<th>Modify</th>
@@ -98,7 +206,7 @@
<td class="number"><!-- TMPL_VAR NAME="ecost" --></td>
<td class="number"><!-- TMPL_VAR NAME="quantity" --></td>
<td class="number"><!-- TMPL_VAR NAME="line_total" --></td>
- <td><!-- TMPL_VAR NAME="bookfundname" --></td>
+ <td><!-- TMPL_VAR NAME="budget_name" --></td>
<!-- TMPL_IF name="active" -->
<!-- TMPL_UNLESS name="closedate" -->
<td>
@@ -158,19 +266,23 @@
</div>
<br />
<!-- TMPL_UNLESS name="closedate" -->
- <fieldset id="acqui_basket_add">
- <legend>Add To Order</legend>
- <form action="/cgi-bin/koha/acqui/neworderbiblio.pl" method="post">
- <input type="hidden" name="booksellerid" value="<!-- TMPL_VAR NAME="booksellerid" -->" />
- <input type="hidden" name="basketno" value="<!-- TMPL_VAR NAME="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>
- <li><a href="/cgi-bin/koha/acqui/newordersuggestion.pl?booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&basketno=<!-- TMPL_VAR NAME="basketno" -->">From a Suggestion</a></li>
- <li><a href="/cgi-bin/koha/acqui/neworderempty.pl?booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&basketno=<!-- TMPL_VAR NAME="basketno" -->">From a new (empty) record</a></li>
- </ul>
- </form>
- </fieldset>
+ <div id="acqui_basket_add">
+ <h2>Add To Order</h2>
+ <form action="/cgi-bin/koha/acqui/neworderbiblio.pl" method="post">
+ <input type="hidden" name="booksellerid" value="<!-- TMPL_VAR NAME="booksellerid" -->" />
+ <input type="hidden" name="basketno" value="<!-- TMPL_VAR NAME="basketno" -->" />
+ <ul><li><label for="q">From an existing record: </label><input id="q" type="text" size="25" name="q" />
+ <input type="submit" value="Search" /></li>
+ <li><a href="/cgi-bin/koha/acqui/newordersuggestion.pl?booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&basketno=<!-- TMPL_VAR NAME="basketno" -->">From a Suggestion</a></li>
+ <li><a href="/cgi-bin/koha/acqui/neworderempty.pl?booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&basketno=<!-- TMPL_VAR NAME="basketno" -->">From a new (empty) record</a></li>
+ <li><a href="/cgi-bin/koha/acqui/z3950_search.pl?booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&basketno=<!-- TMPL_VAR NAME="basketno" -->">From a z3950 query</a></li>
+ <li><a href="/cgi-bin/koha/acqui/addorderiso2709.pl?booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&basketno=<!-- TMPL_VAR NAME="basketno" -->"> From an imported iso2709 file</a></li>
+ </ul>
+ </form>
+ </div>
<!-- /TMPL_UNLESS -->
+ <!-- /TMPL_UNLESS -->
+<!-- /TMPL_IF -->
<!-- /TMPL_IF -->
</div>
</div>
--
1.6.0.4
More information about the Koha-patches
mailing list