|
Lines 52-57
$verbose and print "================================\n";
Link Here
|
| 52 |
$date_created_marc = '099c' unless $date_created_marc; |
52 |
$date_created_marc = '099c' unless $date_created_marc; |
| 53 |
my ( $c_field, $c_subfield ) = _read_marc_code($date_created_marc); |
53 |
my ( $c_field, $c_subfield ) = _read_marc_code($date_created_marc); |
| 54 |
die "date-created-marc '$date_created_marc' is not correct." unless $c_field; |
54 |
die "date-created-marc '$date_created_marc' is not correct." unless $c_field; |
|
|
55 |
die "date-created-marc field is greated that 009, it should have a subfield." |
| 56 |
if ( $c_field > 9 && !defined $c_subfield ); |
| 57 |
die "date-created-marc field is lower that 010, it should not have a subfield." |
| 58 |
if ( $c_field < 10 && defined $c_subfield ); |
| 55 |
if ($verbose) { |
59 |
if ($verbose) { |
| 56 |
print "Date created on $c_field"; |
60 |
print "Date created on $c_field"; |
| 57 |
print $c_subfield if defined $c_subfield; # use of defined to allow 0 |
61 |
print $c_subfield if defined $c_subfield; # use of defined to allow 0 |
|
Lines 62-67
if ($verbose) {
Link Here
|
| 62 |
$date_modified_marc = '099d' unless $date_modified_marc; |
66 |
$date_modified_marc = '099d' unless $date_modified_marc; |
| 63 |
my ( $m_field, $m_subfield ) = _read_marc_code($date_modified_marc); |
67 |
my ( $m_field, $m_subfield ) = _read_marc_code($date_modified_marc); |
| 64 |
die "date-modified-marc '$date_modified_marc' is not correct." unless $m_field; |
68 |
die "date-modified-marc '$date_modified_marc' is not correct." unless $m_field; |
|
|
69 |
die "date-modified-marc field is greated that 009, it should have a subfield." |
| 70 |
if ( $m_field > 9 && !defined $m_subfield ); |
| 71 |
die "date-modified-marc field is lower that 010, it should not have a subfield." |
| 72 |
if ( $m_field < 10 && defined $m_subfield ); |
| 65 |
die |
73 |
die |
| 66 |
"When date-created-marc and date-modified-marc are on same field, they should have distinct subfields" |
74 |
"When date-created-marc and date-modified-marc are on same field, they should have distinct subfields" |
| 67 |
if ( $c_field eq $m_field ) |
75 |
if ( $c_field eq $m_field ) |
|
Lines 133-139
sub updateMarc {
Link Here
|
| 133 |
|
141 |
|
| 134 |
# date created field |
142 |
# date created field |
| 135 |
unless ($c_marc_field) { |
143 |
unless ($c_marc_field) { |
| 136 |
$biblio->add_fields( new MARC::Field( $c_field, '', '' ) ); |
144 |
if ( defined $c_subfield ) { |
|
|
145 |
$biblio->add_fields( |
| 146 |
new MARC::Field( |
| 147 |
$c_field, ' ', ' ', $c_subfield => $c_db_value |
| 148 |
) |
| 149 |
); |
| 150 |
} |
| 151 |
else { |
| 152 |
$biblio->add_fields( new MARC::Field( $c_field, $c_db_value ) ); |
| 153 |
} |
| 137 |
$debug and warn "[WARN] $c_field did not exist."; |
154 |
$debug and warn "[WARN] $c_field did not exist."; |
| 138 |
$c_marc_field = $biblio->field($c_field); |
155 |
$c_marc_field = $biblio->field($c_field); |
| 139 |
|
156 |
|
|
Lines 142-165
sub updateMarc {
Link Here
|
| 142 |
$m_marc_field = $c_marc_field; |
159 |
$m_marc_field = $c_marc_field; |
| 143 |
} |
160 |
} |
| 144 |
} |
161 |
} |
| 145 |
if ( defined $c_subfield ) { |
|
|
| 146 |
$c_marc_field->update( $c_subfield, $c_db_value ); |
| 147 |
} |
| 148 |
else { |
162 |
else { |
| 149 |
$c_marc_field->update($c_db_value); |
163 |
if ( defined $c_subfield ) { |
|
|
164 |
$c_marc_field->update( $c_subfield, $c_db_value ); |
| 165 |
} |
| 166 |
else { |
| 167 |
$c_marc_field->update($c_db_value); |
| 168 |
} |
| 150 |
} |
169 |
} |
| 151 |
|
170 |
|
| 152 |
# date last modified field |
171 |
# date last modified field |
| 153 |
unless ($m_marc_field) { |
172 |
unless ($m_marc_field) { |
| 154 |
$biblio->add_fields( new MARC::Field( $m_field, '', '' ) ); |
173 |
if ( defined $m_subfield ) { |
|
|
174 |
$biblio->add_fields( |
| 175 |
new MARC::Field( |
| 176 |
$m_field, ' ', ' ', $m_subfield => $m_db_value |
| 177 |
) |
| 178 |
); |
| 179 |
} |
| 180 |
else { |
| 181 |
$biblio->add_fields( new MARC::Field( $m_field, $m_db_value ) ); |
| 182 |
} |
| 183 |
|
| 155 |
$debug and warn "[WARN] $m_field did not exist."; |
184 |
$debug and warn "[WARN] $m_field did not exist."; |
| 156 |
$m_marc_field = $biblio->field($m_field); |
185 |
$m_marc_field = $biblio->field($m_field); |
| 157 |
} |
186 |
} |
| 158 |
if ( defined $m_subfield ) { |
|
|
| 159 |
$m_marc_field->update( $m_subfield, $m_db_value ); |
| 160 |
} |
| 161 |
else { |
187 |
else { |
| 162 |
$m_marc_field->update($m_db_value); |
188 |
if ( defined $m_subfield ) { |
|
|
189 |
$m_marc_field->update( $m_subfield, $m_db_value ); |
| 190 |
} |
| 191 |
else { |
| 192 |
$m_marc_field->update($m_db_value); |
| 193 |
} |
| 163 |
} |
194 |
} |
| 164 |
|
195 |
|
| 165 |
# apply to databse |
196 |
# apply to databse |
|
Lines 222-228
UNIMARC specific.
Link Here
|
| 222 |
Parameters: |
253 |
Parameters: |
| 223 |
--help or -h show this message |
254 |
--help or -h show this message |
| 224 |
--verbose or -v verbose logging |
255 |
--verbose or -v verbose logging |
| 225 |
--run run the command else modifications will not be applyed to database |
256 |
--run run the command else modifications will not be applied to database |
| 226 |
--where (optional) use this to limit execution to some biblios : |
257 |
--where (optional) use this to limit execution to some biblios : |
| 227 |
write a SQL where clause using biblio and/or biblioitems fields |
258 |
write a SQL where clause using biblio and/or biblioitems fields |
| 228 |
--date-created-marc or c (optional) date created MARC field and optional subfield, |
259 |
--date-created-marc or c (optional) date created MARC field and optional subfield, |
| 229 |
- |
|
|