From ebceff7c75c6011d4fa1e23111e8e271fa71a0c1 Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Wed, 9 Mar 2011 10:15:47 -0500 Subject: [PATCH] Teach the ML call number find/create/merge code about prefix, suffix and, for good measure, label_class --- Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm | 4 ++-- .../perlmods/lib/OpenILS/Application/Cat/AssetCommon.pm | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm index 31261947a5..7cd1b5ec6b 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm @@ -1116,11 +1116,11 @@ __PACKAGE__->register_method( ); sub find_or_create_volume { - my( $self, $conn, $auth, $label, $record_id, $org_id ) = @_; + my( $self, $conn, $auth, $label, $record_id, $org_id, $prefix, $suffix, $label_class ) = @_; my $e = new_editor(authtoken=>$auth, xact=>1); return $e->die_event unless $e->checkauth; my ($vol, $evt, $exists) = - OpenILS::Application::Cat::AssetCommon->find_or_create_volume($e, $label, $record_id, $org_id); + OpenILS::Application::Cat::AssetCommon->find_or_create_volume($e, $label, $record_id, $org_id, $prefix, $suffix, $label_class); return $evt if $evt; $e->rollback if $exists; $e->commit if $vol; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat/AssetCommon.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat/AssetCommon.pm index b62f2851e4..c24a9f3d50 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat/AssetCommon.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat/AssetCommon.pm @@ -368,6 +368,8 @@ sub create_volume { owning_lib => $vol->owning_lib, record => $vol->record, label => $vol->label, + prefix => $vol->prefix, + suffix => $vol->suffix, deleted => 'f' } ); @@ -408,13 +410,16 @@ sub create_volume { # returns the volume if it exists sub volume_exists { - my($class, $e, $rec_id, $label, $owning_lib) = @_; + my($class, $e, $rec_id, $label, $owning_lib, $prefix, $suffix) = @_; return $e->search_asset_call_number( - {label => $label, record => $rec_id, owning_lib => $owning_lib, deleted => 'f'})->[0]; + {label => $label, record => $rec_id, owning_lib => $owning_lib, deleted => 'f', prefix => $prefix, suffix => $suffix})->[0]; } sub find_or_create_volume { - my($class, $e, $label, $record_id, $org_id) = @_; + my($class, $e, $label, $record_id, $org_id, $prefix, $suffix, $label_class) = @_; + + $prefix ||= '-1'; + $suffix ||= '-1'; my $vol; @@ -423,7 +428,7 @@ sub find_or_create_volume { or return (undef, $e->die_event); } else { - $vol = $class->volume_exists($e, $record_id, $label, $org_id); + $vol = $class->volume_exists($e, $record_id, $label, $org_id, $prefix, $suffix); } # If the volume exists, return the ID @@ -436,7 +441,10 @@ sub find_or_create_volume { $vol = Fieldmapper::asset::call_number->new; $vol->owning_lib($org_id); + $vol->label_class($label_class) if ($label_class); $vol->label($label); + $vol->prefix($prefix); + $vol->suffix($suffix); $vol->record($record_id); my $evt = OpenILS::Application::Cat::AssetCommon->create_volume(0, $e, $vol); -- 2.11.0