Bug 18071: Improve parameters handling
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
fba7c05c6d
commit
81eefc4e03
|
|
@ -39,11 +39,16 @@ GetOptions(
|
|||
|
||||
@authid = map { split /[,]/, $_; } @authid;
|
||||
print "No changes will be made\n" unless $commit;
|
||||
if( $help ) {
|
||||
pod2usage(1);
|
||||
} elsif( $delete ) {
|
||||
pod2usage(1) if $help;
|
||||
|
||||
if ( $delete and $merge and $renumber ) {
|
||||
pod2usage(q|Only one action parameter can be passed (delete, merge or renumber)|);
|
||||
}
|
||||
|
||||
if( $delete ) {
|
||||
delete_auth( \@authid );
|
||||
} elsif( $merge ) {
|
||||
pod2usage(q|Reference parameter is missing|) unless $reference;
|
||||
merge_auth( \@authid, $reference );
|
||||
} elsif( $renumber ) {
|
||||
renumber( \@authid );
|
||||
|
|
@ -65,10 +70,9 @@ sub delete_auth {
|
|||
|
||||
sub merge_auth {
|
||||
my ( $auths, $reference ) = @_;
|
||||
if( !$reference ) {
|
||||
print "Reference parameter is missing\n";
|
||||
return;
|
||||
}
|
||||
|
||||
return unless $reference;
|
||||
|
||||
my $marc_ref = GetAuthority( $reference ) || die "Reference record $reference not found\n";
|
||||
# First update all linked biblios of reference
|
||||
merge({ mergefrom => $reference, MARCfrom => $marc_ref, mergeto => $reference, MARCto => $marc_ref, override_limit => 1 }) if $commit;
|
||||
|
|
@ -101,10 +105,10 @@ sub merge_auth {
|
|||
sub renumber {
|
||||
my ( $auths ) = @_;
|
||||
foreach my $authid ( uniq(@$auths) ) {
|
||||
if( my $obj = Koha::Authorities->find($authid) ) {
|
||||
if( my $authority = Koha::Authorities->find($authid) ) {
|
||||
my $marc = GetAuthority( $authid );
|
||||
if( $commit ) {
|
||||
AddAuthority( $marc, $authid, $obj->authtypecode );
|
||||
AddAuthority( $marc, $authid, $authority->authtypecode );
|
||||
# AddAuthority contains an update of 001, 005 etc.
|
||||
print "Renumbered $authid\n" if $verbose;
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue