# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
-## NOTE:
-## Parts of this module are used from cgi scripts that are detached from apache before
-## execution. For this reason, the C4::Koha::Log function has been used to capture
-## output for debugging purposes.
-
use Modern::Perl;
use DateTime;
sub GetModificationTemplates {
my ( $template_id ) = @_;
- C4::Koha::Log("C4::MarcModificationTemplates::GetModificationTemplates( $template_id )") if DEBUG;
warn("C4::MarcModificationTemplates::GetModificationTemplates( $template_id )") if DEBUG;
my $dbh = C4::Context->dbh;
sub GetModificationTemplateActions {
my ( $template_id ) = @_;
- C4::Koha::Log( "C4::MarcModificationTemplates::GetModificationTemplateActions( $template_id )" ) if DEBUG;
warn( "C4::MarcModificationTemplates::GetModificationTemplateActions( $template_id )" ) if DEBUG;
my $dbh = C4::Context->dbh;
push( @actions, $action );
}
- C4::Koha::Log( Data::Dumper::Dumper( @actions ) ) if DEBUG > 4;
warn( Data::Dumper::Dumper( @actions ) ) if DEBUG > 4;
return @actions;
$description
) = @_;
- C4::Koha::Log( "C4::MarcModificationTemplates::AddModificationTemplateAction( $template_id, $action,
- $field_number, $from_field, $from_subfield, $field_value, $to_field, $to_subfield,
- $to_regex_search, $to_regex_replace, $to_regex_modifiers, $conditional, $conditional_field, $conditional_subfield, $conditional_comparison,
- $conditional_value, $conditional_regex, $description )" ) if DEBUG;
warn( "C4::MarcModificationTemplates::AddModificationTemplateAction( $template_id, $action,
$field_number, $from_field, $from_subfield, $field_value, $to_field, $to_subfield,
$to_regex_search, $to_regex_replace, $to_regex_modifiers, $conditional, $conditional_field, $conditional_subfield, $conditional_comparison,
sub ModifyRecordsWithTemplate {
my ( $template_id, $batch ) = @_;
- C4::Koha::Log( "C4::MarcModificationTemplates::ModifyRecordsWithTemplate( $template_id, $batch )" ) if DEBUG;
warn( "C4::MarcModificationTemplates::ModifyRecordsWithTemplate( $template_id, $batch )" ) if DEBUG;
while ( my $record = $batch->next() ) {
sub ModifyRecordWithTemplate {
my ( $template_id, $record ) = @_;
- C4::Koha::Log( "C4::MarcModificationTemplates::ModifyRecordWithTemplate( $template_id, $record )" ) if DEBUG;
warn( "C4::MarcModificationTemplates::ModifyRecordWithTemplate( $template_id, $record )" ) if DEBUG;
- C4::Koha::Log( "Unmodified Record:\n" . $record->as_formatted() ) if DEBUG >= 10;
warn( "Unmodified Record:\n" . $record->as_formatted() ) if DEBUG >= 10;
my $current_date = DateTime->now()->ymd();
- my $branchcode = C4::Context->userenv->{branch};
+ my $branchcode = '';
+ $branchcode = C4::Context->userenv->{branch} if C4::Context->userenv;
my @actions = GetModificationTemplateActions( $template_id );
);
my $do = 1;
- if ( $conditional ) {
- for ( $conditional_comparison ) {
- when ( /^exists$/ ) {
- my $exists = field_exists( $record, $conditional_field, $conditional_subfield );
- $do = $conditional eq 'if'
- ? $exists
- : not $exists;
- }
- when ( /^not_exists$/ ) {
- my $exists = field_exists( $record, $conditional_field, $conditional_subfield );
- $do = $conditional eq 'if'
- ? not $exists
- : $exists;
- }
- when ( /^equals$/ ) {
- my $equals = field_equals( $record, $conditional_value, $conditional_field, $conditional_subfield, $conditional_regex );
- $do = $conditional eq 'if'
- ? $equals
- : not $equals;
- }
- when ( /^not_equals$/ ) {
- my $equals = field_equals( $record, $conditional_value, $conditional_field, $conditional_subfield, $conditional_regex );
- $do = $conditional eq 'if'
- ? not $equals
- : $equals;
- }
+ if ($conditional) {
+ if ( $conditional_comparison eq 'exists' ) {
+ my $exists = field_exists( $record, $conditional_field,
+ $conditional_subfield );
+ $do =
+ $conditional eq 'if'
+ ? $exists
+ : not $exists;
+ }
+ elsif ( $conditional_comparison eq 'not_exists' ) {
+ my $exists = field_exists( $record, $conditional_field,
+ $conditional_subfield );
+ $do =
+ $conditional eq 'if'
+ ? not $exists
+ : $exists;
+ }
+ elsif ( $conditional_comparison eq 'equals' ) {
+ my $equals = field_equals(
+ $record, $conditional_value,
+ $conditional_field, $conditional_subfield,
+ $conditional_regex
+ );
+ $do =
+ $conditional eq 'if'
+ ? $equals
+ : not $equals;
+ }
+ elsif ( $conditional_comparison eq 'not_equals' ) {
+ my $equals = field_equals(
+ $record, $conditional_value,
+ $conditional_field, $conditional_subfield,
+ $conditional_regex
+ );
+ $do =
+ $conditional eq 'if'
+ ? not $equals
+ : $equals;
}
}
- if ( $do ) {
- for ( $action ) {
- when ( /^copy_field$/ ) {
- copy_field( @params );
- }
- when ( /^update_field$/ ) {
- update_field( @params );
- }
- when ( /^move_field$/ ) {
- move_field( @params );
- }
- when ( /^delete_field$/ ) {
- delete_field( @params );
- }
+ if ($do) {
+ if ( $action eq 'copy_field' ) {
+ copy_field(@params);
+ }
+ elsif ( $action eq 'update_field' ) {
+ update_field(@params);
+ }
+ elsif ( $action eq 'move_field' ) {
+ move_field(@params);
+ }
+ elsif ( $action eq 'delete_field' ) {
+ delete_field(@params);
}
}
- C4::Koha::Log( $record->as_formatted() ) if DEBUG >= 10;
warn( $record->as_formatted() ) if DEBUG >= 10;
}
}