Merge pull request #583 from yashodha/CRM-12463
[civicrm-core.git] / api / v3 / Contact.php
index 2efb02cff148e90b5978f4c56d43fe5dfff5ad7f..cb603cb60175f3e19d4fc62ef80aa63900c447d8 100644 (file)
@@ -130,7 +130,7 @@ function civicrm_api3_contact_create($params) {
   return civicrm_api3_create_success($values, $params, 'Contact', 'create');
 }
 
-/*
+/**
  * Adjust Metadata for Create action
  *
  * @param array $params array or parameters determined by getfields
@@ -142,6 +142,10 @@ function _civicrm_api3_contact_create_spec(&$params) {
     'title' => 'Current Employer',
     'description' => 'Name of Current Employer',
   );
+  $params['dupe_check'] = array(
+    'title' => 'Check for Duplicates',
+    'description' => 'Throw error if contact create matches dedupe rule',
+  );
 }
 
 /**
@@ -189,7 +193,8 @@ function civicrm_api3_contact_getcount($params) {
   $count = _civicrm_api3_get_using_query_object('contact', $params, $options,1);
   return $count;
 }
-/*
+
+/**
  * Adjust Metadata for Get action
  *
  * @param array $params array or parameters determined by getfields
@@ -228,7 +233,7 @@ function _civicrm_api3_contact_get_spec(&$params) {
   $params['tag']['title'] = 'Assigned tags (filter, array)';
 }
 
-/*
+/**
  * We are supporting 'showAll' = 'all', 'trash' or 'active' for contact get
  * and for getcount
  * - hopefully some day we'll come up with a std syntax for the 3-way-boolean of
@@ -727,6 +732,13 @@ function civicrm_api3_contact_getquick($params) {
       ";
   }
 
+  $orderByInner = "";
+  $orderByOuter = "ORDER BY exactFirst";
+  if ($config->includeOrderByClause) {
+    $orderByInner = "ORDER BY sort_name";
+    $orderByOuter .= ", sort_name";
+  }
+
   //CRM-5954
   $query = "
         SELECT DISTINCT(id), data, sort_name {$selectAliases}
@@ -743,10 +755,10 @@ function civicrm_api3_contact_getquick($params) {
     {$aclFrom}
     {$additionalFrom} {$includeEmailFrom}
     {$whereClause}
-    ORDER BY sort_name
+    {$orderByInner}
     LIMIT 0, {$limit} )
 ) t
-ORDER BY exactFirst, sort_name
+{$orderByOuter}
 LIMIT    0, {$limit}
     ";
   // send query to hook to be modified if needed