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

(-)a/Koha/REST/V1/TransferLimits.pm (-14 / +20 lines)
Lines 141-172 sub batch_add { Link Here
141
            @to_branches   = @library_ids unless $params->{to_library_id};
141
            @to_branches   = @library_ids unless $params->{to_library_id};
142
        }
142
        }
143
143
144
        my $dbic_params = Koha::Item::Transfer::Limits->new->attributes_from_api($params);
145
        my %existing_limits =
146
            map { sprintf( "%s:%s:%s:%s", $_->fromBranch, $_->toBranch, $_->itemtype, $_->ccode ) => 1 }
147
            Koha::Item::Transfer::Limits->search($dbic_params)->as_list;
148
144
        my @results;
149
        my @results;
145
        foreach my $from ( @from_branches ) {
150
        foreach my $from (@from_branches) {
146
            foreach my $to ( @to_branches ) {
151
            foreach my $to (@to_branches) {
147
                my $limit_params = { %$params };
152
                my $limit_params = {%$params};
148
153
149
                $limit_params->{from_library_id} = $from;
154
                $limit_params->{from_library_id} = $from;
150
                $limit_params->{to_library_id} = $to;
155
                $limit_params->{to_library_id}   = $to;
151
156
152
                next if $to eq $from;
157
                next if $to eq $from;
153
158
154
                my $transfer_limit = Koha::Item::Transfer::Limit->new_from_api( $limit_params );
159
                my $key = sprintf(
155
                my $exists = Koha::Item::Transfer::Limits->search( $transfer_limit->unblessed )->count;
160
                    "%s:%s:%s:%s", $limit_params->{from_branch_id} || q{},
156
                unless ( $exists ) {
161
                    $limit_params->{to_branch_id} || q{}, $limit_params->{item_type} || q{},
157
                    $transfer_limit->store;
162
                    $limit_params->{collection_code} || q{}
158
                    push( @results, $transfer_limit->to_api());
163
                );
159
                }
164
                next if exists $existing_limits{$key};
165
166
                my $transfer_limit = Koha::Item::Transfer::Limit->new_from_api($limit_params);
167
                $transfer_limit->store;
168
                push( @results, $transfer_limit->to_api() );
160
            }
169
            }
161
        }
170
        }
162
        my $transfer_limit = Koha::Item::Transfer::Limit->new_from_api( $params );
163
171
164
        return $c->render(
172
        return $c->render(
165
            status  => 201,
173
            status  => 201,
166
            openapi => \@results
174
            openapi => \@results
167
        );
175
        );
168
    }
176
    } catch {
169
    catch {
170
        $c->unhandled_exception($_);
177
        $c->unhandled_exception($_);
171
    };
178
    };
172
}
179
}
173
- 

Return to bug 36277