Bug 9168: Software error when filtering in receipt summary
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / acqui / parcel.tt
1 [% INCLUDE 'doc-head-open.inc' %]
2 <title>Koha &rsaquo; Acquisitions &rsaquo; [% IF ( date ) %]
3             Receipt summary for [% name %] [% IF ( invoice ) %]invoice [% invoice %][% END %] on [% formatteddatereceived %][% ELSE %]Receive orders from [% name %][% END %]</title>
4 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
5 [% INCLUDE 'doc-head-close.inc' %]
6 <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
7 [% INCLUDE 'datatables-strings.inc' %]
8 <script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
9 [% INCLUDE 'greybox.inc' %]
10 <script type="text/javascript" src="[% yuipath %]/json/json-min.js"></script>
11 <script type="text/javascript">
12 //<![CDATA[
13
14     dt_overwrite_html_sorting_localeCompare();
15
16     var rowsToCollapse = 5;
17     $(document).ready(function(){
18         var pendingt = $("#pendingt").dataTable($.extend(true, {}, dataTablesDefaults, {
19             "aoColumnDefs": [
20                 { "aTargets": [ 3, 8, 9 ], "bSortable": false, "bSearchable": false },
21             ],
22             "aoColumns": [
23                 { "sType": "num-html" },
24                 { "sType": "num-html" },
25                 { "sType": "html" },
26                 null,
27                 null,
28                 null,
29                 null,
30                 null,
31                 null,
32                 null,
33             ],
34             "sPaginationType": "four_button"
35         } ) );
36         var receivedt = $("#receivedt").dataTable($.extend(true, {}, dataTablesDefaults, {
37             "aoColumnDefs": [
38                 { "aTargets": [ 3, -1 ], "bSortable": false, "bSearchable": false },
39             ],
40             "aoColumns": [
41                 { "sType": "num-html" },
42                 { "sType": "num-html" },
43                 { "sType": "html" },
44                 null,
45                 null,
46                 null,
47                 null,
48                 null,
49                 null
50             ],
51             "sPaginationType": "four_button"
52         } ) );
53 /*
54     $("#pendingt").tablesorter({
55                 headers: { 2: { sorter: 'articles' },3: { sorter: false },8:{sorter:false}}
56     });
57 */
58
59         rowCountPending  = $("#pendingt tbody.filterclass tr").length;
60         rowCountReceived = $("#receivedt tbody.filterclass tr").length;
61         if (rowCountPending > rowsToCollapse ) { if ( $.cookie("pendingKeepExpanded") != 1 ) { pendingCollapse(); } else { pendingExpand(); } }
62         if (rowCountReceived > rowsToCollapse ) { if ( $.cookie("receivedKeepExpanded") != 1 ) { receivedCollapse(); } else { receivedExpand(); } }
63     });
64
65      // Case-insensitive version of jquery's contains function
66      jQuery.extend(jQuery.expr[':'], {
67             icontains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
68      });
69
70      // Contains exactly function
71      jQuery.extend(jQuery.expr[':'], {
72           containsExactly: "$(a).text() == m[3]"
73      });
74
75
76     // Collapse pending items table
77     function pendingCollapse() {
78         $.cookie("pendingKeepExpanded", 0, { path: "/", expires: 9999 });
79         $("#pendingcollapserow").remove();
80     $("#pendingt tr").show();
81         $("#pendingt tbody.filterclass tr:gt(" + (rowsToCollapse-1) + ")").hide();
82         $("#pendingt").before("<p id=\"pendingcollapserow\">" + _("Only the first ")  + rowsToCollapse +  _(" items are displayed.") + " <a href=\"javascript:pendingExpand();\">" + _("Click here to show all ")  + rowCountPending + _(" items") + "<\/a>.<\/p>");
83
84     }
85
86     // Expend pending items table
87     function pendingExpand() {
88         $.cookie("pendingKeepExpanded", 1, { path: "/", expires: 9999 });
89         $("#pendingcollapserow").remove();
90         $("#pendingt tr").show();
91     $("#pendingt tbody.filterclass tr.orderfound").remove();
92         $("#pendingt").before("<p id=\"pendingcollapserow\">" + rowCountPending + _(" items are displayed.") + " <a href=\"javascript:pendingCollapse();\">" + _("Click here to show only the first ") + rowsToCollapse + _(" items") + "<\/a>.<\/p>");
93     }
94
95     // Collapse already received items table
96     function receivedCollapse() {
97         $.cookie("receivedKeepExpanded", 0, { path: "/", expires: 9999 });
98         $("#receivedcollapserow").remove();
99         $("#receivedt tbody.filterclass tr:gt(" + (rowsToCollapse-1) + ")").hide();
100         $("#receivedt").before("<p id=\"receivedcollapserow\">" + _("Only the first ") + rowsToCollapse + _(" items are displayed.") + " <a href=\"javascript:receivedExpand();\">" + _("Click here to show all ") + rowCountReceived + _(" items") + "<\/a>.<\/p>");
101     }
102
103     // Expand already received items table
104     function receivedExpand() {
105         $.cookie("receivedKeepExpanded", 1, { path: "/", expires: 9999 });
106         $("#receivedcollapserow").remove();
107         $("#receivedt tr").show();
108         $("#receivedt").before("<p id=\"receivedcollapserow\">" + _("All ") + rowCountReceived + _(" items are displayed.") + " <a href=\"javascript:receivedCollapse();\">" + _("Click here to show only the first ") + rowsToCollapse + _(" items") + "<\/a>.<\/p>");
109     }
110
111 //]]>
112 </script>
113 <script type="text/javascript">
114 //<![CDATA[
115             function confirm_delete_item(ordernumber, basketno, biblionumber) {
116                 var is_confirmed = confirm(_('Are you sure you want to delete this order ?'));
117                 if (is_confirmed) {
118                     window.location = "addorder.pl?ordernumber="+ordernumber+"&basketno="+basketno+"&quantity=0&biblionumber="+biblionumber;
119                 }
120             }
121             
122             function confirm_delete_biblio(ordernumber, basketno, biblionumber) {
123                 var is_confirmed = confirm(_('Are you sure you want to delete this catalog record and order ?'));
124                 if (is_confirmed) {
125                     window.location = "addorder.pl?ordernumber="+ordernumber+"&basketno="+basketno+"&quantity=0&biblionumber="+biblionumber+"&delbiblio=1";
126                     }
127             }
128 //]]>
129 </script>
130 </head>
131 <body id="acq_parcel" class="acq">
132 [% INCLUDE 'header.inc' %]
133 [% INCLUDE 'acquisitions-search.inc' %]
134
135 <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;
136     [% IF ( datereceived ) %]
137         Receipt summary for <i>[% name %]</i>
138         [% IF ( invoice ) %]
139             <i>[ [% invoice %] ]</i>
140         [% END %]
141         on <i>[% formatteddatereceived %]</i>
142     [% ELSE %]
143         Receive orders from [% name %]
144     [% END %]
145 </div>
146
147 <div id="doc3" class="yui-t2">
148
149    <div id="bd">
150         <div id="yui-main">
151         <div class="yui-b">
152         [% IF ( receive_error ) %]
153         <div class="dialog alert">
154         <h3>Error adding items:</h3>
155         <ul>
156         [% FOREACH error_loo IN error_loop %]
157                 <li>[% error_loo.error_param %][% IF ( error_loo.error_duplicate_barcode ) %]Duplicate Barcode[% END %] <!-- todo: other error conditions come here. --></li>
158         [% END %]
159         </ul>
160         </div>
161         [% END %]
162     <h1>
163         [% IF ( datereceived ) %]
164             Receipt summary for <i>[% name %]</i> [% IF ( invoice ) %] <i> [ [% invoice %] ] </i>[% END %] on <i>[% formatteddatereceived %]</i>
165         [% ELSE %]
166             Receive orders from [% name %]
167         [% END %]
168     </h1>
169
170     [% IF ( success_delorder ) %]
171     <div class="dialog message">The order has been successfully canceled.</div>
172     [% ELSE %]
173         [% IF ( error_delitem ) %]
174             <div class="dialog alert">The order has been canceled, although one or more items could not have been deleted.</div>
175         [% END %]
176         [% IF ( error_delbiblio ) %]
177             <div class="dialog alert">The order has been canceled, although the record has not been deleted.</div>
178         [% END %]
179     [% END %]
180
181     [% IF (error_cancelling_receipt) %]
182       <div class="error">
183       Cannot cancel receipt. Possible reasons :
184       <ul>
185         <li>
186           The order line you trying to cancel was created from a partial receipt
187           of another order line which is already received. Try to cancel this
188           one first and retry.
189         </li>
190         <li>
191           The order line you trying to cancel was created from a partial receipt
192           of another order line which has been deleted. Cancellation is not
193           possible.
194         </li>
195       </ul>
196       </div>
197     [% END %]
198
199 <div id="acqui_receive_summary">
200 <p><strong>Invoice number:</strong> [% invoice %] <strong>Received by:</strong> [% loggedinusername %] <strong>On:</strong> [% formatteddatereceived %]</p>
201 </div>
202 [% UNLESS (invoiceclosedate) %]
203 <div id="acqui_receive_search">
204     <h3>Pending orders</h3>
205
206  [% IF ( loop_orders ) %]<table id="pendingt">
207     <thead>
208         <tr>
209             <th>Basket</th>
210             <th>Order line</th>
211             <th>Summary</th>
212             <th>View record</th>
213             <th>Quantity</th>
214             <th>Unit cost</th>
215             <th>Order cost</th>
216             <th>Fund</th>
217             <th>&nbsp;</th>
218             <th>&nbsp;</th>
219         </tr>
220     </thead>
221     <tbody class="filterclass">
222         [% FOREACH loop_order IN loop_orders %]
223             <tr>
224                 <td class="basketfilterclass"><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_order.basketno %]">[% loop_order.basketno %]</a></td>
225                 <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&amp;booksellerid=[% loop_order.booksellerid %]">[% loop_order.ordernumber %]</a></td>
226                 <td class="summaryfilterclass">
227                   <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
228                 [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
229                 [% IF ( loop_order.isbn ) %] &ndash; [% loop_order.isbn %][% END %]
230                 [% IF ( loop_order.publishercode ) %]<br />Publisher :[% loop_order.publishercode %][% END %]
231                 [% IF ( loop_order.suggestionid ) %]
232                     <br/>
233                     Suggested by: [% loop_order.surnamesuggestedby %][% IF ( loop_order.firstnamesuggestedby ) %], [% loop_order.firstnamesuggestedby %] [% END %]
234                     (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_order.suggestionid %]&amp;op=show">suggestion #[% loop_order.suggestionid %]</a>)
235                 [% END %]
236                 <br />
237                 [% IF ( loop_order.notes ) %]
238                     <p class="ordernote"><strong>Note: </strong>[% loop_order.notes|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&amp;referrer=/cgi-bin/koha/acqui/parcel.pl%3Fbooksellerid=[% loop_order.booksellerid %]&amp;datereceived=[% loop_order.invoicedatereceived %]&amp;invoice=[% loop_order.invoice %]">Change note</a>]</p>
239                 [% ELSE %]
240                     [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&amp;referrer=/cgi-bin/koha/acqui/parcel.pl%3Fbooksellerid=[% loop_order.booksellerid %]&amp;datereceived=[% loop_order.invoicedatereceived %]&amp;invoice=[% loop_order.invoice %]">Add note</a>]
241                 [% END %]
242                 </td>
243                 <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&amp;id=[% loop_order.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">Card</a></td>
244                 <td>[% loop_order.quantity %]</td>
245                 <td>[% loop_order.ecost %]</td>
246                 <td>[% loop_order.ordertotal %]</td>
247                 <td>[% loop_order.budget_name %]</td>
248                                 <td>
249                               <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&amp;invoiceid=[% invoiceid %]">Receive</a>
250                                 </td>
251                                 <td>
252                         [% IF ( loop_order.left_holds_on_order ) %]
253                         <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>
254                         [% ELSE %]
255                         <a href="javascript:confirm_delete_item([% loop_order.ordernumber %],[% loop_order.biblionumber %])" class="button">Delete order</a><br>
256                         [% END %]
257                         [% IF ( loop_order.can_del_bib ) %]
258                         <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %],[% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br>
259                         [% ELSE %]
260                         <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
261                         [% END %]
262                         [% IF ( loop_order.left_item ) %]
263                         <b title="Can't delete catalog record, because of [% loop_order.items %] existing item(s)" >[% loop_order.items %] item(s) left</b><br>
264                         [% END %]
265                         [% IF ( loop_order.left_biblio ) %]
266                         <b title="Can't delete catalog record, delete other orders linked to it first">[% loop_order.biblios %] order(s) left</b><br>
267                         [% END %]
268                         [% IF ( loop_order.left_subscription ) %]
269                         <b title="Can't delete catalog record, delete subscriptions first">[% loop_order.subscriptions %] subscription(s) left</b><br>
270                         [% END %]
271                         [% IF ( loop_order.left_holds ) %]
272                         <b title="Can't delete catalog record or order, cancel holds first">[% loop_order.holds %] hold(s) left</b>
273                         [% END %]
274                     </td>
275                 </tr>
276             [% END %]
277         </tbody>
278          </table>[% ELSE %]There are no pending orders.[% END %]
279        <div id="resultnumber">
280         <!-- Row of numbers corresponding to search result pages -->
281         [% IF ( displayprev ) %]
282             <a href="parcel.pl?invoiceid=[% invoiceid %]&amp;startfrom=[% prevstartfrom %][% IF ( resultsperpage ) %]&amp;resultsperpage=[% resultsperpage %][% END %]#resultnumber">&lt;&lt; Previous</a>
283         [% END %]
284         [% FOREACH number IN numbers %]
285             [% IF ( number.highlight ) %]
286             <span class="current">[% number.number %]</span>
287             [% ELSE %]
288             <a href="parcel.pl?invoiceid=[% invoiceid %]&amp;startfrom=[% number.startfrom %][% IF ( resultsperpage ) %]&amp;resultsperpage=[% resultsperpage %][% END %]#resultnumber">[% number.number %]</a>
289             [% END %]
290         [% END %]
291         [% IF ( displaynext ) %]
292             <a href="parcel.pl?invoiceid=[% invoiceid %]&amp;startfrom=[% nextstartfrom %][% IF ( resultsperpage ) %]&amp;resultsperpage=[% resultsperpage %][% END %]#resultnumber">Next &gt;&gt;</a>
293         [% END %]
294         </div>
295     </div>
296 [% ELSE %]
297     <p>
298         Invoice is closed, so you can't receive orders anymore.
299         <a href="/cgi-bin/koha/acqui/invoice.pl?op=reopen&invoiceid=[% invoiceid %]&referer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]">Reopen it</a>.
300     </p>
301 [% END %]
302
303 <div id="acqui_receive_receivelist">
304     <h3>Already received</h3>
305
306
307    [% IF ( loop_received ) %]
308    <form action="/cgi-bin/koha/acqui/parcel.pl" method="get" name="orderform">
309     <table id="receivedt">
310         <thead>
311             <tr>
312                 <th>Basket</th>
313         <th>Order line</th>
314                 <th>Summary</th>
315         <th>View record</th>
316                 <th>Quantity</th>  
317                 <th>Est cost</th>
318                 <th>Actual cost</th>
319                 <th>TOTAL</th>
320         <th></th>
321             </tr>
322     </thead>
323     <tfoot>
324         <tr>
325             <th colspan="7" class="total">Total tax exc.</th>
326             <th>[% total_gste %]</th>
327             <th></th>
328         </tr>
329         [% FOREACH book_foot IN book_foot_loop %]
330             <tr>
331                 <th colspan="7">Total (GST [% book_foot.gstrate * 100 | format ("%.1f") %]%)</th>
332                 <th>[% book_foot.value %]</th>
333                 <th></th>
334             </tr>
335         [% END %]
336         <tr>
337             <th colspan="7" class="total">Total tax inc.</th>
338             <th>[% total_gsti %]</th>
339             <th></th>
340         </tr>
341     </tfoot>
342         <tbody class="filterclass">
343             [% FOREACH loop_receive IN loop_received %]
344             <tr>
345                 <td><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_receive.basketno %]">[% loop_receive.basketno %]</a></td>
346                 <td><a href="neworderempty.pl?ordernumber=[% loop_receive.ordernumber %]&amp;booksellerid=[% booksellerid %]">[% loop_receive.ordernumber %]</a></td>
347                 <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_receive.biblionumber %]">[% loop_receive.title |html %]</a>
348                 [% IF ( loop_receive.author ) %] / [% loop_receive.author %][% END %]
349                 [% IF ( loop_receive.isbn ) %] - [% loop_receive.isbn %][% END %]
350                 [% IF ( loop_receive.publishercode ) %]<br />Publisher :[% loop_receive.publishercode %][% END %]
351                 [% IF ( loop_receive.suggestionid ) %]
352                     <br/>
353                     Suggested by: [% loop_receive.surnamesuggestedby %][% IF ( loop_receive.firstnamesuggestedby ) %], [% loop_receive.firstnamesuggestedby %] [% END %]
354                     (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_receive.suggestionid %]&amp;op=show">suggestion #[% loop_receive.suggestionid %]</a>)
355                 [% END %]
356                 </td>
357                 <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&amp;id=[% loop_receive.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">Card</a></td>
358                 <td>[% loop_receive.quantityreceived %]</td>
359                 <td>[% loop_receive.ecost %]</td>
360                 <td>[% loop_receive.unitprice %]</td>
361                 <td>[% loop_receive.total %]</td>
362                 <td>
363                     [% IF (loop_receive.cannot_cancel) %]
364                         [% span_title = BLOCK %]
365                             Cannot cancel receipt of this order line because it
366                             was created from a partial receipt of order line no.
367                             [% loop_receive.parent_ordernumber %], which is
368                             already received. Try cancelling this one first and
369                             retry.
370                         [% END %]
371                         <span title="[% span_title | collapse %]">
372                             Can't cancel receipt
373                         </span>
374                     [% ELSE %]
375                         <a href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid %]&op=cancelreceipt&ordernumber=[% loop_receive.ordernumber %]">Cancel receipt</a>
376                     [% END %]
377                 </td>
378             </tr>
379             [% END %]
380         </tbody>
381     </table>
382     </form>
383         [% ELSE %]There are no received orders.[% END %]
384 </div>
385
386 <!--<form action="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% booksellerid %]" method="post">-->
387 [% IF (invoiceclosedate) %]
388     <a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=[% invoiceid %]">View invoice</a>
389 [% ELSE %]
390     <form action="/cgi-bin/koha/acqui/invoice.pl" method="get">
391         <input type="hidden" name="invoiceid" value="[% invoiceid %]" />
392         <fieldset class="action">
393             <input type="submit" value="Finish receiving" />
394         </fieldset>
395     </form>
396 [% END %]
397
398 </div>
399 </div>
400 <div class="yui-b">
401 <form action="/cgi-bin/koha/acqui/parcel.pl" id="filterform" method="post">
402         <fieldset class="brief">
403
404             <h4>Filter</h4>
405
406             <ol>
407
408                 <li>
409                     <label for="summaryfilter">ISBN, author or title :</label>
410             <input type="text" name="summaryfilter" id="summaryfilter" value="[% summaryfilter %]"/>
411                 </li>
412
413                 <li>
414                     <label for="basketfilter">Basket :</label>
415             <input type="text" name="basketfilter" id="basketfilter" value="[% basketfilter %]"/>
416                 </li>
417
418                 <li>
419             <label for="orderfilter">Order line :</label>
420             <input type="text" name="orderfilter" id="orderfilter" value="[% orderfilter %]"/>
421                 </li>
422                 [% IF (UNIMARC) %]
423         <li>
424             <label for="eanfilter">EAN :</label>
425             <input type="text" name="eanfilter" id="eanfilter" value="[% eanfilter %]"/>
426         </li>
427                 [% END %]
428             </ol>
429                 <fieldset class="action">
430         <input type="hidden" value="search" name="op" />
431         <input type="hidden" value="[% invoiceid %]" name="invoiceid" />
432         <input type="submit" value="Filter" />
433         <a href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid %]">Clear</a>
434                 </fieldset>
435
436
437         </fieldset>
438     </form>
439 [% INCLUDE 'acquisitions-menu.inc' %]
440 </div>
441 </div>
442 [% INCLUDE 'intranet-bottom.inc' %]
443