Index: INSTALL.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforcewebform/INSTALL.txt,v
retrieving revision 1.2.2.1
diff -u -r1.2.2.1 INSTALL.txt
--- INSTALL.txt	11 Jan 2009 05:58:04 -0000	1.2.2.1
+++ INSTALL.txt	25 Jan 2010 01:51:34 -0000
@@ -40,6 +40,8 @@
 7. Create or edit a webform to match your lead form.  Under 'SalesForce Settings', select
    the 'Yes' option to post the form to SalesForce.
 
+   At a minimum, a Lead form must include Last Name, Email, and Company fields.
+   
    Under 'Webform Advanced Settings', add the following code for 'Additional Processing':
 
 	<?php
Index: salesforcewebform.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforcewebform/salesforcewebform.install,v
retrieving revision 1.2.2.1
diff -u -r1.2.2.1 salesforcewebform.install
--- salesforcewebform.install	11 Jan 2009 05:58:04 -0000	1.2.2.1
+++ salesforcewebform.install	25 Jan 2010 00:47:20 -0000
@@ -60,4 +60,24 @@
 	variable_del("salesforcewebform_user");
 	variable_del("salesforcewebform_pw");
 	variable_del("salesforcewebform_custom_fields");
-}
\ No newline at end of file
+}
+
+/**
+ * Update databse to allow object type selection
+ */
+function salesforcewebform_update_6001() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysqli':
+    case 'mysql':
+      $ret[] = update_sql("ALTER TABLE {salesforcewebform} ADD COLUMN
+object char(1) NOT NULL default ''");
+      break;
+    case 'pgsql':
+      db_add_column($ret, 'salesforce', 'description',
+'char(1)', array('default' => '', 'not null' => TRUE));
+      break;
+  }
+  return $ret;
+}
+ 
\ No newline at end of file
Index: salesforcewebform.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforcewebform/salesforcewebform.module,v
retrieving revision 1.14.2.4
diff -u -r1.14.2.4 salesforcewebform.module
--- salesforcewebform.module	22 Apr 2009 02:49:16 -0000	1.14.2.4
+++ salesforcewebform.module	25 Jan 2010 01:45:10 -0000
@@ -38,14 +38,24 @@
 		  );
 		
 		  $salesforce_form['salesforcesettings']['use_salesforce'] = array (
-			'#type' => 'radios',
-			'#title' => t('Submit to SalesForce'),
-			'#options' => array(
-				1=>t('Yes'), 0=>t('No')
-			),
-			'#description' => t('If yes, the form will be sent via SOAP to SalesForce.  Make sure you have specified the username & password in Administer->Site Configuration->SalesForce Webform first.'),
-			'#default_value' => ($form['#node']->use_salesforce) ? $form['#node']->use_salesforce : 0,
+        '#type' => 'radios',
+        '#title' => t('Submit to SalesForce'),
+        '#options' => array(
+          1=>t('Yes'), 0=>t('No')
+        ),
+        '#description' => t('If yes, the form will be sent via SOAP to SalesForce.  Make sure you have specified the username & password in Administer->Site Configuration->SalesForce Webform first.'),
+        '#default_value' => ($form['#node']->use_salesforce) ? $form['#node']->use_salesforce : 0,
 		  );
+		  
+		  $salesforce_form['salesforcesettings']['salesforce_object'] = array(
+        '#type' => 'select',
+        '#title' => t('Object Type'),
+        '#options' => array(
+          'l' => t('Lead'), 'c' => t('Contact'), 'a' => t('Account'),
+        ),
+        '#description' => t('Select which object type to submit to.'),
+        '#default_value' => ($form['#node']->salesforce_object) ? $form['#node']->salesforce_object : 'l',
+      );
 		  /* End SalesForce settings form */
 
 		  // integrate the SalesForce form into the form
