1 |
|
# ne konvertira se ako nema polje 200^a |
2 |
|
|
3 |
if ( rec('200','a') ) { |
if ( rec('200','a') ) { |
4 |
|
|
5 |
# Leader |
# Leader |
6 |
# raspraviti 17,18 |
# raspraviti 17,18 |
7 |
|
# |
8 |
# u nekim knjižnicama koristi se 999a i 999b |
# u nekim knjižnicama koristi se 999a i 999b |
9 |
|
# |
|
|
|
10 |
# vrijedi za ffan... |
# vrijedi za ffan... |
11 |
|
|
12 |
if ( rec('999') && first(rec('999')) =~ m/pregledan/i) { |
if ( rec('999') && first(rec('999')) =~ m/pregledan/i) { |
23 |
marc_leader('19','r'); |
marc_leader('19','r'); |
24 |
} |
} |
25 |
|
|
|
|
|
26 |
# 001 polje - Voyager |
# 001 polje - Voyager |
27 |
|
# |
28 |
# privemeno koristimo 0356 umjesto 0359, zato što marclint 9 prijavljuje kao grešku |
# privemeno koristimo 0356 umjesto 0359, zato što marclint 9 prijavljuje kao grešku |
29 |
|
# u marc 035a - System Number - ?? |
30 |
|
# NSK zapisuje Voyagerov ID (001) - kako ??? |
31 |
|
|
32 |
|
|
33 |
marc('035','6', |
marc('035','6', |
34 |
join_with('', |
join_with('', |
43 |
) |
) |
44 |
); |
); |
45 |
|
|
|
# u marc 035a treba dodati System Number - |
|
|
# NSK zapisuje Voyagerov ID (001) - kako ??? |
|
46 |
|
|
47 |
# u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - ' |
# FFSF - nekoliko zaredanih ISBN, odvojenih s '. - ' |
48 |
|
# drugi ISBN počinje prefixom ISBN |
49 |
|
|
50 |
marc('020','a', |
marc('020','a', |
51 |
rec('10') |
regex('s/ ISBN //g', |
52 |
|
rec('10') |
53 |
|
) |
54 |
); |
); |
55 |
|
|
56 |
# u polje 040a možda još dodati prefiks HR |
# u polje 040a - prefiks HR ? |
57 |
# NSK ima HR NSB (možda u novijim zapisima ima NSK?) |
# NSK ima HR NSB (možda u novijim zapisima ima NSK?) |
58 |
|
|
59 |
marc('040','a', |
marc('040','a', |
68 |
'HR PPIAK' |
'HR PPIAK' |
69 |
); |
); |
70 |
|
|
71 |
if (rec('300') && first(rec('300')) =~ m/Prijevod/) { |
if ( rec('300') && first(rec('300')) =~ m/Prijevod/) { |
72 |
marc_indicators('041', 1, ' '); |
marc_indicators('041', 1, ' '); |
73 |
} else { |
} else { |
74 |
marc_indicators('041', 0, ' '); |
marc_indicators('041', 0, ' '); |
75 |
} |
} |
76 |
|
|
77 |
## naci primjer u NSK |
## naći primjer u NSK |
78 |
|
|
79 |
|
#_debug(2); |
80 |
marc_repeatable_subfield('041','a', |
marc_repeatable_subfield('041','a', |
81 |
rec('101') |
rec('101') |
82 |
); |
); |
83 |
|
#_debug(0); |
84 |
|
|
85 |
|
# indikatori za članove. treba uvjetovati prema jezicima !! |
86 |
|
|
87 |
|
marc_indicators('245', 0, 0); |
88 |
|
|
89 |
if ( ( rec('200','a') =~ m/^Die /) || |
if ( ( rec('200','a') =~ m/^Die /) || |
90 |
( rec('200','a') =~ m/^Das /) || |
( rec('200','a') =~ m/^Das /) || |
91 |
( rec('200','a') =~ m/^The /) ) { |
( rec('200','a') =~ m/^The /) ) { |
92 |
marc_indicators('245', 0, 4); |
marc_indicators('245', 0, 4); |
93 |
} else { |
} |
94 |
marc_indicators('245', 0, 0); |
|
95 |
} |
if ( ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) |
96 |
|
{ |
97 |
|
marc_indicators('245', 0, 2); |
98 |
|
} |
99 |
|
|
100 |
|
|
101 |
|
|
102 |
|
|
103 |
#_debug(3); |
#_debug(3); |
104 |
|
|
112 |
'.', |
'.', |
113 |
rec('200','a') |
rec('200','a') |
114 |
), |
), |
115 |
'h', rec('200','b'), |
# 'h', rec('200','b'), |
116 |
'b', suffix( |
'b', suffix( |
117 |
( rec('200','k') && rec('200','f') ) ? ' / ' : |
( rec('200','k') && rec('200','f') ) ? ' / ' : |
118 |
' ', |
' ', |
133 |
), |
), |
134 |
), |
), |
135 |
|
|
136 |
# ovo trenutno radi za slučaj kad f nije ponovljivo i kad uvijek postoje c i f u paru !!! |
'c', rec('200','f'), |
137 |
'c', join_with('. ', |
|
138 |
rec('200','f'), |
# append to last subfield |
139 |
rec('200','c'), |
'+', prefix('. ', rec('200','c') ), |
|
), |
|
|
# FIXME append to last subfield |
|
|
# '+', prefix('. ', rec('200','c') ), |
|
140 |
); |
); |
141 |
|
|
142 |
|
|
143 |
|
#marc('440','a', |
144 |
|
# suffix( |
145 |
|
# rec('225','e') ? ' : ' : |
146 |
|
# rec('225','v') ? ' ; ' : |
147 |
|
# '. ', |
148 |
|
# rec('225','a'), |
149 |
|
# ) |
150 |
|
#); |
151 |
|
|
152 |
|
|
153 |
|
|
154 |
|
|
155 |
|
|
156 |
|
|
157 |
#_debug(0); |
#_debug(0); |
158 |
|
|
159 |
marc('250','a', |
marc('250','a', |
169 |
); |
); |
170 |
|
|
171 |
# ponovljiva potpolja u originalnom redosljedu |
# ponovljiva potpolja u originalnom redosljedu |
172 |
# |
|
173 |
marc_original_order('260', '210'); |
marc_original_order('260', '210'); |
174 |
|
|
175 |
|
|
178 |
|
|
179 |
marc('300','a', |
marc('300','a', |
180 |
suffix( |
suffix( |
181 |
rec('215','c') ? ' : ' : |
rec('215','c') ? ' : ' : |
182 |
rec('215','d') ? ' ; ' : |
rec('215','d') ? ' ; ' : |
183 |
rec('215','e') ? ' + ' : |
rec('215','e') ? ' + ' : |
184 |
' ', |
' ', |
185 |
rec('215','a') |
rec('215','a') |
186 |
) |
) |
188 |
|
|
189 |
marc('300','b', |
marc('300','b', |
190 |
suffix( |
suffix( |
191 |
( rec('215','c') && rec('215','d') ) ? ' ; ' : |
( rec('215','c') && rec('215','d') ) ? ' ; ' : |
192 |
( rec('215','c') && rec('215','e') ) ? ' + ' : |
( rec('215','c') && rec('215','e') ) ? ' + ' : |
193 |
' ', |
' ', |
194 |
rec('215','c') |
rec('215','c') |
195 |
) |
) |
210 |
|
|
211 |
# provjeriti |
# provjeriti |
212 |
|
|
213 |
marc_indicators('490', 0, ' '); |
marc_indicators('440', ' ', '0'); |
|
|
|
|
marc('490','a', |
|
|
rec('225','a') |
|
|
); |
|
214 |
|
|
215 |
marc('490','v', |
marc('440','a', |
216 |
join_with(', ', |
join_with(' / ', |
217 |
rec('225','v'), |
rec('225','a'), |
218 |
rec('225','w') |
rec('225','f') |
219 |
), |
) |
|
); |
|
|
|
|
|
marc('490','x', |
|
|
rec('225','x') |
|
220 |
); |
); |
221 |
|
|
222 |
#marc('490','a', |
#marc('440','a', |
223 |
# join_with(' : ', |
# join_with(' : ', |
224 |
# rec('225','a'), |
# rec('225','a'), |
225 |
# join_with(" = ", |
# join_with(" = ", |
232 |
# ) |
# ) |
233 |
#); |
#); |
234 |
|
|
235 |
|
marc('440','h', |
236 |
|
rec('225','h') |
237 |
|
); |
238 |
|
|
239 |
|
marc('440','p', |
240 |
|
rec('225','i') |
241 |
|
); |
242 |
|
|
243 |
|
marc('440','v', |
244 |
|
join_with(', ', |
245 |
|
rec('225','v'), |
246 |
|
rec('225','w') |
247 |
|
), |
248 |
|
); |
249 |
|
|
250 |
|
marc('440','x', |
251 |
|
rec('225','x') |
252 |
|
); |
253 |
|
|
254 |
#marc('490','v', |
#marc('490','v', |
255 |
# join2_with(225, 'v', ' , ', 225,'w'); |
# join2_with(225, 'v', ' , ', 225,'w'); |
256 |
# join_with(', ', |
# join_with(', ', |
264 |
); |
); |
265 |
|
|
266 |
marc('500','a', |
marc('500','a', |
267 |
|
rec('305') |
268 |
|
); |
269 |
|
|
270 |
|
marc('500','a', |
271 |
|
rec('307') |
272 |
|
); |
273 |
|
|
274 |
|
marc('500','a', |
275 |
rec('314') |
rec('314') |
276 |
); |
); |
277 |
|
|
286 |
|
|
287 |
## FFPS 327 - sadrzaj |
## FFPS 327 - sadrzaj |
288 |
if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) { |
if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) { |
289 |
marc_indicators('505', '1', ' '); |
marc_indicators('505', '0', ' '); |
290 |
marc('505','a', |
marc('505','a', |
291 |
regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g', |
regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g', |
292 |
rec('327') |
rec('327') |
315 |
); |
); |
316 |
} |
} |
317 |
|
|
318 |
|
marc('538','a', |
319 |
|
rec('337','a') |
320 |
|
); |
321 |
|
|
322 |
|
|
323 |
# možda i polje 520y - jezik napomene ako je uvijek isti jezik |
# možda i polje 520y - jezik napomene ako je uvijek isti jezik |
324 |
|
|
501 |
|
|
502 |
marc_indicators('740', 0, ' '); |
marc_indicators('740', 0, ' '); |
503 |
|
|
504 |
if ( ! rec('464') ) { |
# if ( ! rec('464') ) { |
505 |
marc('740','a', |
# marc('740','a', |
506 |
rec('200','c') |
# rec('200','c') |
507 |
); |
# ); |
508 |
|
|
509 |
marc('740','a', |
# marc('740','a', |
510 |
rec('200','k') |
# rec('200','k') |
511 |
); |
# ); |
512 |
|
|
513 |
} else { |
# } else { |
514 |
marc('740','a', |
|
515 |
rec('464','a') |
marc('740','a', |
516 |
); |
rec('464','a') |
517 |
}; |
); |
518 |
|
|
519 |
|
# }; |
520 |
|
|
521 |
|
|
522 |
|
|
620 |
rec('260') |
rec('260') |
621 |
); |
); |
622 |
|
|
623 |
marc_remove('490'); |
marc_remove('440'); |
624 |
marc('490','a', |
marc('440','a', |
625 |
rec('270') |
rec('270') |
626 |
); |
); |
627 |
|
|
654 |
|
|
655 |
}; |
}; |
656 |
|
|
657 |
|
my $nak_cj = get( rec('225','a') ); |
658 |
|
|
659 |
|
if ($nak_cj) { |
660 |
|
|
661 |
|
marc('760','w', |
662 |
|
$nak_cj |
663 |
|
); |
664 |
|
|
665 |
|
} |
666 |
|
|
667 |
|
marc_indicators('776', 0, ' '); |
668 |
|
|
669 |
|
marc('776','a', |
670 |
|
rec('452','1') |
671 |
|
); |
672 |
|
|
673 |
|
#marc('900','a', |
674 |
|
# lookup( |
675 |
|
# sub { rec('000') }, |
676 |
|
# 'ffps','libri', |
677 |
|
# sub { rec('200','a') . rec('200','f') . rec('205') }, |
678 |
|
# ) |
679 |
|
#); |
680 |
|
|
681 |
|
#marc('901','a', |
682 |
|
# lookup( |
683 |
|
# sub { 'NSK: ' . rec('200','a') }, |
684 |
|
# 'nsk','baza', |
685 |
|
# sub { rec('200','a') }, |
686 |
|
# sub { rec('10') } |
687 |
|
# ) |
688 |
|
#); |
689 |
|
|
690 |
|
if ( ! rec('464') && rec('200','c') ) { |
691 |
|
marc('003','a', |
692 |
|
'ima-200c-nema-464' |
693 |
|
); |
694 |
|
} |
695 |
|
|
696 |
|
if ( ! rec('464') && rec('200','k') ) { |
697 |
|
marc('005','a', |
698 |
|
'ima-200k-nema-464' |
699 |
|
); |
700 |
|
} |
701 |
|
|
702 |
|
if ( ! ( rec('200','c') || rec('200','k') ) && rec('464') ) { |
703 |
|
marc('006','a', |
704 |
|
'ima-464-nema-200c-ili-200k' |
705 |
|
); |
706 |
|
} |
707 |
|
|
708 |
|
|
709 |
|
|
710 |
} |
} |