Rechnungsbericht: Dateianhänge anzeigen können.
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Mon, 14 Mar 2022 18:38:52 +0000 (19:38 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Mon, 14 Mar 2022 19:27:34 +0000 (20:27 +0100)
bin/mozilla/ar.pl
templates/webpages/ar/search.html

index afa9aa8..cf0555f 100644 (file)
@@ -1028,7 +1028,7 @@ sub ar_transactions {
     qw(ids transdate id type invnumber ordnumber cusordnumber donumber deliverydate name netamount tax amount paid
        datepaid due duedate transaction_description notes salesman employee shippingpoint shipvia
        marge_total marge_percent globalprojectnumber customernumber country ustid taxzone
-       payment_terms charts customertype direct_debit dunning_description department);
+       payment_terms charts customertype direct_debit dunning_description department attachments);
 
   my $ct_cvar_configs                 = CVar->get_configs('module' => 'CT');
   my @ct_includeable_custom_variables = grep { $_->{includeable} } @{ $ct_cvar_configs };
@@ -1082,6 +1082,7 @@ sub ar_transactions {
     'direct_debit'            => { 'text' => $locale->text('direct debit'), },
     'department'              => { 'text' => $locale->text('Department'), },
     dunning_description       => { 'text' => $locale->text('Dunning level'), },
+    attachments               => { 'text' => $locale->text('Attachments'), },
     %column_defs_cvars,
   );
 
@@ -1206,6 +1207,10 @@ sub ar_transactions {
     $subtotals{marge_percent} = $subtotals{netamount} ? ($subtotals{marge_total} * 100 / $subtotals{netamount}) : 0;
     $totals{marge_percent}    = $totals{netamount}    ? ($totals{marge_total}    * 100 / $totals{netamount}   ) : 0;
 
+    # Preserve $ar->{type} before changing it to the abbreviation letter for
+    # getting files from file management below.
+    $ar->{object_type} = $ar->{type};
+
     my $is_storno  = $ar->{storno} &&  $ar->{storno_id};
     my $has_storno = $ar->{storno} && !$ar->{storno_id};
 
@@ -1249,6 +1254,20 @@ sub ar_transactions {
       align    => 'center',
     };
 
+    if ($::instance_conf->get_doc_storage && $form->{l_attachments}) {
+      my @files  = SL::File->get_all_versions(object_id   => $ar->{id},
+                                              object_type => $ar->{object_type} || 'invoice',
+                                              file_type   => 'attachment',);
+      if (scalar @files) {
+        my $html            = join '<br>', map { SL::Presenter::FileObject::file_object($_) } @files;
+        my $text            = join "\n",   map { $_->file_name                              } @files;
+        $row->{attachments} = { 'raw_data' => $html, data => $text };
+      } else {
+        $row->{attachments} = { };
+      }
+
+    }
+
     my $row_set = [ $row ];
 
     if (($form->{l_subtotal} eq 'Y')
index 8676fb5..3a68962 100644 (file)
            <td align=right><input name="l_direct_debit" id="l_direct_debit" class=checkbox type=checkbox value=Y></td>
            <td nowrap>[% 'direct debit' | $T8 %]</td>
           </tr>
+[% IF INSTANCE_CONF.get_doc_storage -%]
+          <tr>
+           <td align=right><input name="l_attachments" id="l_attachments" class=checkbox type=checkbox value=Y></td>
+           <td nowrap>[% 'Attachments' | $T8 %]</td>
+          </tr>
+[% END-%]
           <tr>
            <td colspan=4 align=left><b>[% 'Customer' | $T8 %]</b></td>
           </tr>