1 |
my $pair = |
my $signatura = |
2 |
lookup( |
lookup( |
3 |
sub { rec('C') }, |
sub { rec('C') }, |
4 |
'casopisi','sig', |
'casopisi','sig', |
6 |
sub { config ('input collection') . rec('000') } |
sub { config ('input collection') . rec('000') } |
7 |
); |
); |
8 |
|
|
9 |
if ( $pair ) { |
if ( $signatura ) { |
10 |
|
|
11 |
|
|
12 |
### LEADER |
### LEADER |
36 |
|
|
37 |
if ( $ldr7 ) { |
if ( $ldr7 ) { |
38 |
marc_leader('07', $ldr7 ); |
marc_leader('07', $ldr7 ); |
39 |
|
} else { |
40 |
|
marc_leader('07','s'); |
41 |
} |
} |
42 |
|
|
43 |
|
|
53 |
|
|
54 |
### 008 - All materials |
### 008 - All materials |
55 |
|
|
56 |
marc_fixed('008','00', '010101'); # 00-05 - Date entered on file |
marc_fixed('008','00', '090820'); # 00-05 - Date entered on file |
57 |
|
|
58 |
## za 008 06 treba i lookup u tablicu gdje postoji podatak o tome jel tekuci casopis ili nije? |
## za 008 06 treba i lookup u tablicu gdje postoji podatak o tome jel tekuci casopis ili nije? |
59 |
## c - Continuing resource currently published |
## c - Continuing resource currently published |
65 |
my $d1 = ' '; |
my $d1 = ' '; |
66 |
my $d2 = ' '; |
my $d2 = ' '; |
67 |
|
|
68 |
if ( rec('210','d') ) { |
if ( rec('210','c') ) { |
69 |
if ( rec ('210','d') =~ m#(\d{4}).*?-.*?(\d{4})# ) { |
if ( rec ('210','c') =~ m#(\d{4}).*?-.*?(\d{4})# ) { |
70 |
$d1 = $1; |
$d1 = $1; |
71 |
$d2 = $2; |
$d2 = $2; |
72 |
marc_fixed('008','06','d'); |
marc_fixed('008','06','d'); |
73 |
} |
} |
74 |
if ( rec ('210','d') =~ m{(\d{4}).*?-\s*$} ) { |
if ( rec ('210','c') =~ m{(\d{4}).*?-\s*$} ) { |
75 |
$d1 = $1; |
$d1 = $1; |
76 |
$d2 = '9999'; |
$d2 = '9999'; |
77 |
marc_fixed('008','06','c'); |
marc_fixed('008','06','c'); |
97 |
|
|
98 |
my $fre; |
my $fre; |
99 |
|
|
100 |
$fre = ( rec('326') eq '2g' ) ? 'g' : |
$fre = ( rec('326') eq '2g' ) ? 'g' : |
101 |
( rec('326') eq 'g1' ) ? 'a' : |
( rec('326') eq 'g1' ) ? 'a' : |
102 |
( rec('326') eq 'g2' ) ? 'f' : |
( rec('326') eq 'g2' ) ? 'f' : |
103 |
( rec('326') eq 'g3' ) ? 't' : |
( rec('326') eq 'g3' ) ? 't' : |
104 |
( rec('326') eq 'g4' ) ? 'q' : |
( rec('326') eq 'g4' ) ? 'q' : |
105 |
( rec('326') eq 'g5' ) ? 'z' : |
( rec('326') eq 'g5' ) ? 'z' : |
106 |
( rec('326') eq 'g6' ) ? 'b' : |
( rec('326') eq 'g6' ) ? 'b' : |
107 |
( rec('326') eq 'g8' ) ? 'b' : |
( rec('326') eq 'g8' ) ? 'b' : |
108 |
( rec('326') eq 'g9' ) ? 'm' : |
( rec('326') eq 'g9' ) ? 'm' : |
109 |
( rec('326') eq 'm1' ) ? 'm' : |
( rec('326') eq 'm1' ) ? 'm' : |
110 |
( rec('326') eq '10' ) ? 'm' : |
( rec('326') eq '10' ) ? 'm' : |
111 |
( rec('326') eq '11' ) ? 'm' : |
( rec('326') eq '11' ) ? 'm' : |
112 |
( rec('326') eq 'm2' ) ? 's' : |
( rec('326') eq 'm2' ) ? 's' : |
113 |
( rec('326') eq '19' ) ? 's' : |
( rec('326') eq '19' ) ? 's' : |
114 |
( rec('326') eq '20' ) ? 's' : |
( rec('326') eq '20' ) ? 's' : |
115 |
( rec('326') eq '24' ) ? 's' : |
( rec('326') eq '26' ) ? 's' : |
116 |
( rec('326') eq '26' ) ? 's' : |
( rec('326') eq 'm3' ) ? 'j' : |
117 |
( rec('326') eq 'm3' ) ? 'j' : |
( rec('326') eq 't1' ) ? 'w' : |
118 |
( rec('326') eq 't1' ) ? 'w' : |
( rec('326') eq 't2' ) ? 'c' : |
|
( rec('326') eq 't2' ) ? 'c' : |
|
119 |
( rec('326') eq 't2us' ) ? 'c' : |
( rec('326') eq 't2us' ) ? 'c' : |
120 |
( rec('326') eq 'nr' ) ? ' ' : |
( rec('326') eq 'nr' ) ? ' ' : |
121 |
( rec('326') eq 'np' ) ? 'u' : |
'|' |
122 |
'|'; |
; |
123 |
|
|
124 |
marc_fixed('008','18', $fre); # 18 - Frequency - ovo treba popuniti iz polja 326 |
marc_fixed('008','18', $fre); # 18 - Frequency - ovo treba popuniti iz polja 326 |
125 |
marc_fixed('008','19', '|'); # 19 - Regularity |
marc_fixed('008','19', '|'); # 19 - Regularity |
126 |
# 20 - Undefined, ontains a blank (#) or fill character (|) |
# 20 - Undefined, contains a blank (#) or fill character (|) |
127 |
# za polje 008 21 treba lookup u tablicu s kodovima za sf i po, za ostale nadopuniti naknadno |
# za polje 008 21 treba lookup u tablicu s kodovima za sf i po, za ostale nadopuniti naknadno |
128 |
|
|
129 |
my $stype = |
my $stype = |
136 |
|
|
137 |
if ( $stype ) { |
if ( $stype ) { |
138 |
marc_fixed('008','21', $stype); # 21 - Type of continuing resource |
marc_fixed('008','21', $stype); # 21 - Type of continuing resource |
139 |
|
} else { |
140 |
|
marc_fixed('008','21', 'p'); |
141 |
} |
} |
142 |
# 22 - Form of original item - blank |
# 22 - Form of original item - blank |
143 |
# 23 - Form of item |
# 23 - Form of item |
172 |
|
|
173 |
marc('035','a', $id); |
marc('035','a', $id); |
174 |
|
|
175 |
|
my $csigid = lookup( |
176 |
|
sub { prefix('HR-ZaFF csig', rec('I') ) }, |
177 |
|
'casopisi','sig', |
178 |
|
sub { rec('A') . rec('B') }, |
179 |
|
sub { config ('input collection') . rec('000') } |
180 |
|
); |
181 |
|
|
182 |
|
marc('035','a', $csigid); |
183 |
|
|
184 |
|
|
185 |
### 040 |
### 040 |
186 |
# za sve je isti |
# za sve je isti |
187 |
# treba utvrditi točnu oznaku za ustanovu |
# treba utvrditi tocnu oznaku za ustanovu |
188 |
|
|
189 |
marc('040','a', |
marc('040','a', |
190 |
'HR-ZaFF' |
'HR-ZaFF' |
222 |
rec('675','a') |
rec('675','a') |
223 |
); |
); |
224 |
|
|
225 |
|
marc('080','a', |
226 |
|
rec('675','b') |
227 |
|
); |
228 |
|
|
229 |
|
marc('080','a', |
230 |
|
rec('675','c') |
231 |
|
); |
232 |
|
|
233 |
|
marc('080','a', |
234 |
|
rec('675','d') |
235 |
|
); |
236 |
|
|
237 |
|
|
238 |
### 210 indikatori |
### 210 indikatori |
239 |
# marc_indicators('210', '1',' '); |
# marc_indicators('210', '1',' '); |
240 |
|
|
317 |
|
|
318 |
#warn "a: $a\nb: $b\nc: $c\n"; |
#warn "a: $a\nb: $b\nc: $c\n"; |
319 |
|
|
320 |
$a = $a . '.' if ( ! ( $b || $c) ); |
$a = $a . '.' if ( ! ( $b || $c || rec('200','f') ) ); |
321 |
$b = $b . '.' if ( ! $c && $b ) ; |
$a = $a . ' /' if ( ! ($b || $c) && rec('200','f') ); |
322 |
|
$b = $b . '.' if ( $b && ! ( $c || rec('200','f') ) ) ; |
323 |
|
$b = $b . ' /' if ( $b && ! $c && rec('200','f') ) ; |
324 |
|
|
325 |
marc('245','a', $a); |
marc('245','a', $a); |
326 |
marc('245','b', $b) if $b; |
marc('245','b', $b) if $b; |
327 |
if ( $c ) { |
if ( $c ) { |
328 |
marc('245','c', $c); |
marc('245','c', |
329 |
} else { |
suffix('.', $c) |
330 |
|
); |
331 |
|
} elsif ( rec('200','f') ) { |
332 |
marc('245','c', |
marc('245','c', |
333 |
rec('200','f') |
suffix('.', rec('200','f') ) |
334 |
); |
); |
335 |
} |
} |
336 |
|
|
437 |
### 310 - current stated publication frequency |
### 310 - current stated publication frequency |
438 |
# potrebno ujednaciti, koristi se i u polju 008 |
# potrebno ujednaciti, koristi se i u polju 008 |
439 |
|
|
440 |
|
#my $fredesc; |
441 |
|
# |
442 |
|
#$fredesc = ( rec('326') eq '2g' ) ? 'Dvogodišnje' : |
443 |
|
# ( rec('326') eq 'g1' ) ? 'Godišnje' : |
444 |
|
# ( rec('326') eq 'g2' ) ? 'Polugodišnje' : |
445 |
|
# ( rec('326') eq 'g3' ) ? 'Tri broja godišnje' : |
446 |
|
# ( rec('326') eq 'g4' ) ? 'Četvrtgodišnje' : |
447 |
|
# ( rec('326') eq 'g5' ) ? 'Pet brojeva godišnje' : |
448 |
|
# ( rec('326') eq 'g6' ) ? 'Dvomjesečno' : |
449 |
|
# ( rec('326') eq 'g8' ) ? 'Osam brojeva godišnje' : |
450 |
|
# ( rec('326') eq 'g9' ) ? 'Devet brojeva godišnje' : |
451 |
|
# ( rec('326') eq 'm1' ) ? 'Mjesečno' : |
452 |
|
# ( rec('326') eq '10' ) ? 'Deset brojeva godišnje' : |
453 |
|
# ( rec('326') eq '11' ) ? 'Jedanaest brojeve godišnje' : |
454 |
|
# ( rec('326') eq 'm2' ) ? 'Polumjesečno' : |
455 |
|
# ( rec('326') eq '19' ) ? 'Devetnaest brojeva godišnje' : |
456 |
|
# ( rec('326') eq '20' ) ? 'Dvadeset brojeva godišnje' : |
457 |
|
# ( rec('326') eq '26' ) ? 'Dvadeset i šest brojeva godišnje' : |
458 |
|
# ( rec('326') eq 'm3' ) ? 'Tri broja mjesečno' : |
459 |
|
# ( rec('326') eq 't1' ) ? 'Tjedno' : |
460 |
|
# ( rec('326') eq 't2' ) ? 'Polutjedno' : |
461 |
|
# ( rec('326') eq 't2us' ) ? 'Polutjedno utorkom u subotom' : |
462 |
|
# ( rec('326') eq 'nr' ) ? 'Neredovito' : |
463 |
|
# ' ' |
464 |
|
#; |
465 |
|
|
466 |
|
#warn $fredesc; |
467 |
|
|
468 |
|
my $fredesc = |
469 |
|
lookup( |
470 |
|
sub { rec('B') }, |
471 |
|
'casopisi','frek', |
472 |
|
sub { rec('A') }, |
473 |
|
sub { rec('326') }, |
474 |
|
); |
475 |
|
|
476 |
marc('310','a', |
marc('310','a', |
477 |
rec('326') |
$fredesc |
478 |
); |
); |
479 |
|
|
480 |
### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310 |
### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310 |
614 |
#} |
#} |
615 |
|
|
616 |
### 653 indikatori |
### 653 indikatori |
617 |
marc_indicators('653', 0, ' '); |
marc_indicators('653', ' ', ' '); |
618 |
|
|
619 |
### 653 |
### 653 |
620 |
|
|
646 |
); |
); |
647 |
|
|
648 |
marc('700','a', |
marc('700','a', |
649 |
join_with(', ', |
rec('702','c'), |
650 |
rec('702','c'), |
); |
651 |
rec('702','d') |
|
652 |
) |
marc('700','a', |
653 |
|
rec('702','e'), |
654 |
); |
); |
655 |
|
|
|
|
|
656 |
#_debug(0); |
#_debug(0); |
657 |
|
|
658 |
### 710 indikatori |
### 710 indikatori |
659 |
|
|
660 |
marc_indicators('710', '2', ' '); |
marc_indicators('110', '2', ' '); |
661 |
|
|
662 |
### 710 |
### 710 |
663 |
marc('710','a', |
marc('110','a', |
664 |
rec('710','a') |
rec('710','a') |
665 |
); |
); |
666 |
|
marc('110','b', |
667 |
|
rec('710','b') |
668 |
|
); |
669 |
|
if ( rec('710','c') ) { |
670 |
|
marc('110','c', |
671 |
|
surround('(', ')', rec('710','c')) |
672 |
|
); |
673 |
|
} |
674 |
|
|
675 |
### 770 indikatori |
### 770 indikatori |
676 |
|
|
681 |
rec('421','a'), |
rec('421','a'), |
682 |
); |
); |
683 |
|
|
684 |
|
marc('770','x', |
685 |
|
rec('421','b') |
686 |
|
); |
687 |
|
|
688 |
### 772 indikatori |
### 772 indikatori |
689 |
marc_indicators('772', 0, ' '); |
marc_indicators('772', 0, ' '); |
690 |
|
|
692 |
marc('772','t', |
marc('772','t', |
693 |
rec('422','a'), |
rec('422','a'), |
694 |
); |
); |
695 |
|
marc('772','x', |
696 |
|
rec('422','b'), |
697 |
|
); |
698 |
|
|
699 |
### 773 indikatori |
### 773 indikatori |
700 |
|
|
731 |
rec('423','a'), |
rec('423','a'), |
732 |
); |
); |
733 |
|
|
734 |
|
marc('777','x', |
735 |
|
rec('423','b'), |
736 |
|
); |
737 |
|
|
738 |
### 780 indikatori |
### 780 indikatori |
739 |
|
|
740 |
marc_indicators('780', 0, 0); |
marc_indicators('780', 0, 0); |
744 |
rec('430','a'), |
rec('430','a'), |
745 |
); |
); |
746 |
|
|
747 |
|
marc('780','x', |
748 |
|
rec('430','b'), |
749 |
|
); |
750 |
|
|
751 |
### 785 indikatori |
### 785 indikatori |
752 |
|
|
753 |
marc_indicators('785', 0, 0); |
marc_indicators('785', 0, 0); |
756 |
marc('785','t', |
marc('785','t', |
757 |
rec('440','a'), |
rec('440','a'), |
758 |
); |
); |
759 |
|
marc('785','x', |
760 |
|
rec('440','b'), |
761 |
|
); |
762 |
|
|
763 |
|
|
764 |
### 856 |
### 856 |
765 |
marc('856','u', |
marc('856','u', |
766 |
rec('856','u') |
rec('856','u') |
767 |
); |
); |
768 |
|
|
769 |
|
### 866 |
770 |
|
|
771 |
|
marc_indicators('866',' ', 0); |
772 |
|
|
773 |
|
marc('866','a', |
774 |
|
rec('992') |
775 |
|
); |
776 |
|
|
777 |
|
|
778 |
### 942 |
### 942 |
|
# |
|
|
#marc('942','d', |
|
|
# $pair |
|
|
#); |
|
779 |
|
|
780 |
|
marc('942','b', |
781 |
|
'PER' |
782 |
|
); |
783 |
|
|
784 |
### 992 |
marc('942','c', |
785 |
|
'PER' |
786 |
|
); |
787 |
|
|
788 |
marc('992','a', |
marc('942','d', |
789 |
rec('992') |
$signatura |
790 |
); |
); |
791 |
|
|
792 |
|
marc('942','i', |
793 |
|
$signatura |
794 |
|
); |
795 |
|
|
796 |
|
|
797 |
|
|
798 |
## polja za probu |
## polja za probu |
799 |
|
|
841 |
# ) |
# ) |
842 |
# ); |
# ); |
843 |
|
|
844 |
} # pair |
} # signatura |