Adding 100$a coded field for UNIMARCAUTH and 152$b for any add

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This commit is contained in:
Henri-Damien LAURENT 2007-12-20 15:23:06 +01:00 committed by Joshua Ferraro
parent 1c9088363b
commit 0fe6451026
1 changed files with 13 additions and 26 deletions

View File

@ -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);