summaryrefslogtreecommitdiff
path: root/bin/cust_pkg.export
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-08-28 16:06:15 -0700
committerIvan Kohler <ivan@freeside.biz>2012-08-28 16:06:15 -0700
commit0e17277ed0cc243452dfc07d1bd702502c7d50c3 (patch)
tree85ca356d78bf85962752a1d762b3286cee8e7d84 /bin/cust_pkg.export
parent9f2220031123f06ab275840a3129c9807b9a782a (diff)
adding export scripts for ea, RT#19067
Diffstat (limited to 'bin/cust_pkg.export')
-rwxr-xr-xbin/cust_pkg.export61
1 files changed, 61 insertions, 0 deletions
diff --git a/bin/cust_pkg.export b/bin/cust_pkg.export
new file mode 100755
index 0000000..f922e02
--- /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;