fix agent type selection for the simple case, RT#30942, RT#28804
[freeside.git] / httemplate / edit / part_pkg.cgi
index e91f8cb..5e42687 100755 (executable)
                             'plan'             => 'Price plan',
                             'disabled'         => 'Disable new orders',
                             'disable_line_item_date_ranges' => 'Disable line item date ranges',
+                            'start_on_hold'    => 'Start on hold',
                             'setup_cost'       => 'Setup cost',
                             'recur_cost'       => 'Recur cost',
                             'pay_weight'       => 'Payment weight',
                             'credit_weight'    => 'Credit weight',
                             'agent_pkgpartid'  => 'External ID',
                            'agentnum'         => 'Agent',
+                           'agent_type'       => ' ', #just its title headingn is fine
                             'setup_fee'        => 'Setup fee',
                             'setup_show_zero'  => 'Show zero setup',
                             'recur_fee'        => 'Recurring fee',
                               ),
                               {field=>'disabled', type=>$disabled_type, value=>'Y'},
                               {field=>'disable_line_item_date_ranges', type=>$disabled_type, value=>'Y'},
+                              { field => 'start_on_hold',
+                                type => 'checkbox',
+                                value => 'Y'
+                              },
 
                               { type     => 'tablebreak-tr-title',
                                 value    => 'Pricing', #better name?
 
                             { type => 'columnnext' },
 
-                              { field    => 'agent_type',
-                                type     => 'select-agent_types',
-                                disabled => ! $acl_edit_global,
+                              {type=>'justtitle', value=>'Agent (reseller) types' },
+                              
+                              { field       => 'agent_type',
+                                type        => 'select-agent_type',
+                                disabled    => ! $acl_edit_global,
+                                element_etc => 'size="10"',
+                                multiple    =>  '1', #cause edit.html is dum
                                 curr_value_callback => sub {
                                   my($cgi, $object, $field) = @_;
                                   #in the other callbacks..?  hmm.
                       },
                       { field=>'pay_weight',    type=>'text', size=>6 },
                       { field=>'credit_weight', type=>'text', size=>6 },
-                      
-                       ( $conf->exists('cust_pkg-show_fcc_voice_grade_equivalent')
-                                ? ( 
-                                    { type  => 'tablebreak-tr-title',
-                                      value => 'FCC Form 477 information',
-                                    },
-                                    { field=>'fcc_voip_class',
-                                      type=>'select-voip_class',
-                                    },
-                                    { field=>'fcc_ds0s', type=>'text', size=>6 },
-                                  )
-                                 : ()
-                              ),
-
+                    ($fcc_opts ? ( 
+                      { type  => 'tablebreak-tr-title',
+                        value => 'FCC Form 477 information',
+                      },
+                      { field => 'fcc_options_string',
+                        type  => 'input-fcc_options',
+                        curr_value_callback => sub {
+                          my ($cgi, $part_pkg, $fref) = @_;
+                          if ( $cgi->param('fcc_options_string') ) {
+                            # error redirect
+                            return $cgi->param('fcc_options_string');
+                          }
+                          my %hash;
+                          %hash = $part_pkg->fcc_options 
+                            if ($part_pkg->pkgpart);
+                          return encode_json(\%hash);
+                        },
+                      },
+                      ) : ()
+                    ),
                             { type => 'columnend' },
 
                             { 'type'  => $report_option ? 'tablebreak-tr-title'
@@ -369,6 +385,8 @@ my $agent_clone_extra_sql =
 my $conf = new FS::Conf;
 my $taxproducts = $conf->exists('enable_taxproducts');
 
+my $fcc_opts = $conf->exists('part_pkg-show_fcc_options');
+
 my @locales = grep { ! /^en_/i } $conf->config('available-locales'); #should filter from the default locale lang instead of en_
 my %locale_labels =  map {
   ( $_ => 'Package -- '. FS::Locales->description($_) )
@@ -888,6 +906,8 @@ my $html_bottom = sub {
       } elsif ( $href->{$field}{'type'} eq 'select-rate' ) {
 
         $html .= include('/elements/select-rate.html',
+                           'field'      => $layer.'__'.$field,
+                           'curr_value' => $options{$field},
                            map { $_ => $href->{$field}{$_} }
                              grep { $_ !~ /^(name|type)$/ }
                                keys %{ $href->{$field} }