'crmid','vtiger_leaddetails'=>'leadid','vtiger_leadsubdetails'=>'leadsubscriptionid','vtiger_leadaddress'=>'leadaddressid','vtiger_leadscf'=>'leadid'); var $entity_table = "vtiger_crmentity"; /** * Mandatory table for supporting custom fields. */ var $customFieldTable = Array('vtiger_leadscf', 'leadid'); //construct this from database; var $column_fields = Array(); var $sortby_fields = Array('lastname','firstname','email','phone','company','smownerid','website'); // This is used to retrieve related vtiger_fields from form posts. var $additional_column_fields = Array('smcreatorid', 'smownerid', 'contactid','potentialid' ,'crmid'); // This is the list of vtiger_fields that are in the lists. var $list_fields = Array( 'Last Name'=>Array('leaddetails'=>'lastname'), 'First Name'=>Array('leaddetails'=>'firstname'), 'Company'=>Array('leaddetails'=>'company'), 'Phone'=>Array('leadaddress'=>'phone'), 'Website'=>Array('leadsubdetails'=>'website'), 'Email'=>Array('leaddetails'=>'email'), 'Assigned To'=>Array('crmentity'=>'smownerid') ); var $list_fields_name = Array( 'Last Name'=>'lastname', 'First Name'=>'firstname', 'Company'=>'company', 'Phone'=>'phone', 'Website'=>'website', 'Email'=>'email', 'Assigned To'=>'assigned_user_id' ); var $list_link_field= 'lastname'; var $search_fields = Array( 'Name'=>Array('leaddetails'=>'lastname'), 'Company'=>Array('leaddetails'=>'company') ); var $search_fields_name = Array( 'Name'=>'lastname', 'Company'=>'company' ); var $required_fields = array(); // Used when enabling/disabling the mandatory fields for the module. // Refers to vtiger_field.fieldname values. var $mandatory_fields = Array('assigned_user_id', 'lastname', 'createdtime' ,'modifiedtime'); //Default Fields for Email Templates -- Pavani var $emailTemplate_defaultFields = array('firstname','lastname','leadsource','leadstatus','rating','industry','secondaryemail','email','annualrevenue','designation','salutation'); //Added these variables which are used as default order by and sortorder in ListView var $default_order_by = 'lastname'; var $default_sort_order = 'ASC'; // For Alphabetical search var $def_basicsearch_col = 'lastname'; //var $groupTable = Array('vtiger_leadgrouprelation','leadid'); function Leads() { $this->log = LoggerManager::getLogger('lead'); $this->log->debug("Entering Leads() method ..."); $this->db = PearDatabase::getInstance(); $this->column_fields = getColumnFields('Leads'); $this->log->debug("Exiting Lead method ..."); } /** Function to handle module specific operations when saving a entity */ function save_module($module) { } // Mike Crowe Mod --------------------------------------------------------Default ordering for us /** Function to export the lead records in CSV Format * @param reference variable - where condition is passed when the query is executed * Returns Export Leads Query. */ function create_export_query($where) { global $log; global $current_user; $log->debug("Entering create_export_query(".$where.") method ..."); include("include/utils/ExportUtils.php"); //To get the Permitted fields query and the permitted fields list $sql = getPermittedFieldsQuery("Leads", "detail_view"); $fields_list = getFieldsListFromQuery($sql); $userNameSql = getSqlForNameInDisplayFormat(array('first_name'=> 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users'); $query = "SELECT $fields_list,case when (vtiger_users.user_name not like '') then $userNameSql else vtiger_groups.groupname end as user_name FROM ".$this->entity_table." INNER JOIN vtiger_leaddetails ON vtiger_crmentity.crmid=vtiger_leaddetails.leadid LEFT JOIN vtiger_leadsubdetails ON vtiger_leaddetails.leadid = vtiger_leadsubdetails.leadsubscriptionid LEFT JOIN vtiger_leadaddress ON vtiger_leaddetails.leadid=vtiger_leadaddress.leadaddressid LEFT JOIN vtiger_leadscf ON vtiger_leadscf.leadid=vtiger_leaddetails.leadid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_crmentity.smownerid = vtiger_users.id and vtiger_users.status='Active' "; $query .= $this->getNonAdminAccessControlQuery('Leads',$current_user); $where_auto = " vtiger_crmentity.deleted=0 AND vtiger_leaddetails.converted =0"; if($where != "") $query .= " where ($where) AND ".$where_auto; else $query .= " where ".$where_auto; $log->debug("Exiting create_export_query method ..."); return $query; } /** Returns a list of the associated tasks * @param integer $id - leadid * returns related Task or Event record in array format */ function get_activities($id, $cur_tab_id, $rel_tab_id, $actions=false) { global $log, $singlepane_view,$currentModule,$current_user; $log->debug("Entering get_activities(".$id.") method ..."); $this_module = $currentModule; $related_module = vtlib_getModuleNameById($rel_tab_id); require_once("modules/$related_module/Activity.php"); $other = new Activity(); vtlib_setup_modulevars($related_module, $other); $singular_modname = vtlib_toSingular($related_module); $parenttab = getParentTab(); if($singlepane_view == 'true') $returnset = '&return_module='.$this_module.'&return_action=DetailView&return_id='.$id; else $returnset = '&return_module='.$this_module.'&return_action=CallRelatedList&return_id='.$id; $button = ''; $button .= ''; if($actions) { if(is_string($actions)) $actions = explode(',', strtoupper($actions)); if(in_array('ADD', $actions) && isPermitted($related_module,1, '') == 'yes') { if(getFieldVisibilityPermission('Calendar',$current_user->id,'parent_id', 'readwrite') == '0') { $button .= " "; } if(getFieldVisibilityPermission('Events',$current_user->id,'parent_id', 'readwrite') == '0') { $button .= ""; } } } $userNameSql = getSqlForNameInDisplayFormat(array('first_name'=> 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users'); $query = "SELECT vtiger_activity.*,vtiger_seactivityrel.*, vtiger_contactdetails.lastname, vtiger_contactdetails.contactid, vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.modifiedtime,case when (vtiger_users.user_name not like '') then $userNameSql else vtiger_groups.groupname end as user_name, vtiger_recurringevents.recurringtype from vtiger_activity inner join vtiger_seactivityrel on vtiger_seactivityrel.activityid= vtiger_activity.activityid inner join vtiger_crmentity on vtiger_crmentity.crmid= vtiger_activity.activityid left join vtiger_cntactivityrel on vtiger_cntactivityrel.activityid = vtiger_activity.activityid left join vtiger_contactdetails on vtiger_contactdetails.contactid = vtiger_cntactivityrel.contactid left join vtiger_users on vtiger_users.id=vtiger_crmentity.smownerid left outer join vtiger_recurringevents on vtiger_recurringevents.activityid= vtiger_activity.activityid left join vtiger_groups on vtiger_groups.groupid= vtiger_crmentity.smownerid where vtiger_seactivityrel.crmid=".$id." and vtiger_crmentity.deleted = 0 and ((vtiger_activity.activitytype='Task' and vtiger_activity.status not in ('Completed','Deferred')) or (vtiger_activity.activitytype NOT in ('Emails','Task') and vtiger_activity.eventstatus not in ('','Held'))) "; $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset); if($return_value == null) $return_value = Array(); $return_value['CUSTOM_BUTTON'] = $button; $log->debug("Exiting get_activities method ..."); return $return_value; } /** Returns a list of the associated Campaigns * @param $id -- campaign id :: Type Integer * @returns list of campaigns in array format */ function get_campaigns($id, $cur_tab_id, $rel_tab_id, $actions=false) { global $log, $singlepane_view,$currentModule,$current_user; $log->debug("Entering get_campaigns(".$id.") method ..."); $this_module = $currentModule; $related_module = vtlib_getModuleNameById($rel_tab_id); require_once("modules/$related_module/$related_module.php"); $other = new $related_module(); vtlib_setup_modulevars($related_module, $other); $singular_modname = vtlib_toSingular($related_module); $parenttab = getParentTab(); if($singlepane_view == 'true') $returnset = '&return_module='.$this_module.'&return_action=DetailView&return_id='.$id; else $returnset = '&return_module='.$this_module.'&return_action=CallRelatedList&return_id='.$id; $button = ''; $button .= ''; if($actions) { if(is_string($actions)) $actions = explode(',', strtoupper($actions)); if(in_array('SELECT', $actions) && isPermitted($related_module,4, '') == 'yes') { $button .= " "; } } $userNameSql = getSqlForNameInDisplayFormat(array('first_name'=> 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users'); $query = "SELECT case when (vtiger_users.user_name not like '') then $userNameSql else vtiger_groups.groupname end as user_name , vtiger_campaign.campaignid, vtiger_campaign.campaignname, vtiger_campaign.campaigntype, vtiger_campaign.campaignstatus, vtiger_campaign.expectedrevenue, vtiger_campaign.closingdate, vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.modifiedtime from vtiger_campaign inner join vtiger_campaignleadrel on vtiger_campaignleadrel.campaignid=vtiger_campaign.campaignid inner join vtiger_crmentity on vtiger_crmentity.crmid = vtiger_campaign.campaignid left join vtiger_groups on vtiger_groups.groupid=vtiger_crmentity.smownerid left join vtiger_users on vtiger_users.id = vtiger_crmentity.smownerid where vtiger_campaignleadrel.leadid=".$id." and vtiger_crmentity.deleted=0"; $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset); if($return_value == null) $return_value = Array(); $return_value['CUSTOM_BUTTON'] = $button; $log->debug("Exiting get_campaigns method ..."); return $return_value; } /** Returns a list of the associated emails * @param integer $id - leadid * returns related emails record in array format */ function get_emails($id, $cur_tab_id, $rel_tab_id, $actions=false) { global $log, $singlepane_view,$currentModule,$current_user; $log->debug("Entering get_emails(".$id.") method ..."); $this_module = $currentModule; $related_module = vtlib_getModuleNameById($rel_tab_id); require_once("modules/$related_module/$related_module.php"); $other = new $related_module(); vtlib_setup_modulevars($related_module, $other); $singular_modname = vtlib_toSingular($related_module); $parenttab = getParentTab(); if($singlepane_view == 'true') $returnset = '&return_module='.$this_module.'&return_action=DetailView&return_id='.$id; else $returnset = '&return_module='.$this_module.'&return_action=CallRelatedList&return_id='.$id; $button = ''; $button .= ''; if($actions) { if(is_string($actions)) $actions = explode(',', strtoupper($actions)); if(in_array('SELECT', $actions) && isPermitted($related_module,4, '') == 'yes') { $button .= " "; } if(in_array('ADD', $actions) && isPermitted($related_module,1, '') == 'yes') { $button .= ""; } } $userNameSql = getSqlForNameInDisplayFormat(array('first_name'=> 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users'); $query ="select case when (vtiger_users.user_name not like '') then $userNameSql else vtiger_groups.groupname end as user_name," . " vtiger_activity.activityid, vtiger_activity.subject, vtiger_activity.semodule, vtiger_activity.activitytype," . " vtiger_activity.date_start, vtiger_activity.status, vtiger_activity.priority, vtiger_crmentity.crmid," . " vtiger_crmentity.smownerid,vtiger_crmentity.modifiedtime, vtiger_users.user_name, vtiger_seactivityrel.crmid as parent_id " . " from vtiger_activity" . " inner join vtiger_seactivityrel on vtiger_seactivityrel.activityid=vtiger_activity.activityid" . " inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_activity.activityid" . " left join vtiger_groups on vtiger_groups.groupid=vtiger_crmentity.smownerid" . " left join vtiger_users on vtiger_users.id=vtiger_crmentity.smownerid" . " where vtiger_activity.activitytype='Emails' and vtiger_crmentity.deleted=0 and vtiger_seactivityrel.crmid=".$id; $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset); if($return_value == null) $return_value = Array(); $return_value['CUSTOM_BUTTON'] = $button; $log->debug("Exiting get_emails method ..."); return $return_value; } /** * Function to get Lead related Task & Event which have activity type Held, Completed or Deferred. * @param integer $id - leadid * returns related Task or Event record in array format */ function get_history($id) { global $log; $log->debug("Entering get_history(".$id.") method ..."); $userNameSql = getSqlForNameInDisplayFormat(array('first_name'=> 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users'); $query = "SELECT vtiger_activity.activityid, vtiger_activity.subject, vtiger_activity.status, vtiger_activity.eventstatus, vtiger_activity.activitytype,vtiger_activity.date_start, vtiger_activity.due_date,vtiger_activity.time_start,vtiger_activity.time_end, vtiger_crmentity.modifiedtime,vtiger_crmentity.createdtime, vtiger_crmentity.description, $userNameSql as user_name,vtiger_groups.groupname from vtiger_activity inner join vtiger_seactivityrel on vtiger_seactivityrel.activityid=vtiger_activity.activityid inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_activity.activityid left join vtiger_groups on vtiger_groups.groupid=vtiger_crmentity.smownerid left join vtiger_users on vtiger_crmentity.smownerid= vtiger_users.id where (vtiger_activity.activitytype != 'Emails') and (vtiger_activity.status = 'Completed' or vtiger_activity.status = 'Deferred' or (vtiger_activity.eventstatus = 'Held' and vtiger_activity.eventstatus != '')) and vtiger_seactivityrel.crmid=".$id." and vtiger_crmentity.deleted = 0"; //Don't add order by, because, for security, one more condition will be added with this query in include/RelatedListView.php $log->debug("Exiting get_history method ..."); return getHistory('Leads',$query,$id); } /** * Function to get lead related Products * @param integer $id - leadid * returns related Products record in array format */ function get_products($id, $cur_tab_id, $rel_tab_id, $actions=false) { global $log, $singlepane_view,$currentModule,$current_user; $log->debug("Entering get_products(".$id.") method ..."); $this_module = $currentModule; $related_module = vtlib_getModuleNameById($rel_tab_id); require_once("modules/$related_module/$related_module.php"); $other = new $related_module(); vtlib_setup_modulevars($related_module, $other); $singular_modname = vtlib_toSingular($related_module); $parenttab = getParentTab(); if($singlepane_view == 'true') $returnset = '&return_module='.$this_module.'&return_action=DetailView&return_id='.$id; else $returnset = '&return_module='.$this_module.'&return_action=CallRelatedList&return_id='.$id; $button = ''; if($actions) { if(is_string($actions)) $actions = explode(',', strtoupper($actions)); if(in_array('SELECT', $actions) && isPermitted($related_module,4, '') == 'yes') { $button .= " "; } if(in_array('ADD', $actions) && isPermitted($related_module,1, '') == 'yes') { $button .= " "; } } $query = "SELECT vtiger_products.productid, vtiger_products.productname, vtiger_products.productcode, vtiger_products.commissionrate, vtiger_products.qty_per_unit, vtiger_products.unit_price, vtiger_crmentity.crmid, vtiger_crmentity.smownerid FROM vtiger_products INNER JOIN vtiger_seproductsrel ON vtiger_products.productid = vtiger_seproductsrel.productid and vtiger_seproductsrel.setype = 'Leads' INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_products.productid INNER JOIN vtiger_leaddetails ON vtiger_leaddetails.leadid = vtiger_seproductsrel.crmid LEFT JOIN vtiger_users ON vtiger_users.id=vtiger_crmentity.smownerid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid WHERE vtiger_crmentity.deleted = 0 AND vtiger_leaddetails.leadid = $id"; $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset); if($return_value == null) $return_value = Array(); $return_value['CUSTOM_BUTTON'] = $button; $log->debug("Exiting get_products method ..."); return $return_value; } /** Function to get the Combo List Values of Leads Field * @param string $list_option * Returns Combo List Options */ function get_lead_field_options($list_option) { global $log; $log->debug("Entering get_lead_field_options(".$list_option.") method ..."); $comboFieldArray = getComboArray($this->combofieldNames); $log->debug("Exiting get_lead_field_options method ..."); return $comboFieldArray[$list_option]; } /** Function to get the Columnnames of the Leads Record * Used By vtigerCRM Word Plugin * Returns the Merge Fields for Word Plugin */ function getColumnNames_Lead() { global $log,$current_user; $log->debug("Entering getColumnNames_Lead() method ..."); require('user_privileges/user_privileges_'.$current_user->id.'.php'); if($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] == 0) { $sql1 = "select fieldlabel from vtiger_field where tabid=7 and vtiger_field.presence in (0,2)"; $params1 = array(); }else { $profileList = getCurrentUserProfileList(); $sql1 = "select vtiger_field.fieldid,fieldlabel from vtiger_field inner join vtiger_profile2field on vtiger_profile2field.fieldid=vtiger_field.fieldid inner join vtiger_def_org_field on vtiger_def_org_field.fieldid=vtiger_field.fieldid where vtiger_field.tabid=7 and vtiger_field.displaytype in (1,2,3,4) and vtiger_profile2field.visible=0 and vtiger_def_org_field.visible=0 and vtiger_field.presence in (0,2)"; $params1 = array(); if (count($profileList) > 0) { $sql1 .= " and vtiger_profile2field.profileid in (". generateQuestionMarks($profileList) .") group by fieldid"; array_push($params1, $profileList); } } $result = $this->db->pquery($sql1, $params1); $numRows = $this->db->num_rows($result); for($i=0; $i < $numRows;$i++) { $custom_fields[$i] = $this->db->query_result($result,$i,"fieldlabel"); $custom_fields[$i] = preg_replace("/\s+/","",$custom_fields[$i]); $custom_fields[$i] = strtoupper($custom_fields[$i]); } $mergeflds = $custom_fields; $log->debug("Exiting getColumnNames_Lead method ..."); return $mergeflds; } /** * Move the related records of the specified list of id's to the given record. * @param String This module name * @param Array List of Entity Id's from which related records need to be transfered * @param Integer Id of the the Record to which the related records are to be moved */ function transferRelatedRecords($module, $transferEntityIds, $entityId) { global $adb,$log; $log->debug("Entering function transferRelatedRecords ($module, $transferEntityIds, $entityId)"); $rel_table_arr = Array("Activities"=>"vtiger_seactivityrel","Documents"=>"vtiger_senotesrel","Attachments"=>"vtiger_seattachmentsrel", "Products"=>"vtiger_seproductsrel","Campaigns"=>"vtiger_campaignleadrel"); $tbl_field_arr = Array("vtiger_seactivityrel"=>"activityid","vtiger_senotesrel"=>"notesid","vtiger_seattachmentsrel"=>"attachmentsid", "vtiger_seproductsrel"=>"productid","vtiger_campaignleadrel"=>"campaignid"); $entity_tbl_field_arr = Array("vtiger_seactivityrel"=>"crmid","vtiger_senotesrel"=>"crmid","vtiger_seattachmentsrel"=>"crmid", "vtiger_seproductsrel"=>"crmid","vtiger_campaignleadrel"=>"leadid"); foreach($transferEntityIds as $transferId) { foreach($rel_table_arr as $rel_module=>$rel_table) { $id_field = $tbl_field_arr[$rel_table]; $entity_id_field = $entity_tbl_field_arr[$rel_table]; // IN clause to avoid duplicate entries $sel_result = $adb->pquery("select $id_field from $rel_table where $entity_id_field=? " . " and $id_field not in (select $id_field from $rel_table where $entity_id_field=?)", array($transferId,$entityId)); $res_cnt = $adb->num_rows($sel_result); if($res_cnt > 0) { for($i=0;$i<$res_cnt;$i++) { $id_field_value = $adb->query_result($sel_result,$i,$id_field); $adb->pquery("update $rel_table set $entity_id_field=? where $entity_id_field=? and $id_field=?", array($entityId,$transferId,$id_field_value)); } } } } $log->debug("Exiting transferRelatedRecords..."); } /* * Function to get the secondary query part of a report * @param - $module primary module name * @param - $secmodule secondary module name * returns the query string formed on fetching the related data for report for secondary module */ function generateReportsSecQuery($module,$secmodule){ $query = $this->getRelationQuery($module,$secmodule,"vtiger_leaddetails","leadid"); $query .= " left join vtiger_crmentity as vtiger_crmentityLeads on vtiger_crmentityLeads.crmid = vtiger_leaddetails.leadid and vtiger_crmentityLeads.deleted=0 left join vtiger_leadaddress on vtiger_leaddetails.leadid = vtiger_leadaddress.leadaddressid left join vtiger_leadsubdetails on vtiger_leadsubdetails.leadsubscriptionid = vtiger_leaddetails.leadid left join vtiger_leadscf on vtiger_leadscf.leadid = vtiger_leaddetails.leadid left join vtiger_groups as vtiger_groupsLeads on vtiger_groupsLeads.groupid = vtiger_crmentityLeads.smownerid left join vtiger_users as vtiger_usersLeads on vtiger_usersLeads.id = vtiger_crmentityLeads.smownerid left join vtiger_users as vtiger_lastModifiedByLeads on vtiger_lastModifiedByLeads.id = vtiger_crmentityLeads.modifiedby "; return $query; } /* * Function to get the relation tables for related modules * @param - $secmodule secondary module name * returns the array with table names and fieldnames storing relations between module and this module */ function setRelationTables($secmodule){ $rel_tables = array ( "Calendar" => array("vtiger_seactivityrel"=>array("crmid","activityid"),"vtiger_leaddetails"=>"leadid"), "Products" => array("vtiger_seproductsrel"=>array("crmid","productid"),"vtiger_leaddetails"=>"leadid"), "Campaigns" => array("vtiger_campaignleadrel"=>array("leadid","campaignid"),"vtiger_leaddetails"=>"leadid"), "Documents" => array("vtiger_senotesrel"=>array("crmid","notesid"),"vtiger_leaddetails"=>"leadid"), "Services" => array("vtiger_crmentityrel"=>array("crmid","relcrmid"),"vtiger_leaddetails"=>"leadid"), ); return $rel_tables[$secmodule]; } // Function to unlink an entity with given Id from another entity function unlinkRelationship($id, $return_module, $return_id) { global $log; if(empty($return_module) || empty($return_id)) return; if($return_module == 'Campaigns') { $sql = 'DELETE FROM vtiger_campaignleadrel WHERE leadid=? AND campaignid=?'; $this->db->pquery($sql, array($id, $return_id)); } elseif($return_module == 'Products') { $sql = 'DELETE FROM vtiger_seproductsrel WHERE crmid=? AND productid=?'; $this->db->pquery($sql, array($id, $return_id)); } else { $sql = 'DELETE FROM vtiger_crmentityrel WHERE (crmid=? AND relmodule=? AND relcrmid=?) OR (relcrmid=? AND module=? AND crmid=?)'; $params = array($id, $return_module, $return_id, $id, $return_module, $return_id); $this->db->pquery($sql, $params); } } function getListButtons($app_strings) { $list_buttons = Array(); if(isPermitted('Leads','Delete','') == 'yes') { $list_buttons['del'] = $app_strings[LBL_MASS_DELETE]; } if(isPermitted('Leads','EditView','') == 'yes') { $list_buttons['mass_edit'] = $app_strings[LBL_MASS_EDIT]; $list_buttons['c_owner'] = $app_strings[LBL_CHANGE_OWNER]; } if(isPermitted('Emails','EditView','') == 'yes') $list_buttons['s_mail'] = $app_strings[LBL_SEND_MAIL_BUTTON]; // end of mailer export return $list_buttons; } function save_related_module($module, $crmid, $with_module, $with_crmids) { $adb = PearDatabase::getInstance(); if(!is_array($with_crmids)) $with_crmids = Array($with_crmids); foreach($with_crmids as $with_crmid) { if($with_module == 'Products') $adb->pquery("insert into vtiger_seproductsrel values (?,?,?)", array($crmid, $with_crmid, $module)); elseif($with_module == 'Campaigns') $adb->pquery("insert into vtiger_campaignleadrel values(?,?,1)", array($with_crmid, $crmid)); else { parent::save_related_module($module, $crmid, $with_module, $with_crmid); } } } } ?>