X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_pkg.cgi;h=e08f0e1a178e4ceb2bbe54098cc64432ba30fc6b;hb=920cb8c14031bcd1b7915ad94ef5b01ca4432e22;hp=570c5ac753b6faac2b20f9086c298864d1b2ae94;hpb=2b2dd969f3c18751afc583ad1e836ab8e6f73b5d;p=freeside.git diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index 570c5ac75..e08f0e1a1 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -92,7 +92,7 @@ { type => 'columnstart' }, { field => 'pkg', - type => 'text', + type => 'input-locale-text', size => 40, #32 maxlength => 50, }, @@ -193,7 +193,7 @@ { field => 'change_to_pkgpart', type => 'select-part_pkg', extra_sql => sub { $pkgpart - ? "AND pkgpart != $pkgpart" + ? "AND part_pkg.pkgpart != $pkgpart" : '' }, empty_label => 'no package', @@ -297,7 +297,7 @@ { field=>'agent_pkgpartid', type=>'text', size=>21 }, { type => 'tablebreak-tr-title', - value => 'Line-item revenue recogition', #better name? + value => 'Line-item revenue recognition', #better name? }, { field=>'pay_weight', type=>'text', size=>6 }, { field=>'credit_weight', type=>'text', size=>6 }, @@ -326,6 +326,7 @@ 'name_col' => 'name', 'hashref' => { 'disabled' => '' }, 'multiple' => 1, + 'curr_value_callback' => $report_option_value_callback, }, { 'type' => 'tablebreak-tr-title', @@ -351,7 +352,7 @@ { 'field' => 'bill_dst_pkgpart', 'type' => 'select-part_pkg', 'extra_sql' => sub { $pkgpart - ? "AND pkgpart != $pkgpart" + ? "AND part_pkg.pkgpart != $pkgpart" : '' }, 'label_callback' => sub { shift->pkg_comment_only }, @@ -378,7 +379,7 @@ 'label' => 'Also include services from package: ', 'type' => 'select-part_pkg', 'extra_sql' => sub { $pkgpart - ? "AND pkgpart != $pkgpart" + ? "AND part_pkg.pkgpart != $pkgpart" : '' }, 'label_callback' => sub { shift->pkg_comment_only }, @@ -495,42 +496,6 @@ my $recur_show_zero_disabled = 1; my $pkgpart = ''; -my $splice_locale_fields = sub { - my( $fields, $pkey_value_callback, $pkg_value_callback ) = @_; - - my $n = 0; - my @locale_fields = ( - map { - my $pkey_value= $pkey_value_callback ? &$pkey_value_callback($_) : ''; - my $pkg_value = $pkg_value_callback - ? $pkg_value_callback eq 'cgiparam' - ? $cgi->param('pkgpartmsgnum'. $n. '_pkg') - : &$pkg_value_callback($_) - : ''; - ( - { field => 'pkgpartmsgnum'. $n, - type => 'hidden', - value => $pkey_value, - }, - { field => 'pkgpartmsgnum'. $n. '_locale', - type => 'hidden', - value => $_, - }, - { field => 'pkgpartmsgnum'. $n++. '_pkg', - type => 'text', - size => 40, - #maxlength => 50, - value => $pkg_value, - }, - ); - - } - @locales - ); - splice(@$fields, 7, 0, @locale_fields); #XXX 7 is arbitrary above - -}; - my $error_callback = sub { my($cgi, $object, $fields, $opt ) = @_; @@ -579,16 +544,6 @@ my $error_callback = sub { $pkgpart = $object->pkgpart; - &$splice_locale_fields( - $fields, - sub { - my $locale = shift; - my $part_pkg_msgcat = $object->part_pkg_msgcat($locale); - $part_pkg_msgcat ? $part_pkg_msgcat->pkgpartmsgnum : ''; - }, - 'cgiparam' - ); - if ( $cgi->param('error') =~ / is suggested with / ) { #yeah, detection is a shitty kludge, but we don't have exception objects $opt->{form_init} = ' Override suggestion

'; @@ -609,29 +564,42 @@ my $new_object_callback = sub { }; +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); +# } } @@ -665,20 +633,6 @@ my $edit_callback = sub { $pkgpart = $object->pkgpart; - &$splice_locale_fields( - $fields, - sub { - my $locale = shift; - my $part_pkg_msgcat = $object->part_pkg_msgcat($locale); - $part_pkg_msgcat ? $part_pkg_msgcat->pkgpartmsgnum : ''; - }, - sub { - my $locale = shift; - my $part_pkg_msgcat = $object->part_pkg_msgcat($locale); - $part_pkg_msgcat ? $part_pkg_msgcat->pkg : ''; - } - ); - }; my $new_callback = sub { @@ -692,8 +646,6 @@ my $new_callback = sub { $options{'suspend_bill'}=1 if $conf->exists('part_pkg-default_suspend_bill'); - &$splice_locale_fields($fields, '', ''); - }; my $clone_callback = sub { @@ -732,17 +684,6 @@ my $clone_callback = sub { foreach keys %part_pkg_currency; } - $recur_disabled = $object->freq ? 0 : 1; - - &$splice_locale_fields( - $fields, - '', - sub { - my $locale = shift; - my $part_pkg_msgcat = $object->part_pkg_msgcat($locale); - $part_pkg_msgcat ? $part_pkg_msgcat->pkg : ''; - } - ); }; my $discount_error_callback = sub { @@ -1061,6 +1002,16 @@ my $html_bottom = sub { : '' ). '>'; + } elsif ( $href->{$field}{'type'} =~ /^select-rt-/ ) { + + $html .= include('/elements/'.$href->{$field}{'type'}.'.html', + 'name' => $layer.'__'.$field, + 'curr_value' => $options{$field}, + map { $_ => $href->{$field}{$_} } + grep { $_ !~ /^(name|type|parse)$/ } + keys %{ $href->{$field} } + ); + } elsif ( $href->{$field}{'type'} eq 'select-rate' ) { $html .= include('/elements/select-rate.html',