X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_pkg.cgi;h=dd8cb13a2ab388f776dcd386dfb0e283146da68e;hp=e08f0e1a178e4ceb2bbe54098cc64432ba30fc6b;hb=b71b1576c68bc40ad26592b354feace37a029f0e;hpb=04e01775639ae8ec9d604d4b48f2e7b2ce2a95ca diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index e08f0e1a1..dd8cb13a2 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -9,6 +9,7 @@ #'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, 'body_etc' => @@ -40,7 +41,6 @@ 'setuptax' => 'Setup fee tax exempt', 'recurtax' => 'Recurring fee tax exempt', 'taxclass' => 'Tax class', - 'taxproduct_select'=> 'Tax products', 'plan' => 'Price plan', 'disabled' => 'Disable new orders', 'disable_line_item_date_ranges' => 'Disable line item date ranges', @@ -73,6 +73,7 @@ 'contract_end_months' => 'Contract ends after ', 'expire_months' => 'Cancel the package after ', 'change_to_pkgpart'=> 'and replace it with ', + 'units_taxproductnum' => 'Per-line tax product', }, 'fields' => [ @@ -214,28 +215,15 @@ type => 'hidden', value => join(',', @taxproductnums), }, - #{ field => 'taxproduct_select', - # type => 'selectlayers', - # options => [ '(default)', @taxproductnums ], - # curr_value => '(default)', - # labels => { ( '(default)' => '(default)' ), - # map {($_=>$usage_class{$_})} - # @taxproductnums - # }, - # layer_fields => \%taxproduct_fields, - # layer_values_callback => $taxproduct_values, - # layers_only => !$taxproducts, - # cell_style => ( !$taxproducts - # ? 'display:none' - # : '' - # ), - #}, { field => 'taxproductnum', type => 'part_pkg-taxproducts', include_opt_callback => sub { pkgpart => $_[0]->pkgpart }, }, - + { field => 'units_taxproductnum', + type => ($tax_data_vendor ? + 'select-taxproduct' : 'hidden'), + }, { type => 'tablebreak-tr-title', value => 'Promotions', #better name? }, @@ -445,7 +433,7 @@ my $agent_clone_extra_sql = ' ) '; my $conf = new FS::Conf; -my $taxproducts = $conf->config('tax_data_vendor') ne ''; +my $tax_data_vendor = $conf->config('tax_data_vendor'); my $fcc_opts = $conf->exists('part_pkg-show_fcc_options'); @@ -653,7 +641,7 @@ my $clone_callback = sub { 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'; @@ -678,6 +666,12 @@ my $clone_callback = sub { $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{$_} ) @@ -710,7 +704,7 @@ my $usageprice_error_callback = sub { && $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 @@ -994,6 +988,14 @@ my $html_bottom = sub { : $href->{$field}{'default'} ). qq!">!; + } elsif ( $href->{$field}{'type'} eq 'textarea' ) { + + $html .= qq!!; + } elsif ( $href->{$field}{'type'} eq 'checkbox' ) { $html .= qq!'; + } 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/'.$href->{$field}{'type'}.'.html', @@ -1106,13 +1115,8 @@ my $html_bottom = sub { my $return = include('/elements/selectlayers.html', %selectlayers, 'layers_only'=>1 ). ''; + include('/elements/selectlayers.html', %selectlayers, 'js_only'=>1 ) . + ''; $return; @@ -1193,16 +1197,8 @@ my $field_callback = sub { my $field = $fieldref->{field}; if ($field eq 'taxproductnums') { $fieldref->{value} = join(',', @taxproductnums); - } elsif ($field eq 'taxproduct_select') { - $fieldref->{options} = [ '(default)', @taxproductnums ]; - $fieldref->{labels} = { ( '(default)' => '(default)' ), - map {( $_ => ($usage_class{$_} || $_) )} - @taxproductnums - }; - $fieldref->{layer_fields} = \%taxproduct_fields; - $fieldref->{layer_values_callback} = $taxproduct_values; } elsif ($field eq 'taxproductnum') { # part_pkg-taxproduct, new style - if ( !$taxproducts ) { + if ( !$tax_data_vendor ) { # then make the widget go away $fieldref->{type} = 'hidden'; }