diff --git a/oss/vtiger/trunk/modules/Contacts/CallRelatedList.php b/oss/vtiger/trunk/modules/Contacts/CallRelatedList.php new file mode 100644 index 00000000..545c1d7a --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/CallRelatedList.php @@ -0,0 +1,110 @@ +retrieve_entity_info($RECORD,$currentmodule); + $focus->id = $RECORD; + $focus->name=$focus->column_fields['firstname'].' '.$focus->column_fields['lastname']; + $log->debug("id is ".$focus->id); + $log->debug("name is ".$focus->name); + } + + global $adb; + $sql = $adb->pquery('select accountid from vtiger_contactdetails where contactid=?', array($focus->id)); + $accountid = $adb->query_result($sql,0,'accountid'); + if($accountid == 0) $accountid=''; + + global $mod_strings; + global $app_strings; + global $theme; + global $currentModule; + global $current_user; + $theme_path="themes/".$theme."/"; + $image_path=$theme_path."images/"; + + $smarty = new vtigerCRM_Smarty; + $smarty->assign("accountid",$accountid); + + + if(isset($_request['isduplicate']) && $_request['isduplicate'] == 'true') { + $focus->id = ""; + } + if(isset($_REQUEST['mode']) && $_REQUEST['mode'] != ' ') { + $smarty->assign("OP_MODE",vtlib_purify($_REQUEST['mode'])); + } + $parent_email = getEmailParentsList('Contacts',$_REQUEST['record'], $focus); + $smarty->assign("HIDDEN_PARENTS_LIST",$parent_email); + + if(isset($_REQUEST['record']) && $_REQUEST['record']!='') { + $userid = $current_user->id; + $sql = "select fieldname from vtiger_field where uitype = '13' and tabid = 4 and vtiger_field.presence in (0,2)"; + $result = $adb->pquery($sql, array()); + $num_fieldnames = $adb->num_rows($result); + for($i = 0; $i < $num_fieldnames; $i++) { + $fieldname = $adb->query_result($result,$i,"fieldname"); + $permit= getFieldVisibilityPermission("Contacts",$userid,$fieldname); + } + } + $smarty->assign("TODO_PERMISSION",CheckFieldPermission('parent_id','Calendar')); + $smarty->assign("CONTACT_PERMISSION",CheckFieldPermission('contact_id','Calendar')); + $smarty->assign("EVENT_PERMISSION",CheckFieldPermission('parent_id','Events')); + $smarty->assign("CATEGORY",$category); + $smarty->assign("ID",$focus->id); + $smarty->assign("NAME",$focus->name); + $smarty->assign("EMAIL",$focus->column_fields['email']); + $smarty->assign("YAHOO",$focus->column_fields['yahooid']); + + // Module Sequence Numbering + $mod_seq_field = getModuleSequenceField($currentModule); + if ($mod_seq_field != null) { + $mod_seq_id = $focus->column_fields[$mod_seq_field['name']]; + } else { + $mod_seq_id = $focus->id; + } + $smarty->assign('MOD_SEQ_ID', $mod_seq_id); + // END + + $related_array = getRelatedLists($currentModule,$focus); + require_once('include/ListView/RelatedListViewSession.php'); + if(!empty($_REQUEST['selected_header']) && !empty($_REQUEST['relation_id'])) { + $relationId = vtlib_purify($_REQUEST['relation_id']); + RelatedListViewSession::addRelatedModuleToSession($relationId, + vtlib_purify($_REQUEST['selected_header'])); + } + $open_related_modules = RelatedListViewSession::getRelatedModulesFromSession(); + $smarty->assign("SELECTEDHEADERS", $open_related_modules); + + $smarty->assign("RELATEDLISTS", $related_array); + $smarty->assign("MODULE",$currentmodule); + $smarty->assign("SINGLE_MOD",$app_strings['Contact']); + $smarty->assign("UPDATEINFO",updateInfo($focus->id)); + $smarty->assign("MOD",$mod_strings); + $smarty->assign("APP",$app_strings); + $smarty->assign("THEME", $theme); + $smarty->assign("IMAGE_PATH", $image_path); + + $check_button = Button_Check($module); + $smarty->assign("CHECK", $check_button); + $smarty->display("RelatedLists.tpl"); +} +?> \ No newline at end of file diff --git a/oss/vtiger/trunk/modules/Contacts/Contacts.js b/oss/vtiger/trunk/modules/Contacts/Contacts.js new file mode 100644 index 00000000..de29b5d9 --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/Contacts.js @@ -0,0 +1,250 @@ +/********************************************************************************* + +** 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. + ********************************************************************************/ + +document.write(" +pquery($sql, array($templateid)); +$temparray = $adb->fetch_array($result); + +$fileContent = $temparray['data']; +$filename=html_entity_decode($temparray['filename'], ENT_QUOTES, $default_charset); +// Fix For: http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/2107 +$filename= $randomfilename . "_word.doc"; + +$filesize=$temparray['filesize']; +$wordtemplatedownloadpath =$root_directory ."/test/wordtemplatedownload/"; + +$handle = fopen($wordtemplatedownloadpath .$filename,"wb"); +fwrite($handle,base64_decode($fileContent),$filesize); +fclose($handle); + + +//<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>> +$mass_merge = $_REQUEST['allselectedboxes']; +$single_record = $_REQUEST['record']; + +if($mass_merge != "") +{ + $mass_merge = explode(";",$mass_merge); + $temp_mass_merge = $mass_merge; + if(array_pop($temp_mass_merge)=="") + array_pop($mass_merge); + //$mass_merge = implode(",",$mass_merge); +}else if($single_record != "") +{ + $mass_merge = $single_record; +}else +{ + die("Record Id is not found, cannot merge the document"); +} + +//<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>> + +global $current_user; +require('user_privileges/user_privileges_'.$current_user->id.'.php'); +if($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] == 0 || $module == "Users" || $module == "Emails") +{ + $query1="select vtiger_tab.name,vtiger_field.tablename,vtiger_field.columnname,vtiger_field.fieldlabel from vtiger_field inner join vtiger_tab on vtiger_tab.tabid = vtiger_field.tabid where vtiger_field.tabid in (4,6) and vtiger_field.block <> 75 order by vtiger_field.tablename and vtiger_field.presence in (0,2)"; + $params1 = array(); +} +else +{ + $profileList = getCurrentUserProfileList(); + $query1="select vtiger_tab.name,vtiger_field.tablename,vtiger_field.columnname,vtiger_field.fieldlabel from vtiger_field inner join vtiger_tab on vtiger_tab.tabid = vtiger_field.tabid 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 in (4,6) and vtiger_field.block <> 75 AND vtiger_profile2field.visible=0 AND vtiger_def_org_field.visible=0 AND vtiger_profile2field.profileid IN (". generateQuestionMarks($profileList) .") and vtiger_field.presence in (0,2) GROUP BY vtiger_field.fieldid order by vtiger_field.tablename"; + $params1 = array($profileList); + //Postgres 8 fixes + if( $adb->dbType == "pgsql") + $query1 = fixPostgresQuery( $query1, $log, 0); +} +$result = $adb->pquery($query1, $params1); +$y=$adb->num_rows($result); + +for ($x=0; $x<$y; $x++) +{ + $tablename = $adb->query_result($result,$x,"tablename"); + $columnname = $adb->query_result($result,$x,"columnname"); + $modulename = $adb->query_result($result,$x,"name"); + + if($tablename == "crmentity") + { + if($modulename == "Accounts") + { + $tablename = "crmentityAccounts"; + } + } + $querycolumns[$x] = $tablename.".".$columnname; + if($columnname == "smownerid") + { + if($modulename == "Accounts") + { + $querycolumns[$x]="case when (usersAccounts.user_name not like '') then concat(usersAccounts.last_name,' ',usersAccounts.first_name) else groupsAccounts.groupname end as username"; + } + if($modulename == "Contacts") + { + $querycolumns[$x]="case when (vtiger_users.user_name not like '') then concat(vtiger_users.last_name,' ',vtiger_users.first_name) else vtiger_groups.groupname end as usercname,vtiger_users.first_name,vtiger_users.last_name,vtiger_users.user_name,vtiger_users.yahoo_id,vtiger_users.title,vtiger_users.phone_work,vtiger_users.department,vtiger_users.phone_mobile,vtiger_users.phone_other,vtiger_users.phone_fax,vtiger_users.email1,vtiger_users.phone_home,vtiger_users.email2,vtiger_users.address_street,vtiger_users.address_city,vtiger_users.address_state,vtiger_users.address_postalcode,vtiger_users.address_country"; + } + } + if($columnname == "parentid") + { + $querycolumns[$x] = "accountAccounts.accountname"; + } + if($columnname == "accountid") + { + $querycolumns[$x] = "accountContacts.accountname"; + } + if($columnname == "reportsto") + { + $querycolumns[$x] = "contactdetailsContacts.lastname"; + } + + + if($modulename == "Accounts") + { + $field_label[$x] = "ACCOUNT_".strtoupper(str_replace(" ","",$adb->query_result($result,$x,"fieldlabel"))); + } + + if($modulename == "Contacts") + { + $field_label[$x] = "CONTACT_".strtoupper(str_replace(" ","",$adb->query_result($result,$x,"fieldlabel"))); + if($columnname == "smownerid") + { + $field_label[$x] = $field_label[$x].",USER_FIRSTNAME,USER_LASTNAME,USER_USERNAME,USER_YAHOOID,USER_TITLE,USER_OFFICEPHONE,USER_DEPARTMENT,USER_MOBILE,USER_OTHERPHONE,USER_FAX,USER_EMAIL,USER_HOMEPHONE,USER_OTHEREMAIL,USER_PRIMARYADDRESS,USER_CITY,USER_STATE,USER_POSTALCODE,USER_COUNTRY"; + } + } + + +} +$csvheader = implode(",",$field_label); +//echo $csvheader; +//<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>> + +if(count($querycolumns) > 0) +{ + $selectcolumns = implode($querycolumns,","); + + + $query = "select $selectcolumns from vtiger_contactdetails + inner join vtiger_crmentity on vtiger_crmentity.crmid = vtiger_contactdetails.contactid + inner join vtiger_contactaddress on vtiger_contactdetails.contactid = vtiger_contactaddress.contactaddressid + inner join vtiger_contactsubdetails on vtiger_contactdetails.contactid = vtiger_contactsubdetails.contactsubscriptionid + inner join vtiger_contactscf on vtiger_contactdetails.contactid = vtiger_contactscf.contactid + inner join vtiger_customerdetails on vtiger_contactdetails.contactid = vtiger_customerdetails.customerid + left join vtiger_contactdetails as contactdetailsContacts on contactdetailsContacts.contactid = vtiger_contactdetails.reportsto + left join vtiger_account as accountContacts on accountContacts.accountid = vtiger_contactdetails.accountid + left join vtiger_users on vtiger_users.id = vtiger_crmentity.smownerid + LEFT JOIN vtiger_groups + ON vtiger_groups.groupid = vtiger_crmentity.smownerid + left join vtiger_account on vtiger_account.accountid = vtiger_contactdetails.accountid + left join vtiger_crmentity as crmentityAccounts on crmentityAccounts.crmid=vtiger_account.accountid + left join vtiger_accountbillads on vtiger_account.accountid=vtiger_accountbillads.accountaddressid + left join vtiger_accountshipads on vtiger_account.accountid=vtiger_accountshipads.accountaddressid + left join vtiger_accountscf on vtiger_account.accountid = vtiger_accountscf.accountid + left join vtiger_account as accountAccounts on accountAccounts.accountid = vtiger_account.parentid + left join vtiger_users as usersAccounts on usersAccounts.id = crmentityAccounts.smownerid + LEFT JOIN vtiger_groups as groupsAccounts + ON groupsAccounts.groupid = vtiger_crmentity.smownerid + where vtiger_crmentity.deleted=0 and (crmentityAccounts.deleted is NULL or crmentityAccounts.deleted <> 1) and vtiger_contactdetails.contactid in(". generateQuestionMarks($mass_merge) .")"; + + + $result = $adb->pquery($query, array($mass_merge)); + $avail_pick_arr = getAccessPickListValues('Contacts'); +while($columnValues = $adb->fetch_array($result)) +{ + $y=$adb->num_fields($result); + for($x=0; $x<$y; $x++) + { + $value = $columnValues[$x]; + foreach($columnValues as $key=>$val) + { + if($val == $value && $value != '') + { + if(array_key_exists($key,$avail_pick_arr)) + { + if(!in_array($val,$avail_pick_arr[$key])) + { + $value = "Not Accessible"; + } + } + } + } + //<<<<<<<<<<<<<<< For blank Fields >>>>>>>>>>>>>>>>>>>>>>>>>>>> + if(trim($value) == "--None--" || trim($value) == "--none--") + { + $value = ""; + } + //<<<<<<<<<<<<<<< End >>>>>>>>>>>>>>>>>>>>>>>>>>>> + $actual_values[$x] = $value; + $actual_values[$x] = str_replace('"'," ",$actual_values[$x]); + //if value contains any line feed or carriage return replace the value with ".value." + if (preg_match ("/(\r?\n)/", $actual_values[$x])) + { + $actual_values[$x] = '"'.$actual_values[$x].'"'; + } + $actual_values[$x] = decode_html(str_replace(","," ",$actual_values[$x])); + } + $mergevalue[] = implode($actual_values,","); +} +$csvdata = implode($mergevalue,"###"); +}else +{ + die("No fields to do Merge"); +} +// Fix for: http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/2107 +$datafilename = $randomfilename . "_data.csv"; + +$handle = fopen($wordtemplatedownloadpath.$datafilename,"wb"); +fwrite($handle,$csvheader."\r\n"); +fwrite($handle,str_replace("###","\r\n",$csvdata)); +fclose($handle); + +?> + + + diff --git a/oss/vtiger/trunk/modules/Contacts/Popup.php b/oss/vtiger/trunk/modules/Contacts/Popup.php new file mode 100644 index 00000000..98ea8ece --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/Popup.php @@ -0,0 +1,23 @@ + diff --git a/oss/vtiger/trunk/modules/Contacts/ProcessDuplicates.php b/oss/vtiger/trunk/modules/Contacts/ProcessDuplicates.php new file mode 100644 index 00000000..877dbd84 --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/ProcessDuplicates.php @@ -0,0 +1,133 @@ +pquery("SELECT count(*) AS count FROM vtiger_crmentity WHERE crmid=? and deleted=0", array($merge_id)); + $count = $adb->query_result($result,0,'count'); + + if($count > 0) + { + // First, save the primary record + $focus->mode="edit"; + setObjectValuesFromRequest($focus); + $focus->save($module); + $rec_values=$focus->column_fields; + + // Remove the id of primary record from the list of records to be deleted. + $del_value=explode(",",$recordids,-1); + $offset = array_search($merge_id,$del_value); + unset($del_value[$offset]); + + // Transfer the related lists of the records to be deleted, to the primary record's related list + if(method_exists($focus, 'transferRelatedRecords')){ + $focus->transferRelatedRecords($module,$del_value,$merge_id); + } else { + transferRelatedRecords($module,$del_value,$merge_id); + } + + // Delete the records by id specified in the list + foreach($del_value as $value) + { + DeleteEntity($_REQUEST['module'],$_REQUEST['return_module'],$focus,$value,""); + } + } + + ?> + +assign("EDIT_DUPLICATE",""); + if($record_count == 2) { + if(isPermitted($currentModule,"EditView",$exploded_id[0]) == 'yes' && isPermitted($currentModule,"EditView",$exploded_id[1]) == 'yes' + && isPermitted($currentModule,"Delete",$exploded_id[0]) == 'yes' && isPermitted($currentModule,"Delete",$exploded_id[1]) == 'yes') + $smarty->assign("EDIT_DUPLICATE","permitted"); + } + else { + if(isPermitted($currentModule,"EditView",$exploded_id[0]) == 'yes' && isPermitted($currentModule,"EditView",$exploded_id[1]) == 'yes' && isPermitted($currentModule,"EditView",$exploded_id[2]) == 'yes' + && isPermitted($currentModule,"Delete",$exploded_id[0]) == 'yes' && isPermitted($currentModule,"Delete",$exploded_id[1]) == 'yes' && isPermitted($currentModule,"Delete",$exploded_id[2]) == 'yes') + $smarty->assign("EDIT_DUPLICATE","permitted"); + } + + $all_values_array=getRecordValues($exploded_id,$module); + $all_values=$all_values_array[0]; + $js_arr_val=$all_values_array[1]; + $fld_array=$all_values_array[2]; + $js_arr=implode(",",$js_arr_val); + + $imported_records = Array(); + $sql="select bean_id from vtiger_users_last_import where bean_type=? and deleted=0"; + $result = $adb->pquery($sql, array($module)); + $num_rows=$adb->num_rows($result); + $count=0; + for($i=0; $i<$num_rows;$i++) + { + foreach($exploded_id as $value) + if($value == $adb->query_result($result,$i,"bean_id")) + $count++; + array_push($imported_records,$adb->query_result($result,$i,"bean_id")); + } + + if ($record_count == $count) + $no_existing=1; + else + $no_existing=0; + + $smarty->assign("MOD", $mod_strings); + $smarty->assign("APP", $app_strings); + $smarty->assign("RECORD_COUNT",$record_count); + $smarty->assign("THEME", $theme); + $smarty->assign("IMAGE_PATH", $image_path); + $smarty->assign("MODULENAME", $module); + $smarty->assign("PARENT_TAB", $parent_tab); + $smarty->assign("JS_ARRAY", $js_arr); + $smarty->assign("ID_ARRAY", $exploded_id); + $smarty->assign("IDSTRING",$idstring); + $smarty->assign("ALLVALUES", $all_values); + $smarty->assign("FIELD_ARRAY", $fld_array); + $smarty->assign("IMPORTED_RECORDS", $imported_records); + $smarty->assign("NO_EXISTING", $no_existing); + $smarty->display("MergeFields.tpl"); +} + +?> \ No newline at end of file diff --git a/oss/vtiger/trunk/modules/Contacts/QuickCreate.php b/oss/vtiger/trunk/modules/Contacts/QuickCreate.php new file mode 100644 index 00000000..8d5998b8 --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/QuickCreate.php @@ -0,0 +1,12 @@ + diff --git a/oss/vtiger/trunk/modules/Contacts/Save.php b/oss/vtiger/trunk/modules/Contacts/Save.php new file mode 100644 index 00000000..a19577dd --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/Save.php @@ -0,0 +1,227 @@ +email_opt_out = 'off'; +if (!isset($_REQUEST['do_not_call'])) $focus->do_not_call = 'off'; + +//Checking If image is given or not +//$image_upload_array=SaveImage($_FILES,'contact',$focus->id,$focus->mode); +$image_name_val=$image_upload_array['imagename']; +$image_error="false"; +$errormessage=$image_upload_array['errormessage']; +$saveimage=$image_upload_array['saveimage']; + +//code added for returning back to the current view after edit from list view +if($_REQUEST['return_viewname'] == '') $return_viewname='0'; +if($_REQUEST['return_viewname'] != '')$return_viewname=vtlib_purify($_REQUEST['return_viewname']); + +if($image_error=="true") //If there is any error in the file upload then moving all the data to EditView. +{ + //re diverting the page and reassigning the same values as image error occurs + if($_REQUEST['activity_mode'] != '')$activity_mode=vtlib_purify($_REQUEST['activity_mode']); + if($_REQUEST['return_module'] != '')$return_module=vtlib_purify($_REQUEST['return_module']); + if($_REQUEST['return_action'] != '')$return_action=vtlib_purify($_REQUEST['return_action']); + if($_REQUEST['return_id'] != '')$return_id=vtlib_purify($_REQUEST['return_id']); + + $log->debug("There is an error during the upload of contact image."); + $field_values_passed.=""; + foreach($focus->column_fields as $fieldname => $val) + { + if(isset($_REQUEST[$fieldname])) + { + $log->debug("Assigning the previous values given for the contact to respective vtiger_fields "); + $field_values_passed.="&"; + $value = $_REQUEST[$fieldname]; + $focus->column_fields[$fieldname] = $value; + $field_values_passed.=$fieldname."=".$value; + + } + } + $values_pass=$field_values_passed; + $encode_field_values=base64_encode($values_pass); + + $error_module = "Contacts"; + $error_action = "EditView"; + + $return_action .= '&activity_mode='.vtlib_purify($_request['activity_mode']); + + if($mode=="edit") { + $return_id=vtlib_purify($_REQUEST['record']); + } + header("location: index.php?action=$error_action&module=$error_module&record=$return_id&return_id=$return_id&return_action=$return_action&return_module=$return_module&activity_mode=$activity_mode&return_viewname=$return_viewname".$search."&saveimage=$saveimage&error_msg=$errormessage&image_error=$image_error&encode_val=$encode_field_values"); +} +if($saveimage=="true") +{ + $focus->column_fields['imagename']=$image_name_val; + $log->debug("Assign the Image name to the vtiger_field name "); +} + +//if image added then we have to set that $_FILES['name'] in imagename field then only the image will be displayed +if($_FILES['imagename']['name'] != '') +{ + if(isset($_REQUEST['imagename_hidden'])) { + $focus->column_fields['imagename'] = vtlib_purify($_REQUEST['imagename_hidden']); + } else { + $focus->column_fields['imagename'] = $_FILES['imagename']['name']; + } +} +elseif($focus->id != '') +{ + $result = $adb->pquery("select imagename from vtiger_contactdetails where contactid = ?", array($focus->id)); + $focus->column_fields['imagename'] = $adb->query_result($result,0,'imagename'); +} + +if($_REQUEST['assigntype'] == 'U') { + $focus->column_fields['assigned_user_id'] = $_REQUEST['assigned_user_id']; +} elseif($_REQUEST['assigntype'] == 'T') { + $focus->column_fields['assigned_user_id'] = $_REQUEST['assigned_group_id']; +} +//Saving the contact +if($image_error=="false") +{ + $focus->save("Contacts"); + $return_id = $focus->id; + + if(isset($_REQUEST['return_module']) && $_REQUEST['return_module'] != "") $return_module = vtlib_purify($_REQUEST['return_module']); + else $return_module = "Contacts"; + if(isset($_REQUEST['return_action']) && $_REQUEST['return_action'] != "") $return_action = vtlib_purify($_REQUEST['return_action']); + else $return_action = "DetailView"; + if(isset($_REQUEST['return_id']) && $_REQUEST['return_id'] != "") $return_id = vtlib_purify($_REQUEST['return_id']); + + if(isset($_REQUEST['activity_mode']) && $_REQUEST['activity_mode'] != '') $activitymode = vtlib_purify($_REQUEST['activity_mode']); + + $local_log->debug("Saved record with id of ".$return_id); + if(isset($_REQUEST['return_module']) && $_REQUEST['return_module'] == "Campaigns") + { + if(isset($_REQUEST['return_id']) && $_REQUEST['return_id'] != "") + { + $campContStatusResult = $adb->pquery("select campaignrelstatusid from vtiger_campaigncontrel where campaignid=? AND contactid=?",array($_REQUEST['return_id'], $focus->id)); + $contactStatus = $adb->query_result($campContStatusResult,0,'campaignrelstatusid'); + $sql = "delete from vtiger_campaigncontrel where contactid = ?"; + $adb->pquery($sql, array($focus->id)); + if(isset($contactStatus) && $contactStatus!=''){ + $sql = "insert into vtiger_campaigncontrel values (?,?,?)"; + $adb->pquery($sql, array($_REQUEST['return_id'], $focus->id,$contactStatus)); + } + else + { + $sql = "insert into vtiger_campaigncontrel values (?,?,1)"; + $adb->pquery($sql, array($_REQUEST['return_id'], $focus->id)); + } + } + } + //BEGIN -- Code for Create Customer Portal Users password and Send Mail + if($_REQUEST['portal'] == '' && $_REQUEST['mode'] == 'edit') + { + $sql = "update vtiger_portalinfo set user_name=?,isactive=0 where id=?"; + $adb->pquery($sql, array($_REQUEST['email'], $_REQUEST['record'])); + } + elseif($_REQUEST['portal'] != '' && $_REQUEST['email'] != '')// && $_REQUEST['mode'] != 'edit') + { + $id = $_REQUEST['record']; + $username = $_REQUEST['email']; + + if($_REQUEST['mode'] != 'edit') + $insert = 'true'; + + $sql = "select id,user_name,user_password,isactive from vtiger_portalinfo"; + $result = $adb->pquery($sql, array()); + + for($i=0;$i<$adb->num_rows($result);$i++) + { + if($id == $adb->query_result($result,$i,'id')) + { + $dbusername = $adb->query_result($result,$i,'user_name'); + $isactive = $adb->query_result($result,$i,'isactive'); + + if($username == $dbusername && $isactive == 1) + $flag = 'true'; + else + { + $sql = "update vtiger_portalinfo set user_name=?, isactive=1 where id=?"; + $adb->pquery($sql, array($username, $id)); + $update = 'true'; + $flag = 'true'; + $password = $adb->query_result($result,$i,'user_password'); + } + } + } + if($flag != 'true') + $insert = 'true'; + else + $insert = 'false'; + + if($insert == 'true') + { + $password = makeRandomPassword(); + $sql = "insert into vtiger_portalinfo values(?,?,?,?,?,?,?,?)"; + $params = array($focus->id, $username, $password, 'C', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '0000-00-00 00:00:00', 1); + $adb->pquery($sql, $params); + } + + //changes made to send mail to portal user when we use ajax edit + $data_array = Array(); + $data_array['first_name'] = $_REQUEST['firstname']; + $data_array['last_name'] = $_REQUEST['lastname']; + $data_array['email'] = $_REQUEST['email']; + $data_array['portal_url'] = ''.$mod_strings['Please Login Here'].''; + + $value = getmail_contents_portalUser($data_array,$password,"LoginDetails"); + $contents=$value["body"]; $subject=$value["subject"]; + + $log->info("Customer Portal Information Updated in database and details are going to send => '".$_REQUEST['email']."'"); + if($insert == 'true' || $update == 'true') + { + $mail_status = send_mail('Support',$_REQUEST['email'],$current_user->user_name,'',$subject,$contents); + } + $log->info("After return from the SendMailToCustomer function. Now control will go to the header."); + } + //END -- Code for Create Customer Portal Users password and Send Mail + + $log->info("This Page is redirected to : ".$return_module." / ".$return_action."& return id =".$return_id); + + //code added for returning back to the current view after edit from list view + if($_REQUEST['return_viewname'] == '') $return_viewname='0'; + if($_REQUEST['return_viewname'] != '')$return_viewname=vtlib_purify($_REQUEST['return_viewname']); + + $parenttab = getParentTab(); + + + header("Location: index.php?action=$return_action&module=$return_module&parenttab=$parenttab&record=$return_id&activity_mode=$activitymode&viewname=$return_viewname&start=".vtlib_purify($_REQUEST['pagenumber'])); +} + +?> diff --git a/oss/vtiger/trunk/modules/Contacts/Settings.php b/oss/vtiger/trunk/modules/Contacts/Settings.php new file mode 100644 index 00000000..48a80c0b --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/Settings.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/oss/vtiger/trunk/modules/Contacts/TagCloud.php b/oss/vtiger/trunk/modules/Contacts/TagCloud.php new file mode 100644 index 00000000..859b11ff --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/TagCloud.php @@ -0,0 +1,12 @@ + diff --git a/oss/vtiger/trunk/modules/Contacts/UnifiedSearch.php b/oss/vtiger/trunk/modules/Contacts/UnifiedSearch.php new file mode 100644 index 00000000..9a37320c --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/UnifiedSearch.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/oss/vtiger/trunk/modules/Contacts/contactSeedData.php b/oss/vtiger/trunk/modules/Contacts/contactSeedData.php new file mode 100644 index 00000000..ff2881ae --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/contactSeedData.php @@ -0,0 +1,21190 @@ + diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/2tbarPrivateChat.gif b/oss/vtiger/trunk/modules/Contacts/imgs/2tbarPrivateChat.gif new file mode 100644 index 00000000..f0d7a1f5 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/2tbarPrivateChat.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/2tbarPublicChat.gif b/oss/vtiger/trunk/modules/Contacts/imgs/2tbarPublicChat.gif new file mode 100644 index 00000000..9c8d42d1 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/2tbarPublicChat.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/box_BL.gif b/oss/vtiger/trunk/modules/Contacts/imgs/box_BL.gif new file mode 100644 index 00000000..d81412a9 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/box_BL.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/box_BR.gif b/oss/vtiger/trunk/modules/Contacts/imgs/box_BR.gif new file mode 100644 index 00000000..44b171d5 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/box_BR.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/box_M.gif b/oss/vtiger/trunk/modules/Contacts/imgs/box_M.gif new file mode 100644 index 00000000..e1fa15ea Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/box_M.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/box_ML.gif b/oss/vtiger/trunk/modules/Contacts/imgs/box_ML.gif new file mode 100644 index 00000000..559ccf08 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/box_ML.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/box_MR.gif b/oss/vtiger/trunk/modules/Contacts/imgs/box_MR.gif new file mode 100644 index 00000000..dd798fc5 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/box_MR.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/box_T.gif b/oss/vtiger/trunk/modules/Contacts/imgs/box_T.gif new file mode 100644 index 00000000..d09eb43c Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/box_T.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/box_TL.gif b/oss/vtiger/trunk/modules/Contacts/imgs/box_TL.gif new file mode 100644 index 00000000..87ce1987 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/box_TL.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/box_TR.gif b/oss/vtiger/trunk/modules/Contacts/imgs/box_TR.gif new file mode 100644 index 00000000..70b5c27f Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/box_TR.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/btn_close.gif b/oss/vtiger/trunk/modules/Contacts/imgs/btn_close.gif new file mode 100644 index 00000000..1d7b0f84 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/btn_close.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/btn_hide.gif b/oss/vtiger/trunk/modules/Contacts/imgs/btn_hide.gif new file mode 100644 index 00000000..8419cd10 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/btn_hide.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/btn_send.gif b/oss/vtiger/trunk/modules/Contacts/imgs/btn_send.gif new file mode 100644 index 00000000..300880ec Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/btn_send.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/bx_B.gif b/oss/vtiger/trunk/modules/Contacts/imgs/bx_B.gif new file mode 100644 index 00000000..f6d8e815 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/bx_B.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/close.gif b/oss/vtiger/trunk/modules/Contacts/imgs/close.gif new file mode 100644 index 00000000..1e157ce8 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/close.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/hide.gif b/oss/vtiger/trunk/modules/Contacts/imgs/hide.gif new file mode 100644 index 00000000..96ef9a15 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/hide.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/icone_chat.gif b/oss/vtiger/trunk/modules/Contacts/imgs/icone_chat.gif new file mode 100644 index 00000000..35c0a957 Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/icone_chat.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/icone_keyb.gif b/oss/vtiger/trunk/modules/Contacts/imgs/icone_keyb.gif new file mode 100644 index 00000000..d15e643c Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/icone_keyb.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/site_bg.gif b/oss/vtiger/trunk/modules/Contacts/imgs/site_bg.gif new file mode 100644 index 00000000..a638838f Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/site_bg.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/imgs/user_icon.gif b/oss/vtiger/trunk/modules/Contacts/imgs/user_icon.gif new file mode 100644 index 00000000..724727cc Binary files /dev/null and b/oss/vtiger/trunk/modules/Contacts/imgs/user_icon.gif differ diff --git a/oss/vtiger/trunk/modules/Contacts/index.php b/oss/vtiger/trunk/modules/Contacts/index.php new file mode 100644 index 00000000..010dcf03 --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/index.php @@ -0,0 +1,27 @@ + diff --git a/oss/vtiger/trunk/modules/Contacts/language/en_us.lang.php b/oss/vtiger/trunk/modules/Contacts/language/en_us.lang.php new file mode 100644 index 00000000..ac90dd61 --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/language/en_us.lang.php @@ -0,0 +1,249 @@ +'Contacts', +'LBL_INVITEE'=>'Direct Reports', +'LBL_MODULE_TITLE'=>'Contacts: Home', +'LBL_SEARCH_FORM_TITLE'=>'Contact Search', +'LBL_LIST_FORM_TITLE'=>'Contact List', +'LBL_NEW_FORM_TITLE'=>'New Contact', +'LBL_CONTACT_OPP_FORM_TITLE'=>'Contact-Opportunity:', +'LBL_CONTACT'=>'Contact:', + +'LBL_LIST_NAME'=>'Name', +'LBL_LIST_LAST_NAME'=>'Last Name', +'LBL_LIST_FIRST_NAME'=>'First Name', +'LBL_LIST_CONTACT_NAME'=>'Contact Name', +'LBL_LIST_TITLE'=>'Title', +'LBL_LIST_ACCOUNT_NAME'=>'Account Name', +'LBL_LIST_EMAIL_ADDRESS'=>'Email', +'LBL_LIST_PHONE'=>'Phone', +'LBL_LIST_CONTACT_ROLE'=>'Role', + +//DON'T CONVERT THESE THEY ARE MAPPINGS +'db_last_name' => 'LBL_LIST_LAST_NAME', +'db_first_name' => 'LBL_LIST_FIRST_NAME', +'db_title' => 'LBL_LIST_TITLE', +'db_email1' => 'LBL_LIST_EMAIL_ADDRESS', +'db_email2' => 'LBL_LIST_EMAIL_ADDRESS', +//END DON'T CONVERT + +'LBL_EXISTING_CONTACT' => 'Used an existing contact', +'LBL_CREATED_CONTACT' => 'Created a new contact', +'LBL_EXISTING_ACCOUNT' => 'Used an existing vtiger_account', +'LBL_CREATED_ACCOUNT' => 'Created a new vtiger_account', +'LBL_CREATED_CALL' => 'Created a new call', +'LBL_CREATED_MEETING' => 'Created a new meeting', +'LBL_ADDMORE_BUSINESSCARD' =>'Add another business card', + +'LBL_BUSINESSCARD' => 'Business Card', + +'LBL_NAME'=>'Name:', +'LBL_CONTACT_NAME'=>'Contact Name:', +'LBL_CONTACT_INFORMATION'=>'Contact Information', +'LBL_CUSTOM_INFORMATION'=>'Custom Information', +'LBL_FIRST_NAME'=>'First Name:', +'LBL_OFFICE_PHONE'=>'Office Phone:', +'LBL_ACCOUNT_NAME'=>'Account Name:', +'LBL_ANY_PHONE'=>'Any Phone:', +'LBL_PHONE'=>'Phone:', +'LBL_LAST_NAME'=>'Last Name:', +'LBL_MOBILE_PHONE'=>'Mobile:', +'LBL_HOME_PHONE'=>'Home:', +'LBL_LEAD_SOURCE'=>'Lead Source:', +'LBL_OTHER_PHONE'=>'Other Phone:', +'LBL_FAX_PHONE'=>'Fax:', +'LBL_TITLE'=>'Title:', +'LBL_DEPARTMENT'=>'Department:', +'LBL_BIRTHDATE'=>'Birthdate:', +'LBL_EMAIL_ADDRESS'=>'Email:', +'LBL_OTHER_EMAIL_ADDRESS'=>'Other Email:', +'LBL_ANY_EMAIL'=>'Any Email:', +'LBL_REPORTS_TO'=>'Reports To:', +'LBL_ASSISTANT'=>'Assistant:', +'LBL_YAHOO_ID'=>'Yahoo! ID:', +'LBL_ASSISTANT_PHONE'=>'Assistant Phone:', +'LBL_DO_NOT_CALL'=>'Do Not Call:', +'LBL_EMAIL_OPT_OUT'=>'Email Opt Out:', +'LBL_PRIMARY_ADDRESS'=>'Primary Address:', +'LBL_ALTERNATE_ADDRESS'=>'Other Address:', +'LBL_ANY_ADDRESS'=>'Any Address:', +'LBL_CITY'=>'City:', +'LBL_STATE'=>'State:', +'LBL_POSTAL_CODE'=>'Postal Code:', +'LBL_COUNTRY'=>'Country:', +'LBL_DESCRIPTION_INFORMATION'=>'Description Information', +'LBL_IMAGE_INFORMATION'=>'Contact Image Information:', +'LBL_ADDRESS_INFORMATION'=>'Address Information', +'LBL_DESCRIPTION'=>'Description:', +'LBL_CONTACT_ROLE'=>'Role:', +'LBL_OPP_NAME'=>'Opportunity Name:', +'LBL_DUPLICATE'=>'Potential Duplicate Contacts', +'MSG_DUPLICATE' => 'Creating this contact may vtiger_potentialy create a duplicate contact. You may either select a contact from the list below or you may click on Create New Contact to continue creating a new contact with the previously entered data.', + +'LNK_NEW_APPOINTMENT' => 'New Appointment', +'LBL_ADD_BUSINESSCARD' => 'Add Business Card', +'NTC_DELETE_CONFIRMATION'=>'Are you sure you want to delete this record?', +'NTC_REMOVE_CONFIRMATION'=>'Are you sure you want to remove this contact from this case?', +'NTC_REMOVE_DIRECT_REPORT_CONFIRMATION'=>'Are you sure you want to remove this record as a direct vtiger_report?', +'ERR_DELETE_RECORD'=>"en_us A record number must be specified to delete the contact.", +'NTC_COPY_PRIMARY_ADDRESS'=>'Copy primary address to alternate address', +'NTC_COPY_ALTERNATE_ADDRESS'=>'Copy alternate address to primary address', + +'LBL_SELECT_CONTACT'=>'Select Contact', +//Added for search heading +'LBL_GENERAL_INFORMATION'=>'General Information', + + + +//for v4 release added +'LBL_NEW_POTENTIAL'=>'New Potential', +'LBL_POTENTIAL_TITLE'=>'Potentials', + +'LBL_NEW_TASK'=>'New Task', +'LBL_TASK_TITLE'=>'Tasks', +'LBL_NEW_CALL'=>'New Call', +'LBL_CALL_TITLE'=>'Calls', +'LBL_NEW_MEETING'=>'New Meeting', +'LBL_MEETING_TITLE'=>'Meetings', +'LBL_NEW_EMAIL'=>'New Email', +'LBL_EMAIL_TITLE'=>'Emails', +'LBL_NEW_NOTE'=>'New Document', +'LBL_NOTE_TITLE'=>'Documents', + +// Added for 4GA +'LBL_TOOL_FORM_TITLE'=>'Contact Tools', + +'Salutation'=>'Salutation', +'First Name'=>'First Name', +'Office Phone'=>'Office Phone', +'Last Name'=>'Last Name', +'Mobile'=>'Mobile', +'Account Name'=>'Account Name', +'Home Phone'=>'Home Phone', +'Lead Source'=>'Lead Source', +'Other Phone'=>'Other Phone', +'Title'=>'Title', +'Fax'=>'Fax', +'Department'=>'Department', +'Birthdate'=>'Birthdate', +'Email'=>'Email', +'Reports To'=>'Reports To', +'Assistant'=>'Assistant', +'Yahoo Id'=>'Yahoo Id', +'Assistant Phone'=>'Assistant Phone', +'Do Not Call'=>'Do Not Call', +'Email Opt Out'=>'Email Opt Out', +'Assigned To'=>'Assigned To', +'Campaign Source'=>'Campaign Source', +'Reference' =>'Reference', +'Created Time'=>'Created Time', +'Modified Time'=>'Modified Time', +'Mailing Street'=>'Mailing Street', +'Other Street'=>'Other Street', +'Mailing City'=>'Mailing City', +'Mailing State'=>'Mailing State', +'Mailing Zip'=>'Mailing Postal Code', +'Mailing Country'=>'Mailing Country', +'Mailing Po Box'=>'Mailing PO Box', +'Other Po Box'=>'Other PO Box', +'Other City'=>'Other City', +'Other State'=>'Other State', +'Other Zip'=>'Other Postal Code', +'Other Country'=>'Other Country', +'Contact Image'=>'Contact Image', +'Description'=>'Description', + +// Added vtiger_fields for Add Business Card +'LBL_NEW_CONTACT'=>'New Contact', +'LBL_NEW_ACCOUNT'=>'New Account', +'LBL_NOTE_SUBJECT'=>'Document Subject:', +'LBL_NOTE'=>'Note:', +'LBL_WEBSITE'=>'Website:', +'LBL_NEW_APPOINTMENT'=>'New Appointment', +'LBL_SUBJECT'=>'Subject:', +'LBL_START_DATE'=>'Start Date:', +'LBL_START_TIME'=>'Start Time:', + +//Added vtiger_field after 4_0_1 +'Portal User'=>'Portal User', +'LBL_CUSTOMER_PORTAL_INFORMATION'=>'Customer Portal Information', +'Support Start Date'=>'Support Start Date', +'Support End Date'=>'Support End Date', +//Added for 4.2 Release -- CustomView +'Name'=>'Name', +'LBL_ALL'=>'All', +'LBL_MAXIMUM_LIMIT_ERROR'=>'Sorry, the uploaded file exceeds the maximum vtiger_filesize limit. Please try a file smaller than 800000 bytes', +'LBL_UPLOAD_ERROR'=>'Problems in file upload. Please try again!', +'LBL_IMAGE_ERROR'=>'The given file is not of type image(.gif/.jpg/.png)', +'LBL_INVALID_IMAGE'=>'Invalid file OR File has no data', + +//Added after 5Alpha5 +'Notify Owner'=>'Notify Owner', + +//Added for Picklist Values +'--None--'=>'--None--', + +'Mr.'=>'Mr.', +'Ms.'=>'Ms.', +'Mrs.'=>'Mrs.', +'Dr.'=>'Dr.', +'Prof.'=>'Prof.', + +'Cold Call'=>'Cold Call', +'Existing Customer'=>'Existing Customer', +'Self Generated'=>'Self Generated', +'Employee'=>'Employee', +'Partner'=>'Partner', +'Public Relations'=>'Public Relations', +'Direct Mail'=>'Direct Mail', +'Conference'=>'Conference', +'Trade Show'=>'Trade Show', +'Web Site'=>'Web Site', +'Word of mouth'=>'Word of mouth', +'Other'=>'Other', +'User List'=>'User List', + +//Added for 5.0.3 +'Customer Portal Login Details'=>'Customer Portal Login Details', +'Dear'=>'Dear', +'Your Customer Portal Login details are given below:'=>'Your Customer Portal Login details are given below:', +'User Id :'=>'User Id :', +'Password :'=>'Password :', +'Please Login Here'=>'Please Login Here', +'Note :'=>'Note :', +'We suggest you to change your password after logging in first time'=>'We suggest you to change your password after logging in first time.', +'Support Team'=>'Support Team', + +'TITLE_AJAX_CSS_POPUP_CHAT'=>'Ajax Css-Popup chat', + +// Added after 5.0.4 GA + +// Module Sequence Numbering +'Contact Id' => 'Contact Id', +// END + +); + +?> diff --git a/oss/vtiger/trunk/modules/Contacts/language/zh_cn.lang.php b/oss/vtiger/trunk/modules/Contacts/language/zh_cn.lang.php new file mode 100644 index 00000000..fb812b30 --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/language/zh_cn.lang.php @@ -0,0 +1,249 @@ +'联系人', +'LBL_INVITEE'=>'针对报告', +'LBL_MODULE_TITLE'=>'联系人:首页', +'LBL_SEARCH_FORM_TITLE'=>'搜寻联系人', +'LBL_LIST_FORM_TITLE'=>'联系人列表', +'LBL_NEW_FORM_TITLE'=>'新增联系人', +'LBL_CONTACT_OPP_FORM_TITLE'=>'联系人-机会:', +'LBL_CONTACT'=>'联系人:', + +'LBL_LIST_NAME'=>'名称', +'LBL_LIST_LAST_NAME'=>'姓名', +'LBL_LIST_FIRST_NAME'=>'英文名', +'LBL_LIST_CONTACT_NAME'=>'联系人名称', +'LBL_LIST_TITLE'=>'在线IM', +'LBL_LIST_ACCOUNT_NAME'=>'客户名称', +'LBL_LIST_EMAIL_ADDRESS'=>'电子邮件', +'LBL_LIST_PHONE'=>'电话', +'LBL_LIST_CONTACT_ROLE'=>'职位', + +//DON'T CONVERT THESE THEY ARE MAPPINGS +'db_last_name'=>'LBL_LIST_LAST_NAME', +'db_first_name'=>'LBL_LIST_FIRST_NAME', +'db_title'=>'LBL_LIST_TITLE', +'db_email1'=>'LBL_LIST_EMAIL_ADDRESS', +'db_email2'=>'LBL_LIST_EMAIL_ADDRESS', +//END DON'T CONVERT + +'LBL_EXISTING_CONTACT'=>'使用现有的联系人', +'LBL_CREATED_CONTACT'=>'建立新的联系人', +'LBL_EXISTING_ACCOUNT'=>'使用现有的客户', +'LBL_CREATED_ACCOUNT'=>'建立新的客户', +'LBL_CREATED_CALL'=>'建立新的电话记录l', +'LBL_CREATED_MEETING'=>'建立新的会议', +'LBL_ADDMORE_BUSINESSCARD'=>'增加其它的商业名片', + +'LBL_BUSINESSCARD'=>'商业名片', + +'LBL_NAME'=>'名称:', +'LBL_CONTACT_NAME'=>'联系人名称:', +'LBL_CONTACT_INFORMATION'=>'联系人信息', +'LBL_CUSTOM_INFORMATION'=>'客户信息', +'LBL_FIRST_NAME'=>'英文名:', +'LBL_OFFICE_PHONE'=>'办公室电话:', +'LBL_ACCOUNT_NAME'=>'客户名称:', +'LBL_ANY_PHONE'=>'其它电话:', +'LBL_PHONE'=>'电话:', +'LBL_LAST_NAME'=>'姓名:', +'LBL_MOBILE_PHONE'=>'手机:', +'LBL_HOME_PHONE'=>'首页:', +'LBL_LEAD_SOURCE'=>'接触来源:', +'LBL_OTHER_PHONE'=>'其它电话:', +'LBL_FAX_PHONE'=>'传真:', +'LBL_TITLE'=>'在线IM:', +'LBL_DEPARTMENT'=>'部门:', +'LBL_BIRTHDATE'=>'生日:', +'LBL_EMAIL_ADDRESS'=>'电子邮件:', +'LBL_OTHER_EMAIL_ADDRESS'=>'其它电子邮件:', +'LBL_ANY_EMAIL'=>'其它电子邮件:', +'LBL_REPORTS_TO'=>'报告给:', +'LBL_ASSISTANT'=>'助理:', +'LBL_YAHOO_ID'=>'Yahoo账号:', +'LBL_ASSISTANT_PHONE'=>'助理电话:', +'LBL_DO_NOT_CALL'=>'请勿来电:', +'LBL_EMAIL_OPT_OUT'=>'请勿寄电子邮件:', +'LBL_PRIMARY_ADDRESS'=>'主要地址:', +'LBL_ALTERNATE_ADDRESS'=>'其它地址:', +'LBL_ANY_ADDRESS'=>'其它地址:', +'LBL_CITY'=>'乡镇市区:', +'LBL_STATE'=>'市(县):', +'LBL_POSTAL_CODE'=>'邮政编码:', +'LBL_COUNTRY'=>'省(市/自治区):', +'LBL_DESCRIPTION_INFORMATION'=>'描述信息', +'LBL_IMAGE_INFORMATION'=>'联系人照片:', +'LBL_ADDRESS_INFORMATION'=>'地址信息', +'LBL_DESCRIPTION'=>'描述:', +'LBL_CONTACT_ROLE'=>'职位:', +'LBL_OPP_NAME'=>'机会名称:', +'LBL_DUPLICATE'=>'接触到潜在案件', +'MSG_DUPLICATE'=>'建立这个联系人可能造成重复,您可以点选建立联系人来透过已存在的数据建立新的联系人或是点选取消。', + +'LNK_NEW_APPOINTMENT'=>'新增行程', +'LBL_ADD_BUSINESSCARD'=>'新增商业名片', +'NTC_DELETE_CONFIRMATION'=>'您确定要删除这笔记录?', +'NTC_REMOVE_CONFIRMATION'=>'您确定要从这个案件中移除这位联系人?', +'NTC_REMOVE_DIRECT_REPORT_CONFIRMATION'=>'您确定要将此记录从直接报告人处删除吗?', +'ERR_DELETE_RECORD'=>'在删除联系人前必须输入正确的记录编号.', +'NTC_COPY_PRIMARY_ADDRESS'=>'复制主要地址到替代地址', +'NTC_COPY_ALTERNATE_ADDRESS'=>'复制替代地址到替代地址', + +'LBL_SELECT_CONTACT'=>'选择联系人', +//Added for search heading +'LBL_GENERAL_INFORMATION'=>'一般信息', + + + +//for v4 release added +'LBL_NEW_POTENTIAL'=>'新增潜在', +'LBL_POTENTIAL_TITLE'=>'潜在', + +'LBL_NEW_TASK'=>'新增任务', +'LBL_TASK_TITLE'=>'任务', +'LBL_NEW_CALL'=>'新增电话记录', +'LBL_CALL_TITLE'=>'电话记录', +'LBL_NEW_MEETING'=>'新增会议', +'LBL_MEETING_TITLE'=>'会议', +'LBL_NEW_EMAIL'=>'新增电子邮件', +'LBL_EMAIL_TITLE'=>'电子邮件', +'LBL_NEW_NOTE'=>'新增备忘录', +'LBL_NOTE_TITLE'=>'备忘录', + +// Added for 4GA +'LBL_TOOL_FORM_TITLE'=>'联系人编辑区', + +'Salutation'=>'问候', +'First Name'=>'英文名', +'Office Phone'=>'办公室电话', +'Last Name'=>'姓名', +'Mobile'=>'手机', +'Account Name'=>'客户名称', +'Home Phone'=>'家用电话', +'Lead Source'=>'客户来源', +'Other Phone'=>'电话', +'Title'=>'在线QQ', +'Fax'=>'传真', +'Department'=>'部门', +'Birthdate'=>'生日', +'Email'=>'电子邮件', +'Reports To'=>'报告给', +'Assistant'=>'助理', +'Yahoo Id'=>'Yahoo账号', +'Assistant Phone'=>'助理电话', +'Do Not Call'=>'拒绝来电', +'Email Opt Out'=>'拒绝电子邮件', +'Assigned To'=>'负责人', +'Campaign Source'=>'活动来源', +'Reference'=>'参考', +'Created Time'=>'建立时间', +'Modified Time'=>'修改时间', +'Mailing Street'=>'邮寄地址', +'Other Street'=>'其它地址', +'Mailing City'=>'乡镇市区', +'Mailing State'=>'市(县)', +'Mailing Zip'=>'邮政编码', +'Mailing Country'=>'省(市/自治区)', +'Mailing Po Box'=>'采购订单信箱', +'Other Po Box'=>'其它采购订单信箱', +'Other City'=>'乡镇市区', +'Other State'=>'市(县)', +'Other Zip'=>'邮政编码', +'Other Country'=>'省(市/自治区)', +'Contact Image'=>'照片', +'Description'=>'描述', + +// Added vtiger_fields for Add Business Card +'LBL_NEW_CONTACT'=>'新增联系人', +'LBL_NEW_ACCOUNT'=>'新增客户', +'LBL_NOTE_SUBJECT'=>'备忘录标题:', +'LBL_NOTE'=>'备忘录:', +'LBL_WEBSITE'=>'网站:', +'LBL_NEW_APPOINTMENT'=>'新增行程', +'LBL_SUBJECT'=>'在线IM:', +'LBL_START_DATE'=>'开始日期:', +'LBL_START_TIME'=>'开始时间:', + +//Added vtiger_field after 4_0_1 +'Portal User'=>'网站账号', +'LBL_CUSTOMER_PORTAL_INFORMATION'=>'网站客户信息', +'Support Start Date'=>'支持开始日期', +'Support End Date'=>'支持结束日期', +//Added for 4.2 Release -- CustomView +'Name'=>'名称', +'LBL_ALL'=>'全部', +'LBL_MAXIMUM_LIMIT_ERROR'=>'抱歉,文件超过系统限制,请保持上传文件在800000bytes以下', +'LBL_UPLOAD_ERROR'=>'上传失败,请重试!', +'LBL_IMAGE_ERROR'=>'提供的文件不是图片格式(.gif/.jpg/.png)', +'LBL_INVALID_IMAGE'=>'文件有误或是没有数据', + +//Added after 5Alpha5 +'Notify Owner'=>'提醒负责人', + +//Added for Picklist Values +'--None--'=>'--None--', + +'Mr.'=>'先生', +'Ms.'=>'小姐', +'Mrs.'=>'太太', +'Dr.'=>'博士', +'Prof.'=>'专家', + +'Cold Call'=>'陌生拜访', +'Existing Customer'=>'既有客户', +'Self Generated'=>'自动产生', +'Employee'=>'员工', +'Partner'=>'伙伴', +'Public Relations'=>'公众关系', +'Direct Mail'=>'邮件营销', +'Conference'=>'研讨会', +'Trade Show'=>'贸易展览', +'Web Site'=>'网站', +'Word of mouth'=>'口耳相传', +'Other'=>'其它', +'User List'=>'使用者清单', + +//Added for 5.0.3 +'Customer Portal Login Details'=>'顾客注册细节', +'Dear'=>'亲爱的', +'Your Customer Portal Login details are given below:'=>'您的顾客提供了以下注册细节:', +'User Id :'=>'用户号:', +'Password :'=>'密码:', +'Please Login Here'=>'请在这里登录', +'Note :'=>'笔记:', +'We suggest you to change your password after logging in first time'=>'请您在第一次登录时修改密码以保证安全.', +'Support Team'=>'项目团队', + +'TITLE_AJAX_CSS_POPUP_CHAT'=>'Ajax Css-Popup chat', + +// Added after 5.0.4 GA + +// Module Sequence Numbering +'Contact Id'=>'编号', +//END + +); + +?> diff --git a/oss/vtiger/trunk/modules/Contacts/updateRelations.php b/oss/vtiger/trunk/modules/Contacts/updateRelations.php new file mode 100644 index 00000000..c526ba9b --- /dev/null +++ b/oss/vtiger/trunk/modules/Contacts/updateRelations.php @@ -0,0 +1,55 @@ +pquery($sql, array($forCRMRecord, $_REQUEST["pot_id"])); +} +$focus = CRMEntity::getInstance($currentModule); +foreach($storearray as $id) +{ + if($id != '') + { + if($dest_mod == 'Products') + $adb->pquery("insert into vtiger_seproductsrel values (?,?,?)", array($forCRMRecord, $id, 'Contacts')); + elseif($dest_mod == 'Campaigns') + $adb->pquery("insert into vtiger_campaigncontrel values(?,?,1)", array($id, $forCRMRecord)); + elseif($dest_mod == 'Documents') + $adb->pquery("insert into vtiger_senotesrel values(?,?)", array($forCRMRecord,$id)); + else { + $focus->save_related_module($currentModule, $forCRMRecord, $dest_mod, $id); + } + } +} + +header("Location: index.php?action=$action&module=$currentModule&record=".$forCRMRecord."&parenttab=".$parenttab); + +?>