Bug 18360: Allow to delete a cancelled order from open basket
Doing this under flag of order_manage and not on the higher level of baskets. Starting here with a single order delete for cancelled lines. So deleting an open order line requires cancelling it first. Can be extended later if needed. Test plan: Pick an open basket with cancelled lines. Try to delete a few lines. Test that you cannot do this on an closed basket. (Bonus: manipulate URL with basketno, ordernumber and op=cud-delete-order.) Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
parent
87b921726a
commit
2891b0d5e6
2 changed files with 40 additions and 2 deletions
|
@ -119,7 +119,22 @@ $template->param( skip_confirm_reopen => 1) if $confirm_pref eq '2';
|
|||
|
||||
my @messages;
|
||||
|
||||
if ( $op eq 'cud-delete_confirm' ) {
|
||||
if ( $op eq 'cud-delete-order' ) {
|
||||
output_and_exit( $query, $cookie, $template, 'insufficient_permission' )
|
||||
unless $logged_in_patron->has_permission( { acquisition => 'order_manage' } );
|
||||
|
||||
# We only allow deleting cancelled line without biblionumber for now
|
||||
my $ordernumber = $query->param('ordernumber');
|
||||
my $order = Koha::Acquisition::Orders->search(
|
||||
{
|
||||
biblionumber => undef,
|
||||
ordernumber => $ordernumber, orderstatus => 'cancelled'
|
||||
}
|
||||
);
|
||||
$order->delete if $order;
|
||||
$op = 'list';
|
||||
|
||||
} elsif ( $op eq 'cud-delete_confirm' ) {
|
||||
|
||||
output_and_exit( $query, $cookie, $template, 'insufficient_permission' )
|
||||
unless $logged_in_patron->has_permission( { acquisition => 'delete_baskets' } );
|
||||
|
|
|
@ -781,6 +781,7 @@
|
|||
<th>GST %</th>
|
||||
<th>GST</th>
|
||||
<th>Fund</th>
|
||||
<th>Delete order</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -844,11 +845,19 @@
|
|||
<td class="number">[% order.total_tax_included | $Price %]</td>
|
||||
<td class="number">[% order.tax_rate * 100 | html %]</td>
|
||||
<td class="number">[% order.tax_value | $Price %]</td>
|
||||
<td>[% order.budget_name | html %]
|
||||
<td>[% order.budget_name | html %]</td>
|
||||
<td>
|
||||
[% UNLESS closedate %]<a class="delete_order" href="#" data-ordernumber="[% order.ordernumber | html %]" data-biblionumber="[% order.biblionumber | html %]">Delete</a>[% END %]
|
||||
</td>
|
||||
</tr>
|
||||
[% END # /FOREACH order %]
|
||||
</tbody>
|
||||
</table> <!-- /#cancelledorderst -->
|
||||
<form id="delete_order_form" method="post">
|
||||
<input type="hidden" name="op" value="cud-delete-order"/>
|
||||
<input type="hidden" name="ordernumber" value=""/>
|
||||
<input type="hidden" name="basketno" value="[% basketno | html %]"/>
|
||||
</form>
|
||||
</div> <!-- /#cancelledorders -->
|
||||
[% END # /IF (cancelledorders_loop) %]
|
||||
<br />
|
||||
|
@ -1113,6 +1122,20 @@
|
|||
window.location = "/cgi-bin/koha/acqui/basket.pl?op=edi_confirm&basketno=[% basketno | html %]";
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$(".delete_order").on('click', function(e) {
|
||||
e.preventDefault();
|
||||
if( $(this).data('biblionumber') ) {
|
||||
alert( _("Please delete the linked bibliographic record first.") );
|
||||
return false;
|
||||
} else if( !confirm(_("Are you sure you want to delete this order line?")) ) {
|
||||
return false;
|
||||
}
|
||||
$('#delete_order_form input[name="ordernumber"]').val( $(this).data('ordernumber') );
|
||||
$('#delete_order_form').submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
[% ELSE %]
|
||||
<script>
|
||||
|
|
Loading…
Reference in a new issue