Bug 7583: Cancel a receipt
[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 ) { if ( $.cookie("pendingKeepExpanded") != 1 ) { pendingCollapse(); } else { pendingExpand(); } }
55         if (rowCountReceived > rowsToCollapse ) { if ( $.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     [% IF (error_cancelling_receipt) %]
169       <div class="error">
170       Cannot cancel receipt. Possible reasons :
171       <ul>
172         <li>
173           You are trying to cancel the receipt of an order line whose parent
174           order line is already received. Cancel this parent order line and
175           retry.
176         </li>
177         <li>Parent order line has been deleted.</li>
178       </ul>
179       </div>
180     [% END %]
181
182 <div id="acqui_receive_summary">
183 <p><strong>Invoice number:</strong> [% invoice %] <strong>Received by:</strong> [% loggedinusername %] <strong>On:</strong> [% formatteddatereceived %]</p>
184         <!-- TODO: Add date picker, change rcv date. -->
185 </div>
186 <div id="acqui_receive_search">
187     <h3>Pending orders</h3>
188
189  [% IF ( loop_orders ) %]<table id="pendingt">
190     <thead>
191         <tr>
192             <th>Basket</th>
193             <th>Order line</th>
194             <th>Summary</th>
195             <th>View record</th>
196             <th>Quantity</th>
197             <th>Unit cost</th>
198             <th>Order cost</th>
199             <th>&nbsp;</th>
200             <th>&nbsp;</th>
201         </tr>
202     </thead>
203                 <tfoot>
204             <tr><td colspan="4" class="total">TOTAL</td>
205                 <td> [% totalPquantity %] </td>
206                                 <td>&nbsp;</td>
207                 <td>[% ordergrandtotal %]</td>
208                                 <td>&nbsp;</td>
209                                 <td>&nbsp;</td>
210             </tr>
211                 </tfoot>
212     <tbody class="filterclass">
213         [% FOREACH loop_order IN loop_orders %]
214             <tr>
215                 <td class="basketfilterclass"><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_order.basketno %]">[% loop_order.basketno %]</a></td>
216                 <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&amp;booksellerid=[% loop_order.booksellerid %]">[% loop_order.ordernumber %]</a></td>
217                 <td class="summaryfilterclass">
218                   <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
219                 [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
220                 [% IF ( loop_order.isbn ) %] &ndash; [% loop_order.isbn %][% END %]
221                 [% IF ( loop_order.publishercode ) %]<br />Publisher :[% loop_order.publishercode %][% END %]
222                 [% IF ( loop_order.suggestionid ) %]
223                     <br/>
224                     Suggested by: [% loop_order.surnamesuggestedby %][% IF ( loop_order.firstnamesuggestedby ) %], [% loop_order.firstnamesuggestedby %] [% END %]
225                     (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_order.suggestionid %]&amp;op=show">suggestion #[% loop_order.suggestionid %]</a>)
226                 [% END %]
227                 <br />
228                 [% IF ( loop_order.notes ) %]
229                     <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>
230                 [% ELSE %]
231                     [<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>]
232                 [% END %]
233                 </td>
234                 <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>
235                 <td>[% loop_order.quantity %]</td>
236                 <td>[% loop_order.ecost %]</td>
237                 <td>[% loop_order.ordertotal %]</td>
238                                 <td>
239                               <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>
240                                     
241                                 </td>
242                                 <td>
243                                     [% IF ( loop_order.left_holds_on_order ) %]
244                     <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>
245                     [% ELSE %]
246                     <a href="javascript:confirm_delete_item([% loop_order.ordernumber %],[% loop_order.basketno %],[% loop_order.biblionumber %])" class="button">Delete order</a><br>
247                     [% END %]
248                     [% IF ( loop_order.can_del_bib ) %]
249                     <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %],[% loop_order.basketno %],[% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br>
250                     [% ELSE %]
251                     <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
252                     [% END %]
253                     [% IF ( loop_order.left_item ) %]
254                     <b title="Can't delete catalog record, because of [% loop_order.items %] existing item(s)" >[% loop_order.items %] item(s) left</b><br>
255                     [% END %]
256                     [% IF ( loop_order.left_biblio ) %]
257                     <b title="Can't delete catalog record, delete other orders linked to it first">[% loop_order.biblios %] order(s) left</b><br>
258                     [% END %]
259                     [% IF ( loop_order.left_subscription ) %]
260                     <b title="Can't delete catalog record, delete subscriptions first">[% loop_order.subscriptions %] subscription(s) left</b><br>
261                     [% END %]
262                     [% IF ( loop_order.left_holds ) %]
263                     <b title="Can't delete catalog record or order, cancel holds first">[% loop_order.holds %] hold(s) left</b>
264                     [% END %]
265                                 </td>
266             </tr>
267         [% END %]
268     </tbody>
269      </table>[% ELSE %]There are no pending orders.[% END %]
270    <div id="resultnumber">
271         <!-- Row of numbers corresponding to search result pages -->
272         [% IF ( displayprev ) %]
273                 <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>
274         [% END %]
275         [% FOREACH number IN numbers %]
276                 [% IF ( number.highlight ) %]
277                 <span class="current">[% number.number %]</span>
278                 [% ELSE %]
279                 <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>
280                 [% END %]
281         [% END %]
282         [% IF ( displaynext ) %]
283                 <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>
284         [% END %]
285         </div>
286 </div>
287 <div id="acqui_receive_receivelist">
288     <h3>Already received</h3>
289
290
291    [% IF ( loop_received ) %]
292    <form action="/cgi-bin/koha/acqui/parcel.pl" method="get" name="orderform">
293     <table id="receivedt">
294         <thead>
295             <tr>
296                 <th>Basket</th>
297         <th>Order line</th>
298                 <th>Summary</th>
299         <th>View record</th>
300                 <th>Quantity</th>  
301                 <th>Est cost</th>
302                 <th>Actual cost</th>
303                 <th>TOTAL</th>
304         <th></th>
305             </tr>
306     </thead>
307     <tfoot>
308             <tr>
309                 <td colspan="4" class="total">SUBTOTAL</td>
310                 <td colspan="2">&nbsp;</td>
311                 <td>[% totalprice %]</td>
312                 <td>[% tototal %]</td>
313         <td></td>
314             </tr>
315               
316               [% IF ( totalfreight ) %]
317                     <tr>
318                         <td colspan="6">&nbsp;
319                 </td>
320                             <td>Shipping</td>
321                 <td>[% totalfreight %]</td>
322                 </tr> 
323             [% END %]
324               [% IF ( gst ) %]
325                     <tr>
326                         <td colspan="6">
327                 <p class="message">
328                             <b>HELP</b><br />
329                     The total at the bottom of the page should be within a few cents of the total for the invoice.
330                 </p>
331                 </td>
332                             <td><b>Tax rate</b></td>
333                 <td>[% gst %]</td>
334                 </tr> 
335             [% END %]
336             <tr>
337             <td colspan="4" class="total">TOTAL</td>
338                 <td>[% totalquantity %]</td>
339                 <td colspan="2">&nbsp;</td>
340                 <td>[% grandtot %]</td>
341         <td></td>
342             </tr>
343     </tfoot>
344         <tbody class="filterclass">
345             [% FOREACH loop_receive IN loop_received %]
346             <tr>
347                 <td><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_receive.basketno %]">[% loop_receive.basketno %]</a></td>
348                 <td><a href="neworderempty.pl?ordernumber=[% loop_receive.ordernumber %]&amp;booksellerid=[% booksellerid %]">[% loop_receive.ordernumber %]</a></td>
349                 <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_receive.biblionumber %]">[% loop_receive.title |html %]</a>
350                 [% IF ( loop_receive.author ) %] / [% loop_receive.author %][% END %]
351                 [% IF ( loop_receive.isbn ) %] - [% loop_receive.isbn %][% END %]
352                 [% IF ( loop_receive.publishercode ) %]<br />Publisher :[% loop_receive.publishercode %][% END %]
353                 [% IF ( loop_receive.suggestionid ) %]
354                     <br/>
355                     Suggested by: [% loop_receive.surnamesuggestedby %][% IF ( loop_receive.firstnamesuggestedby ) %], [% loop_receive.firstnamesuggestedby %] [% END %]
356                     (<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_receive.suggestionid %]&amp;op=show">suggestion #[% loop_receive.suggestionid %]</a>)
357                 [% END %]
358                 </td>
359                 <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>
360                 <td>[% loop_receive.quantityreceived %]</td>
361                 <td>[% loop_receive.ecost %]</td>
362                 <td>[% loop_receive.unitprice %]</td>
363                 <td>[% loop_receive.total %]</td>
364                 <td><a href="/cgi-bin/koha/acqui/parcel.pl?invoice=[% loop_receive.invoice %]&booksellerid=[% booksellerid %]&datereceived=[% datereceived %]&op=cancelreceipt&ordernumber=[% loop_receive.ordernumber %]">Cancel receipt</a></td>
365             </tr>
366             [% END %]
367         </tbody>
368     </table>
369     </form>
370         [% ELSE %]There are no received orders.[% END %]
371 </div>
372
373 <!--<form action="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% booksellerid %]" method="post">-->
374 <form action="parcels.pl?booksellerid=[% booksellerid %]" method="post">
375     <input type="hidden" name="booksellerid" value="[% booksellerid %]" />
376     <fieldset class="action">
377         <input type="submit" value="Finish receiving" />
378     </fieldset>
379 </form>
380
381 </div>
382 </div>
383 <div class="yui-b">
384 <form action="/cgi-bin/koha/acqui/parcel.pl" id="filterform" method="post">
385         <fieldset class="brief">
386
387             <h4>Filter</h4>
388
389             <ol>
390
391                 <li>
392                     <label for="summaryfilter">ISBN, author or title :</label>
393             <input type="text" name="summaryfilter" id="summaryfilter" value="[% summaryfilter %]"/>
394                 </li>
395
396                 <li>
397                     <label for="basketfilter">Basket :</label>
398             <input type="text" name="basketfilter" id="basketfilter" value="[% basketfilter %]"/>
399                 </li>
400
401                 <li>
402             <label for="orderfilter">Order line :</label>
403             <input type="text" name="orderfilter" id="orderfilter" value="[% orderfilter %]"/>
404                 </li>
405                 [% IF (UNIMARC) %]
406         <li>
407             <label for="eanfilter">EAN :</label>
408             <input type="text" name="eanfilter" id="eanfilter" value="[% eanfilter %]"/>
409         </li>
410                 [% END %]
411             </ol>
412                 <fieldset class="action">
413         <input type="hidden" value="search" name="op" />
414         <input type="hidden" value="[% booksellerid %]" name="booksellerid" />
415         <input type="hidden" value="[% invoice %]" name="invoice" />
416         <input type="hidden" value="[% invoicedatereceived %]" name="datereceived" />
417         <input type="submit" value="Filter" />
418         <a href="/cgi-bin/koha/acqui/parcel.pl?booksellerid=[% booksellerid %]&invoice=[% invoice %]&op=new&datereceived=[% formatteddatereceived %]">Clear</a>
419                 </fieldset>
420
421
422         </fieldset>
423     </form>
424 [% INCLUDE 'acquisitions-menu.inc' %]
425 </div>
426 </div>
427 [% INCLUDE 'intranet-bottom.inc' %]
428