Koha/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoices.tt
Katrin Fischer c943fddac6
Bug 34169: Add decimal class to all relevant input fields in the acquisitions module
This is a first step towards more consistency and possibly supporting
multiple input formats as well in the future. It marks all input fields
for monetary values, such as prices, replacement prices etc. with a class
that is linked to a check for number format with the jQuery Validator plugin.

To test:

For any input field to test, try adding various false entries, like "abc" or "1,00".
It should only accept inputs with decimal dot, like: "1.00"

0) Apply patch, restart_all
1) Suggestion
  * Add a new suggestion in the staff interface
  * Test: price input field at the bottom of the form.
  * Accept the suggestion
2) Order form
  * Create a new basket
  * Create an order line from an existing record
  * Test: list price, replacement price, and actual price.
  * Check the checkbox for uncertain price before you save
3) Uncertain prices
  * Go to the uncertain prices page for this vendor
  * Test: price field
    Note: this form does its own validation, but the change should not change behaviour for now
  * Resolve the uncertain price
  * Close order
4) Receive shipment
  * Test: Shipping cost
5) Receive the order
  * Test: replacement price, actual price
  * Check checkbox for price in foreign currency
  * Test: price in foreign currency
  * Receive order line
6) Invoice summary
  * Finish receiving
  * Test: shipping cost
  * Test: invoice adjustments: amount in the form for the first entry, amount in the table after adding it
7) Merging invoices
  * Receive another shipment and create and invoice
  * Go to invoices and search all
  * Check the 2 entries for merging
  * Test: shipping cost
8) Adding orders from a staged/new file
  * Export some records using the cart or list
  * Create a new basket
  * Order from new file
  * Import your file, ignore item records
  * Test: price and replacement price
  + Bonus: also test with items, test plan and file from bug 22802 are really helpful here

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-07-24 14:55:34 -03:00

529 lines
35 KiB
Text

