Merge branch 'bug_8557' into 3.12-master
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / acqui / orderreceive.tt
index 97a7223..e88f9ce 100644 (file)
@@ -4,9 +4,52 @@
 [% INCLUDE 'additem.js.inc' %]
 <script type="text/javascript" src="[% themelang %]/js/additem.js"> </script>
 <script type="text/javascript">
+
+var nav = window.Event ? true : false;
+if (nav) {
+       window.captureEvents(Event.KEYDOWN);
+       window.onkeydown = NetscapeEventHandler_KeyDown;
+} else {
+       document.onkeydown = IEEventHandler_KeyDown;
+}
+
+function NetscapeEventHandler_KeyDown(e) {
+       if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') { return false; }
+       return true;
+}
+
+function IEEventHandler_KeyDown() {
+       if (event.keyCode == 13 && event.srcElement.type != 'textarea' && event.srcElement.type != 'submit')
+               return false;
+       return true;
+}
 //<![CDATA[
     function Check(form) {
         [% IF (AcqCreateItemReceiving) %]
+            var total_errors=0;
+            $("input[name='mandatory'],select[name='mandatory']").each(function(i){
+                if($(this).val() == 1){
+                    var mandatory_field = $("input[name='field_value'],select[name='field_value']").eq(i);
+                    if(mandatory_field.val() == ''){
+                        mandatory_field.addClass("missing");
+                        total_errors++;
+                    }
+                }
+            });
+
+            if (total_errors != 0) {
+                var alertString = _("Form not submitted because of the following problem(s)");
+                alertString += "\n------------------------------------------------------------------------------------\n";
+                alertString += "\n- "+ total_errors+_(" mandatory fields empty (highlighted)");
+                alert(alertString);
+                return false;
+            }
+
+            if(check_additem('[% UniqueItemFields %]') == false){
+                alert(_('Duplicate values detected. Please correct the errors and resubmit.') );
+                return false;
+            };
+
             // Remove last itemblock if it is not in items_list
             var lastitemblock = $("#outeritemblock > div:last");
             var tobedeleted = true;
             if(tobedeleted){
                 $(lastitemblock).remove();
             }
-
-            if(check_additem('[% UniqueItemFields %]') == false){
-                alert(_('Duplicate values detected. Please correct the errors and resubmit.') );
-                if(tobedeleted) {
-                    $(lastitemblock).appendTo("#outeritemblock");
-                }
-                return false;
-            };
         [% END %]
 
         return true;
     }
 
+    [% IF (AcqCreateItem == 'ordering') %]
+        var items_columns = [null, null, 'barcode', 'homebranchname',
+            'holdingbranchname', 'notforloan', 'restricted', 'location',
+            'itemcallnumber', 'copynumber', 'stocknumber', 'collection',
+            'itemtype', 'materials', 'itemnotes'];
+
+        function PopupEditPage(biblionumber, itemnumber) {
+            var url = "/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber="
+                + biblionumber + "&itemnumber=" + itemnumber + "&popup=1#edititem";
+            var w = window.open(url);
+            var watchClose = setInterval(function() {
+                if (w.closed) {
+                    clearTimeout(watchClose);
+                    $.getJSON('/cgi-bin/koha/catalogue/getitem-ajax.pl',
+                        {
+                            'itemnumber': itemnumber
+                        },
+                        function(item) {
+                            var tds = $("#item_"+itemnumber+" td");
+                            for(var i=2; i<tds.length; i++) {
+                                var column = items_columns[i];
+                                $(tds[i]).text(item[column]);
+                            }
+                        }
+                    );
+                }
+            }, 500);
+        }
+
+        function CalcQtyToReceive() {
+            var qty = $("input[name='items_to_receive']:checked").length;
+            $("#quantity").val(qty);
+        }
+
+        function CheckNItems(n) {
+            $("input[name='items_to_receive']").each(function() {
+                $(this).attr('checked', false);
+            });
+            $("input[name='items_to_receive']:lt("+n+")").each(function () {
+                $(this).attr('checked', true);
+            });
+        }
+    [% END %]
+
     $(document).ready(function() {
         [% IF (AcqCreateItemReceiving) %]
             cloneItemBlock(0, '[% UniqueItemFields %]');
+        [% ELSIF (AcqCreateItem == 'ordering') %]
+            $("input[name='items_to_receive']").change(function() {
+                CalcQtyToReceive();
+            });
+            CalcQtyToReceive();
+            $("#quantity").keyup(function() {
+                var qty = parseInt($("#quantity").val());
+                var qtyto = parseInt($("#quantity_to_receive").val());
+                if(qty > qtyto) {
+                    $("#qtyrecerror").show();
+                } else {
+                    $("#qtyrecerror").hide();
+                }
+                CheckNItems($(this).val());
+            });
         [% END %]
     });
 //]]>
                             <th>&nbsp;</th>
                             <th>&nbsp;</th>
                             <th>Barcode</th>
-                            <th>Home branch</th>
-                            <th>Holding branch</th>
+                            <th>Home library</th>
+                            <th>Holding library</th>
                             <th>Not for loan</th>
                             <th>Restricted</th>
                             <th>Location</th>
             [% END %]
             <div id="outeritemblock"></div>
         </fieldset>
