diff options
author | Ivan Kohler <ivan@freeside.biz> | 2012-08-28 16:06:15 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2012-08-28 16:06:15 -0700 |
commit | 0e17277ed0cc243452dfc07d1bd702502c7d50c3 (patch) | |
tree | 85ca356d78bf85962752a1d762b3286cee8e7d84 /bin/cust_pkg.export | |
parent | 9f2220031123f06ab275840a3129c9807b9a782a (diff) |
adding export scripts for ea, RT#19067
Diffstat (limited to 'bin/cust_pkg.export')
-rwxr-xr-x | bin/cust_pkg.export | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/bin/cust_pkg.export b/bin/cust_pkg.export new file mode 100755 index 000000000..f922e02f0 --- /dev/null +++ b/bin/cust_pkg.export @@ -0,0 +1,61 @@ +#!/usr/bin/perl + +use strict; +use Text::CSV_XS; +use FS::UID qw(adminsuidsetup); +use FS::Record qw(qsearch); +use FS::cust_pkg; +use Date::Format; + +my @fields = qw( + pkgnum + custnum + status + pkgpart +); + +push @fields, + { 'header' => 'Package', + 'callback' => sub { shift->part_pkg->pkg_comment('nopkgpart'=>1) }, + }, + map { + my $field = $_; + { 'header' => $field, + 'callback' => sub { my $d = shift->get($field) or return ''; + time2str('%x', $d); # %X", $d); + }, + }; + } qw( order_date start_date setup last_bill bill + adjourn susp resume + expire cancel uncancel + contract_end + ) +; + +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 @cust_pkg = qsearch({ + 'table' => 'cust_pkg', + 'addl_from' => 'LEFT JOIN cust_main USING ( custnum )', + 'hashref' => {}, + 'extra_sql' => "WHERE cust_main.agentnum = $agentnum", +}); + +foreach my $cust_pkg ( @cust_pkg ) { + $csv->combine( map { ref($_) ? &{$_->{'callback'}}($cust_pkg) + : $cust_pkg->$_() + } + @fields + ) or die; + print $csv->string."\n"; +} + +1; |