X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=46bb90d250c2b5b4b4804847b9e552da19ea0fb2;hp=014434a052e777268cf95b4604b8dcdf18bb9164;hb=5d5e7f7248d786938c08c867c9ad8f855f92c532;hpb=ed9cbf0068524b98c0dfdc71183199f4e4333f5e diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 014434a05..46bb90d25 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -1050,6 +1050,10 @@ sub list_pkgs { if $context eq 'agent' && $conf->exists('agent-showpasswords') && $_->part_svc->svcdb eq 'svc_acct'; + $ref->{svchash} = { $_->svc_x->hash } if + $_->part_svc->svcdb eq 'svc_phone'; + $ref->{svchash}->{svcpart} = $_->part_svc->svcpart + if $_->part_svc->svcdb eq 'svc_phone'; # hack $ref; } $_->cust_svc ], @@ -1644,6 +1648,23 @@ sub provision_phone { my @bulkdid; @bulkdid = @{$p->{'bulkdid'}} if $p->{'bulkdid'}; + if($p->{'svcnum'} && $p->{'svcnum'} =~ /^\d+$/){ + my($context, $session, $custnum) = _custoragent_session_custnum($p); + return { 'error' => $session } if $context eq 'error'; + + my $svc_phone = qsearchs('svc_phone', { svcnum => $p->{'svcnum'} }); + return { 'error' => 'service not found' } unless $svc_phone; + return { 'error' => 'invalid svcnum' } + if $svc_phone && $svc_phone->cust_svc->cust_pkg->custnum != $custnum; + + $svc_phone->email($p->{'email'}) + if $svc_phone->email ne $p->{'email'} && $p->{'email'} =~ /^([\w\.\d@]+|)$/; + $svc_phone->forwarddst($p->{'forwarddst'}) + if $svc_phone->forwarddst ne $p->{'forwarddst'} + && $p->{'forwarddst'} =~ /^(\d+|)$/; + return { 'error' => $svc_phone->replace }; + } + # single DID LNP unless($p->{'lnp'}) { $p->{'lnp_desired_due_date'} = parse_datetime($p->{'lnp_desired_due_date'}); @@ -1806,7 +1827,7 @@ sub part_svc_info { my $conf = new FS::Conf; - return { + my $ret = { 'svc' => $part_svc->svc, 'svcdb' => $part_svc->svcdb, 'pkgnum' => $pkgnum, @@ -1825,6 +1846,17 @@ sub part_svc_info { }; + if ($p->{'svcnum'} && $p->{'svcnum'} =~ /^\d+$/ + && $ret->{'svcdb'} eq 'svc_phone') { + $ret->{'svcnum'} = $p->{'svcnum'}; + my $svc_phone = qsearchs('svc_phone', { svcnum => $p->{'svcnum'} }); + if ( $svc_phone && $svc_phone->cust_svc->cust_pkg->custnum == $custnum ) { + $ret->{'email'} = $svc_phone->email; + $ret->{'forwarddst'} = $svc_phone->forwarddst; + } + } + + $ret; } sub unprovision_svc {