-    [% END %][%# IF (AcqCreateItemReceiving) %]
+    [% ELSIF (AcqCreateItem == 'ordering') %]
+        [% IF (items.size) %]
+            <h5>Items</h5>
+            <div style="width:100%;overflow:auto">
+                <table>
+                    <thead>
+                        <tr>
+                            <th>Receive?</th>
+                            <th>&nbsp;</th>
+                            <th>Barcode</th>
+                            <th>Home branch</th>
+                            <th>Holding branch</th>
+                            <th>Not for loan</th>
+                            <th>Restricted</th>
+                            <th>Location</th>
+                            <th>Call number</th>
+                            <th>Copy number</th>
+                            <th>Stock number</th>
+                            <th>Collection code</th>
+                            <th>Item type</th>
+                            <th>Materials</th>
+                            <th>Notes</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        [% FOREACH item IN items %]
+                            <tr id="item_[% item.itemnumber %]">
+                                <td style="text-align:center"><input type="checkbox" name="items_to_receive" value="[% item.itemnumber %]" /></td>
+                                <td><a style="cursor:pointer" onclick="PopupEditPage([% item.biblionumber %],[% item.itemnumber %]);">Edit</a></td>
+                                <td>[% item.barcode %]</td>
+                                <td>[% item.homebranchname %]</td>
+                                <td>[% item.holdingbranchname %]</td>
+                                <td>[% item.notforloan %]</td>
+                                <td>[% item.restricted %]</td>
+                                <td>[% item.location %]</td>
+                                <td>[% item.itemcallnumber %]</td>
+                                <td>[% item.copynumber %]</td>
+                                <td>[% item.stocknumber %]</td>
+                                <td>[% item.collection %]</td>
+                                <td>[% item.itemtype %]</td>
+                                <td>[% item.materials %]</td>
+                                <td>[% item.itemnotes %]</td>
+                            </tr>
+                        [% END %]
+                    </tbody>
+                </table>
+            </div>
+        [% END %]
+    [% END %]
     <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
+    <input type="hidden" name="invoiceid" value="[% invoiceid %]" />
     <input type="hidden" name="ordernumber" value="[% ordernumber %]" />
     <input type="hidden" name="biblioitemnumber" value="[% biblioitemnumber %]" />
     <input type="hidden" name="booksellerid" value="[% booksellerid %]" />
     <input type="hidden" name="datereceived" value="[% datereceived_iso %]" />
-    <input type="hidden" name="freight" value="[% freight %]" />
-    <input type="hidden" name="gst" value="[% gst %]" />
+    <input type="hidden" name="gstrate" value="[% gstrate %]" />
        </div>
        <div class="yui-u">
     <fieldset class="rows">
        <li><label for="datereceived">Date received: </label><span> [% datereceived %] </span></li>
        <li><label for="bookfund">Budget: </label><span> [% bookfund %] </span></li>
        <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
-       <li><label for="quantityto">Quantity to receive: </label><span class="label">
+       <li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
            [% IF ( edit ) %]
                <input type="text" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
            [% ELSE %]
                 [% END %]
             [% ELSE %]
                 [% IF ( items ) %]
-                    <input READONLY type="text" id="quantity" size="20" name="quantityrec" value="1" />
+                    <input type="text" id="quantity" size="20" name="quantityrec" value="1" />
                 [% ELSE %]
                     <input type="text" size="20" id="quantity" name="quantityrec" value="1" />
                 [% END %]
                 <input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="0" />
             [% END %]
+            <div id="qtyrecerror" style="display:none">
+                <p class="error">Warning, you have entered more items than expected.
+                Items will not be created.</p>
+            </div>
           [% END %][%# IF (AcqCreateItemReceiving) %]
                </li>
         <li><label for="rrp">Replacement cost: </label><input type="text" size="20" name="rrp" id="rrp" value="[% rrp %]" /></li>
             <input type="text" size="20" name="cost" id="cost" value="[% ecost %]" />
         [% END %]</li></ol>
         <label for="note">Notes: </label><textarea name="note" width="40" rows="8" >[% notes %]</textarea>
-        <input type="hidden" name="invoice" value="[% invoice %]" />
     </fieldset>
 
 </div>
 </div><div class="yui-g"><fieldset class="action">
-        <input type="submit"  value="Save" />
-        <a class="cancel" href="/cgi-bin/koha/acqui/parcel.pl?booksellerid=[% supplierid %]&amp;invoice=[% invoice %]&amp;gst=[% gst %]&amp;freight=[% freight %]">Cancel</a>
+        <input type="submit"  value="Save" class="button" accesskey="w" />
+        <a class="cancel" href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoiceid %]">Cancel</a>
 </fieldset></div>    </form>
 [% ELSE %]
-<div id="acqui_acquire_orderlist">
-    <table>
-    <tr>
-        <th>Basket</th>
-        <th>ISBN</th>
-        <th>Title</th>
-        <th>Author</th>
-        <th>Qty</th>
-        <th>Received</th>
-    </tr>
-    [% FOREACH loo IN loop %]
-        <tr>
-            <td>[% loo.basketno %]</td>
-            <td>[% loo.isbn %]</td>
-         <td><a href="orderreceive.pl?datereceived=[% loo.datereceived %]&amp;receive=[% loo.ordernumber %]&amp;biblio=[% loo.biblionumber %]&amp;invoice=[% loo.invoice %]&amp;freight=[% loo.freight %]&amp;gst=[% loo.gst %]&amp;id=[% loo.id %]">[% loo.title |html %]</a></td>
-            <td>[% loo.author %]</td>
-            <td>[% loo.quantity %]</td>
-            <td>[% loo.quantityreceived %]</td>
-        </tr>
-    [% END %]
-    </table>
-</div>
+    This ordernumber does not exist.
 [% END %]
 
 </div>