From 06625a9ad63ad726a43c597074551b88544de55f Mon Sep 17 00:00:00 2001 From: Fridolyn SOMERS Date: Fri, 11 Jan 2013 10:33:53 +0100 Subject: [PATCH] Bug 9377 - itemtype in duplicate biblio search In C4::Search::FindDuplicate, when biblio has no ISBN, the duplicate search adds : $query .= " and itemtype=$result->{itemtype}". This should be only when itemtype is defined in biblio and not in items. Test plan : On a database with itemtype mapped in biblioitems and "item-level_itypes" syspref on "biblio record" : - Go to a biblio details page - Click on "Edit as new (duplicate)" - If ISBN is defined, remove it - Click on save => a duplicate is detected - Change biblio item type - Click on save => no duplicate detected - Set "item-level_itypes" syspref to "specific record" - Come back to biblio details page - Click on "Edit as new (duplicate)" - If ISBN is defined, remove it - Click on save => a duplicate is detected - Change biblio item type => a duplicate is detected --- C4/Search.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/C4/Search.pm b/C4/Search.pm index 50f7d2b..348c46f 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -112,8 +112,13 @@ sub FindDuplicate { # quotes around the value $result->{title} =~ s/(and|or|not)//g; $query = "ti,ext=$result->{title}"; - $query .= " and itemtype=$result->{itemtype}" - if ( $result->{itemtype} ); + + if ( $result->{itemtype} + && !C4::Context->preference('item-level_itypes') ) + { + $query .= " and itemtype=$result->{itemtype}"; + } + if ( $result->{author} ) { $result->{author} =~ s /\\//g; $result->{author} =~ s /\"//g; -- 1.7.9.5