Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / Presenter / Dunning.pm
1 package SL::Presenter::Dunning;
2
3 use strict;
4
5 use SL::Presenter::EscapedText qw(escape is_escaped);
6 use SL::Presenter::Tag         qw(link_tag);
7
8 use Exporter qw(import);
9 our @EXPORT_OK = qw(dunning);
10
11 use Carp;
12
13 sub dunning {
14   my ($dunning, %params) = @_;
15
16   $params{display} ||= 'inline';
17
18   croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/;
19
20   my $text = escape($dunning->dunning_config->dunning_description);
21
22   if (! delete $params{no_link}) {
23     my @flags;
24     push @flags, 'showold=1';
25     push @flags, 'l_mails=1'      if $::instance_conf->get_email_journal;
26     push @flags, 'l_webdav=1'     if $::instance_conf->get_webdav;
27     push @flags, 'l_documents=1'  if $::instance_conf->get_doc_storage;
28
29     my $href  = 'dn.pl?action=show_dunning&dunning_id=' . $dunning->dunning_id;
30     $href    .= '&' . join '&', @flags if @flags;
31     $text     = link_tag($href, $text, %params);
32   }
33
34   is_escaped($text);
35 }
36
37 1;