X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMasonComponent.pm;h=b6f8aa4c6df4d5434573f1478472f5d7b4a4e19b;hb=c110da0da864245e47cae019b8a347367cc6430c;hp=c4094ffe069216ab5228ccc844fffc62c020a531;hpb=2b10c0594ff2ab9ce37d9f8af9c154d3bedde731;p=freeside.git

diff --git a/FS/FS/ClientAPI/MasonComponent.pm b/FS/FS/ClientAPI/MasonComponent.pm
index c4094ffe0..b6f8aa4c6 100644
--- a/FS/FS/ClientAPI/MasonComponent.pm
+++ b/FS/FS/ClientAPI/MasonComponent.pm
@@ -27,6 +27,7 @@ my %allowed_comps = map { $_=>1 } qw(
 my %session_comps = map { $_=>1 } qw(
   /elements/location.html
   /elements/tr-amount_fee.html
+  /elements/select-part_pkg.html
   /edit/cust_main/first_pkg/select-part_pkg.html
 );
 
@@ -99,11 +100,33 @@ my %session_callbacks = (
     my %args = @$argsref;
     $args{part_pkg} = \@part_pkg;
     $args{first_svc} = \@first_svc;
+    $args{no_comment} = 1;
+    $args{label_callback} = sub { shift->pkg_comment };
     @$argsref = ( %args );
     return ''; #no error
 
   },
 
+  '/elements/select-part_pkg.html' => sub {
+    my( $custnum, $argsref ) = @_;
+    my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } )
+      or return "unknown custnum $custnum";
+
+    my $pkgpart = $cust_main->agent->pkgpart_hashref;
+
+    #false laziness w/ edit/cust_main/first_pkg.html
+    my @first_svc = ( 'svc_acct', 'svc_phone' );
+
+    my @part_pkg =
+      grep { $pkgpart->{ $_->pkgpart } 
+                  || ( $_->agentnum && $_->agentnum == $cust_main->agentnum )
+           }
+      qsearch( 'part_pkg', { 'disabled' => '' }, '', 'ORDER BY pkg' ); # case?
+
+    push @$argsref, 'part_pkg' =>  \@part_pkg;
+    '';
+  },
+
 );
 
 my $outbuf;