/[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

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

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

revision 1118 by dpavlin, Sat Sep 6 10:54:35 2008 UTC revision 1119 by dpavlin, Sun Oct 26 15:58:55 2008 UTC
# Line 4  Line 4 
4  # UNIMARC formatu, sa višestrukim odstupanjima od standarda.  # UNIMARC formatu, sa višestrukim odstupanjima od standarda.
5    
6    
7  ## lookup rezultat za sabrana djela  ## lookup rezultat za sabrana djela (probna procedura za filozofiju od koje se odustalo)
8  my $sabrana;  # my $sabrana;
9    
10    
11  ## konvertira se ako postoji polje 200^a  ## sve skupa se konvertira tek ako postoji polje 200^a
12  if ( rec('200','a') ) {  if ( rec('200','a') ) {
13    
14  ### LEADER  ### LEADER
15    
16  ## LDR 05 - c = pregledan ; n = new  ## LDR 05 - n - new
17  ## provjeriti za svaku bazu koje polje koristi  marc_leader('05','n');
 ## 999^aP - SFM  
   
 if ( rec('999','a') && rec('999','a') =~ m/(pregledan|P)/i) {  
         marc_leader('05','c');  
 } else {  
         marc_leader('05','n');  
 }  
18    
19  ## LDR 06 - a - language material  ## LDR 06 - a - language material
20    marc_leader('06','a');
         marc_leader('06','a');  
21    
22  ## LDR 07 - m - Monograph/item  ## LDR 07 - m - Monograph/item
23    marc_leader('07','m');
24    
25  if ( config() =~ m/fffi/ ) {  # ovo je bila proba za filozofiju
26          $sabrana =  # if ( config() =~ m/fffi/ ) {
27                  lookup(  #       $sabrana =
28                          sub{ rec('A') },  #               lookup(
29                          'fffi','sabrana',  #                       sub{ rec('A') },
30                          sub { rec('B') },  #                       'fffi','sabrana',
31                          sub { rec('000') }  #                       sub { rec('B') },
32                  );  #                       sub { rec('000') }
33  }  #               );
34    # }
35  if ( ! $sabrana ) {  #
36          marc_leader('07','m');  # if ( ! $sabrana ) {
37  } else {  #       marc_leader('07','m');
38          marc_leader('07','c');  # } else {
39  }  #       marc_leader('07','c');
40    # }
41    
42  ## LDR 17 - Encoding level ; 7 - minimal level  ## LDR 17 - Encoding level ; 7 - minimal level, u - unknown
43          marc_leader('17','7');  marc_leader('17','u');
44    
45  ## LDR 18 - i - isbd  ## LDR 18 - i - isbd
46          marc_leader('18','i');  marc_leader('18','i');
47    
48  ## LDR 19  ## LDR 19 - Multipart resource record level ; # - Not specified or not applicable, a - Set, b - Part with independent title, c - Part with dependent title
 # # - Not specified or not applicable; a - Set; b - Part with independent title; c - Part with dependent title  
49    
50  #if ( ( ! $sabrana ) && ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {  #if ( ( ! $sabrana ) && ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {
51  #       marc_leader('19','a');  #       marc_leader('19','a');
# Line 73  if ( rec('994','c') =~ m/\d{8}/ ) { Line 66  if ( rec('994','c') =~ m/\d{8}/ ) {
66                  ),                  ),
67          );          );
68  } elsif ( rec('994','c') =~ m/\d{6}/ ) {  } elsif ( rec('994','c') =~ m/\d{6}/ ) {
69          marc_fixed('008', 00,          marc_fixed('008','00',
70                  regex('s/^\d\d//',                  regex('s/^\d\d//',
71                          rec('994','c')                          rec('994','c')
72                  ),                  ),
73          );          );
74          marc_fixed('008', '04',          marc_fixed('008','04',
75                  '01'                  '01'
76          );          );
77  } elsif ( rec('994','c') =~ m/\d{4}/ ) {  } elsif ( rec('994','c') =~ m/\d{4}/ ) {
# Line 87  if ( rec('994','c') =~ m/\d{8}/ ) { Line 80  if ( rec('994','c') =~ m/\d{8}/ ) {
80                          rec('994','c')                          rec('994','c')
81                  ),                  ),
82          );          );
83          marc_fixed('008', '02',          marc_fixed('008','02',
84                  '0101'                  '0101'
85          );          );
86    } else {
87            marc_fixed('008','00',
88                    '010101'
89            );
90  }  }
91    
92  #warn( dump(  #warn( dump(
# Line 101  if ( rec('994','c') =~ m/\d{8}/ ) { Line 98  if ( rec('994','c') =~ m/\d{8}/ ) {
98    
99  ## 008 06 - Type of date/Publication status  ## 008 06 - Type of date/Publication status
100    
101  ## 008 07-10 - Date 1 -  ## 008 07-10 - Date 1
102  ## srediti sve moguće oznake za godine (06)  ## 008 11-14 - Date 2
103  ## 210d kroz modify postaje 210c  ## 210d kroz modify postaje 210c
104    
105  if ( rec('210','c') ) {  if ( rec('210','c') ) {
106          my $d1 = '';          my $d1 = '';
107          my $d2 = '';          my $d2 = '';
108          if ( rec('210','c') =~ m/(\?)/ ) {          if ( rec('210','c') =~ m/(\d{4})-/ ) {
109                  marc_fixed('008','06','q');                  marc_fixed('008','06','m');
                 if ( rec('210','c') =~ m/(\d{2})(--|__)/ ) {  
                         $d1 = $1.'uu';  
                 }  
                 if ( rec('210','c') =~ m/(\d{3})(-|_)/ ) {  
                         $d1 = $1.'u';  
                 }  
                 if ( rec('210','c') =~ m/(\d{4})/ ) {  
                         $d1 = $1;  
                 }  
         } elsif ( rec('210','c') =~ m/(\d{4})-/ ) {  
                 if ( $sabrana ) {  
                         marc_fixed('008','06','i');  
                 } else {  
                         marc_fixed('008','06','m');  
                 }  
110                  if ( rec('210','c') =~ m/(\d{4})-/ ) {                  if ( rec('210','c') =~ m/(\d{4})-/ ) {
111                          $d1 = $1;                          $d1 = $1;
112                          $d2 = '9999';                          $d2 = '9999';
# Line 137  if ( rec('210','c') ) { Line 119  if ( rec('210','c') ) {
119                  if ( rec('210','c') =~ m/(\d{4})/ ) {                  if ( rec('210','c') =~ m/(\d{4})/ ) {
120                          $d1 = $1;                          $d1 = $1;
121                  }                  }
122                    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          }          }
129                    
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    
162          marc_fixed('008','07',$d1);             # 07-10 - Date 1          marc_fixed('008','07',$d1);             # 07-10 - Date 1
163          marc_fixed('008','11',$d2);             # 07-10 - Date 1          marc_fixed('008','11',$d2);             # 07-10 - Date 1
# Line 148  if ( rec('210','c') ) { Line 168  if ( rec('210','c') ) {
168  }  }
169    
170    
 ## 008 11-14 - Date 2  
171    
172  ## 008 15-17 - Place of publication, production, or execution - što ako nema 102?  ## 008 15-17 - Place of publication, production, or execution - ako nema 102, popunjava se s |
173  ## raspraviti  marc_fixed('008','15','|||');
   
 marc_fixed('008','15','xx');  
174    
175  #marc_fixed('008','15',  #marc_fixed('008','15',
176  #       lc ( rec('102') )  #       lc ( rec('102') )
# Line 178  marc_fixed('008','35', Line 195  marc_fixed('008','35',
195          lc( frec('101'))                          lc( frec('101'))                
196  );  );
197                                                                                    
198  ## 008 38 - Modified record - razjasniti  ## 008 38 - Modified record
199  marc_fixed('008','38','|');              marc_fixed('008','38','|');            
200    
201  ## 008 39 - Cataloging source - d (other)  ## 008 39 - Cataloging source - d (other)
# Line 194  if ( rec('215','c') && rec('215','c') =~ Line 211  if ( rec('215','c') && rec('215','c') =~
211  marc_fixed('008','22','|');  marc_fixed('008','22','|');
212    
213  ## 008 23 - Form of item  ## 008 23 - Form of item
214    marc_fixed('008','23','|');
215    
216  ## 008 24-27 - Nature of contents  ## 008 24-27 - Nature of contents
217  marc_fixed('008','24','||||');  marc_fixed('008','24','||||');
# Line 218  marc_fixed('008','33','|'); Line 236  marc_fixed('008','33','|');
236  marc_fixed('008','34','|');  marc_fixed('008','34','|');
237    
238  ### 020  ### 020
239  ## modify za polje 10 -> drugi ISBN počinje prefixom "ISBN" koji se miče (pr. u sfb)  ## 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') ) ) {
 if ( frec('10') ne ( frec('290') ) ) {  
241          if ( rec('10','a') !~ /pogre/ ) {          if ( rec('10','a') !~ /pogre/ ) {
242                  marc('020','a',                  marc('020','a',
243                          # isbn_13(                          # isbn_13(
# Line 241  if ( frec('10') ne ( frec('290') ) ) { Line 258  if ( frec('10') ne ( frec('290') ) ) {
258          marc('020','z',          marc('020','z',
259                  rec('10','z')                  rec('10','z')
260          );          );
261  }  #}
262    
263  #warn(  #warn(
264  #       dump(  #       dump(
# Line 251  if ( frec('10') ne ( frec('290') ) ) { Line 268  if ( frec('10') ne ( frec('290') ) ) {
268    
269  ### 035$  ### 035$
270  ## marc 035a - System Number  ## marc 035a - System Number
271  ## polje može sadržavati slova i razmake, problem u pretraživanju ako ima zagrade, kako bi trebalo po standardu  ## polje može sadržavati slova i razmake
272    ## moguć problem u pretraživanju ako ima zagrade, kako bi trebalo po standardu
273    
274  marc('035','a',  marc('035','a',
275  join_with('',  join_with('',
# Line 259  join_with('', Line 277  join_with('',
277          # config('name'),          # config('name'),
278          'HR-ZaFF ',          'HR-ZaFF ',
279          config(),          config(),
280          'L-',          'L',
281          # config('input name'),          # config('input name'),
282          # id(),          # id(),
283          # rec('994','a'),          # rec('994','a'),
# Line 292  marc('040','e', Line 310  marc('040','e',
310  ## (ako postoje zagrade pr. 94(=411.16) onda su to pomoćne oznake)  ## (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.  ## pr. 821.111-2=163.42 je prijevod engleske drame na HR.
312  ## to ima samo za književna djela, eseje....  ## to ima samo za književna djela, eseje....
313    ## ovo treba kasnije ispravljati
314    
315  #if ( rec('675') =~ m/\d=\d/ ) ?  #if ( rec('675') =~ m/\d=\d/ ) ?
316    
# Line 316  if ( Line 335  if (
335          );          );
336  }  }
337    
338          ### 041  ### 041
339          ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)  ## ponovljivo polje (101) konvertira se u ponovljivo potpolje (041a)
340          ## polje se koristi kad ima više od jednog jezika, ili kad se radi o prijevodu  ## koristi se kad ima više od jednog jezika, ili kad se radi o prijevodu
341          #_debug(2);  ## nadopuniti
   
 #_debug(0);  
342    
343  ### 044  ### 044
344  ## kako dobiti zemlju izdavanja?  ## koristi se kad ima više zemalja izdavanja
345    
346  ### 080  ### 080
347  ## 675 podpolja b, c, d ... - što s njima? - provjeriti za svaku bazu  ## 675 podpolja b, c, d ... - što s njima? - provjeriti za svaku bazu
348  ## fi: abcd  ## fi: abcd
349    ## sk: ima \r\n na kraju
350    
351  marc('080','a',  marc('080','a',
352          rec('675','a')          rec('675','a')
# Line 352  marc('080','a', Line 370  marc('080','a',
370  ## NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom  ## NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom
371  ## polje 686 koristi FFPS. još netko?  ## polje 686 koristi FFPS. još netko?
372    
373    marc('084','2',
374            'APA CC'
375    );
376  marc('084','a',  marc('084','a',
377          rec('686')          rec('686')
378  );  );
# Line 375  marc('100','a', Line 396  marc('100','a',
396  ### formalna odrednica - iz 503 u 110, i1=0, i2=1  ### formalna odrednica - iz 503 u 110, i1=0, i2=1
397    
398  ### 111 i 110  ### 111 i 110
399  ## konverzija u 110 ili 111 ovisno o postojanju/nepostojanju nekih polja - provjeriti ispise naslova iz svake baze - moguće su greške.  ## 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  ## popraviti interpunkciju  ## popraviti interpunkciju
402    
403  # ovo vrijedi za FFSFB  # ovo vrijedi za FFSFB
# Line 429  marc_compose('111', Line 451  marc_compose('111',
451  ## i2 = pretpostavlja se na temelju člana na početku naslova i jezika  ## i2 = pretpostavlja se na temelju člana na početku naslova i jezika
452  ## treba provjeriti  ## treba provjeriti
453    
454  my $i1;  my $titleind1;
455    
456  if ( rec('700') || rec('710') ) {  if ( rec('700') || rec('710') ) {
457          $i1 = 1;          $titleind1 = 1;
458  } else {  } else {
459          $i1 = 0;          $titleind1 = 0;
460  }  }
461                    
462  marc_indicators('245', $i1, 0);  marc_indicators('245', $titleind1, 0);
463    
464  if ( rec('200','a') =~ m/^Einen / ) {  if ( rec('200','a') =~ m/^Einen / ) {
465                  marc_indicators('245', $i1, 6);          marc_indicators('245', $titleind1, 6);
466  }  }
467  if ( rec('200','a') =~ m/^Eine / ) {  if ( rec('200','a') =~ m/^Eine / ) {
468                  marc_indicators('245', $i1, 5);          marc_indicators('245', $titleind1, 5);
469  }  }
470  if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|Los|The) / ) {  if ( rec('200','a') =~ m/^(Die|Das|Der|Ein|Les|Los|The) / ) {
471                  marc_indicators('245', $i1, 4);          marc_indicators('245', $titleind1, 4);
472  }  }
473  if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Lo|Il) / ) {  if ( rec('200','a') =~ m/^(Um|Un|An|La|Le|Lo|Il) / ) {
474                  marc_indicators('245', $i1, 3);          marc_indicators('245', $titleind1, 3);
475  }  }
476  if ( ( rec('101') =~ m/ENG/ ) && ( rec('200','a') =~ m/^A / ) ) {  if ( ( rec('101') =~ m/ENG/ ) && ( rec('200','a') =~ m/^A / ) ) {
477                  marc_indicators('245', $i1, 2);          marc_indicators('245', $titleind1, 2);
478  }  }
479  if ( rec('200','a') =~ m/^L / ) {  if ( rec('200','a') =~ m/^L / ) {
480                  marc_indicators('245', $i1, 2);          marc_indicators('245', $titleind1, 2);
481  }  }
482  if ( rec('200','a') =~ m/^L'/ ) {  if ( rec('200','a') =~ m/^L'/ ) {
483                  marc_indicators('245', $i1, 2);          marc_indicators('245', $titleind1, 2);
484  }  }
485    
486    
# Line 519  marc_compose('245', Line 541  marc_compose('245',
541  #_debug(0);  #_debug(0);
542    
543  ### 246  ### 246
544  ## i1=1 ukoliko pravilo nalaze napomenu, ali napomenu necemo pisati ponovo u 500  ## i1=1 ukoliko pravilo nalaže napomenu, ali napomenu necemo pisati ponovo u 500
545  ## i1=3 ako pravlo na nalze napomenu  ## i1=3 ako pravlo na nalaže napomenu
546  ## vidi na wiki  ## vidi na wiki
547  ## i2 - pogledati za svaku bazu sto su ti naslovi, pa onda oderditi indikatoda oderditi indikatoree  ## i2 - pogledati za svaku bazu sto su ti naslovi, pa onda oderditi indikatoda oderditi indikatoree
   
