summaryrefslogtreecommitdiff
path: root/bin/cdr_upstream_rate.import
diff options
context:
space:
mode:
Diffstat (limited to 'bin/cdr_upstream_rate.import')
-rwxr-xr-xbin/cdr_upstream_rate.import142
1 files changed, 0 insertions, 142 deletions
diff --git a/bin/cdr_upstream_rate.import b/bin/cdr_upstream_rate.import
deleted file mode 100755
index fda3883..0000000
--- a/bin/cdr_upstream_rate.import
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Usage: bin/cdr_upstream_rate.import username ratenum filename
-#
-# records will be imported into cdr_upstream_rate, rate_detail and rate_region
-#
-# Example: bin/cdr_upstream_rate.import ivan 1 ~ivan/convergent/sample_rate_table.csv
-#
-# username: a freeside login (from /usr/local/etc/freeside/mapsecrets)
-# ratenum: rate plan (FS::rate) created with the web UI
-# filename: CSV file
-#
-# the following fields are currently used:
-# - Class Code => cdr_upstream_rate.rateid
-# - Description => rate_region.regionname
-# (rate_detail->dest_region)
-# - 1_rate => ( * 60 / 1_rate_seconds ) => rate_detail.min_charge
-# - 1_rate_seconds => (used above)
-# - 1_second_increment => rate_detail.sec_granularity
-#
-# the following fields are not (yet) used:
-# - Flagfall => what's this for?
-#
-# - 1_cap_time => freeside doesn't have voip time caps yet...
-# - 1_cap_cost => freeside doesn't have voip cost caps yet...
-# - 1_repeat => not sure what this is for, sample data is all 0
-#
-# - 2_rate => \
-# - 2_rate_seconds => |
-# - 2_second_increment => | not sure what the second set of rate data
-# - 2_cap_time => | is supposed to be for...
-# - 2_cap_cost => |
-# - 2_repeat => /
-#
-# - Carrier => probably not needed?
-# - Start Date => not necessary?
-
-use strict;
-use vars qw( $DEBUG );
-use Text::CSV_XS;
-use FS::UID qw(dbh adminsuidsetup);
-use FS::Record qw(qsearchs);
-use FS::rate;
-use FS::cdr_upstream_rate;
-use FS::rate_detail;
-use FS::rate_region;
-
-$DEBUG = 1;
-
-my $user = shift or die &usage;
-adminsuidsetup $user;
-
-my $ratenum = shift or die &usage;
-
-my $rate = qsearchs( 'rate', { 'ratenum' => $ratenum } );
-die "rate plan $ratenum not found in rate table\n"
- unless $rate;
-
-my $csv = new Text::CSV_XS;
-my $hline = scalar(<>);
-chomp($hline);
-$csv->parse($hline) or die "can't parse header: $hline\n";
-my @header = $csv->fields();
-
-$FS::UID::AutoCommit = 0;
-
-while (<>) {
-
- chomp;
- my $line = $_;
-
-# #$line =~ /^(\d+),"([^"]+)"$/ or do {
-# #}
-# $line =~ /^(\d+),"([^"]+)"/ or do {
-# warn "unparsable line: $line\n";
-# next;
-# };
-
- $csv->parse($line) or die "can't parse line: $line\n";
- my @line = $csv->fields();
-
- my %hash = map { $_ => shift(@line) } @header;
-
- warn join('', map { "$_ => $hash{$_}\n" } keys %hash )
- if $DEBUG > 1;
-
- my $rate_region = new FS::rate_region {
- 'regionname' => $hash{'Description'}
- };
-
- my $error = $rate_region->insert;
- if ( $error ) {
- dbh->rollback;
- die "error inserting into rate_region: $error\n";
- }
- my $dest_regionnum = $rate_region->regionnum;
- warn "rate_region $dest_regionnum inserted\n"
- if $DEBUG;
-
- my $rate_detail = new FS::rate_detail {
- 'ratenum' => $ratenum,
- 'dest_regionnum' => $dest_regionnum,
- 'min_included' => 0,
- #'min_charge', => sprintf('%.5f', 60 * $hash{'1_rate'} / $hash{'1_rate_seconds'} ),
- 'min_charge', => sprintf('%.5f', $hash{'1_rate'} /
- ( $hash{'1_rate_seconds'} / 60 )
- ),
- 'sec_granularity' => $hash{'1_second_increment'},
- };
- $error = $rate_detail->insert;
- if ( $error ) {
- dbh->rollback;
- die "error inserting into rate_detail: $error\n";
- }
- my $ratedetailnum = $rate_detail->ratedetailnum;
- warn "rate_detail $ratedetailnum inserted\n"
- if $DEBUG;
-
- my $cdr_upstream_rate = new FS::cdr_upstream_rate {
- 'upstream_rateid' => $hash{'Class Code'},
- 'ratedetailnum' => $rate_detail->ratedetailnum,
- };
- $error = $cdr_upstream_rate->insert;
- if ( $error ) {
- dbh->rollback;
- die "error inserting into cdr_upstream_rate: $error\n";
- }
- warn "cdr_upstream_rate ". $cdr_upstream_rate->upstreamratenum. " inserted\n"
- if $DEBUG;
-
- dbh->commit or die "can't commit: ". dbh->errstr;
-
- warn "\n" if $DEBUG;
-
-}
-
-dbh->commit or die "can't commit: ". dbh->errstr;
-
-sub usage {
- "Usage:\n\ncdr_upstream_rate.import username ratenum filename\n";
-}
-