eWay self-signup fixes
[freeside.git] / FS / FS / ClientAPI / MyAccount.pm
index ecabe31..9a20285 100644 (file)
@@ -1577,7 +1577,25 @@ sub provision_phone {
                  @_
                );
  }
-#XXX: finish bulk orders
+
+# bulk case
+  my $error;
+  foreach my $did ( @bulkdid ) {
+    $did =~ s/[^0-9]//g;
+    $error = _provision( 'FS::svc_phone',
+             [qw(phonenum countrycode)],
+             [qw(phonenum countrycode)],
+             {
+               'pkgnum' => $p->{'pkgnum'},
+               'svcpart' => $p->{'svcpart'},
+               'phonenum' => $did,
+               'countrycode' => $p->{'countrycode'},
+               'session_id' => $p->{'session_id'},
+             }
+           );
+    return $error if ($error->{'error'} && length($error->{'error'}) > 1);
+  }
+  { 'bulkdid' => [ @bulkdid ], 'svc' => $error->{'svc'} }
 }
 
 sub provision_acct {
@@ -1939,16 +1957,24 @@ sub get_ticket {
 # the requested ticket was actually linked to this customer
     my @custs = @{$err_or_ticket->{'custs'}};
     my @txns = @{$err_or_ticket->{'txns'}};
+    my @filtered_txns;
 
     return { 'error' => 'no customer' } unless ( $custnum && scalar(@custs) );
 
     return { 'error' => 'invalid ticket requested' } 
        unless grep($_ eq $custnum, @custs);
 
+    foreach my $txn ( @txns ) {
+       push @filtered_txns, $txn 
+           if ($txn->{'type'} eq 'EmailRecord' 
+               || $txn->{'type'} eq 'Correspond'
+               || $txn->{'type'} eq 'Create');
+    }
+
     warn "$me get_ticket: sucessful: \n"
       if $DEBUG;
     return { 'error'     => '',
-             'transactions' => \@txns,
+             'transactions' => \@filtered_txns,
             'ticket_id' => $p->{'ticket_id'},
            };
   } else {