if ( ($op eq 'Upload') && $uploadfile ) { # Case is important in these operational values as the template must use case to be visually pleasing!
my $dirname = File::Temp::tempdir( CLEANUP => 1);
$debug and warn "dirname = $dirname";
- my $filesuffix = $1 if $uploadfilename =~ m/(\..+)$/i;
+ my $filesuffix;
+ if ( $uploadfilename =~ m/(\..+)$/i ) {
+ $filesuffix = $1;
+ }
( $tfh, $tempfile ) = File::Temp::tempfile( SUFFIX => $filesuffix, UNLINK => 1 );
$debug and warn "tempfile = $tempfile";
my ( @directories, $errors );
}
my $results;
foreach my $dir ( @directories ) {
- $results = handle_dir( $dir, $filesuffix );
+ $results = handle_dir( $dir, $filesuffix, $template );
$handled++ if $results == 1;
}
$total = scalar @directories;
} else { #if ($filetype eq 'zip' )
- $results = handle_dir( $dirname, $filesuffix );
+ $results = handle_dir( $dirname, $filesuffix, $template, $cardnumber, $tempfile );
$handled = 1;
$total = 1;
}
}
sub handle_dir {
- my ( $dir, $suffix ) = @_;
- my $source;
+ my ( $dir, $suffix, $template, $cardnumber, $source ) = @_;
$debug and warn "Entering sub handle_dir; passed \$dir=$dir, \$suffix=$suffix";
if ($suffix =~ m/zip/i) { # If we were sent a zip file, process any included data/idlink.txt files
- my ( $file, $filename, $cardnumber );
+ my ( $file, $filename );
+ undef $cardnumber;
$debug and warn "Passed a zip file.";
opendir my $dirhandle, $dir;
while ( my $filename = readdir $dirhandle ) {
$filename =~ s/[\"\r\n\s]//g;
$debug and warn "Cardnumber: $cardnumber Filename: $filename";
$source = "$dir/$filename";
- %counts = handle_file($cardnumber, $source, %counts);
+ %counts = handle_file($cardnumber, $source, $template, %counts);
}
close FILE;
closedir ($dirhandle);
} else {
- $source = $tempfile;
- %counts = handle_file($cardnumber, $source, %counts);
+ %counts = handle_file($cardnumber, $source, $template, %counts);
}
push @counts, \%counts;
return 1;
}
sub handle_file {
- my ($cardnumber, $source, %count) = @_;
+ my ($cardnumber, $source, $template, %count) = @_;
$debug and warn "Entering sub handle_file; passed \$cardnumber=$cardnumber, \$source=$source";
$count{filenames} = () if !$count{filenames};
$count{source} = $source if !$count{source};
undef $srcimage; # This object can get big...
}
$debug and warn "Image is of mimetype $mimetype";
- my $dberror = PutPatronImage($cardnumber,$mimetype, $imgfile) if $mimetype;
- if ( !$dberror && $mimetype ) { # Errors from here on are fatal only to the import of a particular image, so don't bail, just note the error and keep going
+ my $dberror;
+ if ($mimetype) {
+ $dberror = PutPatronImage( $cardnumber, $mimetype, $imgfile );
+ }
+ if ( !$dberror && $mimetype ) { # Errors from here on are fatal only to the import of a particular image, so don't bail, just note the error and keep going
$count{count}++;
push @{ $count{filenames} }, { source => $filename, cardnumber => $cardnumber };
} elsif ( $dberror ) {