6 use FS::Record qw( dbh );
10 $FS::UID::AutoCommit = 0;
13 my $file = shift or usage();
14 open my $in, '<', $file or die "$file: $!\n";
15 my $csv = Text::CSV->new({ binary => 1, auto_diag => 2 });
17 $csv->column_names($csv->getline($in));
21 my $rate = new FS::rate {
22 'ratename' => 'Toll-Free base rates',
24 my $r_error = $rate->insert;
25 die $r_error if $r_error;
26 my $ratenum = $rate->ratenum;
32 while (my $row = $csv->getline_hr($in)) {
35 my $rate_region = new FS::rate_region {
36 'regionname' => $row->{'Originating Location'},
38 my $rr_error = $rate_region->insert;
39 die $rr_error if $rr_error;
41 my $rate_detail = new FS::rate_detail {
42 'ratenum' => $ratenum,
43 'dest_regionnum' => $rate_region->regionnum,
44 'conn_charge' => ( ( $row->{'minimum seconds'} / 60 ) * $row->{'Dedicated Carrier (in US)'} ),
45 'conn_sec' => $row->{'minimum seconds'},
46 'min_charge' => $row->{'Dedicated Carrier (in US)'},
47 'sec_granularity' => $row->{"add'l sec increment"},
50 my $rd_error = $rate_detail->insert;
51 die $rd_error if $rd_error;
53 my $cc = $row->{'Country Code'};
56 if ( $row->{'World Zone'} eq '1' ) {
61 my $rate_prefix = new FS::rate_prefix {
62 'regionnum' => $rate_region->regionnum,
66 my $rp_error = $rate_prefix->insert;
67 die $rp_error if $rp_error;
73 print "Inserted $rp regions\n";
78 die "Usage: rate-threshold_tollfree.import <user> <file>.csv\n\n";