Bugzilla – Attachment 7141 Details for
Bug 7175
Improve order receiving page
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
0002-Bug-7175-Allow-to-choose-which-items-to-receive.patch (text/plain), 13.04 KB, created by
Julian Maurice
on 2012-01-13 16:11:18 UTC
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Julian Maurice
Created:
2012-01-13 16:11:18 UTC
Size:
13.04 KB
patch
obsolete
>From cd67e9b8d6d0dcfe2c6f2097c9f5ec7b20338107 Mon Sep 17 00:00:00 2001 >From: Julian Maurice <julian.maurice@biblibre.com> >Date: Fri, 13 Jan 2012 16:55:10 +0100 >Subject: [PATCH 2/2] Bug 7175: Allow to choose which items to receive > >If AcqCreateItem=ordering, when you receive an order, you now have a >list of all created items and checkboxes that permit you to choose which >items you want to receive. >A 'Edit' link open additem.pl page in a popup to allow you edit the >items before receiving them (popup is automatically closed after >modification, and orderreceive.pl page is reloaded to show >modifications) >--- > C4/Acquisition.pm | 41 ++++++++++- > acqui/finishreceive.pl | 13 +++- > acqui/orderreceive.pl | 15 +++- > cataloguing/additem.pl | 1 + > .../prog/en/modules/acqui/orderreceive.tt | 75 +++++++++++++++++--- > .../prog/en/modules/cataloguing/additem.tt | 9 +++ > 6 files changed, 132 insertions(+), 22 deletions(-) > >diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm >index 2814977..ac0bde0 100644 >--- a/C4/Acquisition.pm >+++ b/C4/Acquisition.pm >@@ -56,7 +56,7 @@ BEGIN { > &ModReceiveOrder &ModOrderBiblioitemNumber > &GetCancelledOrders > >- &NewOrderItem &ModOrderItem >+ &NewOrderItem &ModOrderItem &ModItemOrder > > &GetParcels &GetParcel > &GetContracts &GetContract >@@ -1017,6 +1017,29 @@ sub ModOrderItem { > return 0; > } > >+=head3 ModItemOrder >+ >+ ModItemOrder($itemnumber, $ordernumber); >+ >+Modifies the ordernumber of an item in aqorders_items. >+ >+=cut >+ >+sub ModItemOrder { >+ my ($itemnumber, $ordernumber) = @_; >+ >+ return unless ($itemnumber and $ordernumber); >+ >+ my $dbh = C4::Context->dbh; >+ my $query = qq{ >+ UPDATE aqorders_items >+ SET ordernumber = ? >+ WHERE itemnumber = ? >+ }; >+ my $sth = $dbh->prepare($query); >+ return $sth->execute($ordernumber, $itemnumber); >+} >+ > #------------------------------------------------------------# > > >@@ -1102,7 +1125,7 @@ C<$ordernumber>. > sub ModReceiveOrder { > my ( > $biblionumber, $ordernumber, $quantrec, $user, $cost, >- $invoiceno, $freight, $rrp, $budget_id, $datereceived >+ $invoiceno, $freight, $rrp, $budget_id, $datereceived, $received_items > ) > = @_; > my $dbh = C4::Context->dbh; >@@ -1148,7 +1171,19 @@ sub ModReceiveOrder { > $order->{'quantity'} -= $quantrec; > $order->{'quantityreceived'} = 0; > my $newOrder = NewOrder($order); >-} else { >+ # Change ordernumber in aqorders_items for items not received >+ my @orderitems = GetItemnumbersFromOrder( $order->{'ordernumber'} ); >+ my $count = scalar @orderitems; >+ >+ for (my $i=0; $i<$count; $i++){ >+ foreach (@$received_items){ >+ splice (@orderitems, $i, 1) if ($orderitems[$i] == $_); >+ } >+ } >+ foreach (@orderitems) { >+ ModItemOrder($_, $newOrder); >+ } >+ } else { > $sth=$dbh->prepare("update aqorders > set quantityreceived=?,datereceived=?,booksellerinvoicenumber=?, > unitprice=?,freight=?,rrp=? >diff --git a/acqui/finishreceive.pl b/acqui/finishreceive.pl >index 71b13d6..25e6e63 100755 >--- a/acqui/finishreceive.pl >+++ b/acqui/finishreceive.pl >@@ -108,10 +108,15 @@ if ($quantityrec > $origquantityrec ) { > my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$biblionumber); > } > } >- >+ >+ my @received_items = (); >+ if(C4::Context->preference('AcqCreateItem') eq 'ordering') { >+ @received_items = $input->param('items_to_receive'); >+ } >+ > # save the quantity received. >- if( $quantityrec > 0 ) { >- $datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived); >- } >+ if( $quantityrec > 0 ) { >+ $datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived, \@received_items); >+ } > } > print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str"); >diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl >index dc03a1d..c4bab7f 100755 >--- a/acqui/orderreceive.pl >+++ b/acqui/orderreceive.pl >@@ -111,17 +111,23 @@ my $count = scalar @$results; > # prepare the form for receiving > if ( $count == 1 ) { > my $order = $results->[0]; >- if (C4::Context->preference('AcqCreateItem') eq 'receiving') { >+ my $AcqCreateItem = C4::Context->preference('AcqCreateItem'); >+ if ($AcqCreateItem eq 'receiving') { > # prepare empty item form > my $cell = PrepareItemrecordDisplay('','','','ACQ'); > unless ($cell) { > $cell = PrepareItemrecordDisplay('','','',''); > $template->param('NoACQframework' => 1); > } >- my @itemloop; >- push @itemloop,$cell; > >- $template->param(items => \@itemloop); >+ $template->param(itemform => $cell); >+ } elsif ($AcqCreateItem eq 'ordering') { >+ my @itemnumbers = GetItemnumbersFromOrder($order->{ordernumber}); >+ my @items; >+ foreach (@itemnumbers) { >+ push @items, GetItem($_); >+ } >+ $template->param(items => \@items); > } > > if ( $order->{'unitprice'} == 0 ) { >@@ -134,6 +140,7 @@ if ( $count == 1 ) { > my $budget = GetBudget( $order->{'budget_id'} ); > > $template->param( >+ AcqCreateItem => $AcqCreateItem, > count => 1, > biblionumber => $order->{'biblionumber'}, > ordernumber => $order->{'ordernumber'}, >diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl >index a734d0f..089550b 100755 >--- a/cataloguing/additem.pl >+++ b/cataloguing/additem.pl >@@ -729,6 +729,7 @@ $template->param( > itemtagsubfield => $itemtagsubfield, > op => $nextop, > opisadd => ($nextop eq "saveitem") ? 0 : 1, >+ popup => $input->param('popup') ? 1: 0, > C4::Search::enabled_staff_search_views, > ); > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >index ea422c8..aac58ea 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >@@ -2,6 +2,31 @@ > <title>Koha › Acquisitions › Receipt summary for : [% name %] [% IF ( invoice ) %]invoice, [% invoice %][% END %]</title> > [% INCLUDE 'doc-head-close.inc' %] > <script type="text/javascript" src="[% themelang %]/js/additem.js"> </script> >+<script type="text/javascript"> >+//<![CDATA[ >+[% IF (AcqCreateItem == 'ordering') %] >+ function PopupEditPage(biblionumber, itemnumber) { >+ var url = "/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=" >+ + biblionumber + "&itemnumber=" + itemnumber + "&popup=1#edititem"; >+ window.open(url); >+ } >+ >+ function CalcQtyToReceive() { >+ var qty = $("input[name='items_to_receive']:checked").length; >+ $("#quantity").val(qty); >+ } >+[% END %] >+ >+$(document).ready(function() { >+ [% IF (AcqCreateItem == 'ordering') %] >+ $("input[name='items_to_receive']").change(function() { >+ CalcQtyToReceive(); >+ }); >+ CalcQtyToReceive(); >+ [% END %] >+}); >+//]]> >+</script> > </head> > <body> > [% INCLUDE 'header.inc' %] >@@ -35,17 +60,46 @@ > [% seriestitle %]</li> > </ol> > </fieldset> >- [% IF ( items ) %] >+ [% IF (AcqCreateItem == 'ordering') %] >+ [% IF (items.size) %] >+ <fieldset class="rows"> >+ <legend>Items</legend> >+ <table> >+ <thead> >+ <tr> >+ <th>Receive?</th> >+ <th>Barcode</th> >+ <th>Home branch</th> >+ <th>Location</th> >+ <th>Call number</th> >+ <th> </th> >+ </tr> >+ </thead> >+ <tbody> >+ [% FOREACH item IN items %] >+ <tr> >+ <td style="text-align:center"><input type="checkbox" name="items_to_receive" value="[% item.itemnumber %]" /></td> >+ <td>[% item.barcode %]</td> >+ <td>[% item.homebranch %]</td> >+ <td>[% item.location %]</td> >+ <td>[% item.itemcallnumber %]</td> >+ <td><a style="cursor:pointer" onclick="PopupEditPage([% item.biblionumber %],[% item.itemnumber %]);">Edit</a></td> >+ </tr> >+ [% END %] >+ </tbody> >+ </table> >+ </fieldset> >+ [% END %] >+ [% ELSIF (AcqCreateItem == 'receiving') %] > <fieldset class="rows"> > <legend>Item</legend> > [% IF ( NoACQframework ) %] > <p class="required">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</p> > [% END %] > >- [% FOREACH item IN items %] > <div id="outeritemblock"> > <div id="itemblock"> >- <ol>[% FOREACH iteminformatio IN item.iteminformation %]<li style="[% iteminformatio.hidden %];"> >+ <ol>[% FOREACH iteminformatio IN itemform.iteminformation %]<li style="[% iteminformatio.hidden %];"> > <div class="subfield_line" id="subfield[% iteminformatio.serialid %][% iteminformatio.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]"> > > <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label> >@@ -62,21 +116,20 @@ > </div></li> > [% END %] > </ol> >- <a class="addItem" onclick="cloneItemBlock('itemblock[% item.itemBlockIndex %]')">Add</a> >- <a class="delItem" style="display:none;" onclick="deleteItemBlock('itemblock[% item.itemBlockIndex %]')">Delete</a> >+ <a class="addItem" onclick="cloneItemBlock('itemblock[% itemform.itemBlockIndex %]')">Add</a> >+ <a class="delItem" style="display:none;" onclick="deleteItemBlock('itemblock[% itemform.itemBlockIndex %]')">Delete</a> > </div><!-- /iteminformation --> > </div> > > <input type="hidden" name="moditem" value="" /> >- <input type="hidden" name="tag" value="[% item.itemtagfield %]" /> >- <input type="hidden" name="subfield" value="[% item.itemtagsubfield %]" /> >- <input type="hidden" name="serial" value="[% item.serialid %]" /> >- <input type="hidden" name="bibnum" value="[% item.biblionumber %]" /> >+ <input type="hidden" name="tag" value="[% itemform.itemtagfield %]" /> >+ <input type="hidden" name="subfield" value="[% itemform.itemtagsubfield %]" /> >+ <input type="hidden" name="serial" value="[% itemform.serialid %]" /> >+ <input type="hidden" name="bibnum" value="[% itemform.biblionumber %]" /> > <input type="hidden" name="itemid" value="1" /> >- <input type="hidden" name="field_value" value="[% item.itemnumber %]" /> >+ <input type="hidden" name="field_value" value="[% itemform.itemnumber %]" /> > [% END %] <!-- /items --> > </fieldset> >- [% END %] <!-- items --> > <input type="hidden" name="biblionumber" value="[% biblionumber %]" /> > <input type="hidden" name="ordernumber" value="[% ordernumber %]" /> > <input type="hidden" name="biblioitemnumber" value="[% biblioitemnumber %]" /> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt >index 673b08b..7454129 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt >@@ -4,6 +4,12 @@ > <script type="text/javascript"> > //<![CDATA[ > $(document).ready(function(){ >+ [% IF (popup) %] >+ [% IF (opisadd) %] >+ window.opener.location.reload(true); >+ window.close(); >+ [% END %] >+ [% END %] > $("fieldset.rows input").keydown(function(e){ return checkEnter(e); }); > /* Inline edit/delete links */ > var biblionumber = $("input[name='biblionumber']").attr("value"); >@@ -227,6 +233,9 @@ function set_to_today(id, force) { > <div id="cataloguing_additem_newitem"> > <form method="post" action="/cgi-bin/koha/cataloguing/additem.pl" name="f"> > <input type="hidden" name="op" value="[% op %]" /> >+ [% IF (popup) %] >+ <input type="hidden" name="popup" value="1" /> >+ [% END %] > <input type="hidden" name="biblionumber" value="[% biblionumber %]" /> > [% IF ( opisadd ) %] > <h2 id="additema">Add Item</h2> >-- >1.7.8.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 7175
:
6232
|
7139
|
7141
|
7164
|
7278
|
7852
|
7853
|
8680
|
8681
|
8770
|
8771
|
8772
|
9145
|
9146
|
9147
|
9431
|
9432
|
9590
|
9591