You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
355 lines
14 KiB
355 lines
14 KiB
4 months ago
|
<?php
|
||
|
/*********************************************************************************
|
||
|
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||
|
* ("License"); You may not use this file except in compliance with the License
|
||
|
* The Original Code is: vtiger CRM Open Source
|
||
|
* The Initial Developer of the Original Code is vtiger.
|
||
|
* Portions created by vtiger are Copyright (C) vtiger.
|
||
|
* All Rights Reserved.
|
||
|
*
|
||
|
********************************************************************************/
|
||
|
|
||
|
require_once('include/database/PearDatabase.php');
|
||
|
require_once('modules/Leads/Lead.php');
|
||
|
//Getting the Parameters from the ConvertLead Form
|
||
|
$id = $_REQUEST["record"];
|
||
|
|
||
|
|
||
|
$module = $_REQUEST["module"];
|
||
|
$assigned_user_id = $_REQUEST["smowerid"];
|
||
|
$createpotential = $_REQUEST["createpotential"];
|
||
|
$potential_name = $_REQUEST["potential_name"];
|
||
|
$close_date = getDBInsertDateValue($_REQUEST["closedate"]);
|
||
|
$current_user_id = $_REQUEST["current_user_id"];
|
||
|
$assigned_user_id = $_REQUEST["assigned_user_id"];
|
||
|
$accountname = $_REQUEST['account_name'];
|
||
|
|
||
|
global $vtlog;
|
||
|
$vtlog->logthis("id is ".$id,'debug');
|
||
|
$vtlog->logthis("assigned_user_id is ".$assigned_user_id,'debug');
|
||
|
$vtlog->logthis("createpotential is ".$createpotential,'debug');
|
||
|
$vtlog->logthis("close date is ".$close_date,'debug');
|
||
|
$vtlog->logthis("current user id is ".$current_user_id,'debug');
|
||
|
$vtlog->logthis("assigned user id is ".$assigned_user_id,'debug');
|
||
|
$vtlog->logthis("accountname is ".$accountname,'debug');
|
||
|
$vtlog->logthis("module is ".$module,'debug');
|
||
|
|
||
|
//Retrieve info from all the tables related to leads
|
||
|
$focus = new Lead();
|
||
|
$focus->retrieve_entity_info($id,"Leads");
|
||
|
|
||
|
//get all the lead related columns
|
||
|
$row = $focus->column_fields;
|
||
|
|
||
|
$date_entered;
|
||
|
$date_modified;
|
||
|
|
||
|
$date_entered = date('YmdHis');
|
||
|
$date_modified = date('YmdHis');
|
||
|
|
||
|
$crmid = $adb->getUniqueID("crmentity");
|
||
|
|
||
|
//function for getting the custom values from leads and saving to account/contact/potential custom fields -Jag
|
||
|
function getInsertValues($type,$type_id)
|
||
|
{
|
||
|
global $id,$adb,$vtlog;
|
||
|
|
||
|
$sql_convert_lead="select * from convertleadmapping ";
|
||
|
$convert_result = $adb->query($sql_convert_lead);
|
||
|
$noofrows = $adb->num_rows($convert_result);
|
||
|
|
||
|
for($i=0;$i<$noofrows;$i++)
|
||
|
{
|
||
|
$flag="false";
|
||
|
$vtlog->logthis("In convertleadmapping function",'info');
|
||
|
$lead_id=$adb->query_result($convert_result,$i,"leadfid");
|
||
|
//Getting the relatd customfields for Accounts/Contact/potential from convertleadmapping table
|
||
|
$account_id_val=$adb->query_result($convert_result,$i,"accountfid");
|
||
|
$contact_id_val=$adb->query_result($convert_result,$i,"contactfid");
|
||
|
$potential_id_val=$adb->query_result($convert_result,$i,"potentialfid");
|
||
|
|
||
|
$sql_leads_column="select field.fieldid,field.columnname from field,tab where field.tabid=tab.tabid and generatedtype=2 and tab.name='Leads' and fieldid=".$lead_id; //getting the columnname for the customfield of the lead
|
||
|
|
||
|
$vtlog->logthis("Lead's custom field coumn name is ".$sql_leads_column,'debug');
|
||
|
|
||
|
$lead_column_result = $adb->query($sql_leads_column);
|
||
|
$leads_no_rows = $adb->num_rows($lead_column_result);
|
||
|
if($leads_no_rows>0)
|
||
|
{
|
||
|
$lead_column_name=$adb->query_result($lead_column_result,0,"columnname");
|
||
|
$sql_leads_val="select ".$lead_column_name." from leadscf where leadid=".$id; //custom field value for lead
|
||
|
$lead_val_result = $adb->query($sql_leads_val);
|
||
|
$lead_value=$adb->query_result($lead_val_result,0,$lead_column_name);
|
||
|
$vtlog->logthis("Lead's custom field value is ".$lead_value,'debug');
|
||
|
}
|
||
|
//Query for getting the column name for Accounts/Contacts/Potentials if custom field for lead is mappped
|
||
|
$sql_type="select field.fieldid,field.columnname from field,tab where field.tabid=tab.tabid and generatedtype=2 and tab.name=";
|
||
|
if($type=="Accounts")
|
||
|
{
|
||
|
if($account_id_val!="" && $account_id_val!=0)
|
||
|
{
|
||
|
$flag="true";
|
||
|
$vtlog->logthis("Getting the Accounts custom field column name ",'info');
|
||
|
$sql_type.="'Accounts' and fieldid=".$account_id_val;
|
||
|
}
|
||
|
}
|
||
|
else if($type == "Contacts")
|
||
|
{
|
||
|
if($contact_id_val!="" && $contact_id_val!=0)
|
||
|
{
|
||
|
$flag="true";
|
||
|
$vtlog->logthis("Getting the Contacts custom field column name ",'info');
|
||
|
$sql_type.="'Contacts' and fieldid=".$contact_id_val;
|
||
|
}
|
||
|
}
|
||
|
else if($type == "Potentials")
|
||
|
{
|
||
|
if($potential_id_val!="" && $potential_id_val!=0)
|
||
|
{
|
||
|
$flag="true";
|
||
|
$vtlog->logthis("Getting the Potentials custom field column name ",'info');
|
||
|
$sql_type.="'Potentials' and fieldid=".$potential_id_val;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
if($flag=="true")
|
||
|
{
|
||
|
$type_result=$adb->query($sql_type);
|
||
|
|
||
|
if(isset($type_insert_column))
|
||
|
$type_insert_column.=",";
|
||
|
$type_insert_column.=$adb->query_result($type_result,0,"columnname") ;
|
||
|
|
||
|
if(isset($insert_value))
|
||
|
$insert_value.=",";
|
||
|
|
||
|
$insert_value.="'".$adb->query_result($lead_val_result,0,$lead_column_name)."'";
|
||
|
}
|
||
|
|
||
|
}
|
||
|
$vtlog->logthis("columns to be inserted are ".$type_insert_column,'debug');
|
||
|
$vtlog->logthis("columns to be inserted are ".$insert_value,'debug');
|
||
|
$values = array ($type_insert_column,$insert_value);
|
||
|
return $values;
|
||
|
}
|
||
|
//function Ends
|
||
|
|
||
|
function getRelatedNotesAttachments($id,$accountid)
|
||
|
{
|
||
|
global $adb,$vtlog,$id;
|
||
|
|
||
|
|
||
|
$sql_lead_notes ="select * from senotesrel where crmid=".$id;
|
||
|
$lead_notes_result = $adb->query($sql_lead_notes);
|
||
|
$noofrows = $adb->num_rows($lead_notes_result);
|
||
|
|
||
|
for($i=0; $i<$noofrows;$i++ )
|
||
|
{
|
||
|
|
||
|
$lead_related_note_id=$adb->query_result($lead_notes_result,$i,"notesid");
|
||
|
$vtlog->logthis("Lead related note id ".$lead_related_note_id,'debug');
|
||
|
|
||
|
$sql_delete_lead_notes="delete from senotesrel where crmid=".$id;
|
||
|
$adb->query($sql_delete_lead_notes);
|
||
|
|
||
|
$sql_insert_account_notes="insert into senotesrel(crmid,notesid) values (".$accountid.",".$lead_related_note_id.")";
|
||
|
$adb->query($sql_insert_account_notes);
|
||
|
}
|
||
|
|
||
|
$sql_lead_attachment="select * from seattachmentsrel where crmid=".$id;
|
||
|
$lead_attachment_result = $adb->query($sql_lead_attachment);
|
||
|
$noofrows = $adb->num_rows($lead_attachment_result);
|
||
|
|
||
|
for($i=0;$i<$noofrows;$i++)
|
||
|
{
|
||
|
|
||
|
$lead_related_attachment_id=$adb->query_result($lead_attachment_result,$i,"attachmentsid");
|
||
|
$vtlog->logthis("Lead related attachment id ".$lead_related_attachment_id,'debug');
|
||
|
|
||
|
$sql_delete_lead_attachment="delete from seattachmentsrel where crmid=".$id;
|
||
|
$adb->query($sql_delete_lead_attachment);
|
||
|
|
||
|
$sql_insert_account_attachment="insert into seattachmentsrel(crmid,attachmentsid) values (".$accountid.",".$lead_related_attachment_id.")";
|
||
|
$adb->query($sql_insert_account_attachment);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
function getRelatedActivities($accountid,$contact_id)
|
||
|
{
|
||
|
global $adb,$vtlog,$id;
|
||
|
|
||
|
$sql_lead_activity="select * from seactivityrel where crmid=".$id;
|
||
|
$lead_activity_result = $adb->query($sql_lead_activity);
|
||
|
$noofrows = $adb->num_rows($lead_activity_result);
|
||
|
for($i=0;$i<$noofrows;$i++)
|
||
|
{
|
||
|
|
||
|
$lead_related_activity_id=$adb->query_result($lead_activity_result,$i,"activityid");
|
||
|
$vtlog->logthis("Lead related activity id ".$lead_related_activity_id,'debug');
|
||
|
|
||
|
$sql_type_email="select setype from crmentity where crmid=".$lead_related_activity_id;
|
||
|
$type_email_result = $adb->query($sql_type_email);
|
||
|
$type=$adb->query_result($type_email_result,0,"setype");
|
||
|
$vtlog->logthis("type of activity id ".$type,'debug');
|
||
|
|
||
|
$sql_delete_lead_activity="delete from seactivityrel where crmid=".$id;
|
||
|
$adb->query($sql_delete_lead_activity);
|
||
|
|
||
|
if($type != "Emails")
|
||
|
{
|
||
|
$sql_insert_account_activity="insert into seactivityrel(crmid,activityid) values (".$accountid.",".$lead_related_activity_id.")";
|
||
|
$adb->query($sql_insert_account_activity);
|
||
|
|
||
|
$sql_insert_account_activity="insert into cntactivityrel(contactid,activityid) values (".$contact_id.",".$lead_related_activity_id.")";
|
||
|
$adb->query($sql_insert_account_activity);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$sql_insert_account_activity="insert into seactivityrel(crmid,activityid) values (".$contact_id.",".$lead_related_activity_id.")"; $adb->query($sql_insert_account_activity);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
//$sql_crmentity = "insert into crmentity(crmid,smcreatorid,smownerid,setype,presence,createdtime,modifiedtime,deleted) values(".$crmid.",".$current_user_id.",".$current_user_id.",'Accounts',1,".$date_entered.",".$date_modified.",0)";
|
||
|
$sql_crmentity = "insert into crmentity(crmid,smcreatorid,smownerid,setype,presence,createdtime,modifiedtime,deleted,description) values(".$crmid.",".$current_user_id.",".$assigned_user_id.",'Accounts',1,".$date_entered.",".$date_modified.",0,'".$row['description']."')";
|
||
|
|
||
|
$adb->query($sql_crmentity);
|
||
|
|
||
|
|
||
|
$sql_insert_account = "INSERT INTO account (accountid,accountname,industry,annualrevenue,phone,fax,rating,email1,website,employees) VALUES (".$crmid.",'".$accountname ."','".$row["industry"] ."','" .$row["annualrevenue"] ."','" .$row["phone"] ."','".$row["fax"] ."','" .$row["rating"] ."','" .$row["email"] ."','" .$row["website"] ."','" .$row["noofemployees"] ."')";
|
||
|
|
||
|
|
||
|
$adb->query($sql_insert_account);
|
||
|
|
||
|
$sql_insert_accountbillads = "INSERT INTO accountbillads (accountaddressid,city,code,country,state,street) VALUES (".$crmid.",'".$row["city"] ."','" .$row["code"] ."','" .$row["country"] ."','".$row["state"] ."','" .$row["lane"]."')";
|
||
|
|
||
|
$adb->query($sql_insert_accountbillads);
|
||
|
|
||
|
|
||
|
$sql_insert_accountshipads = "INSERT INTO accountshipads (accountaddressid,city,code,country,state,street) VALUES (".$crmid.",'".$row["city"] ."','" .$row["code"] ."','" .$row["country"] ."','".$row["state"] ."','" .$row["lane"]."')";
|
||
|
|
||
|
|
||
|
$adb->query($sql_insert_accountshipads);
|
||
|
|
||
|
//Getting the custom field values from leads and inserting into Accounts if the field is mapped - Jaguar
|
||
|
$insert_value=$crmid;
|
||
|
$insert_column="accountid";
|
||
|
$val= getInsertValues("Accounts",$insert_value);
|
||
|
if($val[0]!="")
|
||
|
$insert_column.=",";
|
||
|
if($val[1]!="")
|
||
|
$insert_value.=",";
|
||
|
|
||
|
$insert_column.=$val[0];
|
||
|
$insert_value.=$val[1];
|
||
|
$sql_insert_accountcustomfield = "INSERT INTO accountscf (".$insert_column.") VALUES (".$insert_value.")";
|
||
|
|
||
|
$adb->query($sql_insert_accountcustomfield);
|
||
|
|
||
|
//
|
||
|
|
||
|
|
||
|
$acccount_id=$crmid;
|
||
|
getRelatedNotesAttachments($id,$crmid); //To Convert Related Notes & Attachments -Jaguar
|
||
|
|
||
|
$date_entered = date('YmdHis');
|
||
|
$date_modified = date('YmdHis');
|
||
|
|
||
|
$crmcontactid = $adb->getUniqueID("crmentity");
|
||
|
$sql_crmentity1 = "insert into crmentity(crmid,smcreatorid,smownerid,setype,presence,deleted,description,createdtime) values(".$crmcontactid.",".$current_user_id.",".$assigned_user_id.",'Contacts',0,0,'".$row['description']."','".$date_entered."')";
|
||
|
|
||
|
$adb->query($sql_crmentity1);
|
||
|
|
||
|
|
||
|
$contact_id = $crmcontactid;
|
||
|
$vtlog->logthis("contact id is ".$contact_id,'debug');
|
||
|
|
||
|
$sql_insert_contact = "INSERT INTO contactdetails (contactid,accountid,salutation,firstname,lastname,email,phone,mobile,title,fax,yahooid) VALUES (".$contact_id.",".$crmid.",'".$row["salutation"] ."','" .$row["firstname"] ."','" .$row["lastname"] ."','" .$row["email"] ."','" .$row["phone"]. "','" .$row["mobile"] ."','" .$row["title"] ."','".$row["fax"] ."','".$row['yahooid']."')";
|
||
|
|
||
|
$adb->query($sql_insert_contact);
|
||
|
|
||
|
|
||
|
$sql_insert_contactsubdetails = "INSERT INTO contactsubdetails (contactsubscriptionid,homephone,otherphone,leadsource) VALUES (".$contact_id.",'".$row["phone"] ."','" .$row["phone"] ."','".$row['leadsource']."')";
|
||
|
|
||
|
$adb->query($sql_insert_contactsubdetails);
|
||
|
|
||
|
$sql_insert_contactaddress = "INSERT INTO contactaddress (contactaddressid,mailingcity,mailingstreet,mailingstate,mailingcountry,mailingzip) VALUES (".$contact_id.",'".$row["city"] ."','" .$row["lane"] ."','".$row['state']."','" .$row["country"] ."','".$row['code']."')";
|
||
|
|
||
|
$adb->query($sql_insert_contactaddress);
|
||
|
|
||
|
|
||
|
//Getting the customfield values from leads and inserting into the respected ContactCustomfield to which it is mapped - Jaguar
|
||
|
$insert_column="contactid";
|
||
|
$insert_value=$contact_id;
|
||
|
$val= getInsertValues("Contacts",$contact_id);
|
||
|
|
||
|
if($val[0]!="")
|
||
|
$insert_column.=",";
|
||
|
if($val[1]!="")
|
||
|
$insert_value.=",";
|
||
|
|
||
|
$insert_column.=$val[0];
|
||
|
$insert_value.=$val[1];
|
||
|
$sql_insert_contactcustomfield = "INSERT INTO contactscf (".$insert_column.") VALUES (".$insert_value.")";
|
||
|
|
||
|
$adb->query($sql_insert_contactcustomfield);
|
||
|
//
|
||
|
|
||
|
getRelatedActivities($acccount_id,$contact_id); //To convert relates Activites and Email -Jaguar
|
||
|
|
||
|
if(! isset($createpotential) || ! $createpotential == "on")
|
||
|
{
|
||
|
$vtlog->logthis("createpotential is not set",'info');
|
||
|
$date_entered = date('YmdHis');
|
||
|
$date_modified = date('YmdHis');
|
||
|
|
||
|
|
||
|
$oppid = $adb->getUniqueID("crmentity");
|
||
|
$sql_crmentity = "insert into crmentity(crmid,smcreatorid,smownerid,setype,presence,deleted,createdtime,description) values(".$oppid.",".$current_user_id.",".$assigned_user_id.",'Potentials',0,0,'".$date_entered."','".$row['description']."')";
|
||
|
|
||
|
$adb->query($sql_crmentity);
|
||
|
|
||
|
|
||
|
$sql_insert_opp = "INSERT INTO potential (potentialid,accountid,potentialname,leadsource,closingdate,sales_stage,amount) VALUES (".$oppid.",".$crmid .",'".$potential_name."','".$row['leadsource']."','".$close_date."','Prospecting',0)";
|
||
|
|
||
|
$adb->query($sql_insert_opp);
|
||
|
|
||
|
//Getting the customfield values from leads and inserting into the respected PotentialCustomfield to which it is mapped - Jaguar
|
||
|
$insert_column="potentialid";
|
||
|
$insert_value=$oppid;
|
||
|
$val= getInsertValues("Potentials",$oppid);
|
||
|
if($val[0]!="")
|
||
|
$insert_column.=",";
|
||
|
if($val[1]!="")
|
||
|
$insert_value.=",";
|
||
|
|
||
|
$insert_column.=$val[0];
|
||
|
$insert_value.=$val[1];
|
||
|
|
||
|
$sql_insert_potentialcustomfield = "INSERT INTO potentialscf (".$insert_column.") VALUES (".$insert_value.")";
|
||
|
//
|
||
|
|
||
|
$adb->query($sql_insert_potentialcustomfield);
|
||
|
$sql_insert2contpotentialrel ="insert into contpotentialrel values(".$contact_id.",".$oppid .")";
|
||
|
|
||
|
$adb->query($sql_insert2contpotentialrel);
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
//Deleting from the tracker
|
||
|
$sql_delete_tracker= "DELETE from tracker where item_id='" .$id ."'";
|
||
|
$adb->query($sql_delete_tracker);
|
||
|
|
||
|
//Updating the deleted status
|
||
|
$sql_update_converted = "UPDATE leaddetails SET converted = 1 where leadid='" .$id ."'";
|
||
|
$adb->query($sql_update_converted);
|
||
|
|
||
|
header("Location: index.php?action=DetailView&module=Accounts&record=$crmid");
|
||
|
|
||
|
?>
|