Skip to content
Snippets Groups Projects
Commit caf75d11 authored by Andreas Romeyke's avatar Andreas Romeyke
Browse files

- add purged AIP handling

parent 4793df77
No related branches found
No related tags found
No related merge requests found
...@@ -324,15 +324,18 @@ SQL_PURGED_PLAN ...@@ -324,15 +324,18 @@ SQL_PURGED_PLAN
$dcvalue =~ tr/'/"/; $dcvalue =~ tr/'/"/;
eval {$plans->{dc}->execute($ieid, $ieversion, $dckey, $dcvalue)} or die "sql problem detected with $ieid ($ieversion, $dckey, $dcvalue), ", $dbh->errstr; eval {$plans->{dc}->execute($ieid, $ieversion, $dckey, $dcvalue)} or die "sql problem detected with $ieid ($ieversion, $dckey, $dcvalue), ", $dbh->errstr;
} }
if ($refhash->{'purged'}) { foreach my $delstate (qw(purged deleted)) {
my @purged = @{$refhash->{'purged'}}; if ($refhash->{$delstate}) {
foreach my $purge (@purged) { my $delete = $refhash->{$delstate};
# TODO: call plan plans->{deleted} # TODO: call plan plans->{deleted}
my $state = $purge->{'state'}; my $state = $delete->{'state'};
my $reason = $purge->{'reason'}; my $reason = $delete->{'reason'};
my $date = $purge->{'date'}; my $note = $delete->{'note'};
my $authorized_by = $purge->{'authorized_by'}; my $date = $delete->{'date'};
eval {$plans->{deleted}->execute($ieid, $ieversion, $state, $reason, $date, $authorized_by)} or die "sql problem detected with $ieid ($ieversion, $state, $reason, $date, $authorized_by), ", $dbh->errstr; my $authorized_by = $delete->{'authorized_by'};
eval {
$plans->{$delstate}->execute($ieid, $ieversion, $state, $reason, $note, $date, $authorized_by)
} or die "sql problem detected with $delstate $ieid ($ieversion, $state, $reason, $note, $date, $authorized_by), ", $dbh->errstr;
} }
} }
return 1; return 1;
...@@ -632,14 +635,27 @@ sub parse_iexml($filename, $recovery_flag) { ...@@ -632,14 +635,27 @@ sub parse_iexml($filename, $recovery_flag) {
# get dc-records # get dc-records
$ret->{"dcrecords"} = get_dcrecords_ref($xp, $dmdsec); $ret->{"dcrecords"} = get_dcrecords_ref($xp, $dmdsec);
############################################ ############################################
my $is_deleted = has_purged_entries($xp, $amdsec); my $is_deleted = has_purged_entries($xp, $amdsec_ie);
if ($is_deleted) { if ($is_deleted) {
my @purged_states = @{get_purged_states($xp, $amdsec)}; my @purged_states = @{get_purged_states($xp, $amdsec_ie)};
foreach my $idx (0 .. $#purged_states) { my $idx_purged;
$ret->{'purged'}->[$idx]->{state} = $purged_states[$idx]; my $idx_deleted;
$ret->{'purged'}->[$idx]->{reason} = get_purged_reasons($xp, $amdsec)->[$idx]; for (my $i = 0; $i <= $#purged_states; $i++) {
$ret->{'purged'}->[$idx]->{date} = get_purged_dates($xp, $amdsec)->[$idx]; if ($purged_states[$i] eq 'purged') {$idx_purged = $i; last;}
$ret->{'purged'}->[$idx]->{authorized_by} = get_purged_authorized_by($xp, $amdsec)->[$idx]; elsif ($purged_states[$i] eq 'deleted') {$idx_deleted = $i;}
}
if (defined $idx_purged) {
$ret->{purged}->{state} = "purged";
$ret->{purged}->{reason} = get_purged_reasons($xp, $amdsec_ie)->[$idx_purged];
$ret->{purged}->{note} = get_purged_notes($xp, $amdsec_ie)->[$idx_purged];
$ret->{purged}->{date} = get_purged_dates($xp, $amdsec_ie)->[$idx_purged];
$ret->{purged}->{authorized_by} = get_purged_authorized_by($xp, $amdsec_ie)->[$idx_purged];
} else {
$ret->{deleted}->{state} = "deleted";
$ret->{deleted}->{reason} = get_purged_reasons($xp, $amdsec_ie)->[$idx_deleted];
$ret->{deleted}->{note} = get_purged_notes($xp, $amdsec_ie)->[$idx_deleted];
$ret->{deleted}->{date} = get_purged_dates($xp, $amdsec_ie)->[$idx_deleted];
$ret->{deleted}->{authorized_by} = get_purged_authorized_by($xp, $amdsec_ie)->[$idx_deleted];
} }
} }
############################################ ############################################
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment