X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FVC.pm;fp=SL%2FDB%2FVC.pm;h=3cc7490d9e4aa2aae50dfa167377c3df6588e4c8;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hp=c41f28788fe378f08619b85e60e0fc4ab8be9104;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44;p=kivitendo-erp.git diff --git a/SL/DB/VC.pm b/SL/DB/VC.pm index c41f28788..3cc7490d9 100644 --- a/SL/DB/VC.pm +++ b/SL/DB/VC.pm @@ -2,11 +2,13 @@ package SL::DB::VC; use strict; -require Exporter; +use List::MoreUtils qw(uniq); use SL::DBUtils; +require Exporter; + our @ISA = qw(Exporter); -our @EXPORT = qw(get_credit_remaining); +our @EXPORT = qw(get_credit_remaining get_all_email_addresses); sub get_credit_remaining { my $vc = shift; @@ -50,4 +52,42 @@ SQL return $credit_remaining; } +sub get_all_email_addresses { + my ($self) = @_; + + my $is_sales = ref $self eq 'SL::DB::Customer'; + + my @addresses; + + # billing address + push @addresses, $self->$_ for qw(email cc bcc); + if ($is_sales) { + push @addresses, $self->$_ for qw(delivery_order_mail invoice_mail); + } + + # additional billing addresses + if ($is_sales) { + foreach my $additional_billing_address (@{ $self->additional_billing_addresses }) { + push @addresses, $additional_billing_address->$_ for qw(email); + } + } + + # contacts + foreach my $contact (@{ $self->contacts }) { + push @addresses, $contact->$_ for qw(cp_email cp_privatemail); + } + + # shiptos + foreach my $shipto (@{ $self->shipto }) { + push @addresses, $shipto->$_ for qw(shiptoemail); + } + + # remove empty ones and duplicates + @addresses = grep { $_ } @addresses; + @addresses = uniq @addresses; + + + return \@addresses; +} + 1;