Koha/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
Mathieu Saby 36074fba65 Bug 9416: add new order vendor note field
Currently, there is a single note field in each order. It would be
useful to have 2 notes fields:

- one for the staff (ex: "catalog this book as soon as possible")
- one for the vendor (ex: "urgent", "only the 2d volume"...), which
  could later be printed in basketgroup pdf for example

This patch adds a new note made for vendor in each order. The existing
note is renamed "internal note".

The behavior of the 2 notes are the same

Changes in database structure:
- new column aqorders.order_vendornote
- column aqorders.notes renamed aqorders.order_internalnote

To test :
[1] Make a complete acquisiton process (creating the order > looking at
    the basket > looking the order > receiving); and try to use the 2
    notes (internal note / vendor note)
[2] Check the changes made on one page (eg detail of the order) are
    saved and visible on an other page (eg receipt page)

Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Testing notes on last patch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
2014-04-19 15:55:36 +00:00

352 lines
16 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Acquisitions &rsaquo; Receipt summary for : [% name %] [% IF ( invoice ) %]invoice, [% invoice %][% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'additem.js.inc' %]
<script type="text/javascript" src="[% themelang %]/js/additem.js"></script>
<script type="text/javascript" src="[% themelang %]/js/cataloging.js"></script>
<script type="text/javascript" src="[% themelang %]/js/prevent_submit.js"></script>
<script type="text/javascript">
//<![CDATA[
function Check(form) {
[% IF (AcqCreateItemReceiving) %]
var total_errors = CheckMandatorySubfields(form);
if (total_errors != 0) {
var alertString = _("Form not submitted because of the following problem(s)");
alertString += "\n------------------------------------------------------------------------------------\n";
alertString += "\n- "+ total_errors+_(" mandatory fields empty (highlighted)");
alert(alertString);
return false;
}
if(check_additem('[% UniqueItemFields %]') == false){
alert(_("Duplicate values detected. Please correct the errors and resubmit.") );
return false;
};
// Remove last itemblock if it is not in items_list
var lastitemblock = $("#outeritemblock > div:last");
var tobedeleted = true;
var listitems = $("#items_list tr");
$(listitems).each(function(){
if($(this).attr('idblock') == $(lastitemblock).attr('id')){
tobedeleted = false;
}
});
if(tobedeleted){
$(lastitemblock).remove();
}
if(check_additem('[% UniqueItemFields %]') == false){
alert(_("Duplicate values detected. Please correct the errors and resubmit.") );
if(tobedeleted) {
$(lastitemblock).appendTo("#outeritemblock");
}
return false;
};
[% END %]
return true;
}
[% IF (AcqCreateItem == 'ordering') %]
var items_columns = [null, null, 'barcode', 'homebranchname',
'holdingbranchname', 'notforloan', 'restricted', 'location',
'itemcallnumber', 'copynumber', 'stocknumber', 'collection',
'itemtype', 'materials', 'itemnotes'];
function PopupEditPage(biblionumber, itemnumber) {
var url = "/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber="
+ biblionumber + "&itemnumber=" + itemnumber + "&popup=1#edititem";
var w = window.open(url);
var watchClose = setInterval(function() {
if (w.closed) {
clearTimeout(watchClose);
$.getJSON('/cgi-bin/koha/catalogue/getitem-ajax.pl',
{
'itemnumber': itemnumber
},
function(item) {
var tds = $("#item_"+itemnumber+" td");
for(var i=2; i<tds.length; i++) {
var column = items_columns[i];
$(tds[i]).text(item[column]);
}
}
);
}
}, 500);
}
function CalcQtyToReceive() {
var qty = $("input[name='items_to_receive']:checked").length;
$("#quantity").val(qty);
}
function CheckNItems(n) {
$("input[name='items_to_receive']").each(function() {
$(this).attr('checked', false);
});
$("input[name='items_to_receive']:lt("+n+")").each(function () {
$(this).attr('checked', true);
});
}
[% END %]
$(document).ready(function() {
[% IF (AcqCreateItemReceiving) %]
cloneItemBlock(0, '[% UniqueItemFields %]');
[% ELSIF (AcqCreateItem == 'ordering') && not subscriptionid %]
$("input[name='items_to_receive']").change(function() {
CalcQtyToReceive();
});
CalcQtyToReceive();
$("#quantity").keyup(function() {
var qty = parseInt($("#quantity").val());
var qtyto = parseInt($("#quantity_to_receive").val());
if(qty > qtyto) {
$("#qtyrecerror").show();
} else {
$("#qtyrecerror").hide();
}
CheckNItems($(this).val());
});
[% END %]
});
//]]>
</script>
</head>
<body id="acq_orderreceive" class="acq">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'acquisitions-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a> &rsaquo; <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% name %]</a> &rsaquo; Receive items from : [% name %] [% IF ( invoice ) %][[% invoice %]][% END %] (order #[% ordernumber %])</div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<h1>Receive items from : [% name %] [% IF ( invoice ) %][[% invoice %]] [% END %] (order #[% ordernumber %])</h1>
[% IF ( count ) %]
<form action="/cgi-bin/koha/acqui/finishreceive.pl" method="post" onsubmit="return Check(this);">
<div class="yui-g">
<div class="yui-u first">
<div class="error" style="display:none"></div>
<fieldset class="rows">
<legend>Catalog details</legend>
<ol><li><span class="label">Title: </span><span class="title">[% title |html %]</span></li>
<li> <span class="label">Author: </span>
[% author %]</li>
<li><span class="label">Copyright: </span>
[% copyrightdate %]</li>
<li> <span class="label">ISBN: </span>
[% isbn %]</li>
<li> <span class="label">Series: </span>
[% seriestitle %]</li>
</ol>
</fieldset>
[% IF ( suggestionid ) %]
<fieldset class="rows">
<legend>Suggestion</legend>
<ol>
<li>
<span class="label">Suggested by: </span>
[% surnamesuggestedby %][% IF ( firstnamesuggestedby ) %], [% firstnamesuggestedby %][% END %] (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% suggestionid %]&amp;op=show">suggestion #[% suggestionid %]</a>)
</li>
</ol>
</fieldset>
[% END %]
[% IF (AcqCreateItemReceiving) %]
<div id="items_list" style="display:none">
<p><b>Items list</b></p>
<div style="width:100%;overflow:auto;">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>Barcode</th>
<th>Home library</th>
<th>Holding library</th>
<th>Not for loan</th>
<th>Restricted</th>
<th>Location</th>
<th>Call number</th>
<th>Copy number</th>
<th>Stock number</th>
<th>Collection code</th>
<th>Item type</th>
<th>Materials</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
[% UNLESS subscriptionid %]
<fieldset class="rows" id="itemfieldset">
<legend>Item</legend>
[% IF ( NoACQframework ) %]
<p class="required">
No ACQ framework, using default. You should create a
framework with code ACQ, the items framework would be
used
</p>
[% END %]
<div id="outeritemblock"></div>
</fieldset>
[% END %]
[% ELSIF (AcqCreateItem == 'ordering') %]
[% IF (items.size) %]
<h5>Items</h5>
<div style="width:100%;overflow:auto">
<table>
<thead>
<tr>
<th>Receive?</th>
<th>&nbsp;</th>
<th>Barcode</th>
<th>Home branch</th>
<th>Holding branch</th>
<th>Not for loan</th>
<th>Restricted</th>
<th>Location</th>
<th>Call number</th>
<th>Copy number</th>
<th>Stock number</th>
<th>Collection code</th>
<th>Item type</th>
<th>Materials</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
[% FOREACH item IN items %]
<tr id="item_[% item.itemnumber %]">
<td style="text-align:center"><input type="checkbox" name="items_to_receive" value="[% item.itemnumber %]" /></td>
<td><a style="cursor:pointer" onclick="PopupEditPage([% item.biblionumber %],[% item.itemnumber %]);">Edit</a></td>
<td>[% item.barcode %]</td>
<td>[% item.homebranchname %]</td>
<td>[% item.holdingbranchname %]</td>
<td>[% item.notforloan %]</td>
<td>[% item.restricted %]</td>
<td>[% item.location %]</td>
<td>[% item.itemcallnumber %]</td>
<td>[% item.copynumber %]</td>
<td>[% item.stocknumber %]</td>
<td>[% item.collection %]</td>
<td>[% item.itemtype %]</td>
<td>[% item.materials %]</td>
<td>[% item.itemnotes %]</td>
</tr>
[% END %]
</tbody>
</table>
</div>
[% END %]
[% END %]
<input type="hidden" name="biblionumber" value="[% biblionumber %]" />
<input type="hidden" name="invoiceid" value="[% invoiceid %]" />
<input type="hidden" name="ordernumber" value="[% ordernumber %]" />
<input type="hidden" name="booksellerid" value="[% booksellerid %]" />
<input type="hidden" name="datereceived" value="[% datereceived_iso %]" />
<input type="hidden" name="gstrate" value="[% gstrate %]" />
</div>
<div class="yui-u">
<fieldset class="rows">
<legend>Accounting details</legend>
<ol>
<li><label for="datereceived">Date received: </label><span> [% datereceived %] </span></li>
<li><label for="bookfund">Fund: </label><select id="bookfund" name="bookfund">
<option value="">Keep current ([% budget_period_description %] - [% bookfund %])</option>
[% FOREACH period IN budget_loop %]
<optgroup label="[% period.description %]">
[% FOREACH fund IN period.funds %]
[% IF ( fund.b_sel ) %]
<option value="[% fund.b_id %]" selected="selected">[% fund.b_txt %]</option>
[% ELSE %]
<option value="[% fund.b_id %]">[% fund.b_txt %]</option>
[% END %]
[% END %]
[% END %]
</select></li>
<li><label>&nbsp;</label><span>(Current: [% budget_period_description %] - [% bookfund %])</span></li>
<li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
<li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
[% IF ( edit and not subscriptionid) %]
<input type="text" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
[% ELSE%]
<input type="text" readonly="readonly" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
[% END %]
</span></li>
<li><label for="quantity">Quantity received: </label>
[% IF (AcqCreateItemReceiving) %]
[% IF ( subscriptionid ) %]
<input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="1" />
[% ELSE %]
<input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="0" />
[% END %]
[% ELSE %]
[% IF ( quantityreceived ) %]
[% IF ( edit ) %]
<input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceived %]" />
<input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
[% ELSE %]
[% IF ( items ) %]
<input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
[% ELSE %]
<input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
[% END %]
<input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
[% END %]
[% ELSE %]
[% IF ( subscriptionid ) %]
<input type="text" readonly="readonly" id="quantity" size="20" name="quantityrec" value="1" />
[% ELSE %]
<input type="text" id="quantity" size="20" name="quantityrec" value="1" />
[% END %]
<input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="0" />
[% END %]
<div id="qtyrecerror" style="display:none">
<p class="error">Warning, you have entered more items than expected.
Items will not be created.</p>
</div>
[% END %][%# IF (AcqCreateItemReceiving) %]
</li>
<li><label for="rrp">Replacement cost: </label><input type="text" size="20" name="rrp" id="rrp" value="[% rrp %]" /></li>
<li><label for="ecost">Budgeted cost: </label><input type="text" size="20" name="ecost" id="ecost" value="[% ecost %]" /></li>
<li><label for="cost">Actual cost:</label>
[% IF ( unitprice ) %]
<input type="text" size="20" name="cost" id="cost" value="[% unitprice %]" />
[% ELSE %]
<input type="text" size="20" name="cost" id="cost" value="[% ecost %]" />
[% END %]</li>
<li><label for="order_internalnote">Internal note: </label><textarea name="order_internalnote" width="40" rows="8" >[% order_internalnote %]</textarea></li>
<li><label for="order_vendornote">Vendor note: </label><textarea name="order_vendornote" width="40" rows="8" >[% order_vendornote %]</textarea></li>
</ol>
</fieldset>
</div>
</div><div class="yui-g"><fieldset class="action">
<input type="submit" value="Save" class="button" accesskey="w" />
<a class="cancel" href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid %]&sticky_filters=1">Cancel</a>
</fieldset></div> </form>
[% ELSE %]
This ordernumber does not exist.
[% END %]
</div>
</div>
<div class="yui-b">
[% INCLUDE 'acquisitions-menu.inc' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]