+[% USE raw %]
+[% USE Asset %]
+[% USE Koha %]
+[% USE KohaDates %]
+[% USE Price %]
+[% USE currency = format('%.2f') -%]
+[% PROCESS 'i18n.inc' %]
+[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
-<title>Koha › Acquisitions › [% IF ( date ) %]
- Receipt summary for [% name %] [% IF ( invoice ) %]invoice [% invoice %][% END %] on [% formatteddatereceived %][% ELSE %]Receive orders from [% name %][% END %]</title>
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
+<title>
+ Koha › Acquisitions ›
+ [% IF ( invoiceclosedate ) %]
+ Receipt summary for [% name | html %] [% IF ( invoice ) %]invoice [% invoice | html %][% END %]
+ [% ELSE %]
+ Receive orders from [% name | html %]
+ [% END %]
+</title>
[% INCLUDE 'doc-head-close.inc' %]
-[% INCLUDE 'datatables.inc' %]
-[% INCLUDE 'greybox.inc' %]
-<script type="text/javascript">
-//<![CDATA[
-
- dt_overwrite_html_sorting_localeCompare();
-
- $(document).ready(function(){
- if ( $("#pendingt").length ) {
- var pendingt = $("#pendingt").dataTable($.extend(true, {}, dataTablesDefaults, {
- "bStateSave": true,
- "iCookieDuration": 60*60*24*1000, // 1000 days
- "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
- "aoColumnDefs": [
- { "aTargets": [ 3, 8, 9 ], "bSortable": false, "bSearchable": false },
- ],
- "aoColumns": [
- { "sType": "num-html" },
- { "sType": "num-html" },
- { "sType": "html" },
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- ],
- "sPaginationType": "four_button"
- } ) );
- }
- if ( $("#receivedt").length ) {
- var receivedt = $("#receivedt").dataTable($.extend(true, {}, dataTablesDefaults, {
- "bStateSave": true,
- "iCookieDuration": 60*60*24*1000, // 1000 days
- "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
- "aoColumnDefs": [
- { "aTargets": [ 3, -1 ], "bSortable": false, "bSearchable": false },
- ],
- "aoColumns": [
- { "sType": "num-html" },
- { "sType": "num-html" },
- { "sType": "html" },
- null,
- null,
- null,
- null,
- null,
- null
- ],
- "sPaginationType": "four_button"
- } ) );
- }
-
- });
-
- // Case-insensitive version of jquery's contains function
- jQuery.extend(jQuery.expr[':'], {
- icontains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
- });
-
- // Contains exactly function
- jQuery.extend(jQuery.expr[':'], {
- containsExactly: "$(a).text() == m[3]"
- });
-
-//]]>
-</script>
-<script type="text/javascript">
-//<![CDATA[
- function confirm_delete_item(ordernumber, basketno, biblionumber) {
- var is_confirmed = confirm(_("Are you sure you want to delete this order ?"));
- if (is_confirmed) {
- window.location = "addorder.pl?ordernumber="+ordernumber+"&basketno="+basketno+"&quantity=0&biblionumber="+biblionumber+"&invoiceid=[% invoiceid %]";
- }
- }
-
- function confirm_delete_biblio(ordernumber, basketno, biblionumber) {
- var is_confirmed = confirm(_("Are you sure you want to delete this catalog record and order ?"));
- if (is_confirmed) {
- window.location = "addorder.pl?ordernumber="+ordernumber+"&basketno="+basketno+"&quantity=0&biblionumber="+biblionumber+"&delbiblio=1&invoiceid=[% invoiceid %]";
- }
- }
-//]]>
-</script>
</head>
+
<body id="acq_parcel" class="acq">
[% 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> ›
- [% IF ( datereceived ) %]
- Receipt summary for <i>[% name %]</i>
+ [% IF invoiceclosedate %]
+ Receipt summary for <em>[% name | html %]</em>
[% IF ( invoice ) %]
- <i>[ [% invoice %] ]</i>
+ <em>[ [% invoice | html %] ]</em>
[% END %]
- on <i>[% formatteddatereceived %]</i>
[% ELSE %]
- Receive orders from [% name %]
+ <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid | uri %]">[% name | html %]</a> › Receive orders from [% name | html %]
[% END %]
</div>
-<div id="doc3" class="yui-t2">
-
- <div id="bd">
- <div id="yui-main">
- <div class="yui-b">
- [% IF ( receive_error ) %]
- <div class="dialog alert">
- <h3>Error adding items:</h3>
- <ul>
- [% FOREACH error_loo IN error_loop %]
- <li>[% error_loo.error_param %][% IF ( error_loo.error_duplicate_barcode ) %]Duplicate Barcode[% END %] <!-- todo: other error conditions come here. --></li>
- [% END %]
- </ul>
- </div>
- [% END %]
+
+<div class="main container-fluid">
+ <div class="row">
+ <div class="col-sm-10 col-sm-push-2">
+ <main>
+
+ [% IF ( receive_error ) %]
+ <div class="dialog alert">
+ <h3>Error adding items:</h3>
+ <ul>
+ [% FOREACH error_loo IN error_loop %]
+ <li>[% error_loo.error_param | html %][% IF ( error_loo.error_duplicate_barcode ) %]Duplicate Barcode[% END %] <!-- todo: other error conditions come here. --></li>
+ [% END %]
+ </ul>
+ </div>
+ [% END %]
<h1>
- [% IF ( datereceived ) %]
- Receipt summary for <i>[% name %]</i> [% IF ( invoice ) %] <i> [ [% invoice %] ] </i>[% END %] on <i>[% formatteddatereceived %]</i>
+ [% IF ( invoiceclosedate ) %]
+ Receipt summary for <em>[% name | html %]</em> [% IF ( invoice ) %] <em> [ [% invoice | html %] ] </em>[% END %]
[% ELSE %]
- Receive orders from [% name %]
+ Receive orders from [% name | html %]
[% END %]
</h1>
[% IF ( success_delorder ) %]
<div class="dialog message">The order has been successfully canceled.</div>
[% ELSE %]
- [% IF ( error_delitem ) %]
- <div class="dialog alert">The order has been canceled, although one or more items could not have been deleted.</div>
- [% END %]
- [% IF ( error_delbiblio ) %]
- <div class="dialog alert">The order has been canceled, although the record has not been deleted.</div>
- [% END %]
+ [% IF ( error_delitem ) %]
+ <div class="dialog alert">The order has been canceled, although one or more items could not have been deleted.</div>
+ [% END %]
+ [% IF ( error_delbiblio ) %]
+ <div class="dialog alert">The order has been canceled, although the record has not been deleted.</div>
+ [% END %]
[% END %]
[% IF (error_cancelling_receipt) %]
- <div class="dialog error">
+ <div class="dialog alert">
Cannot cancel receipt. Possible reasons :
<ul>
<li>
- The order line you trying to cancel was created from a partial receipt
+ The order line you are trying to cancel was created from a partial receipt
of another order line which is already received. Try to cancel this
one first and retry.
</li>
<li>
- The order line you trying to cancel was created from a partial receipt
+ The order line you are trying to cancel was created from a partial receipt
of another order line which has been deleted. Cancellation is not
possible.
</li>
[% END %]
[% IF error_invoice_not_known %]
- <div class="dialog error">
+ <div class="dialog alert">
The invoice referenced by this invoiceid does not exist.
</div>
[% END %]
[% UNLESS no_orders_to_display %]
<div id="acqui_receive_summary">
-<p><strong>Invoice number:</strong> [% invoice %] <strong>Received by:</strong> [% loggedinusername %] <strong>On:</strong> [% formatteddatereceived %]</p>
+<p><strong>Invoice number:</strong> [% invoice | html %] <strong>Shipment date:</strong> [% shipmentdate | $KohaDates %]</p>
</div>
[% UNLESS (invoiceclosedate) %]
-<div id="acqui_receive_search">
- <h3>Pending orders</h3>
-
- [% IF ( loop_orders ) %]<table id="pendingt">
- <thead>
- <tr>
- <th>Basket</th>
- <th>Order line</th>
- <th>Summary</th>
- <th>View record</th>
- <th>Quantity</th>
- <th>Unit cost</th>
- <th>Order cost</th>
- <th>Fund</th>
- <th> </th>
- <th> </th>
- </tr>
- </thead>
- <tbody class="filterclass">
- [% FOREACH loop_order IN loop_orders %]
- <tr>
- <td class="basketfilterclass"><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_order.basketno %]">[% loop_order.basketno %]</a></td>
- <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&booksellerid=[% loop_order.booksellerid %]">[% loop_order.ordernumber %]</a></td>
- <td class="summaryfilterclass">
- <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
- [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
- [% IF ( loop_order.isbn ) %] – [% loop_order.isbn %][% END %]
- [% IF ( loop_order.publishercode ) %]<br />Publisher :[% loop_order.publishercode %][% END %]
- [% IF ( loop_order.suggestionid ) %]
- <br/>
- Suggested by: [% loop_order.surnamesuggestedby %][% IF ( loop_order.firstnamesuggestedby ) %], [% loop_order.firstnamesuggestedby %] [% END %]
- (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_order.suggestionid %]&op=show">suggestion #[% loop_order.suggestionid %]</a>)
- [% END %]
- <br />
- [% IF ( loop_order.notes ) %]
- <p class="ordernote"><strong>Note: </strong>[% loop_order.notes|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]">Change note</a>]</p>
- [% ELSE %]
- [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]">Add note</a>]
- [% END %]
- </td>
- <td><a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% loop_order.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&id=[% loop_order.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">Card</a></td>
- <td>[% loop_order.quantity %]</td>
- <td>[% loop_order.ecost %]</td>
- <td>[% loop_order.ordertotal %]</td>
- <td>[% loop_order.budget_name %]</td>
- <td>
- <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&invoiceid=[% invoiceid %]">Receive</a>
- </td>
- <td>
- [% IF ( loop_order.left_holds_on_order ) %]
- <span class="button" title="Can't delete order, ([% loop_order.holds_on_order %]) holds are linked with this order cancel holds first">Can't delete order</span><br>
- [% ELSE %]
- <a href="javascript:confirm_delete_item([% loop_order.ordernumber %], [% loop_order.basketno %], [% loop_order.biblionumber %])" class="button">Delete order</a><br>
- [% END %]
- [% IF ( loop_order.can_del_bib ) %]
- <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %], [% loop_order.basketno %], [% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br>
- [% ELSE %]
- <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
- [% END %]
- [% IF ( loop_order.left_item ) %]
- <b title="Can't delete catalog record, because of [% loop_order.items %] existing item(s)" >[% loop_order.items %] item(s) left</b><br>
- [% END %]
- [% IF ( loop_order.left_biblio ) %]
- <b title="Can't delete catalog record, delete other orders linked to it first">[% loop_order.biblios %] order(s) left</b><br>
- [% END %]
- [% IF ( loop_order.left_subscription ) %]
- <b title="Can't delete catalog record, delete subscriptions first">[% loop_order.subscriptions %] subscription(s) left</b><br>
- [% END %]
- [% IF ( loop_order.left_holds ) %]
- <b title="Can't delete catalog record or order, cancel holds first">[% loop_order.holds %] hold(s) left</b>
- [% END %]
- </td>
+ <div id="acqui_receive_search">
+ <h3>Pending orders</h3>
+ <table id="pending_orders" class="table table-bordered table-striped">
+ <thead>
+ <tr>
+ <th>Basket</th>
+ <th>Basket group</th>
+ <th>Order line</th>
+ <th>Summary</th>
+ <th>More</th>
+ <th>Replacement price</th>
+ <th>Quantity</th>
+ <th>Unit cost</th>
+ <th>Order cost</th>
+ <th>Fund</th>
+ <th> </th>
+ <th> </th>
</tr>
- [% END %]
- </tbody>
+ </thead>
</table>
- [% ELSE %]There are no pending orders.[% END %]
</div>
[% ELSE %]
<p>
Invoice is closed, so you can't receive orders anymore.
- <a href="/cgi-bin/koha/acqui/invoice.pl?op=reopen&invoiceid=[% invoiceid %]&referer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]">Reopen it</a>.
+ [% IF CAN_user_acquisition_reopen_closed_invoices %]
+ <a href="/cgi-bin/koha/acqui/invoice.pl?op=reopen&invoiceid=[% invoiceid | uri %]&referer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid | uri %]">Reopen it</a>.
+ [% END %]
</p>
[% END %]
<div id="acqui_receive_receivelist">
<h3>Already received</h3>
-
[% IF ( loop_received ) %]
<form action="/cgi-bin/koha/acqui/parcel.pl" method="get" name="orderform">
<table id="receivedt">
- <thead>
- <tr>
- <th>Basket</th>
- <th>Order line</th>
- <th>Summary</th>
- <th>View record</th>
- <th>Quantity</th>
- <th>Est cost</th>
- <th>Actual cost</th>
- <th>TOTAL</th>
- <th></th>
- </tr>
- </thead>
+ <thead>
+ <tr>
+ <th>Basket</th>
+ <th>Basket group</th>
+ <th>Order line</th>
+ <th title="Item holds / Total holds">Holds</th>
+ <th>Summary</th>
+ <th>More</th>
+ <th>Replacement price</th>
+ <th>Quantity</th>
+ <th>Fund</th>
+ <th>Est cost</th>
+ <th>Actual cost</th>
+ <th>TOTAL</th>
+ <th></th>
+ </tr>
+ </thead>
<tfoot>
+ [% FOREACH key IN subtotal_for_funds.keys.sort %]
+ <tr>
+ [% IF invoiceincgst %]
+ <td colspan="6" class="total">(Tax inc.)</td>
+ [% ELSE %]
+ <td colspan="6" class="total">(Tax exc.)</td>
+ [% END %]
+ <td colspan="3"><em>Subtotal for</em> [% key | html %]</td>
+ <td>[% subtotal_for_funds.$key.ecost | $Price %]</td>
+ <td>[% subtotal_for_funds.$key.unitprice | $Price %]</td>
+ <td> </td>
+ <td> </td>
+ </tr>
+ [% END %]
<tr>
- <th colspan="7" class="total">Total tax exc.</th>
- <th>[% total_gste %]</th>
+ <th colspan="11" class="total">Total tax exc.</th>
+ <th>[% total_tax_excluded | $Price %]</th>
<th></th>
</tr>
[% FOREACH book_foot IN book_foot_loop %]
<tr>
- <th colspan="7">Total (GST [% book_foot.gstrate * 100 | format ("%.1f") %]%)</th>
- <th>[% book_foot.value %]</th>
+ <th colspan="11">Total (GST [% book_foot.tax_rate * 100 | html %]%)</th>
+ <th>[% book_foot.tax_value | $Price %]</th>
<th></th>
</tr>
[% END %]
<tr>
- <th colspan="7" class="total">Total tax inc.</th>
- <th>[% total_gsti %]</th>
+ <th colspan="11" class="total">Total tax inc.</th>
+ <th>[% total_tax_included | $Price %]</th>
<th></th>
</tr>
</tfoot>
- <tbody class="filterclass">
- [% FOREACH loop_receive IN loop_received %]
+ <tbody class="filterclass">
+ [% FOREACH order IN loop_received %]
<tr>
- <td><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_receive.basketno %]">[% loop_receive.basketno %]</a></td>
- <td><a href="neworderempty.pl?ordernumber=[% loop_receive.ordernumber %]&booksellerid=[% booksellerid %]">[% loop_receive.ordernumber %]</a></td>
- <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_receive.biblionumber %]">[% loop_receive.title |html %]</a>
- [% IF ( loop_receive.author ) %] / [% loop_receive.author %][% END %]
- [% IF ( loop_receive.isbn ) %] - [% loop_receive.isbn %][% END %]
- [% IF ( loop_receive.publishercode ) %]<br />Publisher :[% loop_receive.publishercode %][% END %]
- [% IF ( loop_receive.suggestionid ) %]
+ <td><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% order.basketno | uri %]"> [% order.basketname | html %] ([% order.basketno | html %])</a></td>
+ <td>
+ [% IF order.basketgroupid %]
+ <a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&booksellerid=[% booksellerid | uri %]">[% order.basketgroupname | html %] ([% order.basketgroupid | html %])</a>
+ [% ELSE %]
+ No basket group
+ [% END %]
+ </td>
+ <td>
+ <a href="neworderempty.pl?ordernumber=[% order.ordernumber | uri %]&booksellerid=[% booksellerid | uri %]">[% order.ordernumber | html %]</a>
+ [% IF (order.parent_ordernumber && (order.parent_ordernumber != order.ordernumber)) %]
+ (<a href="neworderempty.pl?ordernumber=[% order.parent_ordernumber | uri %]&booksellerid=[% booksellerid | uri %]" title="Original order line">[% order.parent_ordernumber | html %]</a>)
+ [% END %]
+ </td>
+ <td>
+ [% IF order.total_holds > 0 %]
+ [% IF order.item_holds > 0 %]
+ <span class="error"><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% order.biblionumber | uri %]">[% order.item_holds | html %]</a></span>
+ [% ELSE %]
+ 0
+ [% END %]
+ /
+ <span class="error"><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% order.biblionumber | uri %]">[% order.total_holds | html %]</a></span>
+ [% ELSE %]
+ 0
+ [% END %]
+ </td>
+ <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% order.biblionumber | uri %]">[% order.title | html %]</a>
+ [% IF ( order.author ) %] / [% order.author | html %][% END %]
+ [% IF ( order.isbn ) %] - [% order.isbn | html %][% END %]
+ [% IF ( order.publishercode ) %]
+ <br />Publisher: [% order.publishercode | html %]
+ [%- IF ( order.publicationyear > 0) -%], [% order.publicationyear | html %]
+ [%- ELSIF ( order.copyrightdate > 0) -%] [% order.copyrightdate | html %]
+ [% END %]
+ [% END %]
+ [% IF ( order.suggestionid ) %]
<br/>
- Suggested by: [% loop_receive.surnamesuggestedby %][% IF ( loop_receive.firstnamesuggestedby ) %], [% loop_receive.firstnamesuggestedby %] [% END %]
- (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_receive.suggestionid %]&op=show">suggestion #[% loop_receive.suggestionid %]</a>)
+ Suggested by: [% order.surnamesuggestedby | html %][% IF ( order.firstnamesuggestedby ) %], [% order.firstnamesuggestedby | html %] [% END %]
+ (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% order.suggestionid | uri %]&op=show">suggestion #[% order.suggestionid | html %]</a>)
+ [% END %]
+ <br />
+ [% IF ( order.order_internalnote ) %]
+ <p class="ordernote"><strong>Internal note: </strong>[% order.order_internalnote | html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% order.ordernumber | uri %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid | uri %]&type=internal">Change internal note</a>]</p>
+ [% ELSE %]
+ [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% order.ordernumber | uri %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid | uri %]&type=internal">Add internal note</a>]
+ [% END %]
+ [% IF ( order.order_vendornote ) %]
+ <p class="ordernote"><strong>Vendor note: </strong>[% order.order_vendornote | html %]</p>
+ [% ELSE %]
+ [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% order.ordernumber | uri %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid | uri %]&type=vendor">Add vendor note</a>]
[% END %]
</td>
- <td><a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% loop_receive.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&id=[% loop_receive.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">Card</a></td>
- <td>[% loop_receive.quantityreceived %]</td>
- <td>[% loop_receive.ecost %]</td>
- <td>[% loop_receive.unitprice %]</td>
- <td>[% loop_receive.total %]</td>
<td>
- [% IF (loop_receive.cannot_cancel) %]
+ <a href="/cgi-bin/koha/acqui/showorder.pl?ordernumber=[% order.ordernumber | uri %]" class="previewData">[% tp('noun', 'Order') | html %]</a><br>
+ <a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% order.biblionumber | uri %]" class="previewData">MARC</a><br>
+ <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&id=[% order.biblionumber | uri %]" class="previewData">Card</a>
+ </td>
+ <td>[% order.replacementprice | $Price %]</td>
+ <td>[% order.quantityreceived | html %]</td>
+ <td>[% order.budget.budget_name | html %]</td>
+ <td>[% order.ecost | $Price %]</td>
+ <td>[% order.unitprice | $Price %]</td>
+ <td>[% order.total | $Price %]</td>
+ <td>
+ [% IF loop_receive.cannot_cancel or ( order.basket.effective_create_items == "receiving" and loop_receive.holds > 0 ) %]
+ [% IF loop_receive.cannot_cancel %]
[% span_title = BLOCK %]
Cannot cancel receipt of this order line because it
was created from a partial receipt of order line no.
- [% loop_receive.parent_ordernumber %], which is
+ [% order.parent_ordernumber | html %], which is
already received. Try cancelling this one first and
retry.
[% END %]
- <span title="[% span_title | collapse %]">
- Can't cancel receipt
- </span>
+ [% ELSE %]
+ [%# FIXME Here we block the cancellation if holds exist. Actually it could be possible if items will be exist after the deletion %]
+ [%# Some additional checks should be added in the pl file %]
+ [% span_title = BLOCK %]
+ Cannot cancel receipt of this order line because at least one reservation exists on the records.
+ [% END %]
+ [% END %]
+ <span title="[% span_title | collapse | html %]">
+ Can't cancel receipt
+ </span>
[% ELSE %]
- <a href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid %]&op=cancelreceipt&ordernumber=[% loop_receive.ordernumber %]">Cancel receipt</a>
+ <a href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid | uri %]&op=cancelreceipt&ordernumber=[% order.ordernumber | uri %]">Cancel receipt</a>
[% END %]
</td>
</tr>
- [% END %]
- </tbody>
+ [% END %]
+ </tbody>
</table>
</form>
- [% ELSE %]There are no received orders.[% END %]
+
+ [% ELSE %]There are no received orders.[% END %]
+</div>
+
+<div id="dataPreview" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="dataPreviewLabel" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
+ <h3 id="dataPreviewLabel">MARC preview</h3>
+ </div>
+ <div class="modal-body">
+ <div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
+ </div>
+ </div>
+ </div>
</div>
[% IF (invoiceclosedate) %]
- <a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% invoiceid %]">View invoice</a>
+ <a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% invoiceid | uri %]">View invoice</a>
[% ELSE %]
<form action="/cgi-bin/koha/acqui/invoice.pl" method="get">
- <input type="hidden" name="invoiceid" value="[% invoiceid %]" />
+ <input type="hidden" name="invoiceid" value="[% invoiceid | html %]" />
<fieldset class="action">
<input type="submit" value="Finish receiving" />
</fieldset>
[% END %]
-</div>
-</div>
+</main>
+</div> <!-- /.col-sm-10.col-sm-push-2 -->
+<div class="col-sm-2 col-sm-pull-10">
+<aside>
-<div class="yui-b">
-<form action="/cgi-bin/koha/acqui/parcel.pl" id="filterform" method="post">
- <fieldset class="brief">
+[% INCLUDE 'acquisitions-menu.inc' %]
+ </aside>
+</div> <!-- /.col-sm-2.col-sm-pull-10 -->
+</div> <!-- /.row -->
- <h4>Filter</h4>
+[% MACRO jsinclude BLOCK %]
+ [% Asset.js("js/acquisitions-menu.js") | $raw %]
+ [% INCLUDE 'datatables.inc' %]
+ [% Asset.js("lib/jquery/plugins/jquery.dataTables.columnFilter.js") | $raw %]
+ [% Asset.js("lib/jquery/plugins/jquery.cookie.min.js") | $raw %]
+ <style>#dataPreview { width : 80%; } @media (max-width: 767px) { #dataPreview { margin: 0; width : auto; } }</style>
+ <script>
+ dt_overwrite_html_sorting_localeCompare();
+ var columns_filter = {};
- <ol>
+ function _escape_str(s){
+ return s != null ? s.escapeHtml() : "";
+ }
+ function _escape_price(p){
+ return p != null ? p.escapeHtml().format_price() : "";
+ }
- <li>
- <label for="summaryfilter">ISBN, author or title :</label>
- <input type="text" name="summaryfilter" id="summaryfilter" value="[% summaryfilter %]"/>
- </li>
+ $(document).ready(function(){
- <li>
- <label for="basketfilter">Basket :</label>
- <input type="text" name="basketfilter" id="basketfilter" value="[% basketfilter %]"/>
- </li>
+ if ( $("#receivedt").length ) {
+ var receivedt = $("#receivedt").dataTable($.extend(true, {}, dataTablesDefaults, {
+ "bStateSave": true,
+ "iDisplayLength": 10,
+ "aLengthMenu": [[5, 10, 20, 50, 100, -1], [5, 10, 20, 50, 100, _("All")]],
+ "aoColumnDefs": [
+ { "aTargets": [ 5, -1 ], "bSortable": false, "bSearchable": false },
+ ],
+ "aoColumns": [
+ { "sType": "html" },
+ { "sType": "html" },
+ { "sType": "html" },
+ { "sType": "num-html" },
+ { "sType": "anti-the" },
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null
+ ],
+ "sPaginationType": "full"
+ }));
+ }
- <li>
- <label for="orderfilter">Order line :</label>
- <input type="text" name="orderfilter" id="orderfilter" value="[% orderfilter %]"/>
- </li>
- [% IF (UNIMARC) %]
- <li>
- <label for="eanfilter">EAN :</label>
- <input type="text" name="eanfilter" id="eanfilter" value="[% eanfilter %]"/>
- </li>
- [% END %]
- </ol>
- <fieldset class="action">
- <input type="hidden" value="search" name="op" />
- <input type="hidden" value="[% invoiceid %]" name="invoiceid" />
- <input type="submit" value="Filter" />
- <a href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid %]">Clear</a>
- </fieldset>
+ var pending_orders_table = $("#pending_orders").api({
+ "ajax": {
+ "url": '/api/v1/acquisitions/orders?only_active=1'
+ },
+ "header_filter": true,
+ "embed": [
+ "basket.basket_group",
+ "biblio.active_orders+count",
+ "biblio.holds+count",
+ "biblio.items+count",
+ "biblio.suggestions.suggester",
+ "fund",
+ "current_item_level_holds+count",
+ "items"
+ ],
+ "stateSave": true, // remember state on page reload
+ "drawCallback": function (settings) {
+ $(".previewData").on("click", function(e){
+ e.preventDefault();
+ var ltitle = $(this).text();
+ var page = $(this).attr("href");
+ $("#dataPreviewLabel").text(ltitle);
+ $("#dataPreview .modal-body").load(page + " div");
+ $('#dataPreview').modal({show:true});
+ });
+ },
+ "columns": [
+ { "data": "basket.name",
+ "searchable": true,
+ "orderable": true,
+ "render": function(data, type, row, meta) {
+ if (type != 'display') return _escape_str(data);
+ return "<a href=\"/cgi-bin/koha/acqui/basket.pl?basketno=" + encodeURIComponent(row.basket.basket_id) + "\">" + data.escapeHtml() + " (" + row.basket.basket_id.escapeHtml() + ")</a>";
+ }
+ },
+ { "data": "basket.basket_group.name",
+ "orderable": true,
+ "render": function(data, type, row, meta) {
+ if ( type != 'display' ) {
+ return _escape_str(data);
+ }
+ if ( row.basket.basket_group_id == null ) {
+ return _("No basket group");
+ }
+ else {
+ return "<a href=\"/cgi-bin/koha/acqui/basketgroup.pl?op=add&booksellerid="
+ + encodeURIComponent(row.basket.vendor_id) + "&basketgroupid="
+ + encodeURIComponent(row.basket.basket_group_id) + "\">"
+ + row.basket.basket_group.name.escapeHtml() + " (" + row.basket.basket_group_id.escapeHtml() + ")</a>";
+ }
+ }
+ },
+ {
+ "data": "order_id",
+ "render": function(data, type, row, meta) {
+ if (type != 'display') return _escape_str(data);
+ return "<a href=\"neworderempty.pl?ordernumber="+encodeURIComponent(data)+"&booksellerid="+encodeURIComponent(row.basket.vendor_id)+"\">"+data.escapeHtml()+"</a>";
+ }
+ },
+ {
+ [% SET summary_fields = "biblio.author:biblio.title:biblio.isbn:biblio.publisher:me.internal_note:me.vendor_note" %]
+ [% IF Koha.Preference('marcflavour')=='UNIMARC' %][% SET summary_fields = summary_fields _ ":biblio.ean" %][% END %]
+ "data": "[% summary_fields | html %]",
+ "render": function(data, type, row, meta) {
+ var result = '';
+ if ( row && row.biblio_id != null ) {
+ result = "<p><a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber="+encodeURIComponent(row.biblio_id)+"\">"+row.biblio.title.escapeHtml()+"</a>";
+ if ( row.biblio.author != null )
+ result += _(" by ") + row.biblio.author.escapeHtml();
+ if ( row.biblio.isbn != null )
+ result += " – " + row.biblio.isbn.escapeHtml();
+ [% IF Koha.Preference('marcflavour')=='UNIMARC' %]
+ if ( row.biblio.ean != null )
+ result += " – EAN:" + row.biblio.ean.escapeHtml();
+ [% END %]
+ if ( row.biblio.publisher != null ) {
+ result += "<br/>" + _("Publisher: ") + row.biblio.publisher.escapeHtml();
+ if ( row.biblio.publication_year != null ) {
+ result += ", " + row.biblio.publication_year.escapeHtml();
+ }
+ else if ( row.biblio.copyright_date != null ) {
+ result += row.biblio.copyright_date.escapeHtml();
+ }
+ }
+ var suggestions = row.biblio.suggestions;
+ if ( suggestions != null && suggestions.length > 0 ) {
+ var suggestion = suggestions[0];
+ if ( suggestion.suggester != null ) {
+ var suggester = suggestion.suggester;
+ var suggested_by = [];
+ if ( suggester.surname != null ) {
+ suggested_by.push(suggester.surname.escapeHtml());
+ }
+ if ( suggester.firstname != null ) {
+ suggested_by.push(suggester.firstname.escapeHtml());
+ }
+ result += "<br/>" + _("Suggested by: ") +
+ '<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid='
+ + encodeURIComponent(suggestion.suggestionid)
+ + '&op=show">'
+ + suggested_by.join(", ")
+ + " (#" + suggestions[0].suggestionid.escapeHtml() + ")</a>"; // FIXME: could be changed if we allow matching multiple suggestions
+ }
+ }
+ result += '</p>';
+ }
+
+ var internal_note = row.internal_note;
+ if ( internal_note != null && internal_note != '' ) {
+ result += '<p class="ordernote"><strong>'
+ + _("Internal note: ")
+ + '</strong>' + internal_note.escapeHtml()
+ + ' [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber='
+ + encodeURIComponent(row.order_id) + '&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid | uri %]'
+ + '&type=internal">' + _("Change internal note") + '</a>]</p>';
+ }
+ else {
+ result += ' [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber='
+ + encodeURIComponent(row.order_id) + '&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid | uri %]'
+ + '&type=internal">' + _("Add internal note") + '</a>]';
+ }
+
+ var vendor_note = row.vendor_note;
+ if ( vendor_note != null && vendor_note != '' ) {
+ result += '<p class="ordernote"><strong>'
+ + _("Vendor note: ")
+ + '</strong>' + vendor_note.escapeHtml() + '</p>';
+ }
+ else {
+ result += ' [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber='
+ + encodeURIComponent(row.order_id) + '&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid | uri %]'
+ + '&type=vendor">' + _("Add vendor note") + '</a>]';
+ }
+
+ return result;
+ },
+ "orderable": false,
+ },
+ {
+ "data": "",
+ "render": function(data, type, row, meta) {
+ var result = '<a href="/cgi-bin/koha/acqui/showorder.pl?ordernumber=' + encodeURIComponent(row.order_id) + '" class="previewData">' + _("Order") + '</a><br>'
+ + '<a href="/cgi-bin/koha/catalogue/showmarc.pl?id=' + encodeURIComponent(row.biblio_id) + '" class="previewData">' + _("MARC") + '</a><br>'
+ + '<a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&id=' + encodeURIComponent(row.biblio_id) + '" class="previewData">' + _("Card") + '</a>';
+ return result;
+ },
+ "orderable": false,
+ "searchable": false
+ },
+ {
+ "data": "replacement_price",
+ "render": function(data, type, row, meta) {
+ return (row.replacement_price).format_price();
+ },
+ },
+ {
+ "data": "quantity",
+ "orderable": true
+ },
+ {
+ "data": "ecost",
+ "render": function(data, type, row, meta) {
+ return (row.ecost).format_price();
+ },
+ },
+ {
+ "data": "",
+ "render": function(data, type, row, meta) {
+ return (row.quantity * row.ecost).format_price();
+ },
+ "orderable": false, // FIXME: How can we do it in DBIC?
+ "searchable": false
+ },
+ {
+ "data": "fund.name",
+ "render": function(data, type, row, meta) {
+ if (type != 'display') return data.escapeHtml();
+ return row.fund.name.escapeHtml();
+ }
+ },
+ {
+ "data": "",
+ "render": function(data, type, row, meta) {
+ return '<a href="orderreceive.pl?ordernumber='
+ + encodeURIComponent(row.order_id) + '&invoiceid=[% invoiceid | uri %]' + '">'
+ + _("Receive") + '</a><br/>'
+ + '<a href="#" onclick="transfer_order_popup(' + row.order_id.escapeHtml() + '); return false;">'
+ + _("Transfer") + '</a>';
+ },
+ "orderable": false,
+ "searchable": false
+ },
+ {
+ "data": "",
+ "render": function(data, type, row, meta) {
+ var result = "";
+
+ if ( row.current_holds_count > 0 ) {
+ result += '<span class="button" title="'
+ + _("Can't cancel order, (%s) holds are linked with this order. Cancel holds first").format( row.holds_count.escapeHtml() ) + '">'
+ + _("Can't cancel order") + '</span><br/>';
+ }
+ else {
+ result += '<a href="/cgi-bin/koha/acqui/cancelorder.pl?ordernumber='
+ + encodeURIComponent(row.order_id)
+ + '&biblionumber=' + encodeURIComponent(row.biblio_id)
+ + '&referrer=/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid | uri %]">'
+ + _("Cancel order") + '</a><br/>';
+ }
+
+ if ( row.biblio != null ) {
+ if ( row.biblio.items_count - row.items.length > 0 ||
+ row.biblio.active_orders_count > 1 ||
+ row.biblio.subscriptions_count > 0 ||
+ row.biblio.holds_count > 0 ) { // biblio can be deleted
+ result += '<span class="button" title="'
+ + _("Can't delete catalog record, see constraints below") + '">'
+ + _("Can't cancel order and delete catalog record") + '</span><br>';
+ }
+ else {
+ result += '<a href="/cgi-bin/koha/acqui/cancelorder.pl?ordernumber='
+ + encodeURIComponent(row.order_id) + '&biblionumber=' + encodeURIComponent(row.biblio_id)
+ + '&del_biblio=1&referrer="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[$ invoiceid | uri ]">'
+ + _("Cancel order and catalog record") + '</a><br/>';
+ }
+
+ if ( row.biblio.items_count - row.items.length > 0 ) {
+ result += '<strong title="'
+ + _("Can't delete catalog record, because of %s existing item(s)").format(row.items.length)
+ +'">' + (row.biblio.items_count - row.items.length) + _(" item(s) left") + '</strong><br/>';
+ }
+
+ if ( row.biblio.active_orders_count > 1 ) {
+ result += '<strong title="'
+ + _("Can't delete catalog record, delete other orders linked to it first") + '">'
+ + (row.biblio.active_orders_count - 1) + _(" order(s) left") + '</strong><br/>';
+ }
+
+ if ( row.biblio.subscriptions_count > 0 ) {
+ result += '<strong title="' + _("Can't delete catalog record, delete subscriptions first") + '">'
+ + _("%s subscription(s) left").format(row.biblio.subscriptions_count)
+ + '</strong><br>';
+ }
+
+ if ( row.biblio.holds_count > 0 ) {
+ result += '<strong title="' + _("Can't delete catalog record or order, cancel holds first") + '">'
+ + _("%s hold(s) left").format(row.biblio.holds_count) + '</strong>';
+ }
+ }
+
+ return result;
+ },
+ "orderable": false,
+ "searchable": false
+ }
+ ]
+ }, {}, 1, {"basket.vendor_id": [% booksellerid | html %]});
+
+ $(".previewData").on("click", function(e){
+ e.preventDefault();
+ var ltitle = $(this).text();
+ var page = $(this).attr("href");
+ $("#dataPreviewLabel").text(ltitle);
+ $("#dataPreview .modal-body").load(page + " div");
+ $('#dataPreview').modal({show:true});
+ });
+
+ $("#dataPreview").on("hidden.bs.modal", function(){
+ $("#dataPreviewLabel").html("");
+ $("#dataPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface | html %]/[% theme | html %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
+ });
+ });
+
+ // Case-insensitive version of jquery's contains function
+ jQuery.extend(jQuery.expr[':'], {
+ icontains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
+ });
+
+ // Contains exactly function
+ jQuery.extend(jQuery.expr[':'], {
+ containsExactly: "$(a).text() == m[3]"
+ });
+
+ function transfer_order_popup(ordernumber) {
+ var url = "/cgi-bin/koha/acqui/transferorder.pl?"
+ + "ordernumber=" + ordernumber
+ window.open(url, 'TransferOrder');
+ }
+ </script>
+[% END %]
- </fieldset>
- </form>
-[% INCLUDE 'acquisitions-menu.inc' %]
-</div>
-</div>
[% INCLUDE 'intranet-bottom.inc' %]
-