|
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 |
- |
|
|