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