Teach the ML call number find/create/merge code about prefix, suffix and, for good...
authorMike Rylander <mrylander@gmail.com>
Wed, 9 Mar 2011 15:15:47 +0000 (10:15 -0500)
committerMike Rylander <mrylander@gmail.com>
Wed, 9 Mar 2011 15:15:47 +0000 (10:15 -0500)
Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Cat/AssetCommon.pm

index 3126194..7cd1b5e 100644 (file)
@@ -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;
index b62f285..c24a9f3 100644 (file)
@@ -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);