Option to ignore old CDRs, RT#81480
[freeside.git] / bin / svc_phone.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_phone;
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     phonenum
21     pin
22     sip_password
23     phone_name
24   )
25 );
26
27 my $user = shift or die &usage;
28 adminsuidsetup $user;
29
30 my $agentnum = shift or die &usage;
31
32 my $csv = new Text::CSV_XS;
33
34 $csv->combine( map { ref($_) ? $_->{'header'} : $_ } @fields ) or die;
35 print $csv->string."\n";
36
37 my @svc_phone = qsearch({
38   'table'     => 'svc_phone',
39   'addl_from' => 'LEFT JOIN cust_svc USING (svcnum)
40                   LEFT JOIN cust_pkg USING (pkgnum)
41                   LEFT JOIN cust_main USING ( custnum )',
42   'hashref'   => {},
43   'extra_sql' => "WHERE cust_main.agentnum = $agentnum",
44 });
45
46 foreach my $svc_phone ( @svc_phone ) {
47   $csv->combine( map { ref($_) ? &{$_->{'callback'}}($svc_phone)
48                                : $svc_phone->$_()
49                      } 
50                    @fields
51                ) or die;
52   print $csv->string."\n";
53 }
54
55 1;