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;
 }
Exemplo n.º 2
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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;
     }
 }
Exemplo n.º 5
0
 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;
 }