function process(Mobile_API_Request $request) { global $current_user; $response = new Mobile_API_Response(); $current_user = $this->getActiveUser(); $currentUserModel = Users_Record_Model::getInstanceFromUserObject($current_user); $moduleName = $request->get('module'); $users = $this->getUsers($currentUserModel, $moduleName); $groups = $this->getGroups($currentUserModel, $moduleName); $result = array('users' => $users, 'groups' => $groups); $response->setResult($result); return $response; }
/** * Sync Calendar Records * @return <array> Count of Calendar Records */ public function Calendar($userId = false) { if (!$userId) { $user = Users_Record_Model::getCurrentUserModel(); } else { $user = new Users(); $user = $user->retrieve_entity_info($userId, 'Users'); $user = Users_Record_Model::getInstanceFromUserObject($user); } $controller = new Google_Calendar_Controller($user); $records = $controller->synchronize(); $syncRecords = $this->getSyncRecordsCount($records); $syncRecords['vtiger']['more'] = $controller->targetConnector->moreRecordsExits(); $syncRecords['google']['more'] = $controller->sourceConnector->moreRecordsExits(); return $syncRecords; }
function replaceRelatedModuleFields($content, $module, $recordid, $fields, &$site_URL) { $db = PearDatabase::getInstance(); require_once 'include/utils/utils.php'; $userLang = Users_Record_Model::getCurrentUserModel()->get('language'); include "languages/" . $userLang . "/OSSPdf.php"; require_once 'include/utils/CommonUtils.php'; require_once 'include/fields/CurrencyField.php'; ################################################################################# $uitypelist2 = array('10', '58', '51', '57', '68', '59', '75', '80', '76', '73', '81', '78'); $uitype2module2 = array('58' => 'Campaigns', '51' => 'Accounts', '57' => 'Contacts', '68' => 'Accounts;Contacts', '59' => 'Products', '75' => 'Vendors', '80' => 'SalesOrder', '76' => 'Potentials', '73' => 'Accounts', '81' => 'Vendors', '78' => 'Quotes'); ################################################################################# $uitypelist = array('10', '58', '51', '57', '68', '59', '75', '80', '76', '73', '81', '52', '53', '78'); $uitype2module = array('58' => 'Campaigns', '51' => 'Accounts', '57' => 'Contacts', '68' => 'Accounts;Contacts', '59' => 'Products', '75' => 'Vendors', '80' => 'SalesOrder', '76' => 'Potentials', '73' => 'Accounts', '81' => 'Vendors', '52' => 'Users', '53' => 'Users', '78' => 'Quotes'); ################################################################################# $ui_datefields = array('70', '5', '23'); ################################################################################# $ui_currfields = array('71', '72', '7'); ################################################################################# if ($module == 'Activity') { $wynik = $db->query("select tabid,name from vtiger_tab where name='Calendar'", true); } else { $wynik = $db->query("select tabid,name from vtiger_tab where name='{$module}'", true); } $moduleid = $db->query_result($wynik, 0, "tabid"); $list = array(); $pobierz = $db->query("select fieldid,uitype, fieldname from vtiger_field where tabid = '{$moduleid}'", true); for ($i = 0; $i < $db->num_rows($pobierz); $i++) { $uitype = $db->query_result($pobierz, $i, "uitype"); $fieldid = $db->query_result($pobierz, $i, "fieldid"); if (in_array($uitype, $uitypelist)) { if ($uitype == '10') { $wynik = $db->query("select relmodule from vtiger_fieldmodulerel where fieldid = '{$fieldid}'", true); for ($k = 0; $k < $db->num_rows($wynik); $k++) { $list[$db->query_result($wynik, $k, "relmodule")] = $fields[$db->query_result($pobierz, $i, "fieldname")]; } } else { $zmienna = $uitype2module[$uitype]; $zmienna = explode(';', $zmienna); foreach ($zmienna as $value) { $list[$value] = $fields[$db->query_result($pobierz, $i, "fieldname")]; } } } } if (count($list) > 0) { foreach ($list as $name => $record) { $modulename = $name; require_once "modules/{$modulename}/{$modulename}.php"; if ($modulename == 'Users') { $obiekt = new $modulename(); $pobierz_usera = $db->query("select * from vtiger_users where id = '{$record}'", true); if ($db->num_rows($pobierz_usera) > 0) { $obiekt->retrieve_entity_info($record, $modulename); } } else { $obiekt = new $modulename(); $assigned_module = getSalesEntityType($record); if (isRecordExists($record) && $assigned_module == $modulename) { $obiekt->retrieve_entity_info($record, $modulename); } } $pobierz = $db->query("select tabid from vtiger_tab where name = '{$modulename}'", true); $moduleid = $db->query_result($pobierz, 0, "tabid"); $pobierz_bloki = $db->query("select blockid, blocklabel from vtiger_blocks where tabid = '{$moduleid}'", true); $relatedfield_list = array(); for ($k = 0; $k < $db->num_rows($pobierz_bloki); $k++) { $blockid = $db->query_result($pobierz_bloki, $k, "blockid"); $label = $db->query_result($pobierz_bloki, $k, "blocklabel"); $pobierz_pola = $db->query("select fieldname,fieldlabel,uitype from vtiger_field where block='{$blockid}' and tabid = '{$moduleid}'", true); for ($i = 0; $i < $db->num_rows($pobierz_pola); $i++) { $field_uitype = $db->query_result($pobierz_pola, $i, "uitype"); $label = $db->query_result($pobierz_pola, $i, "fieldlabel"); $key = $db->query_result($pobierz_pola, $i, "fieldname"); $value = $obiekt->column_fields[$key]; ################################################ /// for date type fields if (in_array($field_uitype, $ui_datefields) && !empty($field)) { $value = getValidDisplayDate($value); } ################################################ /// for currency type fields if (in_array($field_uitype, $ui_currfields)) { $currfield = new CurrencyField($value); $value = $currfield->getDisplayValue(); } //// for users language field if ($field_uitype == 27) { if ($value == 'I') { $value = getTranslatedString('Internal', $modulename); } elseif ($value == 'E') { $value = getTranslatedString('External', $modulename); } } if ($field_uitype == 32) { $name = '%' . $value . '%'; $new_value = $db->query("select name from vtiger_language where prefix like '{$name}'", true); $value = getTranslatedString($db->query_result($new_value, 0, "name")); } /// dla pól z przypisanym użytkownikie, if ($field_uitype == 53 || $field_uitype == 52) { $value = getUserName($value); } /// dla pól z folderem /* if( $field_uitype == 26 ) { $new_value = $db->query( "select foldername from vtiger_attachmentsfolder where folderid = '$value'", true ); $value = $db->query_result( $new_value, 0, "foldername" ); } */ /// Dla pól z roląużytkownika w organizacji if ($field_uitype == 98) { $new_value = $db->query("select rolename from vtiger_role where roleid = '{$value}'", true); $value = $db->query_result($new_value, 0, "rolename"); } /// Dla pól typu checkbox if ($field_uitype == 56) { if ($value == 1) { $value = getTranslatedString('yes', "OSSPdf"); } elseif ($value == 0) { $value = getTranslatedString('no', "OSSPdf"); } } /// Dla pola ze zdjęciem użytkownika if ($field_uitype == 105) { $recordModel = Users_Record_Model::getInstanceFromUserObject($obiekt); $details = $recordModel->getImageDetails(); if (is_array($details[0])) { $value = $details[0]['path'] . '_' . $details[0]['orgname']; } else { $value = ''; } } /// Dla pól typu lista wyboru if ($field_uitype == 15 || $field_uitype == 16 || $field_uitype == 55 && $key == 'salutationtype') { $value = getTranslatedString($value, $modulename); } if ($field_uitype == 83) { $pobierz_tax = $db->query("select * from vtiger_producttaxrel where productid = '{$record}'", true); for ($a = 0; $a < $db->num_rows($pobierz_tax); $a++) { $taxid = $db->query_result($pobierz_tax, $a, "taxid"); $taxvalue = $db->query_result($pobierz_tax, $a, "taxpercentage"); if ($taxid == 1) { $value .= getTranslatedString('LBL_VAT') . getTranslatedString('COVERED_PERCENTAGE') . ': ' . $taxvalue . '%'; } elseif ($taxid == 2) { $value .= getTranslatedString('LBL_SALES') . getTranslatedString('COVERED_PERCENTAGE') . ': ' . $taxvalue . '%'; } elseif ($taxid == 3) { $value .= getTranslatedString('LBL_SERVICE') . getTranslatedString('COVERED_PERCENTAGE') . ': ' . $taxvalue . '%'; } $value .= '<br/>'; } } ######################## if (in_array($field_uitype2, $uitypelist2)) { if ($field_uitype == 10) { $pobierz_wartosc = $db->query("select relmodule from vtiger_fieldmodulerel where fieldid = '{$fieldid}'", true); for ($i = 0; $i < $db->num_rows($pobierz_wartosc); $i++) { $module .= $db->query_result($pobierz_wartosc, $i, "relmodule") . ';'; } } else { $module = $uitype2module[$field_uitype]; } $module = trim($module, ';'); $ids = explode(';', $module); foreach ($ids as $singleid) { $newvalue = $db->query("select tablename, entityidfield,fieldname from vtiger_entityname where modulename = '{$singleid}'", true); $tablename = $db->query_result($newvalue, 0, "tablename"); $fieldname = $db->query_result($newvalue, 0, "fieldname"); $tableid = $db->query_result($newvalue, 0, "entityidfield"); $newvalue2 = $db->query("select {$fieldname} from {$tablename} where {$tableid} = '{$value}'", true); $value = $db->query_result($newvalue2, 0, $fieldname); } } ######################## if ($field_uitype == 10 && is_numeric($value)) { if ($value != 0) { $value = Vtiger_Functions::getCRMRecordLabel($value); } elseif ($value == 0) { $value = ''; } } $string = "#" . $modulename . "_" . $key . "#"; $string2 = "#" . $modulename . "_label_" . $key . "#"; //."# TLUMACZENIE: ". getTranslatedString( $label, $modulename ); $pozycja = (int) strpos($content, $string2); $content = str_replace($string2, getTranslatedString($label, $modulename), $content); if ($record != 0 && ($assigned_module == $modulename || $modulename == 'Users')) { $content = str_replace($string, $value, $content); } else { $content = str_replace($string, '', $content); } } } } } return $content; }
protected function pullEvents($start, $end, &$result, $userid = false, $color = null, $textColor = 'white') { $dbStartDateOject = DateTimeField::convertToDBTimeZone($start); $dbStartDateTime = $dbStartDateOject->format('Y-m-d H:i:s'); $dbStartDateTimeComponents = explode(' ', $dbStartDateTime); $dbStartDate = $dbStartDateTimeComponents[0]; $dbEndDateObject = DateTimeField::convertToDBTimeZone($end); $dbEndDateTime = $dbEndDateObject->format('Y-m-d H:i:s'); $currentUser = Users_Record_Model::getCurrentUserModel(); $db = PearDatabase::getInstance(); $moduleModel = Vtiger_Module_Model::getInstance('Events'); if ($userid) { $focus = new Users(); $focus->id = $userid; $focus->retrieve_entity_info($userid, 'Users'); $user = Users_Record_Model::getInstanceFromUserObject($focus); $userName = $user->getName(); $queryGenerator = new QueryGenerator($moduleModel->get('name'), $user); } else { $queryGenerator = new QueryGenerator($moduleModel->get('name'), $currentUser); } $queryGenerator->setFields(array('subject', 'eventstatus', 'visibility', 'date_start', 'time_start', 'due_date', 'time_end', 'assigned_user_id', 'id', 'activitytype')); $query = $queryGenerator->getQuery(); $query .= " AND vtiger_activity.activitytype NOT IN ('Emails','Task') AND "; $hideCompleted = $currentUser->get('hidecompletedevents'); if ($hideCompleted) { $query .= "vtiger_activity.eventstatus != 'HELD' AND "; } $query .= " ((concat(date_start, '', time_start) >= '{$dbStartDateTime}' AND concat(due_date, '', time_end) < '{$dbEndDateTime}') OR ( due_date >= '{$dbStartDate}'))"; $params = array(); if (empty($userid)) { $eventUserId = $currentUser->getId(); } else { $eventUserId = $userid; } $params = array_merge(array($eventUserId), $this->getGroupsIdsForUsers($eventUserId)); $query .= " AND vtiger_crmentity.smownerid IN (" . generateQuestionMarks($params) . ")"; $queryResult = $db->pquery($query, $params); while ($record = $db->fetchByAssoc($queryResult)) { $item = array(); $crmid = $record['activityid']; $visibility = $record['visibility']; $activitytype = $record['activitytype']; $status = $record['eventstatus']; $item['id'] = $crmid; $item['visibility'] = $visibility; $item['activitytype'] = $activitytype; $item['status'] = $status; if (!$currentUser->isAdminUser() && $visibility == 'Private' && $userid && $userid != $currentUser->getId()) { $item['title'] = decode_html($userName) . ' - ' . decode_html(vtranslate('Busy', 'Events')) . '*'; $item['url'] = ''; } else { $item['title'] = decode_html($record['subject']) . ' - (' . decode_html(vtranslate($record['eventstatus'], 'Calendar')) . ')'; $item['url'] = sprintf('index.php?module=Calendar&view=Detail&record=%s', $crmid); } $dateTimeFieldInstance = new DateTimeField($record['date_start'] . ' ' . $record['time_start']); $userDateTimeString = $dateTimeFieldInstance->getFullcalenderDateTimevalue($currentUser); $dateTimeComponents = explode(' ', $userDateTimeString); $dateComponent = $dateTimeComponents[0]; //Conveting the date format in to Y-m-d . since full calendar expects in the same format $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $currentUser->get('date_format')); $item['start'] = $dataBaseDateFormatedString . ' ' . $dateTimeComponents[1]; $dateTimeFieldInstance = new DateTimeField($record['due_date'] . ' ' . $record['time_end']); $userDateTimeString = $dateTimeFieldInstance->getFullcalenderDateTimevalue($currentUser); $dateTimeComponents = explode(' ', $userDateTimeString); $dateComponent = $dateTimeComponents[0]; //Conveting the date format in to Y-m-d . since full calendar expects in the same format $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $currentUser->get('date_format')); $item['end'] = $dataBaseDateFormatedString . ' ' . $dateTimeComponents[1]; $item['className'] = $cssClass; $item['allDay'] = false; $item['color'] = $color; $item['textColor'] = $textColor; $item['module'] = $moduleModel->getName(); $result[] = $item; } }
public function process($feed, $request, $start, $end, &$result, $userid = false, $color = null, $textColor = 'white') { $dbStartDateOject = DateTimeField::convertToDBTimeZone($start); $dbStartDateTime = $dbStartDateOject->format('Y-m-d H:i:s'); $dbStartDateTimeComponents = explode(' ', $dbStartDateTime); $dbStartDate = $dbStartDateTimeComponents[0]; $dbEndDateObject = DateTimeField::convertToDBTimeZone($end); $dbEndDateTime = $dbEndDateObject->format('Y-m-d H:i:s'); $currentUser = Users_Record_Model::getCurrentUserModel(); $db = PearDatabase::getInstance(); $moduleModel = Vtiger_Module_Model::getInstance('Events'); if ($userid) { $focus = new Users(); $focus->id = $userid; $focus->retrieve_entity_info($userid, 'Users'); $user = Users_Record_Model::getInstanceFromUserObject($focus); $userName = $user->getName(); } $params = array(); if (empty($userid)) { $eventUserId = $currentUser->getId(); } else { $eventUserId = $userid; } $params = array_merge(array($eventUserId), $feed->getGroupsIdsForUsers($eventUserId)); $query = 'SELECT vtiger_activity.subject, vtiger_activity.eventstatus, vtiger_activity.visibility, vtiger_activity.date_start, vtiger_activity.time_start, vtiger_activity.due_date, vtiger_activity.time_end, vtiger_activity.activityid, vtiger_activity.activitytype, vtiger_seactivityrel.crmid as parent_id FROM vtiger_activity LEFT JOIN vtiger_seactivityrel ON vtiger_seactivityrel.activityid = vtiger_activity.activityid WHERE'; $query .= " vtiger_activity.activitytype NOT IN ('Emails','Task') AND "; $hideCompleted = $currentUser->get('hidecompletedevents'); if ($hideCompleted) { $query .= "vtiger_activity.eventstatus != 'HELD' AND "; } $query .= " ((concat(date_start, '', time_start) >= '{$dbStartDateTime}' AND concat(due_date, '', time_end) < '{$dbEndDateTime}') ) AND vtiger_activity.smownerid IN (" . generateQuestionMarks($params) . ") AND vtiger_activity.deleted=0"; $queryResult = $db->pquery($query, $params); while ($record = $db->fetchByAssoc($queryResult)) { $item = array(); $crmid = $record['activityid']; $visibility = $record['visibility']; $activitytype = $record['activitytype']; $status = $record['eventstatus']; $item['id'] = $crmid; $item['visibility'] = $visibility; $item['activitytype'] = $activitytype; $item['status'] = $status; //dodanie powiazan albo z kontaktow albo z powiazanych $title_add = $record['parent_id'] ? Vtiger_Functions::getCRMRecordLabel($record['parent_id']) : implode(', ', getActivityRelatedContacts($crmid)); if (!$currentUser->isAdminUser() && $visibility == 'Private' && $userid && $userid != $currentUser->getId()) { $item['title'] = decode_html($userName); $item['url'] = ''; } else { $item['title'] = decode_html($record['subject']); $item['url'] = sprintf('index.php?module=Calendar&view=Detail&record=%s', $crmid); } if ($title_add != '') { $item['title'] .= ' [' . decode_html($title_add) . ']'; } $dateTimeFieldInstance = new DateTimeField($record['date_start'] . ' ' . $record['time_start']); $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue($currentUser); $dateTimeComponents = explode(' ', $userDateTimeString); $dateComponent = $dateTimeComponents[0]; //Conveting the date format in to Y-m-d . since full calendar expects in the same format $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $currentUser->get('date_format')); $item['start'] = $dataBaseDateFormatedString . ' ' . $dateTimeComponents[1]; $dateTimeFieldInstance = new DateTimeField($record['due_date'] . ' ' . $record['time_end']); $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue($currentUser); $dateTimeComponents = explode(' ', $userDateTimeString); $dateComponent = $dateTimeComponents[0]; //Conveting the date format in to Y-m-d . since full calendar expects in the same format $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $currentUser->get('date_format')); $item['end'] = $dataBaseDateFormatedString . ' ' . $dateTimeComponents[1]; $item['className'] = $cssClass; $item['allDay'] = false; $item['color'] = $color; $item['textColor'] = $textColor; $item['module'] = $moduleModel->getName(); $result[] = $item; } return $widget; }