don't create dummy barcodes and callnumbers until it's absolutely necessary (i.e...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 21 Apr 2009 14:05:37 +0000 (14:05 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 21 Apr 2009 14:05:37 +0000 (14:05 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12934 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm

index ecf8de9..7a2a9a5 100644 (file)
@@ -291,10 +291,14 @@ sub create_lineitem_detail {
     my $lid = Fieldmapper::acq::lineitem_detail->new;
     $lid->$_($args{$_}) for keys %args;
     $lid->clear_id;
-    $mgr->editor->create_acq_lineitem_detail($lid) or return 0;
     $mgr->add_lid;
+    return $mgr->editor->create_acq_lineitem_detail($lid);
+}
+
 
-    # create some default values
+# flesh out any required data with default values where appropriate
+sub complete_lineitem_detail {
+    my($mgr, $lid) = @_;
     unless($lid->barcode) {
         my $pfx = $U->ou_ancestor_setting_value($lid->owning_lib, 'acq.tmp_barcode_prefix') || 'ACQ';
         $lid->barcode($pfx.$lid->id);
@@ -721,6 +725,9 @@ sub create_lineitem_assets {
         my $lid = $mgr->editor->retrieve_acq_lineitem_detail($lid_id) or return 0;
         next if $lid->eg_copy_id;
 
+        # apply defaults if necessary
+        return 0 unless complete_lineitem_detail($mgr, $lid);
+
         my $org = $lid->owning_lib;
         my $label = $lid->cn_label;
         my $bibid = $li->eg_bib_id;