From c2004d70e2e6b3aea90ca02df14895db40e6744d Mon Sep 17 00:00:00 2001
From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Date: Wed, 6 Jul 2016 15:52:54 +0200
Subject: [PATCH] Bug 16859: Fix wrong item field name in export.pl
Content-Type: text/plain; charset=utf-8

Field callnumber should be itemcallnumber.
For completeness, prefixing the joined fields with items table prefix.

Note: You should expect Tools/Export to export only the items within a
given itemcallnumber range, but if the biblio has one item in that
range, the biblionumber is selected for export with ALL items. The script
is designed that way (first select biblio numbers based on criteria, and
run export with those biblio numbers).

Test plan:
[1] Select a biblio N with one item with say itemcallnumber X.
[2] Goto Tools/Export. Select biblio range N,N and no itemcallnumber
    range. The biblio should be exported.
[3] Select biblio range N,N and itemcallnumber range A,B. No output.
[4] Select biblio range N,N and itemcallnumber range A,<empty>. Output.
[5] Select biblio range N,N and itemcallnumber range <empty>,X. Output.
---
 tools/export.pl |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/export.pl b/tools/export.pl
index 4794d05..4f8c07b 100755
--- a/tools/export.pl
+++ b/tools/export.pl
@@ -20,6 +20,7 @@ use Modern::Perl;
 use CGI qw ( -utf8 );
 use MARC::File::XML;
 use List::MoreUtils qw(uniq);
+use Data::Dumper qw(Dumper);
 use C4::Auth;
 use C4::Branch;             # GetBranches
 use C4::Csv;
@@ -122,17 +123,19 @@ if ( $op eq "export" ) {
                             }
                         )
                         : (),
+
                     ( $start_callnumber or $end_callnumber )
                         ? (
-                            callnumber => {
+                            'items.itemcallnumber' => {
                                 ( $start_callnumber ? ( '>=' => $start_callnumber ) : () ),
                                 ( $end_callnumber   ? ( '<=' => $end_callnumber   ) : () ),
                             }
                         )
                         : (),
+
                     ( $start_accession or $end_accession )
                         ? (
-                            dateaccessioned => {
+                            'items.dateaccessioned' => {
                                 ( $start_accession ? ( '>=' => $start_accession ) : () ),
                                 ( $end_accession   ? ( '<=' => $end_accession   ) : () ),
                             }
-- 
1.7.10.4