summaryrefslogtreecommitdiff
path: root/FS/bin
diff options
context:
space:
mode:
authorlevinse <levinse>2011-02-13 07:23:42 +0000
committerlevinse <levinse>2011-02-13 07:23:42 +0000
commit705719c34352808839deb2f7fb9c420fd1baf3c8 (patch)
tree7c1bc01f55bc9382bd9f7297e114d1e69efeeef5 /FS/bin
parent67c6b2d956295e851335567da679230d818e73ab (diff)
bulk DID orders and inventory, RT11291
Diffstat (limited to 'FS/bin')
-rwxr-xr-xFS/bin/freeside-lata-import80
1 files changed, 80 insertions, 0 deletions
diff --git a/FS/bin/freeside-lata-import b/FS/bin/freeside-lata-import
new file mode 100755
index 000000000..295b40e0b
--- /dev/null
+++ b/FS/bin/freeside-lata-import
@@ -0,0 +1,80 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Getopt::Std;
+use FS::UID qw(adminsuidsetup);
+use FS::Conf;
+use FS::Record qw(qsearch qsearchs dbh);
+use LWP::Simple;
+use HTML::TableExtract;
+use Data::Dumper;
+
+&untaint_argv; #what it sounds like (eww)
+use vars qw(%opt);
+
+my $user = shift or die &usage;
+my $dbh = adminsuidsetup $user;
+
+my $content = get("http://www.localcallingguide.com/lca_listlata.php");
+my $te = new HTML::TableExtract();
+$te->parse($content);
+my $table = $te->first_table_found;
+my $sql = 'insert into lata (latanum, description) values ';
+my @sql;
+foreach my $row ( $table->rows ) {
+ my @row = @$row;
+ next unless $row[0] =~ /\d+/;
+ $row[1] =~ s/'//g;
+ push @sql, "( ${row[0]}, '${row[1]}')";
+}
+$sql .= join(',',@sql);
+
+my $sth = $dbh->prepare('delete from lata');
+$sth->execute or die $sth->errstr;
+
+$sth = $dbh->prepare($sql);
+$sth->execute or die $sth->errstr;
+
+$dbh->commit;
+
+###
+# subroutines
+###
+
+sub untaint_argv {
+ foreach $_ ( $[ .. $#ARGV ) { #untaint @ARGV
+ #$ARGV[$_] =~ /^([\w\-\/]*)$/ || die "Illegal arguement \"$ARGV[$_]\"";
+ # Date::Parse
+ $ARGV[$_] =~ /^(.*)$/ || die "Illegal arguement \"$ARGV[$_]\"";
+ $ARGV[$_]=$1;
+ }
+}
+
+sub usage {
+ die "Usage:\n freeside-lata-import user \n";
+}
+
+###
+# documentation
+###
+
+=head1 NAME
+
+freeside-lata-import - Pull LATA data from and insert into LATA table
+
+=head1 SYNOPSIS
+
+ freeside-lata-import user
+
+=head1 DESCRIPTION
+
+user - name of an internal Freeside user
+
+=head1 BUGS
+
+=head1 SEE ALSO
+
+L<FS::lata>
+
+=cut
+