+sub set_payment_options {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $transdate) = @_;
+
+ if ($self->{payment_id}) {
+
+ my $dbh = $self->dbconnect($myconfig);
+
+ my $query =
+ qq|SELECT p.terms_netto, p.terms_skonto, p.percent_skonto, | .
+ qq|p.description_long | .
+ qq|FROM payment_terms p | .
+ qq|WHERE p.id = ?|;
+
+ ($self->{terms_netto}, $self->{terms_skonto}, $self->{percent_skonto},
+ $self->{payment_terms}) =
+ selectrow_query($self, $dbh, $query, $self->{payment_id});
+
+ if ($transdate eq "") {
+ if ($self->{invdate}) {
+ $transdate = $self->{invdate};
+ } else {
+ $transdate = $self->{transdate};
+ }
+ }
+
+ $query =
+ qq|SELECT date '$transdate' + $self->{terms_netto} AS netto_date, | .
+ qq|date '$transdate' + $self->{terms_skonto} AS skonto_date | .
+ qq|FROM payment_terms LIMIT 1|;
+ ($self->{netto_date}, $self->{skonto_date}) =
+ selectrow_query($self, $dbh, $query);
+
+ my $total = ($self->{invtotal}) ? $self->{invtotal} : $self->{ordtotal};
+ my $skonto_amount = $self->parse_amount($myconfig, $total) *
+ $self->{percent_skonto};
+
+ $self->{skonto_amount} =
+ $self->format_amount($myconfig, $skonto_amount, 2);
+
+ if ($self->{"language_id"}) {
+ $query =
+ qq|SELECT t.description_long, | .
+ qq|l.output_numberformat, l.output_dateformat, l.output_longdates | .
+ qq|FROM translation_payment_terms t | .
+ qq|LEFT JOIN language l ON t.language_id = l.id | .
+ qq|WHERE (t.language_id = ?) AND (t.payment_terms_id = ?)|;
+ my ($description_long, $output_numberformat, $output_dateformat,
+ $output_longdates) =
+ selectrow_query($self, $dbh, $query,
+ $self->{"language_id"}, $self->{"payment_id"});
+
+ $self->{payment_terms} = $description_long if ($description_long);
+
+ if ($output_dateformat) {
+ foreach my $key (qw(netto_date skonto_date)) {
+ $self->{$key} =
+ $main::locale->reformat_date($myconfig, $self->{$key},
+ $output_dateformat,
+ $output_longdates);
+ }
+ }
+
+ if ($output_numberformat &&
+ ($output_numberformat ne $myconfig->{"numberformat"})) {
+ my $saved_numberformat = $myconfig->{"numberformat"};
+ $myconfig->{"numberformat"} = $output_numberformat;
+ $self->{skonto_amount} =
+ $self->format_amount($myconfig, $skonto_amount, 2);
+ $myconfig->{"numberformat"} = $saved_numberformat;
+ }
+ }
+
+ $self->{payment_terms} =~ s/<%netto_date%>/$self->{netto_date}/g;
+ $self->{payment_terms} =~ s/<%skonto_date%>/$self->{skonto_date}/g;
+ $self->{payment_terms} =~ s/<%skonto_amount%>/$self->{skonto_amount}/g;
+ $self->{payment_terms} =~ s/<%total%>/$self->{total}/g;
+ $self->{payment_terms} =~ s/<%invtotal%>/$self->{invtotal}/g;
+ $self->{payment_terms} =~ s/<%currency%>/$self->{currency}/g;
+ $self->{payment_terms} =~ s/<%terms_netto%>/$self->{terms_netto}/g;
+ $self->{payment_terms} =~ s/<%account_number%>/$self->{account_number}/g;
+ $self->{payment_terms} =~ s/<%bank%>/$self->{bank}/g;
+ $self->{payment_terms} =~ s/<%bank_code%>/$self->{bank_code}/g;
+
+ $dbh->disconnect;
+ }
+
+ $main::lxdebug->leave_sub();
+
+}
+