stretch
[freeside.git] / bin / svc_broadband.export
1 #!/usr/bin/perl
2
3 use strict;
4 use Text::CSV_XS;
5 use FS::UID qw(adminsuidsetup);
6 use FS::Record qw(qsearch);
7 use FS::svc_broadband;
8
9 my @fields = (
10   { 'header'   => 'pkgnum',
11     'callback' => sub { shift->cust_svc->pkgnum; },
12   },
13   { 'header'   => 'svcpart',
14     'callback' => sub { shift->cust_svc->svcpart; },
15   },
16   { 'header'   => 'Service',
17     'callback' => sub { shift->cust_svc->part_svc->svc; },
18   },
19   qw(
20     description
21     speed_up
22     speed_down
23     ip_addr
24     mac_addr
25     latitude
26     longitude
27   )
28 );
29
30 my $user = shift or die &usage;
31 adminsuidsetup $user;
32
33 my $agentnum = shift or die &usage;
34
35 my $csv = new Text::CSV_XS;
36
37 $csv->combine( map { ref($_) ? $_->{'header'} : $_ } @fields ) or die;
38 print $csv->string."\n";
39
40 my @svc_broadband = qsearch({
41   'select'    => 'svc_broadband.*',
42   'table'     => 'svc_broadband',
43   'addl_from' => 'LEFT JOIN cust_svc USING (svcnum)
44                   LEFT JOIN cust_pkg USING (pkgnum)
45                   LEFT JOIN cust_main USING ( custnum )',
46   'hashref'   => {},
47   'extra_sql' => "WHERE cust_main.agentnum = $agentnum",
48 });
49
50 foreach my $svc_broadband ( @svc_broadband ) {
51   $csv->combine( map { ref($_) ? &{$_->{'callback'}}($svc_broadband)
52                                : $svc_broadband->$_()
53                      } 
54                    @fields
55                ) or die;
56   print $csv->string."\n";
57 }
58
59 1;