@@ -42,24 +42,24 @@ |
||
42 | 42 | global $mod_strings; |
43 | 43 | |
44 | 44 | $popupMeta = array('moduleMain' => 'Prospect', |
45 | - 'varName' => 'PROSPECT', |
|
46 | - 'orderBy' => 'prospects.last_name, prospects.first_name', |
|
47 | - 'whereClauses' => |
|
48 | - array('first_name' => 'prospects.first_name', |
|
49 | - 'last_name' => 'prospects.last_name'), |
|
50 | - 'searchInputs' => |
|
51 | - array('first_name', 'last_name'), |
|
52 | - 'selectDoms' => |
|
53 | - array('LIST_OPTIONS' => |
|
54 | - array('dom' => 'prospect_list_type_dom', 'searchInput' => 'list_type'), |
|
55 | - ), |
|
56 | - 'create' => |
|
57 | - array('formBase' => 'ProspectFormBase.php', |
|
58 | - 'formBaseClass' => 'ProspectFormBase', |
|
59 | - 'getFormBodyParams' => array('','','ProspectSave'), |
|
60 | - 'createButton' => 'LNK_NEW_PROSPECT' |
|
61 | - ) |
|
62 | - ); |
|
45 | + 'varName' => 'PROSPECT', |
|
46 | + 'orderBy' => 'prospects.last_name, prospects.first_name', |
|
47 | + 'whereClauses' => |
|
48 | + array('first_name' => 'prospects.first_name', |
|
49 | + 'last_name' => 'prospects.last_name'), |
|
50 | + 'searchInputs' => |
|
51 | + array('first_name', 'last_name'), |
|
52 | + 'selectDoms' => |
|
53 | + array('LIST_OPTIONS' => |
|
54 | + array('dom' => 'prospect_list_type_dom', 'searchInput' => 'list_type'), |
|
55 | + ), |
|
56 | + 'create' => |
|
57 | + array('formBase' => 'ProspectFormBase.php', |
|
58 | + 'formBaseClass' => 'ProspectFormBase', |
|
59 | + 'getFormBodyParams' => array('','','ProspectSave'), |
|
60 | + 'createButton' => 'LNK_NEW_PROSPECT' |
|
61 | + ) |
|
62 | + ); |
|
63 | 63 | |
64 | 64 | |
65 | 65 | ?> |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
3 | 3 | /********************************************************************************* |
4 | 4 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 5 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -56,7 +56,7 @@ discard block |
||
56 | 56 | 'create' => |
57 | 57 | array('formBase' => 'ProspectFormBase.php', |
58 | 58 | 'formBaseClass' => 'ProspectFormBase', |
59 | - 'getFormBodyParams' => array('','','ProspectSave'), |
|
59 | + 'getFormBodyParams' => array('', '', 'ProspectSave'), |
|
60 | 60 | 'createButton' => 'LNK_NEW_PROSPECT' |
61 | 61 | ) |
62 | 62 | ); |
@@ -1,5 +1,7 @@ |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if(!defined('sugarEntry') || !sugarEntry) { |
|
3 | + die('Not A Valid Entry Point'); |
|
4 | +} |
|
3 | 5 | /********************************************************************************* |
4 | 6 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 7 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -39,31 +39,31 @@ |
||
39 | 39 | |
40 | 40 | |
41 | 41 | $searchdefs['Prospects'] = array( |
42 | - 'templateMeta' => array( |
|
43 | - 'maxColumns' => '3', |
|
42 | + 'templateMeta' => array( |
|
43 | + 'maxColumns' => '3', |
|
44 | 44 | 'maxColumnsBasic' => '4', |
45 | 45 | 'widths' => array('label' => '10', 'field' => '30'), |
46 | - ), |
|
46 | + ), |
|
47 | 47 | 'layout' => array( |
48 | - 'basic_search' => array( |
|
49 | - array('name'=>'search_name','label' =>'LBL_NAME', 'type' => 'name'), |
|
50 | - array('name'=>'current_user_only', 'label'=>'LBL_CURRENT_USER_FILTER', 'type'=>'bool'), |
|
48 | + 'basic_search' => array( |
|
49 | + array('name'=>'search_name','label' =>'LBL_NAME', 'type' => 'name'), |
|
50 | + array('name'=>'current_user_only', 'label'=>'LBL_CURRENT_USER_FILTER', 'type'=>'bool'), |
|
51 | 51 | |
52 | - ), |
|
53 | - 'advanced_search' => array( |
|
54 | - 'first_name', |
|
55 | - 'last_name', |
|
56 | - array('name' => 'phone', 'label' =>'LBL_ANY_PHONE', 'type' => 'name'), |
|
57 | - array('name' => 'email', 'label' =>'LBL_ANY_EMAIL', 'type' => 'name'), |
|
58 | - 'assistant', |
|
59 | - 'do_not_call', |
|
60 | - array('name' => 'address_street', 'label'=>'LBL_ANY_ADDRESS', 'type' => 'name'), |
|
61 | - array('name' => 'address_state', 'label' =>'LBL_STATE', 'type' => 'name'), |
|
62 | - array('name' => 'address_postalcode', 'label' =>'LBL_POSTAL_CODE', 'type' => 'name'), |
|
63 | - array('name' => 'primary_address_country', 'label' =>'LBL_COUNTRY', 'type' => 'name', 'options' => 'countries_dom', ), |
|
64 | - array('name' => 'assigned_user_id', 'type' => 'enum', 'label' => 'LBL_ASSIGNED_TO', 'function' => array('name' => 'get_user_array', 'params' => array(false))), |
|
52 | + ), |
|
53 | + 'advanced_search' => array( |
|
54 | + 'first_name', |
|
55 | + 'last_name', |
|
56 | + array('name' => 'phone', 'label' =>'LBL_ANY_PHONE', 'type' => 'name'), |
|
57 | + array('name' => 'email', 'label' =>'LBL_ANY_EMAIL', 'type' => 'name'), |
|
58 | + 'assistant', |
|
59 | + 'do_not_call', |
|
60 | + array('name' => 'address_street', 'label'=>'LBL_ANY_ADDRESS', 'type' => 'name'), |
|
61 | + array('name' => 'address_state', 'label' =>'LBL_STATE', 'type' => 'name'), |
|
62 | + array('name' => 'address_postalcode', 'label' =>'LBL_POSTAL_CODE', 'type' => 'name'), |
|
63 | + array('name' => 'primary_address_country', 'label' =>'LBL_COUNTRY', 'type' => 'name', 'options' => 'countries_dom', ), |
|
64 | + array('name' => 'assigned_user_id', 'type' => 'enum', 'label' => 'LBL_ASSIGNED_TO', 'function' => array('name' => 'get_user_array', 'params' => array(false))), |
|
65 | 65 | |
66 | - ), |
|
67 | - ), |
|
68 | - ); |
|
66 | + ), |
|
67 | + ), |
|
68 | + ); |
|
69 | 69 | ?> |
@@ -46,7 +46,7 @@ discard block |
||
46 | 46 | ), |
47 | 47 | 'layout' => array( |
48 | 48 | 'basic_search' => array( |
49 | - array('name'=>'search_name','label' =>'LBL_NAME', 'type' => 'name'), |
|
49 | + array('name'=>'search_name', 'label' =>'LBL_NAME', 'type' => 'name'), |
|
50 | 50 | array('name'=>'current_user_only', 'label'=>'LBL_CURRENT_USER_FILTER', 'type'=>'bool'), |
51 | 51 | |
52 | 52 | ), |
@@ -60,7 +60,7 @@ discard block |
||
60 | 60 | array('name' => 'address_street', 'label'=>'LBL_ANY_ADDRESS', 'type' => 'name'), |
61 | 61 | array('name' => 'address_state', 'label' =>'LBL_STATE', 'type' => 'name'), |
62 | 62 | array('name' => 'address_postalcode', 'label' =>'LBL_POSTAL_CODE', 'type' => 'name'), |
63 | - array('name' => 'primary_address_country', 'label' =>'LBL_COUNTRY', 'type' => 'name', 'options' => 'countries_dom', ), |
|
63 | + array('name' => 'primary_address_country', 'label' =>'LBL_COUNTRY', 'type' => 'name', 'options' => 'countries_dom',), |
|
64 | 64 | array('name' => 'assigned_user_id', 'type' => 'enum', 'label' => 'LBL_ASSIGNED_TO', 'function' => array('name' => 'get_user_array', 'params' => array(false))), |
65 | 65 | |
66 | 66 | ), |
@@ -39,35 +39,35 @@ |
||
39 | 39 | ********************************************************************************/ |
40 | 40 | |
41 | 41 | $searchFields['Prospects'] = |
42 | - array ( |
|
43 | - 'first_name' => array( 'query_type'=>'default'), |
|
44 | - 'last_name'=> array('query_type'=>'default'), |
|
45 | - 'search_name'=> array('query_type'=>'default','db_field'=>array('first_name','last_name'),'force_unifiedsearch'=>true), |
|
46 | - 'do_not_call'=> array('query_type'=>'default', 'operator'=>'='), |
|
47 | - 'phone'=> array('query_type'=>'default','db_field'=>array('phone_mobile','phone_work','phone_other','phone_fax','phone_home')), |
|
48 | - 'email'=> array( |
|
49 | - 'query_type' => 'default', |
|
50 | - 'operator' => 'subquery', |
|
51 | - 'subquery' => 'SELECT eabr.bean_id FROM email_addr_bean_rel eabr JOIN email_addresses ea ON (ea.id = eabr.email_address_id) WHERE eabr.deleted=0 AND ea.email_address LIKE', |
|
52 | - 'db_field' => array( |
|
53 | - 'id', |
|
54 | - ), |
|
55 | - ), |
|
56 | - 'assistant'=> array('query_type'=>'default'), |
|
57 | - 'address_street'=> array('query_type'=>'default','db_field'=>array('primary_address_street','alt_address_street')), |
|
58 | - 'address_city'=> array('query_type'=>'default','db_field'=>array('primary_address_city','alt_address_city')), |
|
59 | - 'address_state'=> array('query_type'=>'default','db_field'=>array('primary_address_state','alt_address_state')), |
|
60 | - 'address_postalcode'=> array('query_type'=>'default','db_field'=>array('primary_address_postalcode','alt_address_postalcode')), |
|
61 | - 'address_country'=> array('query_type'=>'default','db_field'=>array('primary_address_country','alt_address_country')), |
|
62 | - 'current_user_only'=> array('query_type'=>'default','db_field'=>array('assigned_user_id'),'my_items'=>true, 'vname' => 'LBL_CURRENT_USER_FILTER', 'type' => 'bool'), |
|
63 | - 'assigned_user_id'=> array('query_type'=>'default'), |
|
64 | - //Range Search Support |
|
65 | - 'range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
66 | - 'start_range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
67 | - 'end_range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
68 | - 'range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
69 | - 'start_range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
70 | - 'end_range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
71 | - //Range Search Support |
|
72 | - ); |
|
42 | + array ( |
|
43 | + 'first_name' => array( 'query_type'=>'default'), |
|
44 | + 'last_name'=> array('query_type'=>'default'), |
|
45 | + 'search_name'=> array('query_type'=>'default','db_field'=>array('first_name','last_name'),'force_unifiedsearch'=>true), |
|
46 | + 'do_not_call'=> array('query_type'=>'default', 'operator'=>'='), |
|
47 | + 'phone'=> array('query_type'=>'default','db_field'=>array('phone_mobile','phone_work','phone_other','phone_fax','phone_home')), |
|
48 | + 'email'=> array( |
|
49 | + 'query_type' => 'default', |
|
50 | + 'operator' => 'subquery', |
|
51 | + 'subquery' => 'SELECT eabr.bean_id FROM email_addr_bean_rel eabr JOIN email_addresses ea ON (ea.id = eabr.email_address_id) WHERE eabr.deleted=0 AND ea.email_address LIKE', |
|
52 | + 'db_field' => array( |
|
53 | + 'id', |
|
54 | + ), |
|
55 | + ), |
|
56 | + 'assistant'=> array('query_type'=>'default'), |
|
57 | + 'address_street'=> array('query_type'=>'default','db_field'=>array('primary_address_street','alt_address_street')), |
|
58 | + 'address_city'=> array('query_type'=>'default','db_field'=>array('primary_address_city','alt_address_city')), |
|
59 | + 'address_state'=> array('query_type'=>'default','db_field'=>array('primary_address_state','alt_address_state')), |
|
60 | + 'address_postalcode'=> array('query_type'=>'default','db_field'=>array('primary_address_postalcode','alt_address_postalcode')), |
|
61 | + 'address_country'=> array('query_type'=>'default','db_field'=>array('primary_address_country','alt_address_country')), |
|
62 | + 'current_user_only'=> array('query_type'=>'default','db_field'=>array('assigned_user_id'),'my_items'=>true, 'vname' => 'LBL_CURRENT_USER_FILTER', 'type' => 'bool'), |
|
63 | + 'assigned_user_id'=> array('query_type'=>'default'), |
|
64 | + //Range Search Support |
|
65 | + 'range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
66 | + 'start_range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
67 | + 'end_range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
68 | + 'range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
69 | + 'start_range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
70 | + 'end_range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
71 | + //Range Search Support |
|
72 | + ); |
|
73 | 73 | ?> |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
3 | 3 | /********************************************************************************* |
4 | 4 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 5 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -39,12 +39,12 @@ discard block |
||
39 | 39 | ********************************************************************************/ |
40 | 40 | |
41 | 41 | $searchFields['Prospects'] = |
42 | - array ( |
|
43 | - 'first_name' => array( 'query_type'=>'default'), |
|
42 | + array( |
|
43 | + 'first_name' => array('query_type'=>'default'), |
|
44 | 44 | 'last_name'=> array('query_type'=>'default'), |
45 | - 'search_name'=> array('query_type'=>'default','db_field'=>array('first_name','last_name'),'force_unifiedsearch'=>true), |
|
45 | + 'search_name'=> array('query_type'=>'default', 'db_field'=>array('first_name', 'last_name'), 'force_unifiedsearch'=>true), |
|
46 | 46 | 'do_not_call'=> array('query_type'=>'default', 'operator'=>'='), |
47 | - 'phone'=> array('query_type'=>'default','db_field'=>array('phone_mobile','phone_work','phone_other','phone_fax','phone_home')), |
|
47 | + 'phone'=> array('query_type'=>'default', 'db_field'=>array('phone_mobile', 'phone_work', 'phone_other', 'phone_fax', 'phone_home')), |
|
48 | 48 | 'email'=> array( |
49 | 49 | 'query_type' => 'default', |
50 | 50 | 'operator' => 'subquery', |
@@ -54,20 +54,20 @@ discard block |
||
54 | 54 | ), |
55 | 55 | ), |
56 | 56 | 'assistant'=> array('query_type'=>'default'), |
57 | - 'address_street'=> array('query_type'=>'default','db_field'=>array('primary_address_street','alt_address_street')), |
|
58 | - 'address_city'=> array('query_type'=>'default','db_field'=>array('primary_address_city','alt_address_city')), |
|
59 | - 'address_state'=> array('query_type'=>'default','db_field'=>array('primary_address_state','alt_address_state')), |
|
60 | - 'address_postalcode'=> array('query_type'=>'default','db_field'=>array('primary_address_postalcode','alt_address_postalcode')), |
|
61 | - 'address_country'=> array('query_type'=>'default','db_field'=>array('primary_address_country','alt_address_country')), |
|
62 | - 'current_user_only'=> array('query_type'=>'default','db_field'=>array('assigned_user_id'),'my_items'=>true, 'vname' => 'LBL_CURRENT_USER_FILTER', 'type' => 'bool'), |
|
57 | + 'address_street'=> array('query_type'=>'default', 'db_field'=>array('primary_address_street', 'alt_address_street')), |
|
58 | + 'address_city'=> array('query_type'=>'default', 'db_field'=>array('primary_address_city', 'alt_address_city')), |
|
59 | + 'address_state'=> array('query_type'=>'default', 'db_field'=>array('primary_address_state', 'alt_address_state')), |
|
60 | + 'address_postalcode'=> array('query_type'=>'default', 'db_field'=>array('primary_address_postalcode', 'alt_address_postalcode')), |
|
61 | + 'address_country'=> array('query_type'=>'default', 'db_field'=>array('primary_address_country', 'alt_address_country')), |
|
62 | + 'current_user_only'=> array('query_type'=>'default', 'db_field'=>array('assigned_user_id'), 'my_items'=>true, 'vname' => 'LBL_CURRENT_USER_FILTER', 'type' => 'bool'), |
|
63 | 63 | 'assigned_user_id'=> array('query_type'=>'default'), |
64 | 64 | //Range Search Support |
65 | - 'range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
66 | - 'start_range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
67 | - 'end_range_date_entered' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
68 | - 'range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
69 | - 'start_range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
70 | - 'end_range_date_modified' => array ('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
65 | + 'range_date_entered' => array('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
66 | + 'start_range_date_entered' => array('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
67 | + 'end_range_date_entered' => array('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
68 | + 'range_date_modified' => array('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
69 | + 'start_range_date_modified' => array('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
70 | + 'end_range_date_modified' => array('query_type' => 'default', 'enable_range_search' => true, 'is_date_field' => true), |
|
71 | 71 | //Range Search Support |
72 | 72 | ); |
73 | 73 | ?> |
@@ -1,5 +1,7 @@ |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if(!defined('sugarEntry') || !sugarEntry) { |
|
3 | + die('Not A Valid Entry Point'); |
|
4 | +} |
|
3 | 5 | /********************************************************************************* |
4 | 6 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 7 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -39,188 +39,188 @@ |
||
39 | 39 | |
40 | 40 | $viewdefs ['Prospects'] = |
41 | 41 | array ( |
42 | - 'DetailView' => |
|
43 | - array ( |
|
42 | + 'DetailView' => |
|
43 | + array ( |
|
44 | 44 | 'templateMeta' => |
45 | 45 | array ( |
46 | - 'form' => |
|
47 | - array ( |
|
46 | + 'form' => |
|
47 | + array ( |
|
48 | 48 | 'buttons' => |
49 | 49 | array ( |
50 | - 0 => 'EDIT', |
|
51 | - 1 => 'DUPLICATE', |
|
52 | - 2 => 'DELETE', |
|
53 | - 3 => |
|
54 | - array ( |
|
50 | + 0 => 'EDIT', |
|
51 | + 1 => 'DUPLICATE', |
|
52 | + 2 => 'DELETE', |
|
53 | + 3 => |
|
54 | + array ( |
|
55 | 55 | 'customCode' => '<input title="{$MOD.LBL_CONVERT_BUTTON_TITLE}" class="button" onclick="this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Leads\';this.form.action.value=\'EditView\';" type="submit" name="CONVERT_LEAD_BTN" value="{$MOD.LBL_CONVERT_BUTTON_LABEL}"/>', |
56 | 56 | 'sugar_html' => |
57 | 57 | array ( |
58 | - 'type' => 'submit', |
|
59 | - 'value' => '{$MOD.LBL_CONVERT_BUTTON_LABEL}', |
|
60 | - 'htmlOptions' => |
|
61 | - array ( |
|
58 | + 'type' => 'submit', |
|
59 | + 'value' => '{$MOD.LBL_CONVERT_BUTTON_LABEL}', |
|
60 | + 'htmlOptions' => |
|
61 | + array ( |
|
62 | 62 | 'class' => 'button', |
63 | 63 | 'name' => 'CONVERT_LEAD_BTN', |
64 | 64 | 'id' => 'convert_target_button', |
65 | 65 | 'title' => '{$MOD.LBL_CONVERT_BUTTON_TITLE}', |
66 | 66 | 'onclick' => 'this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Leads\';this.form.action.value=\'EditView\';', |
67 | - ), |
|
67 | + ), |
|
68 | 68 | ), |
69 | - ), |
|
70 | - 4 => |
|
71 | - array ( |
|
69 | + ), |
|
70 | + 4 => |
|
71 | + array ( |
|
72 | 72 | 'customCode' => '<input title="{$APP.LBL_MANAGE_SUBSCRIPTIONS}" class="button" onclick="this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\'; this.form.action.value=\'Subscriptions\'; this.form.module.value=\'Campaigns\';" type="submit" name="Manage Subscriptions" value="{$APP.LBL_MANAGE_SUBSCRIPTIONS}"/>', |
73 | 73 | 'sugar_html' => |
74 | 74 | array ( |
75 | - 'type' => 'submit', |
|
76 | - 'value' => '{$APP.LBL_MANAGE_SUBSCRIPTIONS}', |
|
77 | - 'htmlOptions' => |
|
78 | - array ( |
|
75 | + 'type' => 'submit', |
|
76 | + 'value' => '{$APP.LBL_MANAGE_SUBSCRIPTIONS}', |
|
77 | + 'htmlOptions' => |
|
78 | + array ( |
|
79 | 79 | 'class' => 'button', |
80 | 80 | 'id' => 'manage_subscriptions_button', |
81 | 81 | 'name' => 'Manage Subscriptions', |
82 | 82 | 'title' => '{$APP.LBL_MANAGE_SUBSCRIPTIONS}', |
83 | 83 | 'onclick' => 'this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\'; this.form.action.value=\'Subscriptions\'; this.form.module.value=\'Campaigns\';', |
84 | - ), |
|
84 | + ), |
|
85 | + ), |
|
85 | 86 | ), |
86 | - ), |
|
87 | 87 | ), |
88 | 88 | 'hidden' => |
89 | 89 | array ( |
90 | - 0 => '<input type="hidden" name="prospect_id" value="{$fields.id.value}">', |
|
90 | + 0 => '<input type="hidden" name="prospect_id" value="{$fields.id.value}">', |
|
91 | 91 | ), |
92 | 92 | 'headerTpl' => 'modules/Prospects/tpls/DetailViewHeader.tpl', |
93 | - ), |
|
94 | - 'maxColumns' => '2', |
|
95 | - 'widths' => |
|
96 | - array ( |
|
93 | + ), |
|
94 | + 'maxColumns' => '2', |
|
95 | + 'widths' => |
|
96 | + array ( |
|
97 | 97 | 0 => |
98 | 98 | array ( |
99 | - 'label' => '10', |
|
100 | - 'field' => '30', |
|
99 | + 'label' => '10', |
|
100 | + 'field' => '30', |
|
101 | 101 | ), |
102 | 102 | 1 => |
103 | 103 | array ( |
104 | - 'label' => '10', |
|
105 | - 'field' => '30', |
|
104 | + 'label' => '10', |
|
105 | + 'field' => '30', |
|
106 | + ), |
|
106 | 107 | ), |
107 | - ), |
|
108 | - 'useTabs' => true, |
|
109 | - 'tabDefs' => |
|
110 | - array ( |
|
108 | + 'useTabs' => true, |
|
109 | + 'tabDefs' => |
|
110 | + array ( |
|
111 | 111 | 'LBL_PROSPECT_INFORMATION' => |
112 | 112 | array ( |
113 | - 'newTab' => true, |
|
114 | - 'panelDefault' => 'expanded', |
|
113 | + 'newTab' => true, |
|
114 | + 'panelDefault' => 'expanded', |
|
115 | 115 | ), |
116 | 116 | 'LBL_MORE_INFORMATION' => |
117 | 117 | array ( |
118 | - 'newTab' => true, |
|
119 | - 'panelDefault' => 'expanded', |
|
118 | + 'newTab' => true, |
|
119 | + 'panelDefault' => 'expanded', |
|
120 | 120 | ), |
121 | 121 | 'LBL_PANEL_ASSIGNMENT' => |
122 | 122 | array ( |
123 | - 'newTab' => true, |
|
124 | - 'panelDefault' => 'expanded', |
|
123 | + 'newTab' => true, |
|
124 | + 'panelDefault' => 'expanded', |
|
125 | + ), |
|
125 | 126 | ), |
126 | - ), |
|
127 | 127 | ), |
128 | 128 | 'panels' => |
129 | 129 | array ( |
130 | - 'lbl_prospect_information' => |
|
131 | - array ( |
|
130 | + 'lbl_prospect_information' => |
|
131 | + array ( |
|
132 | 132 | 0 => |
133 | 133 | array ( |
134 | - 0 => |
|
135 | - array ( |
|
134 | + 0 => |
|
135 | + array ( |
|
136 | 136 | 'name' => 'full_name', |
137 | - ), |
|
137 | + ), |
|
138 | 138 | ), |
139 | 139 | 1 => |
140 | 140 | array ( |
141 | - 0 => 'title', |
|
142 | - 1 => |
|
143 | - array ( |
|
141 | + 0 => 'title', |
|
142 | + 1 => |
|
143 | + array ( |
|
144 | 144 | 'name' => 'phone_work', |
145 | 145 | 'label' => 'LBL_OFFICE_PHONE', |
146 | - ), |
|
146 | + ), |
|
147 | 147 | ), |
148 | 148 | 2 => |
149 | 149 | array ( |
150 | - 0 => 'department', |
|
151 | - 1 => 'phone_mobile', |
|
150 | + 0 => 'department', |
|
151 | + 1 => 'phone_mobile', |
|
152 | 152 | ), |
153 | 153 | 3 => |
154 | 154 | array ( |
155 | - 0 => |
|
156 | - array ( |
|
155 | + 0 => |
|
156 | + array ( |
|
157 | 157 | 'name' => 'account_name', |
158 | - ), |
|
159 | - 1 => 'phone_fax', |
|
158 | + ), |
|
159 | + 1 => 'phone_fax', |
|
160 | 160 | ), |
161 | 161 | 4 => |
162 | 162 | array ( |
163 | - 0 => |
|
164 | - array ( |
|
163 | + 0 => |
|
164 | + array ( |
|
165 | 165 | 'name' => 'primary_address_street', |
166 | 166 | 'label' => 'LBL_PRIMARY_ADDRESS', |
167 | 167 | 'type' => 'address', |
168 | 168 | 'displayParams' => |
169 | 169 | array ( |
170 | - 'key' => 'primary', |
|
170 | + 'key' => 'primary', |
|
171 | + ), |
|
171 | 172 | ), |
172 | - ), |
|
173 | - 1 => |
|
174 | - array ( |
|
173 | + 1 => |
|
174 | + array ( |
|
175 | 175 | 'name' => 'alt_address_street', |
176 | 176 | 'label' => 'LBL_ALTERNATE_ADDRESS', |
177 | 177 | 'type' => 'address', |
178 | 178 | 'displayParams' => |
179 | 179 | array ( |
180 | - 'key' => 'alt', |
|
180 | + 'key' => 'alt', |
|
181 | + ), |
|
181 | 182 | ), |
182 | - ), |
|
183 | 183 | ), |
184 | 184 | 5 => |
185 | 185 | array ( |
186 | - 0 => 'email1', |
|
186 | + 0 => 'email1', |
|
187 | 187 | ), |
188 | 188 | 6 => |
189 | 189 | array ( |
190 | - 0 => 'description', |
|
190 | + 0 => 'description', |
|
191 | 191 | ), |
192 | 192 | 7 => |
193 | 193 | array ( |
194 | - 0 => 'assigned_user_name', |
|
194 | + 0 => 'assigned_user_name', |
|
195 | 195 | ), |
196 | - ), |
|
197 | - 'LBL_MORE_INFORMATION' => |
|
198 | - array ( |
|
196 | + ), |
|
197 | + 'LBL_MORE_INFORMATION' => |
|
198 | + array ( |
|
199 | 199 | 0 => |
200 | 200 | array ( |
201 | - 0 => 'email_opt_out', |
|
202 | - 1 => 'do_not_call', |
|
201 | + 0 => 'email_opt_out', |
|
202 | + 1 => 'do_not_call', |
|
203 | + ), |
|
203 | 204 | ), |
204 | - ), |
|
205 | - 'LBL_PANEL_ASSIGNMENT' => |
|
206 | - array ( |
|
205 | + 'LBL_PANEL_ASSIGNMENT' => |
|
206 | + array ( |
|
207 | 207 | 0 => |
208 | 208 | array ( |
209 | - 0 => |
|
210 | - array ( |
|
209 | + 0 => |
|
210 | + array ( |
|
211 | 211 | 'name' => 'modified_by_name', |
212 | 212 | 'customCode' => '{$fields.date_modified.value} {$APP.LBL_BY} {$fields.modified_by_name.value} ', |
213 | 213 | 'label' => 'LBL_DATE_MODIFIED', |
214 | - ), |
|
215 | - 1 => |
|
216 | - array ( |
|
214 | + ), |
|
215 | + 1 => |
|
216 | + array ( |
|
217 | 217 | 'name' => 'created_by_name', |
218 | 218 | 'customCode' => '{$fields.date_entered.value} {$APP.LBL_BY} {$fields.created_by_name.value} ', |
219 | 219 | 'label' => 'LBL_DATE_ENTERED', |
220 | - ), |
|
220 | + ), |
|
221 | 221 | ), |
222 | - ), |
|
222 | + ), |
|
223 | + ), |
|
223 | 224 | ), |
224 | - ), |
|
225 | 225 | ); |
226 | 226 | ?> |
@@ -38,27 +38,27 @@ discard block |
||
38 | 38 | ********************************************************************************/ |
39 | 39 | |
40 | 40 | $viewdefs ['Prospects'] = |
41 | -array ( |
|
41 | +array( |
|
42 | 42 | 'DetailView' => |
43 | - array ( |
|
43 | + array( |
|
44 | 44 | 'templateMeta' => |
45 | - array ( |
|
45 | + array( |
|
46 | 46 | 'form' => |
47 | - array ( |
|
47 | + array( |
|
48 | 48 | 'buttons' => |
49 | - array ( |
|
49 | + array( |
|
50 | 50 | 0 => 'EDIT', |
51 | 51 | 1 => 'DUPLICATE', |
52 | 52 | 2 => 'DELETE', |
53 | 53 | 3 => |
54 | - array ( |
|
54 | + array( |
|
55 | 55 | 'customCode' => '<input title="{$MOD.LBL_CONVERT_BUTTON_TITLE}" class="button" onclick="this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Leads\';this.form.action.value=\'EditView\';" type="submit" name="CONVERT_LEAD_BTN" value="{$MOD.LBL_CONVERT_BUTTON_LABEL}"/>', |
56 | 56 | 'sugar_html' => |
57 | - array ( |
|
57 | + array( |
|
58 | 58 | 'type' => 'submit', |
59 | 59 | 'value' => '{$MOD.LBL_CONVERT_BUTTON_LABEL}', |
60 | 60 | 'htmlOptions' => |
61 | - array ( |
|
61 | + array( |
|
62 | 62 | 'class' => 'button', |
63 | 63 | 'name' => 'CONVERT_LEAD_BTN', |
64 | 64 | 'id' => 'convert_target_button', |
@@ -68,14 +68,14 @@ discard block |
||
68 | 68 | ), |
69 | 69 | ), |
70 | 70 | 4 => |
71 | - array ( |
|
71 | + array( |
|
72 | 72 | 'customCode' => '<input title="{$APP.LBL_MANAGE_SUBSCRIPTIONS}" class="button" onclick="this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\'; this.form.action.value=\'Subscriptions\'; this.form.module.value=\'Campaigns\';" type="submit" name="Manage Subscriptions" value="{$APP.LBL_MANAGE_SUBSCRIPTIONS}"/>', |
73 | 73 | 'sugar_html' => |
74 | - array ( |
|
74 | + array( |
|
75 | 75 | 'type' => 'submit', |
76 | 76 | 'value' => '{$APP.LBL_MANAGE_SUBSCRIPTIONS}', |
77 | 77 | 'htmlOptions' => |
78 | - array ( |
|
78 | + array( |
|
79 | 79 | 'class' => 'button', |
80 | 80 | 'id' => 'manage_subscriptions_button', |
81 | 81 | 'name' => 'Manage Subscriptions', |
@@ -86,134 +86,134 @@ discard block |
||
86 | 86 | ), |
87 | 87 | ), |
88 | 88 | 'hidden' => |
89 | - array ( |
|
89 | + array( |
|
90 | 90 | 0 => '<input type="hidden" name="prospect_id" value="{$fields.id.value}">', |
91 | 91 | ), |
92 | 92 | 'headerTpl' => 'modules/Prospects/tpls/DetailViewHeader.tpl', |
93 | 93 | ), |
94 | 94 | 'maxColumns' => '2', |
95 | 95 | 'widths' => |
96 | - array ( |
|
96 | + array( |
|
97 | 97 | 0 => |
98 | - array ( |
|
98 | + array( |
|
99 | 99 | 'label' => '10', |
100 | 100 | 'field' => '30', |
101 | 101 | ), |
102 | 102 | 1 => |
103 | - array ( |
|
103 | + array( |
|
104 | 104 | 'label' => '10', |
105 | 105 | 'field' => '30', |
106 | 106 | ), |
107 | 107 | ), |
108 | 108 | 'useTabs' => true, |
109 | 109 | 'tabDefs' => |
110 | - array ( |
|
110 | + array( |
|
111 | 111 | 'LBL_PROSPECT_INFORMATION' => |
112 | - array ( |
|
112 | + array( |
|
113 | 113 | 'newTab' => true, |
114 | 114 | 'panelDefault' => 'expanded', |
115 | 115 | ), |
116 | 116 | 'LBL_MORE_INFORMATION' => |
117 | - array ( |
|
117 | + array( |
|
118 | 118 | 'newTab' => true, |
119 | 119 | 'panelDefault' => 'expanded', |
120 | 120 | ), |
121 | 121 | 'LBL_PANEL_ASSIGNMENT' => |
122 | - array ( |
|
122 | + array( |
|
123 | 123 | 'newTab' => true, |
124 | 124 | 'panelDefault' => 'expanded', |
125 | 125 | ), |
126 | 126 | ), |
127 | 127 | ), |
128 | 128 | 'panels' => |
129 | - array ( |
|
129 | + array( |
|
130 | 130 | 'lbl_prospect_information' => |
131 | - array ( |
|
131 | + array( |
|
132 | 132 | 0 => |
133 | - array ( |
|
133 | + array( |
|
134 | 134 | 0 => |
135 | - array ( |
|
135 | + array( |
|
136 | 136 | 'name' => 'full_name', |
137 | 137 | ), |
138 | 138 | ), |
139 | 139 | 1 => |
140 | - array ( |
|
140 | + array( |
|
141 | 141 | 0 => 'title', |
142 | 142 | 1 => |
143 | - array ( |
|
143 | + array( |
|
144 | 144 | 'name' => 'phone_work', |
145 | 145 | 'label' => 'LBL_OFFICE_PHONE', |
146 | 146 | ), |
147 | 147 | ), |
148 | 148 | 2 => |
149 | - array ( |
|
149 | + array( |
|
150 | 150 | 0 => 'department', |
151 | 151 | 1 => 'phone_mobile', |
152 | 152 | ), |
153 | 153 | 3 => |
154 | - array ( |
|
154 | + array( |
|
155 | 155 | 0 => |
156 | - array ( |
|
156 | + array( |
|
157 | 157 | 'name' => 'account_name', |
158 | 158 | ), |
159 | 159 | 1 => 'phone_fax', |
160 | 160 | ), |
161 | 161 | 4 => |
162 | - array ( |
|
162 | + array( |
|
163 | 163 | 0 => |
164 | - array ( |
|
164 | + array( |
|
165 | 165 | 'name' => 'primary_address_street', |
166 | 166 | 'label' => 'LBL_PRIMARY_ADDRESS', |
167 | 167 | 'type' => 'address', |
168 | 168 | 'displayParams' => |
169 | - array ( |
|
169 | + array( |
|
170 | 170 | 'key' => 'primary', |
171 | 171 | ), |
172 | 172 | ), |
173 | 173 | 1 => |
174 | - array ( |
|
174 | + array( |
|
175 | 175 | 'name' => 'alt_address_street', |
176 | 176 | 'label' => 'LBL_ALTERNATE_ADDRESS', |
177 | 177 | 'type' => 'address', |
178 | 178 | 'displayParams' => |
179 | - array ( |
|
179 | + array( |
|
180 | 180 | 'key' => 'alt', |
181 | 181 | ), |
182 | 182 | ), |
183 | 183 | ), |
184 | 184 | 5 => |
185 | - array ( |
|
185 | + array( |
|
186 | 186 | 0 => 'email1', |
187 | 187 | ), |
188 | 188 | 6 => |
189 | - array ( |
|
189 | + array( |
|
190 | 190 | 0 => 'description', |
191 | 191 | ), |
192 | 192 | 7 => |
193 | - array ( |
|
193 | + array( |
|
194 | 194 | 0 => 'assigned_user_name', |
195 | 195 | ), |
196 | 196 | ), |
197 | 197 | 'LBL_MORE_INFORMATION' => |
198 | - array ( |
|
198 | + array( |
|
199 | 199 | 0 => |
200 | - array ( |
|
200 | + array( |
|
201 | 201 | 0 => 'email_opt_out', |
202 | 202 | 1 => 'do_not_call', |
203 | 203 | ), |
204 | 204 | ), |
205 | 205 | 'LBL_PANEL_ASSIGNMENT' => |
206 | - array ( |
|
206 | + array( |
|
207 | 207 | 0 => |
208 | - array ( |
|
208 | + array( |
|
209 | 209 | 0 => |
210 | - array ( |
|
210 | + array( |
|
211 | 211 | 'name' => 'modified_by_name', |
212 | 212 | 'customCode' => '{$fields.date_modified.value} {$APP.LBL_BY} {$fields.modified_by_name.value} ', |
213 | 213 | 'label' => 'LBL_DATE_MODIFIED', |
214 | 214 | ), |
215 | 215 | 1 => |
216 | - array ( |
|
216 | + array( |
|
217 | 217 | 'name' => 'created_by_name', |
218 | 218 | 'customCode' => '{$fields.date_entered.value} {$APP.LBL_BY} {$fields.created_by_name.value} ', |
219 | 219 | 'label' => 'LBL_DATE_ENTERED', |
@@ -46,121 +46,121 @@ |
||
46 | 46 | ********************************************************************************/ |
47 | 47 | |
48 | 48 | $viewdefs = array ( |
49 | - 'Prospects' => |
|
50 | - array ( |
|
49 | + 'Prospects' => |
|
50 | + array ( |
|
51 | 51 | 'QuickCreate' => |
52 | 52 | array ( |
53 | - 'templateMeta' => |
|
54 | - array ( |
|
53 | + 'templateMeta' => |
|
54 | + array ( |
|
55 | 55 | 'maxColumns' => '2', |
56 | 56 | 'widths' => |
57 | 57 | array ( |
58 | - 0 => |
|
59 | - array ( |
|
58 | + 0 => |
|
59 | + array ( |
|
60 | 60 | 'label' => '10', |
61 | 61 | 'field' => '30', |
62 | - ), |
|
63 | - 1 => |
|
64 | - array ( |
|
62 | + ), |
|
63 | + 1 => |
|
64 | + array ( |
|
65 | 65 | 'label' => '10', |
66 | 66 | 'field' => '30', |
67 | - ), |
|
67 | + ), |
|
68 | 68 | ), |
69 | - ), |
|
70 | - 'panels' => |
|
71 | - array ( |
|
69 | + ), |
|
70 | + 'panels' => |
|
71 | + array ( |
|
72 | 72 | 'LBL_PROSPECT_INFORMATION' => |
73 | 73 | array ( |
74 | - 0 => |
|
75 | - array ( |
|
76 | 74 | 0 => |
77 | 75 | array ( |
78 | - 'name' => 'first_name', |
|
76 | + 0 => |
|
77 | + array ( |
|
78 | + 'name' => 'first_name', |
|
79 | 79 | ), |
80 | 80 | 1 => |
81 | 81 | array ( |
82 | - 'name' => 'phone_work', |
|
82 | + 'name' => 'phone_work', |
|
83 | 83 | ), |
84 | - ), |
|
85 | - 1 => |
|
86 | - array ( |
|
84 | + ), |
|
85 | + 1 => |
|
86 | + array ( |
|
87 | 87 | 0 => |
88 | 88 | array ( |
89 | - 'name' => 'last_name', |
|
90 | - 'displayParams'=>array('required'=>true) |
|
89 | + 'name' => 'last_name', |
|
90 | + 'displayParams'=>array('required'=>true) |
|
91 | 91 | ), |
92 | 92 | 1 => |
93 | 93 | array ( |
94 | - 'name' => 'phone_mobile', |
|
94 | + 'name' => 'phone_mobile', |
|
95 | + ), |
|
95 | 96 | ), |
96 | - ), |
|
97 | - 2 => |
|
98 | - array ( |
|
97 | + 2 => |
|
98 | + array ( |
|
99 | 99 | 0 => |
100 | 100 | array ( |
101 | - 'name' => 'account_name', |
|
101 | + 'name' => 'account_name', |
|
102 | 102 | ), |
103 | 103 | 1 => |
104 | 104 | array ( |
105 | - 'name' => 'phone_fax', |
|
105 | + 'name' => 'phone_fax', |
|
106 | + ), |
|
106 | 107 | ), |
107 | - ), |
|
108 | - 3 => |
|
109 | - array ( |
|
108 | + 3 => |
|
109 | + array ( |
|
110 | 110 | 0 => |
111 | 111 | array ( |
112 | - 'name' => 'title', |
|
112 | + 'name' => 'title', |
|
113 | 113 | ), |
114 | 114 | 1 => |
115 | 115 | array ( |
116 | - 'name' => 'department', |
|
116 | + 'name' => 'department', |
|
117 | + ), |
|
117 | 118 | ), |
118 | - ), |
|
119 | - 4 => |
|
120 | - array ( |
|
119 | + 4 => |
|
120 | + array ( |
|
121 | 121 | 0 => |
122 | 122 | array ( |
123 | - 'name' => 'team_name', |
|
123 | + 'name' => 'team_name', |
|
124 | 124 | ), |
125 | 125 | 1 => |
126 | 126 | array ( |
127 | - 'name' => 'do_not_call', |
|
127 | + 'name' => 'do_not_call', |
|
128 | + ), |
|
128 | 129 | ), |
129 | - ), |
|
130 | - 5 => |
|
131 | - array ( |
|
130 | + 5 => |
|
131 | + array ( |
|
132 | 132 | 0 => |
133 | 133 | array ( |
134 | - 'name' => 'assigned_user_name', |
|
134 | + 'name' => 'assigned_user_name', |
|
135 | + ), |
|
135 | 136 | ), |
136 | - ), |
|
137 | 137 | ), |
138 | 138 | 'lbl_email_addresses' => |
139 | 139 | array ( |
140 | - 0 => |
|
141 | - array ( |
|
142 | 140 | 0 => |
143 | 141 | array ( |
144 | - 'name' => 'email1', |
|
142 | + 0 => |
|
143 | + array ( |
|
144 | + 'name' => 'email1', |
|
145 | + ), |
|
145 | 146 | ), |
146 | - ), |
|
147 | 147 | ), |
148 | 148 | 'LBL_ADDRESS_INFORMATION' => |
149 | 149 | array ( |
150 | - 0 => |
|
151 | - array ( |
|
152 | 150 | 0 => |
153 | 151 | array ( |
154 | - 'name' => 'primary_address_street', |
|
152 | + 0 => |
|
153 | + array ( |
|
154 | + 'name' => 'primary_address_street', |
|
155 | 155 | ), |
156 | 156 | 1 => |
157 | 157 | array ( |
158 | - 'name' => 'alt_address_street', |
|
158 | + 'name' => 'alt_address_street', |
|
159 | + ), |
|
159 | 160 | ), |
160 | - ), |
|
161 | 161 | ), |
162 | - ), |
|
162 | + ), |
|
163 | + ), |
|
163 | 164 | ), |
164 | - ), |
|
165 | 165 | ); |
166 | 166 | ?> |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
3 | 3 | /********************************************************************************* |
4 | 4 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 5 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -45,116 +45,116 @@ discard block |
||
45 | 45 | * Contributor(s): ______________________________________.. |
46 | 46 | ********************************************************************************/ |
47 | 47 | |
48 | -$viewdefs = array ( |
|
48 | +$viewdefs = array( |
|
49 | 49 | 'Prospects' => |
50 | - array ( |
|
50 | + array( |
|
51 | 51 | 'QuickCreate' => |
52 | - array ( |
|
52 | + array( |
|
53 | 53 | 'templateMeta' => |
54 | - array ( |
|
54 | + array( |
|
55 | 55 | 'maxColumns' => '2', |
56 | 56 | 'widths' => |
57 | - array ( |
|
57 | + array( |
|
58 | 58 | 0 => |
59 | - array ( |
|
59 | + array( |
|
60 | 60 | 'label' => '10', |
61 | 61 | 'field' => '30', |
62 | 62 | ), |
63 | 63 | 1 => |
64 | - array ( |
|
64 | + array( |
|
65 | 65 | 'label' => '10', |
66 | 66 | 'field' => '30', |
67 | 67 | ), |
68 | 68 | ), |
69 | 69 | ), |
70 | 70 | 'panels' => |
71 | - array ( |
|
71 | + array( |
|
72 | 72 | 'LBL_PROSPECT_INFORMATION' => |
73 | - array ( |
|
73 | + array( |
|
74 | 74 | 0 => |
75 | - array ( |
|
75 | + array( |
|
76 | 76 | 0 => |
77 | - array ( |
|
77 | + array( |
|
78 | 78 | 'name' => 'first_name', |
79 | 79 | ), |
80 | 80 | 1 => |
81 | - array ( |
|
81 | + array( |
|
82 | 82 | 'name' => 'phone_work', |
83 | 83 | ), |
84 | 84 | ), |
85 | 85 | 1 => |
86 | - array ( |
|
86 | + array( |
|
87 | 87 | 0 => |
88 | - array ( |
|
88 | + array( |
|
89 | 89 | 'name' => 'last_name', |
90 | 90 | 'displayParams'=>array('required'=>true) |
91 | 91 | ), |
92 | 92 | 1 => |
93 | - array ( |
|
93 | + array( |
|
94 | 94 | 'name' => 'phone_mobile', |
95 | 95 | ), |
96 | 96 | ), |
97 | 97 | 2 => |
98 | - array ( |
|
98 | + array( |
|
99 | 99 | 0 => |
100 | - array ( |
|
100 | + array( |
|
101 | 101 | 'name' => 'account_name', |
102 | 102 | ), |
103 | 103 | 1 => |
104 | - array ( |
|
104 | + array( |
|
105 | 105 | 'name' => 'phone_fax', |
106 | 106 | ), |
107 | 107 | ), |
108 | 108 | 3 => |
109 | - array ( |
|
109 | + array( |
|
110 | 110 | 0 => |
111 | - array ( |
|
111 | + array( |
|
112 | 112 | 'name' => 'title', |
113 | 113 | ), |
114 | 114 | 1 => |
115 | - array ( |
|
115 | + array( |
|
116 | 116 | 'name' => 'department', |
117 | 117 | ), |
118 | 118 | ), |
119 | 119 | 4 => |
120 | - array ( |
|
120 | + array( |
|
121 | 121 | 0 => |
122 | - array ( |
|
122 | + array( |
|
123 | 123 | 'name' => 'team_name', |
124 | 124 | ), |
125 | 125 | 1 => |
126 | - array ( |
|
126 | + array( |
|
127 | 127 | 'name' => 'do_not_call', |
128 | 128 | ), |
129 | 129 | ), |
130 | 130 | 5 => |
131 | - array ( |
|
131 | + array( |
|
132 | 132 | 0 => |
133 | - array ( |
|
133 | + array( |
|
134 | 134 | 'name' => 'assigned_user_name', |
135 | 135 | ), |
136 | 136 | ), |
137 | 137 | ), |
138 | 138 | 'lbl_email_addresses' => |
139 | - array ( |
|
139 | + array( |
|
140 | 140 | 0 => |
141 | - array ( |
|
141 | + array( |
|
142 | 142 | 0 => |
143 | - array ( |
|
143 | + array( |
|
144 | 144 | 'name' => 'email1', |
145 | 145 | ), |
146 | 146 | ), |
147 | 147 | ), |
148 | 148 | 'LBL_ADDRESS_INFORMATION' => |
149 | - array ( |
|
149 | + array( |
|
150 | 150 | 0 => |
151 | - array ( |
|
151 | + array( |
|
152 | 152 | 0 => |
153 | - array ( |
|
153 | + array( |
|
154 | 154 | 'name' => 'primary_address_street', |
155 | 155 | ), |
156 | 156 | 1 => |
157 | - array ( |
|
157 | + array( |
|
158 | 158 | 'name' => 'alt_address_street', |
159 | 159 | ), |
160 | 160 | ), |
@@ -1,5 +1,7 @@ |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if(!defined('sugarEntry') || !sugarEntry) { |
|
3 | + die('Not A Valid Entry Point'); |
|
4 | +} |
|
3 | 5 | /********************************************************************************* |
4 | 6 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 7 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -42,10 +42,10 @@ discard block |
||
42 | 42 | |
43 | 43 | |
44 | 44 | $listViewDefs['Prospects'] = array( |
45 | - 'FULL_NAME' => array( |
|
46 | - 'width' => '20', |
|
47 | - 'label' => 'LBL_LIST_NAME', |
|
48 | - 'link' => true, |
|
45 | + 'FULL_NAME' => array( |
|
46 | + 'width' => '20', |
|
47 | + 'label' => 'LBL_LIST_NAME', |
|
48 | + 'link' => true, |
|
49 | 49 | 'related_fields' => array('first_name', 'last_name'), |
50 | 50 | 'orderBy' => 'last_name', |
51 | 51 | 'default' => true), |
@@ -65,11 +65,11 @@ discard block |
||
65 | 65 | 'label' => 'LBL_LIST_PHONE', |
66 | 66 | 'link' => false, |
67 | 67 | 'default' => true), |
68 | - 'DATE_ENTERED' => array ( |
|
69 | - 'type' => 'datetime', |
|
70 | - 'label' => 'LBL_DATE_ENTERED', |
|
71 | - 'width' => '10', |
|
72 | - 'default' => true, |
|
73 | - ), |
|
68 | + 'DATE_ENTERED' => array ( |
|
69 | + 'type' => 'datetime', |
|
70 | + 'label' => 'LBL_DATE_ENTERED', |
|
71 | + 'width' => '10', |
|
72 | + 'default' => true, |
|
73 | + ), |
|
74 | 74 | ); |
75 | 75 | ?> |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
3 | 3 | /********************************************************************************* |
4 | 4 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 5 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -101,7 +101,7 @@ discard block |
||
101 | 101 | 'label' => 'LBL_LIST_STATUS', |
102 | 102 | 'link' => false, |
103 | 103 | 'default' => false), |
104 | - 'DATE_ENTERED' => array ( |
|
104 | + 'DATE_ENTERED' => array( |
|
105 | 105 | 'width' => '10', |
106 | 106 | 'label' => 'LBL_DATE_ENTERED', |
107 | 107 | 'default' => true), |
@@ -1,5 +1,7 @@ |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if(!defined('sugarEntry') || !sugarEntry) { |
|
3 | + die('Not A Valid Entry Point'); |
|
4 | +} |
|
3 | 5 | /********************************************************************************* |
4 | 6 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 7 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -37,9 +37,9 @@ discard block |
||
37 | 37 | * display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM". |
38 | 38 | ********************************************************************************/ |
39 | 39 | |
40 | -$dictionary['Reminder']['table']= 'reminders'; |
|
41 | -$dictionary['Reminder']['audited']= false; |
|
42 | -$dictionary['Reminder']['fields']= array( |
|
40 | +$dictionary['Reminder']['table'] = 'reminders'; |
|
41 | +$dictionary['Reminder']['audited'] = false; |
|
42 | +$dictionary['Reminder']['fields'] = array( |
|
43 | 43 | 'popup' => array( |
44 | 44 | 'name' => 'popup', |
45 | 45 | 'vname' => 'LBL_POPUP', |
@@ -102,9 +102,9 @@ discard block |
||
102 | 102 | ); |
103 | 103 | |
104 | 104 | |
105 | -if (!class_exists('VardefManager')){ |
|
105 | +if (!class_exists('VardefManager')) { |
|
106 | 106 | require_once('include/SugarObjects/VardefManager.php'); |
107 | 107 | } |
108 | -VardefManager::createVardef('Reminders','Reminder', array('basic','assignable')); |
|
108 | +VardefManager::createVardef('Reminders', 'Reminder', array('basic', 'assignable')); |
|
109 | 109 | |
110 | 110 | ?> |
111 | 111 | \ No newline at end of file |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | */ |
44 | 44 | class Reminder extends Basic { |
45 | 45 | |
46 | - const UPGRADE_VERSION = '7.4.3'; |
|
46 | + const UPGRADE_VERSION = '7.4.3'; |
|
47 | 47 | |
48 | 48 | var $name; |
49 | 49 | |
@@ -51,19 +51,19 @@ discard block |
||
51 | 51 | var $module_dir = 'Reminders'; |
52 | 52 | var $object_name = 'Reminder'; |
53 | 53 | var $table_name = 'reminders'; |
54 | - var $tracker_visibility = false; |
|
54 | + var $tracker_visibility = false; |
|
55 | 55 | var $importable = false; |
56 | 56 | var $disable_row_level_security = true; |
57 | 57 | |
58 | 58 | var $popup; |
59 | 59 | var $email; |
60 | 60 | var $email_sent = false; |
61 | - var $timer_popup; |
|
62 | - var $timer_email; |
|
63 | - var $related_event_module; |
|
64 | - var $related_event_module_id; |
|
61 | + var $timer_popup; |
|
62 | + var $timer_email; |
|
63 | + var $related_event_module; |
|
64 | + var $related_event_module_id; |
|
65 | 65 | |
66 | - private static $remindersData = array(); |
|
66 | + private static $remindersData = array(); |
|
67 | 67 | |
68 | 68 | public function __construct() { |
69 | 69 | parent::Basic(); |
@@ -76,17 +76,17 @@ discard block |
||
76 | 76 | return false; |
77 | 77 | } |
78 | 78 | |
79 | - // ---- save and load remainders on EditViews |
|
79 | + // ---- save and load remainders on EditViews |
|
80 | 80 | |
81 | - /** |
|
82 | - * Save multiple reminders data from clients Meetings/Calls EditView. |
|
83 | - * Call this static function in save action. |
|
84 | - * |
|
85 | - * @param string $eventModule Event Bean module name (e.g. Meetings, Calls) |
|
86 | - * @param string $eventModuleId Event Bean GUID |
|
87 | - * @param string $remindersDataJson Remainders data as Json string from POST data. |
|
88 | - * @throws Exception throw an Exception if json format is invalid. |
|
89 | - */ |
|
81 | + /** |
|
82 | + * Save multiple reminders data from clients Meetings/Calls EditView. |
|
83 | + * Call this static function in save action. |
|
84 | + * |
|
85 | + * @param string $eventModule Event Bean module name (e.g. Meetings, Calls) |
|
86 | + * @param string $eventModuleId Event Bean GUID |
|
87 | + * @param string $remindersDataJson Remainders data as Json string from POST data. |
|
88 | + * @throws Exception throw an Exception if json format is invalid. |
|
89 | + */ |
|
90 | 90 | public static function saveRemindersDataJson($eventModule, $eventModuleId, $remindersDataJson) { |
91 | 91 | $reminderData = json_decode($remindersDataJson); |
92 | 92 | if(!json_last_error()) { |
@@ -100,7 +100,7 @@ discard block |
||
100 | 100 | private static function saveRemindersData($eventModule, $eventModuleId, $remindersData) { |
101 | 101 | $savedReminderIds = array(); |
102 | 102 | foreach($remindersData as $reminderData) { |
103 | - if(isset($_POST['isDuplicate']) && $_POST['isDuplicate']) $reminderData->id = ''; |
|
103 | + if(isset($_POST['isDuplicate']) && $_POST['isDuplicate']) $reminderData->id = ''; |
|
104 | 104 | $reminderBean = BeanFactory::getBean('Reminders', $reminderData->id); |
105 | 105 | $reminderBean->popup = $reminderData->popup; |
106 | 106 | $reminderBean->email = $reminderData->email; |
@@ -123,18 +123,18 @@ discard block |
||
123 | 123 | } |
124 | 124 | } |
125 | 125 | } |
126 | - unset(self::$remindersData[$eventModule][$eventModuleId]); |
|
126 | + unset(self::$remindersData[$eventModule][$eventModuleId]); |
|
127 | 127 | } |
128 | 128 | |
129 | - /** |
|
130 | - * Load multiple reminders JSON data for related Event module EditViews. |
|
131 | - * Call this function in module display function. |
|
132 | - * |
|
133 | - * @param string $eventModule Related event module name (Meetings/Calls) |
|
134 | - * @param string $eventModuleId Related event GUID |
|
135 | - * @return string JSON string contains the remainders |
|
136 | - * @throws Exception |
|
137 | - */ |
|
129 | + /** |
|
130 | + * Load multiple reminders JSON data for related Event module EditViews. |
|
131 | + * Call this function in module display function. |
|
132 | + * |
|
133 | + * @param string $eventModule Related event module name (Meetings/Calls) |
|
134 | + * @param string $eventModuleId Related event GUID |
|
135 | + * @return string JSON string contains the remainders |
|
136 | + * @throws Exception |
|
137 | + */ |
|
138 | 138 | public static function loadRemindersDataJson($eventModule, $eventModuleId, $isDuplicate = false) { |
139 | 139 | $remindersData = self::loadRemindersData($eventModule, $eventModuleId, $isDuplicate); |
140 | 140 | $remindersDataJson = json_encode($remindersData); |
@@ -144,551 +144,551 @@ discard block |
||
144 | 144 | return $remindersDataJson; |
145 | 145 | } |
146 | 146 | |
147 | - /** |
|
148 | - * Load multiple reminders data for related Event module EditViews. |
|
149 | - * Call this function in module display function. |
|
150 | - * |
|
151 | - * @param string $eventModule Related event module name (Meetings/Calls) |
|
152 | - * @param string $eventModuleId Related event GUID |
|
153 | - * @return array contains the remainders |
|
154 | - * @throws Exception |
|
155 | - */ |
|
156 | - public static function loadRemindersData($eventModule, $eventModuleId, $isDuplicate = false) { |
|
157 | - if(!isset(self::$remindersData[$eventModule][$eventModuleId]) || !$eventModuleId || $isDuplicate) { |
|
158 | - $ret = array(); |
|
159 | - $reminders = BeanFactory::getBean('Reminders')->get_full_list("reminders.date_entered", "reminders.related_event_module = '$eventModule' AND reminders.related_event_module_id = '$eventModuleId'"); |
|
160 | - if ($reminders) { |
|
161 | - foreach ($reminders as $reminder) { |
|
162 | - $ret[] = array( |
|
163 | - 'id' => $isDuplicate ? null : $reminder->id, |
|
164 | - 'popup' => $reminder->popup, |
|
165 | - 'email' => $reminder->email, |
|
166 | - 'timer_popup' => $reminder->timer_popup, |
|
167 | - 'timer_email' => $reminder->timer_email, |
|
168 | - 'invitees' => Reminder_Invitee::loadRemindersInviteesData($reminder->id, $isDuplicate), |
|
169 | - ); |
|
170 | - } |
|
171 | - } |
|
172 | - self::$remindersData[$eventModule][$eventModuleId] = $ret; |
|
173 | - } |
|
174 | - return self::$remindersData[$eventModule][$eventModuleId]; |
|
175 | - } |
|
147 | + /** |
|
148 | + * Load multiple reminders data for related Event module EditViews. |
|
149 | + * Call this function in module display function. |
|
150 | + * |
|
151 | + * @param string $eventModule Related event module name (Meetings/Calls) |
|
152 | + * @param string $eventModuleId Related event GUID |
|
153 | + * @return array contains the remainders |
|
154 | + * @throws Exception |
|
155 | + */ |
|
156 | + public static function loadRemindersData($eventModule, $eventModuleId, $isDuplicate = false) { |
|
157 | + if(!isset(self::$remindersData[$eventModule][$eventModuleId]) || !$eventModuleId || $isDuplicate) { |
|
158 | + $ret = array(); |
|
159 | + $reminders = BeanFactory::getBean('Reminders')->get_full_list("reminders.date_entered", "reminders.related_event_module = '$eventModule' AND reminders.related_event_module_id = '$eventModuleId'"); |
|
160 | + if ($reminders) { |
|
161 | + foreach ($reminders as $reminder) { |
|
162 | + $ret[] = array( |
|
163 | + 'id' => $isDuplicate ? null : $reminder->id, |
|
164 | + 'popup' => $reminder->popup, |
|
165 | + 'email' => $reminder->email, |
|
166 | + 'timer_popup' => $reminder->timer_popup, |
|
167 | + 'timer_email' => $reminder->timer_email, |
|
168 | + 'invitees' => Reminder_Invitee::loadRemindersInviteesData($reminder->id, $isDuplicate), |
|
169 | + ); |
|
170 | + } |
|
171 | + } |
|
172 | + self::$remindersData[$eventModule][$eventModuleId] = $ret; |
|
173 | + } |
|
174 | + return self::$remindersData[$eventModule][$eventModuleId]; |
|
175 | + } |
|
176 | 176 | |
177 | - // ---- sending email reminders |
|
177 | + // ---- sending email reminders |
|
178 | 178 | |
179 | - /** |
|
180 | - * Sending multiple email reminders. |
|
181 | - * Call in EmainReminder and use original EmailRemainder class for sending. |
|
182 | - * |
|
183 | - * @param EmailReminder $emailReminder Caller EmailReminder |
|
184 | - * @param Administration $admin Administration module for EmailRemainder->sendReminders() function |
|
185 | - * @param boolean $checkDecline (optional) Send email if user accept status is not decline. Default is TRUE. |
|
186 | - */ |
|
187 | - public static function sendEmailReminders(EmailReminder $emailReminder, Administration $admin, $checkDecline = true) { |
|
179 | + /** |
|
180 | + * Sending multiple email reminders. |
|
181 | + * Call in EmainReminder and use original EmailRemainder class for sending. |
|
182 | + * |
|
183 | + * @param EmailReminder $emailReminder Caller EmailReminder |
|
184 | + * @param Administration $admin Administration module for EmailRemainder->sendReminders() function |
|
185 | + * @param boolean $checkDecline (optional) Send email if user accept status is not decline. Default is TRUE. |
|
186 | + */ |
|
187 | + public static function sendEmailReminders(EmailReminder $emailReminder, Administration $admin, $checkDecline = true) { |
|
188 | 188 | if($reminders = self::getUnsentEmailReminders()) { |
189 | 189 | foreach($reminders as $reminderId => $reminder) { |
190 | - $recipients = self::getEmailReminderInviteesRecipients($reminderId, $checkDecline); |
|
191 | - $eventBean = BeanFactory::getBean($reminder->related_event_module, $reminder->related_event_module_id); |
|
192 | - if ( $emailReminder->sendReminders($eventBean, $admin, $recipients) ) { |
|
193 | - $reminder->email_sent = 1; |
|
194 | - $reminder->save(); |
|
195 | - } |
|
190 | + $recipients = self::getEmailReminderInviteesRecipients($reminderId, $checkDecline); |
|
191 | + $eventBean = BeanFactory::getBean($reminder->related_event_module, $reminder->related_event_module_id); |
|
192 | + if ( $emailReminder->sendReminders($eventBean, $admin, $recipients) ) { |
|
193 | + $reminder->email_sent = 1; |
|
194 | + $reminder->save(); |
|
195 | + } |
|
196 | 196 | } |
197 | 197 | } |
198 | 198 | } |
199 | 199 | |
200 | - private static function getEmailReminderInviteesRecipients($reminderId, $checkDecline = true) { |
|
201 | - $emails = array(); |
|
202 | - $reminder = BeanFactory::getBean('Reminders', $reminderId); |
|
203 | - $eventModule = $reminder->related_event_module; |
|
204 | - $eventModuleId = $reminder->related_event_module_id; |
|
205 | - $event = BeanFactory::getBean($eventModule, $eventModuleId); |
|
206 | - if(!isset($event->status) || $event->status != 'Held') { |
|
207 | - $invitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', "reminders_invitees.reminder_id = '$reminderId'"); |
|
208 | - foreach($invitees as $invitee) { |
|
209 | - $inviteeModule = $invitee->related_invitee_module; |
|
210 | - $inviteeModuleId = $invitee->related_invitee_module_id; |
|
211 | - $personBean = BeanFactory::getBean($inviteeModule, $inviteeModuleId); |
|
212 | - // The original email reminders check the accept_status field in related users/leads/contacts etc. and filtered these users who not decline this event. |
|
213 | - if($checkDecline && !self::isDecline($event, $personBean)) { |
|
214 | - if ( !empty($personBean->email1) ) { |
|
215 | - $arr = array( |
|
216 | - 'type' => $inviteeModule, |
|
217 | - 'name' => $personBean->full_name, |
|
218 | - 'email' => $personBean->email1, |
|
219 | - ); |
|
220 | - $emails[] = $arr; |
|
221 | - } |
|
222 | - } |
|
223 | - } |
|
224 | - } |
|
225 | - return $emails; |
|
226 | - } |
|
200 | + private static function getEmailReminderInviteesRecipients($reminderId, $checkDecline = true) { |
|
201 | + $emails = array(); |
|
202 | + $reminder = BeanFactory::getBean('Reminders', $reminderId); |
|
203 | + $eventModule = $reminder->related_event_module; |
|
204 | + $eventModuleId = $reminder->related_event_module_id; |
|
205 | + $event = BeanFactory::getBean($eventModule, $eventModuleId); |
|
206 | + if(!isset($event->status) || $event->status != 'Held') { |
|
207 | + $invitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', "reminders_invitees.reminder_id = '$reminderId'"); |
|
208 | + foreach($invitees as $invitee) { |
|
209 | + $inviteeModule = $invitee->related_invitee_module; |
|
210 | + $inviteeModuleId = $invitee->related_invitee_module_id; |
|
211 | + $personBean = BeanFactory::getBean($inviteeModule, $inviteeModuleId); |
|
212 | + // The original email reminders check the accept_status field in related users/leads/contacts etc. and filtered these users who not decline this event. |
|
213 | + if($checkDecline && !self::isDecline($event, $personBean)) { |
|
214 | + if ( !empty($personBean->email1) ) { |
|
215 | + $arr = array( |
|
216 | + 'type' => $inviteeModule, |
|
217 | + 'name' => $personBean->full_name, |
|
218 | + 'email' => $personBean->email1, |
|
219 | + ); |
|
220 | + $emails[] = $arr; |
|
221 | + } |
|
222 | + } |
|
223 | + } |
|
224 | + } |
|
225 | + return $emails; |
|
226 | + } |
|
227 | 227 | |
228 | 228 | private static function getUnsentEmailReminders() { |
229 | 229 | global $db; |
230 | - $reminders = array(); |
|
231 | - $reminderBeans = BeanFactory::getBean('Reminders')->get_full_list('', "reminders.email = 1 AND reminders.email_sent = 0"); |
|
232 | - foreach($reminderBeans as $reminderBean) { |
|
233 | - $eventBean = BeanFactory::getBean($reminderBean->related_event_module, $reminderBean->related_event_module_id); |
|
234 | - $dateStart = $eventBean->date_start; |
|
235 | - $time = strtotime($db->fromConvert($dateStart,'datetime')); |
|
236 | - $dateStart = date(TimeDate::DB_DATETIME_FORMAT, $time); |
|
237 | - $remind_ts = $GLOBALS['timedate']->fromDb($db->fromConvert($dateStart,'datetime'))->modify("-{$reminderBean->timer_email} seconds")->ts; |
|
230 | + $reminders = array(); |
|
231 | + $reminderBeans = BeanFactory::getBean('Reminders')->get_full_list('', "reminders.email = 1 AND reminders.email_sent = 0"); |
|
232 | + foreach($reminderBeans as $reminderBean) { |
|
233 | + $eventBean = BeanFactory::getBean($reminderBean->related_event_module, $reminderBean->related_event_module_id); |
|
234 | + $dateStart = $eventBean->date_start; |
|
235 | + $time = strtotime($db->fromConvert($dateStart,'datetime')); |
|
236 | + $dateStart = date(TimeDate::DB_DATETIME_FORMAT, $time); |
|
237 | + $remind_ts = $GLOBALS['timedate']->fromDb($db->fromConvert($dateStart,'datetime'))->modify("-{$reminderBean->timer_email} seconds")->ts; |
|
238 | 238 | $now_ts = $GLOBALS['timedate']->getNow()->ts; |
239 | 239 | if ( $now_ts >= $remind_ts ) { |
240 | 240 | $reminders[$reminderBean->id] = $reminderBean; |
241 | 241 | } |
242 | - } |
|
242 | + } |
|
243 | 243 | return $reminders; |
244 | 244 | } |
245 | 245 | |
246 | - // ---- popup and alert reminders |
|
246 | + // ---- popup and alert reminders |
|
247 | 247 | |
248 | - /** |
|
249 | - * Show a popup and/or desktop notification alert for related users with related Event information. |
|
250 | - * Call in jsAlerts class and use original jsAlerts for show notifications. |
|
251 | - * |
|
252 | - * @global ??? $current_user |
|
253 | - * @global ??? $timedate |
|
254 | - * @global ??? $app_list_strings |
|
255 | - * @global ??? $db |
|
256 | - * @global ??? $sugar_config |
|
257 | - * @global ??? $app_strings |
|
258 | - * @param jsAlerts $alert caller jsAlerts object |
|
259 | - * @param boolean $checkDecline (optional) Send email if user accept status is not decline. Default is TRUE. |
|
260 | - * @return ??? |
|
261 | - */ |
|
262 | - public static function addNotifications(jsAlerts $alert, $checkDecline = true) { |
|
263 | - global $current_user, $timedate, $app_list_strings, $db, $sugar_config, $app_strings; |
|
264 | - |
|
265 | - if (empty($current_user->id)) { |
|
248 | + /** |
|
249 | + * Show a popup and/or desktop notification alert for related users with related Event information. |
|
250 | + * Call in jsAlerts class and use original jsAlerts for show notifications. |
|
251 | + * |
|
252 | + * @global ??? $current_user |
|
253 | + * @global ??? $timedate |
|
254 | + * @global ??? $app_list_strings |
|
255 | + * @global ??? $db |
|
256 | + * @global ??? $sugar_config |
|
257 | + * @global ??? $app_strings |
|
258 | + * @param jsAlerts $alert caller jsAlerts object |
|
259 | + * @param boolean $checkDecline (optional) Send email if user accept status is not decline. Default is TRUE. |
|
260 | + * @return ??? |
|
261 | + */ |
|
262 | + public static function addNotifications(jsAlerts $alert, $checkDecline = true) { |
|
263 | + global $current_user, $timedate, $app_list_strings, $db, $sugar_config, $app_strings; |
|
264 | + |
|
265 | + if (empty($current_user->id)) { |
|
266 | 266 | return; |
267 | - } |
|
267 | + } |
|
268 | 268 | |
269 | - //Create separate variable to hold timedate value |
|
269 | + //Create separate variable to hold timedate value |
|
270 | 270 | $alertDateTimeNow = $timedate->nowDb(); |
271 | 271 | |
272 | - // cn: get a boundary limiter |
|
273 | - $dateTimeMax = $timedate->getNow()->modify("+{$app_list_strings['reminder_max_time']} seconds")->asDb(); |
|
274 | - $dateTimeNow = $timedate->nowDb(); |
|
272 | + // cn: get a boundary limiter |
|
273 | + $dateTimeMax = $timedate->getNow()->modify("+{$app_list_strings['reminder_max_time']} seconds")->asDb(); |
|
274 | + $dateTimeNow = $timedate->nowDb(); |
|
275 | 275 | |
276 | - $dateTimeNow = $db->convert($db->quoted($dateTimeNow), 'datetime'); |
|
277 | - $dateTimeMax = $db->convert($db->quoted($dateTimeMax), 'datetime'); |
|
276 | + $dateTimeNow = $db->convert($db->quoted($dateTimeNow), 'datetime'); |
|
277 | + $dateTimeMax = $db->convert($db->quoted($dateTimeMax), 'datetime'); |
|
278 | 278 | |
279 | - // Original jsAlert used to a meeting integration. |
|
279 | + // Original jsAlert used to a meeting integration. |
|
280 | 280 | |
281 | - /////////////////////////////////////////////////////////////////////// |
|
282 | - //// MEETING INTEGRATION |
|
283 | - $meetingIntegration = null; |
|
284 | - if(isset($sugar_config['meeting_integration']) && !empty($sugar_config['meeting_integration'])) { |
|
285 | - if(!class_exists($sugar_config['meeting_integration'])) { |
|
286 | - require_once("modules/{$sugar_config['meeting_integration']}/{$sugar_config['meeting_integration']}.php"); |
|
287 | - } |
|
288 | - $meetingIntegration = new $sugar_config['meeting_integration'](); |
|
289 | - } |
|
290 | - //// END MEETING INTEGRATION |
|
291 | - /////////////////////////////////////////////////////////////////////// |
|
281 | + /////////////////////////////////////////////////////////////////////// |
|
282 | + //// MEETING INTEGRATION |
|
283 | + $meetingIntegration = null; |
|
284 | + if(isset($sugar_config['meeting_integration']) && !empty($sugar_config['meeting_integration'])) { |
|
285 | + if(!class_exists($sugar_config['meeting_integration'])) { |
|
286 | + require_once("modules/{$sugar_config['meeting_integration']}/{$sugar_config['meeting_integration']}.php"); |
|
287 | + } |
|
288 | + $meetingIntegration = new $sugar_config['meeting_integration'](); |
|
289 | + } |
|
290 | + //// END MEETING INTEGRATION |
|
291 | + /////////////////////////////////////////////////////////////////////// |
|
292 | 292 | |
293 | - $popupReminders = BeanFactory::getBean('Reminders')->get_full_list('', "reminders.popup = 1"); |
|
294 | - |
|
295 | - if($popupReminders) { |
|
296 | - foreach($popupReminders as $popupReminder) { |
|
297 | - $relatedEvent = BeanFactory::getBean($popupReminder->related_event_module, $popupReminder->related_event_module_id); |
|
298 | - if( $relatedEvent && |
|
299 | - (!isset($relatedEvent->status) || $relatedEvent->status == 'Planned') && |
|
300 | - (!isset($relatedEvent->date_start) || (strtotime($relatedEvent->date_start) >= strtotime(self::unQuoteTime($dateTimeNow)) && strtotime($relatedEvent->date_start) <= strtotime(self::unQuoteTime($dateTimeMax))) ) && |
|
301 | - (!$checkDecline || ($checkDecline && !self::isDecline($relatedEvent, BeanFactory::getBean('Users', $current_user->id)))) |
|
302 | - ) { |
|
303 | - // The original popup/alert reminders check the accept_status field in related users/leads/contacts etc. and filtered these users who not decline this event. |
|
304 | - $invitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', "reminders_invitees.reminder_id = '{$popupReminder->id}' AND reminders_invitees.related_invitee_module_id = '{$current_user->id}'"); |
|
305 | - if($invitees) { |
|
306 | - foreach($invitees as $invitee) { |
|
307 | - // need to concatenate since GMT times can bridge two local days |
|
308 | - $timeStart = strtotime($db->fromConvert(isset($relatedEvent->date_start) ? $relatedEvent->date_start : date(TimeDate::DB_DATETIME_FORMAT), 'datetime')); |
|
309 | - $timeRemind = $popupReminder->timer_popup; |
|
310 | - $timeStart -= $timeRemind; |
|
311 | - |
|
312 | - $url = 'index.php?action=DetailView&module=' . $popupReminder->related_event_module . '&record=' . $popupReminder->related_event_module_id; |
|
313 | - $instructions = $app_strings['MSG_JS_ALERT_MTG_REMINDER_MEETING_MSG']; |
|
314 | - |
|
315 | - if($popupReminder->related_event_module == 'Meetings') { |
|
316 | - /////////////////////////////////////////////////////////////////// |
|
317 | - //// MEETING INTEGRATION |
|
318 | - if(!empty($meetingIntegration) && $meetingIntegration->isIntegratedMeeting($popupReminder->related_event_module_id)) { |
|
319 | - $url = $meetingIntegration->miUrlGetJsAlert((array) $popupReminder); |
|
320 | - $instructions = $meetingIntegration->miGetJsAlertInstructions(); |
|
321 | - } |
|
322 | - //// END MEETING INTEGRATION |
|
323 | - /////////////////////////////////////////////////////////////////// |
|
324 | - } |
|
293 | + $popupReminders = BeanFactory::getBean('Reminders')->get_full_list('', "reminders.popup = 1"); |
|
294 | + |
|
295 | + if($popupReminders) { |
|
296 | + foreach($popupReminders as $popupReminder) { |
|
297 | + $relatedEvent = BeanFactory::getBean($popupReminder->related_event_module, $popupReminder->related_event_module_id); |
|
298 | + if( $relatedEvent && |
|
299 | + (!isset($relatedEvent->status) || $relatedEvent->status == 'Planned') && |
|
300 | + (!isset($relatedEvent->date_start) || (strtotime($relatedEvent->date_start) >= strtotime(self::unQuoteTime($dateTimeNow)) && strtotime($relatedEvent->date_start) <= strtotime(self::unQuoteTime($dateTimeMax))) ) && |
|
301 | + (!$checkDecline || ($checkDecline && !self::isDecline($relatedEvent, BeanFactory::getBean('Users', $current_user->id)))) |
|
302 | + ) { |
|
303 | + // The original popup/alert reminders check the accept_status field in related users/leads/contacts etc. and filtered these users who not decline this event. |
|
304 | + $invitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', "reminders_invitees.reminder_id = '{$popupReminder->id}' AND reminders_invitees.related_invitee_module_id = '{$current_user->id}'"); |
|
305 | + if($invitees) { |
|
306 | + foreach($invitees as $invitee) { |
|
307 | + // need to concatenate since GMT times can bridge two local days |
|
308 | + $timeStart = strtotime($db->fromConvert(isset($relatedEvent->date_start) ? $relatedEvent->date_start : date(TimeDate::DB_DATETIME_FORMAT), 'datetime')); |
|
309 | + $timeRemind = $popupReminder->timer_popup; |
|
310 | + $timeStart -= $timeRemind; |
|
311 | + |
|
312 | + $url = 'index.php?action=DetailView&module=' . $popupReminder->related_event_module . '&record=' . $popupReminder->related_event_module_id; |
|
313 | + $instructions = $app_strings['MSG_JS_ALERT_MTG_REMINDER_MEETING_MSG']; |
|
314 | + |
|
315 | + if($popupReminder->related_event_module == 'Meetings') { |
|
316 | + /////////////////////////////////////////////////////////////////// |
|
317 | + //// MEETING INTEGRATION |
|
318 | + if(!empty($meetingIntegration) && $meetingIntegration->isIntegratedMeeting($popupReminder->related_event_module_id)) { |
|
319 | + $url = $meetingIntegration->miUrlGetJsAlert((array) $popupReminder); |
|
320 | + $instructions = $meetingIntegration->miGetJsAlertInstructions(); |
|
321 | + } |
|
322 | + //// END MEETING INTEGRATION |
|
323 | + /////////////////////////////////////////////////////////////////// |
|
324 | + } |
|
325 | 325 | |
326 | - $meetingName = from_html(isset($relatedEvent->name) ? $relatedEvent->name : $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_EVENT_NAME']); |
|
327 | - $desc1 = from_html(isset($relatedEvent->description) ? $relatedEvent->description : $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_DESCRIPTION']); |
|
328 | - $location = from_html(isset($relatedEvent->location) ? $relatedEvent->location : $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_LOCATION']); |
|
326 | + $meetingName = from_html(isset($relatedEvent->name) ? $relatedEvent->name : $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_EVENT_NAME']); |
|
327 | + $desc1 = from_html(isset($relatedEvent->description) ? $relatedEvent->description : $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_DESCRIPTION']); |
|
328 | + $location = from_html(isset($relatedEvent->location) ? $relatedEvent->location : $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_LOCATION']); |
|
329 | 329 | |
330 | - $relatedToMeeting = $alert->getRelatedName($popupReminder->related_event_module, $popupReminder->related_event_module_id); |
|
330 | + $relatedToMeeting = $alert->getRelatedName($popupReminder->related_event_module, $popupReminder->related_event_module_id); |
|
331 | 331 | |
332 | - $description = empty($desc1) ? '' : $app_strings['MSG_JS_ALERT_MTG_REMINDER_AGENDA'].$desc1."\n"; |
|
333 | - $description = $description ."\n" .$app_strings['MSG_JS_ALERT_MTG_REMINDER_STATUS'] . (isset($relatedEvent->status) ? $relatedEvent->status : '') ."\n". $app_strings['MSG_JS_ALERT_MTG_REMINDER_RELATED_TO']. $relatedToMeeting; |
|
334 | - |
|
335 | - |
|
336 | - if(isset($relatedEvent->date_start)) { |
|
337 | - $time_dbFromConvert = $db->fromConvert($relatedEvent->date_start, 'datetime'); |
|
338 | - $time = $timedate->to_display_date_time($time_dbFromConvert); |
|
339 | - if(!$time) { |
|
340 | - $time = $relatedEvent->date_start; |
|
341 | - } |
|
342 | - if(!$time) { |
|
343 | - $time = $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_START_DATE']; |
|
344 | - } |
|
345 | - } |
|
346 | - else { |
|
347 | - $time = $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_START_DATE']; |
|
348 | - } |
|
349 | - |
|
350 | - // standard functionality |
|
351 | - $alert->addAlert($app_strings['MSG_JS_ALERT_MTG_REMINDER_MEETING'], $meetingName, |
|
352 | - $app_strings['MSG_JS_ALERT_MTG_REMINDER_TIME'].$time, |
|
353 | - $app_strings['MSG_JS_ALERT_MTG_REMINDER_LOC'].$location. |
|
354 | - $description. |
|
355 | - $instructions, |
|
356 | - $timeStart - strtotime($alertDateTimeNow), |
|
357 | - $url |
|
358 | - ); |
|
359 | - } |
|
360 | - } |
|
361 | - } |
|
362 | - } |
|
363 | - } |
|
364 | - } |
|
365 | - |
|
366 | - private static function unQuoteTime($timestr) { |
|
367 | - $ret = ''; |
|
368 | - for($i=0; $i<strlen($timestr); $i++) { |
|
369 | - if($timestr[$i]!="'") $ret .= $timestr[$i]; |
|
370 | - } |
|
371 | - return $ret; |
|
372 | - } |
|
332 | + $description = empty($desc1) ? '' : $app_strings['MSG_JS_ALERT_MTG_REMINDER_AGENDA'].$desc1."\n"; |
|
333 | + $description = $description ."\n" .$app_strings['MSG_JS_ALERT_MTG_REMINDER_STATUS'] . (isset($relatedEvent->status) ? $relatedEvent->status : '') ."\n". $app_strings['MSG_JS_ALERT_MTG_REMINDER_RELATED_TO']. $relatedToMeeting; |
|
334 | + |
|
335 | + |
|
336 | + if(isset($relatedEvent->date_start)) { |
|
337 | + $time_dbFromConvert = $db->fromConvert($relatedEvent->date_start, 'datetime'); |
|
338 | + $time = $timedate->to_display_date_time($time_dbFromConvert); |
|
339 | + if(!$time) { |
|
340 | + $time = $relatedEvent->date_start; |
|
341 | + } |
|
342 | + if(!$time) { |
|
343 | + $time = $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_START_DATE']; |
|
344 | + } |
|
345 | + } |
|
346 | + else { |
|
347 | + $time = $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_START_DATE']; |
|
348 | + } |
|
349 | + |
|
350 | + // standard functionality |
|
351 | + $alert->addAlert($app_strings['MSG_JS_ALERT_MTG_REMINDER_MEETING'], $meetingName, |
|
352 | + $app_strings['MSG_JS_ALERT_MTG_REMINDER_TIME'].$time, |
|
353 | + $app_strings['MSG_JS_ALERT_MTG_REMINDER_LOC'].$location. |
|
354 | + $description. |
|
355 | + $instructions, |
|
356 | + $timeStart - strtotime($alertDateTimeNow), |
|
357 | + $url |
|
358 | + ); |
|
359 | + } |
|
360 | + } |
|
361 | + } |
|
362 | + } |
|
363 | + } |
|
364 | + } |
|
365 | + |
|
366 | + private static function unQuoteTime($timestr) { |
|
367 | + $ret = ''; |
|
368 | + for($i=0; $i<strlen($timestr); $i++) { |
|
369 | + if($timestr[$i]!="'") $ret .= $timestr[$i]; |
|
370 | + } |
|
371 | + return $ret; |
|
372 | + } |
|
373 | 373 | |
374 | - // --- test for accept status decline is? |
|
374 | + // --- test for accept status decline is? |
|
375 | 375 | |
376 | - private static function isDecline(SugarBean $event, SugarBean $person) { |
|
377 | - return self::testEventPersonAcceptStatus($event, $person, 'decline'); |
|
378 | - } |
|
376 | + private static function isDecline(SugarBean $event, SugarBean $person) { |
|
377 | + return self::testEventPersonAcceptStatus($event, $person, 'decline'); |
|
378 | + } |
|
379 | 379 | |
380 | - private static function testEventPersonAcceptStatus(SugarBean $event, SugarBean $person, $acceptStatus = 'decline') { |
|
381 | - if($acceptStats = self::getEventPersonAcceptStatus($event, $person)) { |
|
382 | - $acceptStatusLower = strtolower($acceptStatus); |
|
383 | - foreach((array) $acceptStats as $acceptStat) { |
|
384 | - if(strtolower($acceptStat) == $acceptStatusLower) { |
|
385 | - return true; |
|
386 | - } |
|
387 | - } |
|
388 | - } |
|
389 | - return false; |
|
390 | - } |
|
380 | + private static function testEventPersonAcceptStatus(SugarBean $event, SugarBean $person, $acceptStatus = 'decline') { |
|
381 | + if($acceptStats = self::getEventPersonAcceptStatus($event, $person)) { |
|
382 | + $acceptStatusLower = strtolower($acceptStatus); |
|
383 | + foreach((array) $acceptStats as $acceptStat) { |
|
384 | + if(strtolower($acceptStat) == $acceptStatusLower) { |
|
385 | + return true; |
|
386 | + } |
|
387 | + } |
|
388 | + } |
|
389 | + return false; |
|
390 | + } |
|
391 | 391 | |
392 | - private static function getEventPersonAcceptStatus(SugarBean $event, SugarBean $person) { |
|
393 | - global $db; |
|
394 | - $rel_person_table_Key = "rel_{$person->table_name}_table"; |
|
395 | - $rel_person_table_Value = "{$event->table_name}_{$person->table_name}"; |
|
396 | - if(isset($event->$rel_person_table_Key) && $event->$rel_person_table_Key == $rel_person_table_Value) { |
|
397 | - $query = self::getEventPersonQuery($event, $person); |
|
398 | - $re = $db->query($query); |
|
399 | - $ret = array(); |
|
400 | - while($row = $db->fetchByAssoc($re) ) { |
|
401 | - if(!isset($row['accept_status'])) { |
|
402 | - return null; |
|
403 | - } |
|
404 | - $ret[] = $row['accept_status']; |
|
405 | - } |
|
406 | - return $ret; |
|
407 | - } |
|
408 | - return null; |
|
409 | - } |
|
410 | - |
|
411 | - private function upgradeEventPersonQuery(SugarBean $event, $person_table) { |
|
412 | - $eventIdField = strtolower($event->object_name).'_id'; |
|
413 | - $query = " |
|
392 | + private static function getEventPersonAcceptStatus(SugarBean $event, SugarBean $person) { |
|
393 | + global $db; |
|
394 | + $rel_person_table_Key = "rel_{$person->table_name}_table"; |
|
395 | + $rel_person_table_Value = "{$event->table_name}_{$person->table_name}"; |
|
396 | + if(isset($event->$rel_person_table_Key) && $event->$rel_person_table_Key == $rel_person_table_Value) { |
|
397 | + $query = self::getEventPersonQuery($event, $person); |
|
398 | + $re = $db->query($query); |
|
399 | + $ret = array(); |
|
400 | + while($row = $db->fetchByAssoc($re) ) { |
|
401 | + if(!isset($row['accept_status'])) { |
|
402 | + return null; |
|
403 | + } |
|
404 | + $ret[] = $row['accept_status']; |
|
405 | + } |
|
406 | + return $ret; |
|
407 | + } |
|
408 | + return null; |
|
409 | + } |
|
410 | + |
|
411 | + private function upgradeEventPersonQuery(SugarBean $event, $person_table) { |
|
412 | + $eventIdField = strtolower($event->object_name).'_id'; |
|
413 | + $query = " |
|
414 | 414 | SELECT * FROM {$event->table_name}_{$person_table} |
415 | 415 | WHERE |
416 | 416 | {$eventIdField} = '{$event->id}' AND |
417 | 417 | deleted = 0 |
418 | 418 | "; |
419 | - return $query; |
|
420 | - } |
|
421 | - |
|
422 | - private static function getEventPersonQuery(SugarBean $event, SugarBean $person) { |
|
423 | - $eventIdField = array_search($event->table_name, $event->relationship_fields); |
|
424 | - if(!$eventIdField) { |
|
425 | - $eventIdField = strtolower($event->object_name . '_id'); |
|
426 | - } |
|
427 | - $personIdField = strtolower($person->object_name) . '_id'; |
|
428 | - $query = " |
|
419 | + return $query; |
|
420 | + } |
|
421 | + |
|
422 | + private static function getEventPersonQuery(SugarBean $event, SugarBean $person) { |
|
423 | + $eventIdField = array_search($event->table_name, $event->relationship_fields); |
|
424 | + if(!$eventIdField) { |
|
425 | + $eventIdField = strtolower($event->object_name . '_id'); |
|
426 | + } |
|
427 | + $personIdField = strtolower($person->object_name) . '_id'; |
|
428 | + $query = " |
|
429 | 429 | SELECT * FROM {$event->table_name}_{$person->table_name} |
430 | 430 | WHERE |
431 | 431 | {$eventIdField} = '{$event->id}' AND |
432 | 432 | {$personIdField} = '{$person->id}' AND |
433 | 433 | deleted = 0 |
434 | 434 | "; |
435 | - return $query; |
|
436 | - } |
|
435 | + return $query; |
|
436 | + } |
|
437 | 437 | |
438 | - // --- user preferences as default values in reminders |
|
439 | - |
|
440 | - /** |
|
441 | - * Default values for Reminders from User Preferences |
|
442 | - * @return string JSON encoded default values |
|
443 | - * @throws Exception on json_encode error |
|
444 | - */ |
|
445 | - public static function loadRemindersDefaultValuesDataJson() { |
|
446 | - $ret = json_encode(self::loadRemindersDefaultValuesData()); |
|
447 | - if(!$ret && json_last_error()) { |
|
438 | + // --- user preferences as default values in reminders |
|
439 | + |
|
440 | + /** |
|
441 | + * Default values for Reminders from User Preferences |
|
442 | + * @return string JSON encoded default values |
|
443 | + * @throws Exception on json_encode error |
|
444 | + */ |
|
445 | + public static function loadRemindersDefaultValuesDataJson() { |
|
446 | + $ret = json_encode(self::loadRemindersDefaultValuesData()); |
|
447 | + if(!$ret && json_last_error()) { |
|
448 | 448 | throw new Exception(json_last_error_msg()); |
449 | 449 | } |
450 | - return $ret; |
|
451 | - } |
|
450 | + return $ret; |
|
451 | + } |
|
452 | 452 | |
453 | - /** |
|
454 | - * Default values for Reminders from User Preferences |
|
455 | - * @return array default values |
|
456 | - */ |
|
457 | - public static function loadRemindersDefaultValuesData() { |
|
458 | - global $current_user; |
|
459 | - |
|
460 | - $preferencePopupReminderTime = $current_user->getPreference('reminder_time'); |
|
461 | - $preferenceEmailReminderTime = $current_user->getPreference('email_reminder_time'); |
|
462 | - $preferencePopupReminderChecked = $current_user->getPreference('reminder_checked'); |
|
463 | - $preferenceEmailReminderChecked = $current_user->getPreference('email_reminder_checked'); |
|
464 | - |
|
465 | - return array( |
|
466 | - 'popup' => $preferencePopupReminderChecked, |
|
467 | - 'email' => $preferenceEmailReminderChecked, |
|
468 | - 'timer_popup' => $preferencePopupReminderTime, |
|
469 | - 'timer_email' => $preferenceEmailReminderTime, |
|
470 | - ); |
|
471 | - } |
|
472 | - |
|
473 | - // --- upgrade |
|
474 | - |
|
475 | - /** |
|
476 | - * Reminders upgrade, old reminders migrate to multiple-reminders. |
|
477 | - * @throws Exception unknown event type or any error |
|
478 | - */ |
|
479 | - public static function upgrade() { |
|
480 | - self::upgradeUserPreferences(); |
|
481 | - self::upgradeEventReminders('Calls'); |
|
482 | - self::upgradeEventReminders('Meetings'); |
|
483 | - self::upgradeRestoreReminders(); |
|
484 | - } |
|
485 | - |
|
486 | - private static function upgradeRestoreReminders() { |
|
487 | - if($reminders = BeanFactory::getBean('Reminders')->get_full_list('', 'reminders.deleted = 1')) { |
|
488 | - foreach($reminders as $reminder) { |
|
489 | - $reminder->deleted = 0; |
|
490 | - $reminder->save(); |
|
491 | - } |
|
492 | - } |
|
493 | - if($reminderInvitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', 'reminders_invitees.deleted = 1')) { |
|
494 | - foreach($reminderInvitees as $invitee) { |
|
495 | - $invitee->deleted = 0; |
|
496 | - $invitee->save(); |
|
497 | - } |
|
498 | - } |
|
499 | - global $db; |
|
500 | - $q = "UPDATE reminders SET deleted = 0"; |
|
501 | - $db->query($q); |
|
502 | - $q = "UPDATE reminders_invitees SET deleted = 0"; |
|
503 | - $db->query($q); |
|
504 | - } |
|
505 | - |
|
506 | - private static function upgradeUserPreferences() { |
|
507 | - $users = User::getActiveUsers(); |
|
508 | - foreach($users as $user_id => $user_name) { |
|
509 | - $user = new User(); |
|
510 | - $user->retrieve($user_id); |
|
511 | - |
|
512 | - $preferencePopupReminderTime = $user->getPreference('reminder_time'); |
|
513 | - $preferenceEmailReminderTime = $user->getPreference('email_reminder_time'); |
|
514 | - |
|
515 | - $preferencePopupReminderChecked = $preferencePopupReminderTime > -1; |
|
516 | - $preferenceEmailReminderChecked = $preferenceEmailReminderTime > -1; |
|
517 | - $user->setPreference('reminder_checked', $preferencePopupReminderChecked); |
|
518 | - $user->setPreference('email_reminder_checked', $preferenceEmailReminderChecked); |
|
519 | - |
|
520 | - } |
|
521 | - } |
|
522 | - |
|
523 | - /** |
|
524 | - * @param string $eventModule 'Calls' or 'Meetings' |
|
525 | - */ |
|
526 | - private static function upgradeEventReminders($eventModule) { |
|
527 | - |
|
528 | - $eventBean = BeanFactory::getBean($eventModule); |
|
529 | - $events = BeanFactory::getBean($eventModule)->get_full_list('', "{$eventBean->table_name}.date_start > '2015-11-01 00:00:00' AND ({$eventBean->table_name}.reminder_time != -1 OR ({$eventBean->table_name}.email_reminder_time != -1 AND {$eventBean->table_name}.email_reminder_sent != 1))"); |
|
530 | - if ($events) { |
|
531 | - foreach ($events as $event) { |
|
532 | - |
|
533 | - $oldReminderPopupChecked = false; |
|
534 | - $oldReminderPopupTimer = null; |
|
535 | - if ($event->reminder_time != -1) { |
|
536 | - $oldReminderPopupChecked = true; |
|
537 | - $oldReminderPopupTimer = $event->reminder_time; |
|
538 | - } |
|
539 | - |
|
540 | - $oldReminderEmailChecked = false; |
|
541 | - $oldReminderEmailTimer = null; |
|
542 | - if ($event->email_reminder_time != -1) { |
|
543 | - $oldReminderEmailChecked = true; |
|
544 | - $oldReminderEmailTimer = $event->email_reminder_time; |
|
545 | - } |
|
546 | - |
|
547 | - $oldReminderEmailSent = $event->email_reminder_sent; |
|
548 | - |
|
549 | - if( ($oldInvitees = self::getOldEventInvitees($event)) && ($event->reminder_time != -1 || ($event->email_reminder_time != -1 && $event->email_reminder_sent != 1)) ) { |
|
550 | - |
|
551 | - self::migrateReminder( |
|
552 | - $eventModule, |
|
553 | - $event->id, |
|
554 | - $oldReminderPopupChecked, |
|
555 | - $oldReminderPopupTimer, |
|
556 | - $oldReminderEmailChecked, |
|
557 | - $oldReminderEmailTimer, |
|
558 | - $oldReminderEmailSent, |
|
559 | - $oldInvitees |
|
560 | - ); |
|
561 | - |
|
562 | - } |
|
563 | - } |
|
564 | - } |
|
565 | - |
|
566 | - } |
|
567 | - |
|
568 | - |
|
569 | - private static function getOldEventInvitees(SugarBean $event) { |
|
570 | - global $db; |
|
571 | - $ret = array(); |
|
572 | - $persons = array('users','contacts','leads'); |
|
573 | - foreach($persons as $person){ |
|
574 | - $query = self::upgradeEventPersonQuery($event, $person); |
|
575 | - $re = $db->query($query); |
|
576 | - while($row = $db->fetchByAssoc($re) ) { |
|
577 | - $ret[] = $row; |
|
578 | - } |
|
579 | - } |
|
580 | - return $ret; |
|
581 | - } |
|
582 | - |
|
583 | - /** |
|
584 | - * @param string $eventModule 'Calls' or 'Meetings' |
|
585 | - * @param string $eventModuleId |
|
586 | - * @param bool $oldReminderPopupChecked |
|
587 | - * @param int $oldReminderPopupTimer |
|
588 | - * @param bool $oldReminderEmailChecked |
|
589 | - * @param int $oldReminderEmailTimer |
|
590 | - * @param array $oldInvitees |
|
591 | - */ |
|
592 | - private static function migrateReminder($eventModule, $eventModuleId, $oldReminderPopupChecked, $oldReminderPopupTimer, $oldReminderEmailChecked, $oldReminderEmailTimer, $oldReminderEmailSent, $oldInvitees) { |
|
593 | - |
|
594 | - $reminder = BeanFactory::getBean('Reminders'); |
|
595 | - $reminder->popup = $oldReminderPopupChecked; |
|
596 | - $reminder->email = $oldReminderEmailChecked; |
|
597 | - $reminder->email_sent = $oldReminderEmailSent; |
|
598 | - $reminder->timer_popup = $oldReminderPopupTimer; |
|
599 | - $reminder->timer_email = $oldReminderEmailTimer; |
|
600 | - $reminder->related_event_module = $eventModule; |
|
601 | - $reminder->related_event_module_id = $eventModuleId; |
|
602 | - $reminder->save(); |
|
603 | - $reminderId = $reminder->id; |
|
604 | - self::migrateReminderInvitees($reminderId, $oldInvitees); |
|
605 | - |
|
606 | - self::removeOldReminder($eventModule, $eventModuleId); |
|
607 | - } |
|
608 | - |
|
609 | - private static function migrateReminderInvitees($reminderId, $invitees) { |
|
610 | - $ret = array(); |
|
611 | - foreach((array) $invitees as $invitee) { |
|
612 | - $newInvitee = BeanFactory::getBean('Reminders_Invitees'); |
|
613 | - $newInvitee->reminder_id = $reminderId; |
|
614 | - $newInvitee->related_invitee_module = self::getRelatedInviteeModuleFromInviteeArray($invitee); |
|
615 | - $newInvitee->related_invitee_module_id = self::getRelatedInviteeModuleIdFromInviteeArray($invitee); |
|
616 | - $newInvitee->save(); |
|
617 | - } |
|
618 | - return $ret; |
|
619 | - } |
|
620 | - |
|
621 | - private static function getRelatedInviteeModuleFromInviteeArray($invitee) { |
|
622 | - if(array_key_exists('user_id', $invitee)) { |
|
623 | - return 'Users'; |
|
624 | - } |
|
625 | - if(array_key_exists('lead_id', $invitee)) { |
|
626 | - return 'Leads'; |
|
627 | - } |
|
628 | - if(array_key_exists('contact_id', $invitee)) { |
|
629 | - return 'Contacts'; |
|
630 | - } |
|
631 | - // TODO:!!!! |
|
632 | - throw new Exception('Unknown invitee module type'); |
|
633 | - //return null; |
|
634 | - } |
|
635 | - |
|
636 | - private static function getRelatedInviteeModuleIdFromInviteeArray($invitee) { |
|
637 | - if(array_key_exists('user_id', $invitee)) { |
|
638 | - return $invitee['user_id']; |
|
639 | - } |
|
640 | - if(array_key_exists('lead_id', $invitee)) { |
|
641 | - return $invitee['lead_id']; |
|
642 | - } |
|
643 | - if(array_key_exists('contact_id', $invitee)) { |
|
644 | - return $invitee['contact_id']; |
|
645 | - } |
|
646 | - // TODO:!!!! |
|
647 | - throw new Exception('Unknown invitee type'); |
|
648 | - //return null; |
|
649 | - } |
|
650 | - |
|
651 | - /** |
|
652 | - * @param string $eventModule 'Calls' or 'Meetings' |
|
653 | - * @param string $eventModuleId |
|
654 | - */ |
|
655 | - private static function removeOldReminder($eventModule, $eventModuleId) { |
|
656 | - $event = BeanFactory::getBean($eventModule, $eventModuleId); |
|
657 | - $event->reminder_time = -1; |
|
658 | - $event->email_reminder_time = -1; |
|
659 | - $event->email_reminder_sent = 0; |
|
660 | - $event->save(); |
|
661 | - } |
|
662 | - |
|
663 | - // --- reminders list on detail views |
|
664 | - |
|
665 | - /** |
|
666 | - * Return a list of related reminders for specified event (Calls/Meetings). Call it from DetailViews. |
|
667 | - * @param SugarBean $event a Call or Meeting Bean |
|
668 | - * @return mixed|string|void output of list (html) |
|
669 | - * @throws Exception on json error in Remainders |
|
670 | - */ |
|
671 | - public static function getRemindersListView(SugarBean $event) { |
|
672 | - global $mod_strings, $app_list_strings; |
|
673 | - $tpl = new Sugar_Smarty(); |
|
674 | - $tpl->assign('MOD', $mod_strings); |
|
675 | - $tpl->assign('reminder_time_options', $app_list_strings['reminder_time_options']); |
|
676 | - $tpl->assign('remindersData', Reminder::loadRemindersData($event->module_name, $event->id)); |
|
677 | - $tpl->assign('remindersDataJson', Reminder::loadRemindersDataJson($event->module_name, $event->id)); |
|
678 | - $tpl->assign('remindersDefaultValuesDataJson', Reminder::loadRemindersDefaultValuesDataJson()); |
|
679 | - $tpl->assign('remindersDisabled', json_encode(true)); |
|
680 | - return $tpl->fetch('modules/Reminders/tpls/reminders.tpl'); |
|
681 | - } |
|
682 | - |
|
683 | - /* |
|
453 | + /** |
|
454 | + * Default values for Reminders from User Preferences |
|
455 | + * @return array default values |
|
456 | + */ |
|
457 | + public static function loadRemindersDefaultValuesData() { |
|
458 | + global $current_user; |
|
459 | + |
|
460 | + $preferencePopupReminderTime = $current_user->getPreference('reminder_time'); |
|
461 | + $preferenceEmailReminderTime = $current_user->getPreference('email_reminder_time'); |
|
462 | + $preferencePopupReminderChecked = $current_user->getPreference('reminder_checked'); |
|
463 | + $preferenceEmailReminderChecked = $current_user->getPreference('email_reminder_checked'); |
|
464 | + |
|
465 | + return array( |
|
466 | + 'popup' => $preferencePopupReminderChecked, |
|
467 | + 'email' => $preferenceEmailReminderChecked, |
|
468 | + 'timer_popup' => $preferencePopupReminderTime, |
|
469 | + 'timer_email' => $preferenceEmailReminderTime, |
|
470 | + ); |
|
471 | + } |
|
472 | + |
|
473 | + // --- upgrade |
|
474 | + |
|
475 | + /** |
|
476 | + * Reminders upgrade, old reminders migrate to multiple-reminders. |
|
477 | + * @throws Exception unknown event type or any error |
|
478 | + */ |
|
479 | + public static function upgrade() { |
|
480 | + self::upgradeUserPreferences(); |
|
481 | + self::upgradeEventReminders('Calls'); |
|
482 | + self::upgradeEventReminders('Meetings'); |
|
483 | + self::upgradeRestoreReminders(); |
|
484 | + } |
|
485 | + |
|
486 | + private static function upgradeRestoreReminders() { |
|
487 | + if($reminders = BeanFactory::getBean('Reminders')->get_full_list('', 'reminders.deleted = 1')) { |
|
488 | + foreach($reminders as $reminder) { |
|
489 | + $reminder->deleted = 0; |
|
490 | + $reminder->save(); |
|
491 | + } |
|
492 | + } |
|
493 | + if($reminderInvitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', 'reminders_invitees.deleted = 1')) { |
|
494 | + foreach($reminderInvitees as $invitee) { |
|
495 | + $invitee->deleted = 0; |
|
496 | + $invitee->save(); |
|
497 | + } |
|
498 | + } |
|
499 | + global $db; |
|
500 | + $q = "UPDATE reminders SET deleted = 0"; |
|
501 | + $db->query($q); |
|
502 | + $q = "UPDATE reminders_invitees SET deleted = 0"; |
|
503 | + $db->query($q); |
|
504 | + } |
|
505 | + |
|
506 | + private static function upgradeUserPreferences() { |
|
507 | + $users = User::getActiveUsers(); |
|
508 | + foreach($users as $user_id => $user_name) { |
|
509 | + $user = new User(); |
|
510 | + $user->retrieve($user_id); |
|
511 | + |
|
512 | + $preferencePopupReminderTime = $user->getPreference('reminder_time'); |
|
513 | + $preferenceEmailReminderTime = $user->getPreference('email_reminder_time'); |
|
514 | + |
|
515 | + $preferencePopupReminderChecked = $preferencePopupReminderTime > -1; |
|
516 | + $preferenceEmailReminderChecked = $preferenceEmailReminderTime > -1; |
|
517 | + $user->setPreference('reminder_checked', $preferencePopupReminderChecked); |
|
518 | + $user->setPreference('email_reminder_checked', $preferenceEmailReminderChecked); |
|
519 | + |
|
520 | + } |
|
521 | + } |
|
522 | + |
|
523 | + /** |
|
524 | + * @param string $eventModule 'Calls' or 'Meetings' |
|
525 | + */ |
|
526 | + private static function upgradeEventReminders($eventModule) { |
|
527 | + |
|
528 | + $eventBean = BeanFactory::getBean($eventModule); |
|
529 | + $events = BeanFactory::getBean($eventModule)->get_full_list('', "{$eventBean->table_name}.date_start > '2015-11-01 00:00:00' AND ({$eventBean->table_name}.reminder_time != -1 OR ({$eventBean->table_name}.email_reminder_time != -1 AND {$eventBean->table_name}.email_reminder_sent != 1))"); |
|
530 | + if ($events) { |
|
531 | + foreach ($events as $event) { |
|
532 | + |
|
533 | + $oldReminderPopupChecked = false; |
|
534 | + $oldReminderPopupTimer = null; |
|
535 | + if ($event->reminder_time != -1) { |
|
536 | + $oldReminderPopupChecked = true; |
|
537 | + $oldReminderPopupTimer = $event->reminder_time; |
|
538 | + } |
|
539 | + |
|
540 | + $oldReminderEmailChecked = false; |
|
541 | + $oldReminderEmailTimer = null; |
|
542 | + if ($event->email_reminder_time != -1) { |
|
543 | + $oldReminderEmailChecked = true; |
|
544 | + $oldReminderEmailTimer = $event->email_reminder_time; |
|
545 | + } |
|
546 | + |
|
547 | + $oldReminderEmailSent = $event->email_reminder_sent; |
|
548 | + |
|
549 | + if( ($oldInvitees = self::getOldEventInvitees($event)) && ($event->reminder_time != -1 || ($event->email_reminder_time != -1 && $event->email_reminder_sent != 1)) ) { |
|
550 | + |
|
551 | + self::migrateReminder( |
|
552 | + $eventModule, |
|
553 | + $event->id, |
|
554 | + $oldReminderPopupChecked, |
|
555 | + $oldReminderPopupTimer, |
|
556 | + $oldReminderEmailChecked, |
|
557 | + $oldReminderEmailTimer, |
|
558 | + $oldReminderEmailSent, |
|
559 | + $oldInvitees |
|
560 | + ); |
|
561 | + |
|
562 | + } |
|
563 | + } |
|
564 | + } |
|
565 | + |
|
566 | + } |
|
567 | + |
|
568 | + |
|
569 | + private static function getOldEventInvitees(SugarBean $event) { |
|
570 | + global $db; |
|
571 | + $ret = array(); |
|
572 | + $persons = array('users','contacts','leads'); |
|
573 | + foreach($persons as $person){ |
|
574 | + $query = self::upgradeEventPersonQuery($event, $person); |
|
575 | + $re = $db->query($query); |
|
576 | + while($row = $db->fetchByAssoc($re) ) { |
|
577 | + $ret[] = $row; |
|
578 | + } |
|
579 | + } |
|
580 | + return $ret; |
|
581 | + } |
|
582 | + |
|
583 | + /** |
|
584 | + * @param string $eventModule 'Calls' or 'Meetings' |
|
585 | + * @param string $eventModuleId |
|
586 | + * @param bool $oldReminderPopupChecked |
|
587 | + * @param int $oldReminderPopupTimer |
|
588 | + * @param bool $oldReminderEmailChecked |
|
589 | + * @param int $oldReminderEmailTimer |
|
590 | + * @param array $oldInvitees |
|
591 | + */ |
|
592 | + private static function migrateReminder($eventModule, $eventModuleId, $oldReminderPopupChecked, $oldReminderPopupTimer, $oldReminderEmailChecked, $oldReminderEmailTimer, $oldReminderEmailSent, $oldInvitees) { |
|
593 | + |
|
594 | + $reminder = BeanFactory::getBean('Reminders'); |
|
595 | + $reminder->popup = $oldReminderPopupChecked; |
|
596 | + $reminder->email = $oldReminderEmailChecked; |
|
597 | + $reminder->email_sent = $oldReminderEmailSent; |
|
598 | + $reminder->timer_popup = $oldReminderPopupTimer; |
|
599 | + $reminder->timer_email = $oldReminderEmailTimer; |
|
600 | + $reminder->related_event_module = $eventModule; |
|
601 | + $reminder->related_event_module_id = $eventModuleId; |
|
602 | + $reminder->save(); |
|
603 | + $reminderId = $reminder->id; |
|
604 | + self::migrateReminderInvitees($reminderId, $oldInvitees); |
|
605 | + |
|
606 | + self::removeOldReminder($eventModule, $eventModuleId); |
|
607 | + } |
|
608 | + |
|
609 | + private static function migrateReminderInvitees($reminderId, $invitees) { |
|
610 | + $ret = array(); |
|
611 | + foreach((array) $invitees as $invitee) { |
|
612 | + $newInvitee = BeanFactory::getBean('Reminders_Invitees'); |
|
613 | + $newInvitee->reminder_id = $reminderId; |
|
614 | + $newInvitee->related_invitee_module = self::getRelatedInviteeModuleFromInviteeArray($invitee); |
|
615 | + $newInvitee->related_invitee_module_id = self::getRelatedInviteeModuleIdFromInviteeArray($invitee); |
|
616 | + $newInvitee->save(); |
|
617 | + } |
|
618 | + return $ret; |
|
619 | + } |
|
620 | + |
|
621 | + private static function getRelatedInviteeModuleFromInviteeArray($invitee) { |
|
622 | + if(array_key_exists('user_id', $invitee)) { |
|
623 | + return 'Users'; |
|
624 | + } |
|
625 | + if(array_key_exists('lead_id', $invitee)) { |
|
626 | + return 'Leads'; |
|
627 | + } |
|
628 | + if(array_key_exists('contact_id', $invitee)) { |
|
629 | + return 'Contacts'; |
|
630 | + } |
|
631 | + // TODO:!!!! |
|
632 | + throw new Exception('Unknown invitee module type'); |
|
633 | + //return null; |
|
634 | + } |
|
635 | + |
|
636 | + private static function getRelatedInviteeModuleIdFromInviteeArray($invitee) { |
|
637 | + if(array_key_exists('user_id', $invitee)) { |
|
638 | + return $invitee['user_id']; |
|
639 | + } |
|
640 | + if(array_key_exists('lead_id', $invitee)) { |
|
641 | + return $invitee['lead_id']; |
|
642 | + } |
|
643 | + if(array_key_exists('contact_id', $invitee)) { |
|
644 | + return $invitee['contact_id']; |
|
645 | + } |
|
646 | + // TODO:!!!! |
|
647 | + throw new Exception('Unknown invitee type'); |
|
648 | + //return null; |
|
649 | + } |
|
650 | + |
|
651 | + /** |
|
652 | + * @param string $eventModule 'Calls' or 'Meetings' |
|
653 | + * @param string $eventModuleId |
|
654 | + */ |
|
655 | + private static function removeOldReminder($eventModule, $eventModuleId) { |
|
656 | + $event = BeanFactory::getBean($eventModule, $eventModuleId); |
|
657 | + $event->reminder_time = -1; |
|
658 | + $event->email_reminder_time = -1; |
|
659 | + $event->email_reminder_sent = 0; |
|
660 | + $event->save(); |
|
661 | + } |
|
662 | + |
|
663 | + // --- reminders list on detail views |
|
664 | + |
|
665 | + /** |
|
666 | + * Return a list of related reminders for specified event (Calls/Meetings). Call it from DetailViews. |
|
667 | + * @param SugarBean $event a Call or Meeting Bean |
|
668 | + * @return mixed|string|void output of list (html) |
|
669 | + * @throws Exception on json error in Remainders |
|
670 | + */ |
|
671 | + public static function getRemindersListView(SugarBean $event) { |
|
672 | + global $mod_strings, $app_list_strings; |
|
673 | + $tpl = new Sugar_Smarty(); |
|
674 | + $tpl->assign('MOD', $mod_strings); |
|
675 | + $tpl->assign('reminder_time_options', $app_list_strings['reminder_time_options']); |
|
676 | + $tpl->assign('remindersData', Reminder::loadRemindersData($event->module_name, $event->id)); |
|
677 | + $tpl->assign('remindersDataJson', Reminder::loadRemindersDataJson($event->module_name, $event->id)); |
|
678 | + $tpl->assign('remindersDefaultValuesDataJson', Reminder::loadRemindersDefaultValuesDataJson()); |
|
679 | + $tpl->assign('remindersDisabled', json_encode(true)); |
|
680 | + return $tpl->fetch('modules/Reminders/tpls/reminders.tpl'); |
|
681 | + } |
|
682 | + |
|
683 | + /* |
|
684 | 684 | * @todo implenent it |
685 | 685 | */ |
686 | - public static function getRemindersListInlineEditView(SugarBean $event) { |
|
687 | - // TODO: getEditFieldHTML() function in InlineEditing.php:218 doesn't pass the Bean ID to this custom inline edit view function but we have to know which Bean are in the focus to editing. |
|
688 | - if(!$event->id) { |
|
689 | - throw new Exception("No GUID for edit."); |
|
690 | - } |
|
691 | - } |
|
686 | + public static function getRemindersListInlineEditView(SugarBean $event) { |
|
687 | + // TODO: getEditFieldHTML() function in InlineEditing.php:218 doesn't pass the Bean ID to this custom inline edit view function but we have to know which Bean are in the focus to editing. |
|
688 | + if(!$event->id) { |
|
689 | + throw new Exception("No GUID for edit."); |
|
690 | + } |
|
691 | + } |
|
692 | 692 | |
693 | 693 | } |
694 | 694 | ?> |
695 | 695 | \ No newline at end of file |
@@ -69,8 +69,8 @@ discard block |
||
69 | 69 | parent::Basic(); |
70 | 70 | } |
71 | 71 | |
72 | - public function bean_implements($interface){ |
|
73 | - switch($interface){ |
|
72 | + public function bean_implements($interface) { |
|
73 | + switch ($interface) { |
|
74 | 74 | case 'ACL': return true; |
75 | 75 | } |
76 | 76 | return false; |
@@ -89,7 +89,7 @@ discard block |
||
89 | 89 | */ |
90 | 90 | public static function saveRemindersDataJson($eventModule, $eventModuleId, $remindersDataJson) { |
91 | 91 | $reminderData = json_decode($remindersDataJson); |
92 | - if(!json_last_error()) { |
|
92 | + if (!json_last_error()) { |
|
93 | 93 | Reminder::saveRemindersData($eventModule, $eventModuleId, $reminderData); |
94 | 94 | } |
95 | 95 | else { |
@@ -99,8 +99,8 @@ discard block |
||
99 | 99 | |
100 | 100 | private static function saveRemindersData($eventModule, $eventModuleId, $remindersData) { |
101 | 101 | $savedReminderIds = array(); |
102 | - foreach($remindersData as $reminderData) { |
|
103 | - if(isset($_POST['isDuplicate']) && $_POST['isDuplicate']) $reminderData->id = ''; |
|
102 | + foreach ($remindersData as $reminderData) { |
|
103 | + if (isset($_POST['isDuplicate']) && $_POST['isDuplicate']) $reminderData->id = ''; |
|
104 | 104 | $reminderBean = BeanFactory::getBean('Reminders', $reminderData->id); |
105 | 105 | $reminderBean->popup = $reminderData->popup; |
106 | 106 | $reminderBean->email = $reminderData->email; |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | Reminder_Invitee::saveRemindersInviteesData($reminderId, $reminderData->invitees); |
115 | 115 | } |
116 | 116 | $reminders = BeanFactory::getBean('Reminders')->get_full_list("", "reminders.related_event_module = '$eventModule' AND reminders.related_event_module_id = '$eventModuleId'"); |
117 | - if($reminders) { |
|
117 | + if ($reminders) { |
|
118 | 118 | foreach ($reminders as $reminder) { |
119 | 119 | if (!in_array($reminder->id, $savedReminderIds)) { |
120 | 120 | Reminder_Invitee::deleteRemindersInviteesMultiple($reminder->id); |
@@ -138,7 +138,7 @@ discard block |
||
138 | 138 | public static function loadRemindersDataJson($eventModule, $eventModuleId, $isDuplicate = false) { |
139 | 139 | $remindersData = self::loadRemindersData($eventModule, $eventModuleId, $isDuplicate); |
140 | 140 | $remindersDataJson = json_encode($remindersData); |
141 | - if(!$remindersDataJson && json_last_error()) { |
|
141 | + if (!$remindersDataJson && json_last_error()) { |
|
142 | 142 | throw new Exception(json_last_error_msg()); |
143 | 143 | } |
144 | 144 | return $remindersDataJson; |
@@ -154,7 +154,7 @@ discard block |
||
154 | 154 | * @throws Exception |
155 | 155 | */ |
156 | 156 | public static function loadRemindersData($eventModule, $eventModuleId, $isDuplicate = false) { |
157 | - if(!isset(self::$remindersData[$eventModule][$eventModuleId]) || !$eventModuleId || $isDuplicate) { |
|
157 | + if (!isset(self::$remindersData[$eventModule][$eventModuleId]) || !$eventModuleId || $isDuplicate) { |
|
158 | 158 | $ret = array(); |
159 | 159 | $reminders = BeanFactory::getBean('Reminders')->get_full_list("reminders.date_entered", "reminders.related_event_module = '$eventModule' AND reminders.related_event_module_id = '$eventModuleId'"); |
160 | 160 | if ($reminders) { |
@@ -185,11 +185,11 @@ discard block |
||
185 | 185 | * @param boolean $checkDecline (optional) Send email if user accept status is not decline. Default is TRUE. |
186 | 186 | */ |
187 | 187 | public static function sendEmailReminders(EmailReminder $emailReminder, Administration $admin, $checkDecline = true) { |
188 | - if($reminders = self::getUnsentEmailReminders()) { |
|
189 | - foreach($reminders as $reminderId => $reminder) { |
|
188 | + if ($reminders = self::getUnsentEmailReminders()) { |
|
189 | + foreach ($reminders as $reminderId => $reminder) { |
|
190 | 190 | $recipients = self::getEmailReminderInviteesRecipients($reminderId, $checkDecline); |
191 | 191 | $eventBean = BeanFactory::getBean($reminder->related_event_module, $reminder->related_event_module_id); |
192 | - if ( $emailReminder->sendReminders($eventBean, $admin, $recipients) ) { |
|
192 | + if ($emailReminder->sendReminders($eventBean, $admin, $recipients)) { |
|
193 | 193 | $reminder->email_sent = 1; |
194 | 194 | $reminder->save(); |
195 | 195 | } |
@@ -203,15 +203,15 @@ discard block |
||
203 | 203 | $eventModule = $reminder->related_event_module; |
204 | 204 | $eventModuleId = $reminder->related_event_module_id; |
205 | 205 | $event = BeanFactory::getBean($eventModule, $eventModuleId); |
206 | - if(!isset($event->status) || $event->status != 'Held') { |
|
206 | + if (!isset($event->status) || $event->status != 'Held') { |
|
207 | 207 | $invitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', "reminders_invitees.reminder_id = '$reminderId'"); |
208 | - foreach($invitees as $invitee) { |
|
208 | + foreach ($invitees as $invitee) { |
|
209 | 209 | $inviteeModule = $invitee->related_invitee_module; |
210 | 210 | $inviteeModuleId = $invitee->related_invitee_module_id; |
211 | 211 | $personBean = BeanFactory::getBean($inviteeModule, $inviteeModuleId); |
212 | 212 | // The original email reminders check the accept_status field in related users/leads/contacts etc. and filtered these users who not decline this event. |
213 | - if($checkDecline && !self::isDecline($event, $personBean)) { |
|
214 | - if ( !empty($personBean->email1) ) { |
|
213 | + if ($checkDecline && !self::isDecline($event, $personBean)) { |
|
214 | + if (!empty($personBean->email1)) { |
|
215 | 215 | $arr = array( |
216 | 216 | 'type' => $inviteeModule, |
217 | 217 | 'name' => $personBean->full_name, |
@@ -229,14 +229,14 @@ discard block |
||
229 | 229 | global $db; |
230 | 230 | $reminders = array(); |
231 | 231 | $reminderBeans = BeanFactory::getBean('Reminders')->get_full_list('', "reminders.email = 1 AND reminders.email_sent = 0"); |
232 | - foreach($reminderBeans as $reminderBean) { |
|
232 | + foreach ($reminderBeans as $reminderBean) { |
|
233 | 233 | $eventBean = BeanFactory::getBean($reminderBean->related_event_module, $reminderBean->related_event_module_id); |
234 | 234 | $dateStart = $eventBean->date_start; |
235 | - $time = strtotime($db->fromConvert($dateStart,'datetime')); |
|
235 | + $time = strtotime($db->fromConvert($dateStart, 'datetime')); |
|
236 | 236 | $dateStart = date(TimeDate::DB_DATETIME_FORMAT, $time); |
237 | - $remind_ts = $GLOBALS['timedate']->fromDb($db->fromConvert($dateStart,'datetime'))->modify("-{$reminderBean->timer_email} seconds")->ts; |
|
237 | + $remind_ts = $GLOBALS['timedate']->fromDb($db->fromConvert($dateStart, 'datetime'))->modify("-{$reminderBean->timer_email} seconds")->ts; |
|
238 | 238 | $now_ts = $GLOBALS['timedate']->getNow()->ts; |
239 | - if ( $now_ts >= $remind_ts ) { |
|
239 | + if ($now_ts >= $remind_ts) { |
|
240 | 240 | $reminders[$reminderBean->id] = $reminderBean; |
241 | 241 | } |
242 | 242 | } |
@@ -281,8 +281,8 @@ discard block |
||
281 | 281 | /////////////////////////////////////////////////////////////////////// |
282 | 282 | //// MEETING INTEGRATION |
283 | 283 | $meetingIntegration = null; |
284 | - if(isset($sugar_config['meeting_integration']) && !empty($sugar_config['meeting_integration'])) { |
|
285 | - if(!class_exists($sugar_config['meeting_integration'])) { |
|
284 | + if (isset($sugar_config['meeting_integration']) && !empty($sugar_config['meeting_integration'])) { |
|
285 | + if (!class_exists($sugar_config['meeting_integration'])) { |
|
286 | 286 | require_once("modules/{$sugar_config['meeting_integration']}/{$sugar_config['meeting_integration']}.php"); |
287 | 287 | } |
288 | 288 | $meetingIntegration = new $sugar_config['meeting_integration'](); |
@@ -292,31 +292,31 @@ discard block |
||
292 | 292 | |
293 | 293 | $popupReminders = BeanFactory::getBean('Reminders')->get_full_list('', "reminders.popup = 1"); |
294 | 294 | |
295 | - if($popupReminders) { |
|
296 | - foreach($popupReminders as $popupReminder) { |
|
295 | + if ($popupReminders) { |
|
296 | + foreach ($popupReminders as $popupReminder) { |
|
297 | 297 | $relatedEvent = BeanFactory::getBean($popupReminder->related_event_module, $popupReminder->related_event_module_id); |
298 | - if( $relatedEvent && |
|
298 | + if ($relatedEvent && |
|
299 | 299 | (!isset($relatedEvent->status) || $relatedEvent->status == 'Planned') && |
300 | - (!isset($relatedEvent->date_start) || (strtotime($relatedEvent->date_start) >= strtotime(self::unQuoteTime($dateTimeNow)) && strtotime($relatedEvent->date_start) <= strtotime(self::unQuoteTime($dateTimeMax))) ) && |
|
300 | + (!isset($relatedEvent->date_start) || (strtotime($relatedEvent->date_start) >= strtotime(self::unQuoteTime($dateTimeNow)) && strtotime($relatedEvent->date_start) <= strtotime(self::unQuoteTime($dateTimeMax)))) && |
|
301 | 301 | (!$checkDecline || ($checkDecline && !self::isDecline($relatedEvent, BeanFactory::getBean('Users', $current_user->id)))) |
302 | 302 | ) { |
303 | 303 | // The original popup/alert reminders check the accept_status field in related users/leads/contacts etc. and filtered these users who not decline this event. |
304 | 304 | $invitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', "reminders_invitees.reminder_id = '{$popupReminder->id}' AND reminders_invitees.related_invitee_module_id = '{$current_user->id}'"); |
305 | - if($invitees) { |
|
306 | - foreach($invitees as $invitee) { |
|
305 | + if ($invitees) { |
|
306 | + foreach ($invitees as $invitee) { |
|
307 | 307 | // need to concatenate since GMT times can bridge two local days |
308 | 308 | $timeStart = strtotime($db->fromConvert(isset($relatedEvent->date_start) ? $relatedEvent->date_start : date(TimeDate::DB_DATETIME_FORMAT), 'datetime')); |
309 | 309 | $timeRemind = $popupReminder->timer_popup; |
310 | 310 | $timeStart -= $timeRemind; |
311 | 311 | |
312 | - $url = 'index.php?action=DetailView&module=' . $popupReminder->related_event_module . '&record=' . $popupReminder->related_event_module_id; |
|
312 | + $url = 'index.php?action=DetailView&module='.$popupReminder->related_event_module.'&record='.$popupReminder->related_event_module_id; |
|
313 | 313 | $instructions = $app_strings['MSG_JS_ALERT_MTG_REMINDER_MEETING_MSG']; |
314 | 314 | |
315 | - if($popupReminder->related_event_module == 'Meetings') { |
|
315 | + if ($popupReminder->related_event_module == 'Meetings') { |
|
316 | 316 | /////////////////////////////////////////////////////////////////// |
317 | 317 | //// MEETING INTEGRATION |
318 | - if(!empty($meetingIntegration) && $meetingIntegration->isIntegratedMeeting($popupReminder->related_event_module_id)) { |
|
319 | - $url = $meetingIntegration->miUrlGetJsAlert((array) $popupReminder); |
|
318 | + if (!empty($meetingIntegration) && $meetingIntegration->isIntegratedMeeting($popupReminder->related_event_module_id)) { |
|
319 | + $url = $meetingIntegration->miUrlGetJsAlert((array)$popupReminder); |
|
320 | 320 | $instructions = $meetingIntegration->miGetJsAlertInstructions(); |
321 | 321 | } |
322 | 322 | //// END MEETING INTEGRATION |
@@ -330,16 +330,16 @@ discard block |
||
330 | 330 | $relatedToMeeting = $alert->getRelatedName($popupReminder->related_event_module, $popupReminder->related_event_module_id); |
331 | 331 | |
332 | 332 | $description = empty($desc1) ? '' : $app_strings['MSG_JS_ALERT_MTG_REMINDER_AGENDA'].$desc1."\n"; |
333 | - $description = $description ."\n" .$app_strings['MSG_JS_ALERT_MTG_REMINDER_STATUS'] . (isset($relatedEvent->status) ? $relatedEvent->status : '') ."\n". $app_strings['MSG_JS_ALERT_MTG_REMINDER_RELATED_TO']. $relatedToMeeting; |
|
333 | + $description = $description."\n".$app_strings['MSG_JS_ALERT_MTG_REMINDER_STATUS'].(isset($relatedEvent->status) ? $relatedEvent->status : '')."\n".$app_strings['MSG_JS_ALERT_MTG_REMINDER_RELATED_TO'].$relatedToMeeting; |
|
334 | 334 | |
335 | 335 | |
336 | - if(isset($relatedEvent->date_start)) { |
|
336 | + if (isset($relatedEvent->date_start)) { |
|
337 | 337 | $time_dbFromConvert = $db->fromConvert($relatedEvent->date_start, 'datetime'); |
338 | 338 | $time = $timedate->to_display_date_time($time_dbFromConvert); |
339 | - if(!$time) { |
|
339 | + if (!$time) { |
|
340 | 340 | $time = $relatedEvent->date_start; |
341 | 341 | } |
342 | - if(!$time) { |
|
342 | + if (!$time) { |
|
343 | 343 | $time = $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_START_DATE']; |
344 | 344 | } |
345 | 345 | } |
@@ -365,8 +365,8 @@ discard block |
||
365 | 365 | |
366 | 366 | private static function unQuoteTime($timestr) { |
367 | 367 | $ret = ''; |
368 | - for($i=0; $i<strlen($timestr); $i++) { |
|
369 | - if($timestr[$i]!="'") $ret .= $timestr[$i]; |
|
368 | + for ($i = 0; $i < strlen($timestr); $i++) { |
|
369 | + if ($timestr[$i] != "'") $ret .= $timestr[$i]; |
|
370 | 370 | } |
371 | 371 | return $ret; |
372 | 372 | } |
@@ -378,10 +378,10 @@ discard block |
||
378 | 378 | } |
379 | 379 | |
380 | 380 | private static function testEventPersonAcceptStatus(SugarBean $event, SugarBean $person, $acceptStatus = 'decline') { |
381 | - if($acceptStats = self::getEventPersonAcceptStatus($event, $person)) { |
|
381 | + if ($acceptStats = self::getEventPersonAcceptStatus($event, $person)) { |
|
382 | 382 | $acceptStatusLower = strtolower($acceptStatus); |
383 | - foreach((array) $acceptStats as $acceptStat) { |
|
384 | - if(strtolower($acceptStat) == $acceptStatusLower) { |
|
383 | + foreach ((array)$acceptStats as $acceptStat) { |
|
384 | + if (strtolower($acceptStat) == $acceptStatusLower) { |
|
385 | 385 | return true; |
386 | 386 | } |
387 | 387 | } |
@@ -393,12 +393,12 @@ discard block |
||
393 | 393 | global $db; |
394 | 394 | $rel_person_table_Key = "rel_{$person->table_name}_table"; |
395 | 395 | $rel_person_table_Value = "{$event->table_name}_{$person->table_name}"; |
396 | - if(isset($event->$rel_person_table_Key) && $event->$rel_person_table_Key == $rel_person_table_Value) { |
|
396 | + if (isset($event->$rel_person_table_Key) && $event->$rel_person_table_Key == $rel_person_table_Value) { |
|
397 | 397 | $query = self::getEventPersonQuery($event, $person); |
398 | 398 | $re = $db->query($query); |
399 | 399 | $ret = array(); |
400 | - while($row = $db->fetchByAssoc($re) ) { |
|
401 | - if(!isset($row['accept_status'])) { |
|
400 | + while ($row = $db->fetchByAssoc($re)) { |
|
401 | + if (!isset($row['accept_status'])) { |
|
402 | 402 | return null; |
403 | 403 | } |
404 | 404 | $ret[] = $row['accept_status']; |
@@ -421,10 +421,10 @@ discard block |
||
421 | 421 | |
422 | 422 | private static function getEventPersonQuery(SugarBean $event, SugarBean $person) { |
423 | 423 | $eventIdField = array_search($event->table_name, $event->relationship_fields); |
424 | - if(!$eventIdField) { |
|
425 | - $eventIdField = strtolower($event->object_name . '_id'); |
|
424 | + if (!$eventIdField) { |
|
425 | + $eventIdField = strtolower($event->object_name.'_id'); |
|
426 | 426 | } |
427 | - $personIdField = strtolower($person->object_name) . '_id'; |
|
427 | + $personIdField = strtolower($person->object_name).'_id'; |
|
428 | 428 | $query = " |
429 | 429 | SELECT * FROM {$event->table_name}_{$person->table_name} |
430 | 430 | WHERE |
@@ -444,7 +444,7 @@ discard block |
||
444 | 444 | */ |
445 | 445 | public static function loadRemindersDefaultValuesDataJson() { |
446 | 446 | $ret = json_encode(self::loadRemindersDefaultValuesData()); |
447 | - if(!$ret && json_last_error()) { |
|
447 | + if (!$ret && json_last_error()) { |
|
448 | 448 | throw new Exception(json_last_error_msg()); |
449 | 449 | } |
450 | 450 | return $ret; |
@@ -484,14 +484,14 @@ discard block |
||
484 | 484 | } |
485 | 485 | |
486 | 486 | private static function upgradeRestoreReminders() { |
487 | - if($reminders = BeanFactory::getBean('Reminders')->get_full_list('', 'reminders.deleted = 1')) { |
|
488 | - foreach($reminders as $reminder) { |
|
487 | + if ($reminders = BeanFactory::getBean('Reminders')->get_full_list('', 'reminders.deleted = 1')) { |
|
488 | + foreach ($reminders as $reminder) { |
|
489 | 489 | $reminder->deleted = 0; |
490 | 490 | $reminder->save(); |
491 | 491 | } |
492 | 492 | } |
493 | - if($reminderInvitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', 'reminders_invitees.deleted = 1')) { |
|
494 | - foreach($reminderInvitees as $invitee) { |
|
493 | + if ($reminderInvitees = BeanFactory::getBean('Reminders_Invitees')->get_full_list('', 'reminders_invitees.deleted = 1')) { |
|
494 | + foreach ($reminderInvitees as $invitee) { |
|
495 | 495 | $invitee->deleted = 0; |
496 | 496 | $invitee->save(); |
497 | 497 | } |
@@ -505,7 +505,7 @@ discard block |
||
505 | 505 | |
506 | 506 | private static function upgradeUserPreferences() { |
507 | 507 | $users = User::getActiveUsers(); |
508 | - foreach($users as $user_id => $user_name) { |
|
508 | + foreach ($users as $user_id => $user_name) { |
|
509 | 509 | $user = new User(); |
510 | 510 | $user->retrieve($user_id); |
511 | 511 | |
@@ -546,7 +546,7 @@ discard block |
||
546 | 546 | |
547 | 547 | $oldReminderEmailSent = $event->email_reminder_sent; |
548 | 548 | |
549 | - if( ($oldInvitees = self::getOldEventInvitees($event)) && ($event->reminder_time != -1 || ($event->email_reminder_time != -1 && $event->email_reminder_sent != 1)) ) { |
|
549 | + if (($oldInvitees = self::getOldEventInvitees($event)) && ($event->reminder_time != -1 || ($event->email_reminder_time != -1 && $event->email_reminder_sent != 1))) { |
|
550 | 550 | |
551 | 551 | self::migrateReminder( |
552 | 552 | $eventModule, |
@@ -569,11 +569,11 @@ discard block |
||
569 | 569 | private static function getOldEventInvitees(SugarBean $event) { |
570 | 570 | global $db; |
571 | 571 | $ret = array(); |
572 | - $persons = array('users','contacts','leads'); |
|
573 | - foreach($persons as $person){ |
|
572 | + $persons = array('users', 'contacts', 'leads'); |
|
573 | + foreach ($persons as $person) { |
|
574 | 574 | $query = self::upgradeEventPersonQuery($event, $person); |
575 | 575 | $re = $db->query($query); |
576 | - while($row = $db->fetchByAssoc($re) ) { |
|
576 | + while ($row = $db->fetchByAssoc($re)) { |
|
577 | 577 | $ret[] = $row; |
578 | 578 | } |
579 | 579 | } |
@@ -608,7 +608,7 @@ discard block |
||
608 | 608 | |
609 | 609 | private static function migrateReminderInvitees($reminderId, $invitees) { |
610 | 610 | $ret = array(); |
611 | - foreach((array) $invitees as $invitee) { |
|
611 | + foreach ((array)$invitees as $invitee) { |
|
612 | 612 | $newInvitee = BeanFactory::getBean('Reminders_Invitees'); |
613 | 613 | $newInvitee->reminder_id = $reminderId; |
614 | 614 | $newInvitee->related_invitee_module = self::getRelatedInviteeModuleFromInviteeArray($invitee); |
@@ -619,13 +619,13 @@ discard block |
||
619 | 619 | } |
620 | 620 | |
621 | 621 | private static function getRelatedInviteeModuleFromInviteeArray($invitee) { |
622 | - if(array_key_exists('user_id', $invitee)) { |
|
622 | + if (array_key_exists('user_id', $invitee)) { |
|
623 | 623 | return 'Users'; |
624 | 624 | } |
625 | - if(array_key_exists('lead_id', $invitee)) { |
|
625 | + if (array_key_exists('lead_id', $invitee)) { |
|
626 | 626 | return 'Leads'; |
627 | 627 | } |
628 | - if(array_key_exists('contact_id', $invitee)) { |
|
628 | + if (array_key_exists('contact_id', $invitee)) { |
|
629 | 629 | return 'Contacts'; |
630 | 630 | } |
631 | 631 | // TODO:!!!! |
@@ -634,13 +634,13 @@ discard block |
||
634 | 634 | } |
635 | 635 | |
636 | 636 | private static function getRelatedInviteeModuleIdFromInviteeArray($invitee) { |
637 | - if(array_key_exists('user_id', $invitee)) { |
|
637 | + if (array_key_exists('user_id', $invitee)) { |
|
638 | 638 | return $invitee['user_id']; |
639 | 639 | } |
640 | - if(array_key_exists('lead_id', $invitee)) { |
|
640 | + if (array_key_exists('lead_id', $invitee)) { |
|
641 | 641 | return $invitee['lead_id']; |
642 | 642 | } |
643 | - if(array_key_exists('contact_id', $invitee)) { |
|
643 | + if (array_key_exists('contact_id', $invitee)) { |
|
644 | 644 | return $invitee['contact_id']; |
645 | 645 | } |
646 | 646 | // TODO:!!!! |
@@ -685,7 +685,7 @@ discard block |
||
685 | 685 | */ |
686 | 686 | public static function getRemindersListInlineEditView(SugarBean $event) { |
687 | 687 | // TODO: getEditFieldHTML() function in InlineEditing.php:218 doesn't pass the Bean ID to this custom inline edit view function but we have to know which Bean are in the focus to editing. |
688 | - if(!$event->id) { |
|
688 | + if (!$event->id) { |
|
689 | 689 | throw new Exception("No GUID for edit."); |
690 | 690 | } |
691 | 691 | } |
@@ -91,8 +91,7 @@ discard block |
||
91 | 91 | $reminderData = json_decode($remindersDataJson); |
92 | 92 | if(!json_last_error()) { |
93 | 93 | Reminder::saveRemindersData($eventModule, $eventModuleId, $reminderData); |
94 | - } |
|
95 | - else { |
|
94 | + } else { |
|
96 | 95 | throw new Exception(json_last_error_msg()); |
97 | 96 | } |
98 | 97 | } |
@@ -100,7 +99,9 @@ discard block |
||
100 | 99 | private static function saveRemindersData($eventModule, $eventModuleId, $remindersData) { |
101 | 100 | $savedReminderIds = array(); |
102 | 101 | foreach($remindersData as $reminderData) { |
103 | - if(isset($_POST['isDuplicate']) && $_POST['isDuplicate']) $reminderData->id = ''; |
|
102 | + if(isset($_POST['isDuplicate']) && $_POST['isDuplicate']) { |
|
103 | + $reminderData->id = ''; |
|
104 | + } |
|
104 | 105 | $reminderBean = BeanFactory::getBean('Reminders', $reminderData->id); |
105 | 106 | $reminderBean->popup = $reminderData->popup; |
106 | 107 | $reminderBean->email = $reminderData->email; |
@@ -342,8 +343,7 @@ discard block |
||
342 | 343 | if(!$time) { |
343 | 344 | $time = $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_START_DATE']; |
344 | 345 | } |
345 | - } |
|
346 | - else { |
|
346 | + } else { |
|
347 | 347 | $time = $app_strings['MSG_JS_ALERT_MTG_REMINDER_NO_START_DATE']; |
348 | 348 | } |
349 | 349 | |
@@ -366,7 +366,9 @@ discard block |
||
366 | 366 | private static function unQuoteTime($timestr) { |
367 | 367 | $ret = ''; |
368 | 368 | for($i=0; $i<strlen($timestr); $i++) { |
369 | - if($timestr[$i]!="'") $ret .= $timestr[$i]; |
|
369 | + if($timestr[$i]!="'") { |
|
370 | + $ret .= $timestr[$i]; |
|
371 | + } |
|
370 | 372 | } |
371 | 373 | return $ret; |
372 | 374 | } |
@@ -97,6 +97,10 @@ discard block |
||
97 | 97 | } |
98 | 98 | } |
99 | 99 | |
100 | + /** |
|
101 | + * @param string $eventModule |
|
102 | + * @param string $eventModuleId |
|
103 | + */ |
|
100 | 104 | private static function saveRemindersData($eventModule, $eventModuleId, $remindersData) { |
101 | 105 | $savedReminderIds = array(); |
102 | 106 | foreach($remindersData as $reminderData) { |
@@ -408,6 +412,9 @@ discard block |
||
408 | 412 | return null; |
409 | 413 | } |
410 | 414 | |
415 | + /** |
|
416 | + * @param string $person_table |
|
417 | + */ |
|
411 | 418 | private function upgradeEventPersonQuery(SugarBean $event, $person_table) { |
412 | 419 | $eventIdField = strtolower($event->object_name).'_id'; |
413 | 420 | $query = " |
@@ -606,6 +613,9 @@ discard block |
||
606 | 613 | self::removeOldReminder($eventModule, $eventModuleId); |
607 | 614 | } |
608 | 615 | |
616 | + /** |
|
617 | + * @param string $reminderId |
|
618 | + */ |
|
609 | 619 | private static function migrateReminderInvitees($reminderId, $invitees) { |
610 | 620 | $ret = array(); |
611 | 621 | foreach((array) $invitees as $invitee) { |
@@ -45,12 +45,12 @@ |
||
45 | 45 | require_once('include/formbase.php'); |
46 | 46 | if (!empty($_REQUEST['record'])) { |
47 | 47 | |
48 | - $document = new Document(); |
|
49 | - $document->retrieve($_REQUEST['record']); |
|
50 | - if (!empty($document->document_revision_id) && !empty($_REQUEST['get_latest_for_id'])) { |
|
51 | - $query="update linked_documents set document_revision_id='{$document->document_revision_id}', date_modified='".TimeDate::getInstance()->nowDb()."' where id ='{$_REQUEST['get_latest_for_id']}' "; |
|
52 | - $document->db->query($query); |
|
53 | - } |
|
48 | + $document = new Document(); |
|
49 | + $document->retrieve($_REQUEST['record']); |
|
50 | + if (!empty($document->document_revision_id) && !empty($_REQUEST['get_latest_for_id'])) { |
|
51 | + $query="update linked_documents set document_revision_id='{$document->document_revision_id}', date_modified='".TimeDate::getInstance()->nowDb()."' where id ='{$_REQUEST['get_latest_for_id']}' "; |
|
52 | + $document->db->query($query); |
|
53 | + } |
|
54 | 54 | } |
55 | 55 | handleRedirect(); |
56 | 56 | ?> |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
3 | 3 | /********************************************************************************* |
4 | 4 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 5 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |
@@ -47,8 +47,8 @@ discard block |
||
47 | 47 | |
48 | 48 | $document = new Document(); |
49 | 49 | $document->retrieve($_REQUEST['record']); |
50 | - if (!empty($document->document_revision_id) && !empty($_REQUEST['get_latest_for_id'])) { |
|
51 | - $query="update linked_documents set document_revision_id='{$document->document_revision_id}', date_modified='".TimeDate::getInstance()->nowDb()."' where id ='{$_REQUEST['get_latest_for_id']}' "; |
|
50 | + if (!empty($document->document_revision_id) && !empty($_REQUEST['get_latest_for_id'])) { |
|
51 | + $query = "update linked_documents set document_revision_id='{$document->document_revision_id}', date_modified='".TimeDate::getInstance()->nowDb()."' where id ='{$_REQUEST['get_latest_for_id']}' "; |
|
52 | 52 | $document->db->query($query); |
53 | 53 | } |
54 | 54 | } |
@@ -1,5 +1,7 @@ |
||
1 | 1 | <?php |
2 | -if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
|
2 | +if(!defined('sugarEntry') || !sugarEntry) { |
|
3 | + die('Not A Valid Entry Point'); |
|
4 | +} |
|
3 | 5 | /********************************************************************************* |
4 | 6 | * SugarCRM Community Edition is a customer relationship management program developed by |
5 | 7 | * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. |