1 package OpenILS::Application::Storage::Publisher::asset;
2 use base qw/OpenILS::Application::Storage/;
3 #use OpenILS::Application::Storage::CDBI::asset;
4 #use OpenSRF::Utils::Logger qw/:level/;
5 #use OpenILS::Utils::Fieldmapper;
7 #my $log = 'OpenSRF::Utils::Logger';
9 sub asset_copy_location_all {
13 for my $rec ( asset::copy_location->retrieve_all ) {
14 $client->respond( $rec->to_fieldmapper );
19 __PACKAGE__->register_method(
20 method => 'asset_copy_location_all',
21 api_name => 'open-ils.storage.direct.asset.copy_location.retrieve.all',
31 my $cp = asset::copy->retrieve($id);
33 my $cp_fm = $cp->to_fieldmapper;
34 $cp_fm->circ_lib( $cp->circ_lib->to_fieldmapper );
35 $cp_fm->location( $cp->location->to_fieldmapper );
36 $cp_fm->status( $cp->status->to_fieldmapper );
39 __PACKAGE__->register_method(
40 api_name => 'open-ils.storage.fleshed.asset.copy.retrieve',
41 method => 'fleshed_copy',
45 sub fleshed_copy_by_barcode {
50 my ($cp) = asset::copy->search( { barcode => $bc } );
52 my $cp_fm = $cp->to_fieldmapper;
53 $cp_fm->circ_lib( $cp->circ_lib->to_fieldmapper );
54 $cp_fm->location( $cp->location->to_fieldmapper );
55 $cp_fm->status( $cp->status->to_fieldmapper );
59 __PACKAGE__->register_method(
60 api_name => 'open-ils.storage.fleshed.asset.copy.search.barcode',
61 method => 'fleshed_copy_by_barcode',
66 #XXX Fix stored proc calls
67 sub ranged_asset_stat_cat {
72 return undef unless ($ou);
73 my $s_table = asset::stat_cat->table;
75 my $select = <<" SQL";
78 JOIN actor.org_unit_full_path(?) p ON (p.id = s.owner)
83 $fleshed = 1 if ($self->api_name =~ /fleshed/o);
85 my $sth = asset::stat_cat->db_Main->prepare_cached($select);
88 for my $sc ( map { asset::stat_cat->construct($_) } $sth->fetchall_hash ) {
89 my $sc_fm = $sc->to_fieldmapper;
91 [ $self->method_lookup( 'open-ils.storage.ranged.asset.stat_cat_entry.search.stat_cat' )->run($ou,$sc->id) ]
93 $client->respond( $sc_fm );
98 __PACKAGE__->register_method(
99 api_name => 'open-ils.storage.ranged.fleshed.asset.stat_cat.all',
102 method => 'ranged_asset_stat_cat',
105 __PACKAGE__->register_method(
106 api_name => 'open-ils.storage.ranged.asset.stat_cat.all',
109 method => 'ranged_asset_stat_cat',
112 #XXX Fix stored proc calls
113 sub ranged_asset_stat_cat_entry {
119 return undef unless ($ou);
120 my $s_table = asset::stat_cat_entry->table;
122 my $select = <<" SQL";
125 JOIN actor.org_unit_full_path(?) p ON (p.id = s.owner)
130 my $sth = asset::stat_cat->db_Main->prepare_cached($select);
131 $sth->execute($ou,$sc);
133 for my $sce ( map { asset::stat_cat_entry->construct($_) } $sth->fetchall_hash ) {
134 $client->respond( $sce->to_fieldmapper );
139 __PACKAGE__->register_method(
140 api_name => 'open-ils.storage.ranged.asset.stat_cat_entry.search.stat_cat',
143 method => 'ranged_asset_stat_cat_entry',