Bug 12395: Make received orders table consistent with pending orders table
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / acqui / orderreceive.tt
1 [% USE Asset %]
2 [% USE KohaDates %]
3 [% USE Branches %]
4 [% USE Price %]
5 [% SET footerjs = 1 %]
6 [% INCLUDE 'doc-head-open.inc' %]
7 <title>Koha &rsaquo; Acquisitions &rsaquo; Receipt summary for : [% name %] [% IF ( invoice ) %]invoice, [% invoice %][% END %]</title>
8 [% INCLUDE 'doc-head-close.inc' %]
9 </head>
10
11 <body id="acq_orderreceive" class="acq">
12 [% INCLUDE 'header.inc' %]
13 [% INCLUDE 'acquisitions-search.inc' %]
14
15 <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 |html %]][% END %] (order #[% ordernumber %])</div>
16
17 <div id="doc3" class="yui-t2">
18    
19    <div id="bd">
20         <div id="yui-main">
21         <div class="yui-b">
22
23 <h1>Receive items from : [% name %] [% IF ( invoice ) %][[% invoice |html %]] [% END %] (order #[% ordernumber %])</h1>
24
25 [% IF ( count ) %]
26     <form action="/cgi-bin/koha/acqui/finishreceive.pl" method="post" onsubmit="return Check(this);">
27 <div class="yui-g">
28 <div class="yui-u first">
29     <div class="error" style="display:none"></div>
30
31     <fieldset class="rows">
32     <legend>Catalog details</legend>
33     <ol><li><span class="label">Title: </span><span class="title">[% title |html %]</span></li>
34     <li> <span class="label">Author: </span>
35         [% author %]</li>
36     <li><span class="label">Copyright: </span>
37         [% copyrightdate %]</li>
38     <li> <span class="label">ISBN: </span>
39         [% isbn %]</li>
40     <li> <span class="label">Series: </span>
41         [% seriestitle %]</li>
42     </ol>
43         </fieldset>
44
45     [% IF ( suggestionid ) %]
46         <fieldset class="rows">
47         <legend>Suggestion</legend>
48         <ol>
49           <li>
50             <span class="label">Suggested by: </span>
51             [% surnamesuggestedby %][% IF ( firstnamesuggestedby ) %], [% firstnamesuggestedby %][% END %] (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% suggestionid %]&amp;op=show">suggestion #[% suggestionid %]</a>)
52           </li>
53         </ol>
54         </fieldset>
55     [% END %]
56
57     [% IF (AcqCreateItemReceiving) %]
58         <div id="items_list" style="display:none">
59             <p><b>Items list</b></p>
60             <div style="width:100%;overflow:auto;">
61                 <table>
62                     <thead>
63                         <tr>
64                             <th>&nbsp;</th>
65                             <th>&nbsp;</th>
66                             <th>Barcode</th>
67                             <th>Home library</th>
68                             <th>Holding library</th>
69                             <th>Not for loan</th>
70                             <th>Restricted</th>
71                             <th>Location</th>
72                             <th>Call number</th>
73                             <th>Copy number</th>
74                             <th>Inventory number</th>
75                             <th>Collection code</th>
76                             <th>Item type</th>
77                             <th>Materials</th>
78                             <th>Notes</th>
79                         </tr>
80                     </thead>
81                     <tbody>
82                     </tbody>
83                 </table>
84             </div>
85         </div>
86
87         [% UNLESS subscriptionid %]
88           <fieldset class="rows" id="itemfieldset">
89               <legend>Item</legend>
90               [% IF ( NoACQframework ) %]
91                   <p class="required">
92                       No ACQ framework, using default. You should create a
93                       framework with code ACQ, the items framework would be
94                       used
95                   </p>
96               [% END %]
97               <div id="outeritemblock"></div>
98           </fieldset>
99         [% END %]
100     [% ELSIF (AcqCreateItem == 'ordering') %]
101         [% IF (items.size) %]
102             <h5>Items</h5>
103             <div style="width:100%;overflow:auto">
104                 <table>
105                     <thead>
106                         <tr>
107                             <th>Receive?</th>
108                             <th>&nbsp;</th>
109                             <th>Barcode</th>
110                             <th>Home branch</th>
111                             <th>Holding branch</th>
112                             <th>Not for loan</th>
113                             <th>Restricted</th>
114                             <th>Location</th>
115                             <th>Call number</th>
116                             <th>Copy number</th>
117                             <th>Inventory number</th>
118                             <th>Collection code</th>
119                             <th>Item type</th>
120                             <th>Materials</th>
121                             <th>Notes</th>
122                         </tr>
123                     </thead>
124                     <tbody>
125                         [% FOREACH item IN items %]
126                             <tr id="item_[% item.itemnumber %]">
127                                 <td style="text-align:center"><input type="checkbox" name="items_to_receive" value="[% item.itemnumber %]" /></td>
128                                 <td><a style="cursor:pointer" onclick="PopupEditPage([% item.biblionumber %],[% item.itemnumber %]);">Edit</a></td>
129                                 <td>[% item.barcode %]</td>
130                                 <td>[% Branches.GetName( item.homebranch )%]</td>
131                                 <td>[% Branches.GetName( item.holdingbranch ) %]</td>
132                                 <td>[% item.notforloan %]</td>
133                                 <td>[% item.restricted %]</td>
134                                 <td>[% item.location %]</td>
135                                 <td>[% item.itemcallnumber %]</td>
136                                 <td>[% item.copynumber %]</td>
137                                 <td>[% item.stocknumber %]</td>
138                                 <td>[% item.collection %]</td>
139                                 <td>[% item.itemtype %]</td>
140                                 <td>[% item.materials %]</td>
141                                 <td>[% item.itemnotes %]</td>
142                             </tr>
143                         [% END %]
144                     </tbody>
145                 </table>
146             </div>
147         [% END %]
148     [% END %]
149     <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
150     <input type="hidden" name="invoiceid" value="[% invoiceid %]" />
151     <input type="hidden" name="ordernumber" value="[% ordernumber %]" />
152     <input type="hidden" name="booksellerid" value="[% booksellerid %]" />
153         </div>
154         <div class="yui-u">
155     <fieldset class="rows">
156     <legend>Accounting details</legend>
157         <ol>
158             <li>
159                 <label for="datereceived">Date received: </label>
160                 <input type="text" size="10" id="datereceived" name="datereceived" value="[% datereceived | $KohaDates %]" class="datepicker" />
161             </li>
162        <li><label for="bookfund">Fund: </label><select id="bookfund" name="bookfund">
163             <option value="">Keep current ([% budget_period_description %] - [% bookfund %])</option>
164             [% FOREACH period IN budget_loop %]
165                 <optgroup label="[% period.description %]">
166                 [% FOREACH fund IN period.funds %]
167                     [% IF ( fund.b_sel ) %]
168                         <option value="[% fund.b_id %]" selected="selected">[% fund.b_txt %]</option>
169                     [% ELSE %]
170                         <option value="[% fund.b_id %]">[% fund.b_txt %]</option>
171                     [% END %]
172                 [% END %]
173             [% END %]
174        </select></li>
175        <li><label>&nbsp;</label><span>(Current: [% budget_period_description %] - [% bookfund %])</span></li>
176        <li>
177         <label for="creator">Ordered by: </label>
178         <span>
179           [% IF creator and (creator.firstname or creator.surname) %]
180             [% creator.firstname %]
181             [% creator.surname %]
182           [% ELSE %]
183             No name
184           [% END %]
185         </span>
186        </li>
187        <li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
188            [% IF ( edit and not subscriptionid) %]
189                <input type="text" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
190            [% ELSE%]
191                <input type="text" readonly="readonly" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
192            [% END %]
193            </span></li>
194         <li><label for="quantity">Quantity received: </label>
195           [% IF (AcqCreateItemReceiving) %]
196             [% IF ( subscriptionid ) %]
197               <input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="1" />
198             [% ELSE %]
199               <input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="0" />
200             [% END %]
201           [% ELSE %]
202             [% IF ( quantityreceived ) %]
203                 [% IF ( edit ) %]
204                     <input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceived %]" />
205                     <input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
206                 [% ELSE %]
207                     [% IF ( items ) %]
208                         <input readonly="readonly" type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
209                     [% ELSE %]
210                         <input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
211                     [% END %]
212                     <input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
213                 [% END %]
214             [% ELSE %]
215                 [% IF ( subscriptionid ) %]
216                     <input type="text" readonly="readonly" id="quantity" size="20" name="quantityrec" value="1" />
217                 [% ELSE %]
218                     <input type="text" id="quantity" size="20" name="quantityrec" value="1" />
219                 [% END %]
220                 <input id="origquantityrec" readonly="readonly" type="hidden" name="origquantityrec" value="0" />
221             [% END %]
222             <div id="qtyrecerror" style="display:none">
223                 <p class="error">Warning, you have entered more items than expected.
224                 Items will not be created.</p>
225             </div>
226           [% END %][%# IF (AcqCreateItemReceiving) %]
227                 </li>
228
229         [% IF ( gst_values ) %]
230             <li>
231                 <label for="tax_rate">Tax rate: </label>
232                 <select name="tax_rate" id="tax_rate">
233                 [% FOREACH gst IN gst_values %]
234                     [% IF gst.option == tax_rate %]
235                         <option value="[% gst.option %]" selected="selected">[% gst.option * 100 %]%</option>
236                     [% ELSE %]
237                         <option value="[% gst.option %]">[% gst.option * 100 %]%</option>
238                     [% END %]
239                 [% END %]
240                 </select>
241             </li>
242         [% ELSE %]
243             <input type="hidden" name="tax_rate" value="0" />
244         [% END %]
245
246         <li><label for="rrp">Replacement cost: </label>[% rrp | $Price %]</li>
247         <li><label for="ecost">Budgeted cost: </label>[% ecost | $Price %]</li>
248         <li>
249             <label for="unitprice">Actual cost:</label>
250             <input type="text" size="20" name="unitprice" id="unitprice" value="[% unitprice | $Price on_editing => 1 %]" />
251         </li>
252         <li><label for="order_internalnote">Internal note: </label><textarea name="order_internalnote" width="40" rows="8" >[% order_internalnote %]</textarea></li>
253         [% IF order_vendornote %]
254             <li><label for="order_vendornote">Vendor note: </label><span>[% order_vendornote %]</span></li>
255         [% END %]
256         </ol>
257     </fieldset>
258
259 </div>
260 </div><div class="yui-g"><fieldset class="action">
261         <input type="submit"  value="Save" class="button" accesskey="w" />
262         <a class="cancel" href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid %]&sticky_filters=1">Cancel</a>
263 </fieldset></div>    </form>
264 [% ELSE %]
265     This ordernumber does not exist.
266 [% END %]
267
268 </div>
269 </div>
270 <div class="yui-b">
271 [% INCLUDE 'acquisitions-menu.inc' %]
272 </div>
273 </div>
274
275 [% MACRO jsinclude BLOCK %]
276     [% Asset.js("js/acquisitions-menu.js") %]
277 [% INCLUDE 'calendar.inc' %]
278     [% INCLUDE 'additem.js.inc' %]
279     [% Asset.js("js/additem.js") %]
280     [% Asset.js("js/cataloging.js") %]
281     [% Asset.js("js/prevent_submit.js") %]
282     <script type="text/javascript">
283         function Check(form) {
284             [% IF (AcqCreateItemReceiving) %]
285                 var total_errors = CheckMandatorySubfields(form);
286                 if (total_errors != 0) {
287                     var alertString = _("Form not submitted because of the following problem(s)");
288                     alertString += "\n------------------------------------------------------------------------------------\n";
289                     alertString += "\n- " + _("%s mandatory fields empty (highlighted)").format(total_errors);
290                     alert(alertString);
291                     return false;
292                 }
293
294                 if(check_additem('[% UniqueItemFields %]') == false){
295                     alert(_("Duplicate values detected. Please correct the errors and resubmit.") );
296                     return false;
297                 };
298
299                 // Remove last itemblock if it is not in items_list
300                 var lastitemblock = $("#outeritemblock > div:last");
301                 var tobedeleted = true;
302                 var listitems = $("#items_list tr");
303                 $(listitems).each(function(){
304                     if($(this).attr('idblock') == $(lastitemblock).attr('id')){
305                         tobedeleted = false;
306                     }
307                 });
308                 if(tobedeleted){
309                     $(lastitemblock).remove();
310                 }
311
312                 if(check_additem('[% UniqueItemFields %]') == false){
313                     alert(_("Duplicate values detected. Please correct the errors and resubmit.") );
314                     if(tobedeleted) {
315                         $(lastitemblock).appendTo("#outeritemblock");
316                     }
317                     return false;
318                 };
319             [% END %]
320
321             return true;
322         }
323
324         [% IF (AcqCreateItem == 'ordering') %]
325             var items_columns = [null, null, 'barcode', 'homebranchname',
326                 'holdingbranchname', 'notforloan', 'restricted', 'location',
327                 'itemcallnumber', 'copynumber', 'stocknumber', 'collection',
328                 'itemtype', 'materials', 'itemnotes'];
329
330             function PopupEditPage(biblionumber, itemnumber) {
331                 var url = "/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber="
332                     + biblionumber + "&itemnumber=" + itemnumber + "&popup=1#edititem";
333                 var w = window.open(url);
334                 var watchClose = setInterval(function() {
335                     if (w.closed) {
336                         clearTimeout(watchClose);
337                         $.getJSON('/cgi-bin/koha/catalogue/getitem-ajax.pl',
338                             {
339                                 'itemnumber': itemnumber
340                             },
341                             function(item) {
342                                 var tds = $("#item_"+itemnumber+" td");
343                                 for(var i=2; i<tds.length; i++) {
344                                     var column = items_columns[i];
345                                     var text = item[column];
346                                     if ( text == null ) text = '';
347                                     $(tds[i]).text(text);
348                                 }
349                             }
350                         );
351                     }
352                 }, 500);
353             }
354
355             function CalcQtyToReceive() {
356                 var qty = $("input[name='items_to_receive']:checked").length;
357                 $("#quantity").val(qty);
358             }
359
360             function CheckNItems(n) {
361                 $("input[name='items_to_receive']").each(function() {
362                     $(this).prop('checked', false);
363                 });
364                 $("input[name='items_to_receive']:lt("+n+")").each(function () {
365                     $(this).prop('checked', true);
366                 });
367             }
368         [% END %]
369
370         $(document).ready(function() {
371             [% IF (AcqCreateItemReceiving) %]
372                 cloneItemBlock(0, '[% UniqueItemFields %]');
373             [% ELSIF (AcqCreateItem == 'ordering') && not subscriptionid %]
374                 $("input[name='items_to_receive']").change(function() {
375                     CalcQtyToReceive();
376                 });
377                 CalcQtyToReceive();
378                 $("#quantity").keyup(function() {
379                     var qty = parseInt($("#quantity").val());
380                     var qtyto = parseInt($("#quantity_to_receive").val());
381                     if(qty > qtyto) {
382                         $("#qtyrecerror").show();
383                     } else {
384                         $("#qtyrecerror").hide();
385                     }
386                     CheckNItems($(this).val());
387                 });
388             [% END %]
389         });
390     </script>
391 [% END %]
392
393 [% INCLUDE 'intranet-bottom.inc' %]