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

(-)a/misc/add_date_fields_to_marc_records.pl (-4 / +12 lines)
Lines 29-35 use MARC::Field; Link Here
29
use C4::Biblio;
29
use C4::Biblio;
30
use Koha::DateUtils qw( dt_from_string );
30
use Koha::DateUtils qw( dt_from_string );
31
31
32
my ( $verbose, $help, $confirm, $where, @fields );
32
my ( $verbose, $help, $confirm, $where, @fields, $unless_exists_field );
33
my $dbh = C4::Context->dbh;
33
my $dbh = C4::Context->dbh;
34
34
35
GetOptions(
35
GetOptions(
Lines 38-43 GetOptions( Link Here
38
    'confirm|c' => \$confirm,
38
    'confirm|c' => \$confirm,
39
    'where=s'   => \$where,
39
    'where=s'   => \$where,
40
    'field=s@'  => \@fields,
40
    'field=s@'  => \@fields,
41
    'unless-exists=s' => \$unless_exists_field,
41
) || podusage(1);
42
) || podusage(1);
42
43
43
pod2usage(0) if $help;
44
pod2usage(0) if $help;
Lines 51-57 for my $field (@fields) { Link Here
51
      MARC::Field->new( $tag, '', '', $subfield => $dt->strftime($value) );
52
      MARC::Field->new( $tag, '', '', $subfield => $dt->strftime($value) );
52
}
53
}
53
54
54
say "Confirm flag not passed, running in dry-run mode...";
55
say "Confirm flag not passed, running in dry-run mode..." unless $confirm;
55
if ($verbose) {
56
if ($verbose) {
56
    say "The following MARC fields will be added:";
57
    say "The following MARC fields will be added:";
57
    say "\t" . $_->as_formatted for @fields_to_add;
58
    say "\t" . $_->as_formatted for @fields_to_add;
Lines 66-71 while ( my ( $biblionumber, $frameworkcode ) = $sth->fetchrow_array ) { Link Here
66
    my $marc_record =
67
    my $marc_record =
67
      C4::Biblio::GetMarcBiblio( { biblionumber => $biblionumber } );
68
      C4::Biblio::GetMarcBiblio( { biblionumber => $biblionumber } );
68
    next unless $marc_record;
69
    next unless $marc_record;
70
    if ( $unless_exists_field ) {
71
        my ( $tag,  $subfield ) = split '\$', $unless_exists_field;
72
        next if $marc_record->subfield($tag, $subfield);
73
    }
69
    $marc_record->append_fields(@fields_to_add);
74
    $marc_record->append_fields(@fields_to_add);
70
    if ($confirm) {
75
    if ($confirm) {
71
        my $modified =
76
        my $modified =
Lines 86-92 add_date_fields_to_marc_records.pl Link Here
86
91
87
  perl add_date_fields_to_marc_records.pl --help
92
  perl add_date_fields_to_marc_records.pl --help
88
93
89
  perl add_date_fields_to_marc_records.pl --field='905$a=0/%Y' --field='905$a=1/%Y/%b-%m' --field='905$a=2/%Y/%b-%m/%d' --verbose --confirm
94
  perl add_date_fields_to_marc_records.pl --field='905$a=0/%Y' --field='905$a=1/%Y/%b-%m' --field='905$a=2/%Y/%b-%m/%d' --unless-exists='905$a' --verbose --confirm
90
95
91
=head1 DESCRIPTION
96
=head1 DESCRIPTION
92
97
Lines 123-128 For instance: Link Here
123
128
124
905$a=2/%Y/%b-%m/%d'will a a new field 905$a with the value '2/2019/Mar-03/13' if run on March 13th 2019
129
905$a=2/%Y/%b-%m/%d'will a a new field 905$a with the value '2/2019/Mar-03/13' if run on March 13th 2019
125
130
131
=item B<--unless-exists>
132
133
Will only create the new fields if this field does not exist
134
126
=back
135
=back
127
136
128
=cut
137
=cut
129
- 

Return to bug 22509