[% USE raw %]
[% USE Asset %]
[% USE AuthorisedValues %]
[% USE KohaDates %]
[% USE Branches %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Invoices &rsaquo; Acquisitions &rsaquo; Koha</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="acq_invoices" class="acq">
[% WRAPPER 'header.inc' %]
[% INCLUDE 'acquisitions-search.inc' %]
[% END %]
[% WRAPPER 'sub-header.inc' %]
[% WRAPPER breadcrumbs %]
[% WRAPPER breadcrumb_item %]
<a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a>
[% END %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
<span>Invoices</span>
[% END %]
[% END #/ WRAPPER breadcrumbs %]
[% END #/ WRAPPER sub-header.inc %]
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
[% INCLUDE 'blocking_errors.inc' %]
<h1>Invoices</h1>
[% IF ( do_search ) %]
[% IF invoices %]
[% BLOCK invoices_table %]
[% IF closed %]
[% SET tab = 'closed' %]
[% ELSE %]
[% SET tab = 'opened' %]
[% END %]
<input type="checkbox" style="vertical-align: middle;" id="show_only_subscription_[% tab | html %]" class="show_only_subscription" data-tableid="[% tab | html %]resultst"/>
<label for="show_only_subscription_[% tab | html %]">
Show only subscriptions
</label>
<p><a id="CheckAll[% tab | html %]table" data-cb="[% tab | html %]" class="checkall" href="#"><i class="fa fa-check"></i> Select all</a> | <a id="UncheckAll[% tab | html %]table" data-cb="[% tab | html %]" class="uncheckall" href="#"><i class="fa fa-times"></i> Clear all</a></p>
<table id="[% tab | html %]resultst" class="result">
<thead>
<tr>
[% IF CAN_user_acquisition_merge_invoices %]
<th>&nbsp;</th>
[% END %]
<th>&nbsp;</th>
<th>Invoice number</th>
<th>Vendor</th>
<th>Shipment date</th>
<th>Billing date</th>
<th>Received bibliographic records</th>
<th>Received items</th>
<th>Status</th>
<th>&nbsp;</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 %]">
[% IF CAN_user_acquisition_merge_invoices %]
<td>[% invoice.is_linked_to_subscriptions | html %]</td>
[% END %]
<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 data-order="[% invoice.shipmentdate | html %]">
[% invoice.shipmentdate | $KohaDates %]
</td>
<td data-order="[% invoice.billingdate | html %]">
[% invoice.billingdate | $KohaDates %]
</td>
<td>[% invoice.receivedbiblios | html %]</td>
<td>[% invoice.receiveditems | html %]</td>
<td>
[% IF invoice.closedate %]
<span>Closed on [% invoice.closedate | $KohaDates %]</span>
[% ELSE %]
<span>Open</span>
[% END %]
</td>
<td>
<div class="btn-group 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 %]
[% IF CAN_user_acquisition_reopen_closed_invoices %]
<li><a href="invoice.pl?op=reopen&amp;invoiceid=[% invoice.invoiceid | uri %]&amp;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-solid fa-rotate"></i> Reopen</a></li>
[% END %]
[% ELSE %]
[% IF CAN_user_acquisition_edit_invoices %]
<li><a href="invoice.pl?op=close&amp;invoiceid=[% invoice.invoiceid | uri %]&amp;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 %]
[% END # /IF invoice.closedate %]
[% UNLESS invoice.receivedbiblios || invoice.receiveditems %]
[% IF CAN_user_acquisition_delete_invoices %]
<li><a href="invoice.pl?op=delete&amp;invoiceid=[% invoice.invoiceid | uri %]&amp;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-can"></i> Delete</a></li>
[% END %]
[% END %]
</ul>
</div> <!-- /.btn-group dropup -->
</td>
</tr>
[% END # /FOREACH invoice %]
</tbody>
</table> <!-- /#[% tab | html %]resultst -->
[% IF CAN_user_acquisition_merge_invoices %]
[% IF tab == 'closed' %]
<a class="btn btn-default merge" id="merge_closed" href="#merge_invoices" data-table="closedresultst"><i class="fa fa-compress"></i> Merge selected invoices</a>
<a class="btn btn-default" id="open_sel" href="#reopen_selected" data-table="closedresultst" data-op="reopen" data-referer="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-solid fa-rotate"></i> Reopen selected invoices</a>
[% ELSE %]
<a class="btn btn-default merge" id="merge_open" href="#merge_invoices" data-table="openedresultst"><i class="fa fa-compress"></i> Merge selected invoices</a>
<a class="btn btn-default" id="close_sel" href="#close_selected" data-table="openedresultst" data-op="close" data-referer="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 selected invoices</a>
[% END # /IF tab == 'closed' %]
[% END # /IF CAN_user_acquisition_merge_invoices %]
[% END # /BLOCK invoices_table %]
[% WRAPPER tabs id= "invoicestabs" %]
[% WRAPPER tabs_nav %]
[% WRAPPER tab_item tabname= "opened" bt_active= 1 %]
<span>Open invoices</span> ([% openedinvoices.size || 0 | html %])
[% END %]
[% WRAPPER tab_item tabname= "closed" %]
<span>Closed invoices</span> ([% closedinvoices.size || 0 | html %])
[% END %]
[% END %]
[% WRAPPER tab_panels %]
[% WRAPPER tab_panel tabname="opened" bt_active= 1 %]
[% IF openedinvoices %]
[% INCLUDE invoices_table invoices = openedinvoices %]
[% ELSE %]
<div class="dialog message">
<p>Your search returned no open invoices.</p>
</div>
[% END %]
[% END # /#opened %]
[% WRAPPER tab_panel tabname="closed" %]
[% IF closedinvoices %]
[% INCLUDE invoices_table invoices = closedinvoices closed = 1 %]
[% ELSE %]
<div class="dialog message">
<p>Your search returned no closed invoices.</p>
</div>
[% END %]
[% END # /#closed %]
[% END # /tab_panels %]
[% END # /#invoicestabs %]
<div id="merge_invoices">
<form id="merge_invoice_form" class="validated" 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 number</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="flatpickr" />
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li>
<label for="merge_billingdate">Billing date:</label>
<input type="text" size="10" id="merge_billingdate" name="billingdate" value="" class="flatpickr" />
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li>
<label for="merge_shipmentcost">Shipment cost:</label>
<input class="decimal" 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" class="btn btn-primary" value="Merge" />
</li>
</ol>
<input type="hidden" name="op" value="mod" />
<input type="hidden" id="merge_invoiceid" name="invoiceid" value="" />
</fieldset> <!-- /.rows -->
</form> <!-- /#merge_invoice_form -->
</div> <!-- /#merge_invoices -->
[% ELSE # IF invoices %]
<p>Sorry, but there are no results for your search.</p>
<p>Search was:
<ul>
[% IF ( invoicenumber ) %]
<li>Invoice number: [% invoicenumber | html %]</li>
[% END %]
[% IF booksellerid %]
<li>Vendor: [% suppliername | html %]</li>
[% END %]
[% IF shipmentdatefrom %]
<li>
<span>Shipment date:</span>
[% IF shipmentdateto %]
<span>From [% shipmentdatefrom | $KohaDates %]</span>
<span>To [% shipmentdateto | $KohaDates %]</span>
[% ELSE %]
<span>All since [% shipmentdatefrom | $KohaDates %]</span>
[% END %]
</li>
[% ELSE %]
[% IF shipmentdateto %]
<li>
Shipment date:
All until [% shipmentdateto | $KohaDates %]
</li>
[% END %]
[% END %]
[% IF billingdatefrom %]
<li>
<span>Billing date:</span>
[% IF billingdateto %]
<span>From [% billingdatefrom | $KohaDates %]</span>
<span>To [% billingdateto | $KohaDates %]</span>
[% ELSE %]
<span>All since [% billingdatefrom | $KohaDates %]</span>
[% 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 # /IF 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 number</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 | html %]" class="flatpickr" data-date_to="shipmentdateto" />
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li>
<label for="shipmentdateto">To:</label>
<input type="text" id="shipmentdateto" name="shipmentdateto" size="10" value="[% shipmentdateto | html %]" class="flatpickr" />
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</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 | html %]" class="flatpickr" data-date_to="billingdateto" />
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li>
<label for="billingdateto">To:</label>
<input type="text" id="billingdateto" name="billingdateto" size="10" value="[% billingdateto | html %]" class="flatpickr" />
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</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>
[% FOR field IN additional_fields_for_invoice %]
<li>
<label for="additional_field_[% field.id | html %]ID"> [% field.name | html %]: </label>
[% IF field.authorised_value_category %]
<select id="additional_field_[% field.id | html %]" name="additional_field_[% field.id | html %]">
<option value="">All</option>
[% FOREACH av IN AuthorisedValues.GetAuthValueDropbox(field.authorised_value_category) %]
[% IF av.authorised_value == additional_field_filters.${field.id} %]
<option value="[% av.authorised_value | html %]" selected="selected">[% av.lib | html %]</option>
[% ELSE %]
<option value="[% av.authorised_value | html %]">[% av.lib | html %]</option>
[% END %]
[% END %]
</select>
[% ELSE %]
<input id="additional_field_[% field.id | html %]" type="text" value="[% additional_field_filters.${field.id} | html %]" name="additional_field_[% field.id | html %]" />
[% END %]
</li>
[% END %]
</ol>
</fieldset> <!-- /.sidebar.brief -->
<fieldset class="action">
<input type="submit" class="btn btn-primary" value="Search" />
</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() {
$('[id^="CheckAll"]').click( function() {
var table_id = "#" + $(this).attr('data-cb') + "resultst";
$(table_id).find('.select-invoice[type="checkbox"]').each( function() {
$(this).prop("checked" , true );
});
});
$('[id^="UncheckAll"]').click( function() {
var table_id = "#" + $(this).attr('data-cb') + "resultst";
$(table_id).find('.select-invoice[type="checkbox"]').each( function() {
$(this).prop("checked" , false );
});
});
$(".delete_invoice").click(function(){
return confirmDelete(_("Are you sure you want to delete this invoice?"));
});
var resultst = $("table.result").dataTable($.extend(true, {}, dataTablesDefaults, {
bPaginate: false,
aoColumnDefs: [
{ "bSortable": false, "aTargets": [1, -1] },
{ "bVisible": false, "aTargets": [0] }
],
autoWidth: false
}));
$(".show_only_subscription").prop("checked", false);
$(".show_only_subscription").click(function(){
var table_id = $(this).attr("data-tableid");
if ( $(this).prop("checked") ) {
$('#'+table_id).dataTable().fnFilter( "1", 0, true );
} else {
$('#'+table_id).dataTable().fnFilter( '', 0 );
}
});
$('#open_sel,#close_sel').click(function () {
var referer = $(this).attr("data-referer");
var op = $(this).attr("data-op");
var table = $(this).data('table');
var invoice_link = "invoice.pl?op="+op;
if ($('#' + table + ' .select-invoice:checked').length) {
$('#' + table + ' .select-invoice:checked').each(function () {
var row = $(this).parents('tr');
invoice_link = invoice_link + "&amp;invoiceid="+$(row).attr('data-invoiceid');
});
window.location.href =invoice_link +"&amp;"+referer;
} else {
alert ("Please select at least one invoice." );
}
});
$('.merge').click(function (ev) {
var booksellerid;
var mismatch;
var invoices = [ ];
var table = $(this).data('table');
if ($('#' + table + ' .select-invoice:checked').size() < 2) {
alert(_("You must select at least two invoices to merge."));
return false;
}
$('#' + table + ' .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' %]