Ticket #33046 A2billing changes
[freeside.git] / FS / FS / part_export / a2billing.pm
index 52680dc..acf0ed4 100644 (file)
@@ -21,11 +21,10 @@ tie %options, 'Tie::IxHash',
   'username'    => { label=>'Database username' },
   'password'    => { label=>'Database password' },
   'didgroup'    => { label=>'DID group ID', default=>1 },
-  'tariffgroup' => { label=>'Tariff group ID', default=>1 },
   'credit'      => { label=>'Default credit limit' },
   'billtype'    => {label=>'Billing type',
                     type => 'select',
-                    options => ['monthly', 'weekly']
+                    options => ['Dial Out Rate', 'Free']
                   },
   'debug'       => { label=>'Enable debugging', type=>'checkbox' }
 ;
@@ -112,6 +111,7 @@ sub export_insert {
   my $cust_pkg = $svc->cust_svc->cust_pkg;
   my $cust_main = $cust_pkg->cust_main;
   my $location = $cust_pkg->cust_location;
+  my $part_pkg = $cust_pkg->part_pkg;
 
   my $error;
   $DEBUG ||= $self->option('debug');
@@ -131,9 +131,8 @@ sub export_insert {
       username  => $username,
       useralias => $username,
       uipass    => $svc->_password,
-      # XXX these options may move to a part_pkg at some point
-      credit    => $self->option('credit') || 0,
-      tariff    => $self->option('tariffgroup'),
+      creditlimit    => $cust_main->credit_limit || $self->option('credit') || 0,
+      tariff    => $part_pkg->option('a2billing_tariff'),
       status    => 1,
       lastname  => $cust_main->last, # $svc->finger?
       firstname => $cust_main->first,
@@ -143,9 +142,14 @@ sub export_insert {
       state     => $location->state,
       country   => $country3,
       zipcode   => $location->zip,
-      typepaid  => 1,
+      simultaccess  => $part_pkg->option('a2billing_simultaccess'),
+      typepaid  => $part_pkg->option('a2billing_type'),
+      email_notification => $cust_main->invoicing_list_emailonly_scalar,
+      notify_email => (if $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',
     );
     warn "creating A2B cc_card record for $username\n" if $DEBUG;
     $error = $self->a2b_insert_or_replace('cc_card', 'svcnum', \%cc_card);
@@ -221,7 +225,7 @@ sub export_insert {
       id_cc_country   => $cc_country_id,
       iduser          => $cc_card_id,
       did             => $svc->phonenum,
-      billingtype     => ($self->option('billtype') eq 'weekly' ? 1 : 0),
+      billingtype     => ($self->option('billtype') eq 'Dial Out Rate' ? 2 : 3),
       activated       => 1,
     );
 
@@ -232,12 +236,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->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
@@ -444,7 +450,7 @@ sub export_unsuspend {
   if ( $svc->isa('FS::svc_acct') ) {
     $error = $self->a2b_insert_or_replace('cc_card', 'svcnum',
       { svcnum    => $svc->svcnum,
-        status    => 0, #"ACTIVE"
+        status    => 1, #"ACTIVE"
         activated => 1,
       }
     );