local
[webpac2] / conf / normalize / mapping.pl
index 5bc195b..7242cea 100644 (file)
@@ -25,7 +25,7 @@ if ( rec('230') ) {
 
 # polje 035 je u NSK ponovljivo. za¹to ???
 
-# privemeno koristimo 0356 umjesto 0359
+# privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
 
 marc('035','6',
 join_with('',
@@ -45,7 +45,7 @@ join_with('',
 # u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
 
 marc('020','a',
-       rec('010')
+       rec('10')
 );
 
 # u polje 040a mo¾da jo¹ dodati prefiks HR
@@ -63,13 +63,19 @@ if (rec('300') && first(rec('300')) =~ m/prijevod/i) {
        marc_indicators('041', 1, ' ');
 } else {
        marc_indicators('041', 0, ' ');
-}
+};
 
 marc_repeatable_subfield('041','a',
        rec('101')
 );
 
-marc_indicators('245', 0, 0);
+# marc_indicators('245', 0, 0);
+
+if ( rec('700') ) {
+       marc_indicators('245', 1, 0);
+} else {
+       marc_indicators('245', 0, 0);
+};
 
 #_debug(3);
 
@@ -84,12 +90,21 @@ marc_compose('245',
                        rec('200','a')
        ),
        'h', rec('200','b'),
-       'b', rec('200','k'),
-       'b', rec('200','d'),
-       'b', rec('200','e'),
-       'c', rec('200','f'),
+       'b', 
+               join_with(' ; ',
+                       rec('200','k'),
+               ),
+       'b', rec('200','d'), 
+       'b', 
+               join_with(' : ',
+                       rec('200','e'),
+               ),
+       'c', 
+               join_with(' ; ',
+                       rec('200','f'),
+               ),
 # FIXME append to last subfield
-#      '+', prefix('. ', rec('200','c') ),
+       '+', prefix('. ', rec('200','c') ),
 );
 
 
@@ -120,19 +135,19 @@ marc('250','a',
 
 # FIXME ponovljiva potpolja u originalnom redosljedu
 # 
-# marc_original_order('260', '210');
-
-marc('260','a',
-       rec('210','a'),
-);
+marc_original_order('260', '210');
 
-marc('260','b',
-       rec('210','c'),
-);
+# marc('260','a',
+#      rec('210','a'),
+# );
+#
+# marc('260','b',
+#      rec('210','c'),
+# );
 
-marc('260','c',
-       rec('210','d'),
-);
+marc('260','c',
+#      rec('210','d'),
+);
 
 # marc_compose('260',
 #      'a', split_rec_on('210','a', qr/\s*;\s*/, 1),
@@ -255,7 +270,7 @@ marc('100','a',
        )
 );
 
-_debug(2);
+#_debug(2);
 
 marc_indicators('700', 1, ' ');
 
@@ -320,7 +335,7 @@ marc('700','a',
        )
 );
 
-_debug(0);
+#_debug(0);
 
 
 if ( rec('710','f') ) {
@@ -362,70 +377,93 @@ marc('110','c',
 
 
 marc_indicators('740', 0, ' ');
+
+if ( ! rec('464') ) {
 marc('740','a',
        rec('200','c')
 );
 
+marc('740','a',
+       rec('200','k')
+);
+
+} else {
+marc('740','a',
+       rec('464','a')
+);
+};
+
+
 
-# vi¹erazinci 
+## vi¹erazinci 
 
 if ( rec('230') ) {
 
        marc_duplicate();
+       
        marc_remove('245');
-
-       marc('245','a',
-               rec('230','a')
+       marc_compose('245',
+       'a', suffix(
+               rec('200','b') ? '. '   :
+               rec('200','k') ? ' ; '  :
+               rec('200','d') ? ' = '  :
+               rec('200','e') ? ' : '  :
+               rec('200','f') ? ' / '  :
+                                '.',
+                       rec('230','a')
+       ),
+       'b', 
+               join_with(' ; ',
+                       rec('230','k'),
+               ),
+       'b', rec('230','d'), 
+       'b', 
+               join_with(' : ',
+                       rec('230','e'),
+               ),
+       'c', 
+               join_with(' ; ',
+                       rec('230','f'),
+               ),
        );
 
-       if ( ! rec('230','a') ) {
-
-               marc('245','a',
-                       rec('200','a')
-               );
-       }
-
-       marc('245','b',
-               rec('230','e')
+       marc_remove('260');
+       marc('260','c',
+               rec('250')
        );
 
-       marc('245','c',
-               rec('230','f')
+       marc_remove('300');
+       marc('300','a',
+               rec('260')
        );
 
-       marc('245','n',
-               rec('230','v')
+       marc_remove('490');
+       marc('490','a',
+               rec('270')
        );
 
-}
-
-if ( rec('231') ) {
-
-       marc_duplicate();
-       marc_remove('245');
-
-       marc('245','a',
-               rec('231','a')
+       marc_remove('500');
+       marc('500','a',
+               rec('280')
        );
 
-       if ( ! rec('231','a') ) {
-
-               marc('245','a',
-                       rec('200','a')
-               );
-       }
-
-       marc('245','b',
-               rec('231','e')
+       marc_remove('020');
+       marc('020','a',
+               rec('290')
        );
 
-       marc('245','c',
-               rec('231','f')
+       marc_indicators('774', 0, ' ');
+       marc('774','6',
+               join_with('',
+                       config(),
+                       rec('000')
+               )
        );
 
-       marc('245','n',
-               rec('231','v')
+       marc('774','g',
+               rec('230','v')
        );
+};
 
 }
-}