15 my $userid=$ENV{'REMOTE_USER'};
17 '001' => 'Control number',
18 '003' => 'Control number identifier',
19 '005' => 'Date and time of latest transaction',
20 '006' => 'Fixed-length data elements -- additional material characteristics',
21 '007' => 'Physical description fixed field',
22 '008' => 'Fixed length data elements',
27 '037' => 'Source of acquisition',
28 '040' => 'Cataloging source',
29 '041' => 'Language code',
30 '043' => 'Geographic area code',
31 '050' => 'Library of Congress call number',
32 '060' => 'National Library of Medicine call number',
33 '082' => 'Dewey decimal call number',
34 '100' => 'Main entry -- Personal name',
35 '110' => 'Main entry -- Corporate name',
36 '130' => 'Main entry -- Uniform title',
37 '240' => 'Uniform title',
38 '245' => 'Title statement',
39 '246' => 'Varying form of title',
40 '250' => 'Edition statement',
41 '256' => 'Computer file characteristics',
42 '260' => 'Publication, distribution, etc.',
43 '263' => 'Projected publication date',
44 '300' => 'Physical description',
45 '306' => 'Playing time',
46 '440' => 'Series statement / Added entry -- Title',
47 '490' => 'Series statement',
48 '500' => 'General note',
49 '504' => 'Bibliography, etc. note',
50 '505' => 'Formatted contents note',
51 '508' => 'Creation/production credits note',
52 '510' => 'Citation/references note',
53 '511' => 'Participant or performer note',
54 '520' => 'Summary, etc. note',
55 '521' => 'Target audience note (ie age)',
56 '530' => 'Additional physical form available note',
57 '538' => 'System details note',
58 '586' => 'Awards note',
59 '600' => 'Subject added entry -- Personal name',
60 '610' => 'Subject added entry -- Corporate name',
61 '650' => 'Subject added entry -- Topical term',
62 '651' => 'Subject added entry -- Geographic name',
63 '656' => 'Index term -- Occupation',
64 '700' => 'Added entry -- Personal name',
65 '710' => 'Added entry -- Corporate name',
66 '730' => 'Added entry -- Uniform title',
67 '740' => 'Added entry -- Uncontrolled related/analytical title',
68 '800' => 'Series added entry -- Personal name',
69 '830' => 'Series added entry -- Uniform title',
71 '856' => 'Electronic location and access',
80 print startmenu('acquisitions');
81 my $file=$input->param('file');
83 if ($input->param('insertnewrecord')) {
84 my $isbn=$input->param('isbn');
85 my $issn=$input->param('issn');
86 my $lccn=$input->param('lccn');
87 my $q_origisbn=$dbh->quote($input->param('origisbn'));
88 my $q_origissn=$dbh->quote($input->param('origissn'));
89 my $q_origlccn=$dbh->quote($input->param('origlccn'));
90 my $q_origcontrolnumber=$dbh->quote($input->param('origcontrolnumber'));
91 my $q_isbn=$dbh->quote((($isbn) || ('NIL')));
92 my $q_issn=$dbh->quote((($issn) || ('NIL')));
93 my $q_lccn=$dbh->quote((($lccn) || ('NIL')));
94 $sth=$dbh->prepare("insert into marcrecorddone values ($q_origisbn, $q_origissn, $q_origlccn, $q_origcontrolnumber)");
96 my $sth=$dbh->prepare("select biblionumber,biblioitemnumber from biblioitems where issn=$q_issn or isbn=$q_isbn or lccn=$q_lccn");
99 my $biblioitemnumber=0;
101 print "<a href=marcimport.pl?file=$file>New Record</a> | <a href=marcimport.pl>New File</a><br>\n";
103 ($biblionumber, $biblioitemnumber) = $sth->fetchrow;
104 my $title=$input->param('title');
106 <table border=0 width=50% cellpadding=10 cellspacing=0>
107 <tr><th bgcolor=black><font color=white>Record already in database</font></th></tr>
108 <tr><td bgcolor=#dddddd>$title is already in the database with biblionumber $biblionumber and biblioitemnumber $biblioitemnumber</td></tr>
113 my $q_title=$dbh->quote($input->param('title'));
114 my $q_subtitle=$dbh->quote($input->param('subtitle'));
115 my $q_author=$dbh->quote($input->param('author'));
116 my $q_copyrightdate=$dbh->quote($input->param('copyrightdate'));
117 my $q_seriestitle=$dbh->quote($input->param('seriestitle'));
118 $sth=$dbh->prepare("select biblionumber from biblio where title=$q_title and author=$q_author and copyrightdate=$q_copyrightdate and seriestitle=$q_seriestitle");
121 ($biblionumber) = $sth->fetchrow;
123 $sth=$dbh->prepare("select max(biblionumber) from biblio");
125 ($biblionumber) = $sth->fetchrow;
127 $sth=$dbh->prepare("insert into biblio (biblionumber, title, author, copyrightdate, seriestitle) values ($biblionumber, $q_title, $q_author, $q_copyrightdate, $q_seriestitle)");
129 $sth=$dbh->prepare("insert into bibliosubtitle (biblionumber,subtitle) values ($biblionumber, $q_subtitle)");
132 $sth=$dbh->prepare("select max(biblioitemnumber) from biblioitems");
134 ($biblioitemnumber) = $sth->fetchrow;
136 my $q_isbn=$dbh->quote($isbn);
137 my $q_issn=$dbh->quote($issn);
138 my $q_lccn=$dbh->quote($lccn);
139 my $q_volume=$dbh->quote($input->param('volume'));
140 my $q_number=$dbh->quote($input->param('number'));
141 my $q_itemtype=$dbh->quote($input->param('itemtype'));
142 my $q_dewey=$dbh->quote($input->param('dewey'));
143 my $q_subclass=$dbh->quote($input->param('subclass'));
144 my $q_publicationyear=$dbh->quote($input->param('publicationyear'));
145 my $q_publishercode=$dbh->quote($input->param('publishercode'));
146 my $q_volumedate=$dbh->quote($input->param('volumedate'));
147 my $q_volumeddesc=$dbh->quote($input->param('volumeddesc'));
148 my $q_illus=$dbh->quote($input->param('illustrator'));
149 my $q_pages=$dbh->quote($input->param('pages'));
150 my $q_notes=$dbh->quote($input->param('note'));
151 my $q_size=$dbh->quote($input->param('size'));
152 my $q_place=$dbh->quote($input->param('place'));
153 my $q_marc=$dbh->quote($input->param('marc'));
155 $sth=$dbh->prepare("insert into biblioitems (biblioitemnumber, biblionumber, volume, number, itemtype, isbn, issn, dewey, subclass, publicationyear, publishercode, volumedate, volumeddesc, illus, pages, notes, size, place, lccn, marc) values ($biblioitemnumber, $biblionumber, $q_volume, $q_number, $q_itemtype, $q_isbn, $q_issn, $q_dewey, $q_subclass, $q_publicationyear, $q_publishercode, $q_volumedate, $q_volumeddesc, $q_illus, $q_pages, $q_notes, $q_size, $q_place, $q_lccn, $q_marc)");
157 my $subjectheadings=$input->param('subject');
158 my $additionalauthors=$input->param('additionalauthors');
159 my @subjectheadings=split(/\n/,$subjectheadings);
161 foreach $subjectheading (@subjectheadings) {
162 # remove any line ending characters (Ctrl-J or M)
163 $subjectheading=~s/\013//g;
164 $subjectheading=~s/\010//g;
165 # convert to upper case
166 $subjectheading=uc($subjectheading);
167 chomp ($subjectheading);
168 while (ord(substr($subjectheading, length($subjectheading)-1, 1))<14) {
169 chop $subjectheading;
172 my $q_subjectheading=$dbh->quote($subjectheading);
173 $sth=$dbh->prepare("insert into bibliosubject (biblionumber,subject)
174 values ($biblionumber, $q_subjectheading)");
177 my @additionalauthors=split(/\n/,$additionalauthors);
178 my $additionalauthor;
179 foreach $additionalauthor (@additionalauthors) {
180 # remove any line ending characters (Ctrl-L or Ctrl-M)
181 $additionalauthor=~s/\013//g;
182 $additionalauthor=~s/\010//g;
183 # convert to upper case
184 $additionalauthor=uc($additionalauthor);
186 my $q_additionalauthor=$dbh->quote($additionalauthor);
187 $sth=$dbh->prepare("insert into additionalauthors (biblionumber,author) values ($biblionumber, $q_additionalauthor)");
191 my $title=$input->param('title');
193 <table cellpadding=10 cellspacing=0 border=0 width=50%>
194 <tr><th bgcolor=black><font color=white>Record entered into database</font></th></tr>
195 <tr><td bgcolor=#dddddd>$title has been entered into the database with biblionumber
196 $biblionumber and biblioitemnumber $biblioitemnumber</td></tr>
200 my $title=$input->param('title');
201 $sth=$dbh->prepare("select max(barcode) from items");
203 my ($barcode) = $sth->fetchrow;
206 <table border=0 cellpadding=10 cellspacing=0>
207 <tr><th bgcolor=black><font color=white>
208 Add a New Item for $title
211 <tr><td bgcolor=#dddddd>
213 <input type=hidden name=newitem value=1>
214 <input type=hidden name=biblionumber value=$biblionumber>
215 <input type=hidden name=biblioitemnumber value=$biblioitemnumber>
216 <input type=hidden name=file value=$file>
218 <tr><td>BARCODE</td><td><input name=barcode size=10 value=$barcode> Home Branch: <select name=homebranch><option value='STWE'>Stewart Elementary<option value='MEZ'>Meziadin Elementary</select></td></tr>
219 </tr><td>Replacement Price:</td><td><input name=replacementprice size=10></td></tr>
220 <tr><td>Notes</td><td><textarea name=notes rows=4 cols=40
221 wrap=physical></textarea></td></tr>
226 <input type=submit value="Add Item">
235 if ($input->param('newitem')) {
236 my $barcode=$input->param('barcode');
237 my $q_barcode=$dbh->quote($barcode);
238 my $q_notes=$dbh->quote($input->param('notes'));
239 my $q_homebranch=$dbh->quote($input->param('homebranch'));
240 my $biblionumber=$input->param('biblionumber');
241 my $biblioitemnumber=$input->param('biblioitemnumber');
242 my $replacementprice=($input->param('replacementprice') || 0);
243 my $sth=$dbh->prepare("select max(itemnumber) from items");
245 my ($itemnumber) = $sth->fetchrow;
247 my @datearr=localtime(time);
248 my $date=(1900+$datearr[5])."-".($datearr[4]+1)."-".$datearr[3];
249 $sth=$dbh->prepare("insert into items (itemnumber, biblionumber, biblioitemnumber, barcode, itemnotes, homebranch, holdingbranch, dateaccessioned, replacementprice) values ($itemnumber, $biblionumber, $biblioitemnumber, $q_barcode, $q_notes, $q_homebranch, 'STWE', '$date', $replacementprice)");
255 my $qisbn=$input->param('isbn');
256 my $qissn=$input->param('issn');
257 my $qlccn=$input->param('lccn');
258 my $qcontrolnumber=$input->param('controlnumber');
259 if ($qisbn || $qissn || $qlccn || $qcontrolnumber) {
260 print "<a href=marcimport.pl>New File</a><hr>\n";
266 foreach $record (split(/$splitchar/, $data)) {
267 my $marctext="<table border=0 cellspacing=0>\n";
268 $marctext.="<tr><th colspan=3 bgcolor=black><font color=white>MARC RECORD</font></th></tr>\n";
269 $leader=substr($record,0,24);
270 $marctext.="<tr><td>Leader:</td><td colspan=2>$leader</td></tr>\n";
271 $record=substr($record,24);
277 foreach $field (split(/$splitchar2/, $record)) {
279 ($color eq $lc1) ? ($color=$lc2) : ($color=$lc1);
280 unless ($directory) {
284 while ($item=substr($directory,0,12)) {
285 $tag=substr($directory,0,3);
286 $length=substr($directory,3,4);
287 $start=substr($directory,7,6);
288 $directory=substr($directory,12);
295 $tag=$tag{$tagcounter};
298 $marctext.="<tr><td bgcolor=$color valign=top>$tagtext{$tag}</td><td bgcolor=$color valign=top>$tag</td>";
300 my @subfields=split(/$splitchar3/, $field);
301 $indicator=$subfields[0];
302 $field{'indicator'}=$indicator;
304 if ($#subfields==0) {
305 $marctext.="<td bgcolor=$color valign=top>$indicator</td></tr>";
308 $marctext.="<td bgcolor=$color valign=top><table border=0 cellspacing=0>\n";
310 for ($i=1; $i<=$#subfields; $i++) {
311 ($color2 eq $lc1) ? ($color2=$lc2) : ($color2=$lc1);
312 my $text=$subfields[$i];
313 my $subfieldcode=substr($text,0,1);
314 my $subfield=substr($text,1);
315 $marctext.="<tr><td colour=$color2><table border=0 cellpadding=0 cellspacing=0><tr><td>$subfieldcode </td></tr></table></td><td colour=$color2>$subfield</td></tr>\n";
316 if ($subfields{$subfieldcode}) {
317 my $subfieldlist=$subfields{$subfieldcode};
318 my @subfieldlist=@$subfieldlist;
319 if ($#subfieldlist>=0) {
320 push (@subfieldlist, $subfield);
322 @subfieldlist=($subfields{$subfieldcode}, $subfield);
324 $subfields{$subfieldcode}=\@subfieldlist;
326 $subfields{$subfieldcode}=$subfield;
329 $marctext.="</table></td></tr>\n";
330 $field{'subfields'}=\%subfields;
332 push (@record, \%field);
334 $marctext.="</table>\n";
335 $marctext{\@record}=$marctext;
336 $marc{\@record}=$record;
337 push (@records, \@record);
341 foreach $record (@records) {
342 my ($lccn, $isbn, $issn, $dewey, $author, $title, $place, $publisher, $publicationyear, $volume, $number, @subjects, $note, $additionalauthors, $illustrator, $copyrightdate, $seriestitle);
343 my $marctext=$marctext{$record};
344 my $marc=$marc{$record};
345 foreach $field (@$record) {
346 if ($field->{'tag'} eq '001') {
347 $controlnumber=$field->{'indicator'};
349 if ($field->{'tag'} eq '010') {
350 $lccn=$field->{'subfields'}->{'a'};
352 ($lccn) = (split(/\s+/, $lccn))[0];
354 if ($field->{'tag'} eq '015') {
355 $lccn=$field->{'subfields'}->{'a'};
358 ($lccn) = (split(/\s+/, $lccn))[0];
360 if ($field->{'tag'} eq '020') {
361 $isbn=$field->{'subfields'}->{'a'};
362 ($isbn=~/^ARRAY/) && ($isbn=$$isbn[0]);
365 if ($field->{'tag'} eq '022') {
366 $issn=$field->{'subfields'}->{'a'};
368 ($issn) = (split(/\s+/, $issn))[0];
370 if ($field->{'tag'} eq '082') {
371 $dewey=$field->{'subfields'}->{'a'};
378 if ($field->{'tag'} eq '100') {
379 $author=$field->{'subfields'}->{'a'};
381 if ($field->{'tag'} eq '245') {
382 $title=$field->{'subfields'}->{'a'};
384 $subtitle=$field->{'subfields'}->{'b'};
387 if ($field->{'tag'} eq '260') {
388 $place=$field->{'subfields'}->{'a'};
393 $publisher=$field->{'subfields'}->{'b'};
395 $publisher=$$publisher[0];
397 $publisher=~s/\s*:$//g;
398 $publicationyear=$field->{'subfields'}->{'c'};
399 if ($publicationyear=~/c(\d\d\d\d)/) {
402 if ($publicationyear=~/[^c](\d\d\d\d)/) {
404 } elsif ($copyrightdate) {
405 $publicationyear=$copyrightdate;
407 $publicationyear=~/(\d\d\d\d)/;
411 if ($field->{'tag'} eq '300') {
412 $pages=$field->{'subfields'}->{'a'};
414 $size=$field->{'subfields'}->{'c'};
418 if ($field->{'tag'} eq '362') {
419 if ($field->{'subfields'}->{'a'}=~/(\d+).*(\d+)/) {
424 if ($field->{'tag'} eq '440') {
425 $seriestitle=$field->{'subfields'}->{'a'};
426 if ($field->{'subfields'}->{'v'}=~/(\d+).*(\d+)/) {
431 if ($field->{'tag'} eq '700') {
432 my $name=$field->{'subfields'}->{'a'};
433 if ($field->{'subfields'}->{'c'}=~/ill/) {
434 $additionalauthors.="$name\n";
439 if ($field->{'tag'} =~/^5/) {
440 $note.="$field->{'subfields'}->{'a'}\n";
442 if ($field->{'tag'} =~/65\d/) {
443 my $subject=$field->{'subfields'}->{'a'};
445 if ($gensubdivision=$field->{'subfields'}->{'x'}) {
446 my @sub=@$gensubdivision;
453 $gensubdivision=~s/\.$//;
454 $subject.=" -- $gensubdivision";
457 if ($chronsubdivision=$field->{'subfields'}->{'y'}) {
458 my @sub=@$chronsubdivision;
465 $chronsubdivision=~s/\.$//;
466 $subject.=" -- $chronsubdivision";
469 if ($geosubdivision=$field->{'subfields'}->{'z'}) {
470 my @sub=@$geosubdivision;
477 $geosubdivision=~s/\.$//;
478 $subject.=" -- $geosubdivision";
481 push @subjects, $subject;
484 $titleinput=$input->textfield(-name=>'title', -default=>$title, -size=>40);
485 $marcinput=$input->hidden(-name=>'marc', -default=>$marc);
486 $subtitleinput=$input->textfield(-name=>'subtitle', -default=>$subtitle, -size=>40);
487 $authorinput=$input->textfield(-name=>'author', -default=>$author);
488 $illustratorinput=$input->textfield(-name=>'illustrator', -default=>$illustrator);
489 $additionalauthorsinput=$input->textarea(-name=>'additionalauthors', -default=>$additionalauthors, -rows=>4, -cols=>20);
491 foreach (@subjects) {
494 $subjectinput=$input->textarea(-name=>'subject', -default=>$subject, -rows=>4, -cols=>40);
495 $noteinput=$input->textarea(-name=>'note', -default=>$note, -rows=>4, -cols=>40, -wrap=>'physical');
496 $copyrightinput=$input->textfield(-name=>'copyrightdate', -default=>$copyrightdate);
497 $seriestitleinput=$input->textfield(-name=>'seriestitle', -default=>$seriestitle);
498 $volumeinput=$input->textfield(-name=>'volume', -default=>$volume);
499 $volumedateinput=$input->textfield(-name=>'volumedate', -default=>$volumedate);
500 $volumeddescinput=$input->textfield(-name=>'volumeddesc', -default=>$volumeddesc);
501 $numberinput=$input->textfield(-name=>'number', -default=>$number);
502 $isbninput=$input->textfield(-name=>'isbn', -default=>$isbn);
503 $issninput=$input->textfield(-name=>'issn', -default=>$issn);
504 $lccninput=$input->textfield(-name=>'lccn', -default=>$lccn);
505 $isbninput=$input->textfield(-name=>'isbn', -default=>$isbn);
506 $deweyinput=$input->textfield(-name=>'dewey', -default=>$dewey);
507 $cleanauthor=$author;
508 $cleanauthor=~s/[^A-Za-z]//g;
509 $subclassinput=$input->textfield(-name=>'subclass', -default=>uc(substr($cleanauthor,0,3)));
510 $publisherinput=$input->textfield(-name=>'publishercode', -default=>$publisher);
511 $pubyearinput=$input->textfield(-name=>'publicationyear', -default=>$publicationyear);
512 $placeinput=$input->textfield(-name=>'place', -default=>$place);
513 $pagesinput=$input->textfield(-name=>'pages', -default=>$pages);
514 $sizeinput=$input->textfield(-name=>'size', -default=>$size);
515 $fileinput=$input->hidden(-name=>'file', -default=>$file);
516 $origisbn=$input->hidden(-name=>'origisbn', -default=>$isbn);
517 $origissn=$input->hidden(-name=>'origissn', -default=>$issn);
518 $origlccn=$input->hidden(-name=>'origlccn', -default=>$lccn);
519 $origcontrolnumber=$input->hidden(-name=>'origcontrolnumber', -default=>$controlnumber);
521 my $itemtypeselect='';
522 $sth=$dbh->prepare("select itemtype,description from itemtypes");
524 while (my ($itemtype, $description) = $sth->fetchrow) {
525 $itemtypeselect.="<option value=$itemtype>$itemtype - $description\n";
527 ($qissn) || ($qissn='NIL');
528 ($qlccn) || ($qlccn='NIL');
529 ($qisbn) || ($qisbn='NIL');
530 ($qcontrolnumber) || ($qcontrolnumber='NIL');
531 unless (($isbn eq $qisbn) || ($issn eq $qissn) || ($lccn eq $qlccn) || ($controlnumber eq $qcontrolnumber)) {
538 Full MARC Record available at bottom
541 <tr><td>Title</td><td>$titleinput</td></tr>
542 <tr><td>Subtitle</td><td>$subtitleinput</td></tr>
543 <tr><td>Author</td><td>$authorinput</td></tr>
544 <tr><td>Additional Authors</td><td>$additionalauthorsinput</td></tr>
545 <tr><td>Illustrator</td><td>$illustratorinput</td></tr>
546 <tr><td>Copyright</td><td>$copyrightinput</td></tr>
547 <tr><td>Series Title</td><td>$seriestitleinput</td></tr>
548 <tr><td>Volume</td><td>$volumeinput</td></tr>
549 <tr><td>Number</td><td>$numberinput</td></tr>
550 <tr><td>Volume Date</td><td>$volumedateinput</td></tr>
551 <tr><td>Volume Description</td><td>$volumeddescinput</td></tr>
552 <tr><td>Subject</td><td>$subjectinput</td></tr>
553 <tr><td>Notes</td><td>$noteinput</td></tr>
554 <tr><td>Item Type</td><td><select name=itemtype>$itemtypeselect</select></td></tr>
555 <tr><td>ISBN</td><td>$isbninput</td></tr>
556 <tr><td>ISSN</td><td>$issninput</td></tr>
557 <tr><td>LCCN</td><td>$lccninput</td></tr>
558 <tr><td>Dewey</td><td>$deweyinput</td></tr>
559 <tr><td>Subclass</td><td>$subclassinput</td></tr>
560 <tr><td>Publication Year</td><td>$pubyearinput</td></tr>
561 <tr><td>Publisher</td><td>$publisherinput</td></tr>
562 <tr><td>Place</td><td>$placeinput</td></tr>
563 <tr><td>Pages</td><td>$pagesinput</td></tr>
564 <tr><td>Size</td><td>$sizeinput</td></tr>
567 <input type=hidden name=insertnewrecord value=1>
584 foreach $record (split(/$splitchar/, $data)) {
585 $leader=substr($record,0,24);
586 #print "<tr><td>Leader:</td><td>$leader</td></tr>\n";
587 $record=substr($record,24);
593 foreach $field (split(/$splitchar2/, $record)) {
595 ($color eq $lc1) ? ($color=$lc2) : ($color=$lc1);
596 unless ($directory) {
600 while ($item=substr($directory,0,12)) {
601 $tag=substr($directory,0,3);
602 $length=substr($directory,3,4);
603 $start=substr($directory,7,6);
604 $directory=substr($directory,12);
611 $tag=$tag{$tagcounter};
615 my @subfields=split(/$splitchar3/, $field);
616 $indicator=$subfields[0];
617 $field{'indicator'}=$indicator;
619 unless ($#subfields==0) {
621 for ($i=1; $i<=$#subfields; $i++) {
622 my $text=$subfields[$i];
623 my $subfieldcode=substr($text,0,1);
624 my $subfield=substr($text,1);
625 if ($subfields{$subfieldcode}) {
626 my $subfieldlist=$subfields{$subfieldcode};
627 my @subfieldlist=@$subfieldlist;
628 if ($#subfieldlist>=0) {
629 # print "$tag Adding to array $subfieldcode -- $subfield<br>\n";
630 push (@subfieldlist, $subfield);
632 # print "$tag Arraying $subfieldcode -- $subfield<br>\n";
633 @subfieldlist=($subfields{$subfieldcode}, $subfield);
635 $subfields{$subfieldcode}=\@subfieldlist;
637 $subfields{$subfieldcode}=$subfield;
640 $field{'subfields'}=\%subfields;
642 push (@record, \%field);
644 push (@records, \@record);
650 <a href=marcimport.pl>Select a New File</a>
652 <table border=0 cellpadding=10 cellspacing=0>
653 <tr><th bgcolor=black><font color=white>Select a Record to Import</font></th></tr>
654 <tr><td bgcolor=#dddddd>
657 foreach $record (@records) {
659 my ($lccn, $isbn, $issn, $dewey, $author, $title, $place, $publisher, $publicationyear, $volume, $number, @subjects, $note, $controlnumber);
660 foreach $field (@$record) {
661 $text.=$field->{'tag'}."\n";
662 foreach (keys %{$field->{'subfields'}}) {
663 my $value=$field->{'subfields'}->{$_};
664 $text.=" $_: $value\n";
666 if ($field->{'tag'} eq '001') {
667 $controlnumber=$field->{'indicator'};
669 if ($field->{'tag'} eq '010') {
670 $lccn=$field->{'subfields'}->{'a'};
672 ($lccn) = (split(/\s+/, $lccn))[0];
674 if ($field->{'tag'} eq '015') {
675 $lccn=$field->{'subfields'}->{'a'};
678 ($lccn) = (split(/\s+/, $lccn))[0];
680 if ($field->{'tag'} eq '020') {
681 $isbn=$field->{'subfields'}->{'a'};
682 ($isbn=~/ARRAY/) && ($isbn=$$isbn[0]);
685 if ($field->{'tag'} eq '022') {
686 $issn=$field->{'subfields'}->{'a'};
688 ($issn) = (split(/\s+/, $issn))[0];
690 if ($field->{'tag'} eq '082') {
691 $dewey=$field->{'subfields'}->{'a'};
698 if ($field->{'tag'} eq '100') {
699 $author=$field->{'subfields'}->{'a'};
701 if ($field->{'tag'} eq '245') {
702 $title=$field->{'subfields'}->{'a'};
704 $subtitle=$field->{'subfields'}->{'b'};
707 if ($field->{'tag'} eq '260') {
708 $place=$field->{'subfields'}->{'a'};
713 $publisher=$field->{'subfields'}->{'b'};
715 $publisher=$$publisher[0];
717 $publisher=~s/\s*:$//g;
718 $publicationyear=$field->{'subfields'}->{'c'};
719 if ($publicationyear=~/c(\d\d\d\d)/) {
722 if ($publicationyear=~/[^c](\d\d\d\d)/) {
724 } elsif ($copyrightdate) {
725 $publicationyear=$copyrightdate;
727 $publicationyear=~/(\d\d\d\d)/;
731 if ($field->{'tag'} eq '300') {
732 $pages=$field->{'subfields'}->{'a'};
734 $size=$field->{'subfields'}->{'c'};
738 if ($field->{'tag'} eq '362') {
739 if ($field->{'subfields'}->{'a'}=~/(\d+).*(\d+)/) {
744 if ($field->{'tag'} eq '440') {
745 $seriestitle=$field->{'subfields'}->{'a'};
746 if ($field->{'subfields'}->{'v'}=~/(\d+).*(\d+)/) {
751 if ($field->{'tag'} =~/^5/) {
752 $note.="$field->{'subfields'}->{'a'}\n";
754 if ($field->{'tag'} =~/65\d/) {
755 my $subject=$field->{'subfields'}->{'a'};
757 if ($gensubdivision=$field->{'subfields'}->{'x'}) {
758 my @sub=@$gensubdivision;
765 $gensubdivision=~s/\.$//;
766 $subject.=" -- $gensubdivision";
769 if ($chronsubdivision=$field->{'subfields'}->{'y'}) {
770 my @sub=@$chronsubdivision;
777 $chronsubdivision=~s/\.$//;
778 $subject.=" -- $chronsubdivision";
781 if ($geosubdivision=$field->{'subfields'}->{'z'}) {
782 my @sub=@$geosubdivision;
789 $geosubdivision=~s/\.$//;
790 $subject.=" -- $geosubdivision";
793 push @subjects, $subject;
796 my $q_isbn=$dbh->quote((($isbn) || ('NIL')));
797 my $q_issn=$dbh->quote((($issn) || ('NIL')));
798 my $q_lccn=$dbh->quote((($lccn) || ('NIL')));
799 my $q_controlnumber=$dbh->quote((($controlnumber) || ('NIL')));
800 my $sth=$dbh->prepare("select * from marcrecorddone where isbn=$q_isbn or issn=$q_issn or lccn=$q_lccn or controlnumber=$q_controlnumber");
806 $sth=$dbh->prepare("select * from biblioitems where isbn=$q_isbn or issn=$q_issn or lccn=$q_lccn");
812 print "<a href=marcimport.pl?file=$file&isbn=$isbn>$title by $author</a> $donetext<br>\n";
814 print "<a href=marcimport.pl?file=$file&lccn=$lccn>$title by $author</a> $donetext<br>\n";
816 print "<a href=marcimport.pl?file=$file&issn=$issn>$title by $author</a><br> $donetext\n";
817 } elsif ($controlnumber) {
818 print "<a href=marcimport.pl?file=$file&controlnumber=$controlnumber>$title by $author</a><br> $donetext\n";
820 print "Error: Contact steve regarding $title by $author<br>\n";
823 print "</td></tr></table>\n";
826 opendir(D, "/home/$userid/");
827 my @dirlist=readdir D;
828 foreach $file (@dirlist) {
829 (next) if ($file=~/^\./);
830 (next) if ($file=~/^nsmail$/);
831 (next) if ($file=~/^public_html$/);
832 ($file=~/\.mrc/) || ($filelist.="$file<br>\n");
833 (next) unless ($file=~/\.mrc$/);
835 print "<a href=marcimport.pl?file=/home/$userid/$file>$file</a><br>\n";
839 File to read MARC records from: <input name=file size=30>
841 Other files in home directory:<p>