Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / misc / cust-part_pkg.cgi
1 <% encode_json( \@return ) %>\
2 <%init>
3
4 my( $custnum, $prospectnum, $classnum ) = $cgi->param('arg');
5
6
7 my $agent;
8 my $cust_main;
9 if ( $custnum ) {
10   $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } )
11     or die 'unknown custnum';
12   $agent = $cust_main->agent;
13 } else {
14   my $prospect_main = qsearchs('prospect_main', {'prospectnum'=>$prospectnum} )
15     or die 'unknown prospectnum';
16   $agent = $prospect_main->agent;
17 }
18
19 my %hash = ( 'disabled' => '' );
20 if ( $classnum > 0 ) {
21   $hash{'classnum'} = $classnum;
22 } elsif ( $classnum eq '' || $classnum == 0 ) {
23   $hash{'classnum'} = '';
24 } #else -1, all classes, so don't set classnum
25
26 my @part_pkg = qsearch({
27   'table'     => 'part_pkg',
28   'hashref'   => \%hash,
29   'extra_sql' =>
30     ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql( 'null'=>1 ).
31     ' AND '. FS::part_pkg->agent_pkgs_sql( $agent ),
32   'order_by'  => 'ORDER BY pkg',
33 });
34
35 my $date_format = FS::Conf->new->config('date_format') || '%m/%d/%Y';
36
37 my @return = map  {
38                     my $start_date = $_->default_start_date($cust_main);
39                     $start_date = time2str($date_format, $start_date)
40                       if $start_date;
41                     ( $_->pkgpart,
42                       $_->pkg_comment,
43                       $_->can_discount,
44                       $_->can_start_date,
45                       $start_date,
46                     )
47                   }
48                   #sort { $a->pkg_comment cmp $b->pkg_comment }
49                   @part_pkg;
50
51 </%init>