if ( rec('200','a') ) {
-# Leader
-# raspraviti 17,18
-
-# u nekim knji¾nicama koristi se 999a i 999b
+# LEADER
+# raspraviti 17,18
-# vrijedi za ffan...
+marc_leader('05','n');
+marc_leader('06','a');
-if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {
- marc_leader('05','c');
+if ( rec('225','a') ) {
+ marc_leader('07','b');
} else {
- marc_leader('05','n');
+ marc_leader('07','s');
}
- marc_leader('06','a');
- marc_leader('07','s');
- marc_leader('18','i');
+marc_leader('18','i');
+if ( rec('225','a') ) {
marc_leader('19','r');
-
+}
# 001 polje - Voyager
+# 007
+marc_fixed('007',00,'ta');
+
+
+## 008
+marc_fixed('008','00', '070707');
+marc_fixed('008','06', '|'); # Type of date/Publication status
+marc_fixed('008','07', '|'); # Date 1
+marc_fixed('008','08', '|');
+marc_fixed('008','09', '|');
+marc_fixed('008','10', '|');
+marc_fixed('008','11', '|'); # Date 2
+marc_fixed('008','12', '|');
+marc_fixed('008','13', '|');
+marc_fixed('008','14', '|');
+marc_fixed('008','15', # Place of publication, production, or execution
+ lookup(
+ sub { rec('102','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ ),
+);
+marc_fixed('008','18', '');
+marc_fixed('008','35', # Language
+ rec('101')
+);
+marc_fixed('008','39','|'); # Cataloging source
+
+## 022
+
+if ( ! rec('225','a') ) {
+ marc('022','a',
+ rec('11')
+ );
+}
+
# privemeno koristimo 0356 umjesto 0359, zato ¹to marclint 9 prijavljuje kao gre¹ku
marc('035','6',
-join_with('',
-# config('input normalize path'),
-# config('name'),
- config(),
- 'L',
-# config('input name'),
-# id(),
-# rec('994','a'),
+ join_with('',
+ uc( config() ),
+ ' P',
rec('000')
)
);
# u FFSF bazama postoji nekoliko zaredanih ISBN, odvojenih s '. - '
-marc('020','a',
- rec('10')
-);
-
-marc('022','a',
- rec('11')
-);
# u polje 040a mo¾da jo¹ dodati prefiks HR
# NSK ima HR NSB (mo¾da u novijim zapisima ima NSK?)
#_debug(3);
+marc('044','a',
+ lookup(
+ sub { rec('102','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ ),
+);
+
+marc('080','a',
+ rec('675','a')
+);
+
+marc_indicators('100', 1, ' ');
+marc('100','a',
+ join_with(', ',
+ rec('700', 'a'),
+ rec('700', 'b')
+ )
+);
+
+marc_indicators('110', 2, ' ');
+marc('110','a',
+ rec('710','a')
+);
+
+marc('110','c',
+ rec('710','c')
+);
+
+marc('222','a',
+ lookup(
+ sub { rec('530','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ )
+);
+
+### 245 indikatori
+
marc_compose('245',
'a', suffix(
- rec('200','b') ? '. ' :
- rec('200','k') ? ' ; ' :
- rec('200','d') ? ' = ' :
- rec('200','e') ? ' : ' :
- rec('200','f') ? ' / ' :
- '.',
- rec('200','a')
+ ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' / ' :
+ ( rec('200','d') ) ? ' = ' :
+ ( rec('200','e') ) ? ' : ' :
+ ( rec('200','k') ) ? ' ; ' :
+ '',
+ rec('200','a'),
),
- 'h', rec('200','b'),
'b', suffix(
- ( rec('200','k') && rec('200','f') ) ? ' / ' :
- ' ',
- join_with(' ; ',
- rec('200','k'),
- ),
+ ( rec('200','d') && rec('200','f') ) ? ' / ' :
+ ( rec('200','d') && rec('200','c') ) ? '. ' :
+ '',
+ rec('200','d'),
),
'b', suffix(
- ( rec('200','d') && rec('200','f') ) ? ' / ' :
- ' ',
- rec('200','d'),
+ ( rec('200','e') && rec('200','f') ) ? ' / ' :
+ ( rec('200','e') && rec('200','c') ) ? '. ' :
+ '',
+ rec('200','e'),
),
'b', suffix(
- ( rec('200','e') && rec('200','f') ) ? ' / ' :
- ' ',
- join_with(' : ',
- rec('200','e'),
- ),
+ ( rec('200','k') && rec('200','f') ) ? ' / ' :
+ ( rec('200','k') && rec('200','c') ) ? '. ' :
+ '',
+ rec('200','k'),
),
-
-# ovo trenutno radi za sluèaj kad f nije ponovljivo i kad uvijek postoje c i f u paru !!!
- 'c', join_with('. ',
- rec('200','f'),
- rec('200','c'),
+ 'c', suffix(
+ ( rec('200','f') && rec('200','c') ) ? '. ' :
+ '',
+ rec('200','f'),
),
-# FIXME append to last subfield
-# '+', prefix('. ', rec('200','c') ),
-
+ '+', rec('200','c'),
);
+## 246
+
+marc_indicators('246', 1, 3);
+
+marc('246','a',
+ rec('532')
+);
#_debug(0);
rec('215','e')
);
-
-# provjeriti
-
-marc_indicators('490', 0, ' ');
-
-marc('490','a',
- rec('225','a')
+marc('310','a',
+ lookup(
+ sub { rec('326','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ )
+);
+
+marc('321','a',
+ rec('326')
);
-marc('490','v',
- join_with(', ',
- rec('225','v'),
- rec('225','w')
+marc_indicators('362', 0, ' ');
+
+marc('362','a',
+ lookup(
+ sub { rec('207','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
),
);
-marc('490','x',
- rec('225','x')
-);
-#marc('490','a',
-# join_with(' : ',
-# rec('225','a'),
-# join_with(" = ",
-# rec('225','d'),
-# join_with(" / ",
-# rec('225','e'),
-# rec('225','f')
-# )
-# )
-# )
-#);
+marc('500','a',
+ lookup(
+ sub { rec('300','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ )
+);
+
+marc('500','a',
+ lookup(
+ sub { rec('302','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ )
+);
+
+marc('504','a',
+ lookup(
+ sub { rec('320','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ )
+);
-#marc('490','v',
-# join2_with(225, 'v', ' , ', 225,'w');
-# join_with(', ',
-# rec('225','v'),
-# rec('225','w')
-# )
-#);
+marc('562','a',
+ lookup(
+ sub { rec('316','a') },
+ 'nsk','bbaza',
+ sub { rec('011','a') },
+ sub { rec('11') },
+ )
+);
+
#marc('500','a',
# rec('300')
# mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
-marc_indicators('246', 1, 3);
-marc('246','a',
- rec('532')
+
+### 534
+
+marc('534','a',
+ rec('324')
);
+
marc_indicators('655', ' ', 4);
marc('655','a',
rec('608')
# 675 podpolja c, d ... - ¹to s njima ???
-marc('080','a',
- rec('675','a')
-);
-
# 084 je other classification (R)
# NSK ga koristi za struènu oznaku NSK iz polja 681
# NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
#
-# polje 686 koristi FFPS
-marc('084','a',
- rec('686')
-);
-marc_indicators('100', 1, ' ');
-marc('100','a',
- join_with(', ',
- rec('700', 'a'),
- rec('700', 'b')
- )
-);
#_debug(2);
#_debug(0);
-if ( rec('710','f') ) {
-
-marc_indicators('111', 2, ' ');
-marc('111','a',
- rec('710','a')
-);
-
-marc('111','c',
- rec('710','e')
-);
-
-marc('111','d',
- rec('710','f')
-);
-
-marc('111','e',
- rec('710','b')
-);
-
-marc('111','n',
- rec('710','d')
-);
-
-
-} else {
-
-marc_indicators('110', 2, ' ');
-marc('110','a',
- rec('710','a')
-);
-
-marc('110','c',
- rec('710','c')
-);
-
-};
-
marc_indicators('740', 0, ' ');
);
};
-marc('500','a',
- lookup(
- sub { rec('304','a') },
- 'nsk','baza',
- sub { rec('200','a') },
- )
+marc_indicators('770', 0, ' ');
+marc('770','t',
+ rec('430','a'),
);
-marc('500','a',
- lookup(
- sub { rec('306','a') },
- 'nsk','baza',
- sub { rec('200','a') },
- )
+marc('770','x',
+ rec('430','b'),
);
-marc('500','a',
- lookup(
- sub { rec('314','a') },
- 'nsk','baza',
- sub { rec('200','a') },
- )
+if ( rec('225','a') ) {
+
+marc_indicators('773', 0, ' ');
+marc('773','g',
+ rec('207','a')
);
-marc('500','a',
- lookup(
- sub { rec('316','a') },
- 'nsk','baza',
- sub { rec('200','a') },
- )
+marc('773','t',
+ join_with(' : ',
+ rec('225','a'),
+ rec('225','e')
+ ),
);
-marc('504','a',
+marc('773','w',
lookup(
- sub { rec('320','a') },
- 'nsk','baza',
+ sub {
+ join_with('',
+ uc( config() ),
+ ' P',
+ rec('000')
+ ),
+ },
+ 'ffsf','peri',
sub { rec('200','a') },
- )
+ sub { rec('225','a') },
+ )
);
-marc('900','a',
- sort(
- lookup(
- sub { rec('000') },
- 'ffps','peri',
- sub { rec('200','a') },
- )
+}
+
+marc('852','j',
+ join_with(' ',
+ rec('990')
+ )
+);
+
+marc('876','a',
+ rec('991','a')
+);
+
+marc('992','a',
+ join_with(' ; ',
+ rec('992')
)
);
+
+
+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') },
+ )
+ )
+);
+
}