View | Details | Raw Unified | Return to bug 31517
Collapse All | Expand All

(-)a/C4/Tags.pm (-24 / +22 lines)
Lines 28-34 use Module::Load::Conditional qw( check_install ); Link Here
28
use Koha::Tags;
28
use Koha::Tags;
29
use Koha::Tags::Approvals;
29
use Koha::Tags::Approvals;
30
use Koha::Tags::Indexes;
30
use Koha::Tags::Indexes;
31
#use Data::Dumper;
32
use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created);
31
use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created);
33
use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM   tags_all\n";
32
use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM   tags_all\n";
34
33
Lines 115-142 sub get_count_by_tag_status { Link Here
115
}
114
}
116
115
117
sub remove_tag {
116
sub remove_tag {
118
	my $tag_id  = shift or return;
117
    my $tag_id  = shift or return;
119
	my $user_id = (@_) ? shift : undef;
118
    my $user_id = (@_) ? shift : undef;
120
	my $rows = (defined $user_id) ?
119
    my $rows = (defined $user_id) ?
121
			get_tag_rows({tag_id=>$tag_id, borrowernumber=>$user_id}) :
120
            get_tag_rows({tag_id=>$tag_id, borrowernumber=>$user_id}) :
122
			get_tag_rows({tag_id=>$tag_id}) ;
121
            get_tag_rows({tag_id=>$tag_id}) ;
123
	$rows or return 0;
122
    $rows or return 0;
124
	(scalar(@$rows) == 1) or return;	# should never happen (duplicate ids)
123
    (scalar(@$rows) == 1) or return;    # should never happen (duplicate ids)
125
	my $row = shift(@$rows);
124
    my $row = shift(@$rows);
126
	($tag_id == $row->{tag_id}) or return 0;
125
    ($tag_id == $row->{tag_id}) or return 0;
127
	my $tags = get_tags({term=>$row->{term}, biblionumber=>$row->{biblionumber}});
126
    my $tags = get_tags({term=>$row->{term}, biblionumber=>$row->{biblionumber}});
128
	my $index = shift(@$tags);
127
    my $index = shift(@$tags);
129
	if ($index->{weight} <= 1) {
128
    if ($index->{weight} <= 1) {
130
		Koha::Tags::Indexes->search({ term => $row->{term}, biblionumber => $row->{biblionumber} })->delete;
129
        Koha::Tags::Indexes->search({ term => $row->{term}, biblionumber => $row->{biblionumber} })->delete;
131
	} else {
130
    } else {
132
		decrement_weight($row->{term},$row->{biblionumber});
131
        decrement_weight($row->{term},$row->{biblionumber});
133
	}
132
    }
134
	if ($index->{weight_total} <= 1) {
133
    if ($index->{weight_total} <= 1) {
135
		Koha::Tags::Approvals->search({ term => $row->{term} })->delete;
134
        Koha::Tags::Approvals->search({ term => $row->{term} })->delete;
136
	} else {
135
    } else {
137
		decrement_weight_total($row->{term});
136
        decrement_weight_total($row->{term});
138
	}
137
    }
139
	Koha::Tags->search({ tag_id => $tag_id })->delete;
138
    Koha::Tags->search({ tag_id => $tag_id })->delete;
140
}
139
}
141
140
142
sub get_tag_rows {
141
sub get_tag_rows {
143
- 

Return to bug 31517