Bug 8028 - Make table collapsing on parcel.pl sticky
[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, 7, 8 ], "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             ],
33             "sPaginationType": "four_button"
34         } ) );
35         var receivedt = $("#receivedt").dataTable($.extend(true, {}, dataTablesDefaults, {
36             "aoColumnDefs": [
37                 { "aTargets": [ 3 ], "bSortable": false, "bSearchable": false },
38             ],
39             "aoColumns": [
40                 { "sType": "num-html" },
41                 { "sType": "num-html" },
42                 { "sType": "html" },
43                 null,
44                 null,
45                 null,
46                 null,
47                 null,
48             ],
49             "sPaginationType": "four_button"
50         } ) );
51
52         rowCountPending  = $("#pendingt tbody.filterclass tr").length;
53         rowCountReceived = $("#receivedt tbody.filterclass tr").length;
54         if (rowCountPending  > rowsToCollapse && $.cookie("pendingKeepExpanded") != 1 ) { pendingCollapse(); }
55         if (rowCountReceived > rowsToCollapse && $.cookie("receivedKeepExpanded") != 1 ) { receivedCollapse(); } else { receivedExpand(); }
56     });
57
58      // Case-insensitive version of jquery's contains function
59      jQuery.extend(jQuery.expr[':'], {
60             icontains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
61      });
62
63      // Contains exactly function
64      jQuery.extend(jQuery.expr[':'], {
65           containsExactly: "$(a).text() == m[3]"
66      });
67
68
69     // Collapse pending items table
70     function pendingCollapse() {
71         $.cookie("pendingKeepExpanded", 0, { path: "/", expires: 9999 });
72         $("#pendingcollapserow").remove();
73     $("#pendingt tr").show();
74         $("#pendingt tbody.filterclass tr:gt(" + (rowsToCollapse-1) + ")").hide();
75         $("#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>");
76
77     }
78
79     // Expend pending items table
80     function pendingExpand() {
81         $.cookie("pendingKeepExpanded", 1, { path: "/", expires: 9999 });
82         $("#pendingcollapserow").remove();
83         $("#pendingt tr").show();
84     $("#pendingt tbody.filterclass tr.orderfound").remove();
85         $("#pendingt").before("<p id=\"pendingcollapserow\">" + rowCountPending + _(" items are displayed.") + "<a href=\"javascript:pendingCollapse();\">" + _("Click here to show only the first ") + rowsToCollapse + _(" items") + "<\/a>.<\/p>");
86     }
87
88     // Collapse already received items table
89     function receivedCollapse() {
90         $.cookie("receivedKeepExpanded", 0, { path: "/", expires: 9999 });
91         $("#receivedcollapserow").remove();
92         $("#receivedt tbody.filterclass tr:gt(" + (rowsToCollapse-1) + ")").hide();
93         $("#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>");
94     }
95
96     // Expand already received items table
97     function receivedExpand() {
98         $.cookie("receivedKeepExpanded", 1, { path: "/", expires: 9999 });
99         $("#receivedcollapserow").remove();
100         $("#receivedt tr").show();
101         $("#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>");
102     }
103
104 //]]>
105 </script>
106 <script type="text/javascript">
107 //<![CDATA[
108             function confirm_delete_item(ordernumber, basketno, biblionumber) {
109                 var is_confirmed = confirm(_('Are you sure you want to delete this order ?'));
110                 if (is_confirmed) {
111                     window.location = "addorder.pl?ordernumber="+ordernumber+"&basketno="+basketno+"&quantity=0&biblionumber="+biblionumber;
112                 }
113             }
114             
115             function confirm_delete_biblio(ordernumber, basketno, biblionumber) {
116                 var is_confirmed = confirm(_('Are you sure you want to delete this catalog record and order ?'));
117                 if (is_confirmed) {
118                     window.location = "addorder.pl?ordernumber="+ordernumber+"&basketno="+basketno+"&quantity=0&biblionumber="+biblionumber+"&delbiblio=1";
119                     }
120             }
121 //]]>
122 </script>
123 </head>
124 <body id="acq_parcel" class="acq">
125 [% INCLUDE 'header.inc' %]
126 [% INCLUDE 'acquisitions-search.inc' %]
127
128 <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;  [% IF ( datereceived ) %]
129             Receipt summary for <i>[% name %]</i> [% IF ( invoice ) %]<i>[ [% invoice %] ]</i>[% END %] on <i>[% formatteddatereceived %]</i>
130         [% ELSE %]
131             Receive orders from [% name %]
132         [% END %]</div>
133
134 <div id="doc3" class="yui-t2">
135
136    <div id="bd">
137         <div id="yui-main">
138         <div class="yui-b">
139         [% IF ( receive_error ) %]
140         <div class="dialog alert">
141         <h3>Error adding items:</h3>
142         <ul>
143         [% FOREACH error_loo IN error_loop %]
144                 <li>[% error_loo.error_param %][% IF ( error_loo.error_duplicate_barcode ) %]Duplicate Barcode[% END %] <!-- todo: other error conditions come here. --></li>
145         [% END %]
146         </ul>
147         </div>
148         [% END %]
149     <h1>
150         [% IF ( datereceived ) %]
151             Receipt summary for <i>[% name %]</i> [% IF ( invoice ) %] <i> [ [% invoice %] ] </i>[% END %] on <i>[% formatteddatereceived %]</i>
152         [% ELSE %]
153             Receive orders from [% name %]
154         [% END %]
155     </h1>
156
157     [% IF ( success_delorder ) %]
158     <div class="dialog message">The order has been successfully canceled.</div>
159     [% ELSE %]
160         [% IF ( error_delitem ) %]
161             <div class="dialog alert">The order has been canceled, although one or more items could not have been deleted.</div>
162         [% END %]
163         [% IF ( error_delbiblio ) %]
164             <div class="dialog alert">The order has been canceled, although the record has not been deleted.</div>
165         [% END %]
166     [% END %]
167
168 <div id="acqui_receive_summary">
169 <p><strong>Invoice number:</strong> [% invoice %] <strong>Received by:</strong> [% loggedinusername %] <strong>On:</strong> [% formatteddatereceived %]</p>
170         <!-- TODO: Add date picker, change rcv date. -->
171 </div>
172 <div id="acqui_receive_search">
173     <h3>Pending orders</h3>
174
175  [% IF ( loop_orders ) %]<table id="pendingt">
176     <thead>
177         <tr>
178             <th>Basket</th>
179             <th>Order line</th>
180             <th>Summary</th>
181             <th>View record</th>
182             <th>Quantity</th>
183             <th>Unit cost</th>
184             <th>Order cost</th>
185             <th>&nbsp;</th>
186             <th>&nbsp;</th>
187         </tr>
188     </thead>
189                 <tfoot>
190             <tr><td colspan="4" class="total">TOTAL</td>
191                 <td> [% totalPquantity %] </td>
192                                 <td>&nbsp;</td>
193                 <td>[% ordergrandtotal %]</td>
194                                 <td>&nbsp;</td>
195                                 <td>&nbsp;</td>
196             </tr>
197                 </tfoot>
198     <tbody class="filterclass">
199         [% FOREACH loop_order IN loop_orders %]
200             <tr>
201                 <td class="basketfilterclass"><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_order.basketno %]">[% loop_order.basketno %]</a></td>
202                 <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&amp;booksellerid=[% loop_order.booksellerid %]">[% loop_order.ordernumber %]</a></td>
203                 <td class="summaryfilterclass">
204                   <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
205                 [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
206                 [% IF ( loop_order.isbn ) %] &ndash; [% loop_order.isbn %][% END %]
207                 [% IF ( loop_order.publishercode ) %]<br />Publisher :[% loop_order.publishercode %][% END %]
208                 [% IF ( loop_order.suggestionid ) %]
209                     <br/>
210                     Suggested by: [% loop_order.surnamesuggestedby %][% IF ( loop_order.firstnamesuggestedby ) %], [% loop_order.firstnamesuggestedby %] [% END %]
211                     (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_order.suggestionid %]&amp;op=show">suggestion #[% loop_order.suggestionid %]</a>)
212                 [% END %]
213                 <br />
214                 [% IF ( loop_order.notes ) %]
215                     <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>
216                 [% ELSE %]
217                     [<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>]
218                 [% END %]
219                 </td>
220                 <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>
221                 <td>[% loop_order.quantity %]</td>
222                 <td>[% loop_order.ecost %]</td>
223                 <td>[% loop_order.ordertotal %]</td>
224                                 <td>
225                               <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&amp;datereceived=[% invoicedatereceived %]&amp;invoice=[% invoice %]&amp;gst=[% loop_order.gst %]&amp;freight=[% loop_order.freight %]&amp;booksellerid=[% loop_order.booksellerid %]">Receive</a>
226                                     
227                                 </td>
228                                 <td>
229                                     [% IF ( loop_order.left_holds_on_order ) %]
230                     <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>
231                     [% ELSE %]
232                     <a href="javascript:confirm_delete_item([% loop_order.ordernumber %],[% loop_order.basketno %],[% loop_order.biblionumber %])" class="button">Delete order</a><br>
233                     [% END %]
234                     [% IF ( loop_order.can_del_bib ) %]
235                     <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %],[% loop_order.basketno %],[% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br>
236                     [% ELSE %]
237                     <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
238                     [% END %]
239                     [% IF ( loop_order.left_item ) %]
240                     <b title="Can't delete catalog record, because of [% loop_order.items %] existing item(s)" >[% loop_order.items %] item(s) left</b><br>
241                     [% END %]
242                     [% IF ( loop_order.left_biblio ) %]
243                     <b title="Can't delete catalog record, delete other orders linked to it first">[% loop_order.biblios %] order(s) left</b><br>
244                     [% END %]
245                     [% IF ( loop_order.left_subscription ) %]
246                     <b title="Can't delete catalog record, delete subscriptions first">[% loop_order.subscriptions %] subscription(s) left</b><br>
247                     [% END %]
248                     [% IF ( loop_order.left_holds ) %]
249                     <b title="Can't delete catalog record or order, cancel holds first">[% loop_order.holds %] hold(s) left</b>
250                     [% END %]
251                                 </td>
252             </tr>
253         [% END %]
254     </tbody>
255      </table>[% ELSE %]There are no pending orders.[% END %]
256    <div id="resultnumber">
257         <!-- Row of numbers corresponding to search result pages -->
258         [% IF ( displayprev ) %]
259                 <a href="parcel.pl?type=intra&amp;booksellerid=[% booksellerid %]&amp;startfrom=[% prevstartfrom %][% IF ( datereceived ) %]&amp;datereceived=[% datereceived %][% END %][% IF ( invoice ) %]&amp;invoice=[% invoice %][% END %][% IF ( resultsperpage ) %]&amp;resultsperpage=[% resultsperpage %][% END %]#resultnumber">&lt;&lt; Previous</a>
260         [% END %]
261         [% FOREACH number IN numbers %]
262                 [% IF ( number.highlight ) %]
263                 <span class="current">[% number.number %]</span>
264                 [% ELSE %]
265                 <a href="parcel.pl?type=intra&amp;booksellerid=[% booksellerid %]&amp;startfrom=[% number.startfrom %][% IF ( datereceived ) %]&amp;datereceived=[% datereceived %][% END %][% IF ( invoice ) %]&amp;invoice=[% invoice %][% END %][% IF ( resultsperpage ) %]&amp;resultsperpage=[% resultsperpage %][% END %]#resultnumber">[% number.number %]</a>
266                 [% END %]
267         [% END %]
268         [% IF ( displaynext ) %]
269                 <a href="parcel.pl?type=intra&amp;booksellerid=[% booksellerid %]&amp;startfrom=[% nextstartfrom %][% IF ( datereceived ) %]&amp;datereceived=[% datereceived %][% END %][% IF ( invoice ) %]&amp;invoice=[% invoice %][% END %][% IF ( resultsperpage ) %]&amp;resultsperpage=[% resultsperpage %][% END %]#resultnumber">Next &gt;&gt;</a>
270         [% END %]
271         </div>
272 </div>
273 <div id="acqui_receive_receivelist">
274     <h3>Already received</h3>
275
276    [% IF ( loop_received ) %]
277    <form action="/cgi-bin/koha/acqui/parcel.pl" method="get" name="orderform">
278     <table id="receivedt">
279         <thead>
280             <tr>
281                 <th>Basket</th>
282         <th>Order line</th>
283                 <th>Summary</th>
284         <th>View record</th>
285                 <th>Quantity</th>  
286                 <th>Est cost</th>
287                 <th>Actual cost</th>
288                 <th>TOTAL</th>
289             </tr>
290     </thead>
291     <tfoot>
292             <tr>
293                 <td colspan="4" class="total">SUBTOTAL</td>
294                 <td colspan="2">&nbsp;</td>
295                 <td>[% totalprice %]</td>
296                 <td>[% tototal %]</td>
297             </tr>
298               
299               [% IF ( totalfreight ) %]
300                     <tr>
301                         <td colspan="6">&nbsp;
302                 </td>
303                             <td>Shipping</td>
304                 <td>[% totalfreight %]</td>
305                 </tr> 
306             [% END %]
307               [% IF ( gst ) %]
308                     <tr>
309                         <td colspan="6">
310                 <p class="message">
311                             <b>HELP</b><br />
312                     The total at the bottom of the page should be within a few cents of the total for the invoice.
313                 </p>
314                 </td>
315                             <td><b>Tax rate</b></td>
316                 <td>[% gst %]</td>
317                 </tr> 
318             [% END %]
319             <tr>
320             <td colspan="4" class="total">TOTAL</td>
321                 <td>[% totalquantity %]</td>
322                 <td colspan="2">&nbsp;</td>
323                 <td>[% grandtot %]</td>
324             </tr>
325     </tfoot>
326         <tbody class="filterclass">
327             [% FOREACH loop_receive IN loop_received %]
328             <tr>
329                 <td><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_receive.basketno %]">[% loop_receive.basketno %]</a></td>
330                 <td><a href="neworderempty.pl?ordernumber=[% loop_receive.ordernumber %]&amp;booksellerid=[% booksellerid %]">[% loop_receive.ordernumber %]</a></td>
331                 <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_receive.biblionumber %]">[% loop_receive.title |html %]</a>
332                 [% IF ( loop_receive.author ) %] / [% loop_receive.author %][% END %]
333                 [% IF ( loop_receive.isbn ) %] - [% loop_receive.isbn %][% END %]
334                 [% IF ( loop_receive.publishercode ) %]<br />Publisher :[% loop_receive.publishercode %][% END %]
335                 [% IF ( loop_receive.suggestionid ) %]
336                     <br/>
337                     Suggested by: [% loop_receive.surnamesuggestedby %][% IF ( loop_receive.firstnamesuggestedby ) %], [% loop_receive.firstnamesuggestedby %] [% END %]
338                     (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_receive.suggestionid %]&amp;op=show">suggestion #[% loop_receive.suggestionid %]</a>)
339                 [% END %]
340                 </td>
341                 <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>
342                 <td>[% loop_receive.quantityreceived %]</td>
343                 <td>[% loop_receive.ecost %]</td>
344                 <td>[% loop_receive.unitprice %]</td>
345                 <td>[% loop_receive.total %]</td>
346             </tr>
347             [% END %]
348         </tbody>
349     </table>
350     </form>
351         [% ELSE %]There are no received orders.[% END %]
352 </div>
353
354 <!--<form action="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% booksellerid %]" method="post">-->
355 <form action="parcels.pl?booksellerid=[% booksellerid %]" method="post">
356     <input type="hidden" name="booksellerid" value="[% booksellerid %]" />
357     <fieldset class="action">
358         <input type="submit" value="Finish receiving" />
359     </fieldset>
360 </form>
361
362 </div>
363 </div>
364 <div class="yui-b">
365 <form action="/cgi-bin/koha/acqui/parcel.pl" id="filterform" method="post">
366         <fieldset class="brief">
367
368             <h4>Filter</h4>
369
370             <ol>
371
372                 <li>
373                     <label for="summaryfilter">ISBN, author or title :</label>
374             <input type="text" name="summaryfilter" id="summaryfilter" value="[% summaryfilter %]"/>
375                 </li>
376
377                 <li>
378                     <label for="basketfilter">Basket :</label>
379             <input type="text" name="basketfilter" id="basketfilter" value="[% basketfilter %]"/>
380                 </li>
381
382                 <li>
383             <label for="orderfilter">Order line :</label>
384             <input type="text" name="orderfilter" id="orderfilter" value="[% orderfilter %]"/>
385                 </li>
386                 [% IF (UNIMARC) %]
387         <li>
388             <label for="eanfilter">EAN :</label>
389             <input type="text" name="eanfilter" id="eanfilter" value="[% eanfilter %]"/>
390         </li>
391                 [% END %]
392             </ol>
393                 <fieldset class="action">
394         <input type="hidden" value="search" name="op" />
395         <input type="hidden" value="[% booksellerid %]" name="booksellerid" />
396         <input type="hidden" value="[% invoice %]" name="invoice" />
397         <input type="hidden" value="[% invoicedatereceived %]" name="datereceived" />
398         <input type="submit" value="Filter" />
399         <a href="/cgi-bin/koha/acqui/parcel.pl?booksellerid=[% booksellerid %]&invoice=[% invoice %]&op=new&datereceived=[% formatteddatereceived %]">Clear</a>
400                 </fieldset>
401
402
403         </fieldset>
404     </form>
405 [% INCLUDE 'acquisitions-menu.inc' %]
406 </div>
407 </div>
408 [% INCLUDE 'intranet-bottom.inc' %]
409