/[webpac2]/trunk/conf/ffcasopisi/perilooksig2marc.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

Diff of /trunk/conf/ffcasopisi/perilooksig2marc.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1277 by mglavica, Wed Aug 19 14:05:30 2009 UTC revision 1278 by mglavica, Thu Aug 27 17:32:11 2009 UTC
# Line 1  Line 1 
1  my $pair =  my $signatura =
2          lookup(          lookup(
3                  sub { rec('C') },                  sub { rec('C') },
4                  'casopisi','sig',                  'casopisi','sig',
# Line 6  my $pair = Line 6  my $pair =
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
# Line 36  my $ldr7 = Line 36  my $ldr7 =
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    
# Line 51  marc_leader('18','i'); Line 53  marc_leader('18','i');
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
# Line 63  marc_fixed('008','06','|'); Line 65  marc_fixed('008','06','|');
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');
# Line 95  marc_fixed('008','39','d');            # 39 - Cata Line 97  marc_fixed('008','39','d');            # 39 - Cata
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 =
# Line 135  my $stype = Line 136  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
# Line 169  $id = ( Line 172  $id = (
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'
# Line 209  marc('080','a', Line 222  marc('080','a',
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    
# Line 291  if ( $naslov =~ s{^(.+?[:=])\s+}{} ) { Line 317  if ( $naslov =~ s{^(.+?[:=])\s+}{} ) {
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    
# Line 407  marc('300','e', Line 437  marc('300','e',
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
# Line 548  marc('534','a', Line 614  marc('534','a',
614  #}  #}
615    
616  ### 653 indikatori  ### 653 indikatori
617  marc_indicators('653', 0, ' ');  marc_indicators('653', ' ', ' ');
618    
619  ### 653  ### 653
620    
# Line 580  marc('700','a', Line 646  marc('700','a',
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    
# Line 607  marc('770','t', Line 681  marc('770','t',
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    
# Line 614  marc_indicators('772', 0, ' '); Line 692  marc_indicators('772', 0, ' ');
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    
# Line 650  marc('777','t', Line 731  marc('777','t',
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);
# Line 659  marc('780','t', Line 744  marc('780','t',
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);
# Line 667  marc_indicators('785', 0, 0); Line 756  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    
# Line 734  marc('992','a', Line 841  marc('992','a',
841  #       )  #       )
842  # );  # );
843    
844  } # pair  } # signatura

Legend:
Removed from v.1277  
changed lines
  Added in v.1278

  ViewVC Help
Powered by ViewVC 1.1.26