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

(-)a/C4/MarcModificationTemplates.pm (-3 / +5 lines)
Lines 548-554 sub ModifyRecordWithTemplate { Link Here
548
                    ? @$field_numbers
548
                    ? @$field_numbers
549
                    : not @$field_numbers;
549
                    : not @$field_numbers;
550
            } elsif ( $conditional_comparison eq 'not_exists' ) {
550
            } elsif ( $conditional_comparison eq 'not_exists' ) {
551
                $field_numbers = field_exists(
551
                my $not_exists_numbers = [];
552
                ( $field_numbers, $not_exists_numbers ) = field_exists(
552
                    {
553
                    {
553
                        record   => $record,
554
                        record   => $record,
554
                        field    => $conditional_field,
555
                        field    => $conditional_field,
Lines 556-564 sub ModifyRecordWithTemplate { Link Here
556
                    }
557
                    }
557
                );
558
                );
558
                $do =
559
                $do =
559
                    $conditional eq 'if'
560
                      $conditional eq 'if'
560
                    ? not @$field_numbers
561
                    ? @$not_exists_numbers
561
                    : @$field_numbers;
562
                    : @$field_numbers;
563
                $field_numbers = $not_exists_numbers;
562
            } elsif ( $conditional_comparison eq 'equals' ) {
564
            } elsif ( $conditional_comparison eq 'equals' ) {
563
                $field_numbers = field_equals(
565
                $field_numbers = field_equals(
564
                    {
566
                    {
(-)a/Koha/SimpleMARC.pm (-4 / +9 lines)
Lines 385-390 sub _read_subfield { Link Here
385
385
386
  Returns the field numbers or an empty array.
386
  Returns the field numbers or an empty array.
387
387
388
  Also returns the not_exists field numbers if looking at subfieldName too.
389
388
=cut
390
=cut
389
391
390
sub field_exists {
392
sub field_exists {
Lines 396-413 sub field_exists { Link Here
396
    if ( !$record ) { return; }
398
    if ( !$record ) { return; }
397
399
398
    my @field_numbers        = ();
400
    my @field_numbers        = ();
401
    my @not_exists_numbers   = ();
399
    my $current_field_number = 1;
402
    my $current_field_number = 1;
400
    for my $field ( $record->field($fieldName) ) {
403
    for my $field ( $record->field($fieldName) ) {
401
        if ($subfieldName) {
404
        if ($subfieldName) {
402
            push @field_numbers, $current_field_number
405
            if ( $field->subfield($subfieldName) ) {
403
                if $field->subfield($subfieldName);
406
                push @field_numbers, $current_field_number;
407
            } else {
408
                push @not_exists_numbers, $current_field_number;
409
            }
404
        } else {
410
        } else {
405
            push @field_numbers, $current_field_number;
411
            push @field_numbers, $current_field_number;
406
        }
412
        }
407
        $current_field_number++;
413
        $current_field_number++;
408
    }
414
    }
409
415
410
    return \@field_numbers;
416
    return ( \@field_numbers, \@not_exists_numbers );
411
}
417
}
412
418
413
=head2 field_equals
419
=head2 field_equals
414
- 

Return to bug 39504