548  marc_indicators('246', 3, ' ');  marc_indicators('246', 3, ' ');
549  marc('246','a',  marc('246','a',
550          rec('532')          rec('532')
551  );  );
552    
553  ### 250  ### 250
554  ## zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti  ## zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti za svaku bazu
   
555  marc_compose('250',  marc_compose('250',
556          'a',suffix(          'a',suffix(
557                  rec('205','f') ? ' / ' :                  rec('205','f') ? ' / ' :
# Line 543  marc_compose('250', Line 563  marc_compose('250',
563    
564  ### 260  ### 260
565  ## ponovljiva potpolja u originalnom redosljedu - priprema u modify  ## ponovljiva potpolja u originalnom redosljedu - priprema u modify
566    marc_original_order('260', '210');
         marc_original_order('260', '210');  
567    
568    
569  ### 300  ### 300
570  ## urediti interpunkcije za sve kombinacije  ## urediti interpunkcije za sve kombinacije
   
571  marc('300','a',  marc('300','a',
572          suffix(          suffix(
573                  rec('215','c') ? ' : ' :                  rec('215','c') ? ' : ' :
# Line 579  marc('300','e', Line 597  marc('300','e',
597  );  );
598    
599  ### 362 - brojčani podaci za nakladničku cjelinu - to mi nemamo, polje se koristi samo za časopise  ### 362 - brojčani podaci za nakladničku cjelinu - to mi nemamo, polje se koristi samo za časopise
600    ## i1 = 0 - formalizirani oblik navoda
601    ## i1 = 1 - neformalizirani
602    ## i2 nema
603    
604  # if ( ! rec('225','z')  ) {  # if ( ! rec('225','z')  ) {
605    
# Line 879  if ( config() =~ m/ffps/ ) { Line 899  if ( config() =~ m/ffps/ ) {
899  }  }
900    
901  ### 526 - STUDY PROGRAM INFORMATION NOTE  ### 526 - STUDY PROGRAM INFORMATION NOTE
902  ## provjeriti za svaku bazu sta je u 996?  ## u nekim bazame je to u 996 - provjeriti za svaku bazu sta je u 996?
   
903  marc_indicators('526', 8, ' ');  marc_indicators('526', 8, ' ');
   
904  marc('526','a',  marc('526','a',
905          rec('996')          rec('996')
906  );  );
907    
908  ### 538 - zahtjevi sustava  ### 538 - zahtjevi sustava
   
909  marc('538','a',  marc('538','a',
910          rec('337','a')          rec('337','a')
911  );  );
912    
913  ### 655  ### 653 - Index Term-Uncontrolled
   
 marc_indicators('655', ' ', 4);  
 marc('655','a',  
         rec('608')  
 );  
   
 ### 653  
914  ## da li ponovljivo polje ili potpolje, pogledati u Koha tags  ## da li ponovljivo polje ili potpolje, pogledati u Koha tags
   
915  marc_indicators('653', ' ', ' ');  marc_indicators('653', ' ', ' ');
916  marc('653','a',  marc('653','a',
917          rec('610')          rec('610')
918  );  );
919    
920    ### 655 - Index Term-Genre/Form
921    marc_indicators('655', ' ', 4);
922    marc('655','a',
923            rec('608')
924    );
925    
926  #_debug(2);  #_debug(2);
927    
928    
929  ### 700  ### 700
930  ## ako je u originalu ponovljivo polje treba bioti i konvertirano u ponovljivo !!  ## ako je u originalu ponovljivo polje treba bioti i konvertirano u ponovljivo !!
931  ## ako ima samo podpolje a onda je pseudonim - popraviti indikator  ## ako ima samo podpolje a onda je pseudonim - nakon konverzije treba provjeriti
932    if ( rec('701','a') =~ m/, / ) {
933  marc_indicators('700', 1, ' ');          marc_indicators('700', 1, ' ');
934    } else {
935            marc_indicators('700', 0, ' ');
936    }
937    
938  marc('700','a',  marc('700','a',
939          rec('701', 'a'),          rec('701', 'a'),
940  );  );
941    
942  marc('700','a',  marc('700','a',
943          join_with(', ',          join_with(', ',
944                  rec('701', 'c'),                  rec('701', 'c'),
945                  rec('701', 'd')                  rec('701', 'd')
946          )          ),
947  );  );
948  marc('700','a',  marc('700','a',
949          join_with(', ',          join_with(', ',
950                  rec('701', 'e'),                  rec('701', 'e'),
951                  rec('701', 'f')                  rec('701', 'f')
952          )          ),
953  );  );
954  marc('700','a',  marc('700','a',
955          join_with(', ',          join_with(', ',
956                  rec('701', 'g'),                  rec('701', 'g'),
957                  rec('701', 'h')                  rec('701', 'h')
958          )          ),
959  );  );
960  marc('700','a',  marc('700','a',
961                  rec('702', 'a'),          rec('702','a'),
962  );  );
963  marc('700','a',  marc('700','a',
964          join_with(', ',          join_with(', ',
# Line 962  marc('700','a', Line 981  marc('700','a',
981    
982  #_debug(0);  #_debug(0);
983    
984    ## eventualno nadopuniti 710 i 711 - provjetiti da li u podacima postoji u ISIS-u
985    
 ### 740 - sta s tim?  
986    
987  marc_indicators('740', 0, ' ');  ### 740 - Added Entry - Uncontrolled Related/Analytical Title
988    ## raspraviti
989    ## nadopuniti prvi indikator prema članovima
990    marc_indicators('740', '0', ' ');
991    
992  # if ( ! rec('464') ) {  # if ( ! rec('464') ) {
993  # marc('740','a',  # marc('740','a',
# Line 984  marc('740','a', Line 1006  marc('740','a',
1006    
1007  # };  # };
1008    
1009  # -------------------------------------------------------------------  ### 760 w ---------------------------------------------
 ### 760 w  
1010  ## generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim  ## generiranje zapisa o nakladničkoj cjelini i povezivanje podređenog zapisa s nadređenim
1011    
1012  #if (  #if (
# Line 1119  marc('740','a', Line 1140  marc('740','a',
1140  #               rec('293'),  #               rec('293'),
1141  #       )  #       )
1142  #);  #);
1143  #  
1144    
1145  ### 852 - ne koristimo, koristimo  942 i 952  ### 852 - ne koristimo, koristimo  942 i 952
1146    
1147  ### 876 - item information - basic bibliographic unit  ### 876 - item information - basic bibliographic unit (R)
1148    ## da li ovdje zapisati stare inventarne brojeve?
1149  #marc('876','a',  #marc('876','a',
1150  #       rec('991','t'),  #       rec('991','t'),
1151  #);  #);
1152    
1153  ### 886 - former marc  ### 886 - former marc
1154  # inicijale treba prebaciti u neko lokalno polje, a ovo polje nam ne treba  # inicijale treba prebaciti u neko lokalno polje, a ovo polje nam ne treba
1155    #
1156  marc_indicators('886', 2, ' ');  # marc_indicators('886', 2, ' ');
1157  marc('886','2',  # marc('886','2',
1158          'ffmarc'  #       'ffmarc'
1159  );  # );
1160  marc('886','a',  # marc('886','a',
1161          '994'  #       '994'
1162  );  # );
1163  marc('886','b',  # marc('886','b',
1164          join_with(''.  #       join_with(''.
1165                  '##^a',  #               '##^a',
1166                  join_with('',  #               join_with('',
1167                          prefix('^a',  #                       prefix('^a',
1168                                  rec('994','a'),  #                               rec('994','a'),
1169                          ),  #                       ),
1170                          prefix('^b',  #                       prefix('^b',
1171                                  rec('994','b')  #                               rec('994','b')
1172                          )  #                       )
1173                  )  #               )
1174          )  #       )
1175  );  #);
1176    
1177  ### KOHA items  ### KOHA items
1178    
# Line 1157  marc('942','b', Line 1180  marc('942','b',
1180          'LIB'          'LIB'
1181  );  );
1182    
   
1183  if ( grep( m/Posebni otisak/, rec('300') ) ) {  if ( grep( m/Posebni otisak/, rec('300') ) ) {
1184          marc('942','c',          marc('942','c',
1185                  'SEP'                  'SEP'
# Line 1168  if ( grep( m/Posebni otisak/, rec('300') Line 1190  if ( grep( m/Posebni otisak/, rec('300')
1190          );          );
1191  }  }
1192    
1193    ## 990 u sk ima \r\n na kraju
1194    
1195  marc('942','d',  marc('942','d',
1196          join_with(' | ',          join_with(' | ',
1197                  rec('990')                  rec('990')
1198          )          )
1199  );        );      
1200    
1201  if ( config() =~ m/ffan/ ) {  my $novasig1 =
1202          my $novasig1 =          lookup(
1203                  lookup(                  sub { rec('C') },
1204                          sub { rec('C') },                  'ffiz','mapirano',
1205                          'ffan','mapirano',                  sub { rec('B') },
1206                          sub { rec('B') },                  sub { rec('990') }
                         sub { rec('990') }  
                 );  
         my $novasig2 =  
                 lookup(  
                         sub { rec('C') . ' ' . rec('D') },  
                         'ffan','starasig',  
                         sub { rec('A') },  
                         sub { rec('000') },  
                 );  
         marc('942','h',  
                 $novasig1  
1207          );          );
1208          marc('942','i',  my $novasig2 =
1209                  $novasig2          lookup(
1210                    sub { rec('C') . ' ' . rec('D') },
1211                    'ffiz','starasig',
1212                    sub { rec('A') },
1213                    sub { rec('000') },
1214          );          );
 }  
1215    
1216    marc('942','h',
1217            $novasig1
1218    );
1219    
1220    marc('942','i',
1221            $novasig2
1222    );
1223    
1224  if ( config() =~ m/ffsf|ffpo|fffi/ ) {  if ( config() =~ m/ffar/ ) {
1225          my $sig1 =          my $novasig1 =
1226                  lookup(                  lookup(
1227                          sub { rec('C') },                          sub { rec('E') },
1228                          'fffi','signature',                          'ffar','mapirano',
1229                          sub { rec('B') },                          sub { rec('A') },
1230                          sub { frec('990') },                          sub { rec('000') }
1231                  );                  );
1232          if ( rec('700','a') ) {          if ( $novasig1 ) {
1233                  marc('942','h',                  marc('942','h',
1234                          $sig1,                          $novasig1
1235                  );                  );
1236            } 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                  if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {                  if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1258                          marc('942','i',                          marc('942','i',
1259                                  join_with(' ',                                  join_with(' ',
# Line 1278  if ( config() =~ m/ffsf|ffpo|fffi/ ) { Line 1322  if ( config() =~ m/ffsf|ffpo|fffi/ ) {
1322                          );                          );
1323                  }                  }
1324          } elsif ( rec('710','a') ) {          } elsif ( rec('710','a') ) {
1325                  marc('942','h',  #               marc('942','h',
1326                          $sig1,  #                       $sig1,
1327                  );  #               );
1328                  if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {                  if ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1329                          marc('942','i',                          marc('942','i',
1330                                  join_with(' ',                                  join_with(' ',
# Line 1349  if ( config() =~ m/ffsf|ffpo|fffi/ ) { Line 1393  if ( config() =~ m/ffsf|ffpo|fffi/ ) {
1393                          );                          );
1394                  }                  }
1395          } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {          } elsif ( rec('200','a') =~ m/^(The|Die|Das|Der|Ein|Les) / ) {
1396                  marc('942','h',  #               marc('942','h',
1397                          $sig1,  #                       $sig1,
1398                  );  #               );
1399                  marc('942','i',                  marc('942','i',
1400                          regex('s/^.{4}(.{3}).*/$1/',                          regex('s/^.{4}(.{3}).*/$1/',
1401                                  uc ( rec('200','a') )                                  uc ( rec('200','a') )
# Line 1359  if ( config() =~ m/ffsf|ffpo|fffi/ ) { Line 1403  if ( config() =~ m/ffsf|ffpo|fffi/ ) {
1403                  );                  );
1404                                                    
1405          } else {          } else {
1406                  marc('942','h',  #               marc('942','h',
1407                          $sig1,  #                       $sig1,
1408                  );  #               );
1409                  marc('942','i',                  marc('942','i',
1410                          regex('s/(^\w{3}).*/$1/',                          regex('s/(^\w{3}).*/$1/',
1411                                  uc ( rec('200','a') )                                  uc ( rec('200','a') )
1412                          )                          )
1413                  )                  )
1414          }          }
1415  } # if config()  } # if config() za oznaku primjerka
1416    
1417  if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {  if ( ( rec('230') || rec('231') || rec('232') || rec('233') ) ) {
1418          warn "nema primjeraka";          warn "skupni zapis - nema primjeraka";
1419  } else {  } else {
1420          marc('952','8',          marc('952','8',
1421                  rec('991','8')                  rec('991','8')
# Line 1392  if ( ( rec('230') || rec('231') || rec(' Line 1436  if ( ( rec('230') || rec('231') || rec('
1436                  rec('991','y')                  rec('991','y')
1437          );          );
1438  }  }
1439    
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  } # polje 200a  } # polje 200a
1450  # } sig  # } sig

Legend:
Removed from v.1118  
changed lines
  Added in v.1119

  ViewVC Help
Powered by ViewVC 1.1.26