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.
		
		
		
		
		
			
		
			
				
					
					
						
							243 lines
						
					
					
						
							7.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							243 lines
						
					
					
						
							7.6 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/Notes/Note.php,v 1.15 2005/03/15 10:01:08 shaw Exp $
							 | 
						|
								 * Description:  TODO: To be written.
							 | 
						|
								 * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
							 | 
						|
								 * All Rights Reserved.
							 | 
						|
								 * Contributor(s): ______________________________________..
							 | 
						|
								 ********************************************************************************/
							 | 
						|
								
							 | 
						|
								include_once('config.php');
							 | 
						|
								require_once('include/logging.php');
							 | 
						|
								require_once('include/database/PearDatabase.php');
							 | 
						|
								require_once('data/SugarBean.php');
							 | 
						|
								require_once('data/CRMEntity.php');
							 | 
						|
								require_once('include/upload_file.php');
							 | 
						|
								
							 | 
						|
								// Note is used to store customer information.
							 | 
						|
								class Note extends CRMEntity {
							 | 
						|
									var $log;
							 | 
						|
									var $db;
							 | 
						|
								
							 | 
						|
									// Stored fields
							 | 
						|
									var $id;
							 | 
						|
								        var $mode;
							 | 
						|
								
							 | 
						|
									var $notesid;
							 | 
						|
									var $description;
							 | 
						|
									var $name;
							 | 
						|
									var $filename;
							 | 
						|
									var $parent_type;
							 | 
						|
									var $parent_id;
							 | 
						|
									var $contact_id;
							 | 
						|
								
							 | 
						|
									var $parent_name;
							 | 
						|
									var $contact_name;
							 | 
						|
									var $contact_phone;
							 | 
						|
									var $contact_email;
							 | 
						|
									var $required_fields =  array("name"=>1);
							 | 
						|
									var $default_note_name_dom = array('Meeting notes', 'Reminder');
							 | 
						|
								
							 | 
						|
									var $table_name = "notes";
							 | 
						|
									var $tab_name = Array('crmentity','notes','senotesrel');
							 | 
						|
								        var $tab_name_index = Array('crmentity'=>'crmid','notes'=>'notesid','senotesrel'=>'notesid');
							 | 
						|
								
							 | 
						|
								  	var $module_id = "notesid";
							 | 
						|
									var $object_name = "Note";
							 | 
						|
								
							 | 
						|
									var $column_fields = Array();
							 | 
						|
								
							 | 
						|
								        var $sortby_fields = Array('title','modifiedtime');		  
							 | 
						|
								
							 | 
						|
									// This is used to retrieve related fields from form posts.
							 | 
						|
									var $additional_column_fields = Array('', '', '', '');
							 | 
						|
								
							 | 
						|
									// This is the list of fields that are in the lists.
							 | 
						|
									var $list_fields = Array(
							 | 
						|
												'Subject'=>Array('notes'=>'title'),
							 | 
						|
												'Contact Name'=>Array('notes'=>'contact_id'),
							 | 
						|
												'Related to'=>Array('senotesrel'=>'crmid'),
							 | 
						|
												'File'=>Array('notes'=>'filename'),
							 | 
						|
												'Last Modified'=>Array('crmentity'=>'modifiedtime')
							 | 
						|
												);
							 | 
						|
									var $list_fields_name = Array(
							 | 
						|
													'Subject'=>'title',
							 | 
						|
													'Contact Name'=>'contact_id',
							 | 
						|
													'Related to'=>'crmid',
							 | 
						|
													'File'=>'filename',
							 | 
						|
													'Last Modified'=>'modifiedtime'
							 | 
						|
												     );	
							 | 
						|
									var $list_link_field= 'title';
							 | 
						|
								
							 | 
						|
									function Note() {
							 | 
						|
										$this->log = LoggerManager::getLogger('notes');
							 | 
						|
										$this->db = new PearDatabase();
							 | 
						|
										$this->column_fields = getColumnFields('Notes');
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									var $new_schema = true;
							 | 
						|
								
							 | 
						|
									function create_tables () {
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									function drop_tables () {
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									function get_summary_text()
							 | 
						|
									{
							 | 
						|
										return "$this->name";
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									function create_list_query(&$order_by, &$where)
							 | 
						|
									{
							 | 
						|
										$contact_required = ereg("contacts\.first_name", $where);
							 | 
						|
								
							 | 
						|
										if($contact_required)
							 | 
						|
										{
							 | 
						|
											$query = "SELECT notes.notesid, notes.title, notes.filename,  FROM contactdetailss, notes ";
							 | 
						|
											$where_auto = "notes.contact_id = contacts.id AND notes.deleted=0 AND contacts.deleted=0";
							 | 
						|
										}
							 | 
						|
										else
							 | 
						|
										{
							 | 
						|
											$query = 'SELECT notesid, title, filename  FROM notes ';
							 | 
						|
											$where_auto = "deleted=0";
							 | 
						|
										}
							 | 
						|
								
							 | 
						|
										if($where != "")
							 | 
						|
											$query .= "where $where AND ".$where_auto;
							 | 
						|
										else
							 | 
						|
											$query .= "where ".$where_auto;
							 | 
						|
								
							 | 
						|
										if($order_by != "")
							 | 
						|
											$query .= " ORDER BY $order_by";
							 | 
						|
										else
							 | 
						|
											$query .= " ORDER BY title";
							 | 
						|
								
							 | 
						|
										return $query;
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        function create_export_query(&$order_by, &$where)
							 | 
						|
								        {
							 | 
						|
								             $query = "SELECT
							 | 
						|
								                                        notes.*,
							 | 
						|
								                                        contactdetails.firstname,
							 | 
						|
								                                        contactdetails.lastname
							 | 
						|
								                                        FROM notes
							 | 
						|
								                                        LEFT JOIN contactdetails ON notes.contact_id=contactdetails.contactid inner join crmentity on crmentity.crmid=notes.notesid and crmentity.deleted=0 ";
							 | 
						|
								                return $query;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
									function fill_in_additional_list_fields()
							 | 
						|
									{
							 | 
						|
										$this->fill_in_additional_detail_fields();
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									function fill_in_additional_detail_fields()
							 | 
						|
									{
							 | 
						|
										# TODO:  Seems odd we need to clear out these values so that list views don't show the previous rows value if current value is blank
							 | 
						|
										$this->contact_name = '';
							 | 
						|
										$this->contact_phone = '';
							 | 
						|
										$this->contact_email = '';
							 | 
						|
										$this->parent_name = '';
							 | 
						|
								
							 | 
						|
										if (isset($this->contact_id) && $this->contact_id != '') {
							 | 
						|
											require_once("modules/Contacts/Contact.php");
							 | 
						|
											$contact = new Contact();
							 | 
						|
											$query = "SELECT first_name, last_name, phone_work, email1 from $contact->table_name where id = '$this->contact_id'";
							 | 
						|
											$result =$this->db->query($query,true," Error filling in additional detail fields: ");
							 | 
						|
								
							 | 
						|
											// Get the id and the name.
							 | 
						|
											$row = $this->db->fetchByAssoc($result);
							 | 
						|
								
							 | 
						|
											if($row != null)
							 | 
						|
											{
							 | 
						|
												$this->contact_name = return_name($row, 'first_name', 'last_name');
							 | 
						|
												if ($row['phone_work'] != '') $this->contact_phone = $row['phone_work'];
							 | 
						|
												else $this->contact_phone = '';
							 | 
						|
												if ($row['email1'] != '') $this->contact_email = $row['email1'];
							 | 
						|
												else $this->contact_email = '';
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
								
							 | 
						|
										if ($this->parent_type == "Opportunities") {
							 | 
						|
											require_once("modules/Opportunities/Opportunity.php");
							 | 
						|
											$parent = new Opportunity();
							 | 
						|
											$query = "SELECT name from $parent->table_name where id = '$this->parent_id'";
							 | 
						|
											$result =$this->db->query($query,true," Error filling in additional detail fields: ");
							 | 
						|
								
							 | 
						|
											// Get the id and the name.
							 | 
						|
											$row = $this->db->fetchByAssoc($result);
							 | 
						|
								
							 | 
						|
											if($row != null)
							 | 
						|
											{
							 | 
						|
												if ($row['name'] != '') stripslashes($this->parent_name = $row['name']);
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										elseif ($this->parent_type == "Cases") {
							 | 
						|
											require_once("modules/Cases/Case.php");
							 | 
						|
											$parent = new aCase();
							 | 
						|
											$query = "SELECT name from $parent->table_name where id = '$this->parent_id'";
							 | 
						|
											$result =$this->db->query($query,true," Error filling in additional detail fields: ");
							 | 
						|
								
							 | 
						|
											// Get the id and the name.
							 | 
						|
											$row = $this->db->fetchByAssoc($result);
							 | 
						|
								
							 | 
						|
											if($row != null)
							 | 
						|
											{
							 | 
						|
												if ($row['name'] != '') $this->parent_name = stripslashes($row['name']);
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										elseif ($this->parent_type == "Accounts") {
							 | 
						|
											require_once("modules/Accounts/Account.php");
							 | 
						|
											$parent = new Account();
							 | 
						|
											$query = "SELECT name from $parent->table_name where id = '$this->parent_id'";
							 | 
						|
											$result =$this->db->query($query,true," Error filling in additional detail fields: ");
							 | 
						|
								
							 | 
						|
											// Get the id and the name.
							 | 
						|
											$row = $this->db->fetchByAssoc($result);
							 | 
						|
								
							 | 
						|
											if($row != null)
							 | 
						|
											{
							 | 
						|
												if ($row['name'] != '') $this->parent_name = stripslashes($row['name']);
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									function get_list_view_data(){
							 | 
						|
										$note_fields = $this->get_list_view_array();
							 | 
						|
										global $app_list_strings, $focus, $action, $currentModule;
							 | 
						|
										$note_fields["DATE_MODIFIED"] = substr($note_fields["DATE_MODIFIED"], 0 , 10);
							 | 
						|
										if (isset($this->parent_type)) {
							 | 
						|
											$note_fields['PARENT_MODULE'] = $this->parent_type;
							 | 
						|
										}
							 | 
						|
								
							 | 
						|
										if (! isset($this->filename) || $this->filename != '') 
							 | 
						|
										{
							 | 
						|
								                        $note_fields['FILENAME'] = $this->filename;
							 | 
						|
								                        $note_fields['FILE_URL'] = UploadFile::get_url($this->filename,$this->id);
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										return $note_fields;
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
								}
							 | 
						|
								?>
							 | 
						|
								
							 |