X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount%2Fcontact.pm;h=ff29079c7b4afcab5704949a652450a00774c5ff;hb=ec2f19b4484371dff04ec4a5313c7b7d2359cca8;hp=099da29e0a05dc92decbd5575fa89822eacac251;hpb=d83a8bf58a425da397472cc0549f98d906365dba;p=freeside.git diff --git a/FS/FS/ClientAPI/MyAccount/contact.pm b/FS/FS/ClientAPI/MyAccount/contact.pm index 099da29e0..ff29079c7 100644 --- a/FS/FS/ClientAPI/MyAccount/contact.pm +++ b/FS/FS/ClientAPI/MyAccount/contact.pm @@ -82,7 +82,7 @@ sub list_contacts { #TODO: contact phone numbers 'comment' => $_->comment, 'selfservice_access' => $_->selfservice_access, - 'disabled' => $contact->disabled, + #'disabled' => $contact->disabled, }; } $cust_main->cust_contact ); @@ -141,11 +141,32 @@ sub delete_contact { my $error = $cust_contact->delete; return { 'error' => $error } if $error; - unless ( $contact->cust_contact ) { + unless ( $contact->cust_contact || $contact->prospect_contact ) { $contact->delete; } return { 'error' => '', }; } +sub new_contact { + my $p = shift; + + my($context, $session, $custnum) = _custoragent_session_custnum($p); + return { 'error' => $session } if $context eq 'error'; + + #TODO: add phone numbers too + #TODO: specify a classnum by name and/or list_contact_classes method + + my $contact = new FS::contact { + 'custnum' => $custnum, + map { $_ => $p->{$_} } + qw( first last emailaddress classnum comment selfservice_access ) + }; + + $contact->change_password_fields($p->{_password}) if length($p->{_password}); + + my $error = $contact->insert; + return { 'error' => $error, }; +} + 1;