eliminate some false laziness in FS::Misc::send_email vs. msg_template/email.pm send_...
[freeside.git] / FS / FS / part_export / a2billing.pm
index 7aab01a..f636654 100644 (file)
@@ -11,6 +11,7 @@ use FS::svc_phone;
 use Locale::Country qw(country_code2code);
 use Date::Format qw(time2str);
 use Carp qw( cluck );
+use FS::DBI;
 
 @ISA = qw(FS::part_export);
 
@@ -55,11 +56,11 @@ END
 
 sub dbh {
   my $self = shift;
-  $self->{dbh} ||= DBI->connect(
+  $self->{dbh} ||= FS::DBI->connect(
                       $self->option('datasrc'),
                       $self->option('username'),
                       $self->option('password')
-                      ) or die $DBI::errstr;
+                      ) or die $FS::DBI::errstr;
 
   $self->{dbh}->trace(1, '%%%FREESIDE_LOG%%%/a2b_exportlog.'.$self->exportnum)
     if $DEBUG;
@@ -105,7 +106,7 @@ sub replace {
   '';
 }
 
-sub export_insert {
+sub _export_insert {
   my $self = shift;
   my $svc = shift;
   my $cust_pkg = $svc->cust_svc->cust_pkg;
@@ -144,6 +145,9 @@ sub export_insert {
       zipcode   => $location->zip,
       simultaccess  => $part_pkg->option('a2billing_simultaccess'),
       typepaid  => $part_pkg->option('a2billing_type'),
+      email_notification => $cust_main->invoicing_list_emailonly_scalar,
+      notify_email => ($cust_main->invoicing_list_emailonly_scalar ? 1 : 0),
+      credit_notification => $cust_main->credit_limit || $self->option('credit') || 0,
       sip_buddy => 1,
       company_name => $cust_main->company,
       activated => 't',
@@ -221,9 +225,15 @@ sub export_insert {
       id_cc_didgroup  => $self->option('didgroup'),
       id_cc_country   => $cc_country_id,
       iduser          => $cc_card_id,
-      did             => $svc->phonenum,
+      did             => $svc->countrycode. $svc->phonenum,
       billingtype     => ($self->option('billtype') eq 'Dial Out Rate' ? 2 : 3),
       activated       => 1,
+      aleg_carrier_cost_min_offp  => $part_pkg->option('a2billing_carrier_cost_min'),
+      aleg_carrier_initblock_offp => $part_pkg->option('a2billing_carrier_initblock_offp'),
+      aleg_carrier_increment_offp => $part_pkg->option('a2billing_carrier_increment_offp'),
+      aleg_retail_cost_min_offp   => $part_pkg->option('a2billing_retail_cost_min_offp'),
+      aleg_retail_initblock_offp  => $part_pkg->option('a2billing_retail_initblock_offp'),
+      aleg_retail_increment_offp  => $part_pkg->option('a2billing_retail_increment_offp'),
     );
 
     # use 'did' as the key here so that if the DID already exists, we 
@@ -233,12 +243,14 @@ sub export_insert {
 
     my $cc_did_id = $self->a2b_find('cc_did', 'svcnum', $svc->svcnum);
     
-    my $destination = 'SIP/' . $svc->phonenum . '@' . $svc_acct->username;
+    my $destination = 'SIP/user-'. $svc_acct->username. '@'. $svc->sip_server. "!". $svc->countrycode. $svc->phonenum;
     my %cc_did_destination = (
       destination     => $destination,
       priority        => 1,
       id_cc_card      => $cc_card_id,
       id_cc_did       => $cc_did_id,
+      validated       => 1,
+      voip_call       => 1,
     );
 
     # and if there's already a destination, change it to point to
@@ -279,7 +291,7 @@ sub export_insert {
   '';
 }
 
-sub export_delete {
+sub _export_delete {
   my $self = shift;
   my $svc = shift;
 
@@ -365,7 +377,7 @@ sub export_delete {
   '';
 }
 
-sub export_replace {
+sub _export_replace {
   my $self = shift;
   my $new = shift;
   my $old = shift || $self->replace_old;
@@ -397,7 +409,7 @@ sub export_replace {
   } elsif ( $new->isa('FS::svc_phone') ) {
 
     # if the phone number has changed, need to create a new DID.
-    if ( $new->phonenum ne $old->phonenum ) {
+    if ( $new->phonenum ne $old->phonenum || $new->countrycode ne $old->countrycode ) {
       # deactivate/unlink/close the old DID
       # and create/link the new one
       $error = $self->export_delete($old)
@@ -410,7 +422,7 @@ sub export_replace {
   '';
 }
 
-sub export_suspend {
+sub _export_suspend {
   my $self = shift;
   my $svc = shift;
 
@@ -435,7 +447,7 @@ sub export_suspend {
   $error || '';
 }
 
-sub export_unsuspend {
+sub _export_unsuspend {
   my $self = shift;
   my $svc = shift;