#!/usr/bin/perl use strict; use Text::CSV_XS; use FS::UID qw(adminsuidsetup); use FS::Record qw(qsearch); use FS::svc_acct; my @fields = ( { 'header' => 'pkgnum', 'callback' => sub { shift->cust_svc->pkgnum; }, }, { 'header' => 'svcpart', 'callback' => sub { shift->cust_svc->svcpart; }, }, { 'header' => 'Service', 'callback' => sub { shift->cust_svc->part_svc->svc; }, }, qw( username _password slipip ) ); my $user = shift or die &usage; adminsuidsetup $user; my $agentnum = shift or die &usage; my $csv = new Text::CSV_XS; $csv->combine( map { ref($_) ? $_->{'header'} : $_ } @fields ) or die; print $csv->string."\n"; my @svc_acct = qsearch({ 'table' => 'svc_acct', 'addl_from' => 'LEFT JOIN cust_svc USING (svcnum) LEFT JOIN cust_pkg USING (pkgnum) LEFT JOIN cust_main USING ( custnum )', 'hashref' => {}, 'extra_sql' => "WHERE cust_main.agentnum = $agentnum", }); foreach my $svc_acct ( @svc_acct ) { $csv->combine( map { ref($_) ? &{$_->{'callback'}}($svc_acct) : $svc_acct->$_() } @fields ) or die; print $csv->string."\n"; } 1;