[freeside-commits] branch master updated. 33aa032478e29000c8c0d4fbe7bf8cb25c277606

Ivan ivan at 420.am
Wed Aug 29 15:19:45 PDT 2012


The branch, master has been updated
       via  33aa032478e29000c8c0d4fbe7bf8cb25c277606 (commit)
       via  0e17277ed0cc243452dfc07d1bd702502c7d50c3 (commit)
      from  36e4318e1ccec27ae76a3d1505718a3d47af67c9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 33aa032478e29000c8c0d4fbe7bf8cb25c277606
Merge: 0e17277 36e4318
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Aug 29 15:19:17 2012 -0700

    Merge branch 'master' of git.freeside.biz:/home/git/freeside


commit 0e17277ed0cc243452dfc07d1bd702502c7d50c3
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Tue Aug 28 16:06:15 2012 -0700

    adding export scripts for ea, RT#19067

diff --git a/bin/cust_bill.export b/bin/cust_bill.export
new file mode 100755
index 0000000..40c32e5
--- /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 0000000..4adfeeb
--- /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 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;
diff --git a/bin/svc_acct.export b/bin/svc_acct.export
new file mode 100755
index 0000000..dba4ac9
--- /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 0000000..1d5c713
--- /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 0000000..aa0eb20
--- /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;

-----------------------------------------------------------------------

Summary of changes:
 bin/cust_bill.export     |   49 +++++++++++++++++++++
 bin/cust_main.export     |  109 ++++++++++++++++++++++++++++++++++++++++++++++
 bin/cust_pkg.export      |   61 ++++++++++++++++++++++++++
 bin/svc_acct.export      |   54 +++++++++++++++++++++++
 bin/svc_broadband.export |   59 +++++++++++++++++++++++++
 bin/svc_phone.export     |   55 +++++++++++++++++++++++
 6 files changed, 387 insertions(+), 0 deletions(-)
 create mode 100755 bin/cust_bill.export
 create mode 100755 bin/cust_main.export
 create mode 100755 bin/cust_pkg.export
 create mode 100755 bin/svc_acct.export
 create mode 100755 bin/svc_broadband.export
 create mode 100755 bin/svc_phone.export




More information about the freeside-commits mailing list