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;
+}
+
1;
__END__
push @header, "<link rel='shortcut icon' href='$self->{favicon}' type='image/x-icon'>" if -f $self->{favicon};
push @header, '<script type="text/javascript" src="js/jquery.js"></script>',
'<script type="text/javascript" src="js/common.js"></script>',
- '<style type="text/css">@import url(js/jscalendar/calendar-win2k-1.css);</style>',
+ '<link rel="stylesheet" type="text/css" href="js/jscalendar/calendar-win2k-1.css">',
'<script type="text/javascript" src="js/jscalendar/calendar.js"></script>',
'<script type="text/javascript" src="js/jscalendar/lang/calendar-de.js"></script>',
'<script type="text/javascript" src="js/jscalendar/calendar-setup.js"></script>',
'<script type="text/javascript" src="js/part_selection.js"></script>',
'<script type="text/javascript" src="js/jquery-ui.js"></script>',
- '<style "type=text/css">@import url("css/ui-lightness/jquery-ui-1.8.12.custom.css")</style>';
+ '<link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.12.custom.css">';
push @header, $self->{javascript} if $self->{javascript};
push @header, map { $_->show_javascript } @{ $self->{AJAX} || [] };
push @header, "<script type='text/javascript'>function fokus(){ document.$self->{fokus}.focus(); }</script>" if $self->{fokus};
use Template::Plugin;
use List::MoreUtils qw(apply);
use List::Util qw(max);
+use Scalar::Util qw(blessed);
use strict;
$params{cal_align} ||= 'BR';
- $self->input_tag($name, $value,
+ my $str_value = blessed $value ? $value->to_lxoffice : $value;
+
+ $self->input_tag($name, $str_value,
id => $name_e,
size => 11,
title => _H($::myconfig{dateformat}),
$description = $cvar->{description} . ' ';
}
+ my $form_key = "ic_cvar_" . $cvar->{name} . "_$params{row}";
+
push @{ $params{ROW2} }, {
line_break => $num_visible_cvars == 1,
description => $description,
name_prefix => 'ic_',
name_postfix => "_$params{row}",
valid => $cvar->{valid},
- value => $form->{"ic_cvar_" . $cvar->{name} . "_$params{row}"},
+ value => CVar->parse($::form->{$form_key}, $cvar),
}
};
}
<textarea name="[% var_name %]" cols="[% HTML.escape(var.width) %]" rows="[% HTML.escape(var.height) %]">[% HTML.escape(var.value) %]</textarea>
[%- ELSIF var.type == 'date' %]
-<input name="[% var_name %]" id="[% var_name %]" size="12" value="[% HTML.escape(var.value) %]">
-<input name="[% var_name %]_button" id="[% var_name %]_trigger" type="button" value="?">
-
-<script type="text/javascript">
- <!--
- Calendar.setup({ inputField : "[% var_name %]",
- ifFormat : "[% myconfig_jsc_dateformat %]",
- align : "BR",
- button : "[% var_name %]_trigger" });
- -->
-</script>
+[% L.date_tag(var_name, var.value) %]
[%- ELSIF var.type == 'timestamp' %]
<input name="[% var_name %]" value="[% HTML.escape(var.value) %]">
[%- USE T8 %]
[%- USE HTML %]
[%- USE L %]
+[%- USE LxERP %]
[%- BLOCK cvar_name %][% HTML.escape(cvar.name_prefix) _ "cvar_" _ HTML.escape(cvar.var.name) _ HTML.escape(cvar.name_postfix) -%][% END %]
[%- BLOCK cvar_inputs %]
+[% render_input_blocks__cvar_name = PROCESS cvar_name %]
[%- %]
[%- IF cvar.hide_non_editable && !cvar.var.flag_editable %]
<input type="hidden" name="[% PROCESS cvar_name %]" value="[% HTML.escape(cvar.var.value) %]">
[%- ELSIF cvar.var.type == 'textfield' %]
<textarea name="[% PROCESS cvar_name %]" cols="[% HTML.escape(cvar.var.width) %]" rows="[% HTML.escape(cvar.var.height) %]">[% HTML.escape(cvar.value) %]</textarea>
[%- ELSIF cvar.var.type == 'date' %]
-<input name="[% PROCESS cvar_name %]" id="[% PROCESS cvar_name %]" size="12" value="[% HTML.escape(cvar.value) %]">
-<input name="[% PROCESS cvar_name %]_button" id="[% PROCESS cvar_name %]_trigger" type="button" value="?">
-<script type="text/javascript">
- <!--
- Calendar.setup({ inputField : "[% PROCESS cvar_name %]",
- ifFormat : "[% myconfig_jsc_dateformat %]",
- align : "BR",
- button : "[% PROCESS cvar_name %]_trigger" });
- -->
-</script>
+[%- L.date_tag(render_input_blocks__cvar_name, cvar.value) %]
+
[%- ELSIF cvar.var.type == 'timestamp' %]
<input name="[% PROCESS cvar_name %]" value="[% HTML.escape(cvar.value) %]">
[%- ELSIF cvar.var.type == 'select' %]
[%- END %]
</select>
[%- ELSIF cvar.var.type == 'customer' %]
-[% render_input_blocks__cvar_name = PROCESS cvar_name %][% L.customer_picker(render_input_blocks__cvar_name, cvar.value) %]
+[%- L.customer_picker(render_input_blocks__cvar_name, cvar.value) %]
+
+[%- ELSIF cvar.var.type == 'number' %]
+[%- L.input_tag(render_input_blocks__cvar_name, LxERP.format_amount(cvar.value, -2)) %]
+
[%- ELSE %]
<input name="[% PROCESS cvar_name %]" value="[% HTML.escape(cvar.value) %]" [%- IF cvar.var.maxlength %] maxlength="[% HTML.escape(cvar.var.maxlength) %]"[% END -%]>
[%- END %]