if ( rec('200','a') ) {
### LEADER
-## raspraviti 17,18
-## LDR 05 - c ili d - iz 999a ili 999b ili 999 - provjeriti za svaku knjiznicu
+## LDR 05 - c = pregledan ; n = new
+## 999^aP - SFM
if ( rec('999') && rec('999','a') =~ m/(pregledan|P)/i) {
marc_leader('05','c');
marc_leader('05','n');
}
-## LDR 06 - a ili m - odrediti kriterije
+## LDR 06 - a - language material
marc_leader('06','a');
-## LDR 07 - m
+## LDR 07 - m - Monograph/item
marc_leader('07','m');
-## LDR 17 i 18 - razjasniti
+## LDR 17
+ marc_leader('17','7');
+## LDR 18
marc_leader('18','i');
## LDR 19 - razjasniti
marc_leader('19','r');
}
-### 001 - Voyager
+### 001 - Voyager ID
### 003 - razjasniti
marc_fixed('007',00,'ta');
### 008 - All materials
-## 008 00 - datum - ¹to kad datum nije poznat?
+## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje
if ( rec('994','c') ) {
marc_fixed('008','00',
);
} else {
marc_fixed('008', 00,
- '000101'
+ '000000'
);
}
#)
#);
-## 008 06 - Type of date/Publication status - t - raspraviti
+## 008 06 - Type of date/Publication status
+## dodati i ostale moguænosti
+## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c
-marc_fixed('008','06', 't');
+my $year = rec('210','c');
-## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c
+if ( rec('210','c') ) {
+ marc_fixed('008','06','s'); # 06 - Type of date/Publication status, s = single know date
+
+# warn "## year = $year";
+
+ if ( $year =~ m/^(\d{4})/ ) {
+# warn "## $1 ##\n";
+ marc_fixed('008','07',$1); # 07-10 - Date 1
+
+} else {
+ marc_fixed('008','06','n'); # 06 - n = unknown date
+ marc_fixed('008','07','uuuu');
+}
+}
-marc_fixed('008','07',
- rec('210','c')
-);
## 008 11-14 - Date 2
## 008 15-17 - Place of publication, production, or execution - ¹to ako nema 102?
+## raspraviti
-marc_fixed('008','15',
- lc ( rec('102') )
-);
+#marc_fixed('008','15',
+# lc ( rec('102') )
+#);
-## 008 35-37 - Language - ¹to ako nema 101?
+my $zemlja =
+ lookup(
+ sub { rec('B') },
+ 'kodovi','zemlje',
+ sub { rec('A') },
+ sub {
+ regex('s/[\s;:]/g',
+ rec('210','a')
+ )
+ },
+ );
+
+warn (
+ dump ($zemlja)
+);
+
+if ( $year =~ m/^(\d{4})/ ) {
+ if ( $1 >= 1990 ) {
+ marc_fixed('008','15',
+ lc ( $zemlja )
+
+ );
+# } elsif ( dump( $zemlja ) eq 'hr' ) {
+# marc_fixed('008','15','yu');
+ }
+}
+
+
+## 008 35-37 - Language
marc_fixed('008','35',
- first( lc(rec('101')) )
+ # first( lc(rec('101')) )
+ lc( frec('101'))
);
## 008 38 - Modified record - razjasniti
-## 008 39 - Cataloging source - d
+## 008 39 - Cataloging source - d (other)
marc_fixed('008','39','d');
## 008 34 - Biography
### 020
-## modify -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (sfb)
+## modify za polje 10 -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (pr. u sfb)
if ( frec('10') ne ( frec('290') ) ) {
marc('020','a',
- regex('s/-//g',
-# regex('s/\(\d\)\(/$1 \(//g',
- rec('10')
- )
+ # isbn_13(
+ regex('s/\s\s/ /g',
+ # regex('s/\(\d\)\(/$1 \(//g',
+ rec('10','a')
+ )
+ # )
);
}
# ),
#);
-### 035$6
+### 035$
## Privemeno koristimo 035$6 umjesto 035$9, zato ¹to marclint prijavljuje 9 kao gre¹ku.
## marc 035a - System Number - Voyagerov ID (001)
## polje 035$9 mo¾e sadr¾avati slova i razmake
marc('035','6',
join_with('',
-# config('input normalize path'),
-# config('name'),
- config(),
- ' L',
-# config('input name'),
-# id(),
-# rec('994','a'),
- rec('000')
+ # config('input normalize path'),
+ # config('name'),
+ config(),
+ ' L',
+ # config('input name'),
+ # id(),
+ # rec('994','a'),
+ rec('000')
)
);
## to ima samo za knji¾evna djela, eseje....
## ????
-#if ( rec('675') =~ m/\d=\d/ ) ??
+#if ( rec('675') =~ m/\d=\d/ ) ?
if (
- grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik]/i, rec('300') ) ||
+ grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) ||
grep( m/[preve|prijevod]/i, rec('200','f')) ||
grep( m/[preve|prijevod]/i, rec('200','g'))
) {
( rec('200','f') && rec('200','c') ) ? '.' :
'',
join_with(' ; ',
- rec('200','f'),
- rec('200','g')
+ regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
+ rec('200','f'),
+ ),
+ regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
+ rec('200','g')
+ )
)
),
## append to last subfield
'a ;|v ;|w',
#mozda greska:
'a ;|v,|x ;|w',
+ 'a ;|v,|x.|p',
'a,|x ;|v',
'a,|x.|p ;|w',
],
+ from => "{ a => 1, i => 1, w => 1, \"x\" => 1 }",
+ to => "{ a => 1, p => 1, v => 1, \"x\" => 1 }",
+
marc_template => [
'a',
'a ;|v',