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.
305 lines
9.0 KiB
305 lines
9.0 KiB
<?php
|
|
/*********************************************************************************
|
|
* The contents of this file are subject to the SugarCRM Public License Version 1.1.2
|
|
* ("License"); You may not use this file except in compliance with the
|
|
* License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
|
* the specific language governing rights and limitations under the License.
|
|
* The Original Code is: SugarCRM Open Source
|
|
* The Initial Developer of the Original Code is SugarCRM, Inc.
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.;
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________.
|
|
********************************************************************************/
|
|
/*********************************************************************************
|
|
* $Header: /advent/projects/wesat/vtiger_crm/sugarcrm/modules/Contacts/Save.php,v 1.9 2005/03/15 09:58:21 shaw Exp $
|
|
* Description: TODO: To be written.
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________..
|
|
********************************************************************************/
|
|
|
|
require_once('modules/Contacts/Contact.php');
|
|
require_once('include/logging.php');
|
|
require_once('include/database/PearDatabase.php');
|
|
|
|
$local_log =& LoggerManager::getLogger('index');
|
|
|
|
global $vtlog;
|
|
$focus = new Contact();
|
|
if(isset($_REQUEST['record']))
|
|
{
|
|
$focus->id = $_REQUEST['record'];
|
|
}
|
|
if(isset($_REQUEST['mode']))
|
|
{
|
|
$focus->mode = $_REQUEST['mode'];
|
|
}
|
|
if($_REQUEST['salutation'] == '--None--') $_REQUEST['salutation'] = '';
|
|
/*
|
|
if (isset($_REQUEST['new_reports_to_id'])) {
|
|
$focus->retrieve($_REQUEST['new_reports_to_id']);
|
|
$focus->reports_to_id = $_REQUEST['record'];
|
|
}
|
|
*/
|
|
//else {
|
|
// $focus->retrieve($_REQUEST['record']);
|
|
|
|
foreach($focus->column_fields as $fieldname => $val)
|
|
{
|
|
if(isset($_REQUEST[$fieldname]))
|
|
{
|
|
//$focus->$field = $_REQUEST[$field];
|
|
$value = $_REQUEST[$fieldname];
|
|
$focus->column_fields[$fieldname] = $value;
|
|
}
|
|
}
|
|
/*
|
|
foreach($focus->additional_column_fields as $field)
|
|
{
|
|
if(isset($_REQUEST[$field]))
|
|
{
|
|
$value = $_REQUEST[$field];
|
|
$focus->$field = $value;
|
|
|
|
}
|
|
}
|
|
*/
|
|
if (!isset($_REQUEST['email_opt_out'])) $focus->email_opt_out = 'off';
|
|
if (!isset($_REQUEST['do_not_call'])) $focus->do_not_call = 'off';
|
|
//}
|
|
|
|
//$focus->saveentity("Contacts");
|
|
$focus->save("Contacts");
|
|
$return_id = $focus->id;
|
|
//save_customfields($focus->id);
|
|
|
|
if(isset($_REQUEST['return_module']) && $_REQUEST['return_module'] != "") $return_module = $_REQUEST['return_module'];
|
|
else $return_module = "Contacts";
|
|
if(isset($_REQUEST['return_action']) && $_REQUEST['return_action'] != "") $return_action = $_REQUEST['return_action'];
|
|
else $return_action = "DetailView";
|
|
if(isset($_REQUEST['return_id']) && $_REQUEST['return_id'] != "") $return_id = $_REQUEST['return_id'];
|
|
|
|
if(isset($_REQUEST['activity_mode']) && $_REQUEST['activity_mode'] != '') $activitymode = $_REQUEST['activity_mode'];
|
|
|
|
$local_log->debug("Saved record with id of ".$return_id);
|
|
|
|
//BEGIN -- Code for Create Customer Portal Users password and Send Mail
|
|
if($_REQUEST['portal'] == '' && $_REQUEST['mode'] == 'edit')
|
|
{
|
|
$sql = "update PortalInfo set user_name='".$_REQUEST['email']."',isactive=0 where id=".$_REQUEST['record'];
|
|
$adb->query($sql);
|
|
}
|
|
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 PortalInfo";
|
|
$result = $adb->query($sql);
|
|
|
|
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 PortalInfo set user_name='".$username."', isactive=1 where id=".$id;
|
|
$adb->query($sql);
|
|
$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 PortalInfo (id,user_name,user_password,type,isactive) values(".$focus->id.",'".$username."','".$password."','C',1)";
|
|
$adb->query($sql);
|
|
}
|
|
|
|
$subject = "Customer Portal Login Details";
|
|
$contents = "Dear ".$_REQUEST['firstname'].' '.$_REQUEST['lastname'].',<br><br>';
|
|
$contents .= 'Your Customer Portal Login details are given below:';
|
|
// $contents .= '<br>Customer Portal URL:';
|
|
$contents .= "<br><br>User Id : ".$_REQUEST['email'];
|
|
$contents .= '<br>Password : '.$password.'';
|
|
|
|
$contents .= '<br><br><b>Note : </b>We suggest you to change your password after logging in first time.';
|
|
$contents .= '<br><br>Support Team';
|
|
|
|
$vtlog->logthis("Customer Portal Informations Updated",'info');
|
|
|
|
if($insert == 'true' || $update == 'true')
|
|
{
|
|
SendMailToCustomer('Contacts',$focus->id,$_REQUEST['email'],$current_user->id,$subject,$contents);
|
|
}
|
|
}
|
|
function SendMailToCustomer($module,$id,$to,$current_user_id,$subject,$contents)
|
|
{
|
|
include("modules/Emails/class.phpmailer.php");
|
|
|
|
$mail = new PHPMailer();
|
|
|
|
$mail->Subject = $subject;
|
|
$mail->Body = nl2br($contents);
|
|
$mail->IsSMTP();
|
|
|
|
if($current_user_id != '')
|
|
{
|
|
global $adb;
|
|
$sql = "select * from users where id= ".$current_user_id;
|
|
$result = $adb->query($sql);
|
|
$from = $adb->query_result($result,0,'email1');
|
|
$initialfrom = $adb->query_result($result,0,'user_name');
|
|
}
|
|
if($mail_server=='')
|
|
{
|
|
global $adb;
|
|
$mailserverresult=$adb->query("select * from systems where server_type='email'");
|
|
$mail_server=$adb->query_result($mailserverresult,0,'server');
|
|
$_REQUEST['server']=$mail_server;
|
|
}
|
|
$mail->Host = $mail_server;
|
|
$mail->SMTPAuth = true;
|
|
$mail->Username = $mail_server_username;
|
|
$mail->Password = $mail_server_password;
|
|
$mail->From = $from;
|
|
$mail->FromName = $initialfrom;
|
|
|
|
$mail->AddAddress($to);
|
|
$mail->AddReplyTo($from);
|
|
$mail->WordWrap = 50;
|
|
|
|
$mail->IsHTML(true);
|
|
|
|
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
|
|
|
|
if(!$mail->Send())
|
|
{
|
|
$errormsg = "Mail Could not be sent...";
|
|
}
|
|
}
|
|
function makeRandomPassword()
|
|
{
|
|
$salt = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
srand((double)microtime()*1000000);
|
|
$i = 0;
|
|
while ($i <= 7)
|
|
{
|
|
$num = rand() % 33;
|
|
$tmp = substr($salt, $num, 1);
|
|
$pass = $pass . $tmp;
|
|
$i++;
|
|
}
|
|
return $pass;
|
|
}
|
|
//END -- Code for Create Customer Portal Users password and Send Mail
|
|
|
|
header("Location: index.php?action=$return_action&module=$return_module&record=$return_id&activity_mode=$activitymode");
|
|
//Code to save the custom field info into database
|
|
function save_customfields($entity_id)
|
|
{
|
|
global $adb;
|
|
$dbquery="select * from customfields where module='Contacts'";
|
|
$result = $adb->query($dbquery);
|
|
$custquery = "select * from contactscf where contactid='".$entity_id."'";
|
|
$cust_result = $adb->query($custquery);
|
|
if($adb->num_rows($result) != 0)
|
|
{
|
|
|
|
$columns='';
|
|
$values='';
|
|
$update='';
|
|
$noofrows = $adb->num_rows($result);
|
|
for($i=0; $i<$noofrows; $i++)
|
|
{
|
|
$fldName=$adb->query_result($result,$i,"fieldlabel");
|
|
$colName=$adb->query_result($result,$i,"column_name");
|
|
if(isset($_REQUEST[$colName]))
|
|
{
|
|
$fldvalue=$_REQUEST[$colName];
|
|
if(get_magic_quotes_gpc() == 1)
|
|
{
|
|
$fldvalue = stripslashes($fldvalue);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$fldvalue = '';
|
|
}
|
|
if(isset($_REQUEST['record']) && $_REQUEST['record'] != '' && $adb->num_rows($cust_result) !=0)
|
|
{
|
|
//Update Block
|
|
if($i == 0)
|
|
{
|
|
$update = $colName.'="'.$fldvalue.'"';
|
|
}
|
|
else
|
|
{
|
|
$update .= ', '.$colName.'="'.$fldvalue.'"';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Insert Block
|
|
if($i == 0)
|
|
{
|
|
$columns='contactid, '.$colName;
|
|
$values='"'.$entity_id.'", "'.$fldvalue.'"';
|
|
}
|
|
else
|
|
{
|
|
$columns .= ', '.$colName;
|
|
$values .= ', "'.$fldvalue.'"';
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
if(isset($_REQUEST['record']) && $_REQUEST['record'] != '' && $adb->num_rows($cust_result) !=0)
|
|
{
|
|
//Update Block
|
|
$query = 'update contactcf SET '.$update.' where contactid="'.$entity_id.'"';
|
|
$adb->query($query);
|
|
}
|
|
else
|
|
{
|
|
//Insert Block
|
|
$query = 'insert into contactcf ('.$columns.') values('.$values.')';
|
|
$adb->query($query);
|
|
}
|
|
|
|
}
|
|
/* srini patch
|
|
else
|
|
{
|
|
if(isset($_REQUEST['record']) && $_REQUEST['record'] != '' && $adb->num_rows($cust_result) !=0)
|
|
{
|
|
//Update Block
|
|
}
|
|
else
|
|
{
|
|
//Insert Block
|
|
$query = 'insert into contactcf ('.$columns.') values('.$values.')';
|
|
$adb->query($query);
|
|
}
|
|
}*/
|
|
|
|
}
|
|
?>
|
|
|