From 0fe6451026d1a65155060ada8ee7e479bc577b4e Mon Sep 17 00:00:00 2001 From: Henri-Damien LAURENT Date: Thu, 20 Dec 2007 15:23:06 +0100 Subject: [PATCH] Adding 100$a coded field for UNIMARCAUTH and 152$b for any add Signed-off-by: Chris Cormack Signed-off-by: Joshua Ferraro --- C4/AuthoritiesMarc.pm | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index 3da0b70957..e910e0bedc 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -508,6 +508,19 @@ sub AddAuthority { # if authid empty => true add, find a new authid number my $format= 'UNIMARCAUTH' if (uc(C4::Context->preference('marcflavour')) eq 'UNIMARC'); $format= 'MARC21' if (uc(C4::Context->preference('marcflavour')) ne 'UNIMARC'); + if (($format eq "UNIMARCAUTH") && (!$record->subfield('100','a'))){ + $record->leader(" nx j22 "); + my $date=POSIX::strftime("%Y%m%d",localtime); + if ($record->field('100')){ + $record->field('100')->update('a'=>$date."afrey50 ba0"); + } else { + $record->append_fields( + MARC::Field->new('100',' ',' ' + ,'a'=>$date."afrey50 ba0") + ); + } + } + $record->add_fields('152','','','b'=>$authtypecode) unless ($record->field('152') && $record->subfield('152','b')); if (!$authid) { my $sth=$dbh->prepare("select max(authid) from auth_header"); $sth->execute; @@ -518,19 +531,6 @@ sub AddAuthority { $record->delete_field($record->field('001')); $record->insert_fields_ordered(MARC::Field->new('001',$authid)); } - if (($format eq "UNIMARCAUTH") && (!$record->subfield('100','a'))){ - $record->leader(" nx j22 "); - my $date=POSIX::strftime("%Y%m%d",localtime); - if ($record->field('100')){ - $record->field('100')->update('a'=>$date."afrey50 ba0"); - } else { - $record->append_fields( - MARC::Field->new('100',' ',' ' - ,'a'=>$date."afrey50 ba0") - ); - } - } - $record->add_fields('152','','','b'=>$authtypecode) unless $record->field('152'); # warn $record->as_formatted; $dbh->do("lock tables auth_header WRITE"); $sth=$dbh->prepare("insert into auth_header (authid,datecreated,authtypecode,marc,marcxml) values (?,now(),?,?,?)"); @@ -538,19 +538,6 @@ sub AddAuthority { $sth->finish; }else{ $record->add_fields('001',$authid) unless ($record->field('001')); - if (($format eq "UNIMARCAUTH") && (!$record->subfield('100','a'))){ - $record->leader(" nx j22 "); - my $date=POSIX::strftime("%Y%m%d",localtime); - if ($record->field('100')){ - $record->field('100')->update('a'=>$date."afrey50 ba0"); - } else { - $record->append_fields( - MARC::Field->new('100',' ',' ' - ,'a'=>$date."afrey50 ba0") - ); - } - } - $record->add_fields('152','','','b'=>$authtypecode) unless ($record->field('152')); $dbh->do("lock tables auth_header WRITE"); my $sth=$dbh->prepare("update auth_header set marc=?,marcxml=? where authid=?"); $sth->execute($record->as_usmarc,$record->as_xml_record($format),$authid); -- 2.39.5