700 $4 and $a, repeatable
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 26 Jan 2014 15:35:12 +0000 (16:35 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 26 Jan 2014 15:35:12 +0000 (16:35 +0100)
conf/hpm/knjige.pl

index 0241a0b..17f6596 100644 (file)
@@ -542,16 +542,16 @@ marc('653','a',
 );
 
 
-#_debug(2);
-
 
 ### 700
 ## ako je u originalu ponovljivo polje treba bioti i konvertirano u ponovljivo !!
 ## ako ima samo podpolje a onda je pseudonim - nakon konverzije treba provjeriti
 
 if ( rec('701','a') ) {
-       marc_indicators('700', 1, ' ');
+       #_debug(3);
+       marc_indicators('701', 1, ' '); # override original indicators
        marc_original_order('700','701'); 
+       #_debug(0);
 }
 
 my $relcode = rec('702','4');
@@ -616,6 +616,7 @@ my $relcode_konv = {
         'predsjednik redakcijskog kolegija' => 'pbd',
         'prevoditelj' => 'trl',
         'prevoditeljica' => 'trl',
+        ' prevoditeljica' => 'trl',
         'prevoditeljica i redaktorica' => 'trl',
         'priprema fotografija' => 'oth',
         'priređivač' => 'edt',
@@ -652,14 +653,20 @@ my $relcode_konv = {
 
 if ( rec('702','a') ) {
        marc_indicators('700', 1, ' ');
-       marc('700','4',
-               $relcode_konv->{$relcode}
-       );
-       marc('700', 'a', 
-               rec('702','a'),
-       );
-}
 
+       foreach my $repeat ( rec_array('702') ) {
+               my $sf_a = $repeat->{a} || die "702 doesn't have a ", dump( $repeat );
+               if ( my $sf_4 = $repeat->{4} ) {
+                       my $relcode = $relcode_konv->{ $sf_4 } || die "no relcode_konv for ",dump( $sf_4 );
+                       marc_compose('700',
+                               '4' => $relcode,
+                               'a' => $sf_a,
+                       );
+               } else {
+                       marc('700', 'a', $sf_a );
+               }
+       }
+}
 
 #_debug(0);