Bug 37115: Batch delete linked serials
Test plan:
- Add a new subscription to a serial record (with the option 'create an item record' selected)
- Receive several issues and create the linked items
- Return to the bibliographic record
- Select several items
- Click to 'Delete selected items'
- Tick the box 'delete serial issues linked to items' and confirm
- The items should be deleted correctly
- Back to subscription : the issues linked to items should no longer exist
Signed-off-by: Boubacar OUATTARA <boubacar.ouattara@biblibre.com>
Signed-off-by: Nathalie <nathalie.savarit@univ-amu.fr>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 69b1d07d76)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
This commit is contained in:
parent
88304db54b
commit
e766667c91
|
|
@ -81,8 +81,9 @@ sub process {
|
|||
|
||||
$self->start;
|
||||
|
||||
my @record_ids = @{ $args->{record_ids} };
|
||||
my $delete_biblios = $args->{delete_biblios};
|
||||
my @record_ids = @{ $args->{record_ids} };
|
||||
my $delete_biblios = $args->{delete_biblios};
|
||||
my $delete_serial_issues = $args->{delete_serial_issues};
|
||||
|
||||
my $report = {
|
||||
total_records => scalar @record_ids,
|
||||
|
|
@ -106,7 +107,12 @@ sub process {
|
|||
|
||||
my $item = Koha::Items->find($record_id) || next;
|
||||
|
||||
my $return = $item->safe_delete( { skip_record_index => 1, skip_holds_queue => 1 } );
|
||||
my $return = $item->safe_delete(
|
||||
{
|
||||
skip_record_index => 1, skip_holds_queue => 1,
|
||||
delete_serial_issues => $delete_serial_issues
|
||||
}
|
||||
);
|
||||
unless ($return) {
|
||||
|
||||
# FIXME Do we need to rollback the whole transaction if a deletion failed?
|
||||
|
|
@ -221,15 +227,17 @@ sub enqueue {
|
|||
# TODO Raise exception instead
|
||||
return unless exists $args->{record_ids};
|
||||
|
||||
my @record_ids = @{ $args->{record_ids} };
|
||||
my $delete_biblios = $args->{delete_biblios} || 0;
|
||||
my @record_ids = @{ $args->{record_ids} };
|
||||
my $delete_biblios = $args->{delete_biblios} || 0;
|
||||
my $delete_serial_issues = $args->{delete_serial_issues} || 0;
|
||||
|
||||
$self->SUPER::enqueue(
|
||||
{
|
||||
job_size => scalar @record_ids,
|
||||
job_args => {
|
||||
record_ids => \@record_ids,
|
||||
delete_biblios => $delete_biblios,
|
||||
record_ids => \@record_ids,
|
||||
delete_biblios => $delete_biblios,
|
||||
delete_serial_issues => $delete_serial_issues,
|
||||
},
|
||||
job_queue => 'long_tasks',
|
||||
}
|
||||
|
|
|
|||
|
|
@ -175,8 +175,17 @@
|
|||
<p>This will delete [% IF ( too_many_items_display ) %]all the[% ELSE %]the selected[% END %] items.</p>
|
||||
<input type="hidden" name="del" value="1" />
|
||||
[% IF ( CAN_user_editcatalogue_edit_catalogue ) %]
|
||||
<input type="checkbox" name="del_records" id="del_records" />
|
||||
<label for="del_records">Delete records if no items remain.</label>
|
||||
<div style="display: flex; flex-direction: column; gap: 5px;">
|
||||
<div>
|
||||
<input type="checkbox" name="del_records" id="del_records" />
|
||||
|
||||
<label for="del_records">Delete records if no items remain.</label>
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" name="del_serial_issues" id="del_serial_issues" />
|
||||
<label for="del_serial_issues">Delete serial issues linked to items.</label>
|
||||
</div>
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
<fieldset class="action">
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ my $biblionumber = $input->param('biblionumber');
|
|||
my $op = $input->param('op');
|
||||
my $del = $input->param('del');
|
||||
my $del_records = $input->param('del_records');
|
||||
my $del_serial_issues = $input->param('del_serial_issues');
|
||||
my $src = $input->param('src');
|
||||
my $use_default_values = $input->param('use_default_values');
|
||||
my $exclude_from_local_holds_priority = $input->param('exclude_from_local_holds_priority');
|
||||
|
|
@ -94,8 +95,9 @@ if ( $op eq "cud-action" ) {
|
|||
if ($del) {
|
||||
try {
|
||||
my $params = {
|
||||
record_ids => \@itemnumbers,
|
||||
delete_biblios => $del_records,
|
||||
record_ids => \@itemnumbers,
|
||||
delete_biblios => $del_records,
|
||||
delete_serial_issues => $del_serial_issues,
|
||||
};
|
||||
my $job_id = Koha::BackgroundJob::BatchDeleteItem->new->enqueue($params);
|
||||
$nextop = 'enqueued';
|
||||
|
|
|
|||
Loading…
Reference in New Issue