[Patches] [PATCH] Use MARCAuthorityControlField008 in AddAuthority for empty 008s

koha-patchbot at kohaaloha.com koha-patchbot at kohaaloha.com
Fri Nov 4 19:52:34 NZDT 2011


From: =?utf-8?q?Fr=C3=A9d=C3=A9rick=20Capovilla?= <frederick.capovilla at libeo.com>
Date: Thu, 20 Oct 2011 12:05:02 -0400
Subject: [PATCH] Use MARCAuthorityControlField008 in AddAuthority for empty 008s

The old default value for field 008 didn't have the correct length,
which could potentially cause data corruptions.

Uses the MARCAuthorityControlField008 preference added by BUG4839.
---
 C4/AuthoritiesMarc.pm |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index 0164c8d..4b5a33d 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -639,9 +639,16 @@ sub AddAuthority {
 		}
 		my $date=POSIX::strftime("%y%m%d",localtime);
 		if (!$record->field('008')) {
-			$record->insert_fields_ordered(
-				MARC::Field->new('008',$date."|||a||||||           | |||     d")
-			);
+            # Get a valid default value for field 008
+            my $default_008 = C4::Context->preference('MARCAuthorityControlField008');
+            if(!$default_008 or length($default_008)<34) {
+                $default_008 = '|| aca||aabn           | a|a     d';
+            }
+            else {
+                $default_008 = substr($default_008,0,34);
+            }
+
+            $record->insert_fields_ordered( MARC::Field->new('008',$date.$default_008) );
 		}
 		if (!$record->field('040')) {
 		 $record->insert_fields_ordered(
-- 
1.5.6.5




More information about the Patches mailing list