BZ6074: setting import flag when staged file imported in aqbasket
authorPaul Poulain <paul.poulain@biblibre.com>
Tue, 5 Apr 2011 20:11:15 +0000 (22:11 +0200)
committerChris Cormack <chrisc@catalyst.net.nz>
Thu, 6 Oct 2011 21:08:41 +0000 (10:08 +1300)
Lines issued from a staged file have a flag that can be set when the order has
been added in a basket. It's set when a staged file is imported into the
catalogue, it should be set also when a record is inserted through aquisition.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
- Add order from staged file to a new basket
- Add single order from one item
- Import rest using the bulk feature
- Staged file will no longer be shown after all titles
  have been ordered and import_status in import_batches
  is correctly  set to 'imported'

Signed-off-by: Ian Walls <ian.walls@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
acqui/addorderiso2709.pl

index 46d05dd..bbfd3b7 100755 (executable)
@@ -180,6 +180,7 @@ if ($op eq ""){
                 }
             }
             ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $cgiparams->{'frameworkcode'} || '' );
+            SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' );
             # 2nd add authorities if applicable
             if (C4::Context->preference("BiblioAddsAuthorities")){
                 my ($countlinked,$countcreated)=BiblioAddAuthorities($marcrecord, $cgiparams->{'frameworkcode'});
@@ -262,6 +263,8 @@ if ($op eq ""){
                 my ( $biblionumber, $bibitemnum, $itemnumber ) = AddItemFromMarc( $record, $biblionumber );
                 NewOrderItem( $itemnumber, $ordernumber );
             }
+        } else {
+            SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' );
         }
     }
     # go to basket page
@@ -337,15 +340,22 @@ sub import_batches_list {
     my @list = ();
     foreach my $batch (@$batches) {
         if ($batch->{'import_status'} eq "staged") {
-        push @list, {
-                import_batch_id => $batch->{'import_batch_id'},
-                num_biblios => $batch->{'num_biblios'},
-                num_items => $batch->{'num_items'},
-                upload_timestamp => $batch->{'upload_timestamp'},
-                import_status => $batch->{'import_status'},
-                file_name => $batch->{'file_name'},
-                comments => $batch->{'comments'},
-            };
+            # check if there is at least 1 line still staged
+            my $stagedList=GetImportBibliosRange($batch->{'import_batch_id'}, undef, undef, 'staged');
+            if (scalar @$stagedList) {
+                push @list, {
+                        import_batch_id => $batch->{'import_batch_id'},
+                        num_biblios => $batch->{'num_biblios'},
+                        num_items => $batch->{'num_items'},
+                        upload_timestamp => $batch->{'upload_timestamp'},
+                        import_status => $batch->{'import_status'},
+                        file_name => $batch->{'file_name'},
+                        comments => $batch->{'comments'},
+                };
+            } else {
+                # if there are no more line to includes, set the status to imported
+                SetImportBatchStatus( $batch->{'import_batch_id'}, 'imported' );
+            }
         }
     }
     $template->param(batch_list => \@list);