my $f_op = $params{filter}->{"${name}_qtyop"};
+ my $op;
if ($f_op eq '==') {
$op = '=';
return;
}
+ # allow sub_module to be a coderef or a fixed value
+ if (ref $params{sub_module} ne 'CODE') {
+ $params{sub_module} = sub { "$params{sub_module}" };
+ }
+
my %cfg_map = map { $_->{id} => $_ } @{ $configs };
my @cfg_ids = keys %cfg_map;
my $sth = prepare_query($form, $dbh, $query);
foreach my $row (@{ $params{data} }) {
- do_statement($form, $sth, $query, @cfg_ids, conv_i($row->{$params{trans_id_field}}), "$params{sub_module}");
+ do_statement($form, $sth, $query, @cfg_ids, conv_i($row->{$params{trans_id_field}}), $params{sub_module}->($row));
while (my $ref = $sth->fetchrow_hashref()) {
my $cfg = $cfg_map{$ref->{config_id}};
$row->{"cvar_$cfg->{name}"} =
$cfg->{type} eq 'date' ? $ref->{date_value}
: $cfg->{type} eq 'timestamp' ? $ref->{timestamp_value}
- : $cfg->{type} eq 'number' ? $form->format_amount($myconfig, $ref->{number_value} * 1, $config->{precision})
+ : $cfg->{type} eq 'number' ? $form->format_amount($myconfig, $ref->{number_value} * 1, $cfg->{precision})
: $cfg->{type} eq 'bool' ? ($ref->{bool_value} ? $locale->text('Yes') : $locale->text('No'))
: $ref->{text_value};
}