Owen Leonard
6c7c97f67c
DataTables are used on enough pages in the staff client that it doesn't make sense to put inclusion of the CSS into each template where it is needed. This patch moves includes of datatables.css from individual templates into the global header file. To test, apply the patch and view various pages which have DataTables. View various styles of DataTables, e.g. - Full pagination, like item search results - Four-button, like Saved SQL reports Everything should look the same as it was. Signed-off-by: Jose-Mario Monteiro-Santos <jose-mario.monteiro-santos@inLibro.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
379 lines
19 KiB
Text
379 lines
19 KiB
Text
[% USE raw %]
|
|
[% USE Asset %]
|
|
[% USE KohaDates %]
|
|
[% USE Branches %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Acquisitions › Invoices</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
|
|
</head>
|
|
|
|
<body id="acq_invoices" 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> › Invoices</div>
|
|
|
|
<div class="main container-fluid">
|
|
<div class="row">
|
|
<div class="col-sm-10 col-sm-push-2">
|
|
<main>
|
|
|
|
<h1>Invoices</h1>
|
|
[% IF ( do_search ) %]
|
|
[% IF invoices %]
|
|
<label for="show_only_subscription">
|
|
<input type="checkbox" style="vertical-align: middle;" id="show_only_subscription" />
|
|
Show only subscriptions
|
|
</label>
|
|
<table id="resultst">
|
|
<thead>
|
|
<tr>
|
|
<th> </th>
|
|
<th> </th>
|
|
<th>Invoice no.</th>
|
|
<th>Vendor</th>
|
|
<th class="title-string">Shipment date</th>
|
|
<th class="title-string">Billing date</th>
|
|
<th>Received bibliographic records</th>
|
|
<th>Received items</th>
|
|
<th>Status</th>
|
|
<th> </th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH invoice IN invoices %]
|
|
<tr data-invoiceid="[% invoice.invoiceid | html %]" data-booksellerid="[% invoice.booksellerid | html %]" data-shipmentdate="[% invoice.shipmentdate | $KohaDates %]" data-billingdate="[% invoice.billingdate | $KohaDates %]" data-shipmentcost="[% invoice.shipmentcost | html %]" data-shipment_budgetid="[% invoice.shipmentcost_budgetid | html %]" data-closedate="[% invoice.closedate | $KohaDates %]">
|
|
<td>[% invoice.is_linked_to_subscriptions | html %]</td>
|
|
<td><input type="checkbox" class="select-invoice" value="[% invoice.invoiceid | html %]" /></td>
|
|
<td><a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% invoice.invoiceid | uri %]">[% invoice.invoicenumber | html %]</a></td>
|
|
<td><a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% invoice.booksellerid | uri %]">[% invoice.suppliername | html %]</a></td>
|
|
<td>
|
|
[% IF invoice.shipmentdate %]
|
|
<span title="[% invoice.shipmentdate | html %]">[% invoice.shipmentdate | $KohaDates %]</span>
|
|
[% ELSE %]
|
|
<span title="0000-00-00"></span>
|
|
[% END %]
|
|
</td>
|
|
<td>
|
|
[% IF invoice.billingdate %]
|
|
<span title="[% invoice.billingdate | html %]">[% invoice.billingdate | $KohaDates %]</span>
|
|
[% ELSE %]
|
|
<span title="0000-00-00"></span>
|
|
[% END %]
|
|
</td>
|
|
<td>[% invoice.receivedbiblios | html %]</td>
|
|
<td>[% invoice.receiveditems | html %]</td>
|
|
<td>
|
|
[% IF invoice.closedate %]
|
|
Closed on [% invoice.closedate | $KohaDates %]
|
|
[% ELSE %]
|
|
Open
|
|
[% END %]
|
|
</td>
|
|
<td>
|
|
|
|
<div class="dropdown dropup">
|
|
<a class="btn btn-default btn-xs dropdown-toggle" id="invoiceactions[% invoice.invoiceid | html %]" role="button" data-toggle="dropdown" href="#">
|
|
Actions <b class="caret"></b>
|
|
</a>
|
|
<ul class="dropdown-menu pull-right" role="menu" aria-labelledby="invoiceactions[% invoice.invoiceid | html %]">
|
|
<li><a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% invoice.invoiceid | uri %]"><i class="fa fa-search"></i> Details</a></li>
|
|
[% IF invoice.closedate %]
|
|
<li><a href="invoice.pl?op=reopen&invoiceid=[% invoice.invoiceid | uri %]&referer=/cgi-bin/koha/acqui/invoices.pl%3Fop=do_search%26invoicenumber=[% invoicenumber | uri %]%26supplier=[% booksellerid | uri %]%26shipmentdatefrom=[% shipmentdatefrom | $KohaDates %]%26shipmentdateto=[% shipmentdateto | $KohaDates %]%26billingdatefrom=[% billingdatefrom | $KohaDates %]%26billingdateto=[% billingdateto | $KohaDates %]%26isbneanissn=[% isbneanissn | uri %]%26title=[% title | uri %]%26author=[% author | uri %]%26publisher=[% publisher | uri %]%26publicationyear=[% publicationyear | uri %]%26branch=[% branch | uri %]"><i class="fa fa-refresh"></i> Reopen</a></li>
|
|
[% ELSE %]
|
|
<li><a href="invoice.pl?op=close&invoiceid=[% invoice.invoiceid | uri %]&referer=/cgi-bin/koha/acqui/invoices.pl%3Fop=do_search%26invoicenumber=[% invoicenumber | uri %]%26supplier=[% booksellerid | uri %]%26shipmentdatefrom=[% shipmentdatefrom | $KohaDates %]%26shipmentdateto=[% shipmentdateto | $KohaDates %]%26billingdatefrom=[% billingdatefrom | $KohaDates %]%26billingdateto=[% billingdateto | $KohaDates %]%26isbneanissn=[% isbneanissn | uri %]%26title=[% title | uri %]%26author=[% author | uri %]%26publisher=[% publisher | uri %]%26publicationyear=[% publicationyear | uri %]%26branch=[% branch | uri %]"><i class="fa fa-times-circle"></i> Close</a></li>
|
|
[% END %]
|
|
[% UNLESS invoice.receivedbiblios || invoice.receiveditems %]
|
|
<li><a href="invoice.pl?op=delete&invoiceid=[% invoice.invoiceid | uri %]&referer=/cgi-bin/koha/acqui/invoices.pl%3Fop=do_search%26invoicenumber=[% invoicenumber | uri %]%26supplier=[% booksellerid | uri %]%26shipmentdatefrom=[% shipmentdatefrom | $KohaDates %]%26shipmentdateto=[% shipmentdateto | $KohaDates %]%26billingdatefrom=[% billingdatefrom | $KohaDates %]%26billingdateto=[% billingdateto | $KohaDates %]%26isbneanissn=[% isbneanissn | uri %]%26title=[% title | uri %]%26author=[% author | uri %]%26publisher=[% publisher | uri %]%26publicationyear=[% publicationyear | uri %]%26branch=[% branch | uri %]" class="delete_invoice"><i class="fa fa-trash"></i> Delete</a></li>
|
|
[% END %]
|
|
</ul>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
<a class="submit" id="merge" href="#merge_invoices">Merge selected invoices</a>
|
|
<div id="merge_invoices">
|
|
<form id="merge_invoice_form" action="/cgi-bin/koha/acqui/invoice.pl" method="post">
|
|
<fieldset class="rows">
|
|
<ol>
|
|
<li><h2>Merge invoices</h2></li>
|
|
<li><table id="merge_table">
|
|
<thead><tr><th>Invoice no.</th><th>Shipment date</th><th>Billing date</th><th>Shipment cost</th></tr></thead>
|
|
<tbody>
|
|
</tbody>
|
|
</table></li>
|
|
<li><label for="merge_invoicenumber" class="required">Invoice number:</label>
|
|
<input type="text" size="10" id="merge_invoicenumber" name="invoicenumber" value="" class="required" required="required" />
|
|
<span class="required">Required</span>
|
|
</li>
|
|
<li><label for="merge_shipmentdate">Shipment date:</label>
|
|
<input type="text" size="10" id="merge_shipmentdate" name="shipmentdate" value="" class="datepicker" /></li>
|
|
|
|
<li><label for="merge_billingdate">Billing date:</label>
|
|
<input type="text" size="10" id="merge_billingdate" name="billingdate" value="" class="datepicker" /></li>
|
|
|
|
<li><label for="merge_shipmentcost">Shipment cost:</label>
|
|
<input type="text" size="10" id="merge_shipmentcost" name="shipmentcost" value="" /></li>
|
|
<li><label for="merge_shipment_budgetid">Fund:</label>
|
|
<select id="merge_shipment_budgetid" name="shipment_budget_id">
|
|
<option value="">No fund</option>
|
|
[% FOREACH budget IN budgets_loop %]
|
|
<option value="[% budget.budget_id | html %]">[% budget.budget_name | html %]
|
|
</option>
|
|
[% END %]
|
|
</select></li>
|
|
|
|
<li><span class="label">Status:</span> <span id="merge_status"></span></li>
|
|
<li><input type="submit" value="Merge" /></li>
|
|
</ol>
|
|
<input type="hidden" name="op" value="mod" />
|
|
<input type="hidden" id="merge_invoiceid" name="invoiceid" value="" />
|
|
</fieldset>
|
|
</form>
|
|
</div>
|
|
[% ELSE %]
|
|
<p>Sorry, but there are no results for your search.</p>
|
|
<p>Search was:
|
|
<ul>
|
|
[% IF ( invoicenumber ) %]
|
|
<li>Invoice no.: [% invoicenumber | html %]</li>
|
|
[% END %]
|
|
[% IF booksellerid %]
|
|
<li>Vendor: [% suppliername | html %]</li>
|
|
[% END %]
|
|
[% IF shipmentdatefrom %]
|
|
<li>Shipment date:
|
|
[% IF shipmentdateto %]
|
|
From [% shipmentdatefrom | $KohaDates %]
|
|
To [% shipmentdateto | $KohaDates %]
|
|
[% ELSE %]
|
|
All since [% shipmentdatefrom | $KohaDates %]
|
|
[% END %]
|
|
</li>
|
|
[% ELSE %]
|
|
[% IF shipmentdateto %]
|
|
<li>Shipment date:
|
|
All until [% shipmentdateto | $KohaDates %]
|
|
</li>
|
|
[% END %]
|
|
[% END %]
|
|
[% IF billingdatefrom %]
|
|
<li>Billing date:
|
|
[% IF billingdateto %]
|
|
From [% billingdatefrom | $KohaDates %]
|
|
To [% billingdateto | $KohaDates %]
|
|
[% ELSE %]
|
|
All since [% billingdatefrom | $KohaDates %]
|
|
[% END %]
|
|
</li>
|
|
[% ELSE %]
|
|
[% IF billingdateto %]
|
|
<li>Billing date:
|
|
All until [% billingdateto | $KohaDates %]
|
|
</li>
|
|
[% END %]
|
|
[% END %]
|
|
[% IF ( isbneanissn ) %]
|
|
<li>ISBN/EAN/ISSN: [% isbneanissn | html %]</li>
|
|
[% END %]
|
|
[% IF ( title ) %]
|
|
<li>Title: [% title | html %]</li>
|
|
[% END %]
|
|
[% IF ( author ) %]
|
|
<li>Author: [% author | html %]</li>
|
|
[% END %]
|
|
[% IF ( publisher ) %]
|
|
<li>Publisher: [% publisher | html %]</li>
|
|
[% END %]
|
|
[% IF ( publicationyear ) %]
|
|
<li>Publication year: [% publicationyear | html %]</li>
|
|
[% END %]
|
|
[% IF ( branch ) %]
|
|
<li>Library: [% Branches.GetName( branch ) | html %]</li>
|
|
[% END %]
|
|
</ul>
|
|
</p>
|
|
[% END %]<!-- invoices -->
|
|
[% ELSE %]
|
|
<p>Use the search form on the left to find invoices.</p>
|
|
[% END %]<!-- do_search -->
|
|
</main>
|
|
</div> <!-- /.col-sm-10.col-sm-push-2 -->
|
|
|
|
<div class="col-sm-2 col-sm-pull-10">
|
|
<aside>
|
|
<form action="" method="get">
|
|
<fieldset class="sidebar brief">
|
|
<h3>Search filters</h3>
|
|
<ol>
|
|
<li>
|
|
<label for="invoicenumber">Invoice no:</label>
|
|
<input type="text" id="invoicenumber" name="invoicenumber" value="[% invoicenumber | html %]" class="focus" />
|
|
</li>
|
|
<li>
|
|
<label for="supplier">Vendor:</label>
|
|
<select id="supplier" name="supplierid">
|
|
<option value="">All</option>
|
|
[% FOREACH supplier IN suppliers_loop %]
|
|
[% IF ( supplier.selected ) %]
|
|
<option selected="selected" value="[% supplier.booksellerid | html %]">[% supplier.suppliername | html %]</option>
|
|
[% ELSE %]
|
|
<option value="[% supplier.booksellerid | html %]">[% supplier.suppliername | html %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<fieldset class="brief">
|
|
<legend>Shipment date</legend>
|
|
<ol>
|
|
<li>
|
|
<label for="shipmentdatefrom">From:</label>
|
|
<input type="text" id="shipmentdatefrom" name="shipmentdatefrom" size="10" value="[% shipmentdatefrom | $KohaDates %]" class="datepicker" />
|
|
</li>
|
|
<li>
|
|
<label for="shipmentdateto">To:</label>
|
|
<input type="text" id="shipmentdateto" name="shipmentdateto" size="10" value="[% shipmentdateto | $KohaDates %]" class="datepicker" />
|
|
</li>
|
|
</ol>
|
|
</fieldset>
|
|
</li>
|
|
<li>
|
|
<fieldset class="brief">
|
|
<legend>Billing date</legend>
|
|
<ol>
|
|
<li>
|
|
<label for="billingdatefrom">From:</label>
|
|
<input type="text" id="billingdatefrom" name="billingdatefrom" size="10" value="[% billingdatefrom | $KohaDates %]" class="datepicker" />
|
|
</li>
|
|
<li>
|
|
<label for="billingdateto">To:</label>
|
|
<input type="text" id="billingdateto" name="billingdateto" size="10" value="[% billingdateto | $KohaDates %]" class="datepicker" />
|
|
</li>
|
|
</ol>
|
|
</fieldset>
|
|
</li>
|
|
<li>
|
|
<label for="isbneanissn">ISBN / EAN / ISSN:</label>
|
|
<input type="text" id="isbneanissn" name="isbneanissn" value="[% isbneanissn | html %]" />
|
|
</li>
|
|
<li>
|
|
<label for="title">Title:</label>
|
|
<input type="text" id="title" name="title" value="[% title | html %]" />
|
|
</li>
|
|
<li>
|
|
<label for="author">Author:</label>
|
|
<input type="text" id="author" name="author" value="[% author | html %]" />
|
|
</li>
|
|
<li>
|
|
<label for="publisher">Publisher:</label>
|
|
<input type="text" id="publisher" name="publisher" value="[% publisher | html %]" />
|
|
</li>
|
|
<li>
|
|
<label for="publicationyear">Publication year:</label>
|
|
<input type="text" id="publicationyear" name="publicationyear" value="[% publicationyear | html %]" />
|
|
</li>
|
|
<li>
|
|
<label for="branch">Library:</label>
|
|
<select id="branch" name="branch">
|
|
<option value="">All</option>
|
|
[%# FIXME Should not we filter the libraries %]
|
|
[% PROCESS options_for_libraries libraries => Branches.all( selected => branch, unfiltered => 1 ) %]
|
|
</select>
|
|
</li>
|
|
</ol>
|
|
<fieldset class="action">
|
|
<input type="submit" value="Search" />
|
|
</fieldset>
|
|
</fieldset>
|
|
<input type="hidden" name="op" id="op" value="do_search" />
|
|
</form>
|
|
[% INCLUDE 'acquisitions-menu.inc' %]
|
|
</aside>
|
|
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
|
|
</div> <!-- /.row -->
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% Asset.js("js/acquisitions-menu.js") | $raw %]
|
|
[% INCLUDE 'datatables.inc' %]
|
|
[% INCLUDE 'calendar.inc' %]
|
|
<script>
|
|
$(document).ready(function() {
|
|
$(".delete_invoice").click(function(){
|
|
return confirmDelete(_("Are you sure you want to delete this invoice?"));
|
|
});
|
|
var resultst = $("#resultst").dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
bPaginate: false,
|
|
aoColumnDefs: [
|
|
{ "bSortable": false, "aTargets": [1, -1] },
|
|
{ "bVisible": false, "aTargets": [0] },
|
|
{ "sType": "title-string", "aTargets" : [ "title-string" ] }
|
|
]
|
|
}));
|
|
|
|
$("#show_only_subscription").prop("checked", false);
|
|
|
|
$("#show_only_subscription").click(function(){
|
|
if ( $(this).prop("checked") ) {
|
|
resultst.fnFilter( "1", 0, true );
|
|
} else {
|
|
resultst.fnFilter( '', 0 );
|
|
}
|
|
});
|
|
|
|
$('#merge').click(function (ev) {
|
|
var booksellerid;
|
|
var mismatch;
|
|
var invoices = [ ];
|
|
if ($('.select-invoice:checked').size() < 2) {
|
|
alert(_("You must select at least two invoices to merge."));
|
|
return false;
|
|
}
|
|
$('.select-invoice:checked').each(function () {
|
|
var row = $(this).parents('tr');
|
|
booksellerid = booksellerid || $(row).attr('data-booksellerid');
|
|
if (booksellerid !== $(row).attr('data-booksellerid')) {
|
|
mismatch = true;
|
|
}
|
|
invoices.push({ 'invoiceid': $(row).attr('data-invoiceid'),
|
|
'invoicenumber': $(row).find('td:nth-child(2) a').text(),
|
|
'shipmentdate': $(row).attr('data-shipmentdate'),
|
|
'billingdate': $(row).attr('data-billingdate'),
|
|
'shipmentcost': $(row).attr('data-shipmentcost'),
|
|
'shipment_budgetid': $(row).attr('data-shipment_budgetid'),
|
|
'closedate': $(row).attr('data-closedate'), });
|
|
$('#merge_invoice_form').append('<input type="hidden" name="merge" value="' + $(row).attr('data-invoiceid') + '" />');
|
|
});
|
|
if (mismatch) {
|
|
alert(_("All invoices for merging must be from the same vendor"));
|
|
} else {
|
|
$('#merge_table tbody').empty();
|
|
$.each(invoices, function (idx, invoice) {
|
|
var row = $('<tr data-invoiceid="' + invoice.invoiceid + '"><td>' + invoice.invoicenumber + '</td><td>' + invoice.shipmentdate + '</td><td>' + invoice.billingdate + '</td><td>' + invoice.shipmentcost + '</td></tr>');
|
|
$(row).appendTo('#merge_table tbody');
|
|
$(row).click(function () {
|
|
$('#merge_table tbody tr').removeClass('active');
|
|
$(this).addClass('active');
|
|
$.each(['invoiceid', 'shipmentdate', 'billingdate', 'shipmentcost', 'shipment_budgetid', 'invoicenumber'], function (idx, prop) {
|
|
$('#merge_' + prop).val(invoice[prop]);
|
|
});
|
|
if (invoice.closedate) {
|
|
$('#merge_status').text(_("Closed on %s").format(invoice.closedate));
|
|
} else {
|
|
$('#merge_status').text(_("Open"));
|
|
}
|
|
});
|
|
});
|
|
$('#merge_table tbody tr:first').click();
|
|
$('#merge_invoices').show();
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|