X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=633d74d6c43085a660edef89eeba25c259f2e090;hp=ecabe31c79d0f80913b89a6605ff40d1b96b8ee8;hb=0f7643c1af2d909e0c3172e5bec0c01855fca1b9;hpb=d6741df87df9e3352d7ae47a02d0e3f46154fef9 diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index ecabe31c7..633d74d6c 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -18,6 +18,7 @@ use FS::Conf; 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; @@ -532,6 +533,8 @@ sub payment_info { 'show_paystate' => $conf->exists('show_bankstate'), 'save_unchecked' => $conf->exists('selfservice-save_unchecked'), + + 'credit_card_surcharge_percentage' => $conf->config('credit-card-surcharge-percentage'), }; } @@ -978,6 +981,7 @@ sub list_pkgs { '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'), }; } @@ -1270,7 +1274,7 @@ sub order_pkg { map { $_ => $p->{$_} } @{$fields{$svcdb}} } ); - if ( $svcdb eq 'svc_acct' ) { + if ( $svcdb eq 'svc_acct' && exists($p->{"snarf_machine1"}) ) { my @acct_snarf; my $snarfnum = 1; while ( length($p->{"snarf_machine$snarfnum"}) ) { @@ -1300,7 +1304,7 @@ sub order_pkg { tie my %hash, 'Tie::RefHash'; %hash = ( $cust_pkg => \@svc ); #msgcat - $error = $cust_main->order_pkgs( \%hash, '', 'noexport' => 1 ); + $error = $cust_main->order_pkgs( \%hash, 'noexport' => 1 ); return { 'error' => $error } if $error; my $conf = new FS::Conf; @@ -1568,7 +1572,23 @@ sub cancel_pkg { 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)], @@ -1577,7 +1597,25 @@ sub provision_phone { @_ ); } -#XXX: finish bulk orders + +# bulk DID order 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 +1977,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 {