]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - modules/Calendar/CalendarUtils.php
Release 6.4.0
[Github/sugarcrm.git] / modules / Calendar / CalendarUtils.php
1 <?php
2 if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
3 /*********************************************************************************
4  * SugarCRM Community Edition 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
41 /**
42  * Created by JetBrains PhpStorm.
43  * User: admin
44  * Date: 9/29/11
45  * Time: 11:55 AM
46  * To change this template use File | Settings | File Templates.
47  */
48
49 class CalendarUtils {
50
51         /**
52          * Find first day of week according to user's settings
53          * @param SugarDateTime $date 
54          * @return SugarDateTime $date
55          */
56         static function get_first_day_of_week(SugarDateTime $date){
57                 $fdow = $GLOBALS['current_user']->get_first_day_of_week();
58                 if($date->day_of_week < $fdow)
59                                 $date = $date->get('-7 days');                  
60                 return $date->get_day_by_index_this_week($fdow);
61         }
62         
63         
64         /**
65          * Get list of needed fields for modules
66          * @return array
67          */
68         static function get_fields(){
69                 return array(
70                         'Meetings' => array(
71                                 'name',
72                                 'date_start',
73                                 'duration_hours',
74                                 'duration_minutes',
75                                 'status',
76                                 'description',
77                                 'parent_type',
78                                 'parent_name',
79                                 'parent_id',
80                         ),
81                         'Calls' => array(
82                                 'name',
83                                 'date_start',
84                                 'duration_hours',
85                                 'duration_minutes',
86                                 'status',
87                                 'description',
88                                 'parent_type',
89                                 'parent_name',
90                                 'parent_id',
91                         ),
92                         'Tasks' => array(
93                                 'name',
94                                 'date_start',
95                                 'date_due',
96                                 'status',
97                                 'description',
98                                 'parent_type',
99                                 'parent_name',
100                                 'parent_id',
101                         ),
102                 );
103         }
104         
105         /**
106          * Get array of needed time data
107          * @param SugarBean $bean 
108          * @return array
109          */
110         static function get_time_data($bean){
111                                         $arr = array();
112                                         
113                                         $date_field = "date_start";                                                             
114                                         if($bean->object_name == 'Task')
115                                                 $date_field = "date_due";
116                                         
117                                         $timestamp = SugarDateTime::createFromFormat($GLOBALS['timedate']->get_date_time_format(),$bean->$date_field,new DateTimeZone('UTC'))->format('U');                             
118                                         $arr['timestamp'] = $timestamp;
119                                         $arr['time_start'] = $GLOBALS['timedate']->fromTimestamp($arr['timestamp'])->format($GLOBALS['timedate']->get_time_format());
120
121                                         
122                                         return $arr;
123         }
124 }