lib/client
Torsten Grote
grote at kolabsys.com
Tue Oct 2 19:32:36 CEST 2012
lib/client/kolab_client_task_signup.php | 56 ++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
New commits:
commit d7af0132fe81086e32bb83f2071dfd0fed19acd3
Author: Torsten Grote <grote at kolabsys.com>
Date: Tue Oct 2 19:31:47 2012 +0200
put new signups into openERP as leads
diff --git a/lib/client/kolab_client_task_signup.php b/lib/client/kolab_client_task_signup.php
index f2e9136..b0a58c9 100644
--- a/lib/client/kolab_client_task_signup.php
+++ b/lib/client/kolab_client_task_signup.php
@@ -170,7 +170,9 @@ class kolab_client_task_signup extends kolab_client_task
return;
} else {
$this->output->set_object('taskcontent', $this->translate('signup.usercreated'));
+ // TODO catch errors
$this->send_mail($data);
+ $this->add_to_openerp($data);
}
}
@@ -310,6 +312,7 @@ class kolab_client_task_signup extends kolab_client_task
$headers['To'] = $this->config_get('mail_address');
$headers['Subject'] = 'New Kolab Signup from ' . $data['mailalternateaddress'];
+ // TODO localize this
$body = "{$data['cn']} <{$data['mailalternateaddress']}> from {$data['org']} just signed up for a Kolab account ({$data['mail']}).";
Log::Debug("Send Mail to $recipients ...");
@@ -324,6 +327,59 @@ class kolab_client_task_signup extends kolab_client_task
}
}
+ private function add_to_openerp($data)
+ {
+ $HOST = $this->config_get('openerp_host');
+ $PORT = $this->config_get('openerp_port');
+ $DB = $this->config_get('openerp_db');
+ $USER = $this->config_get('openerp_user');
+ $PASS = $this->config_get('openerp_pass');
+
+ if($HOST && $PORT && $DB && $USER && $PASS) {
+ include_once('xmlrpc/xmlrpc.inc');
+
+ $sock = new xmlrpc_client("http://$HOST:$PORT/xmlrpc/common");
+ $msg = new xmlrpcmsg('login');
+ $msg->addParam(new xmlrpcval($DB, "string"));
+ $msg->addParam(new xmlrpcval($USER, "string"));
+ $msg->addParam(new xmlrpcval($PASS, "string"));
+ $resp = $sock->send($msg);
+ $val = $resp->value();
+ $uid = $val->scalarval();
+
+ Log::Trace("Logged in to OpenERP as $USER (uid:$uid)");
+
+ // Create a new lead
+ $arrayVal = array(
+ // TODO localize name string
+ 'name' => new xmlrpcval("New Evaluation Signup by {$data['mailalternateaddress']}", "string"),
+ 'contact_name' => new xmlrpcval($data['cn'], "string"),
+ 'email_from' => new xmlrpcval($data['mailalternateaddress'], "string"),
+ 'partner_name' => new xmlrpcval($data['org'], "string"),
+ 'inventor_id' => new xmlrpcval($uid, "int"),
+ );
+
+ $client = new xmlrpc_client("http://$HOST:$PORT/xmlrpc/object");
+
+ $msg = new xmlrpcmsg('execute');
+ $msg->addParam(new xmlrpcval($DB, "string"));
+ $msg->addParam(new xmlrpcval($uid, "int"));
+ $msg->addParam(new xmlrpcval($PASS, "string"));
+ $msg->addParam(new xmlrpcval("crm.lead", "string"));
+ $msg->addParam(new xmlrpcval("create", "string"));
+ $msg->addParam(new xmlrpcval($arrayVal, "struct"));
+ $resp = $client->send($msg);
+
+ if ($resp->faultCode()) {
+ Log::Error($resp->faultString());
+ } else {
+ Log::Debug('Lead '.$resp->value()->scalarval().' created in OpenERP!');
+ }
+ } else {
+ Log::Debug('OpenERP settings in kolab.conf are incomplete.');
+ }
+ }
+
/**
* Overrides config_get() from kolab_client_task
* Returns configuration option value for hosting.
More information about the commits
mailing list