my $org = shift || 1;
my $depth = shift;
- my (@types,@forms);
+ my (@types,@forms,@blvl);
if ($formats) {
- my ($t, $f) = split '-', $formats;
+ my ($t, $f, $b) = split '-', $formats;
@types = split '', $t;
@forms = split '', $f;
+ @blvl = split '', $b;
}
my $descendants =
$sql .= ' AND rd.item_form IN ('.join(',',map{'?'}@forms).')';
}
+ if (@blvl) {
+ $sql .= ' AND rd.bib_level IN ('.join(',',map{'?'}@blvl).')';
+ }
+
$sql .= <<" SQL";
quality DESC
SQL
- my $ids = metabib::metarecord_source_map->db_Main->selectcol_arrayref($sql, {}, "$mr", @types, @forms);
+ my $ids = metabib::metarecord_source_map->db_Main->selectcol_arrayref($sql, {}, "$mr", @types, @forms, @blvl);
return $ids if ($self->api_name =~ /atomic$/o);
$client->respond( $_ ) for ( @$ids );
my $copies_visible = 'AND a.opac_visible IS TRUE AND cp.opac_visible IS TRUE AND cs.holdable IS TRUE AND cl.opac_visible IS TRUE';
$copies_visible = '' if ($self->api_name =~ /staff/o);
- my (@types,@forms);
- my ($t_filter, $f_filter) = ('','');
+ my (@types,@forms,@blvl);
+ my ($t_filter, $f_filter, $b_filter) = ('','','');
if ($args{format}) {
- my ($t, $f) = split '-', $args{format};
+ my ($t, $f, $b) = split '-', $args{format};
@types = split '', $t;
@forms = split '', $f;
+ @blvl = split '', $b;
+
if (@types) {
$t_filter = ' AND rd.item_type IN ('.join(',',map{'?'}@types).')';
}
if (@forms) {
$f_filter .= ' AND rd.item_form IN ('.join(',',map{'?'}@forms).')';
}
+
+ if (@blvl) {
+ $b_filter .= ' AND rd.bib_level IN ('.join(',',map{'?'}@blvl).')';
+ }
}
my $sql = <<" SQL";
$copies_visible
$t_filter
$f_filter
+ $b_filter
)
) AS count,
sum(
$copies_visible
$t_filter
$f_filter
+ $b_filter
)
) AS available,
sum(
AND cl.opac_visible IS TRUE
$t_filter
$f_filter
+ $b_filter
)
) AS unshadow,
sum(
$sth->execute( ''.$args{metarecord},
@types,
@forms,
+ @blvl,
''.$args{metarecord},
@types,
@forms,
+ @blvl,
''.$args{metarecord},
@types,
@forms,
+ @blvl,
''.$args{metarecord},
''.$args{org_unit},
);