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

(-)a/C4/MarcModificationTemplates.pm (-41 / +50 lines)
Lines 547-595 sub ModifyRecordWithTemplate { Link Here
547
        );
547
        );
548
548
549
        my $do = 1;
549
        my $do = 1;
550
        if ( $conditional ) {
550
        if ($conditional) {
551
            for ( $conditional_comparison ) {
551
            if ( $conditional_comparison eq 'exists' ) {
552
                when ( /^exists$/ ) {
552
                my $exists = field_exists( $record, $conditional_field,
553
                    my $exists = field_exists( $record, $conditional_field, $conditional_subfield );
553
                    $conditional_subfield );
554
                    $do = $conditional eq 'if'
554
                $do =
555
                        ? $exists
555
                    $conditional eq 'if'
556
                        : not $exists;
556
                  ? $exists
557
                }
557
                  : not $exists;
558
                when ( /^not_exists$/ ) {
558
            }
559
                    my $exists = field_exists( $record, $conditional_field, $conditional_subfield );
559
            elsif ( $conditional_comparison eq 'not_exists' ) {
560
                    $do = $conditional eq 'if'
560
                my $exists = field_exists( $record, $conditional_field,
561
                        ? not $exists
561
                    $conditional_subfield );
562
                        : $exists;
562
                $do =
563
                }
563
                  $conditional eq 'if'
564
                when ( /^equals$/ ) {
564
                  ? not $exists
565
                    my $equals = field_equals( $record, $conditional_value, $conditional_field, $conditional_subfield, $conditional_regex );
565
                  : $exists;
566
                    $do = $conditional eq 'if'
566
            }
567
                        ? $equals
567
            elsif ( $conditional_comparison eq 'equals' ) {
568
                        : not $equals;
568
                my $equals = field_equals(
569
                }
569
                    $record,            $conditional_value,
570
                when ( /^not_equals$/ ) {
570
                    $conditional_field, $conditional_subfield,
571
                    my $equals = field_equals( $record, $conditional_value, $conditional_field, $conditional_subfield, $conditional_regex );
571
                    $conditional_regex
572
                    $do = $conditional eq 'if'
572
                );
573
                        ? not $equals
573
                $do =
574
                        : $equals;
574
                    $conditional eq 'if'
575
                }
575
                  ? $equals
576
                  : not $equals;
577
            }
578
            elsif ( $conditional_comparison eq 'not_equals' ) {
579
                my $equals = field_equals(
580
                    $record,            $conditional_value,
581
                    $conditional_field, $conditional_subfield,
582
                    $conditional_regex
583
                );
584
                $do =
585
                  $conditional eq 'if'
586
                  ? not $equals
587
                  : $equals;
576
            }
588
            }
577
        }
589
        }
578
590
579
        if ( $do ) {
591
        if ($do) {
580
            for ( $action ) {
592
            if ( $action eq 'copy_field' ) {
581
                when ( /^copy_field$/ ) {
593
                copy_field(@params);
582
                    copy_field( @params );
594
            }
583
                }
595
            elsif ( $action eq 'update_field' ) {
584
                when ( /^update_field$/ ) {
596
                update_field(@params);
585
                    update_field( @params );
597
            }
586
                }
598
            elsif ( $action eq 'move_field' ) {
587
                when ( /^move_field$/ ) {
599
                move_field(@params);
588
                    move_field( @params );
600
            }
589
                }
601
            elsif ( $action eq 'delete_field' ) {
590
                when ( /^delete_field$/ ) {
602
                delete_field(@params);
591
                    delete_field( @params );
592
                }
593
            }
603
            }
594
        }
604
        }
595
605
596
- 

Return to bug 11479