$first_array_entry = 0;
}
} else {
- @result = ({ 'key' => $prefix . $key . ($first_array_entry ? '[+]' : '[]'), 'value' => $element });
+ push @result, { 'key' => $prefix . $key . '[]', 'value' => $element };
}
}
}
sub throw_on_error {
my ($self, $code) = @_;
- local $self->{__ERROR_HANDLER} = sub { die SL::X::FormError->new($_[0]) };
+ local $self->{__ERROR_HANDLER} = sub { SL::X::FormError->throw(error => $_[0]) };
$code->();
}
sub dberror {
my ($self, $msg) = @_;
- die SL::X::DBError->new(
- msg => $msg,
- error => $DBI::errstr,
+ SL::X::DBError->throw(
+ msg => $msg,
+ db_error => $DBI::errstr,
);
}
sub generate_email_body {
$main::lxdebug->enter_sub();
- my ($self) = @_;
+ my ($self, %params) = @_;
# simple german and english will work grammatically (most european languages as well)
# Dear Mr Alan Greenspan:
# Sehr geehrte Frau Meyer,
# Gentile Signora Ferrari,
my $body = '';
- if ($self->{cp_id}) {
+ if ($self->{cp_id} && !$params{record_email}) {
my $givenname = SL::DB::Contact->load_cached($self->{cp_id})->cp_givenname; # for qw(gender givename name);
my $name = SL::DB::Contact->load_cached($self->{cp_id})->cp_name; # for qw(gender givename name);
my $gender = SL::DB::Contact->load_cached($self->{cp_id})->cp_gender; # for qw(gender givename name);
$self->reformat_numbers($output_numberformat, $precision, @{ $field_list });
}
+ # Translate units
+ if (($self->{language} // '') ne '') {
+ my $template_arrays = $self->{TEMPLATE_ARRAYS} || $self;
+ for my $idx (0..scalar(@{ $template_arrays->{unit} }) - 1) {
+ $template_arrays->{unit}->[$idx] = AM->translate_units($self, $self->{language}, $template_arrays->{unit}->[$idx], $template_arrays->{qty}->[$idx])
+ }
+ }
+
$self->{template_meta} = {
formname => $self->{formname},
language => SL::DB::Manager::Language->find_by_or_create(id => $self->{language_id} || undef),