]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - modules/CampaignLog/CampaignLog.php
Release 6.1.4
[Github/sugarcrm.git] / modules / CampaignLog / CampaignLog.php
1 <?php
2 if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
3 /*********************************************************************************
4  * SugarCRM is a customer relationship management program developed by
5  * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
6  * 
7  * This program is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU Affero General Public License version 3 as published by the
9  * Free Software Foundation with the addition of the following permission added
10  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
11  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
12  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13  * 
14  * This program is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
17  * details.
18  * 
19  * You should have received a copy of the GNU Affero General Public License along with
20  * this program; if not, see http://www.gnu.org/licenses or write to the Free
21  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22  * 02110-1301 USA.
23  * 
24  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
25  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26  * 
27  * The interactive user interfaces in modified source and object code versions
28  * of this program must display Appropriate Legal Notices, as required under
29  * Section 5 of the GNU Affero General Public License version 3.
30  * 
31  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
32  * these Appropriate Legal Notices must retain the display of the "Powered by
33  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
34  * technical reasons, the Appropriate Legal Notices must display the words
35  * "Powered by SugarCRM".
36  ********************************************************************************/
37
38 /*********************************************************************************
39
40  * Description:
41  ********************************************************************************/
42
43
44
45
46
47
48
49
50 class CampaignLog extends SugarBean {
51
52         var $table_name = 'campaign_log';
53         var $object_name = 'CampaignLog';
54         var $module_dir = 'CampaignLog';
55         
56         var $new_schema = true;
57                 
58         var $campaign_id;
59         var $target_tracker_key;
60         var $target_id;
61         var $target_type;
62         var $activity_type;
63         var $activity_date;
64         var $related_id;
65         var $related_type;
66         var $deleted;
67         var $list_id;
68         var $hits;
69         var $more_information;
70         var $marketing_id;
71         function CampaignLog() {
72                 global $sugar_config;
73                 parent::SugarBean();
74                 
75         }       
76
77     function get_list_view_data(){
78         global $locale;
79         $temp_array = $this->get_list_view_array();
80         //make sure that both items in array are set to some value, else return null
81         if(!(isset($temp_array['TARGET_TYPE']) && $temp_array['TARGET_TYPE']!= '') || !(isset($temp_array['TARGET_ID']) && $temp_array['TARGET_ID']!= ''))
82         {   //needed values to construct query are empty/null, so return null
83             $GLOBALS['log']->debug("CampaignLog.php:get_list_view_data duntion: temp_array['TARGET_TYPE'] and/or temp_array['TARGET_ID'] are empty, return null");
84             $emptyArr = array();
85             return $emptyArr; 
86         }
87         if ( ( $this->db->dbType == 'mysql' ) or ( $this->db->dbType == 'oci8' ) )
88         {           
89             $query="select first_name, last_name, CONCAT(CONCAT(first_name, ' '), last_name) name from ".strtolower($temp_array['TARGET_TYPE']) .  " where id ='{$temp_array['TARGET_ID']}'";           
90         }
91         if($this->db->dbType == 'mssql')
92         {   
93             $query="select first_name, last_name, (first_name + ' ' + last_name) name from ".strtolower($temp_array['TARGET_TYPE']) .  " where id ='{$temp_array['TARGET_ID']}'";
94         }
95         if($temp_array['TARGET_TYPE']=='Accounts'){
96                $query="select name from ".strtolower($temp_array['TARGET_TYPE']) .  " where id ='{$temp_array['TARGET_ID']}'";
97         }
98
99         $result=$this->db->query($query);
100         $row=$this->db->fetchByAssoc($result);
101
102         if ($row) {
103             if($temp_array['TARGET_TYPE']=='Accounts'){
104                 $temp_array['RECIPIENT_NAME']=$row['name'];
105             }else{
106                 $full_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name'], '');
107                 $temp_array['RECIPIENT_NAME']=$full_name;
108             }   
109         }
110         $temp_array['RECIPIENT_EMAIL']=$this->retrieve_email_address($temp_array['TARGET_ID']);
111
112         $query = 'select name from email_marketing where id = \'' . $temp_array['MARKETING_ID'] . '\'';
113         $result=$this->db->query($query);
114         $row=$this->db->fetchByAssoc($result);
115
116         if ($row)
117         {
118                 $temp_array['MARKETING_NAME'] = $row['name'];
119         }
120         
121         return $temp_array;
122     }
123     
124     function retrieve_email_address($trgt_id = ''){
125         $return_str = '';
126         if(!empty($trgt_id)){
127             $qry  = " select eabr.primary_address, ea.email_address";
128             $qry .= " from email_addresses ea ";
129             $qry .= " Left Join email_addr_bean_rel eabr on eabr.email_address_id = ea.id ";
130             $qry .= " where eabr.bean_id = '{$trgt_id}' ";
131             $qry .= " and ea.deleted = 0 ";
132             $qry .= " and eabr.deleted = 0" ;
133             $qry .= " order by primary_address desc ";
134     
135             $result=$this->db->query($qry);
136             $row=$this->db->fetchByAssoc($result);
137     
138             if (!empty($row['email_address'])){
139                 $return_str = $row['email_address'];
140             }
141         }
142         return $return_str;
143     }
144     
145
146
147
148         //this function is called statically by the campaing_log subpanel.
149          function get_related_name($related_id, $related_type) {
150         global $locale;
151                 $db= DBManagerFactory::getInstance();
152                 if ($related_type == 'Emails') {
153                         $query="SELECT name from emails where id='$related_id'";
154                         $result=$db->query($query);
155                         $row=$db->fetchByAssoc($result);
156                         if ($row != null) {
157                                 return $row['name'];
158                         }
159                 }
160                 if ($related_type == 'Contacts') {
161                         $query="SELECT first_name, last_name from contacts where id='$related_id'";
162                         $result=$db->query($query);
163                         $row=$db->fetchByAssoc($result);
164                         if ($row != null) {
165                                 return $full_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']);
166                         }
167                 }
168         if ($related_type == 'Leads') {
169             $query="SELECT first_name, last_name from leads where id='$related_id'";
170             $result=$db->query($query);
171             $row=$db->fetchByAssoc($result);
172             if ($row != null) {
173                 return $full_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']);
174             }
175         }        
176         if ($related_type == 'Prospects') {
177                         $query="SELECT first_name, last_name from prospects where id='$related_id'";
178                         $result=$db->query($query);
179                         $row=$db->fetchByAssoc($result);
180                         if ($row != null) {
181                                 return $full_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']);
182                         }
183                 }
184                 if ($related_type == 'CampaignTrackers') {
185                         $query="SELECT tracker_url from campaign_trkrs where id='$related_id'";
186                         $result=$db->query($query);
187                         $row=$db->fetchByAssoc($result);
188                         if ($row != null) {
189                                 return $row['tracker_url'] ;
190                         }
191                 }
192         if ($related_type == 'Accounts') {
193             $query="SELECT name from accounts where id='$related_id'";
194             $result=$db->query($query);
195             $row=$db->fetchByAssoc($result);
196             if ($row != null) {
197                 return $row['name'];
198             }
199         }
200                 return $related_id.$related_type;
201         }
202         
203 }
204
205 ?>