use FS::Record qw(qsearch qsearchs dbh);
use FS::Msgcat qw(gettext);
use FS::Misc qw(card_types);
+use FS::Misc::DateTime qw(parse_datetime);
use FS::ClientAPI_SessionCache;
use FS::svc_acct;
use FS::svc_domain;
'wholesale_view' => 1,
'login_svcpart' => [ $conf->config('selfservice_server-login_svcpart') ],
'date_format' => $conf->config('date_format') || '%m/%d/%Y',
+ 'lnp' => $conf->exists('svc_phone-lnp'),
};
}
sub provision_phone {
my $p = shift;
- my @bulkdid = @{$p->{'bulkdid'}};
+ my @bulkdid;
+ @bulkdid = @{$p->{'bulkdid'}} if $p->{'bulkdid'};
+
+# single DID LNP
+ unless($p->{'lnp'}) {
+ $p->{'lnp_desired_due_date'} = parse_datetime($p->{'lnp_desired_due_date'});
+ $p->{'lnp_status'} = "portingin";
+ return _provision( 'FS::svc_phone',
+ [qw(lnp_desired_due_date lnp_other_provider
+ lnp_other_provider_account phonenum countrycode lnp_status)],
+ [qw(phonenum countrycode)],
+ $p,
+ @_
+ );
+ }
+
+# single DID order
unless (scalar(@bulkdid)) {
return _provision( 'FS::svc_phone',
[qw(phonenum countrycode)],
);
}
-# bulk case
+# bulk DID order case
my $error;
foreach my $did ( @bulkdid ) {
$did =~ s/[^0-9]//g;
# 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 {