my ( undef, $doc ) = biblioitem_html( $row->{biblionumber} );
if ( ! $doc ) {
- warn "ERROR can't parse MARCXML ", $row->{biblionumber}, " ", $row->{marcxml}, "\n";
+# warn "ERROR can't parse MARCXML ", $row->{biblionumber}, " ", $row->{marcxml}, "\n";
next;
}
if ($elt->localname eq 'controlfield') {
if ( $tag eq '008' ) {
- $biblio_year->{ $row->{biblionumber} } = $elt->textContent;
+ my $year = substr($elt->textContent, 7, 4 );
+ if ( $year !~ m/^\d+$/ ) {
+ $year = 0;
+ push @{ $skip->{invalid_year} }, $row->{biblionumber};
+ }
+ $biblio_year->{ $row->{biblionumber} } = $data->{year} = $year;
}
next;
} elsif ($elt->localname eq 'datafield') {
}
}
+ if ( $data->{year} < 2008 ) {
+ push @{ $skip->{year_lt_2008} }, $row->{biblionumber};
+ next;
+ } elsif ( $data->{year} > 2013 ) {
+ push @{ $skip->{year_gt_2013} }, $row->{biblionumber};
+ next;
+ }
+
# warn "# ", $row->{biblionumber}, " data ",dump($data);
my $category = $data->{942}->[0]->{'t'};
debug 'authors' => $authors;
debug 'type_stats' => $type_stats;
debug 'skip' => $skip;
+debug 'biblio_year' => $biblio_year;
my $category_label;
my $sth_categories = $dbh->prepare(q{
mkdir 'html/departments' unless -d 'html/departments';
+sub unique_biblionumber {
+ my @v = @_;
+ my $u;
+ $u->{$_}++ foreach @v;
+ return sort { $biblio_year->{$b} <=> $biblio_year->{$a} || $a <=> $b } keys %$u;
+}
+
open(my $dep_fh, '>:encoding(utf-8)', 'html/departments/index.new');
print $dep_fh html_title('Odsijeci Filozofskog fakulteta u Zagrebu'), qq|<ul>\n|;
foreach my $department ( sort keys %$department_category_author ) {
my @authids = @{ $department_category_author->{$department}->{$category} };
next unless @authids;
- my @biblionumber = map { @{ $authors->{$_}->{aut}->{$category} } } grep { exists $authors->{$_}->{aut}->{$category} } @authids;
+ my @biblionumber = unique_biblionumber map { @{ $authors->{$_}->{aut}->{$category} } } grep { exists $authors->{$_}->{aut}->{$category} } @authids;
+ my $unique;
+ $unique->{$_}++ foreach @biblionumber;
next unless @biblionumber;
my @authids = @{ $department_category_author->{$department}->{$category} };
next unless @authids;
- my @biblionumber = map { @{ $authors->{$_}->{sec}->{$category} } } grep { exists $authors->{$_}->{sec}->{$category} } @authids;
+ my @biblionumber = unique_biblionumber map { @{ $authors->{$_}->{sec}->{$category} } } grep { exists $authors->{$_}->{sec}->{$category} } @authids;
next unless @biblionumber;