Bugzilla – Attachment 5904 Details for
Bug 5680
When deleting an order, delete attached items, and if applicable biblio
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 5680: Follow Up for Order cancelling improvement : the same for parcel.pl
0001-Bug-5680-Follow-Up-for-Order-cancelling-improvement-.patch (text/plain), 8.52 KB, created by
Christophe Croullebois
on 2011-10-15 20:50:17 UTC
(
hide
)
Description:
Bug 5680: Follow Up for Order cancelling improvement : the same for parcel.pl
Filename:
MIME Type:
Creator:
Christophe Croullebois
Created:
2011-10-15 20:50:17 UTC
Size:
8.52 KB
patch
obsolete
>From fde4a797c1a167e5adc3d1597e12cf051080130e Mon Sep 17 00:00:00 2001 >From: Christophe Croullebois <christophe.croullebois@biblibre.com> >Date: Sat, 15 Oct 2011 21:21:35 +0200 >Subject: [PATCH 1/1] Bug 5680: Follow Up for Order cancelling improvement : the same for parcel.pl > >The same scope than in basket.pl >--- > acqui/parcel.pl | 69 +++++++++----------- > .../intranet-tmpl/prog/en/modules/acqui/parcel.tt | 48 +++++++++++++- > 2 files changed, 77 insertions(+), 40 deletions(-) > >diff --git a/acqui/parcel.pl b/acqui/parcel.pl >index ec5071b..c256c60 100755 >--- a/acqui/parcel.pl >+++ b/acqui/parcel.pl >@@ -140,44 +140,6 @@ my ($template, $loggedinuser, $cookie) > debug => 1, > }); > >-my $action = $input->param('action'); >-my $ordernumber = $input->param('ordernumber'); >-my $biblionumber = $input->param('biblionumber'); >- >-# If canceling an order >-if ($action eq "cancelorder") { >- >- my $error_delitem; >- my $error_delbiblio; >- >- # We delete the order >- DelOrder($biblionumber, $ordernumber); >- >- # We delete all the items related to this order >- my @itemnumbers = GetItemnumbersFromOrder($ordernumber); >- foreach (@itemnumbers) { >- my $delcheck = DelItemCheck(C4::Context->dbh, $biblionumber, $_); >- # (should always success, as no issue should exist on item on order) >- if ($delcheck != 1) { $error_delitem = 1; } >- } >- >- # We get the number of remaining items >- my $itemcount = GetItemsCount($biblionumber); >- >- # If there are no items left, >- if ($itemcount eq 0) { >- # We delete the record >- $error_delbiblio = DelBiblio($biblionumber); >- } >- >- if ($error_delitem || $error_delbiblio) { >- if ($error_delitem) { $template->param(error_delitem => 1); } >- if ($error_delbiblio) { $template->param(error_delbiblio => 1); } >- } else { >- $template->param(success_delorder => 1); >- } >-} >- > # If receiving error, report the error (coming from finishrecieve.pl(sic)). > if( scalar(@rcv_err) ) { > my $cnt=0; >@@ -237,6 +199,7 @@ my @loop_orders = (); > for (my $i = 0 ; $i < $countpendings ; $i++) { > my %line; > %line = %{$pendingorders->[$i]}; >+ > $line{quantity}+=0; > $line{quantityreceived}+=0; > $line{unitprice}+=0; >@@ -252,6 +215,36 @@ for (my $i = 0 ; $i < $countpendings ; $i++) { > $line{total} = $total; > $line{supplierid} = $supplierid; > $ordergrandtotal += $line{ecost} * $line{quantity}; >+ >+ my $biblionumber = $line{'biblionumber'}; >+ my $countbiblio = CountBiblioInOrders($biblionumber); >+ my $ordernumber = $line{'ordernumber'}; >+ my @subscriptions = GetSubscriptionsId ($biblionumber); >+ my $itemcount = GetItemsCount($biblionumber); >+ my $holds = GetHolds ($biblionumber); >+ my @items = GetItemnumbersFromOrder( $ordernumber ); >+ my $itemholds; >+ foreach my $item (@items){ >+ my $nb = GetItemHolds($biblionumber, $item); >+ if ($nb){ >+ $itemholds += $nb; >+ } >+ } >+ >+ # if the biblio is not in other orders and if there is no items elsewhere and no subscriptions and no holds we can then show the link "Delete order and Biblio" see bug 5680 >+ $line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == scalar @items && !(@subscriptions) && !($holds); >+ $line{items} = ($itemcount) - (scalar @items); >+ $line{left_item} = 1 if $line{items} >= 1; >+ $line{left_biblio} = 1 if $countbiblio > 1; >+ $line{biblios} = $countbiblio - 1; >+ $line{left_subscription} = 1 if scalar @subscriptions >= 1; >+ $line{subscriptions} = scalar @subscriptions; >+ $line{left_holds} = 1 if $holds >= 1; >+ $line{left_holds_on_order} = 1 if $line{left_holds}==1 && ($line{items} == 0 || $itemholds ); >+ $line{holds} = $holds; >+ $line{holds_on_order} = $itemholds?$itemholds:$holds if $line{left_holds_on_order}; >+ >+ > push @loop_orders, \%line if ($i >= $startfrom and $i < $startfrom + $resultsperpage); > } > $freight = $totalfreight unless $freight; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >index e67b82e..f6ca1e8 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >@@ -133,6 +133,24 @@ > > //]]> > </script> >+<script type="text/javascript"> >+//<![CDATA[ >+ function confirm_delete_item(ordernumber, biblionumber) { >+ var is_confirmed = confirm(_('Are you sure you want to delete this order ?')); >+ if (is_confirmed) { >+ window.location = "addorder.pl?ordernumber="+ordernumber+"&basketno=[% basketno %]&quantity=0&biblionumber="+biblionumber; >+ } >+ } >+ >+ function confirm_delete_biblio(ordernumber, biblionumber) { >+ var is_confirmed = confirm(_('Are you sure you want to delete this catalog record and order ?')); >+ if (is_confirmed) { >+ window.location = "addorder.pl?ordernumber="+ordernumber+"&basketno=[% basketno %]&quantity=0&biblionumber="+biblionumber+"&delbiblio=1"; >+ } >+ } >+ >+//]]> >+</script> > > </head> > <body> >@@ -197,6 +215,7 @@ > <th>Unit cost</th> > <th>Order cost</th> > <th> </th> >+ <th> </th> > </tr> > </thead> > <tfoot> >@@ -205,6 +224,7 @@ > <td> </td> > <td>[% ordergrandtotal %]</td> > <td> </td> >+ <td> </td> > </tr> > </tfoot> > <tbody class="filterclass"> >@@ -227,8 +247,32 @@ > <td>[% loop_order.ecost %]</td> > <td>[% loop_order.ordertotal %]</td> > <td> >- <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&datereceived=[% loop_order.invoicedatereceived %]&invoice=[% loop_order.invoice %]&gst=[% loop_order.gst %]&freight=[% loop_order.freight %]&supplierid=[% loop_order.supplierid %]">Receive</a> / >- <a href="parcel.pl?type=intra&ordernumber=[% loop_order.ordernumber %]&biblionumber=[% loop_order.biblionumber %]&action=cancelorder&supplierid=[% loop_order.supplierid %]&datereceived=[% loop_order.invoicedatereceived %]&invoice=[% loop_order.invoice %]" onclick="return confirm(_('Are you sure you want to cancel this order?'));">Cancel</a> >+ <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&datereceived=[% loop_order.invoicedatereceived %]&invoice=[% loop_order.invoice %]&gst=[% loop_order.gst %]&freight=[% loop_order.freight %]&supplierid=[% loop_order.supplierid %]">Receive</a> >+ >+ </td> >+ <td> >+ [% IF ( loop_order.left_holds_on_order ) %] >+ <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> >+ [% ELSE %] >+ <a href="javascript:confirm_delete_item([% loop_order.ordernumber %],[% loop_order.biblionumber %])" class="button">Delete order</a><br> >+ [% END %] >+ [% IF ( loop_order.can_del_bib ) %] >+ <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %],[% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br> >+ [% ELSE %] >+ <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br> >+ [% END %] >+ [% IF ( loop_order.left_item ) %] >+ <b title="Can't delete catalog record, because of [% loop_order.items %] existing hold(s)" >[% loop_order.items %] item(s) left</b><br> >+ [% END %] >+ [% IF ( loop_order.left_biblio ) %] >+ <b title="Can't delete catalog record, delete other orders linked to it first">[% loop_order.biblios %] order(s) left</b><br> >+ [% END %] >+ [% IF ( loop_order.left_subscription ) %] >+ <b title="Can't delete catalog record, delete subscriptions first">[% loop_order.subscriptions %] subscription(s) left</b><br> >+ [% END %] >+ [% IF ( loop_order.left_holds ) %] >+ <b title="Can't delete catalog record or order, cancel holds first">[% loop_order.holds %] hold(s) left</b> >+ [% END %] > </td> > </tr> > [% END %] >-- >1.7.4.1 >
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 5680
:
3047
|
4255
|
4256
|
4480
|
5813
|
5814
|
5816
|
5904
|
5914
|
5915
|
5916
|
5964
|
5965