/[webpac2]/trunk/conf/normalize/ff-libri.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/conf/normalize/ff-libri.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1119 - (hide annotations)
Sun Oct 26 15:58:55 2008 UTC (15 years, 6 months ago) by dpavlin
File MIME type: text/plain
File size: 26562 byte(s)
local

1 dpavlin 795
2 dpavlin 1095 # Ova datoteka sadrĀ¾i pravila za generiranje MARC21 ISO 2709 izlazne
3     # datoteke. Ulazni format je CDS/ISIS izvorni format, sa zapisima u
4     # UNIMARC formatu, sa viĀ¹estrukim odstupanjima od standarda.
5    
6    
7 dpavlin 1119 ## lookup rezultat za sabrana djela (probna procedura za filozofiju od koje se odustalo)
8     # my $sabrana;
9 dpavlin 1112
10    
11 dpavlin 1119 ## sve skupa se konvertira tek ako postoji polje 200^a
12 dpavlin 751 if ( rec('200','a') ) {
13    
14 dpavlin 792 ### LEADER
15 dpavlin 751
16 dpavlin 1119 ## LDR 05 - n - new
17     marc_leader('05','n');
18 dpavlin 1042
19 dpavlin 1090 ## LDR 06 - a - language material
20 dpavlin 1119 marc_leader('06','a');
21 dpavlin 1020
22 dpavlin 1090 ## LDR 07 - m - Monograph/item
23 dpavlin 1119 marc_leader('07','m');
24 dpavlin 1042
25 dpavlin 1119 # ovo je bila proba za filozofiju
26     # if ( config() =~ m/fffi/ ) {
27     # $sabrana =
28     # lookup(
29     # sub{ rec('A') },
30     # 'fffi','sabrana',
31     # sub { rec('B') },
32     # sub { rec('000') }
33     # );
34     # }
35     #
36     # if ( ! $sabrana ) {
37     # marc_leader('07','m');
38     # } else {
39     # marc_leader('07','c');
40     # }
41 dpavlin 1112
42 dpavlin 1119 ## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
43     marc_leader('17','u');
44 dpavlin 1042
45 dpavlin 1112 ## LDR 18 - i - isbd
46 dpavlin 1119 marc_leader('18','i');
47 dpavlin 751
48 dpavlin 1119 ## LDR 19 - Multipart resource record level ; # - Not specified or not applicable, a - Set, b - Part with independent title, c - Part with dependent title
49 dpavlin 876
50 dpavlin 1112 #if ( ( ! $sabrana ) && ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {
51     # marc_leader('19','a');
52     #}
53    
54     if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {
55 dpavlin 1095 marc_leader('19','a');
56 dpavlin 751 }
57    
58 dpavlin 905 ### 008 - All materials
59 dpavlin 1090 ## dodati sve moguce slucajeve za datum, popuniti ono sto nedostaje
60 dpavlin 1112 ## provjereno: fi
61 dpavlin 905
62 dpavlin 1095 if ( rec('994','c') =~ m/\d{8}/ ) {
63 dpavlin 816 marc_fixed('008','00',
64     regex('s/^\d\d//',
65     rec('994','c')
66     ),
67     );
68 dpavlin 1095 } elsif ( rec('994','c') =~ m/\d{6}/ ) {
69 dpavlin 1119 marc_fixed('008','00',
70 dpavlin 1103 regex('s/^\d\d//',
71     rec('994','c')
72     ),
73 dpavlin 816 );
74 dpavlin 1119 marc_fixed('008','04',
75 dpavlin 1095 '01'
76     );
77     } elsif ( rec('994','c') =~ m/\d{4}/ ) {
78     marc_fixed('008', 00,
79     regex('s/^\d\d//',
80     rec('994','c')
81     ),
82     );
83 dpavlin 1119 marc_fixed('008','02',
84 dpavlin 1095 '0101'
85     );
86 dpavlin 1119 } else {
87     marc_fixed('008','00',
88     '010101'
89     );
90 dpavlin 816 }
91    
92     #warn( dump(
93     # regex('s/^\d\d//',
94     # rec('994','c')
95     # ),
96     #)
97     #);
98    
99 dpavlin 1090 ## 008 06 - Type of date/Publication status
100 dpavlin 1042
101 dpavlin 1119 ## 008 07-10 - Date 1
102     ## 008 11-14 - Date 2
103 dpavlin 1112 ## 210d kroz modify postaje 210c
104    
105 dpavlin 1090 if ( rec('210','c') ) {
106 dpavlin 1112 my $d1 = '';
107     my $d2 = '';
108 dpavlin 1119 if ( rec('210','c') =~ m/(\d{4})-/ ) {
109     marc_fixed('008','06','m');
110 dpavlin 1112 if ( rec('210','c') =~ m/(\d{4})-/ ) {
111     $d1 = $1;
112     $d2 = '9999';
113     }
114     if ( rec('210','c') =~ m/-(\d{4})/ ) {
115     $d2 = $1;
116     }
117 dpavlin 1103 } else {
118     marc_fixed('008','06','s');
119 dpavlin 1112 if ( rec('210','c') =~ m/(\d{4})/ ) {
120     $d1 = $1;
121     }
122 dpavlin 1119 if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) {
123     $d1 = $1.'uu';
124     }
125     if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) {
126     $d1 = $1.'u';
127     }
128 dpavlin 1103 }
129 dpavlin 1119
130     # if ( rec('210','c') =~ m/(\?)/ ) {
131     # marc_fixed('008','06','q');
132     # if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) {
133     # $d1 = $1.'uu';
134     # }
135     # if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) {
136     # $d1 = $1.'u';
137     # }
138     # if ( rec('210','c') =~ m/(\d{4})/ ) {
139     # $d1 = $1;
140     # }
141     # } elsif ( rec('210','c') =~ m/(\d{4})-/ ) {
142     # if ( $sabrana ) {
143     # marc_fixed('008','06','i');
144     # } else {
145     # marc_fixed('008','06','m');
146     # }
147     # marc_fixed('008','06','m')
148     # if ( rec('210','c') =~ m/(\d{4})-/ ) {
149     # $d1 = $1;
150     # $d2 = '9999';
151     # }
152     # if ( rec('210','c') =~ m/-(\d{4})/ ) {
153     # $d2 = $1;
154     # }
155     # } else {
156     # marc_fixed('008','06','s');
157     # if ( rec('210','c') =~ m/(\d{4})/ ) {
158     # $d1 = $1;
159     # }
160     # }
161 dpavlin 1042
162 dpavlin 1103 marc_fixed('008','07',$d1); # 07-10 - Date 1
163     marc_fixed('008','11',$d2); # 07-10 - Date 1
164 dpavlin 1042
165 dpavlin 1090 } else {
166     marc_fixed('008','06','n'); # 06 - n = unknown date
167     marc_fixed('008','07','uuuu');
168     }
169    
170    
171 dpavlin 1042
172 dpavlin 1119 ## 008 15-17 - Place of publication, production, or execution - ako nema 102, popunjava se s |
173     marc_fixed('008','15','|||');
174 dpavlin 1042
175 dpavlin 1090 #marc_fixed('008','15',
176     # lc ( rec('102') )
177     #);
178 dpavlin 1042
179 dpavlin 1103 #my $zemlja =
180     # lookup(
181     # sub { rec('B') },
182     # 'kodovi','zemlje',
183     # sub { rec('A') },
184     # sub {
185     # regex('s/[\s;:]/g',
186     # rec('210','a')
187     # )
188     # },
189     # );
190 dpavlin 1042
191 dpavlin 1090
192     ## 008 35-37 - Language
193 dpavlin 816 marc_fixed('008','35',
194 dpavlin 1090 # first( lc(rec('101')) )
195     lc( frec('101'))
196 dpavlin 816 );
197 dpavlin 1042
198 dpavlin 1119 ## 008 38 - Modified record
199 dpavlin 1095 marc_fixed('008','38','|');
200 dpavlin 816
201 dpavlin 1090 ## 008 39 - Cataloging source - d (other)
202 dpavlin 1042 marc_fixed('008','39','d');
203 dpavlin 905
204 dpavlin 1042 ### 008 - Books - raspraviti upotrebu ovih polja
205     ## 008 18-21 - Illustrations
206 dpavlin 1095 if ( rec('215','c') && rec('215','c') =~ m/ilustr/ ) {
207     marc_fixed('008','18','a')
208     }
209    
210 dpavlin 1042 ## 008 22 - Target audience
211 dpavlin 1095 marc_fixed('008','22','|');
212    
213 dpavlin 1042 ## 008 23 - Form of item
214 dpavlin 1119 marc_fixed('008','23','|');
215 dpavlin 1095
216 dpavlin 1042 ## 008 24-27 - Nature of contents
217 dpavlin 1095 marc_fixed('008','24','||||');
218    
219 dpavlin 1042 ## 008 28 - Government publication
220 dpavlin 1095 marc_fixed('008','28','|');
221    
222 dpavlin 1042 ## 008 29 - Conference publication
223 dpavlin 1095 marc_fixed('008','29','|');
224    
225 dpavlin 1042 ## 008 30 - Festschrift
226 dpavlin 1095 marc_fixed('008','30','|');
227    
228 dpavlin 1042 ## 008 31 - Index
229 dpavlin 1095 marc_fixed('008','31','|');
230    
231 dpavlin 1042 ## 008 32 - Undefined
232     ## 008 33 - Literary form
233 dpavlin 1095 marc_fixed('008','33','|');
234    
235 dpavlin 1042 ## 008 34 - Biography
236 dpavlin 1095 marc_fixed('008','34','|');
237 dpavlin 905
238 dpavlin 876 ### 020
239 dpavlin 1119 ## postoji modify za polje 10 -> drugi ISBN poĆØinje prefixom "ISBN" koji se miĆØe (pr. u sfb)
240     #if ( frec('10') ne ( frec('290') ) ) {
241 dpavlin 1103 if ( rec('10','a') !~ /pogre/ ) {
242     marc('020','a',
243     # isbn_13(
244     regex('s/\s\s/ /g',
245     # regex('s/\(\d\)\(/$1 \(//g',
246     rec('10','a')
247     )
248     # )
249     );
250     }
251     if ( rec('10','a') =~ /pogre/ ) {
252     marc('020','z',
253 dpavlin 1090 regex('s/\s\s/ /g',
254     rec('10','a')
255     )
256 dpavlin 1103 );
257     }
258     marc('020','z',
259     rec('10','z')
260     );
261 dpavlin 1119 #}
262 dpavlin 876
263 dpavlin 1010 #warn(
264     # dump(
265     # frec('10')
266     # ),
267     #);
268 dpavlin 876
269 dpavlin 1090 ### 035$
270 dpavlin 1112 ## marc 035a - System Number
271 dpavlin 1119 ## polje moĀ¾e sadrĀ¾avati slova i razmake
272     ## moguƦ problem u pretraĀ¾ivanju ako ima zagrade, kako bi trebalo po standardu
273 dpavlin 792
274 dpavlin 1095 marc('035','a',
275 dpavlin 824 join_with('',
276 dpavlin 1090 # config('input normalize path'),
277     # config('name'),
278 dpavlin 1103 'HR-ZaFF ',
279 dpavlin 1090 config(),
280 dpavlin 1119 'L',
281 dpavlin 1090 # config('input name'),
282     # id(),
283     # rec('994','a'),
284     rec('000')
285 dpavlin 751 )
286     );
287    
288 dpavlin 792 ### 040
289 dpavlin 1042 ## za sve je isti
290 dpavlin 792
291 dpavlin 751 marc('040','a',
292 dpavlin 1095 'HR-ZaFF'
293 dpavlin 751 );
294     marc('040','b',
295     'hrv'
296     );
297 dpavlin 1082 marc('040','c',
298 dpavlin 1095 'HR-ZaFF'
299 dpavlin 1082 );
300 dpavlin 758 marc('040','e',
301 dpavlin 1082 'ppiak'
302 dpavlin 758 );
303    
304 dpavlin 905 ### 041 - indikatori
305 dpavlin 1042 ## pretpostavke o indikatorima
306     ## 1. Ako postoji polje 300 i ono sadrĀ¾i /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
307     ## (Da li je napomena uvijek pisana?)
308     ## 2. Podatak o prevodiocu u 200g. Problem: razliĆØiti oblici rijeĆØi, razliĆØiti jezici.
309     ## 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod
310     ## (ako postoje zagrade pr. 94(=411.16) onda su to pomoƦne oznake)
311     ## pr. 821.111-2=163.42 je prijevod engleske drame na HR.
312     ## to ima samo za knjiĀ¾evna djela, eseje....
313 dpavlin 1119 ## ovo treba kasnije ispravljati
314 dpavlin 792
315 dpavlin 1090 #if ( rec('675') =~ m/\d=\d/ ) ?
316 dpavlin 1010
317     if (
318 dpavlin 1112 grep( m/prijevod/i, rec('300') )
319     || grep( m/nasl.*izv/i, rec('300') )
320     # ( frec('300') =~ m/Prijevod/ )
321     # || ( rec('300') =~ m/izvorni stvarni naslov/i )
322     # || ( rec('300') =~ m/naslov izvornika/i )
323     # grep( m/[prijevod|stvarni\snaslov]/i, rec('300') )
324 dpavlin 1010 ) {
325 dpavlin 751 marc_indicators('041', 1, ' ');
326 dpavlin 1112 marc_repeatable_subfield('041','a',
327     map { lc($_) } rec('101')
328     );
329     } elsif (
330     count( rec('101') ) > 1
331     ) {
332 dpavlin 751 marc_indicators('041', 0, ' ');
333 dpavlin 1112 marc_repeatable_subfield('041','a',
334     map { lc($_) } rec('101')
335     );
336 dpavlin 751 }
337    
338 dpavlin 1119 ### 041
339     ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
340     ## koristi se kad ima viĀ¹e od jednog jezika, ili kad se radi o prijevodu
341     ## nadopuniti
342 dpavlin 792
343 dpavlin 876 ### 044
344 dpavlin 1119 ## koristi se kad ima viĀ¹e zemalja izdavanja
345 dpavlin 751
346 dpavlin 792 ### 080
347 dpavlin 1042 ## 675 podpolja b, c, d ... - Ā¹to s njima? - provjeriti za svaku bazu
348 dpavlin 1112 ## fi: abcd
349 dpavlin 1119 ## sk: ima \r\n na kraju
350 dpavlin 783
351 dpavlin 792 marc('080','a',
352     rec('675','a')
353     );
354    
355 dpavlin 876 marc('080','a',
356     rec('675','b')
357     );
358 dpavlin 792
359 dpavlin 876 marc('080','a',
360     rec('675','c')
361     );
362    
363     marc('080','a',
364     rec('675','d')
365     );
366    
367    
368 dpavlin 792 ### 084 - other classification (R)
369 dpavlin 1042 ## NSK ga koristi za struĆØnu oznaku NSK iz polja 681
370     ## NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom
371     ## polje 686 koristi FFPS. joĀ¹ netko?
372 dpavlin 792
373 dpavlin 1119 marc('084','2',
374     'APA CC'
375     );
376 dpavlin 792 marc('084','a',
377     rec('686')
378     );
379    
380 dpavlin 1042 ### 100
381     ## I1 = 0 ako je pseudonim (ima 700a, nema 700b)
382 dpavlin 903
383 dpavlin 807 if ( rec('700','a') && ! rec('700','b') ) {
384     marc_indicators('100', 0, ' ');
385     } else {
386     marc_indicators('100', 1, ' ');
387     }
388    
389 dpavlin 792 marc('100','a',
390     join_with(', ',
391     rec('700', 'a'),
392     rec('700', 'b')
393     )
394     );
395    
396 dpavlin 1095 ### formalna odrednica - iz 503 u 110, i1=0, i2=1
397 dpavlin 792
398     ### 111 i 110
399 dpavlin 1119 ## provjeriti za svaku bazu
400     ## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - provjeriti ispise naslova iz svake zbirke - moguƦe su greĀ¹ke.
401 dpavlin 1112 ## popraviti interpunkciju
402 dpavlin 905
403 dpavlin 802 # ovo vrijedi za FFSFB
404 dpavlin 876 if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
405 dpavlin 792
406     marc_indicators('111', 2, ' ');
407    
408 dpavlin 802 marc_compose('111',
409 dpavlin 876 'a', suffix(
410     rec('710','b') ? '.' :
411     '',
412     rec('710','a'),
413     ),
414 dpavlin 802 'e', rec('710','b'),
415 dpavlin 876 'n', prefix(
416     rec('710','d') ? '(' :
417     '',
418     rec('710','d')
419     ),
420     'd', prefix(
421     ( ! rec('710','d') ) ? '(' :
422     ( ! rec('710','e') ) ? '(' :
423     '; ',
424     rec('710','f'),
425     ),
426     'c', prefix(
427     ( rec('710','e') && ( rec('710','d') || rec('710','f') ) ) ? '; ' :
428     ( ! rec('710','d') && ! rec('710','f') ) ? '(' :
429     '',
430     rec('710','e'),
431     ),
432     '+',')',
433 dpavlin 792 );
434     } else {
435 dpavlin 1112 marc_indicators('110', 2, ' ');
436     marc('110','a',
437     rec('710','a')
438     );
439     marc('110','b',
440     rec('710','b')
441     );
442 dpavlin 903 if ( rec('710','c') ) {
443 dpavlin 1112 marc('110','c',
444     surround('(', ')', rec('710','c'))
445     );
446 dpavlin 903 }
447 dpavlin 802 }
448 dpavlin 792
449 dpavlin 905 ### 245 indikatori
450 dpavlin 1042 ## i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710
451     ## i2 = pretpostavlja se na temelju ĆØlana na poĆØetku naslova i jezika
452     ## treba provjeriti
453 dpavlin 903
454 dpavlin 1119 my $titleind1;
455 dpavlin 792
456 dpavlin 816 if ( rec('700') || rec('710') ) {
457 dpavlin 1119 $titleind1 = 1;
458 dpavlin 816 } else {
459 dpavlin 1119 $titleind1 = 0;
460 dpavlin 816 }
461    
462 dpavlin 1119 marc_indicators('245', $titleind1, 0);
463 dpavlin 816
464 dpavlin 1095 if ( rec('200','a') =~ m/^Einen / ) {
465 dpavlin 1119 marc_indicators('245', $titleind1, 6);
466 dpavlin 1064 }
467 dpavlin 1095 if ( rec('200','a') =~ m/^Eine / ) {
468 dpavlin 1119 marc_indicators('245', $titleind1, 5);
469 dpavlin 783 }
470 dpavlin 1112 if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|Los|The) / ) {
471 dpavlin 1119 marc_indicators('245', $titleind1, 4);
472 dpavlin 1064 }
473 dpavlin 1112 if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Lo|Il) / ) {
474 dpavlin 1119 marc_indicators('245', $titleind1, 3);
475 dpavlin 783 }
476 dpavlin 1112 if ( ( rec('101') =~ m/ENG/ ) && ( rec('200','a') =~ m/^A / ) ) {
477 dpavlin 1119 marc_indicators('245', $titleind1, 2);
478     }
479 dpavlin 1112 if ( rec('200','a') =~ m/^L / ) {
480 dpavlin 1119 marc_indicators('245', $titleind1, 2);
481 dpavlin 1112 }
482 dpavlin 1095 if ( rec('200','a') =~ m/^L'/ ) {
483 dpavlin 1119 marc_indicators('245', $titleind1, 2);
484 dpavlin 1095 }
485 dpavlin 1064
486 dpavlin 1095
487 dpavlin 905 ### 245
488 dpavlin 1112 ## postoji modify
489 dpavlin 1095 ## da li treba makivati razmake u inicijalima?
490 dpavlin 783
491 dpavlin 751 #_debug(3);
492 dpavlin 816
493 dpavlin 751 marc_compose('245',
494     'a', suffix(
495 dpavlin 944 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :
496     ( rec('200','d') ) ? ' =' :
497     ( rec('200','e') ) ? ' :' :
498     ( rec('200','k') ) ? ' ;' :
499 dpavlin 1064 '.',
500 dpavlin 816 rec('200','a'),
501 dpavlin 751 ),
502     'b', suffix(
503 dpavlin 944 ( rec('200','d') && rec('200','f') ) ? ' /' :
504     ( rec('200','d') && rec('200','c') ) ? '.' :
505 dpavlin 824 '',
506 dpavlin 876 rec('200','d'),
507 dpavlin 751 ),
508 dpavlin 876 'b', suffix(
509 dpavlin 944 ( rec('200','e') && rec('200','f') ) ? ' /' :
510     ( rec('200','e') && rec('200','c') ) ? '.' :
511 dpavlin 876 '',
512     rec('200','e'),
513     ),
514     'b', suffix(
515 dpavlin 944 ( rec('200','k') && rec('200','f') ) ? ' /' :
516     ( rec('200','k') && rec('200','c') ) ? '.' :
517 dpavlin 876 '',
518     rec('200','k'),
519     ),
520 dpavlin 816 'c', suffix(
521 dpavlin 1112 ( rec('200','f') && rec('200','c') ) ? '. ' :
522 dpavlin 824 '',
523 dpavlin 1010 join_with(' ; ',
524 dpavlin 1090 regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
525     rec('200','f'),
526     ),
527     regex('s/(\S\.)\s(\S\.\s)/$1$2/g',
528     rec('200','g')
529     )
530 dpavlin 1010 )
531 dpavlin 751 ),
532 dpavlin 1042 ## append to last subfield
533 dpavlin 944 '+', suffix('.',
534 dpavlin 1112 join_with(' / ',
535     rec('200','c'),
536     rec('200','x')
537     )
538 dpavlin 944 ),
539 dpavlin 816 );
540 dpavlin 751
541 dpavlin 816 #_debug(0);
542 dpavlin 783
543 dpavlin 1042 ### 246
544 dpavlin 1119 ## i1=1 ukoliko pravilo nalaĀ¾e napomenu, ali napomenu necemo pisati ponovo u 500
545     ## i1=3 ako pravlo na nalaĀ¾e napomenu
546 dpavlin 1095 ## vidi na wiki
547     ## i2 - pogledati za svaku bazu sto su ti naslovi, pa onda oderditi indikatoda oderditi indikatoree
548     marc_indicators('246', 3, ' ');
549 dpavlin 1042 marc('246','a',
550     rec('532')
551     );
552 dpavlin 751
553 dpavlin 792 ### 250
554 dpavlin 1119 ## zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti za svaku bazu
555 dpavlin 824 marc_compose('250',
556     'a',suffix(
557     rec('205','f') ? ' / ' :
558 dpavlin 1095 '',
559 dpavlin 751 rec('205','a')
560 dpavlin 824 ),
561     'b', rec('205','f'),
562 dpavlin 751 );
563    
564 dpavlin 792 ### 260
565 dpavlin 1042 ## ponovljiva potpolja u originalnom redosljedu - priprema u modify
566 dpavlin 1119 marc_original_order('260', '210');
567 dpavlin 773
568 dpavlin 751
569 dpavlin 792 ### 300
570 dpavlin 1042 ## urediti interpunkcije za sve kombinacije
571 dpavlin 751 marc('300','a',
572     suffix(
573 dpavlin 783 rec('215','c') ? ' : ' :
574     rec('215','d') ? ' ; ' :
575     rec('215','e') ? ' + ' :
576 dpavlin 1064 '',
577 dpavlin 751 rec('215','a')
578     )
579     );
580     marc('300','b',
581     suffix(
582 dpavlin 783 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
583     ( rec('215','c') && rec('215','e') ) ? ' + ' :
584 dpavlin 1064 '',
585 dpavlin 751 rec('215','c')
586     )
587     );
588     marc('300','c',
589     suffix(
590     rec('215','e') ? ' + ' :
591 dpavlin 1112 '',
592 dpavlin 751 rec('215','d')
593     )
594     );
595     marc('300','e',
596     rec('215','e')
597     );
598    
599 dpavlin 1112 ### 362 - brojĆØani podaci za nakladniĆØku cjelinu - to mi nemamo, polje se koristi samo za ĆØasopise
600 dpavlin 1119 ## i1 = 0 - formalizirani oblik navoda
601     ## i1 = 1 - neformalizirani
602     ## i2 nema
603 dpavlin 751
604 dpavlin 1095 # if ( ! rec('225','z') ) {
605    
606     # ako je naslov nakladniĆØke cjeline sloĀ¾en, podatak se zapisuje u 490, s pripadajuƦim 830
607    
608     #if ( frec('225','a') =~ m/[\/=:]/ ) {
609     #
610     ##_debug(3);
611     #
612     #### 490
613     ### 490: Subfield _p is not allowed.
614     #
615     #marc_indicators('490','0',' ');
616     #
617     #marc_template(
618     # from => 225, to => 490,
619     # subfields_rename => [
620     # 'a' => 'a',
621     # 'x' => 'x',
622     # 'v' => 'v',
623     # 'h' => 'n',
624     # 'i' => 'p',
625     # 'w' => 'v',
626     # ],
627     # isis_template => [
628     # 'a',
629     # 'a ;|v',
630     # 'a,|x ;|v',
631     # 'a,|x ;|w',
632     # 'a,|x.|h ;|w',
633     # 'a.|h,|i ;|v',
634     # 'a ;|v.|i',
635     # 'a.|i ;|w',
636     # 'a,|x',
637     # # greske:
638     # 'i ;|v',
639     # 'i'
640     # ],
641     #);
642    
643     #marc_template(
644     # from => 225, to => 490,
645     # from => "{ z => 1 }",
646     # to => "{ a => 1 }",
647     #
648     # marc_template => [
649     # 'a',
650     # ],
651     #);
652    
653     # marc_indicators('830',' ','0');
654     # i2 ovisi ĆØlanu - popraviti
655     #
656     # marc('830','a',
657     # regex('s/(^.*)\s\/\s(.*)/$1 ($2)/g',
658     # rec('225','a')
659     # )
660     # );
661    
662    
663     #} else {
664    
665 dpavlin 905 ### 440 - indikatori
666 dpavlin 1112 ## 2.ind. prema jeziku i ĆØlanu, uskladiti s 245
667 dpavlin 758
668 dpavlin 783 marc_indicators('440', ' ', '0');
669 dpavlin 751
670 dpavlin 1112 if ( rec('225','a') =~ m/^Einen / ) {
671 dpavlin 1095 marc_indicators('440', ' ', 6);
672 dpavlin 816 }
673    
674 dpavlin 1112 if ( rec('225','a') =~ m/^Eine / ) {
675 dpavlin 1095 marc_indicators('440', ' ', 5);
676 dpavlin 816 }
677    
678 dpavlin 1112 if ( rec('225','a') =~ m/^(Die|Das|Der|Ein|Les|The) / ) {
679 dpavlin 1095 marc_indicators('440', ' ', 4);
680     }
681    
682 dpavlin 1112 if ( rec('225','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
683 dpavlin 1064 marc_indicators('440', ' ', 3);
684 dpavlin 816 }
685    
686 dpavlin 1112 if ( rec('225','a') =~ m/^(A|L') / ) {
687 dpavlin 1095 marc_indicators('440', ' ', 2);
688     }
689 dpavlin 824
690 dpavlin 1095 ## 440v nije ponovljivo
691 dpavlin 905
692 dpavlin 1020 marc_template(
693     from => 225, to => 440,
694     subfields_rename => [
695     'a' => 'a',
696     'x' => 'x',
697     'v' => 'v',
698     'h' => 'n',
699     'i' => 'p',
700     'w' => 'v',
701     ],
702 dpavlin 1042 isis_template => [
703 dpavlin 1095 'a',
704     'a,|x',
705     'a,|x ;|v',
706     'a,|x.|i',
707     'a,|x.|i ;|w',
708     'a,|x.|h ;|w',
709     'a,|x.|h,|i ;|w',
710     'a,|x ;|v.|h ;|w',
711     'a,|x ;|v.|h,|i ;|w',
712     'a ;|v',
713 dpavlin 1064 'a ;|v.|i',
714 dpavlin 1095 'a ;|v.|h,|i',
715     'a ;|w',
716 dpavlin 1042 'a ;|v.|i ;|w',
717 dpavlin 1064 'a ;|v.|h,|i ;|w',
718     'a ;|v.|h ;|w',
719 dpavlin 1095 'a.|h,|i',
720     'a.|h,|i ;|w',
721     'a.|i',
722     'a.|i ;|w',
723 dpavlin 1112 # greĀ¹ke:
724 dpavlin 1064 'a ;|v ;|w',
725 dpavlin 1103 'a.|h',
726     'a.|h ;|w',
727     'a.|h ;|v',
728     'h,|i',
729     'h ;|v',
730     'i ;|w',
731     'v',
732     'w',
733 dpavlin 1020 ],
734 dpavlin 1010 );
735 dpavlin 751
736 dpavlin 1095 #}
737 dpavlin 1010
738 dpavlin 1095 #marc_template(
739     # from => 225, to => 490,
740     # subfields_rename => [
741     # 'a' => 'a',
742     # 'x' => 'x',
743     # 'v' => 'v',
744     # 'h' => 'n',
745     # 'i' => 'p',
746     # 'w' => 'v',
747     # ],
748     # isis_template => [
749     # 'a.|h,|i ;|w',
750     # 'a.|h.|w',
751     # 'a.|i ;|w',
752     # 'a ;|v.|i',
753     # 'a ;|v.|i ;|w',
754     # 'a ;|v.|h,|i ;|w',
755     # 'a ;|v.|h ;|w',
756     # 'a ;|v ;|w',
757     # #mozda greska:
758     # 'a ;|v,|x ;|w',
759     # 'a ;|v,|x.|p',
760     # 'a,|x ;|v',
761     # 'a,|x.|p ;|w',
762     # ],
763     # from => "{ a => 1, i => 1, w => 1, \"x\" => 1 }",
764     # to => "{ a => 1, p => 1, v => 1, \"x\" => 1 }",
765     #
766     # marc_template => [
767     # 'a',
768     # 'a ;|v',
769     # 'a,|x',
770     # 'a.|n', # mozda greska
771     # 'a.|n,|p',
772     # 'a.|p',
773     # 'a ;|v.|n',
774     # 'a ;|v.|n,|p', # mozda greska
775     # 'n,|p',
776     # 'n ;|v', # mozda greska
777     # 'p ;|v',
778     # 'v',
779     # 'x',
780     # 'x ;|v' # greska
781     # ],
782     #);
783    
784    
785 dpavlin 1064 ## marc_compose za 440 radi samo kad polje ni potpolja nisu ponovljiva. ne zapisuje dobro drugo pojavljivanje ^v, tj. ^v iza ^p (iz 225^w)
786    
787 dpavlin 876 #marc_compose('440',
788     # 'a', suffix(
789 dpavlin 1020 # ( rec('225','v') ) ? ' ;' :
790     # ( rec('225','w') ) ? ' ; ' :
791     # ( rec('225','x') ) ? ',' :
792     # ( rec('225','h') || rec('225','i') ) ? '.' :
793     # '.',
794     # frec('225','a')
795     # ),
796     # 'x',suffix(
797     # ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
798 dpavlin 876 # '',
799 dpavlin 1020 # frec('225','x')
800 dpavlin 824 # ),
801 dpavlin 1020 # 'v',suffix(
802     # ( rec('225','v') && ( rec('225','h') || rec('225','i') ) ) ? '.' :
803     # ( rec('225','v') && rec('225','w') ) ? ' ; ' :
804 dpavlin 876 # '',
805 dpavlin 1020 # frec('225','v')
806 dpavlin 876 # ),
807 dpavlin 1020 # 'n',suffix(
808     # ( rec('225','h') && rec('225','i') ) ? ',' :
809     # ( rec('225','h') && rec('225','w') ) ? ' ; ' :
810 dpavlin 876 # '',
811 dpavlin 1020 # frec('225','h')
812 dpavlin 876 # ),
813 dpavlin 1020 # 'p',suffix(
814     # ( rec('225','i') && rec('225','w') ) ? ' ; ' :
815     # ( rec('225','i') && rec('225','x') ) ? ',' :
816     # '',
817     # frec('225','i')
818     # ),
819 dpavlin 1042 ## 225w treba ici u 440v, na kraj
820 dpavlin 1020 # '+', join_with(' ; ',
821     # rec('225','w'),
822     # )
823 dpavlin 876 #);
824 dpavlin 824
825 dpavlin 1020 #marc_original_order('440','225');
826 dpavlin 824
827 dpavlin 1020
828 dpavlin 876 #if (
829     # count( lookup(
830     # sub { 1 },
831     # 'ffps','libri',
832     # sub { rec('225','a') }
833     # ) ) > 1
834     #) {
835 dpavlin 783
836    
837 dpavlin 876 #_debug(0);
838 dpavlin 792
839 dpavlin 751
840 dpavlin 1042 ### 500
841 dpavlin 792
842 dpavlin 751 marc('500','a',
843     rec('300')
844     );
845    
846     marc('500','a',
847 dpavlin 773 rec('305')
848     );
849    
850     marc('500','a',
851     rec('307')
852     );
853    
854     marc('500','a',
855 dpavlin 751 rec('314')
856     );
857    
858 dpavlin 795 ### 502 - biljeĀ¹ka o disertacijama
859 dpavlin 1042 ## odgovarajuƦeg polja nema u originalnim podacima. moĀ¾da se moĀ¾e pretpostaviti?
860 dpavlin 795
861 dpavlin 792 ### 504
862    
863 dpavlin 751 marc('504','a',
864     rec('320')
865     );
866    
867 dpavlin 1042 ### 505
868     ## FFPS 327 - sadrzaj
869     ## NSK konvertira 327 (NP) u 501 (R)
870     ## u LOC konv. tablici stoji 327 (NP) u 505 (NR)
871     ## standard i validacije dopuĀ¹taju 501 (R) i 505 (R)
872 dpavlin 1112 ## za svaku bazu posebno provjeriti sta je u poljima 327 i 330
873 dpavlin 1095 if ( config() =~ m/ffps|fftu/ ) {
874 dpavlin 773 marc_indicators('505', '0', ' ');
875 dpavlin 758 marc('505','a',
876     regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
877     rec('327')
878     )
879     );
880     }
881 dpavlin 751
882 dpavlin 816 if ( config() =~ m/ffan/ ) {
883     marc_indicators('505', '0', ' ');
884     marc('505','a',
885     regex('s/[<>]//g',
886     rec('330')
887     )
888     );
889     }
890 dpavlin 751
891 dpavlin 792 ### 520
892 dpavlin 1042 ## NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
893 dpavlin 758 if ( config() =~ m/ffps/ ) {
894     marc('520','a',
895     regex('s/[\\r\\n]+/. /g',
896     rec('330')
897     )
898     );
899     }
900 dpavlin 751
901 dpavlin 816 ### 526 - STUDY PROGRAM INFORMATION NOTE
902 dpavlin 1119 ## u nekim bazame je to u 996 - provjeriti za svaku bazu sta je u 996?
903 dpavlin 816 marc_indicators('526', 8, ' ');
904     marc('526','a',
905     rec('996')
906     );
907 dpavlin 792
908 dpavlin 816 ### 538 - zahtjevi sustava
909 dpavlin 773 marc('538','a',
910     rec('337','a')
911     );
912 dpavlin 758
913 dpavlin 1119 ### 653 - Index Term-Uncontrolled
914     ## da li ponovljivo polje ili potpolje, pogledati u Koha tags
915     marc_indicators('653', ' ', ' ');
916     marc('653','a',
917     rec('610')
918     );
919 dpavlin 792
920 dpavlin 1119 ### 655 - Index Term-Genre/Form
921 dpavlin 751 marc_indicators('655', ' ', 4);
922     marc('655','a',
923     rec('608')
924     );
925    
926 dpavlin 792 #_debug(2);
927 dpavlin 751
928    
929 dpavlin 792 ### 700
930 dpavlin 1112 ## ako je u originalu ponovljivo polje treba bioti i konvertirano u ponovljivo !!
931 dpavlin 1119 ## ako ima samo podpolje a onda je pseudonim - nakon konverzije treba provjeriti
932     if ( rec('701','a') =~ m/, / ) {
933     marc_indicators('700', 1, ' ');
934     } else {
935     marc_indicators('700', 0, ' ');
936     }
937 dpavlin 751
938     marc('700','a',
939 dpavlin 1095 rec('701', 'a'),
940 dpavlin 751 );
941 dpavlin 1119
942 dpavlin 751 marc('700','a',
943     join_with(', ',
944     rec('701', 'c'),
945     rec('701', 'd')
946 dpavlin 1119 ),
947 dpavlin 751 );
948     marc('700','a',
949     join_with(', ',
950     rec('701', 'e'),
951     rec('701', 'f')
952 dpavlin 1119 ),
953 dpavlin 751 );
954     marc('700','a',
955     join_with(', ',
956     rec('701', 'g'),
957     rec('701', 'h')
958 dpavlin 1119 ),
959 dpavlin 751 );
960     marc('700','a',
961 dpavlin 1119 rec('702','a'),
962 dpavlin 751 );
963     marc('700','a',
964     join_with(', ',
965     rec('702','c'),
966     rec('702','d')
967     )
968     );
969     marc('700','a',
970     join_with(', ',
971     rec('702','e'),
972     rec('702','f')
973     )
974     );
975     marc('700','a',
976     join_with(', ',
977     rec('702','g'),
978     rec('702','h')
979     )
980     );
981    
982     #_debug(0);
983    
984 dpavlin 1119 ## eventualno nadopuniti 710 i 711 - provjetiti da li u podacima postoji u ISIS-u
985 dpavlin 751
986    
987 dpavlin 1119 ### 740 - Added Entry - Uncontrolled Related/Analytical Title
988     ## raspraviti
989     ## nadopuniti prvi indikator prema ĆØlanovima
990     marc_indicators('740', '0', ' ');
991 dpavlin 751
992 dpavlin 792 # if ( ! rec('464') ) {
993     # marc('740','a',
994     # rec('200','c')
995     # );
996 dpavlin 751
997 dpavlin 807 marc('740','a',
998     rec('200','k')
999     );
1000 dpavlin 751
1001 dpavlin 792 # } else {
1002 dpavlin 751
1003 dpavlin 792 #marc('740','a',
1004     # rec('464','a')
1005     #);
1006 dpavlin 751
1007 dpavlin 792 # };
1008 dpavlin 751
1009 dpavlin 1119 ### 760 w ---------------------------------------------
1010 dpavlin 1042 ## generiranje zapisa o nakladniĆØkoj cjelini i povezivanje podreĆ°enog zapisa s nadreĆ°enim
1011    
1012 dpavlin 1064 #if (
1013     # rec('225','a') # da li je nakladniĆØka cjelina?
1014     #) {
1015 dpavlin 1095
1016 dpavlin 1064 #my $series_key =
1017     #join_with('',
1018     # rec('225','a'),
1019     # rec('210','a'),
1020     # rec('210','b'),
1021     #);
1022     #
1023     #my $series = get( $series_key );
1024     #
1025     #if ($series) {
1026     # warn "nije novi";
1027     #} else {
1028     #
1029     #$series = join_with('',
1030     # uc( config() ),
1031     # ' LS',
1032     # rec('000')
1033     #);
1034     #
1035     #set( $series_key => $series );
1036     #
1037     #} # $series
1038     #} # nakladniĆØka cjelina
1039     #
1040     #my $series_key = join_with('',
1041     # rec('225','a'),
1042     # rec('210','a'),
1043     # rec('210','b'),
1044     #);
1045     #
1046     #if ($series_key) {
1047     #
1048     # marc_indicators('760', 0, ' ');
1049     #
1050 dpavlin 1095 # marc('760','t',
1051     # rec('225','a')
1052     # );
1053 dpavlin 1064 # marc('760','w',
1054     # get( $series_key )
1055     # );
1056     #}
1057 dpavlin 751
1058 dpavlin 1042 # ## testing
1059 dpavlin 792 #
1060     # my $dup_key = join_with('',
1061     # rec('200','a'),
1062     #);
1063     #
1064     #if ($dup_key) {
1065     # marc('995','a',
1066     # get( $dup_key )
1067     # );
1068     #}
1069     #
1070     #
1071     # marc_indicators('776', 0, ' ');
1072     #
1073     # marc('776','a',
1074     # rec('452','1')
1075     # );
1076     #
1077 dpavlin 1112 # -------------------------------------------------------------------
1078 dpavlin 751
1079 dpavlin 1112 ### 774 - Constituent Item Entry - to bi trebali koristiti ali ne koristimo jer NSK to koristi za neĀ¹to drugo
1080 dpavlin 1095 ### 787 - Nonspecific Relationship Entry
1081 dpavlin 783
1082 dpavlin 1112 #marc_indicators('787','0',' ');
1083     #
1084     #marc_compose('787',
1085     # 'g', rec('230','v'),
1086     # 't', rec('230','a'),
1087     # 'b', rec('240','a'),
1088     # 'd', rec('250','a'),
1089     # 'd', rec('250','d'),
1090     # 'h', rec('260','a'),
1091     # 'k', rec('270','a'),
1092     # 'n', join_with('. - ',
1093     # rec('280'),
1094     # ),
1095     # 'x', join_with(', ',
1096     # rec('290'),
1097     # )
1098 dpavlin 1095 #);
1099 dpavlin 1112 #marc_compose('787',
1100     # 'g', rec('231','v'),
1101     # 't', rec('231','a'),
1102     # 'b', rec('241','a'),
1103     # 'd', rec('251','a'),
1104     # 'd', rec('251','d'),
1105     # 'h', rec('261','a'),
1106     # 'k', rec('271','a'),
1107     # 'n', join_with('. - ',
1108     # rec('281'),
1109     # ),
1110     # 'x', join_with(', ',
1111     # rec('291'),
1112     # )
1113     #);
1114     #marc_compose('787',
1115     # 'g', rec('232','v'),
1116     # 't', rec('232','a'),
1117     # 'b', rec('242','a'),
1118     # 'd', rec('252','a'),
1119     # 'd', rec('252','d'),
1120     # 'h', rec('262','a'),
1121     # 'k', rec('272','a'),
1122     # 'n', join_with('. - ',
1123     # rec('282'),
1124     # ),
1125     # 'x', join_with(', ',
1126     # rec('292'),
1127     # )
1128     #);
1129     #marc_compose('787',
1130     # 'g', rec('233','v'),
1131     # 't', rec('233','a'),
1132     # 'b', rec('243','a'),
1133     # 'd', rec('253','a'),
1134     # 'h', rec('263','a'),
1135     # 'k', rec('273','a'),
1136     # 'n', join_with('. - ',
1137     # rec('283'),
1138     # ),
1139     # 'x', join_with(', ',
1140     # rec('293'),
1141     # )
1142     #);
1143 dpavlin 1119
1144    
1145 dpavlin 1112 ### 852 - ne koristimo, koristimo 942 i 952
1146 dpavlin 1095
1147 dpavlin 1119 ### 876 - item information - basic bibliographic unit (R)
1148     ## da li ovdje zapisati stare inventarne brojeve?
1149 dpavlin 1112 #marc('876','a',
1150     # rec('991','t'),
1151     #);
1152 dpavlin 783
1153 dpavlin 903 ### 886 - former marc
1154 dpavlin 1112 # inicijale treba prebaciti u neko lokalno polje, a ovo polje nam ne treba
1155 dpavlin 1119 #
1156     # marc_indicators('886', 2, ' ');
1157     # marc('886','2',
1158     # 'ffmarc'
1159     # );
1160     # marc('886','a',
1161     # '994'
1162     # );
1163     # marc('886','b',
1164     # join_with(''.
1165     # '##^a',
1166     # join_with('',
1167     # prefix('^a',
1168     # rec('994','a'),
1169     # ),
1170     # prefix('^b',
1171     # rec('994','b')
1172     # )
1173     # )
1174     # )
1175     #);
1176 dpavlin 783
1177 dpavlin 1112 ### KOHA items
1178 dpavlin 792
1179 dpavlin 1095 marc('942','b',
1180     'LIB'
1181     );
1182    
1183 dpavlin 1112 if ( grep( m/Posebni otisak/, rec('300') ) ) {
1184     marc('942','c',
1185     'SEP'
1186     );
1187     } else {
1188     marc('942','c',
1189     'KNJ'
1190     );
1191     }
1192    
1193 dpavlin 1119 ## 990 u sk ima \r\n na kraju
1194    
1195 dpavlin 1095 marc('942','d',
1196     join_with(' | ',
1197     rec('990')
1198     )
1199     );
1200    
1201 dpavlin 1119 my $novasig1 =
1202     lookup(
1203     sub { rec('C') },
1204     'ffiz','mapirano',
1205     sub { rec('B') },
1206     sub { rec('990') }
1207 dpavlin 1095 );
1208 dpavlin 1119 my $novasig2 =
1209     lookup(
1210     sub { rec('C') . ' ' . rec('D') },
1211     'ffiz','starasig',
1212     sub { rec('A') },
1213     sub { rec('000') },
1214 dpavlin 1095 );
1215    
1216 dpavlin 1119 marc('942','h',
1217     $novasig1
1218     );
1219 dpavlin 1095
1220 dpavlin 1119 marc('942','i',
1221     $novasig2
1222     );
1223    
1224     if ( config() =~ m/ffar/ ) {
1225     my $novasig1 =
1226 dpavlin 1112 lookup(
1227 dpavlin 1119 sub { rec('E') },
1228     'ffar','mapirano',
1229     sub { rec('A') },
1230     sub { rec('000') }
1231 dpavlin 1112 );
1232 dpavlin 1119 if ( $novasig1 ) {
1233 dpavlin 1112 marc('942','h',
1234 dpavlin 1119 $novasig1
1235 dpavlin 1112 );
1236 dpavlin 1119 } else {
1237     marc('942','h',
1238     'ARH'
1239     );
1240     }
1241    
1242    
1243     }
1244    
1245     if ( config() =~ m/ffsf|ffpo|fffi|ffar|ffsk/ ) {
1246     # my $sig1 =
1247     # lookup(
1248     # sub { rec('C') },
1249     # 'fffi','signature',
1250     # sub { rec('B') },
1251     # sub { frec('990') },
1252     # );
1253     if ( rec('700','a') ) {
1254     # marc('942','h',
1255     # $sig1,
1256     # );
1257 dpavlin 1112 if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1258     marc('942','i',
1259     join_with(' ',
1260     regex('s/(^.{3}).*/$1/',
1261     uc ( rec('700','a') )
1262     ),
1263     regex('s/^.{4}(.{1}).*/$1/',
1264     lc ( rec('200','a') )
1265     )
1266     )
1267     );
1268     } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
1269     marc('942','i',
1270     join_with(' ',
1271     regex('s/(^.{3}).*/$1/',
1272     uc ( rec('700','a') )
1273     ),
1274     regex('s/^.{3}(.{1}).*/$1/',
1275     lc ( rec('200','a') )
1276     )
1277     )
1278     );
1279     } elsif ( rec('200','a') =~ m/^Eine / ) {
1280     marc('942','i',
1281     join_with(' ',
1282     regex('s/(^.{3}).*/$1/',
1283     uc ( rec('700','a') )
1284     ),
1285     regex('s/^.{5}(.{1}).*/$1/',
1286     lc ( rec('200','a') )
1287     )
1288     )
1289     );
1290     } elsif ( rec('200','a') =~ m/^Einen / ) {
1291     marc('942','i',
1292     join_with(' ',
1293     regex('s/(^.{3}).*/$1/',
1294     uc ( rec('700','a') )
1295     ),
1296     regex('s/^.{6}(.{1}).*/$1/',
1297     lc ( rec('200','a') )
1298     )
1299     )
1300     );
1301     } elsif ( rec('200','a') =~ m/^(A|L) / ) {
1302     marc('942','i',
1303     join_with(' ',
1304     regex('s/(^.{3}).*/$1/',
1305     uc ( rec('700','a') )
1306     ),
1307     regex('s/^.{2}(.{1}).*/$1/',
1308     lc ( rec('200','a') )
1309     )
1310     )
1311     );
1312     } else {
1313     marc('942','i',
1314     join_with(' ',
1315     regex('s/(^.{3}).*/$1/',
1316     uc ( rec('700','a') )
1317     ),
1318     regex('s/(^.{1}).*/$1/',
1319     lc ( rec('200','a') )
1320     )
1321     )
1322     );
1323     }
1324     } elsif ( rec('710','a') ) {
1325 dpavlin 1119 # marc('942','h',
1326     # $sig1,
1327     # );
1328 dpavlin 1112 if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1329     marc('942','i',
1330     join_with(' ',
1331     regex('s/(^.{3}).*/$1/',
1332     uc ( rec('710','a') )
1333     ),
1334     regex('s/^.{4}(.{1}).*/$1/',
1335     lc ( rec('200','a') )
1336     )
1337     )
1338     );
1339     } elsif ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Il) / ) {
1340     marc('942','i',
1341     join_with(' ',
1342     regex('s/(^.{3}).*/$1/',
1343     uc ( rec('710','a') )
1344     ),
1345     regex('s/^.{3}(.{1}).*/$1/',
1346     lc ( rec('200','a') )
1347     )
1348     )
1349     );
1350     } elsif ( rec('200','a') =~ m/^Eine / ) {
1351     marc('942','i',
1352     join_with(' ',
1353     regex('s/(^.{3}).*/$1/',
1354     uc ( rec('710','a') )
1355     ),
1356     regex('s/^.{5}(.{1}).*/$1/',
1357     lc ( rec('200','a') )
1358     )
1359     )
1360     );
1361     } elsif ( rec('200','a') =~ m/^Einen / ) {
1362     marc('942','i',
1363     join_with(' ',
1364     regex('s/(^.{3}).*/$1/',
1365     uc ( rec('710','a') )
1366     ),
1367     regex('s/^.{6}(.{1}).*/$1/',
1368     lc ( rec('200','a') )
1369     )
1370     )
1371     );
1372     } elsif ( rec('200','a') =~ m/^(A|L) / ) {
1373     marc('942','i',
1374     join_with(' ',
1375     regex('s/(^.{3}).*/$1/',
1376     uc ( rec('710','a') )
1377     ),
1378     regex('s/^.{2}(.{1}).*/$1/',
1379     lc ( rec('200','a') )
1380     )
1381     )
1382     );
1383     } else {
1384     marc('942','i',
1385     join_with(' ',
1386     regex('s/(^.{3}).*/$1/',
1387     uc ( rec('710','a') )
1388     ),
1389     regex('s/(^.{1}).*/$1/',
1390     lc ( rec('200','a') )
1391     )
1392     )
1393     );
1394     }
1395     } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1396 dpavlin 1119 # marc('942','h',
1397     # $sig1,
1398     # );
1399 dpavlin 1112 marc('942','i',
1400     regex('s/^.{4}(.{3}).*/$1/',
1401     uc ( rec('200','a') )
1402     ),
1403     );
1404    
1405     } else {
1406 dpavlin 1119 # marc('942','h',
1407     # $sig1,
1408     # );
1409 dpavlin 1112 marc('942','i',
1410     regex('s/(^\w{3}).*/$1/',
1411     uc ( rec('200','a') )
1412     )
1413     )
1414     }
1415 dpavlin 1119 } # if config() za oznaku primjerka
1416 dpavlin 1095
1417 dpavlin 1112 if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {
1418 dpavlin 1119 warn "skupni zapis - nema primjeraka";
1419 dpavlin 1112 } else {
1420     marc('952','8',
1421     rec('991','8')
1422     );
1423     marc('952','a',
1424     rec('991','a')
1425     );
1426     marc('952','b',
1427     rec('991','b')
1428     );
1429     marc('952','c',
1430     rec('991','c'),
1431     );
1432     marc('952','i',
1433     rec('991','i')
1434     );
1435     marc('952','y',
1436     rec('991','y')
1437     );
1438     }
1439 dpavlin 1119
1440     ### LOKALNA POLJA
1441     ## 1. da li je zapis pregledan ili nije i datum kad je pregledan
1442     ## provjeriti za svaku bazu koje polje koristi
1443     ## SFM: 999^aP
1444     ## AN: 999 Pregledan
1445     ## raspraviti
1446    
1447    
1448    
1449 dpavlin 795 } # polje 200a
1450 dpavlin 1095 # } sig

  ViewVC Help
Powered by ViewVC 1.1.26