Insertar Contacto y oportunidad en VTIGER


Hay veces en que tenemos que insertar información de nuestro formulario de contacto a un crm por ejemplo VTIGER, en esta ocasión lo que haré es insertar un nuevo contacto al crm y a su vez insertar una oportunidad asociada a este contacto agregando un poco de inteligencia ya que si encuentra el rut del contacto no agrega uno nuevo sino que agrega una nueva oportunidad asociada al contacto antes creado, esta versión de vtiger tiene unos campos que agregue mediante el administrador de vtiger los famosos cv_640 cf_641, etc, etc, eso es fácil de hacer hay multitud de tutoriales que te enseñan como, de tal manera que lo que hace esta función es leer la configuración de configuration.php que es un archivo de joomla para poder tener acceso a la base de datos, ud podrán conectarse como mas les convenga, luego de esto guarda el formulario en una tabla intermedia, consulta si el rut existe en un campo que yo agregue en vtiger (cf_640) si existe solo agrega la oportunidad sino agrega el contacto mas la oportunidad, bueno no creo que el código necesite mas explicaciones. Saludos. Untitled

 public function saveData(){
    global $_POST;
    $sql = "INSERT INTO ". $this->prefix ."emails_saved (nombre,email,telefono,consulta,rut,sede,carrera,created)";
    $sql.= " VALUES ('". $_POST['nombre'] ."','". $_POST['email'] ."','". $_POST['telefono'] ."','". $_POST['comentario'] ."','". $_POST['rut'] ."','". $_POST['sede'] ."','". $_POST['carrera'] ."',NOW())";
    require_once '../configuration.php';
    $dat = new JConfig();
    $conection = mysql_connect($dat->host, $dat->user, $dat->password);
    mysql_select_db($dat->db, $conection);
    mysql_query($sql);
 
 $rut = str_replace(".","", $_POST['rut']);
 $rut = str_replace("-","",$rut);
 $rut = mysql_real_escape_string($rut); 
 
 $sql = "SELECT * FROM vtiger_contactscf WHERE cf_640 = ".$rut;
 $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
 $fila = mysql_fetch_assoc($resultado);
 $contactId = $fila['contactid'];

 if(empty($fila)){
  $sql = "SELECT * FROM vtiger_crmentity_seq ";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  $fila = mysql_fetch_assoc($resultado); 
  $aNombres = explode(" ",$_POST['nombre']);
  $id = $fila['id']+1;
  
  $sql = "INSERT INTO vtiger_crmentity VALUES ($id, 1, 9, 0, 'Contacts', '', NOW(), NOW(), NULL, NULL, 0, 1, 0);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql); 
  
  $sql = "INSERT INTO vtiger_contactdetails VALUES ($id, 'CON$id', 0, 'Estimado/a', '".
  mysql_real_escape_string($aNombres[0])."', '".
  mysql_real_escape_string($aNombres[1])."', '".
  mysql_real_escape_string($_POST['email'])."', '".
  mysql_real_escape_string($_POST['telefono'])."', '".
  mysql_real_escape_string($_POST['telefono'])."', '', '', '', '0', NULL, NULL, NULL, NULL, '', '0', '0', '', '0', '0');";
  
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql); 
  
  $sql = "INSERT INTO vtiger_contactaddress VALUES ($id, '', '', '', '', '', '', '', '', '', '', '', '');";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql = "INSERT INTO vtiger_contactscf (contactid,cf_640,cf_644) VALUES ($id,".
  mysql_real_escape_string($rut).",'".
  mysql_real_escape_string($_POST['comentario'])."');";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql = "INSERT INTO vtiger_contactsubdetails VALUES ($id, '".
  mysql_real_escape_string($_POST['telefono'])."', '', '', '', NULL, 0, 0, 'Formulario Easy Contact');";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql = "UPDATE vtiger_crmentity_seq SET id = $id;";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql = "INSERT INTO vtiger_customerdetails VALUES ($id, '0', NOW(), NOW());";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql = "SELECT cur_id FROM vtiger_modentity_num WHERE num_id = 4;";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  $fila = mysql_fetch_assoc($resultado);
  $cur_id = $fila['cur_id']+1;
  
  $sql = "UPDATE vtiger_modentity_num SET cur_id = $cur_id WHERE num_id = 4;";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $idd = $id +1;
  $sql = "INSERT INTO vtiger_crmentity VALUES ($idd, 1, 9, 1, 'Potentials', '', NOW(), NOW(), NULL, NULL, 0, 1, 0);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql="SELECT * FROM vtiger_potentialscf ORDER BY potentialid DESC LIMIT 1;";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  $fila = mysql_fetch_assoc($resultado);
  $potentialid = $fila['potentialid']+1; 
  
  $dFecha = date("Y-m-d");
   
  $sql = "INSERT INTO vtiger_potential VALUES ($idd, 'POT$id', $id, '".
  mysql_real_escape_string($_POST['carrera'])." - ".
  mysql_real_escape_string($_POST['sede']).
  "','0.00', NULL, '$dFecha', NULL, ' ',0,0.000, 0,'Prospecting', 'New Business', 'Web Site', 
  NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 0,0);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql); 
   
  $sql = "INSERT INTO vtiger_potentialscf VALUES ($idd);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
   
  $sql = "INSERT INTO vtiger_contpotentialrel VALUES ( $id, $idd);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql = "UPDATE vtiger_crmentity_seq SET id = $idd;";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);  

  mysql_close($conection); 
  
 }else{
  $sql = "SELECT * FROM vtiger_crmentity_seq ";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  $fila = mysql_fetch_assoc($resultado); 
  
  $id = $fila['id']; 
  $idd = $id +1;
  $sql = "INSERT INTO vtiger_crmentity VALUES ($idd, 1, 9, 1, 'Potentials', '', NOW(), NOW(), NULL, NULL, 0, 1, 0);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql="SELECT * FROM vtiger_potentialscf ORDER BY potentialid DESC LIMIT 1;";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  $fila = mysql_fetch_assoc($resultado);
  $potentialid = $fila['potentialid']+1; 
  
  $dFecha = date("Y-m-d");
   
  $sql = "INSERT INTO vtiger_potential VALUES ($idd, 'POT$id', $contactId, '".
  mysql_real_escape_string($_POST['carrera'])." - ".
  mysql_real_escape_string($_POST['sede']).
  "','0.00', NULL, '$dFecha', NULL, ' ',0,0.000, 0,'Prospecting', 'New Business', 'Web Site', 
  NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 0,0);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql); 
   
  $sql = "INSERT INTO vtiger_potentialscf VALUES ($idd);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
   
  $sql = "INSERT INTO vtiger_contpotentialrel VALUES ( $contactId, $idd);";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);
  
  $sql = "UPDATE vtiger_contactscf SET cf_644 = '".
  mysql_real_escape_string($_POST['comentario'])."'
  WHERE contactid = $contactId AND cf_640 = $rut;";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql); 
  
  $sql = "UPDATE vtiger_crmentity_seq SET id = $idd;";
  $resultado = mysql_query($sql)or die(mysql_error()."**".$sql);  

  mysql_close($conection);  
 }
  }
}
?>

Comentarios

  1. Hola
    Yo tengo un problema con la tabla vtiger_crmentity_seq que creo no esta funcionando correctamente.
    Saltan errores relacionados con esa tabla y entiendo que debe tener una id relacionada con
    vtiger_crmentity y autoincremental
    Te agradecería cualquier ayuda en este sentido.
    Gracias

    ResponderEliminar
  2. mira siempre que me da error en esa tabla lo que hago es aumentar el id para que no existan registros con ids duplicadas de tal forma que no me afecte la integridad de la tabla crmentity espero haber ayudado en algo.

    ResponderEliminar

Publicar un comentario

Entradas populares