@@ -91,21 +101,22 @@
 				if ( isset($node->use_salesforce) ) {
 					// store the SalesForce fields
 					$result = db_query("DELETE FROM {salesforcewebform} where `vid` = %d", $node->vid);
-					$result = db_query("INSERT INTO {salesforcewebform} (`vid`, `use`) " .
-    					 							 "VALUES (%d, %d)", $node->vid, $node->use_salesforce);
+					$result = db_query("INSERT INTO {salesforcewebform} (`vid`, `use`, `object`) " .
+    					 							 "VALUES (%d, %d,'%s')", $node->vid, $node->use_salesforce, $node->salesforce_object);
 				}
 				break;
 			case 'validate':
 
 				break;	
 			case 'load':
-				$result = db_query("SELECT `use` from {salesforcewebform} ".
+				$result = db_query("SELECT `use`, `object` from {salesforcewebform} ".
 			           					 "WHERE `vid` = %d", $node->vid); 
 				// either $result has 0 or 1 rows, if we have one then add it to the node
 				$row = db_fetch_array($result);
 
 			  if ( $row['use'] == '1' ) {
 					$node->use_salesforce = TRUE;
+					$node->salesforce_object = $row['object'];
 				}
 				else {
 					$node->use_salesforce = FALSE;
@@ -208,8 +219,19 @@
 	return $spec;
 }
 
-function salesforcewebform_process($form, $form_state) {
-
+function salesforcewebform_process($node, $form, $form_state) {
+  $object_typecode = ($node->salesforce_object) ? $node->salesforce_object : "l";
+  switch($object_typecode) {
+    case "l":
+      $object_type = "Lead";
+    break;
+    case "c":
+      $object_type = "Contact";
+    break;
+    case "a":
+      $object_type = "Account";
+    break;
+  }
   $form_values = $form_state['values'];
   
   //Get the path to the Toolkit, set in the options on install.
@@ -275,10 +297,9 @@
   $sObjects = array();
 
   $sObject = new sObject();
-  $sObject->type = 'Lead'; // Salesforce Table or object that you will perform the upsert on
+  $sObject->type = $object_type; // Salesforce Table or object that you will perform the upsert on
   $sObject->fields = $all_fields;
   array_push($sObjects, $sObject);
-
   //This passes the client = the login to sales force
   // the $sObjects = data to upsert
   // $file_updated = accounts which are updated
@@ -321,9 +342,9 @@
             // The string is the same, regardless of the result
             $data2 = $sObjects[$k]->fields['NAME'] . ", " . $sObjects[$k]->fields['SA_ID__C'];
 
-            if ($result->success)
+            if (!is_array($result) && !is_object($result))
             {
-                if ($result->created)
+                if (strlen($result) == 18)
                 {
                     $accounts_created++;
                    // file_put_contents($file_created, $data2 . "\n", FILE_APPEND);
@@ -338,7 +359,7 @@
             {
                 $accounts_failed++;
                 // The errors object also contains fields and status_code
-                $errMessage = $result->errors->message;
+                $errMessage = $result->message;
                // file_put_contents($file_failed, $data2 . ", " . $errMessage . "\n", FILE_APPEND);
             }
             $k++;
@@ -346,6 +367,9 @@
         // Put the result counts into an array to pass back as the result.
         $success = array();
         array_push($success, $accounts_created, $accounts_updated, $accounts_failed);
+        if($errMessage) {
+          drupal_set_message($errMessage);
+        }
         return $success;
     }
     catch (exception $e)
Index: salesforcewebform_fields.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/salesforcewebform/salesforcewebform_fields.inc,v
retrieving revision 1.6.2.2
diff -u -r1.6.2.2 salesforcewebform_fields.inc
--- salesforcewebform_fields.inc	22 Apr 2009 02:49:16 -0000	1.6.2.2
+++ salesforcewebform_fields.inc	25 Jan 2010 01:34:52 -0000
@@ -48,6 +48,12 @@
     'NumberOfEmployees' => 'Employees',
     'Campaign' => 'Campaign_ID',
     
+    //Contact settings
+    'ContactOwner' => 'Contact Owner',
+    
+    //Account settings
+    'AccountOwner' => 'Account Owner',
+    
     //Special SID Field to map for editing
     'WebformSID__c' => 'Webform SID Key',
 	

