From: Ivan Kohler Date: Tue, 28 Aug 2012 23:06:15 +0000 (-0700) Subject: adding export scripts for ea, RT#19067 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=0e17277ed0cc243452dfc07d1bd702502c7d50c3 adding export scripts for ea, RT#19067 --- diff --git a/bin/cust_bill.export b/bin/cust_bill.export new file mode 100755 index 000000000..40c32e539 --- /dev/null +++ b/bin/cust_bill.export @@ -0,0 +1,49 @@ +#!/usr/bin/perl + +use strict; +use Text::CSV_XS; +use FS::UID qw(adminsuidsetup); +use FS::Record qw(qsearch); +use FS::cust_bill; +use Date::Format; + +my @fields = qw( + invnum + custnum +); + +push @fields, + { 'header' => 'Date', + 'callback' => sub { time2str('%x', shift->_date); }, + }, +; + +push @fields, qw( charged owed ); + +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_bill = qsearch({ + 'table' => 'cust_bill', + 'addl_from' => 'LEFT JOIN cust_main USING ( custnum )', + 'hashref' => {}, + 'extra_sql' => "WHERE cust_main.agentnum = $agentnum", +}); + +foreach my $cust_bill ( @cust_bill ) { + $csv->combine( map { ref($_) ? &{$_->{'callback'}}($cust_bill) + : $cust_bill->$_() + } + @fields + ) or die; + print $csv->string."\n"; +} + +1; diff --git a/bin/cust_main.export b/bin/cust_main.export new file mode 100755 index 000000000..4adfeeb7c --- /dev/null +++ b/bin/cust_main.export @@ -0,0 +1,109 @@ +#!/usr/bin/perl + +use strict; +use Text::CSV_XS; +use FS::UID qw(adminsuidsetup); +use FS::Record qw(qsearch); +use FS::cust_main; + +my @fields = qw( + custnum + status + last + first + company + address1 + address2 + city + county + state + zip + country + daytime + night + mobile + fax + ship_address1 + ship_address2 + ship_city + ship_county + ship_state + ship_zip + ship_country + ship_daytime + ship_night + ship_mobile + ship_fax + invoicing_list_emailonly_scalar + payby + balance +); + +push @fields, + #Billing Type: Credit Card + { 'header' => 'Credit Card number', + 'callback' => sub { my $c_m = shift; + $c_m->payby =~ /^(CARD|DCRD)$/ ? $c_m->payinfo : '' ; + }, + }, + { 'header' => 'Expiration on card', + 'callback' => sub { my $c_m = shift; + return '' unless $c_m->payby =~ /^(CARD|DCRD)$/; + $c_m->paydate =~ /^(\d{4})-(\d{2})-\d{2}$/ or die; + return "$2/$1"; + }, + }, + { 'header' => 'Name on card', + 'callback' => sub { my $c_m = shift; + $c_m->payby =~ /^(CARD|DCRD)$/ ? $c_m->paydname : '' ; + }, + }, + + #Billing Type: Electronic check + { 'header' => 'ABA/Routing number', + 'callback' => sub { my $c_m = shift; + return '' unless $c_m->payby =~ /^(CHEK|DCHK)$/; + (split('@', $c_m->payinfo))[1]; + }, + }, + { 'header' => 'Account number', + 'callback' => sub { my $c_m = shift; + return '' unless $c_m->payby =~ /^(CHEK|DCHK)$/; + (split('@', $c_m->payinfo))[0]; + }, + }, + { 'header' => 'Account type', + 'callback' => sub { my $c_m = shift; + $c_m->payby =~ /^(CHEK|DCHK)$/ ? $c_m->paytype : ''; + }, + }, + { 'header' => 'Bank Name', + 'callback' => sub { my $c_m = shift; + $c_m->payby =~ /^(CHEK|DCHK)$/ ? $c_m->payname : ''; + }, + }, + +; + +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_main = qsearch('cust_main', { 'agentnum'=>$agentnum }); + +foreach my $cust_main( @cust_main ) { + $csv->combine( map { ref($_) ? &{$_->{'callback'}}($cust_main) + : $cust_main->$_() + } + @fields + ) or die; + print $csv->string."\n"; +} + +1; 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; diff --git a/bin/svc_acct.export b/bin/svc_acct.export new file mode 100755 index 000000000..dba4ac98d --- /dev/null +++ b/bin/svc_acct.export @@ -0,0 +1,54 @@ +#!/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; diff --git a/bin/svc_broadband.export b/bin/svc_broadband.export new file mode 100755 index 000000000..1d5c71318 --- /dev/null +++ b/bin/svc_broadband.export @@ -0,0 +1,59 @@ +#!/usr/bin/perl + +use strict; +use Text::CSV_XS; +use FS::UID qw(adminsuidsetup); +use FS::Record qw(qsearch); +use FS::svc_broadband; + +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( + description + speed_up + speed_down + ip_addr + mac_addr + latitude + longitude + ) +); + +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_broadband = qsearch({ + 'select' => 'svc_broadband.*', + 'table' => 'svc_broadband', + '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_broadband ( @svc_broadband ) { + $csv->combine( map { ref($_) ? &{$_->{'callback'}}($svc_broadband) + : $svc_broadband->$_() + } + @fields + ) or die; + print $csv->string."\n"; +} + +1; diff --git a/bin/svc_phone.export b/bin/svc_phone.export new file mode 100755 index 000000000..aa0eb2082 --- /dev/null +++ b/bin/svc_phone.export @@ -0,0 +1,55 @@ +#!/usr/bin/perl + +use strict; +use Text::CSV_XS; +use FS::UID qw(adminsuidsetup); +use FS::Record qw(qsearch); +use FS::svc_phone; + +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( + phonenum + pin + sip_password + phone_name + ) +); + +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_phone = qsearch({ + 'table' => 'svc_phone', + '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_phone ( @svc_phone ) { + $csv->combine( map { ref($_) ? &{$_->{'callback'}}($svc_phone) + : $svc_phone->$_() + } + @fields + ) or die; + print $csv->string."\n"; +} + +1;