torrus access rights, RT10574
[freeside.git] / httemplate / edit / part_pkg.cgi
index 9144c49..be8b0f6 100755 (executable)
                             },
                             { 'field'      => 'bill_dst_pkgpart',
                               'type'       => 'select-part_pkg',
+                              'extra_sql'  => sub { $pkgpart
+                                                     ? "AND pkgpart != $pkgpart"
+                                                     : ''
+                                                  },
                               'm2_label'   => 'Include line item(s) from package',
                               'm2m_method' => 'bill_part_pkg_link',
                               'm2m_dstcol' => 'dst_pkgpart',
                             { 'field'      => 'svc_dst_pkgpart',
                               'label'      => 'Also include services from package: ',
                               'type'       => 'select-part_pkg',
+                              'extra_sql'  => sub { $pkgpart
+                                                     ? "AND pkgpart != $pkgpart"
+                                                     : ''
+                                                  },
                               'm2_label'   => 'Include services of package: ',
                               'm2m_method' => 'svc_part_pkg_link',
                               'm2m_dstcol' => 'dst_pkgpart',
@@ -317,6 +325,8 @@ my @taxproductnums = ( qw( setup recur ), sort (keys %taxproductnums) );
 my %options = ();
 my $recur_disabled = 1;
 
+my $pkgpart = '';
+
 my $error_callback = sub {
   my($cgi, $object, $fields, $opt ) = @_;
 
@@ -350,6 +360,8 @@ my $error_callback = sub {
   $object->set($_ => scalar($cgi->param($_)) )
     foreach (qw( setup_fee recur_fee ));
 
+  $pkgpart = $object->pkgpart;
+
 };
 
 my $new_hashref_callback = sub { { 'plan' => 'flat' }; };
@@ -399,17 +411,22 @@ my $edit_callback = sub {
   $object->set($_ => $object->option($_))
     foreach (qw( setup_fee recur_fee ));
 
+  $pkgpart = $object->pkgpart;
+
 };
 
 my $new_callback = sub {
   my( $cgi, $object, $fields ) = @_;
 
   my $conf = new FS::Conf; 
+
   if ( $conf->exists('agent_defaultpkg') ) {
     #my @all_agent_types = map {$_->typenum} qsearch('agent_type',{});
     @agent_type = map {$_->typenum} qsearch('agent_type',{});
   }
 
+  $options{'suspend_bill'}=1 if $conf->exists('part_pkg-default_suspend_bill');
+
 };
 
 my $clone_callback = sub {