use strict;
use List::Util qw(first);
+use Scalar::Util qw(blessed);
use Data::Dumper;
use SL::DBUtils;
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
- do_query($form, $dbh, qq|DELETE FROM custom_variables WHERE config_id = ?|, conv_i($params{id}));
- do_query($form, $dbh, qq|DELETE FROM custom_variable_configs WHERE id = ?|, conv_i($params{id}));
+ do_query($form, $dbh, qq|DELETE FROM custom_variables WHERE config_id = ?|, conv_i($params{id}));
+ do_query($form, $dbh, qq|DELETE FROM custom_variables_validity WHERE config_id = ?|, conv_i($params{id}));
+ do_query($form, $dbh, qq|DELETE FROM custom_variable_configs WHERE id = ?|, conv_i($params{id}));
$dbh->commit();
return sub { !$invalids{+shift} };
}
+sub parse {
+ my ($self, $value, $config) = @_;
+
+ return $::form->parse_amount(\%::myconfig, $value) if $config->{type} eq 'number';
+ return DateTime->from_lxoffice($value) if $config->{type} eq 'date';
+ return !ref $value ? SL::DB::Manager::Customer->find_by(id => $value * 1) : $value if $config->{type} eq 'customer';
+ return $value;
+}
+
+sub format_to_template {
+ my ($self, $value, $config) = @_;
+ # stupid template expects everything formated. except objects
+ # do not use outside of print routines for legacy templates
+
+ return $::form->parse_amount(\%::myconfig, $value) if $config->{type} eq 'number';
+ return $value->to_lxoffice if $config->{type} eq 'date' && blessed $value && $value->can('to_lxoffice');
+ return $value;
+}
+
1;
__END__