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.
		
		
		
		
		
			
		
			
				
					
					
						
							334 lines
						
					
					
						
							11 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							334 lines
						
					
					
						
							11 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/Emails/Save.php,v 1.27 2005/04/29 08:54:38 rank Exp $
							 | 
						|
								 * Description:  Saves an Account record and then redirects the browser to the 
							 | 
						|
								 * defined return URL.
							 | 
						|
								 * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
							 | 
						|
								 * All Rights Reserved.
							 | 
						|
								 * Contributor(s): ______________________________________..
							 | 
						|
								 ********************************************************************************/
							 | 
						|
								
							 | 
						|
								require_once('modules/Emails/Email.php');
							 | 
						|
								require_once('include/logging.php');
							 | 
						|
								require_once('include/database/PearDatabase.php');
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								//require_once('send_mail.php');
							 | 
						|
								$local_log =& LoggerManager::getLogger('index');
							 | 
						|
								
							 | 
						|
								$focus = new Email();
							 | 
						|
								if(isset($_REQUEST['record']))
							 | 
						|
								{
							 | 
						|
								        $focus->id = $_REQUEST['record'];
							 | 
						|
								}
							 | 
						|
								if(isset($_REQUEST['mode']))
							 | 
						|
								{
							 | 
						|
								        $focus->mode = $_REQUEST['mode'];
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								//Check if the file is exist or not.
							 | 
						|
								if($_FILES["filename"]["size"] == 0 && $_FILES["filename"]["name"] != '')
							 | 
						|
								{
							 | 
						|
								        $file_upload_error = true;
							 | 
						|
								        $_FILES = '';
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								//check if the contact already exists by using the email address as criteria
							 | 
						|
								//if contact exists, then add the email to that contact
							 | 
						|
								if((isset($_REQUEST['sname']) && $_REQUEST['sname'] != null) && ((isset($_REQUEST['uname']) && $_REQUEST['uname'] != null)))
							 | 
						|
								{
							 | 
						|
								$ServerName = $_REQUEST['sname'];
							 | 
						|
								$UserName = $_REQUEST['uname'];
							 | 
						|
								$PassWord = $_REQUEST['passwd'];
							 | 
						|
								$mbox = imap_open($ServerName, $UserName,$PassWord) or die("Could not open Mailbox - try again later!");
							 | 
						|
								}
							 | 
						|
								if((isset($_REQUEST['deletebox']) && $_REQUEST['deletebox'] != null) && $_REQUEST['addbox'] == null)
							 | 
						|
								{
							 | 
						|
								  imap_delete($mbox,$_REQUEST['deletebox']);
							 | 
						|
								  imap_expunge($mbox);
							 | 
						|
								header("Location: index.php?module=Emails&action=index");
							 | 
						|
								exit();
							 | 
						|
								}
							 | 
						|
								if(isset($_REQUEST['fromemail']) && $_REQUEST['fromemail'] != null)
							 | 
						|
								{
							 | 
						|
									//get the list of data from the comma separated array
							 | 
						|
									$emailids = explode(",",$_REQUEST['fromemail']);
							 | 
						|
									$subjects = explode(",",$_REQUEST['subject']);
							 | 
						|
								$total = count($emailids);
							 | 
						|
									for($m=0;$m<$total;$m++)
							 | 
						|
									{
							 | 
						|
										$ctctExists = checkIfContactExists($emailids[$m]);
							 | 
						|
										if($ctctExists > 0)
							 | 
						|
										{
							 | 
						|
											$focus->column_fields['parent_id']=$ctctExists;
							 | 
						|
										}
							 | 
						|
										else
							 | 
						|
										{
							 | 
						|
											//echo 'contact not found in db!';
							 | 
						|
										}
							 | 
						|
										$focus->column_fields['subject']=$subjects[$m];
							 | 
						|
										$focus->column_fields["activitytype"]="Emails";
							 | 
						|
										$focus->save("Emails");
							 | 
						|
										$return_id = $focus->id;
							 | 
						|
										$return_module='Emails';	
							 | 
						|
										$return_action='DetailView';	
							 | 
						|
									}
							 | 
						|
									header("Location: index.php?action=$return_action&module=$return_module&parent_id=$parent_id&record=$return_id&filename=$filename");
							 | 
						|
									return;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								  function checkIfContactExists($mailid)
							 | 
						|
								  {
							 | 
						|
								    global $adb;
							 | 
						|
								    $sql = "select contactid from contactdetails where email= '".$mailid ."'";
							 | 
						|
								    // echo $sql;
							 | 
						|
								    $result = $adb->query($sql);
							 | 
						|
								    $numRows = $adb->num_rows($result);
							 | 
						|
								    if($numRows > 0)
							 | 
						|
								    {
							 | 
						|
								      return $adb->query_result($result,0,"contactid");
							 | 
						|
								    }
							 | 
						|
								    else
							 | 
						|
								    {
							 | 
						|
								      return -1;
							 | 
						|
								    }
							 | 
						|
								    //return the result
							 | 
						|
								
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								//Added for retrieve the old existing attachments when duplicated without new attachment
							 | 
						|
								if($_FILES['filename']['name'] == '' && $_REQUEST['mode'] != 'edit' && $_REQUEST['old_id'] != '')
							 | 
						|
								{
							 | 
						|
									$sql = "select attachments.attachmentsid from attachments inner join seattachmentsrel on seattachmentsrel.attachmentsid=attachments.attachmentsid where seattachmentsrel.crmid= ".$_REQUEST['old_id'];
							 | 
						|
								
							 | 
						|
									$result = $adb->query($sql);
							 | 
						|
									if($adb->num_rows($result) != 0)
							 | 
						|
										$attachmentid = $adb->query_result($result,0,'attachmentsid');
							 | 
						|
									if($attachmentid != '')
							 | 
						|
									{
							 | 
						|
										$attachquery = "select * from attachments where attachmentsid = ".$attachmentid;
							 | 
						|
										$result = $adb->query($attachquery);
							 | 
						|
										$filename = $adb->query_result($result,0,'name');
							 | 
						|
										$filetype = $adb->query_result($result,0,'type');
							 | 
						|
										$filesize = $adb->query_result($result,0,'attachmentsize');
							 | 
						|
										$data = $adb->query_result($result,0,'attachmentcontents');
							 | 
						|
								//		$_FILES["filename"]["tmp_name"] = basename($filename);
							 | 
						|
										$_FILES['filename']['name'] = $filename;
							 | 
						|
										$_FILES['filename']['type'] = $filetype;
							 | 
						|
										$_FILES['filename']['size'] = $filesize;
							 | 
						|
								//		if(!@move_uploaded_file($_FILES["filename"]["tmp_name"],$uploaddir.$_FILES["filename"]["name"])){}
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								//$focus->retrieve($_REQUEST['record']);
							 | 
						|
								foreach($focus->column_fields as $fieldname => $val)
							 | 
						|
								{
							 | 
						|
									if(isset($_REQUEST[$fieldname]))
							 | 
						|
									{
							 | 
						|
										$value = $_REQUEST[$fieldname];
							 | 
						|
										//$focus->$field = $value;
							 | 
						|
								                //$local_log->debug("saving note: $field is $value");
							 | 
						|
										$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['date_due_flag'])) $focus->date_due_flag = 'off';
							 | 
						|
								*/
							 | 
						|
								$focus->filename = $_REQUEST['file_name'];
							 | 
						|
								$focus->parent_id = $_REQUEST['parent_id'];
							 | 
						|
								$focus->parent_type = $_REQUEST['parent_type'];
							 | 
						|
								$focus->column_fields["activitytype"]="Emails";
							 | 
						|
								$focus->save("Emails");
							 | 
						|
								
							 | 
						|
								$return_id = $focus->id;
							 | 
						|
								$email_id = $return_id;
							 | 
						|
								//Added for update the existing attachments when duplicated without new attachment
							 | 
						|
								if($attachmentid != '')
							 | 
						|
								{
							 | 
						|
									$sql = "select attachmentsid from seattachmentsrel where crmid=".$focus->id;
							 | 
						|
									$attachmentid = $adb->query_result($adb->query($sql),0,'attachmentsid');
							 | 
						|
									$result = $adb->updateBlob('attachments','attachmentcontents',"attachmentsid='".$attachmentid."' and name='".$filename."'",$data);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								$focus->retrieve_entity_info($return_id,"Emails");
							 | 
						|
								//print_r($focus->column_fields);
							 | 
						|
								
							 | 
						|
								//this is to receive the data from the Select Users button
							 | 
						|
								//$_REQUEST['assigned_user_id']=$_REQUEST['user_id'];
							 | 
						|
								
							 | 
						|
								//this will be the case if the Select Contact button is chosen
							 | 
						|
								//if($_REQUEST['assigned_user_id'] == null)
							 | 
						|
								//{
							 | 
						|
								//   $_REQUEST['assigned_user_id']=$_REQUEST['entity_id'];
							 | 
						|
								//}
							 | 
						|
								
							 | 
						|
								//this is to receive the data from the Select Users button
							 | 
						|
								if($_REQUEST['source_module'] == null)
							 | 
						|
								{
							 | 
						|
									$module = 'users';
							 | 
						|
								}
							 | 
						|
								//this will be the case if the Select Contact button is chosen
							 | 
						|
								else
							 | 
						|
								{
							 | 
						|
									$module = $_REQUEST['source_module'];
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								$_REQUEST['filename']=$focus->column_fields['filename'];
							 | 
						|
								
							 | 
						|
								//subject, contents
							 | 
						|
								$_REQUEST['name'] = $focus->column_fields['subject'];
							 | 
						|
								$_REQUEST['description'] = $focus->column_fields['description'];
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								if(isset($_REQUEST['return_module']) && $_REQUEST['return_module'] != "") $return_module = $_REQUEST['return_module'];
							 | 
						|
								else $return_module = "Emails";
							 | 
						|
								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['filename']) && $_REQUEST['filename'] != "") $filename = $_REQUEST['filename'];
							 | 
						|
								
							 | 
						|
								$local_log->debug("Saved record with id of ".$return_id);
							 | 
						|
								
							 | 
						|
								$uploaddir = $root_directory ."/test/upload/" ;// set this to wherever
							 | 
						|
								
							 | 
						|
								$binFile = $_FILES['filename']['name'];
							 | 
						|
								$filename = basename($binFile);
							 | 
						|
								$filetype= $_FILES['filename']['type'];
							 | 
						|
								$filesize = $_FILES['filename']['attachmentsize'];
							 | 
						|
								
							 | 
						|
								//echo 'In Save.php ==> file name,type,size : =>'.$filename.' .. '.$filetype.' .. '.$filesize;
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								if(move_uploaded_file($_FILES["filename"]["tmp_name"],$uploaddir.$_FILES["filename"]["name"])) 
							 | 
						|
								{
							 | 
						|
								  $binFile = $_FILES['filename']['name'];
							 | 
						|
								  $filename = basename($binFile);
							 | 
						|
								  $filetype= $_FILES['filename']['type'];
							 | 
						|
								    $filesize = $_FILES['filename']['attachmentsize'];
							 | 
						|
								    if($filesize != 0)	
							 | 
						|
								    {
							 | 
						|
								    $data = base64_encode(fread(fopen($uploaddir.$binFile, "r"), $filesize));
							 | 
						|
								    $date_entered = date('YmdHis');
							 | 
						|
								    //Retreiving the return module and setting the parent type
							 | 
						|
								    $ret_module = $_REQUEST['return_module'];
							 | 
						|
								    $parent_type;		
							 | 
						|
								    if($_REQUEST['return_module'] == 'Leads')
							 | 
						|
								    {
							 | 
						|
									    $parent_type = 'Lead';
							 | 
						|
								    }
							 | 
						|
								    elseif($_REQUEST['return_module'] == 'Accounts')
							 | 
						|
								    {
							 | 
						|
									    $parent_type = 'Account';
							 | 
						|
								    }
							 | 
						|
								    elseif($_REQUEST['return_module'] == 'Contacts')
							 | 
						|
								    {
							 | 
						|
									    $parent_type = 'Contact';
							 | 
						|
								    }
							 | 
						|
								    elseif($_REQUEST['return_module'] == 'Opportunities')
							 | 
						|
								    {
							 | 
						|
									    $parent_type = 'Opportunity';
							 | 
						|
								    }
							 | 
						|
								    elseif($_REQUEST['return_module'] == 'Cases')
							 | 
						|
								    {
							 | 
						|
									    $parent_type = 'Case';
							 | 
						|
								    }
							 | 
						|
								    elseif($_REQUEST['return_module'] == 'Emails')
							 | 
						|
								    {
							 | 
						|
									    $parent_type = 'Emails';
							 | 
						|
								    }		
							 | 
						|
								
							 | 
						|
								    $parent_id = $_REQUEST['parent_id'];	 			
							 | 
						|
								
							 | 
						|
								    $adb->println("attachment");
							 | 
						|
								
							 | 
						|
								//     mysql_close();
							 | 
						|
								     deleteFile($uploaddir,$filename);
							 | 
						|
								//     header("Location: index.php?action=DetailView&module=$ret_module&record=$parent_id&filename=$filename");	
							 | 
						|
								     }
							 | 
						|
								    else
							 | 
						|
								      {
							 | 
						|
								    include('themes/'.$theme.'/header.php');
							 | 
						|
								   $errormessage = "<font color='red'><B>Error Message<ul>
							 | 
						|
											<li><font color='red'>Invalid file OR</font>
							 | 
						|
											<li><font color='red'>File has no data</font>
							 | 
						|
											</ul></B></font> <br>" ;
							 | 
						|
								   echo $errormessage;
							 | 
						|
								       deleteFile($uploaddir,$filename);
							 | 
						|
								   //include "upload.php";
							 | 
						|
								     }			
							 | 
						|
								   
							 | 
						|
								} 
							 | 
						|
								else 
							 | 
						|
								{
							 | 
						|
								  $errorCode =  $_FILES['uploadfile']['error'];
							 | 
						|
								//  echo "Problems in file upload. Please try again! <br>" .$errorCode;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function deleteFile($dir,$filename)
							 | 
						|
								{
							 | 
						|
								   unlink($dir.$filename);	
							 | 
						|
								}
							 | 
						|
								$_REQUEST['return_id']=$return_id;
							 | 
						|
								if($_REQUEST['return_module'] != 'Emails' && $_REQUEST['record'] != '')
							 | 
						|
									{
							 | 
						|
								        	$return_id = $_REQUEST['record'];
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
								        //echo 'return..'.$return_module.'/'.$return_action.'<br>parent id='.$parent_id.'<br>return id = '.$return_id.'/'.$filename;
							 | 
						|
								
							 | 
						|
								if($file_upload_error)
							 | 
						|
								{
							 | 
						|
								        $return_module = 'Emails';
							 | 
						|
								        $return_action = 'EditView';
							 | 
						|
								        $return_id = $email_id.'&upload_error=true&return_module='.$_REQUEST['return_module'].'&return_action='.$_REQUEST['return_action'].'&return_id='.$_REQUEST['return_id'];
							 | 
						|
									header("Location: index.php?action=$return_action&module=$return_module&parent_id=$parent_id&record=$return_id&filename=$filename");
							 | 
						|
								}
							 | 
						|
								elseif( isset($_REQUEST['send_mail']) && $_REQUEST['send_mail'])
							 | 
						|
								{
							 | 
						|
									include("modules/Emails/send_mail.php");
							 | 
						|
								}
							 | 
						|
								elseif(isset($_REQUEST['return_action']) && $_REQUEST['return_action'] == 'mailbox')
							 | 
						|
								{
							 | 
						|
									header("Location: index.php?module=$return_module&action=index");
							 | 
						|
								}
							 | 
						|
								else
							 | 
						|
								{
							 | 
						|
								//echo ' 333333 the overwriting might happen here '.$return_id;
							 | 
						|
									header("Location: index.php?action=$return_action&module=$return_module&parent_id=$parent_id&record=$return_id&filename=$filename");
							 | 
						|
								}
							 | 
						|
								?>
							 | 
						|
								
							 |