11 |
if ( rec('200','a') ) { |
if ( rec('200','a') ) { |
12 |
|
|
13 |
### LEADER |
### LEADER |
|
## raspraviti 17,18 |
|
14 |
|
|
15 |
## LDR 05 - c ili d - iz 999a ili 999b ili 999 - provjeriti za svaku knjiznicu |
## LDR 05 - c = pregledan ; n = new |
16 |
|
## 999^aP - SFM |
17 |
|
|
18 |
if ( rec('999') && rec('999','a') =~ m/(pregledan|P)/i) { |
if ( rec('999') && rec('999','a') =~ m/(pregledan|P)/i) { |
19 |
marc_leader('05','c'); |
marc_leader('05','c'); |
21 |
marc_leader('05','n'); |
marc_leader('05','n'); |
22 |
} |
} |
23 |
|
|
24 |
## LDR 06 - a ili m - odrediti kriterije |
## LDR 06 - a - language material |
25 |
|
|
26 |
marc_leader('06','a'); |
marc_leader('06','a'); |
27 |
|
|
28 |
## LDR 07 - m |
## LDR 07 - m - Monograph/item |
29 |
|
|
30 |
marc_leader('07','m'); |
marc_leader('07','m'); |
31 |
|
|
32 |
## LDR 17 i 18 - razjasniti |
## LDR 17 |
33 |
|
marc_leader('17','7'); |
34 |
|
|
35 |
|
## LDR 18 |
36 |
marc_leader('18','i'); |
marc_leader('18','i'); |
37 |
|
|
38 |
## LDR 19 - razjasniti |
## LDR 19 - razjasniti |
41 |
marc_leader('19','r'); |
marc_leader('19','r'); |
42 |
} |
} |
43 |
|
|
44 |
### 001 - Voyager |
### 001 - Voyager ID |
45 |
|
|
46 |
### 003 - razjasniti |
### 003 - razjasniti |
47 |
|
|
50 |
marc_fixed('007',00,'ta'); |
marc_fixed('007',00,'ta'); |
51 |
|
|
52 |
### 008 - All materials |
### 008 - All materials |
53 |
## 008 00 - datum - što kad datum nije poznat? |
## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje |
54 |
|
|
55 |
if ( rec('994','c') ) { |
if ( rec('994','c') ) { |
56 |
marc_fixed('008','00', |
marc_fixed('008','00', |
60 |
); |
); |
61 |
} else { |
} else { |
62 |
marc_fixed('008', 00, |
marc_fixed('008', 00, |
63 |
'000101' |
'000000' |
64 |
); |
); |
65 |
} |
} |
66 |
|
|
71 |
#) |
#) |
72 |
#); |
#); |
73 |
|
|
74 |
## 008 06 - Type of date/Publication status - t - raspraviti |
## 008 06 - Type of date/Publication status |
75 |
|
## dodati i ostale mogućnosti |
76 |
|
## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c |
77 |
|
|
78 |
marc_fixed('008','06', 't'); |
my $year = rec('210','c'); |
79 |
|
|
80 |
## 008 07-10 - Date 1 - iz 210d koji kroz modify postaje 210c |
if ( rec('210','c') ) { |
81 |
|
marc_fixed('008','06','s'); # 06 - Type of date/Publication status, s = single know date |
82 |
|
|
83 |
|
# warn "## year = $year"; |
84 |
|
|
85 |
|
if ( $year =~ m/^(\d{4})/ ) { |
86 |
|
# warn "## $1 ##\n"; |
87 |
|
marc_fixed('008','07',$1); # 07-10 - Date 1 |
88 |
|
|
89 |
|
} else { |
90 |
|
marc_fixed('008','06','n'); # 06 - n = unknown date |
91 |
|
marc_fixed('008','07','uuuu'); |
92 |
|
} |
93 |
|
} |
94 |
|
|
|
marc_fixed('008','07', |
|
|
rec('210','c') |
|
|
); |
|
95 |
|
|
96 |
## 008 11-14 - Date 2 |
## 008 11-14 - Date 2 |
97 |
|
|
98 |
## 008 15-17 - Place of publication, production, or execution - što ako nema 102? |
## 008 15-17 - Place of publication, production, or execution - što ako nema 102? |
99 |
|
## raspraviti |
100 |
|
|
101 |
marc_fixed('008','15', |
#marc_fixed('008','15', |
102 |
lc ( rec('102') ) |
# lc ( rec('102') ) |
103 |
); |
#); |
104 |
|
|
105 |
## 008 35-37 - Language - što ako nema 101? |
my $zemlja = |
106 |
|
lookup( |
107 |
|
sub { rec('B') }, |
108 |
|
'kodovi','zemlje', |
109 |
|
sub { rec('A') }, |
110 |
|
sub { |
111 |
|
regex('s/[\s;:]/g', |
112 |
|
rec('210','a') |
113 |
|
) |
114 |
|
}, |
115 |
|
); |
116 |
|
|
117 |
|
warn ( |
118 |
|
dump ($zemlja) |
119 |
|
); |
120 |
|
|
121 |
|
if ( $year =~ m/^(\d{4})/ ) { |
122 |
|
if ( $1 >= 1990 ) { |
123 |
|
marc_fixed('008','15', |
124 |
|
lc ( $zemlja ) |
125 |
|
|
126 |
|
); |
127 |
|
# } elsif ( dump( $zemlja ) eq 'hr' ) { |
128 |
|
# marc_fixed('008','15','yu'); |
129 |
|
} |
130 |
|
} |
131 |
|
|
132 |
|
|
133 |
|
## 008 35-37 - Language |
134 |
|
|
135 |
marc_fixed('008','35', |
marc_fixed('008','35', |
136 |
first( lc(rec('101')) ) |
# first( lc(rec('101')) ) |
137 |
|
lc( frec('101')) |
138 |
); |
); |
139 |
|
|
140 |
## 008 38 - Modified record - razjasniti |
## 008 38 - Modified record - razjasniti |
141 |
|
|
142 |
## 008 39 - Cataloging source - d |
## 008 39 - Cataloging source - d (other) |
143 |
|
|
144 |
marc_fixed('008','39','d'); |
marc_fixed('008','39','d'); |
145 |
|
|
157 |
## 008 34 - Biography |
## 008 34 - Biography |
158 |
|
|
159 |
### 020 |
### 020 |
160 |
## 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) |
161 |
|
|
162 |
if ( frec('10') ne ( frec('290') ) ) { |
if ( frec('10') ne ( frec('290') ) ) { |
163 |
marc('020','a', |
marc('020','a', |
164 |
regex('s/-//g', |
# isbn_13( |
165 |
# regex('s/\(\d\)\(/$1 \(//g', |
regex('s/\s\s/ /g', |
166 |
rec('10') |
# regex('s/\(\d\)\(/$1 \(//g', |
167 |
) |
rec('10','a') |
168 |
|
) |
169 |
|
# ) |
170 |
); |
); |
171 |
} |
} |
172 |
|
|
176 |
# ), |
# ), |
177 |
#); |
#); |
178 |
|
|
179 |
### 035$6 |
### 035$ |
180 |
## Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku. |
## Privemeno koristimo 035$6 umjesto 035$9, zato što marclint prijavljuje 9 kao grešku. |
181 |
## marc 035a - System Number - Voyagerov ID (001) |
## marc 035a - System Number - Voyagerov ID (001) |
182 |
## polje 035$9 može sadržavati slova i razmake |
## polje 035$9 može sadržavati slova i razmake |
183 |
|
|
184 |
marc('035','6', |
marc('035','6', |
185 |
join_with('', |
join_with('', |
186 |
# config('input normalize path'), |
# config('input normalize path'), |
187 |
# config('name'), |
# config('name'), |
188 |
config(), |
config(), |
189 |
' L', |
' L', |
190 |
# config('input name'), |
# config('input name'), |
191 |
# id(), |
# id(), |
192 |
# rec('994','a'), |
# rec('994','a'), |
193 |
rec('000') |
rec('000') |
194 |
) |
) |
195 |
); |
); |
196 |
|
|
226 |
## to ima samo za književna djela, eseje.... |
## to ima samo za književna djela, eseje.... |
227 |
## ???? |
## ???? |
228 |
|
|
229 |
#if ( rec('675') =~ m/\d=\d/ ) ?? |
#if ( rec('675') =~ m/\d=\d/ ) ? |
230 |
|
|
231 |
if ( |
if ( |
232 |
grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik]/i, rec('300') ) || |
grep( m/[prijevod|prevedeno|izv.*stv.*nasl|izvornik|nas.*izv*]/i, rec('300') ) || |
233 |
grep( m/[preve|prijevod]/i, rec('200','f')) || |
grep( m/[preve|prijevod]/i, rec('200','f')) || |
234 |
grep( m/[preve|prijevod]/i, rec('200','g')) |
grep( m/[preve|prijevod]/i, rec('200','g')) |
235 |
) { |
) { |
428 |
( rec('200','f') && rec('200','c') ) ? '.' : |
( rec('200','f') && rec('200','c') ) ? '.' : |
429 |
'', |
'', |
430 |
join_with(' ; ', |
join_with(' ; ', |
431 |
rec('200','f'), |
regex('s/(\S\.)\s(\S\.\s)/$1$2/g', |
432 |
rec('200','g') |
rec('200','f'), |
433 |
|
), |
434 |
|
regex('s/(\S\.)\s(\S\.\s)/$1$2/g', |
435 |
|
rec('200','g') |
436 |
|
) |
437 |
) |
) |
438 |
), |
), |
439 |
## append to last subfield |
## append to last subfield |
549 |
'a ;|v ;|w', |
'a ;|v ;|w', |
550 |
#mozda greska: |
#mozda greska: |
551 |
'a ;|v,|x ;|w', |
'a ;|v,|x ;|w', |
552 |
|
'a ;|v,|x.|p', |
553 |
'a,|x ;|v', |
'a,|x ;|v', |
554 |
'a,|x.|p ;|w', |
'a,|x.|p ;|w', |
555 |
], |
], |
556 |
|
from => "{ a => 1, i => 1, w => 1, \"x\" => 1 }", |
557 |
|
to => "{ a => 1, p => 1, v => 1, \"x\" => 1 }", |
558 |
|
|
559 |
marc_template => [ |
marc_template => [ |
560 |
'a', |
'a', |
561 |
'a ;|v', |
'a ;|v', |