From 9a0cec1dc8a89ffbd5661c83a18d83b313c8d80d Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Fr=C3=A9d=C3=A9rick=20Capovilla?= 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