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.
244 lines
7.6 KiB
244 lines
7.6 KiB
4 months ago
|
<?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;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
?>
|