Bug 6251: Acq: receiving orders
[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 [% INCLUDE 'doc-head-close.inc' %]
5 [% INCLUDE 'greybox.inc' %]
6 <script type="text/javascript" src="[% yuipath %]/json/json-min.js"></script>
7 <script type="text/JavaScript">
8 //<![CDATA[
9
10     var rowsToCollapse = 5;
11
12     $(document).ready(function(){
13
14         rowCountPending  = $("#pendingt tbody.filterclass tr").length;
15         rowCountReceived = $("#receivedt tbody.filterclass tr").length;
16         if (rowCountPending  > rowsToCollapse) { pendingCollapse(); }
17         if (rowCountReceived > rowsToCollapse) { receivedCollapse(); }
18     });
19
20      // Case-insensitive version of jquery's contains function
21      jQuery.extend(jQuery.expr[':'], {
22             icontains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
23      });
24
25      // Contains exactly function
26      jQuery.extend(jQuery.expr[':'], {
27           containsExactly: "$(a).text() == m[3]"
28      });
29
30
31     // Collapse pending items table
32     function pendingCollapse() {
33         $("#pendingcollapserow").remove();
34     $("#pendingt tr").show();
35         $("#pendingt tbody.filterclass tr:gt(" + (rowsToCollapse-1) + ")").hide();
36         $("#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>");
37
38     }
39
40     // Expend pending items table
41     function pendingExpand() {
42         $("#pendingcollapserow").remove();
43         $("#pendingt tr").show();
44     $("#pendingt tbody.filterclass tr.orderfound").remove();
45         $("#pendingt").before("<p id=\"pendingcollapserow\">" + rowCountPending + _(" items are displayed.") + "<a href=\"javascript:pendingCollapse();\">" + _("Click here to show only the first ") + rowsToCollapse + _(" items") + "<\/a>.<\/p>");
46     }
47
48     // Collapse already received items table
49     function receivedCollapse() {
50         $("#receivedcollapserow").remove();
51         $("#receivedt tbody.filterclass tr:gt(" + (rowsToCollapse-1) + ")").hide();
52         $("#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>");
53     }
54
55     // Expand already received items table
56     function receivedExpand() {
57         $("#receivedcollapserow").remove();
58         $("#receivedt tr").show();
59         $("#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>");
60     }
61
62     // Launch filtering
63     function filter() {
64
65     var summaryStatus = jQuery.trim($("#summaryfilter").val());
66         var basketStatus  = $("#basketfilter").val();
67         var orderStatus   = $("#orderfilter").val();
68
69         if (summaryStatus == '' && basketStatus == '' && orderStatus == '') { clearFilters(); return false; }
70
71         var filtered = "table#pendingt tbody.filterclass tr";
72
73         // We hide everything
74         $("#nothingfoundrow").remove();
75         $(filtered).hide();
76
77         // Do the search
78         var callback =  {
79                 success: function(o) {
80                         var jsonString = o.responseText;
81                         var gst = "[% gst %]";
82                         try {
83                                 var orders = YAHOO.lang.JSON.parse(jsonString);
84                                 var foundCount = orders.length;
85
86                                 for( i = 0 ; i < orders.length ; i++){
87                                         order = orders[i];
88                                         $('<tr class="orderfound">'
89                        + '<td class="basketfilterclass"><a href="/cgi-bin/koha/acqui/basket.pl?basketno=' + order.basketno + '">' + order.basketno + '</a></td>'
90                        + '<td class="orderfilterclass"> <a href="neworderempty.pl?ordernumber=' + order.ordernumber + '&booksellerid=' + order.booksellerid + '">' + order.ordernumber + ' </a></td>'
91                        + '<td class="summaryfilterclass">'
92                        + '<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=' + order.biblionumber + '">' + order.title + '</a>' + _(" by ") + order.author + '&nbsp;&ndash;&nbsp;' + order.isbn + '</td>'
93                        + '<td><a href="/cgi-bin/koha/catalogue/showmarc.pl?id=' + order.biblionumber + '" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&amp;id=' + order.biblionumber + '" title="MARC" rel="gb_page_center[600,500]">Card</a></td>'
94                        + '<td>' + order.quantity + '</td>'
95                        + '<td>' + order.ecost + '</td>'
96                        + '<td>' + order.ordertotal + '</td>'
97                        + '<td>'
98                        + '<a href="orderreceive.pl?ordernumber=' + order.ordernumber + '&amp;datereceived=[% invoicedatereceived %]&amp;invoice=[% invoice %]&amp;gst=' + gst + '&amp;freight=' + order.freight + '&amp;supplierid=[% supplierid %]">Receive</a> /'
99                        + '<a href="parcel.pl?type=intra&amp;ordernumber=' + order.ordernumber + '&amp;biblionumber=' + order.biblionumber + '&amp;action=cancelorder&amp;supplierid=[% supplierid %]&amp;datereceived=[% invoicedatereceived %]&amp;invoice=[% invoice %]" onclick="return confirm(\'' + _('Are you sure you want to cancel this order?') + '\');">Cancel</a>'
100                        + '</td></tr>').appendTo("table#pendingt");
101                                 }
102
103                                 // If nothing has been found, we tell the user so
104                                 if (orders.length == 0) {
105                                     $("<tr><td id=\"nothingfoundrow\" colspan=\"8\">No items match your criteria.<\/tr>").appendTo("#pendingt");
106                                 }
107                         }catch(e){alert(e);}
108                 }
109         }
110         var transaction = YAHOO.util.Connect.asyncRequest('GET', '/cgi-bin/koha/acqui/parcel.pl?supplierid=[% supplierid %]&search='+summaryStatus+'&basketno='+basketStatus+'&orderno='+orderStatus+'&format=json', callback, null);
111
112         return false;
113     }
114
115     // Clear already applied filters
116     function clearFilters() {
117         $("#nothingfoundrow").remove();
118         $("#pendingt tbody.filterclass tr").show();
119         //$("#pendingt tbody.filterclass tr.orderfound").remove();
120         pendingExpand();
121     }
122
123 //]]>
124 </script>
125
126 </head>
127 <body>
128 [% INCLUDE 'header.inc' %]
129 [% INCLUDE 'acquisitions-search.inc' %]
130
131 <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 ) %]
132             Receipt Summary for <i>[% name %]</i> [% IF ( invoice ) %]<i>[ [% invoice %] ]</i>[% END %] on <i>[% formatteddatereceived %]</i>
133         [% ELSE %]
134             Receive orders from [% name %]
135         [% END %]</div>
136
137 <div id="doc3" class="yui-t2">
138
139    <div id="bd">
140         <div id="yui-main">
141         <div class="yui-b">
142         [% IF ( receive_error ) %]
143         <div class="dialog alert">
144         <h3>Error adding items:</h3>
145         <ul>
146         [% FOREACH error_loo IN error_loop %]
147                 <li>[% error_loo.error_param %][% IF ( error_loo.error_duplicate_barcode ) %]Duplicate Barcode[% END %] <!-- todo: other error conditions come here. --></li>
148         [% END %]
149         </ul>
150         </div>
151         [% END %]
152     <h1>
153         [% IF ( datereceived ) %]
154             Receipt Summary for <i>[% name %]</i> [% IF ( invoice ) %] <i> [ [% invoice %] ] </i>[% END %] on <i>[% formatteddatereceived %]</i>
155         [% ELSE %]
156             Receive orders from [% name %]
157         [% END %]
158     </h1>
159
160     [% IF ( success_delorder ) %]
161     <div class="dialog message">The order has been successfully canceled.</div>
162     [% ELSE %]
163         [% IF ( error_delitem ) %]
164             <div class="dialog alert">The order has been canceled, although one or more items could not have been deleted.</div>
165         [% END %]
166         [% IF ( error_delbiblio ) %]
167             <div class="dialog alert">The order has been canceled, although the record has not been deleted.</div>
168         [% END %]
169     [% END %]
170
171 <div id="acqui_receive_summary">
172 <p><strong>Invoice number:</strong> [% invoice %] <strong>Received by:</strong> [% loggedinusername %] <strong>On:</strong> [% formatteddatereceived %]</p>
173         <!-- TODO: Add date picker, change rcv date. -->
174 </div>
175 <div id="acqui_receive_search">
176     <h3>Pending Orders</h3>
177
178  [% IF ( loop_orders ) %]<table id="pendingt">
179     <thead>
180         <tr>
181             <th>Basket</th>
182             <th>Order Line</th>
183             <th>Summary</th>
184             <th>View Record</th>
185             <th>Quantity</th>
186             <th>Unit cost</th>
187             <th>Order cost</th>
188             <th>&nbsp;</th>
189         </tr>
190     </thead>
191                 <tfoot>
192             <tr><td colspan="4" class="total">TOTAL</td>
193                 <td> [% totalPquantity %] </td>
194                                 <td>&nbsp;</td>
195                 <td>[% ordergrandtotal %]</td>
196                                 <td>&nbsp;</td>
197             </tr>
198                 </tfoot>
199     <tbody class="filterclass">
200         [% FOREACH loop_order IN loop_orders %]
201         [% UNLESS ( loop.odd ) %]
202             <tr class="highlight">
203         [% ELSE %]
204             <tr>
205         [% END %]
206                 <td class="basketfilterclass"><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_order.basketno %]">[% loop_order.basketno %]</a></td>
207                 <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&amp;booksellerid=[% loop_order.supplierid %]">[% loop_order.ordernumber %]</a></td>
208                 <td class="summaryfilterclass">
209                   <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
210                 [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
211                 [% IF ( loop_order.isbn ) %] &ndash; [% loop_order.isbn %][% END %]
212                 [% IF ( loop_order.publishercode ) %]<br />Publisher :[% loop_order.publishercode %][% END %]
213                 </td>
214                 <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>
215                 <td>[% loop_order.quantity %]</td>
216                 <td>[% loop_order.ecost %]</td>
217                 <td>[% loop_order.ordertotal %]</td>
218                                 <td>
219                                     <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&amp;datereceived=[% loop_order.invoicedatereceived %]&amp;invoice=[% loop_order.invoice %]&amp;gst=[% loop_order.gst %]&amp;freight=[% loop_order.freight %]&amp;supplierid=[% loop_order.supplierid %]">Receive</a> /
220                                     <a href="parcel.pl?type=intra&amp;ordernumber=[% loop_order.ordernumber %]&amp;biblionumber=[% loop_order.biblionumber %]&amp;action=cancelorder&amp;supplierid=[% loop_order.supplierid %]&amp;datereceived=[% loop_order.invoicedatereceived %]&amp;invoice=[% loop_order.invoice %]" onclick="return confirm(_('Are you sure you want to cancel this order?'));">Cancel</a>
221                                 </td>
222             </tr>
223         [% END %]
224     </tbody>
225      </table>[% ELSE %]There are no pending orders.[% END %]
226    <div id="resultnumber">
227         <!-- Row of numbers corresponding to search result pages -->
228         [% IF ( displayprev ) %]
229                 <a href="parcel.pl?type=intra&amp;supplierid=[% supplierid %]&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>
230         [% END %]
231         [% FOREACH number IN numbers %]
232                 [% IF ( number.highlight ) %]
233                 <span class="current">[% number.number %]</span>
234                 [% ELSE %]
235                 <a href="parcel.pl?type=intra&amp;supplierid=[% supplierid %]&amp;startfrom=[% number.startfrom %][% IF ( number.datereceived ) %]&amp;datereceived=[% number.datereceived %][% END %][% IF ( number.invoice ) %]&amp;invoice=[% number.invoice %][% END %][% IF ( number.resultsperpage ) %]&amp;resultsperpage=[% number.resultsperpage %][% END %]#resultnumber">[% number.number %]</a>
236                 [% END %]
237         [% END %]
238         [% IF ( displaynext ) %]
239                 <a href="parcel.pl?type=intra&amp;supplierid=[% supplierid %]&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>
240         [% END %]
241         </div>
242 </div>
243 <div id="acqui_receive_receivelist">
244     <h3>Already Received</h3>
245
246    [% IF ( loop_received ) %]
247    <form action="/cgi-bin/koha/acqui/parcel.pl" method="get" name="orderform">
248     <table id="receivedt">
249         <thead>
250             <tr>
251                 <th>Basket</th>
252                 <th>Order Line</th>
253                 <th>Summary</th>
254                 <th>View Record</th>
255                 <th>Quantity</th>  
256                 <th>Est cost</th>
257                 <th>Actual cost</th>
258                 <th>TOTAL</th>
259             </tr>
260         </thead>
261 <tfoot>
262             <tr>
263                 <td colspan="4" class="total">SUBTOTAL</td>
264                 <td colspan="2">&nbsp;</td>
265                 <td>[% totalprice %]</td>
266                 <td>[% tototal %]</td>
267             </tr>
268               
269               [% IF ( totalfreight ) %]
270                     <tr>
271                         <td colspan="6">&nbsp;
272                 </td>
273                             <td>Shipping</td>
274                 <td>[% totalfreight %]</td>
275                 </tr> 
276             [% END %]
277               [% IF ( gst ) %]
278                     <tr>
279                         <td colspan="6">
280                 <p class="message">
281                             <b>HELP</b><br />
282                     The total at the bottom of the page should be within a few cents of the total for the invoice.
283                 </p>
284                 </td>
285                             <td><b>Tax rate</b></td>
286                 <td>[% gst %]</td>
287                 </tr> 
288             [% END %]
289             <tr>
290             <td colspan="4" class="total">TOTAL</td>
291                 <td>[% totalquantity %]</td>
292                 <td colspan="2">&nbsp;</td>
293                 <td>[% grandtot %]</td>
294             </tr>
295     </tfoot>
296         <tbody class="filterclass">
297             [% FOREACH loop_receive IN loop_received %]
298         [% UNLESS ( loop.odd ) %]
299             <tr class="highlight">
300         [% ELSE %]
301             <tr>
302         [% END %]
303                 <td><a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_receive.basketno %]">[% loop_receive.basketno %]</a></td>
304                 <td><a href="neworderempty.pl?ordernumber=[% loop_receive.ordernumber %]&amp;booksellerid=[% supplierid %]">[% loop_receive.ordernumber %]</a></td>
305                 <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_receive.biblionumber %]">[% loop_receive.title |html %]</a>
306                 [% IF ( loop_receive.author ) %] / [% loop_receive.author %][% END %]
307                 [% IF ( loop_receive.isbn ) %] - [% loop_receive.isbn %][% END %]
308                 [% IF ( loop_receive.publishercode ) %]<br />Publisher :[% loop_receive.publishercode %][% END %]
309                 </td>
310                 <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>
311                 <td>[% loop_receive.quantityreceived %]</td>
312                 <td>[% loop_receive.ecost %]</td>
313                 <td>[% loop_receive.unitprice %]</td>
314                 <td>[% loop_receive.total %]</td>
315             </tr>
316             [% END %]
317         </tbody>
318     </table>
319     </form>
320         [% ELSE %]There are no received orders.[% END %]
321 </div>
322
323 </div>
324 </div>
325 <div class="yui-b">
326 <form action="/cgi-bin/koha/acqui/parcel.pl" id="filterform" onsubmit="return filter();">
327         <fieldset class="brief">
328
329             <h4>Filter</h4>
330
331             <ol>
332
333                 <li>
334                     <label for="summaryfilter">ISBN, author or title :</label>
335                     <input type="text" name="summaryfilter" id="summaryfilter" />
336                 </li>
337
338                 <li>
339                     <label for="basketfilter">Basket :</label>
340                     <input type="text" name="basketfilter" id="basketfilter" />
341                 </li>
342
343                 <li>
344                     <label for="orderfilter">Order Line :</label>
345                     <input type="text" name="orderfilter" id="orderfilter" />
346                 </li>
347             </ol>
348                 <fieldset class="action">
349                     <input type="submit" value="Filter" />
350                     <a href="#" onclick="clearFilters();">Clear</a>
351                 </fieldset>
352
353
354         </fieldset>
355     </form>
356 [% INCLUDE 'acquisitions-menu.inc' %]
357 </div>
358 </div>
359 [% INCLUDE 'intranet-bottom.inc' %]
360