X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FDownloadZip.pm;h=33514c4a7e0b106e2ea6b672efd3e0186837e1b0;hb=e0900c89f30e6a0ebe9c9152cabbe4410e5b3c31;hp=0e60896b14e5caae2a930755dff67f0aa066ccc8;hpb=cd69ad3d3edf8adcf332e3c19f8f16dd08f800c6;p=kivitendo-erp.git diff --git a/SL/Controller/DownloadZip.pm b/SL/Controller/DownloadZip.pm index 0e60896b1..33514c4a7 100644 --- a/SL/Controller/DownloadZip.pm +++ b/SL/Controller/DownloadZip.pm @@ -43,8 +43,9 @@ sub action_download_orderitems_files { #my $name_encoding = 'cp850'; my $name_encoding = 'UTF-8'; - # today only sales_order implementation ! - if ( $object_id && $object_type eq 'sales_order' && $element_type eq 'part' ) { + if ( $object_id + && ($object_type =~ m{^(?:sales_order|purchase_order|sales_quotation|request_quotation)$}) + && ($element_type eq 'part')) { my $orderitems = SL::DB::Manager::OrderItem->get_all(query => ['order.id' => $object_id ], with_objects => [ 'order', 'part' ], sort_by => 'part.partnumber ASC'); @@ -52,19 +53,10 @@ sub action_download_orderitems_files { my @files = SL::File->get_all(object_id => $item->parts_id, object_type => $element_type, ); - my @wanted_files; - ## also for filtering if needed: - # if ( $doctype ) { - # @wanted_files = grep { $_->{file_name} =~ /$doctype/ } @files; - # } else { - @wanted_files = @files; - # } - if ( scalar (@wanted_files) > 0 ) { - $zip->addDirectory($item->part->partnumber); - $zip->addFile($_->get_file, - Encode::encode($name_encoding,$item->part->partnumber.'/'.$_->{file_name}) - ) for @wanted_files; - } + next unless @files; + + $zip->addDirectory($item->part->partnumber); + $zip->addFile($_->get_file, Encode::encode($name_encoding, $item->part->partnumber . '/' . $_->db_file->file_name)) for @files; } } unless ( $zip->writeToFileNamed($sfile->file_name) == Archive::Zip::AZ_OK ) {