#'viewall_dir' => 'browse',
'viewall_url' => $p.'browse/part_pkg.cgi',
'html_init' => include('/elements/init_overlib.html').
+ include('/elements/init_calendar.html').
$javascript,
'html_bottom' => $html_bottom,
+ 'extra_fields_validate' => $validate_priceplan_fields,
'body_etc' =>
'onLoad="agent_changed(document.edit_topform.agentnum);
aux_planchanged(document.edit_topform.plan);
#recurring frequency
#recurring fee (auto-disable)
- { type => 'columnnext' },
+ { type => 'columnnext', value=>'Taxation', },
- {type=>'justtitle', value=>'Taxation' },
{field=>'setuptax', type=>'checkbox', value=>'Y'},
{field=>'recurtax', type=>'checkbox', value=>'Y'},
{field=>'taxclass', type=>'select-taxclass' },
)
),
- { type => 'columnnext' },
-
- {type=>'justtitle', value=>'Agent (reseller) types' },
+ { type => 'columnnext', value=>'Agent (reseller) types' },
{ field => 'agent_type',
type => 'select-agent_type',
'name_col' => 'name',
'hashref' => { 'disabled' => '' },
'multiple' => 1,
+ 'curr_value_callback' => $report_option_value_callback,
},
{ 'type' => 'tablebreak-tr-title',
};
+my $report_option_value_callback = sub {
+ my ($cgi, $object) = @_;
+ my @report_option;
+ if ( defined $cgi->param('report_option') ) {
+ @report_option = $cgi->param('report_option');
+ } else {
+ foreach ($object->options) {
+ /^report_option_(\d+)$/ && (push @report_option, $1);
+ }
+ }
+ join(',', @report_option);
+};
+
sub set_report_option {
my($cgi, $object, $fields ) = @_; #, $opt
my @report_option = ();
foreach ($object->options) {
/^usage_taxproductnum_(\d+)$/ && ($taxproductnums{$1} = 1);
- /^report_option_(\d+)$/ && (push @report_option, $1);
+# /^report_option_(\d+)$/ && (push @report_option, $1);
}
foreach ($object->part_pkg_taxoverride) {
$taxproductnums{$_->usage_class} = 1
if $_->usage_class;
}
- $cgi->param('report_option', join(',', @report_option));
- foreach my $field ( @$fields ) {
- next unless (
- ref($field) eq 'HASH' &&
- $field->{field} &&
- $field->{field} eq 'report_option'
- );
- #$field->{curr_value} = join(',', @report_option);
- $field->{value} = join(',', @report_option);
- }
+# $cgi->param('report_option', join(',', @report_option));
+# foreach my $field ( @$fields ) {
+# next unless (
+# ref($field) eq 'HASH' &&
+# $field->{field} &&
+# $field->{field} eq 'report_option'
+# );
+# #$field->{curr_value} = join(',', @report_option);
+# $field->{value} = join(',', @report_option);
+# }
}
if ( $cgi->param('pkgnum') ) {
- my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cgi->param('pkgnum') } );
+ my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => scalar($cgi->param('pkgnum')) } );
$object->agentnum( $cust_pkg->cust_main->agentnum );
$opt->{action} = 'Custom';
$object->set($_ => $options{$_})
foreach (qw( setup_fee recur_fee disable_line_item_date_ranges ));
+ $recur_disabled = $object->freq ? 0 : 1;
+ $recur_show_zero_disabled =
+ $object->freq
+ ? $object->option('recur_fee') > 0 ? 1 : 0
+ : 1;
+
foreach my $currency ( $conf->config('currencies') ) {
my %part_pkg_currency = $object->part_pkg_currency_options($currency);
$object->set( $_.'_'.$currency, $part_pkg_currency{$_} )
&& $cgi->param("usagepricepart$1_price") )
{
new FS::part_pkg_usageprice {
- 'usagepricepart' => $cgi->param("usagepricepart$1"),
+ 'usagepricepart' => scalar($cgi->param("usagepricepart$1")),
'pkgpart' => $object->pkgpart,
'price' => scalar($cgi->param("usagepricepart$1_price")),
#'currency
supp_pkg_rows[0].style.display = 'none';
var button = document.getElementById('show_supp_pkgs');
button.onclick = show_supp_pkgs_click;
- button.style.backgroundColor = '#cccccc';
- button.style.border = '1px solid #7e0079';
+ //button.style.backgroundColor = '#cccccc';
+ //button.style.border = '1px solid #7e0079';
+ button.style.border = 'thin solid #999999';
button.style.padding = '1px';
}
}
map { $_ => ( $plans{$_}->{'shortname'} || $plans{$_}->{'name'} ) }
keys %plans;
+my $validate_priceplan_fields = {};
+foreach my $priceplan (keys %plans) {
+ my $plan_fields = $plans{$priceplan}->{fields};
+ foreach my $price_plan_field (keys %$plan_fields) {
+ $validate_priceplan_fields->{$priceplan."__".$price_plan_field} = $plan_fields->{$price_plan_field}->{"js_validate"}
+ if exists $plan_fields->{$price_plan_field}->{"js_validate"};
+ }
+}
+
my $html_bottom = sub {
my( $object ) = @_;
my $layer_callback = sub {
my $layer = shift;
- my $html = ntable("#cccccc",2);
+ my $html = '<TABLE CLASS="fsinnerbox">';
#$html .= '
# <TR>
: $href->{$field}{'default'} ).
qq!">!;
+ } elsif ( $href->{$field}{'type'} eq 'textarea' ) {
+
+ $html .= qq!<TEXTAREA NAME="${layer}__$field">!.
+ ( exists($options{$field})
+ ? &$format($options{$field})
+ : $href->{$field}{'default'} ).
+ qq!</TEXTAREA>!;
+
} elsif ( $href->{$field}{'type'} eq 'checkbox' ) {
$html .= qq!<INPUT TYPE="checkbox" NAME="${layer}__$field" VALUE=1 !.
: ''
). '>';
- } elsif ( $href->{$field}{'type'} eq 'select-rt-customfield' ) {
+ } elsif ( $href->{$field}{'type'} eq 'date' ) {
+
+ $html .= include('/elements/input-date-field.html', {
+ 'name' => $layer.'__'.$field,
+ 'value' => $options{$field},
+ });
+
+ } elsif ( $href->{$field}{'type'} =~ /^select-rt-/ ) {
- $html .= include('/elements/select-rt-customfield.html',
+ $html .= include('/elements/'.$href->{$field}{'type'}.'.html',
'name' => $layer.'__'.$field,
'curr_value' => $options{$field},
map { $_ => $href->{$field}{$_} }