/[webpac2]/trunk/conf/ffcasopisi/sigxls2marc.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/sigxls2marc.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 $csigid =
2            lookup(
3                    sub { rec('A') },
4                    'casopisi','csigid',
5                    sub { rec('A') },
6                    sub { rec('I') }
7            );
8    
9    if ( ! $csigid ) {
10    
11    
12  ### LEADER  ### LEADER
13    
# Line 17  marc_leader('17','u'); Line 27  marc_leader('17','u');
27  marc_leader('18','i');  marc_leader('18','i');
28    
29  ### 008 - All materials  ### 008 - All materials
30  marc_fixed('008','00', '090512');       # 00-05 - Date entered on file  marc_fixed('008','00', '090820');       # 00-05 - Date entered on file
31    
32  ## za 008 06 treba i lookup u tablicu u kojoj postoji podatak o tome jel tekuci casopis ili nije?  ## za 008 06 treba i lookup u tablicu u kojoj postoji podatak o tome jel tekuci casopis ili nije?
33  ## c - Continuing resource currently published  ## c - Continuing resource currently published
# Line 54  marc_fixed('008','23', ' '); Line 64  marc_fixed('008','23', ' ');
64  marc_fixed('008','24', '|');  marc_fixed('008','24', '|');
65  marc_fixed('008','25', '|||');  marc_fixed('008','25', '|||');
66  marc_fixed('008','28', ' ');  marc_fixed('008','28', ' ');
67  marc_fixed('008','29', ' ');  marc_fixed('008','29', '|');
68  marc_fixed('008','33', '|');  marc_fixed('008','33', '|');
69  marc_fixed('008','34', '|');  marc_fixed('008','34', '0');
70    
71  ### 022  ### 022
72    
# Line 66  marc('022','a', Line 76  marc('022','a',
76    
77  ### 035$a  ### 035$a
78    
79  if ( rec('B') ) {  marc('035','a',
80          marc('035','a',          prefix('HR-ZaFF csig',
81                  join_with(' ',                  rec('I')
82                          'HR-ZaFF',          ),
83                          join_with('',  );
                                 suffix('P',  
                                         lc( rec('A') )  
                                 ),  
                                 rec('B')  
                         ),  
                 )  
         );  
 }  
84    
85  ### 040  ### 040
86  # za sve je isti  # za sve je isti
# Line 103  marc('040','e', Line 105  marc('040','e',
105    
106  #_debug(3);  #_debug(3);
107    
 ## iz nsk  
 #if ( rec('11') ) {  
 #marc('210','a',  
 #       lookup(  
 #               sub { rec('531','a') },  
 #               'nsk','bbaza',  
 #               sub { rec('011','a') },  
 #               sub { rec('11') },  
 #       )  
 #);  
 #}  
   
 # ### 222 indikatori  
 # # drugi indikator prema članu  
 #  
 # marc_indicators('222',' ','0');  
 #  
 # ### 222 - Key title  
 # # pronaći prikadan izvor podataka - nsk baza, issn baze  
 #  
 # marc('222','a',  
 #       rec('530')  
 # );  
 #  
 # # iz nsk:  
 # #if ( rec('11') ) {  
 # #marc('222','a',  
 # #     lookup(  
 # #             sub { rec('530','a') },  
 # #             'nsk','bbaza',  
 # #             sub { rec('011','a') },  
 # #             sub { rec('11') },  
 # #     )  
 # #);  
 # #}  
   
 ### 245 indikatori  
 # generiraju se prema članu, trebalo bi možda i prema jeziku (jezika nema uvijek).  
 # potrebna naknadna kontrola  
108    
109  marc_indicators('245', 0, 0);  marc_indicators('245', 0, 0);
110    
# Line 169  if (   ( rec('E') =~ m/^A /) || Line 132  if (   ( rec('E') =~ m/^A /) ||
132    
133  ### 245  ### 245
134    
135  if ( rec('E') =~ m/:/ ) {  my ($a,$b,$c);
136          marc('245','a',  my $naslov = rec('E');
137                  suffix(' :',  $c = $2 if $naslov =~ s{(\s+/)\s+(.+)$}{$1};
138                          regex('s/(^.*):.*/$1/',  if ( $naslov =~ s{^(.+?[:=])\s+}{} ) {
139                                  rec('E')          $a = $1;
140                          )          $b = $naslov ;
                 )  
         );  
         marc('245','b',  
                 regex('s/^.*: (.*)/$1/',  
                         rec('E')  
                 )  
         );  
141  } else {  } else {
142          marc('245','a',          $a = $naslov ;
                 rec('E')  
         );  
143  }  }
144    
 if ( rec('E') =~ m# / #  && rec('E') =~ m/[:=]/ ) {  
         marc('299','a',  
                 regex('s/(^.*?[:=]) (.*\/) (.*)/$1/',  
                         rec('E')  
                 )  
         );  
         marc('299','b',  
                 regex('s/(^.*?[:=]) (.*\/) (.*)/$2/',  
                         rec('E')  
                 )  
         );  
         marc('299','c',  
                 regex('s/(^.*?[:=]) (.*\/) (.*)/$3/',  
                         rec('E')  
                 )  
         );  
                   
 } elsif ( rec('E') =~ m/ \/ /  && rec('E') !~ m/[:=]/ ) {  
         marc('299','a',  
                 regex('s/(^.*?\/) (.*)/$1/',  
                         rec('E')  
                 )  
         );  
         marc('299','c',  
                 regex('s/(^.*?\/) (.*)/$2/',  
                         rec('E')  
                 )  
         );  
 } elsif ( rec('E') !~ m/ \/ / && rec('E') =~ m/[:=]/ ) {  
         marc('299','a',  
                 regex('s/(^.*?[:=]) (.*)/$1/',  
                         rec('E')  
                 )  
         );  
         marc('299','b',  
                 regex('s/(^.*?[:=]) (.*)/$2/',  
                         rec('E')  
                 )  
         );  
145    
146  } else {          marc('245','a', $a);
147          marc('299','a',  marc('245','b', $b) if $b;
148                  rec('E')  marc('245','c', $c);
149          );  
150  }  #if ( rec('E') =~ m/:/ ) {
151    #       marc('245','a',
152    #               suffix(' :',
153    #                       regex('s/(^.*):.*/$1/',
154    #                               rec('E')
155    #                       )
156    #               )
157    #       );
158    #       marc('245','b',
159    #               regex('s/^.*: (.*)/$1/',
160    #                       rec('E')
161    #               )
162    #       );
163    #} else {
164    #       marc('245','a',
165    #               rec('E')
166    #       );
167    #}
168    
169  # ### 246 inikatori  marc('500','a',
170  # # prema jeziku - provjera          rec('H'),
171  #  );
 # if (  ( rec('200','a') =~ m/^Die /) ||  
 #       ( rec('200','a') =~ m/^Das /) ||  
 #       ( rec('200','a') =~ m/^The /) ) {  
 #               marc_indicators('246', 0, 4);  
 # } else {  
 #       marc_indicators('246', 0, 0);  
 # }  
 #  
 # ### 246  
 # # povući podatke iz prikladnog izvora (nsk, issn)  
 #  
 # marc('246','a',  
 #       rec('532')  
 # );  
 #  
 # ## iz nsk:  
 # #     marc('246','a',  
 # #             lookup(  
 # #                     sub { rec('532','a') },  
 # #                     'nsk','bbaza',  
 # #                     sub { rec('011','a') },  
 # #                     sub { rec('11') },  
 # #             )  
 # #     );  
 #  
 # #_debug(0);  
 #  
 #  
 # ## 260 - izdavanje  
 # # provjeriti interpunkcije !!, u NSK nesto ne stima  
 #  
 # marc_original_order('260','210');  
 #  
 # ## lookup u NSK:  
 # # if ( rec('11') ) {  
 # #     marc_repeatable_subfield('260','a',  
 # #             lookup(  
 # #                     sub { rec('210','a') },  
 # #                     'nsk','bbaza',  
 # #                     sub { rec('011','a') },  
 # #                     sub { rec('11') },  
 # #             )  
 # #     );  
 # #     marc_repeatable_subfield('260','b',  
 # #             lookup(  
 # #                     sub { rec('210','c') },  
 # #                     'nsk','bbaza',  
 # #                     sub { rec('011','a') },  
 # #                     sub { rec('11') },  
 # #             )  
 # #     );  
 # #     marc('260','c',  
 # #             lookup(  
 # #                     sub { rec('210','d') },  
 # #                     'nsk','bbaza',  
 # #                     sub { rec('011','a') },  
 # #                     sub { rec('11') },  
 # #             )  
 # #     );  
 # # } else {  
 # #     marc_original_order('260', '210');  
 # # }  
 #  
 #  
 # ### 300  
 #  
 # marc('300','a',  
 #       suffix(  
 #               ( rec('215','a') && rec('215','c') )    ?  ' : ' :  
 #               ( rec('215','a') && rec('215','d') )    ?  ' ; ' :  
 #               ( rec('215','a') && rec('215','e') )    ?  ' + ' :  
 #                                  ' ',  
 #                       rec('215','a')  
 #       )  
 # );  
 #  
 # marc('300','b',  
 #       suffix(  
 #               ( rec('215','c') && rec('215','d') )    ?  ' ; ' :  
 #               ( rec('215','c') && rec('215','e') )    ?  ' + ' :  
 #                                                          ' ',  
 #                       rec('215','c')  
 #       )  
 # );  
 #  
 # marc('300','c',  
 #       suffix(  
 #               rec('215','e') ? ' + ' :  
 #                                ' ',  
 #                       rec('215','d')  
 #       )  
 # );  
 #  
 # marc('300','e',  
 #       rec('215','e')  
 # );  
 #  
 # ### 310 - current stated publication frequency  
 # # potrebno ujednačiti, koristi se i u polju 008  
 #  
 # marc('310','a',  
 #       rec('326')  
 # );  
 #  
 # ### 321 - former frequency of either an item or an update to an item when a current frequency is contained in field 310  
 #  
 # # marc('321','a',  
 # #     ovo bi trebalo procitati iz NSK konvertiranih podataka  
 # #);  
 #  
 # marc_indicators('362', 0, ' ');  
 #  
 # ### 362  
 # #  
 # if ( rec('207','a') ) {  
 #       marc('362','a',  
 #               rec('207','a'),  
 #       );  
 # }  
 #  
 # ## lookup iz nsk  
 # #else {  
 # #     if ( rec('11') ) {  
 # #             marc('362','a',  
 # #                     lookup(  
 # #                             sub { rec('207','a') },  
 # #                             'nsk','bbaza',  
 # #                             sub { first( rec('011','a') ) },  
 # #                             sub { rec('11') },  
 # #                     )  
 # #             );  
 # #     }  
 # #}  
 #  
 # ### 490 ind.  
 #  
 # marc_indicators('490', '0', ' ');  
 #  
 # ### 490  
 #  
 # marc('490','a',  
 #       join_with('. ',  
 #               join_with(' / ',  
 #                       join_with(' : ',  
 #                               join_with(' = ',  
 #                                       rec('225','a'),  
 #                                       rec('225','d')  
 #                               ),  
 #                               rec('225','e')  
 #                       ),  
 #                       join_with(' ; ',  
 #                               rec('225','f'),  
 #                               rec('225','g')  
 #                       ),  
 #               ),  
 #               rec('225','h')  
 #       )  
 # );  
 #  
 # marc('490','v',  
 #       rec('225','v')  
 # );  
 #  
 # marc('490','x',  
 #       rec('225','x')  
 # );  
 #  
 # if ( rec('11') ) {  
 #       marc('999','a',  
 #               lookup(  
 #                       sub { rec('110','a'), },  
 #                       'nsk','bbaza',  
 #                       sub { rec('011','a') },  
 #                       sub { rec('11') }  
 #               )  
 #       );  
 # }  
 #  
 #  
 # #marc('998','a',  
 # #     lookup(  
 # #             sub { rec('H') },  
 # #             'ffsf','xls',  
 # #             sub { rec('A') },  
 # #             sub { $id },  
 # #     ),  
 # #);  
   
   
 ### 500  
 # lookup  
 #  
 #  
 # marc('500','a',  
 #       rec(''),  
 # );  
 #    
 #  
 # ### 534 - napomena o pretisku  
 #  
 # marc('534','a',  
 #       rec('324')  
 # );  
 #  
 # ## potencijalno za izvući iz NSK  
 # #if ( rec('11') ) {  
 # #marc('546','a',  
 # #     lookup(  
 # #             sub { rec('302','a') },  
 # #             'nsk','bbaza',  
 # #             sub { rec('011','a') },  
 # #             sub { rec('11') },  
 # #     )  
 # #);  
 # #  
 # #marc('550','a',  
 # #     lookup(  
 # #             sub { rec('314','a') },  
 # #             'nsk','bbaza',  
 # #             sub { rec('011','a') },  
 # #             sub { rec('11') },  
 # #     )  
 # #);  
 # #  
 # #marc('555','a',  
 # #     lookup(  
 # #             sub { rec('320','a') },  
 # #             'nsk','bbaza',  
 # #             sub { rec('011','a') },  
 # #             sub { rec('11') },  
 # #     )  
 # #);  
 # #  
 # #  
 # ## marc('562','a',  
 # ##    lookup(  
 # ##            sub { rec('316','a') },  
 # ##            'nsk','bbaza',  
 # ##            sub { rec('011','a') },  
 # ##            sub { rec('11') },  
 # ##    )  
 # ## );  
 # #}  
   
   
 if ( rec('B') ) {  
         marc('996','a',  
                 lc( rec('A') )  
         );  
172    
         marc('996','b',  
                 'peri'  
         );  
173    
174          marc('996','c',  ### 866
175                  rec('B')  marc_indicators('866',' ','0');
176          );  marc('866','a',
177  }          rec('G')
178    );
179    
 #  
 # ### 653 indikatori  
 # marc_indicators('653', 0, ' ');  
 #  
 # ### 653  
 #  
 # marc('653','a',  
 #       rec('610')  
 # );  
 #  
 # # marc_indicators('655', ' ', 4);  
 # # marc('655','a',  
 # #     lookup(  
 # #             sub { rec('608','a') },  
 # #             'nsk','bbaza',  
 # #             sub { rec('011','a') },  
 # #             sub { rec('11') },  
 # #     )  
 # # );  
 #  
 #  
 # #_debug(2);  
 #  
 # ### 700 indikatori  
 #  
 # marc_indicators('700', 1, ' ');  
 #  
 # ### 700  
 #  
 # marc('700','a',  
 #       rec('702','a'),  
 # );  
 #  
 # marc('700','a',  
 #       join_with(', ',  
 #               rec('702','c'),  
 #               rec('702','d')  
 #       )  
 # );  
 #  
 #    
 # #_debug(0);  
 #  
 # ### 710 indikatori  
 #  
 # marc_indicators('710', '2', ' ');  
 #  
 # ### 710  
 # marc('710','a',  
 #       rec('710','a')  
 # );  
 #  
 # ### 770 indikatori  
 #  
 # marc_indicators('770', 0, ' ');  
 #  
 # ### 770  
 # marc('770','t',  
 #       rec('421','a'),  
 # );  
 #  
 # ### 772 indikatori  
 # marc_indicators('772', 0, ' ');  
 #  
 # ### 772  
 # marc('772','t',  
 #       rec('422','a'),  
 # );  
 #  
 # ### 773 indikatori  
 #  
 # if ( rec('225','a') ) {  
 #  
 # marc_indicators('773', 0, ' ');  
 #  
 # ### 773  
 # ## da li je bitan redoslijed potpolja?  
 #  
 # marc('773','w',  
 #       lookup(  
 #               sub { rec('000') },  
 #               'ffsf','peri',  
 #               sub { rec('200','a') },  
 #               sub {  
 #                       regex('s/ ; //g',  
 #                               rec('225','a')  
 #                       )  
 #               },  
 #       )  
 # );  
 #  
 # }  
 #  
 #  
 # ### 777 indikatori  
 #  
 # marc_indicators('777', 0, ' ');  
 #  
 # ### 777  
 #  
 # marc('777','t',  
 #       rec('423','a'),  
 # );  
 #  
 # ### 780 indikatori  
 #  
 # marc_indicators('780', 0, 0);  
 #  
 # ### 780  
 # marc('780','t',  
 #       rec('430','a'),  
 # );  
 #  
 # ### 785 indikatori  
 #  
 # marc_indicators('785', 0, 0);  
 #  
 # ### 785  
 # marc('785','t',  
 #       rec('440','a'),  
 # );  
 #  
 # ### 852  
 #  
 # marc('852','j',  
 #       join_with(' ',  
 #               rec('990')  
 #       )  
 # );  
 #  
 # ### 876  
 #  
 # marc('876','a',  
 #       rec('991','a')  
 # );  
180    
181  marc('942','d',  ### 942
182          rec('C')  
183    marc('942','b',
184            'PER'
185  );  );
186    
187    marc('942','c',
188            'PER'
189    );
190    
191    marc('942','d',
192            rec('C')
193    );
194    
195  #  marc('942','i',
196  # ### 992          rec('C')
197  #  );
 # marc('992','a',  
 #       join_with(' ; ',  
 #               rec('992')  
 #       )  
 # );  
 #  
 #  
 ### polja za probu  
   
   
 #marc('998','a',  
 #       lookup(  
 #               sub { rec('200','a') },  
 #               'ffiz','peri',  
 #               sub { rec('200','a'), },  
 #               sub { rec('225','a'), }  
 #       )  
 #);  
   
   
 # marc('997','a',  
 #       sort(  
 #               lookup(  
 #                       sub { rec('001') },  
 #                       'nsk','bbaza',  
 #                       sub { rec('011','a') },  
 #                       sub { rec('11') },  
 #               )  
 #       )  
 # );  
 #  
 # marc('998','a',  
 #       sort(  
 #               lookup(  
 #                       sub { rec('001') },  
 #                       'nsk','bbaza',  
 #                       sub { first(rec('200','a')) . first(rec('200','e')) },  
 #                       sub { rec('200','a') . rec('200','e') },  
 #               )  
 #       )  
 # );  
 #  
 # marc('998','a',  
 #       sort(  
 #               lookup(  
 #                       sub { rec('001') },  
 #                       'nsk','bbaza',  
 #                       sub { first(rec('200','a')) },  
 #                       sub { rec('200','a') },  
 #               )  
 #       )  
 # );  
198    
199    } #csigid

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

  ViewVC Help
Powered by ViewVC 1.1.26