summaryrefslogtreecommitdiff
path: root/httemplate/misc/cust-part_pkg.cgi
blob: 7aebda40c725b0d827d66181cd66570a214c66b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<% encode_json( \@return ) %>\
<%init>

my( $custnum, $prospectnum, $classnum ) = $cgi->param('arg');


my $agent;
my $cust_main;
if ( $custnum ) {
  $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } )
    or die 'unknown custnum';
  $agent = $cust_main->agent;
} else {
  my $prospect_main = qsearchs('prospect_main', {'prospectnum'=>$prospectnum} )
    or die 'unknown prospectnum';
  $agent = $prospect_main->agent;
}

my %hash = ( 'disabled' => '' );
if ( $classnum > 0 ) {
  $hash{'classnum'} = $classnum;
} elsif ( $classnum eq '' || $classnum == 0 ) {
  $hash{'classnum'} = '';
} #else -1, all classes, so don't set classnum

my @part_pkg = qsearch({
  'table'     => 'part_pkg',
  'hashref'   => \%hash,
  'extra_sql' =>
    ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql( 'null'=>1 ).
    ' AND '. FS::part_pkg->agent_pkgs_sql( $agent ),
  'order_by'  => 'ORDER BY pkg',
});

my $date_format = FS::Conf->new->config('date_format') || '%m/%d/%Y';

my @return = map  {
                    my $start_date = $_->default_start_date($cust_main);
                    $start_date = time2str($date_format, $start_date)
                      if $start_date;
                    ( $_->pkgpart,
                      $_->pkg_comment,
                      $_->can_discount,
                      $_->can_start_date,
                      $start_date,
                    )
                  }
                  #sort { $a->pkg_comment cmp $b->pkg_comment }
                  @part_pkg;

</%init>