public function save(Vtiger_Request $request) { $fieldId = $request->get('fieldid'); $fieldInstance = Vtiger_Field_Model::getInstance($fieldId); $fields = ['presence', 'quickcreate', 'summaryfield', 'helpinfo', 'generatedtype', 'masseditable', 'displaytype']; foreach ($request->getAll() as $key => $value) { if ($key == 'mandatory') { $fieldInstance->updateTypeofDataFromMandatory($value); } if (in_array($key, $fields)) { $fieldInstance->set($key, $value); } } $defaultValue = $request->get('fieldDefaultValue'); if ($fieldInstance->getFieldDataType() == 'date') { $dateInstance = new Vtiger_Date_UIType(); $defaultValue = $dateInstance->getDBInsertedValue($defaultValue); } if ($request->has('fieldMask')) { $fieldInstance->set('fieldparams', $request->get('fieldMask')); } if (is_array($defaultValue)) { $defaultValue = implode(' |##| ', $defaultValue); } $fieldInstance->set('defaultvalue', $defaultValue); $response = new Vtiger_Response(); try { $fieldInstance->save(); $response->setResult(array('success' => true, 'presence' => $request->get('presence'), 'mandatory' => $fieldInstance->isMandatory(), 'label' => vtranslate($fieldInstance->get('label'), $request->get('sourceModule')))); } catch (Exception $e) { $response->setError($e->getCode(), $e->getMessage()); } $response->emit(); }
function preProcess(Vtiger_Request $request, $display = true) { parent::preProcess($request, false); $viewer = $this->getViewer($request); $menuModelsList = Vtiger_Menu_Model::getAll(true); $selectedModule = $request->getModule(); $menuStructure = Vtiger_MenuStructure_Model::getInstanceFromMenuList($menuModelsList, $selectedModule); $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); $companyLogo = $companyDetails->getLogo(); $currentDate = Vtiger_Date_UIType::getDisplayDateValue(date('Y-n-j')); $viewer->assign('CURRENTDATE', $currentDate); $viewer->assign('MODULE', $selectedModule); $viewer->assign('MODULE_NAME', $selectedModule); $viewer->assign('QUALIFIED_MODULE', $selectedModule); $viewer->assign('PARENT_MODULE', $request->get('parent')); $viewer->assign('VIEW', $request->get('view')); // Order by pre-defined automation process for QuickCreate. uksort($menuModelsList, array('Vtiger_MenuStructure_Model', 'sortMenuItemsByProcess')); $viewer->assign('MENUS', $menuModelsList); $viewer->assign('MENU_STRUCTURE', $menuStructure); $viewer->assign('MENU_SELECTED_MODULENAME', $selectedModule); $viewer->assign('MENU_TOPITEMS_LIMIT', $menuStructure->getLimit()); $viewer->assign('COMPANY_LOGO', $companyLogo); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $homeModuleModel = Vtiger_Module_Model::getInstance('Home'); $viewer->assign('HOME_MODULE_MODEL', $homeModuleModel); $viewer->assign('HEADER_LINKS', $this->getHeaderLinks()); $viewer->assign('ANNOUNCEMENT', $this->getAnnouncement()); $viewer->assign('SEARCHABLE_MODULES', Vtiger_Module_Model::getSearchableModules()); if ($display) { $this->preProcessDisplay($request); } }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $linkId = $request->get('linkid'); $createdTime = $request->get('createdtime'); $owner = $request->get('owner'); //Date conversion from user to database format if (!empty($createdTime)) { $dates['start'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['start']); $dates['end'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['end']); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $data = $moduleModel->getLeadsCreated($owner, $dates); $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); //Include special script and css needed for this widget $viewer->assign('SCRIPTS', $this->getHeaderScripts($request)); $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('DATA', $data); $viewer->assign('CURRENTUSER', $currentUser); $accessibleUsers = $currentUser->getAccessibleUsersForModule('Leads'); $viewer->assign('ACCESSIBLE_USERS', $accessibleUsers); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/DashBoardWidgetContents.tpl', $moduleName); } else { $viewer->view('dashboards/LeadsCreated.tpl', $moduleName); } }
public function getListViewEntries($pagingModel) { $db = PearDatabase::getInstance(); $moduleModel = Vtiger_Module_Model::getInstance('Portal'); $listQuery = $this->getQuery(); $startIndex = $pagingModel->getStartIndex(); $pageLimit = $pagingModel->getPageLimit(); $orderBy = $this->get('orderby'); $sortOrder = $this->get('sortorder'); if (!empty($orderBy)) { $listQuery .= ' ORDER BY ' . $orderBy . ' ' . $sortOrder; } $listQuery .= " LIMIT {$startIndex}," . $pageLimit; $listResult = $db->pquery($listQuery, array()); $listViewEntries = array(); while ($row = $db->fetchByAssoc($listResult)) { $listViewEntries[$row['portalid']] = array(); $listViewEntries[$row['portalid']]['portalname'] = $row['portalname']; $listViewEntries[$row['portalid']]['portalurl'] = $row['portalurl']; $listViewEntries[$row['portalid']]['createdtime'] = Vtiger_Date_UIType::getDisplayDateValue($row['createdtime']); } $index = 0; foreach ($listViewEntries as $recordId => $record) { $rawData = $db->query_result_rowdata($listResult, $index++); $record['id'] = $recordId; $listViewRecordModels[$recordId] = $moduleModel->getRecordFromArray($record, $rawData); } return $listViewRecordModels; }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $linkId = $request->get('linkid'); $owner = $request->get('owner'); $dates = $request->get('expectedclosedate'); //Date conversion from user to database format if (!empty($dates)) { $dates['start'] = Vtiger_Date_UIType::getDBInsertedValue($dates['start']); $dates['end'] = Vtiger_Date_UIType::getDBInsertedValue($dates['end']); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $data = $moduleModel->getCampaignsWidget($owner, $dates); $listViewUrl = $moduleModel->getListViewUrl(); for ($i = 0; $i < count($data); $i++) { $data[$i][] = $listViewUrl . $this->getSearchParams($data[$i][0], $owner, $dates); } $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('DATA', $data); //Include special script and css needed for this widget $viewer->assign('STYLES', $this->getHeaderCss($request)); $viewer->assign('CURRENTUSER', $currentUser); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/CampaignsWidget.tpl', $moduleName); } else { $viewer->view('dashboards/CampaignsWidget.tpl', $moduleName); } }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $linkId = $request->get('linkid'); $owner = $request->get('owner'); $dates = $request->get('expectedclosedate'); //Date conversion from user to database format if (!empty($dates)) { $dates['start'] = Vtiger_Date_UIType::getDBInsertedValue($dates['start']); $dates['end'] = Vtiger_Date_UIType::getDBInsertedValue($dates['end']); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $data = $moduleModel->getPotentialsCountBySalesStage($owner, $dates); $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('DATA', $data); //Include special script and css needed for this widget $viewer->assign('SCRIPTS', $this->getHeaderScripts($request)); $viewer->assign('STYLES', $this->getHeaderCss($request)); $viewer->assign('CURRENTUSER', $currentUser); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/DashBoardWidgetContents.tpl', $moduleName); } else { $viewer->view('dashboards/GroupBySalesStage.tpl', $moduleName); } }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $linkId = $request->get('linkid'); $expectedclosedate = $request->get('expectedclosedate'); //Date conversion from user to database format if (!empty($expectedclosedate)) { $closingdates['start'] = Vtiger_Date_UIType::getDBInsertedValue($expectedclosedate['start']); $closingdates['end'] = Vtiger_Date_UIType::getDBInsertedValue($expectedclosedate['end']); } $createdTime = $request->get('createdtime'); //Date conversion from user to database format if (!empty($createdTime)) { $dates['start'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['start']); $dates['end'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['end']); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $data = $moduleModel->getForecast($closingdates, $dates); $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); //Include special script and css needed for this widget $viewer->assign('SCRIPTS', $this->getHeaderScripts($request)); $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('DATA', $data); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/DashBoardWidgetContents.tpl', $moduleName); } else { $viewer->view('dashboards/Forecast.tpl', $moduleName); } }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $linkId = $request->get('linkid'); $data = $request->get('data'); $createdTime = $request->get('createdtime'); //Date conversion from user to database format if (!empty($createdTime)) { $dates['start'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['start']); $dates['end'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['end']); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $data = $moduleModel->getCountriesByRating($request->get('owner'), $dates); $listViewUrl = $moduleModel->getListViewUrl(); for ($i = 0; $i < count($data); $i++) { $data[$i]["links"] = $listViewUrl . $this->getSearchParams($data[$i][2], $request->get('owner'), $dates); } $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); //Include special script and css needed for this widget $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('DATA', $data); $viewer->assign('CURRENTUSER', $currentUser); $accessibleUsers = $currentUser->getAccessibleUsersForModule($moduleName); $viewer->assign('ACCESSIBLE_USERS', $accessibleUsers); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/DashBoardWidgetContents.tpl', $moduleName); } else { $viewer->view('dashboards/CountriesByRating.tpl', $moduleName); } }
function preProcess(Vtiger_Request $request, $display = true) { parent::preProcess($request, false); $viewer = $this->getViewer($request); $selectedModule = $request->getModule(); $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); $companyLogo = $companyDetails->getLogo(); $currentDate = Vtiger_Date_UIType::getDisplayDateValue(date('Y-n-j')); $viewer->assign('CURRENTDATE', $currentDate); $viewer->assign('MODULE', $selectedModule); $viewer->assign('MODULE_NAME', $selectedModule); $viewer->assign('QUALIFIED_MODULE', $selectedModule); $viewer->assign('PARENT_MODULE', $request->get('parent')); $viewer->assign('MENUS', Vtiger_Menu_Model::getAll(true)); $viewer->assign('VIEW', $request->get('view')); $viewer->assign('COMPANY_LOGO', $companyLogo); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $homeModuleModel = Vtiger_Module_Model::getInstance('Home'); $viewer->assign('HOME_MODULE_MODEL', $homeModuleModel); $viewer->assign('HEADER_LINKS', $this->getHeaderLinks()); $viewer->assign('ANNOUNCEMENT', $this->getAnnouncement()); $viewer->assign('SEARCHABLE_MODULES', Vtiger_Module_Model::getSearchableModules()); $viewer->assign('CHAT_ACTIVE', vtlib_isModuleActive('AJAXChat')); if ($display) { $this->preProcessDisplay($request); } }
public function preProcess(Vtiger_Request $request, $display=true) { if($this->checkPermission($request)) { $viewer = $this->getViewer($request); $currentUser = Users_Record_Model::getCurrentUserModel(); $selectedModule = $request->getModule(); $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); $companyLogo = $companyDetails->getLogo(); $currentDate = Vtiger_Date_UIType::getDisplayDateValue(date('Y-n-j')); $viewer->assign('CURRENTDATE', $currentDate); $viewer->assign('MODULE', $selectedModule); $viewer->assign('MODULE_NAME', $selectedModule); $viewer->assign('QUALIFIED_MODULE', $selectedModule); $viewer->assign('PARENT_MODULE', $request->get('parent')); $viewer->assign('MENUS', Vtiger_Menu_Model::getAll(true)); $viewer->assign('VIEW', $request->get('view')); $viewer->assign('COMPANY_LOGO',$companyLogo); $viewer->assign('USER_MODEL', $currentUser); $homeModuleModel = Vtiger_Module_Model::getInstance('Home'); $viewer->assign('HOME_MODULE_MODEL', $homeModuleModel); $viewer->assign('HEADER_LINKS',$this->getHeaderLinks()); $viewer->assign('ANNOUNCEMENT', $this->getAnnouncement()); $viewer->assign('SEARCHABLE_MODULES', Vtiger_Module_Model::getSearchableModules()); $viewer->assign('CHAT_ACTIVE', vtlib_isModuleActive('AJAXChat')); //Additional parameters $recordId = $request->get('record'); $moduleName = $request->getModule(); $detailViewModel = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); $recordModel = $detailViewModel->getRecord(); $detailViewLinkParams = array('MODULE'=>$moduleName,'RECORD'=>$recordId); $detailViewLinks = $detailViewModel->getDetailViewLinks($detailViewLinkParams); $viewer->assign('RECORD', $recordModel); $viewer->assign('MODULE_MODEL', $detailViewModel->getModule()); $viewer->assign('DETAILVIEW_LINKS', $detailViewLinks); $viewer->assign('IS_EDITABLE', $detailViewModel->getRecord()->isEditable($moduleName)); $viewer->assign('IS_DELETABLE', $detailViewModel->getRecord()->isDeletable($moduleName)); $linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view')); $linkModels = $detailViewModel->getSideBarLinks($linkParams); $viewer->assign('QUICK_LINKS', $linkModels); $viewer->assign('PAGETITLE', $this->getPageTitle($request)); $viewer->assign('FOOTER_SCRIPTS',$this->getFooterScripts($request)); $viewer->assign('STYLES',$this->getHeaderCss($request)); $viewer->assign('LANGUAGE_STRINGS', $this->getJSLanguageStrings($request)); $viewer->assign('CURRENT_VIEW', $request->get('view')); $viewer->assign('SKIN_PATH', Vtiger_Theme::getCurrentUserThemePath()); $viewer->assign('HTMLLANG', Vtiger_Language_Handler::getShortLanguageName()); $viewer->assign('LANGUAGE', $currentUser->get('language')); $viewer->assign('HEADER_SCRIPTS',$this->getHeaderScripts($request)); if($display) { $this->preProcessDisplay($request); } } }
<?php if ($_valid && !is_callable('content_56059e760aa14')) {function content_56059e760aa14($_smarty_tpl) {?> <?php $_smarty_tpl->tpl_vars["dateFormat"] = new Smarty_variable($_smarty_tpl->tpl_vars['USER_MODEL']->value->get('date_format'), null, 0);?> <?php $_smarty_tpl->tpl_vars["currentDate"] = new Smarty_variable(Vtiger_Date_UIType::getDisplayDateValue(''), null, 0);?> <?php $_smarty_tpl->tpl_vars["time"] = new Smarty_variable(Vtiger_Time_UIType::getDisplayTimeValue(null), null, 0);?> <?php $_smarty_tpl->tpl_vars["currentTimeInVtigerFormat"] = new Smarty_variable(Vtiger_Time_UIType::getTimeValueInAMorPM($_smarty_tpl->tpl_vars['time']->value), null, 0);?> <?php if ($_smarty_tpl->tpl_vars['COUNTER']->value==2){?> </tr><tr class="<?php if (!($_smarty_tpl->tpl_vars['SHOW_FOLLOW_UP']->value)){?>hide <?php }?>followUpContainer massEditActiveField"> <?php $_smarty_tpl->tpl_vars['COUNTER'] = new Smarty_variable(1, null, 0);?> <?php }else{ ?> <?php $_smarty_tpl->tpl_vars['COUNTER'] = new Smarty_variable($_smarty_tpl->tpl_vars['COUNTER']->value+1, null, 0);?> <?php }?> <?php ob_start();?><?php echo vtranslate('LBL_HOLD_FOLLOWUP_ON',$_smarty_tpl->tpl_vars['MODULE']->value);?> <?php $_tmp1=ob_get_clean();?><?php $_smarty_tpl->tpl_vars['FOLLOW_UP_LABEL'] = new Smarty_variable($_tmp1, null, 0);?> <td class="fieldLabel"> <label class="muted pull-right marginRight10px"> <input name="followup" type="checkbox" class="alignTop" <?php if ($_smarty_tpl->tpl_vars['FOLLOW_UP_STATUS']->value){?> checked<?php }?>/> <?php echo $_smarty_tpl->tpl_vars['FOLLOW_UP_LABEL']->value;?> </label> </td> <?php ob_start();?><?php echo $_smarty_tpl->tpl_vars['FOLLOW_UP_LABEL']->value;?> <?php $_tmp2=ob_get_clean();?><?php $_smarty_tpl->createLocalArrayVariable('FIELD_INFO', null, 0); $_smarty_tpl->tpl_vars['FIELD_INFO']->value['label'] = $_tmp2;?> <td class="fieldValue"> <div> <div class="input-append row-fluid"> <div class="span10 row-fluid date"> <input name="followup_date_start" type="text" class="span9 dateField" data-date-format="<?php echo $_smarty_tpl->tpl_vars['dateFormat']->value;?> " type="text" data-fieldinfo= '<?php echo Vtiger_Util_Helper::toSafeHTML(ZEND_JSON::encode($_smarty_tpl->tpl_vars['FIELD_INFO']->value));?> ' value="<?php if (!empty($_smarty_tpl->tpl_vars['FOLLOW_UP_DATE']->value)){?><?php echo $_smarty_tpl->tpl_vars['FOLLOW_UP_DATE']->value;?> <?php }else{ ?><?php echo $_smarty_tpl->tpl_vars['currentDate']->value;?> <?php }?>" data-validation-engine="validate[funcCall[Vtiger_greaterThanDependentField_Validator_Js.invokeValidation]]" /> <span class="add-on"><i class="icon-calendar"></i></span> </div> </div> </div> <div> <div class="input-append time"> <input type="text" name="followup_time_start" class="timepicker-default input-small" value="<?php if (!empty($_smarty_tpl->tpl_vars['FOLLOW_UP_TIME']->value)){?><?php echo $_smarty_tpl->tpl_vars['FOLLOW_UP_TIME']->value;?> <?php }else{ ?><?php echo $_smarty_tpl->tpl_vars['currentTimeInVtigerFormat']->value;?> <?php }?>" /> <span class="add-on cursorPointer"> <i class="icon-time"></i> </span> </div> </div> </td> <td></td><td></td><?php }} ?>
public function preProcess(Vtiger_Request $request, $display = true) { if ($this->checkPermission($request)) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $selectedModule = $request->getModule(); $companyDetails = Vtiger_CompanyDetails_Model::getInstanceById(); $companyLogo = $companyDetails->getLogo(); $currentDate = Vtiger_Date_UIType::getDisplayDateValue(date('Y-n-j')); $viewer->assign('CURRENTDATE', $currentDate); $viewer->assign('MODULE', $selectedModule); $viewer->assign('MODULE_NAME', $selectedModule); $viewer->assign('QUALIFIED_MODULE', $selectedModule); $viewer->assign('PARENT_MODULE', $request->get('parent')); $viewer->assign('MENUS', Vtiger_Menu_Model::getAll(true)); $viewer->assign('VIEW', $request->get('view')); $viewer->assign('COMPANY_LOGO', $companyLogo); $viewer->assign('USER_MODEL', $currentUser); $homeModuleModel = Vtiger_Module_Model::getInstance('Home'); $viewer->assign('HOME_MODULE_MODEL', $homeModuleModel); $viewer->assign('HEADER_LINKS', $this->getHeaderLinks()); $viewer->assign('ANNOUNCEMENT', $this->getAnnouncement()); $viewer->assign('SEARCHABLE_MODULES', Vtiger_Module_Model::getSearchableModules()); $viewer->assign('CHAT_ACTIVE', vtlib_isModuleActive('AJAXChat')); //Additional parameters $viewer->assign('CURRENT_VIEW', $request->get('view')); $viewer->assign('PAGETITLE', $this->getPageTitle($request)); $viewer->assign('FOOTER_SCRIPTS', $this->getFooterScripts($request)); $viewer->assign('STYLES', $this->getHeaderCss($request)); $viewer->assign('LANGUAGE_STRINGS', $this->getJSLanguageStrings($request)); $viewer->assign('SKIN_PATH', Vtiger_Theme::getCurrentUserThemePath()); $viewer->assign('IS_PREFERENCE', true); $viewer->assign('HTMLLANG', Vtiger_Language_Handler::getShortLanguageName()); $viewer->assign('LANGUAGE', $currentUser->get('language')); $allUsers = Users_Record_Model::getAll(true); $sharedUsers = Calendar_Module_Model::getCaledarSharedUsers($currentUser->id); $sharedType = Calendar_Module_Model::getSharedType($currentUser->id); $viewer->assign('ALL_USERS', $allUsers); $viewer->assign('SHAREDUSERS', $sharedUsers); $viewer->assign('SHARED_TYPE', $sharedType); $viewer->assign('HEADER_SCRIPTS', $this->getHeaderScripts($request)); if ($display) { $this->preProcessDisplay($request); } } }
public function save(Vtiger_Request $request) { $fieldId = $request->get('fieldid'); $fieldInstance = Vtiger_Field_Model::getInstance($fieldId); $fieldInstance->updateTypeofDataFromMandatory($request->get('mandatory'))->set('presence', $request->get('presence'))->set('quickcreate', $request->get('quickcreate'))->set('summaryfield', $request->get('summaryfield'))->set('masseditable', $request->get('masseditable')); $defaultValue = $request->get('fieldDefaultValue'); if ($fieldInstance->getFieldDataType() == 'date') { $dateInstance = new Vtiger_Date_UIType(); $defaultValue = $dateInstance->getDBInsertedValue($defaultValue); } if (is_array($defaultValue)) { $defaultValue = implode(' |##| ', $defaultValue); } $fieldInstance->set('defaultvalue', $defaultValue); $response = new Vtiger_Response(); try { $fieldInstance->save(); $response->setResult(array('success' => true, 'presence' => $request->get('presence'), 'mandatory' => $fieldInstance->isMandatory(), 'label' => vtranslate($fieldInstance->get('label'), $request->get('sourceModule')))); } catch (Exception $e) { $response->setError($e->getCode(), $e->getMessage()); } $response->emit(); }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $linkId = $request->get('linkid'); $data = $request->get('data'); $createdTime = $request->get('createdtime'); $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); if (!$request->has('owner')) { $owner = Settings_WidgetsManagement_Module_Model::getDefaultUserId($widget, 'Leads'); } else { $owner = $request->get('owner'); } $ownerForwarded = $owner; if ($owner == 'all') { $owner = ''; } //Date conversion from user to database format if (!empty($createdTime)) { $dates['start'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['start']); $dates['end'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['end']); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $data = $owner === false ? array() : $moduleModel->getLeadsByStatusConverted($owner, $dates); $listViewUrl = $moduleModel->getListViewUrl(); for ($i = 0; $i < count($data); $i++) { $data[$i]["links"] = $listViewUrl . $this->getSearchParams($data[$i][2], $owner, $dates); } //Include special script and css needed for this widget $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('DATA', $data); $viewer->assign('CURRENTUSER', $currentUser); $accessibleUsers = $currentUser->getAccessibleUsersForModule('Leads'); $accessibleGroups = $currentUser->getAccessibleGroupForModule('Leads'); $viewer->assign('ACCESSIBLE_USERS', $accessibleUsers); $viewer->assign('ACCESSIBLE_GROUPS', $accessibleGroups); $viewer->assign('OWNER', $ownerForwarded); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/DashBoardWidgetContents.tpl', $moduleName); } else { $viewer->view('dashboards/LeadsByStatusConverted.tpl', $moduleName); } }
public function getDrafts($page, $limit, $folder, $where = null) { $currentUserModel = Users_Record_Model::getCurrentUserModel(); $handler = vtws_getModuleHandlerFromName('Emails', $currentUserModel); $meta = $handler->getMeta(); if (!$meta->hasReadAccess()) { return false; } if (!empty($page)) { $limitClause = "LIMIT " . $limit * $page . ", " . $limit; } else { $limitClause = "LIMIT 0, " . $limit; } $query = "SELECT * FROM Emails where email_flag='SAVED' {$where} {$limitClause};"; $draftMails = vtws_query($query, $currentUserModel); for ($i = 0; $i < count($draftMails); $i++) { foreach ($draftMails[$i] as $fieldname => $fieldvalue) { if ($fieldname == "saved_toid" || $fieldname == "ccmail" || $fieldname == "bccmail") { if (!empty($fieldvalue)) { $value = implode(',', Zend_Json::decode($fieldvalue)); if (strlen($value) > 45) { $value = substr($value, 0, 45) . "...."; } $draftMails[$i][$fieldname] = $value; } } elseif ($fieldname == "date_start") { if (!empty($fieldvalue)) { $value = Vtiger_Date_UIType::getDisplayDateValue($fieldvalue); $draftMails[$i][$fieldname] = $value; } } elseif ($fieldname == "id") { $emailId = vtws_getIdComponents($fieldvalue); $draftMails[$i][$fieldname] = $emailId[1]; } } } if ($where) { $folder->setPaging($limit * $page + 1, $limit * $page + $limit, $limit, count($draftMails), $page); } else { $total = $this->getTotalDraftCount(); $folder->setPaging($limit * $page + 1, $limit * $page + $limit, $limit, $total, $page); } $folder->setMails($draftMails); return $draftMails; }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = "ITS4YouReports"; $recordId = $request->get("record"); $viewer->assign('recordid', $recordId); $linkId = $request->get('linkid'); $data = $request->get('data'); $createdTime = $request->get('createdtime'); //Date conversion from user to database format if (!empty($createdTime)) { $dates['start'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['start']); $dates['end'] = Vtiger_Date_UIType::getDBInsertedValue($createdTime['end']); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $recordModel = ITS4YouReports_Record_Model::getInstanceById($recordId); $data = $moduleModel->getReports4You($recordId, $request->get('smownerid'), $dates); $detailViewUrl = 'index.php?module=ITS4YouReports&view=Detail&record=' . $recordId; $viewer->assign('detailViewUrl', $detailViewUrl); //echo "<pre>";print_r("<textarea>".$data."</textarea>");echo "</pre>"; $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); $widget->set('title', $recordModel->getName()); //Include special script and css needed for this widget $viewer->assign('WIDGET', $widget); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('DATA', $data); $viewer->assign('CURRENTUSER', $currentUser); $accessibleUsers = $currentUser->getAccessibleUsersForModule('Leads'); $viewer->assign('ACCESSIBLE_USERS', $accessibleUsers); $viewer->assign('SETTING_EXIST', false); $content = $request->get('content'); if (!empty($content)) { $display_widget_header = false; } else { $display_widget_header = true; } $viewer->assign('display_widget_header', $display_widget_header); $viewer->view('dashboards/DashBoardWidgetContents.tpl', $moduleName); }
public function process(Vtiger_Request $request) { $log = vglobal('log'); $log->debug('Start ' . __CLASS__ . ':' . __FUNCTION__); $db = PearDatabase::getInstance(); $qualifiedModule = $request->getModule(false); $moduleModel = Settings_CurrencyUpdate_Module_Model::getCleanInstance(); $currentUser = Users_Record_Model::getCurrentUserModel(); // synchronise bank list $moduleModel->refreshBanks(); $downloadBtn = !$request->isEmpty('download') ? $request->get('download') : false; $date = !$request->isEmpty('duedate') ? Vtiger_Datetime_UIType::getDBInsertedValue($request->get('duedate')) : false; $dateCur = ''; if ($date) { // if its future date change it to present one if (strtotime($date) > strtotime(date('Y-m-d'))) { $date = date('Y-m-d'); } $dateCur = $date; } else { $dateCur = date('Y-m-d'); } // take currency rates for yesterday if (strcmp(date('Y-m-d'), $dateCur) == 0) { $dateCur = strtotime("-1 day", strtotime($dateCur)); $dateCur = date('Y-m-d', $dateCur); } $dateCur = Vtiger_Functions::getLastWorkingDay($dateCur); // get currency if not already archived if ($downloadBtn) { $moduleModel->fetchCurrencyRates($dateCur); } $selectBankId = $moduleModel->getActiveBankId(); $history = $moduleModel->getRatesHistory($selectBankId, $dateCur, $request); $bankTab = array(); $bankSQL = "SELECT * FROM yetiforce_currencyupdate_banks"; $bankResult = $db->query($bankSQL, true); $i = 0; while ($row = $db->fetchByAssoc($bankResult)) { $bankTab[$i]['id'] = $row['id']; $bankName = $row['bank_name']; $bankTab[$i]['bank_name'] = $bankName; $bankTab[$i]['active'] = $row['active']; $i++; } // number of currencies $curr_num = $moduleModel->getCurrencyNum(); // get info about main currency $mainCurrencyInfo = Vtiger_Functions::getDefaultCurrencyInfo(); $viewer = $this->getViewer($request); $viewer->assign('QUALIFIED_MODULE', $qualifiedModule); $viewer->assign('USER_MODEL', $currentUser); $viewer->assign('MODULE_MODEL', $moduleModel); $viewer->assign('MODULENAME', 'CurrencyUpdate'); $viewer->assign('DATE', $request->has('duedate') ? Vtiger_Date_UIType::getDisplayValue($dateCur) : ''); $viewer->assign('CURRNUM', $curr_num); $viewer->assign('BANK', $bankTab); $viewer->assign('HISTORIA', $history); $viewer->assign('MAINCURR', $mainCurrencyInfo); $viewer->assign('SUPPORTED_CURRENCIES', $moduleModel->getSupportedCurrencies()); $viewer->assign('UNSUPPORTED_CURRENCIES', $moduleModel->getUnSupportedCurrencies()); $viewer->view('Index.tpl', $qualifiedModule); $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__); }
/** * Function to get the record model based on the request parameters * @param Vtiger_Request $request * @return Vtiger_Record_Model or Module specific Record Model instance */ public function getRecordModelFromRequest(Vtiger_Request $request) { $recordModel = parent::getRecordModelFromRequest($request); $startDate = $request->get('date_start'); if (!empty($startDate)) { //Start Date and Time values $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('time_start')); $startDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('date_start')); if ($startTime) { $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('date_start') . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); } $recordModel->set('date_start', $startDate); $recordModel->set('time_start', $startTime); } $endDate = $request->get('due_date'); if (!empty($endDate)) { //End Date and Time values $endTime = $request->get('time_end'); $endDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('due_date')); if ($endTime) { $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($endTime); $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('due_date') . " " . $endTime); list($endDate, $endTime) = explode(' ', $endDateTime); } $recordModel->set('time_end', $endTime); $recordModel->set('due_date', $endDate); } $record = $request->get('record'); if (!$record) { $activityType = $request->get('activitytype'); $visibility = $request->get('visibility'); if (empty($activityType)) { $recordModel->set('activitytype', 'Task'); $visibility = 'Private'; $recordModel->set('visibility', $visibility); } } if (empty($visibility)) { $assignedUserId = $recordModel->get('assigned_user_id'); $sharedType = Calendar_Module_Model::getSharedType($assignedUserId); if ($sharedType == 'selectedusers') { $sharedType = 'public'; } $recordModel->set('visibility', ucfirst($sharedType)); } $time = strtotime($endTime) - strtotime($startTime); $diffinSec = strtotime($endDate) - strtotime($startDate); $diff_days = floor($diffinSec / (60 * 60 * 24)); $hours = (double) $time / 3600 + $diff_days * 24; $minutes = ((double) $hours - (int) $hours) * 60; $recordModel->set('duration_hours', (int) $hours); $recordModel->set('duration_minutes', round($minutes, 0)); return $recordModel; }
function content_567aca6bd2404($_smarty_tpl) { $_smarty_tpl->tpl_vars["dateFormat"] = new Smarty_variable($_smarty_tpl->tpl_vars['USER_MODEL']->value->get('date_format'), null, 0); $_smarty_tpl->tpl_vars["currentDate"] = new Smarty_variable(Vtiger_Date_UIType::getDisplayDateValue(''), null, 0); $_smarty_tpl->tpl_vars["time"] = new Smarty_variable(Vtiger_Time_UIType::getDisplayTimeValue(null), null, 0); $_smarty_tpl->tpl_vars["currentTimeInVtigerFormat"] = new Smarty_variable(Vtiger_Time_UIType::getTimeValueInAMorPM($_smarty_tpl->tpl_vars['time']->value), null, 0); if ($_smarty_tpl->tpl_vars['COUNTER']->value == 2) { ?> </tr><tr class="<?php if (!$_smarty_tpl->tpl_vars['SHOW_FOLLOW_UP']->value) { ?> hide <?php } ?> followUpContainer massEditActiveField"> <?php $_smarty_tpl->tpl_vars['COUNTER'] = new Smarty_variable(1, null, 0); } else { ?> <?php $_smarty_tpl->tpl_vars['COUNTER'] = new Smarty_variable($_smarty_tpl->tpl_vars['COUNTER']->value + 1, null, 0); } ?> <td class="fieldLabel"> <label class="muted pull-right marginRight10px"> <input name="followup" type="checkbox" class="alignTop" <?php if ($_smarty_tpl->tpl_vars['FOLLOW_UP_STATUS']->value) { ?> checked<?php } ?> /> <?php echo vtranslate('LBL_HOLD_FOLLOWUP_ON', $_smarty_tpl->tpl_vars['MODULE']->value); ?> </label> </td> <td class="fieldValue"> <div> <div class="input-append row-fluid"> <div class="span10 row-fluid date"> <input name="followup_date_start" type="text" class="span9 dateField" data-date-format="<?php echo $_smarty_tpl->tpl_vars['dateFormat']->value; ?> " type="text" value="<?php if (!empty($_smarty_tpl->tpl_vars['FOLLOW_UP_DATE']->value)) { echo $_smarty_tpl->tpl_vars['FOLLOW_UP_DATE']->value; } else { echo $_smarty_tpl->tpl_vars['currentDate']->value; } ?> " /> <span class="add-on"><i class="icon-calendar"></i></span> </div> </div> </div> <div> <div class="input-append time"> <input type="text" name="followup_time_start" class="timepicker-default input-small" value="<?php if (!empty($_smarty_tpl->tpl_vars['FOLLOW_UP_TIME']->value)) { echo $_smarty_tpl->tpl_vars['FOLLOW_UP_TIME']->value; } else { echo $_smarty_tpl->tpl_vars['currentTimeInVtigerFormat']->value; } ?> " /> <span class="add-on cursorPointer"> <i class="icon-time"></i> </span> </div> </div> </td> <td></td><td></td><?php }
/** * Function to get the record model based on the request parameters * @param Vtiger_Request $request * @return Vtiger_Record_Model or Module specific Record Model instance */ protected function getRecordModelFromRequest(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); $user = Users_Record_Model::getCurrentUserModel(); $allDay = $request->get('allday'); if ('on' == $allDay) { $request->set('time_start', $user->get('start_hour')); $request->set('time_end', $user->get('end_hour')); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); if (!empty($recordId)) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $modelData = $recordModel->getData(); $recordModel->set('id', $recordId); $recordModel->set('mode', 'edit'); //Due to dependencies on the activity_reminder api in Activity.php(5.x) $_REQUEST['mode'] = 'edit'; } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $modelData = $recordModel->getData(); $recordModel->set('mode', ''); } $fieldModelList = $moduleModel->getFields(); foreach ($fieldModelList as $fieldName => $fieldModel) { $fieldValue = $request->get($fieldName, null); // For custom time fields in Calendar, it was not converting to db insert format(sending as 10:00 AM/PM) $fieldDataType = $fieldModel->getFieldDataType(); if ($fieldDataType == 'time') { $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } // End if ($fieldValue !== null) { if (!is_array($fieldValue)) { $fieldValue = trim($fieldValue); } $recordModel->set($fieldName, $fieldValue); } } //Start Date and Time values $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('time_start')); $startDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('date_start')); if ($startTime) { $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($startTime); $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('date_start') . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); } $recordModel->set('date_start', $startDate); $recordModel->set('time_start', $startTime); //End Date and Time values $endTime = $request->get('time_end'); $endDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('due_date')); if ($endTime) { $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($endTime); $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('due_date') . " " . $endTime); list($endDate, $endTime) = explode(' ', $endDateTime); } $recordModel->set('time_end', $endTime); $recordModel->set('due_date', $endDate); $activityType = $request->get('activitytype'); if (empty($activityType)) { $recordModel->set('activitytype', 'Task'); $recordModel->set('visibility', 'Private'); } //Due to dependencies on the older code $setReminder = $request->get('set_reminder'); if ($setReminder) { $_REQUEST['set_reminder'] = 'Yes'; } else { $_REQUEST['set_reminder'] = 'No'; } $time = strtotime($request->get('time_end')) - strtotime($request->get('time_start')); $diffinSec = strtotime($request->get('due_date')) - strtotime($request->get('date_start')); $diff_days = floor($diffinSec / (60 * 60 * 24)); $hours = (double) $time / 3600 + $diff_days * 24; $minutes = ((double) $hours - (int) $hours) * 60; $recordModel->set('duration_hours', (int) $hours); $recordModel->set('duration_minutes', round($minutes, 0)); return $recordModel; }
/** * Function to save the record */ public function save() { $currentUser = Users_Record_Model::getCurrentUserModel(); $mode = $this->get('mode'); $db = PearDatabase::getInstance(); $this->setCheckBoxValue('enabled'); $this->setCheckBoxValue('captcha'); $this->setCheckBoxValue('roundrobin'); if (is_array($this->get('roundrobin_userid'))) { $roundrobinUsersList = json_encode($this->get('roundrobin_userid'), JSON_FORCE_OBJECT); } //Saving data about webform if ($mode) { $updateQuery = "UPDATE vtiger_webforms SET description = ?, returnurl = ?, ownerid = ?, enabled = ?, captcha = ? , roundrobin = ?, roundrobin_userid = ?, roundrobin_logic = ? ,targetmodule = ? WHERE id = ?"; $params = array($this->get('description'), $this->get('returnurl'), $this->get('ownerid'), $this->get('enabled'), $this->get('captcha'), $this->get('roundrobin'), $roundrobinUsersList, 0, $this->get('targetmodule'), $this->getId()); $db->pquery($updateQuery, $params); } else { $insertQuery = "INSERT INTO vtiger_webforms(name, targetmodule, publicid, enabled, description, ownerid, returnurl, captcha, roundrobin, roundrobin_userid, roundrobin_logic) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; $params = array($this->getName(), $this->get('targetmodule'), $this->generatePublicId(), $this->get('enabled'), $this->get('description'), $this->get('ownerid'), $this->get('returnurl'), $this->get('captcha'), $this->get('roundrobin'), $roundrobinUsersList, 0); $db->pquery($insertQuery, $params); $this->set('id', $db->getLastInsertID()); } //Deleting existing data $db->pquery("DELETE FROM vtiger_webforms_field WHERE webformid = ?", array($this->getId())); //Saving data of source module fields info for this webform $selectedFieldsData = $this->get('selectedFieldsData'); $sourceModuleModel = Vtiger_Module_Model::getInstance($this->get('targetmodule')); $fieldInsertQuery = "INSERT INTO vtiger_webforms_field(webformid, fieldname, neutralizedfield, defaultvalue, required, sequence, hidden) VALUES(?, ?, ?, ?, ?, ?, ?)"; foreach ($selectedFieldsData as $fieldName => $fieldDetails) { $params = array($this->getId()); $neutralizedField = $fieldName; $fieldDefaultValue = $fieldDetails['defaultvalue']; $fieldModel = Vtiger_Field_Model::getInstance($fieldName, $sourceModuleModel); $dataType = $fieldModel->getFieldDataType(); //Updating custom field label if (self::isCustomField($fieldName)) { $neutralizedField = 'label:' . str_replace(' ', '_', decode_html($fieldModel->get('label'))); } //Handling multi picklist if (is_array($fieldDefaultValue)) { $fieldDefaultValue = implode(" |##| ", $fieldDefaultValue); } //Handling Data format if ($dataType === 'date') { $fieldDefaultValue = Vtiger_Date_UIType::getDBInsertedValue($fieldDefaultValue); } if ($dataType === 'time') { $fieldDefaultValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldDefaultValue); } //Handling CheckBox value if ($dataType === 'boolean') { if ($fieldDefaultValue) { $fieldDefaultValue = 'on'; } else { $fieldDefaultValue = ''; } } if ($dataType === 'reference') { $referenceModule = $fieldDetails['referenceModule']; $referenceObject = VtigerWebserviceObject::fromName($db, $referenceModule); $referenceEntityId = $referenceObject->getEntityId(); $fieldDefaultValue = $referenceEntityId . "x" . $fieldDefaultValue; } if ($dataType === 'currency') { $decimalSeperator = $currentUser->get('currency_decimal_separator'); $groupSeperator = $currentUser->get('currency_grouping_separator'); $fieldDefaultValue = str_replace($decimalSeperator, '.', $fieldDefaultValue); $fieldDefaultValue = str_replace($groupSeperator, '', $fieldDefaultValue); } array_push($params, $fieldName, $neutralizedField, $fieldDefaultValue, $fieldDetails['required'], $fieldDetails['sequence'], $fieldDetails['hidden']); $db->pquery($fieldInsertQuery, $params); } }
function generateData() { $db = PearDatabase::getInstance(); $chartSQL = $this->getQuery(); $result = $db->pquery($chartSQL, array()); $rows = $db->num_rows($result); $values = array(); $queryColumnsByFieldModel = $this->getQueryColumnsByFieldModel(); $recordCountLabel = ''; if($this->isRecordCount()) { $recordCountLabel = 'RECORD_COUNT'; } $groupByColumnsByFieldModel = $this->getGroupbyColumnsByFieldModel(); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $currencyRateAndSymbol = getCurrencySymbolandCRate($currentUserModel->currency_id); $links = array(); for($i = 0; $i < $rows; $i++) { $row = $db->query_result_rowdata($result, $i); if($recordCountLabel) { $values[$i][] = (int) $row[strtolower($recordCountLabel)]; } if($queryColumnsByFieldModel) { foreach($queryColumnsByFieldModel as $fieldModel) { if($fieldModel->get('uitype') == '71' || $fieldModel->get('uitype') == '72') { $value = (float) ($row[strtolower($fieldModel->get('reportlabel'))]); $values[$i][] = CurrencyField::convertFromDollar($value, $currencyRateAndSymbol['rate']); } else { $values[$i][] = (int) $row[strtolower($fieldModel->get('reportlabel'))]; } } } if($groupByColumnsByFieldModel) { foreach($groupByColumnsByFieldModel as $gFieldModel) { $fieldDataType = $gFieldModel->getFieldDataType(); if($fieldDataType == 'picklist') { $label = vtranslate($row[strtolower($gFieldModel->get('reportlabel'))], $gFieldModel->getModuleName()); } else if($fieldDataType == 'multipicklist') { $multiPicklistValue = $row[strtolower($gFieldModel->get('reportlabel'))]; $multiPicklistValues = explode(' |##| ', $multiPicklistValue); foreach($multiPicklistValues as $multiPicklistValue) { $labelList[] = vtranslate($multiPicklistValue, $gFieldModel->getModuleName()); } $label = implode(',', $labelList); } else if($fieldDataType == 'date') { $label = Vtiger_Date_UIType::getDisplayDateValue($row[strtolower($gFieldModel->get('reportlabel'))]); } else if($fieldDataType == 'datetime') { $label = Vtiger_Date_UIType::getDisplayDateTimeValue($row[strtolower($gFieldModel->get('reportlabel'))]); } else { // SalesPlatform.ru begin $primaryModule = $this->getPrimaryModule(); if($primaryModule == 'PBXManager') { $label = getUserFullName($row[strtolower($gFieldModel->get('reportlabel'))]); } else { $label = $row[strtolower($gFieldModel->get('reportlabel'))]; } //$label = $row[strtolower($gFieldModel->get('reportlabel'))]; // SalesPlatform.ru end } //SalesPlatform.ru begin $labels[] = (mb_strlen($label, 'UTF-8') > 30) ? mb_substr($label, 0, 30).'..' : $label; //$labels[] = (strlen($label) > 30) ? substr($label, 0, 30).'..' : $label; //SalesPlatform.ru end $links[] = $this->generateLink($gFieldModel->get('reportcolumninfo'), $row[strtolower($gFieldModel->get('reportlabel'))]); } } } $data = array( 'labels' => $labels, 'values' => $values, 'links' => $links, 'type' => (count($values[0]) == 1) ? 'singleBar' : 'multiBar', 'data_labels' => $this->getDataLabels(), 'graph_label' => $this->getGraphLabel() ); return $data; }
/** * Function to parses date into string format * @param <Date> $date * @param <Time> $time * @return <String> */ public static function formatDateIntoStrings($date, $time = false) { $currentUser = Users_Record_Model::getCurrentUserModel(); $dateTimeInUserFormat = Vtiger_Datetime_UIType::getDisplayDateTimeValue($date . ' ' . $time); list($dateInUserFormat, $timeInUserFormat) = explode(' ', $dateTimeInUserFormat); list($hours, $minutes, $seconds) = explode(':', $timeInUserFormat); $displayTime = $hours .':'. $minutes; if ($currentUser->get('hour_format') === '12') { $displayTime = Vtiger_Time_UIType::getTimeValueInAMorPM($displayTime); } $today = Vtiger_Date_UIType::getDisplayDateValue(date('Y-m-d H:i:s')); $tomorrow = Vtiger_Date_UIType::getDisplayDateValue(date('Y-m-d H:i:s', strtotime('tomorrow'))); if ($dateInUserFormat == $today) { $formatedDate = vtranslate('LBL_TODAY'); if ($time) { $formatedDate .= ' '. vtranslate('LBL_AT') .' '. $displayTime; } } elseif ($dateInUserFormat == $tomorrow) { $formatedDate = vtranslate('LBL_TOMORROW'); if ($time) { $formatedDate .= ' '. vtranslate('LBL_AT') .' '. $displayTime; } } else { /** * To support strtotime() for 'mm-dd-yyyy' format the seperator should be '/' * For more referrences * http://php.net/manual/en/datetime.formats.date.php */ if ($currentUser->get('date_format') === 'mm-dd-yyyy') { $dateInUserFormat = str_replace('-', '/', $dateInUserFormat); } $date = strtotime($dateInUserFormat); $formatedDate = vtranslate('LBL_'.date('D', $date)) . ' ' . date('d', $date) . ' ' . vtranslate('LBL_'.date('M', $date)); if (date('Y', $date) != date('Y')) { $formatedDate .= ', '.date('Y', $date); } } return $formatedDate; }
public function process(Vtiger_Request $request) { $adb = PearDatabase::getInstance(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $record = $request->get('record'); if (!empty($record) && $request->get('isDuplicate') == true) { $recordModel = $this->record ? $this->record : Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('MODE', ''); } else { if (!empty($record)) { $recordModel = $this->record ? $this->record : Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('RECORD_ID', $record); $viewer->assign('MODE', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $viewer->assign('MODE', ''); } } if (!$this->record) { $this->record = $recordModel; } $moduleModel = $recordModel->getModule(); $fieldList = $moduleModel->getFields(); $requestFieldList = array_intersect_key($request->getAll(), $fieldList); foreach ($requestFieldList as $fieldName => $fieldValue) { $fieldModel = $fieldList[$fieldName]; $specialField = false; // We collate date and time part together in the EditView UI handling // so a bit of special treatment is required if we come from QuickCreate if ($moduleName == 'Calendar' && empty($record) && $fieldName == 'time_start' && !empty($fieldValue)) { $specialField = true; // Convert the incoming user-picked time to GMT time // which will get re-translated based on user-time zone on EditForm $fieldValue = DateTimeField::convertToDBTimeZone($fieldValue)->format("H:i"); } if ($moduleName == 'Calendar' && empty($record) && $fieldName == 'date_start' && !empty($fieldValue)) { $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($requestFieldList['time_start']); $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($fieldValue . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); $fieldValue = Vtiger_Date_UIType::getDisplayDateValue($startDate); } if ($fieldModel->isEditable() || $specialField) { $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue)); } } $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT); $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName); $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource)); $mappingRelatedField = $moduleModel->getMappingRelatedField($moduleName); $viewer->assign('MAPPING_RELATED_FIELD', Zend_Json::encode($mappingRelatedField)); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('MODULE', $moduleName); $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks()); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('RECORD_MODEL', $recordModel); $isRelationOperation = $request->get('relationOperation'); //if it is relation edit $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation); if ($isRelationOperation) { $viewer->assign('SOURCE_MODULE', $request->get('sourceModule')); $viewer->assign('SOURCE_RECORD', $request->get('sourceRecord')); } $viewer->assign('MAX_UPLOAD_LIMIT_MB', vglobal('upload_maxsize') / 1000000); $viewer->assign('MAX_UPLOAD_LIMIT', vglobal('upload_maxsize')); // check if passwords are encrypted if (file_exists('modules/OSSPasswords/config.ini')) { // encryption key exists so passwords are encrypted $config = parse_ini_file('modules/OSSPasswords/config.ini'); // let smarty know that passwords are encrypted $viewer->assign('ENCRYPTED', true); $viewer->assign('ENC_KEY', $config['key']); $viewer->assign('RECORD', $_GET['record']); $viewer->assign('VIEW', $_GET['view']); } else { $viewer->assign('ENCRYPTED', false); $viewer->assign('ENC_KEY', ''); $viewer->assign('RECORD', $_GET['record']); $viewer->assign('VIEW', $_GET['view']); } // widget button // get min, max, allow_chars from vtiger_passwords_config $result = $adb->query("SELECT * FROM vtiger_passwords_config WHERE 1 LIMIT 1", true); $min = $adb->query_result($result, 0, 'pass_length_min'); $max = $adb->query_result($result, 0, 'pass_length_max'); $allow_chars = $adb->query_result($result, 0, 'pass_allow_chars'); $GenerateButton = 'Generate Password'; $ConfigureButton = 'LBL_ConfigurePass'; $viewer = $this->getViewer($request); $viewer->assign('GENERATEPASS', $GenerateButton); $viewer->assign('GENERATEONCLICK', 'generate_password(' . $min . ',' . $max . ',\'' . $allow_chars . '\');'); $viewer->view('EditView.tpl', $moduleName); }
public function process(Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $record = $request->get('record'); if (!empty($record) && $request->get('isDuplicate') == true) { $recordModel = $this->record ? $this->record : Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('MODE', ''); $recordModel->set('id', ''); //While Duplicating record, If the related record is deleted then we are removing related record info in record model $mandatoryFieldModels = $recordModel->getModule()->getMandatoryFieldModels(); foreach ($mandatoryFieldModels as $fieldModel) { if ($fieldModel->isReferenceField()) { $fieldName = $fieldModel->get('name'); if (Vtiger_Util_Helper::checkRecordExistance($recordModel->get($fieldName))) { $recordModel->set($fieldName, ''); } } } } else { if (!empty($record)) { $recordModel = $this->record ? $this->record : Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('RECORD_ID', $record); $viewer->assign('MODE', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $referenceId = $request->get('reference_id'); if ($referenceId) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($referenceId); $recordModel->setRecordFieldValues($parentRecordModel); } $viewer->assign('MODE', ''); } } if (!$this->record) { $this->record = $recordModel; } $moduleModel = $recordModel->getModule(); $fieldList = $moduleModel->getFields(); $requestFieldList = array_intersect_key($request->getAll(), $fieldList); foreach ($requestFieldList as $fieldName => $fieldValue) { $fieldModel = $fieldList[$fieldName]; $specialField = false; // We collate date and time part together in the EditView UI handling // so a bit of special treatment is required if we come from QuickCreate if ($moduleName == 'Calendar' && empty($record) && $fieldName == 'time_start' && !empty($fieldValue)) { $specialField = true; // Convert the incoming user-picked time to GMT time // which will get re-translated based on user-time zone on EditForm $fieldValue = DateTimeField::convertToDBTimeZone($fieldValue)->format("H:i"); } if ($moduleName == 'Calendar' && empty($record) && $fieldName == 'date_start' && !empty($fieldValue)) { $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($requestFieldList['time_start']); $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($fieldValue . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); $fieldValue = Vtiger_Date_UIType::getDisplayDateValue($startDate); } if ($fieldModel->isEditable() || $specialField) { $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue)); } } $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT); $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName); $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource)); $mappingRelatedField = $moduleModel->getMappingRelatedField($moduleName); $viewer->assign('MAPPING_RELATED_FIELD', Zend_Json::encode($mappingRelatedField)); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('MODULE', $moduleName); $viewer->assign('MODULE_TYPE', $moduleModel->getModuleType()); $viewer->assign('RECORD', $recordModel); $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks()); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('APIADDRESS', Settings_ApiAddress_Module_Model::getInstance('Settings:ApiAddress')->getConfig()); $viewer->assign('APIADDRESS_ACTIVE', Settings_ApiAddress_Module_Model::isActive()); $isRelationOperation = $request->get('relationOperation'); //if it is relation edit $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation); if ($isRelationOperation) { $viewer->assign('SOURCE_MODULE', $request->get('sourceModule')); $viewer->assign('SOURCE_RECORD', $request->get('sourceRecord')); } $viewer->assign('MAX_UPLOAD_LIMIT_MB', Vtiger_Util_Helper::getMaxUploadSize()); $viewer->assign('MAX_UPLOAD_LIMIT', vglobal('upload_maxsize')); $viewer->view('EditView.tpl', $moduleName); }
public function process(Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $record = $request->get('record'); if (!empty($record) && $request->get('isDuplicate') == true) { $recordModel = $this->record ? $this->record : Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('MODE', ''); //While Duplicating record, If the related record is deleted then we are removing related record info in record model $mandatoryFieldModels = $recordModel->getModule()->getMandatoryFieldModels(); foreach ($mandatoryFieldModels as $fieldModel) { if ($fieldModel->isReferenceField()) { $fieldName = $fieldModel->get('name'); if (Vtiger_Util_Helper::checkRecordExistance($recordModel->get($fieldName))) { $recordModel->set($fieldName, ''); } } } } else { if (!empty($record)) { $recordModel = $this->record ? $this->record : Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('RECORD_ID', $record); $viewer->assign('MODE', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $viewer->assign('MODE', ''); } } if (!$this->record) { $this->record = $recordModel; } $moduleModel = $recordModel->getModule(); $fieldList = $moduleModel->getFields(); $requestFieldList = array_intersect_key($request->getAll(), $fieldList); foreach ($requestFieldList as $fieldName => $fieldValue) { $fieldModel = $fieldList[$fieldName]; $specialField = false; // We collate date and time part together in the EditView UI handling // so a bit of special treatment is required if we come from QuickCreate if ($moduleName == 'Calendar' && empty($record) && $fieldName == 'time_start' && !empty($fieldValue)) { $specialField = true; // Convert the incoming user-picked time to GMT time // which will get re-translated based on user-time zone on EditForm $fieldValue = DateTimeField::convertToDBTimeZone($fieldValue)->format("H:i"); } if ($moduleName == 'Calendar' && empty($record) && $fieldName == 'date_start' && !empty($fieldValue)) { $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($requestFieldList['time_start']); $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($fieldValue . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); $fieldValue = Vtiger_Date_UIType::getDisplayDateValue($startDate); } if ($fieldModel->isEditable() || $specialField) { $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue)); } } // SalesPlatform.ru begin Unifying method for EditView preparing $recordModel = prepareEditView($recordModel, $_REQUEST, $viewer); // SalesPlatform.ru end // SalesPlatform.ru begin Set company if ($request->get('relationOperation')) { $sourceRecordModel = Vtiger_Record_Model::getInstanceById($request->get('sourceRecord')); if ($sourceRecordModel->get('spcompany') != null && $sourceRecordModel->get('spcompany') != '') { if ($recordModel->getField('spcompany')) { $recordModel->set('spcompany', $sourceRecordModel->get('spcompany')); } } } // SalesPlatform.ru end $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT); $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName); // SalesPlatform.ru begin Field Validation Information $tabid = getTabid($moduleName); $validationData = getDBValidationData($recordModel->get('tab_name'), $tabid); $validationArray = split_validationdataArray($validationData); $viewer->assign("VALIDATION_DATA_FIELDNAME", $validationArray['fieldname']); $viewer->assign("VALIDATION_DATA_FIELDDATATYPE", $validationArray['datatype']); $viewer->assign("VALIDATION_DATA_FIELDLABEL", $validationArray['fieldlabel']); $viewer->assign('ID', $record); // SalesPlatform.ru end $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource)); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('MODULE', $moduleName); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $isRelationOperation = $request->get('relationOperation'); //if it is relation edit $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation); if ($isRelationOperation) { $viewer->assign('SOURCE_MODULE', $request->get('sourceModule')); $viewer->assign('SOURCE_RECORD', $request->get('sourceRecord')); } $viewer->assign('MAX_UPLOAD_LIMIT_MB', Vtiger_Util_Helper::getMaxUploadSize()); $viewer->assign('MAX_UPLOAD_LIMIT', vglobal('upload_maxsize')); // SalesPlatform.ru begin enable/disable button Import $instance = Vtiger_Module::getInstance('SPSocialConnector'); $fl_import_button = true; if (empty($record) || $instance->presence == 1) { $fl_import_button = false; } $viewer->assign("FL_IMPORT_BUTTON", $fl_import_button); // SalesPlatform.ru end $viewer->view('EditView.tpl', $moduleName); }
/** * Function to get the record model based on the request parameters * @param Vtiger_Request $request * @return Vtiger_Record_Model or Module specific Record Model instance */ public function getRecordModelFromRequest(Vtiger_Request $request) { $recordModel = parent::getRecordModelFromRequest($request); $startDate = $request->get('date_start'); if (!empty($startDate)) { //Start Date and Time values $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('time_start')); $startDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('date_start')); if ($startTime) { $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('date_start') . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); } $recordModel->set('date_start', $startDate); $recordModel->set('time_start', $startTime); } $endDate = $request->get('due_date'); if (!empty($endDate)) { //End Date and Time values $endTime = $request->get('time_end'); $endDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('due_date')); if ($endTime) { $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($endTime); $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('due_date') . " " . $endTime); list($endDate, $endTime) = explode(' ', $endDateTime); } $recordModel->set('time_end', $endTime); $recordModel->set('due_date', $endDate); } $record = $request->get('record'); if (!$record) { $activityType = $request->get('activitytype'); $visibility = $request->get('visibility'); if (empty($activityType)) { $recordModel->set('activitytype', 'Task'); $visibility = 'Private'; $recordModel->set('visibility', $visibility); } } if (empty($visibility)) { $assignedUserId = $recordModel->get('assigned_user_id'); $sharedType = Calendar_Module_Model::getSharedType($assignedUserId); if ($sharedType == 'selectedusers') { $sharedType = 'public'; } $recordModel->set('visibility', ucfirst($sharedType)); } return $recordModel; }
/** * Function to parses date into string format * @param <Date> $date * @param <Time> $time * @return <String> */ public static function formatDateIntoStrings($date, $time = false) { $currentUser = Users_Record_Model::getCurrentUserModel(); $dateTimeInUserFormat = Vtiger_Datetime_UIType::getDisplayDateTimeValue($date . ' ' . $time); list($dateInUserFormat, $timeInUserFormat) = explode(' ', $dateTimeInUserFormat); list($hours, $minutes, $seconds) = explode(':', $timeInUserFormat); $displayTime = $hours . ':' . $minutes; if ($currentUser->get('hour_format') === '12') { $displayTime = Vtiger_Time_UIType::getTimeValueInAMorPM($displayTime); } $today = Vtiger_Date_UIType::getDisplayDateValue(date('Y-m-d H:i:s')); $tomorrow = Vtiger_Date_UIType::getDisplayDateValue(date('Y-m-d H:i:s', strtotime('tomorrow'))); $userDate = DateTimeField::__convertToUserFormat($date, $currentUser->get('date_format')); //var_dump($userDate); if ($dateInUserFormat == $today) { $todayInfo = vtranslate('LBL_TODAY'); if ($time) { $todayInfo .= ' ' . vtranslate('LBL_AT') . ' ' . $displayTime; } $formatedDate = $userDate . " ({$todayInfo})"; } elseif ($dateInUserFormat == $tomorrow) { $tomorrowInfo = vtranslate('LBL_TOMORROW'); if ($time) { $tomorrowInfo .= ' ' . vtranslate('LBL_AT') . ' ' . $displayTime; } $formatedDate = $userDate . " ({$tomorrowInfo})"; } else { //$formatToConvert = str_replace( array('/','.'), array('-','-'), $format); if ($currentUser->get('date_format') === 'mm-dd-yyyy') { $dateInUserFormat = str_replace('-', '/', $dateInUserFormat); } $date = strtotime($dateInUserFormat); $dayInfo = vtranslate('LBL_' . date('D', $date)); if ($time) { $dayInfo .= ' ' . vtranslate('LBL_AT') . ' ' . $displayTime; } $formatedDate = $userDate . " ({$dayInfo})"; } return $formatedDate; }
public function process(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $recordId = $request->get('task_id'); $workflowId = $request->get('for_workflow'); $workflowModel = Settings_Workflows_Record_Model::getInstance($workflowId); $taskTypes = $workflowModel->getTaskTypes(); if ($recordId) { $taskModel = Settings_Workflows_TaskRecord_Model::getInstance($recordId); } else { $taskType = $request->get('type'); if (empty($taskType)) { $taskType = !empty($taskTypes[0]) ? $taskTypes[0]->getName() : 'VTEmailTask'; } $taskModel = Settings_Workflows_TaskRecord_Model::getCleanInstance($workflowModel, $taskType); } $taskTypeModel = $taskModel->getTaskType(); $viewer->assign('TASK_TYPE_MODEL', $taskTypeModel); $viewer->assign('TASK_TEMPLATE_PATH', $taskTypeModel->getTemplatePath()); $recordStructureInstance = Settings_Workflows_RecordStructure_Model::getInstanceForWorkFlowModule($workflowModel, Settings_Workflows_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDITTASK); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $moduleModel = $workflowModel->getModule(); $dateTimeFields = $moduleModel->getFieldsByType(array('date', 'datetime')); $taskObject = $taskModel->getTaskObject(); $taskType = get_class($taskObject); if ($taskType === 'VTCreateEntityTask') { if ($taskObject->entity_type) { $relationModuleModel = Vtiger_Module_Model::getInstance($taskObject->entity_type); $ownerFieldModels = $relationModuleModel->getFieldsByType('owner'); $fieldMapping = Zend_Json::decode($taskObject->field_value_mapping); foreach ($fieldMapping as $key => $mappingInfo) { if (array_key_exists($mappingInfo['fieldname'], $ownerFieldModels)) { $userRecordModel = Users_Record_Model::getInstanceByName($mappingInfo['value']); if ($userRecordModel) { $ownerName = $userRecordModel->getId(); } else { $groupRecordModel = Settings_Groups_Record_Model::getInstance($mappingInfo['value']); $ownerName = $groupRecordModel->getId(); } $fieldMapping[$key]['value'] = $ownerName; } } $taskObject->field_value_mapping = Zend_Json::encode($fieldMapping); } } if ($taskType === 'VTUpdateFieldsTask') { if ($moduleModel->getName() == "Documents") { $restrictFields = array('folderid', 'filename', 'filelocationtype'); $viewer->assign('RESTRICTFIELDS', $restrictFields); } } $viewer->assign('SOURCE_MODULE', $moduleModel->getName()); $viewer->assign('MODULE_MODEL', $moduleModel); $viewer->assign('TASK_ID', $recordId); $viewer->assign('WORKFLOW_ID', $workflowId); $viewer->assign('DATETIME_FIELDS', $dateTimeFields); $viewer->assign('WORKFLOW_MODEL', $workflowModel); $viewer->assign('TASK_TYPES', $taskTypes); $viewer->assign('TASK_MODEL', $taskModel); $viewer->assign('CURRENTDATE', date('Y-n-j')); $metaVariables = Settings_Workflows_Module_Model::getMetaVariables(); if ($moduleModel->getName() == 'Invoice' || $moduleModel->getName() == 'Quotes') { $metaVariables['Portal Pdf Url'] = '(general : (__VtigerMeta__) portalpdfurl)'; } // Adding option Line Item block for Individual tax mode $individualTaxBlockLabel = vtranslate("LBL_LINEITEM_BLOCK_GROUP", $qualifiedModuleName); $individualTaxBlockValue = $viewer->view('LineItemsGroupTemplate.tpl', $qualifiedModuleName, $fetch = true); // Adding option Line Item block for group tax mode $groupTaxBlockLabel = vtranslate("LBL_LINEITEM_BLOCK_INDIVIDUAL", $qualifiedModuleName); $groupTaxBlockValue = $viewer->view('LineItemsIndividualTemplate.tpl', $qualifiedModuleName, $fetch = true); $templateVariables = array($individualTaxBlockValue => $individualTaxBlockLabel, $groupTaxBlockValue => $groupTaxBlockLabel); $viewer->assign('META_VARIABLES', $metaVariables); $viewer->assign('TEMPLATE_VARIABLES', $templateVariables); $viewer->assign('TASK_OBJECT', $taskObject); $viewer->assign('FIELD_EXPRESSIONS', Settings_Workflows_Module_Model::getExpressions()); $repeat_date = $taskModel->getTaskObject()->calendar_repeat_limit_date; if (!empty($repeat_date)) { $repeat_date = Vtiger_Date_UIType::getDisplayDateValue($repeat_date); } $viewer->assign('REPEAT_DATE', $repeat_date); $userModel = Users_Record_Model::getCurrentUserModel(); $viewer->assign('dateFormat', $userModel->get('date_format')); $viewer->assign('timeFormat', $userModel->get('hour_format')); $viewer->assign('MODULE', $moduleName); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); $emailFields = $recordStructureInstance->getAllEmailFields(); foreach ($emailFields as $metaKey => $emailField) { $emailFieldoptions .= '<option value=",$' . $metaKey . '">' . $emailField->get('workflow_columnlabel') . '</option>'; } $nameFields = $recordStructureInstance->getNameFields(); $fromEmailFieldOptions = '<option value="">' . vtranslate('Optional', $qualifiedModuleName) . '</option>'; $fromEmailFieldOptions .= '<option value="$(general : (__VtigerMeta__) supportName)<$(general : (__VtigerMeta__) supportEmailId)>" >' . vtranslate('LBL_HELPDESK_SUPPORT_EMAILID', $qualifiedModuleName) . '</option>'; foreach ($emailFields as $metaKey => $emailField) { list($relationFieldName, $rest) = explode(' ', $metaKey); $value = '<$' . $metaKey . '>'; if ($nameFields) { $nameFieldValues = ''; foreach (array_keys($nameFields) as $fieldName) { if (strstr($fieldName, $relationFieldName) || count(explode(' ', $metaKey)) === 1 && count(explode(' ', $fieldName)) === 1) { $fieldName = '$' . $fieldName; $nameFieldValues .= ' ' . $fieldName; } } $value = trim($nameFieldValues) . $value; } $fromEmailFieldOptions .= '<option value="' . $value . '">' . $emailField->get('workflow_columnlabel') . '</option>'; } $structure = $recordStructureInstance->getStructure(); // for inventory modules we shouldn't show item detail fields if ($taskType == "VTEmailTask" && in_array($workflowModel->getModule()->name, getInventoryModules())) { $itemsBlock = "LBL_ITEM_DETAILS"; unset($structure[$itemsBlock]); } foreach ($structure as $fields) { foreach ($fields as $field) { $allFieldoptions .= '<option value="$' . $field->get('workflow_columnname') . '">' . $field->get('workflow_columnlabel') . '</option>'; } } $userList = $currentUser->getAccessibleUsers(); $groupList = $currentUser->getAccessibleGroups(); $assignedToValues = array(); $assignedToValues[vtranslate('LBL_USERS', 'Vtiger')] = $userList; $assignedToValues[vtranslate('LBL_GROUPS', 'Vtiger')] = $groupList; $viewer->assign('ASSIGNED_TO', $assignedToValues); $viewer->assign('EMAIL_FIELD_OPTION', $emailFieldoptions); $viewer->assign('FROM_EMAIL_FIELD_OPTION', $fromEmailFieldOptions); $viewer->assign('ALL_FIELD_OPTIONS', $allFieldoptions); $viewer->view('EditTask.tpl', $qualifiedModuleName); }
function Events($request, $moduleName) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request); $record = $request->get('record'); if (!empty($record) && $request->get('isDuplicate') == true) { $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('MODE', ''); } else { if (!empty($record)) { $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('MODE', 'edit'); $viewer->assign('RECORD_ID', $record); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $viewer->assign('MODE', ''); } } $eventModule = Vtiger_Module_Model::getInstance($moduleName); $recordModel->setModuleFromInstance($eventModule); $moduleModel = $recordModel->getModule(); $fieldList = $moduleModel->getFields(); $requestFieldList = array_intersect_key($request->getAll(), $fieldList); foreach ($requestFieldList as $fieldName => $fieldValue) { $fieldModel = $fieldList[$fieldName]; $specialField = false; // We collate date and time part together in the EditView UI handling // so a bit of special treatment is required if we come from QuickCreate if (empty($record) && ($fieldName == 'time_start' || $fieldName == 'time_end') && !empty($fieldValue)) { $specialField = true; // Convert the incoming user-picked time to GMT time // which will get re-translated based on user-time zone on EditForm $fieldValue = DateTimeField::convertToDBTimeZone($fieldValue)->format("H:i"); } if (empty($record) && ($fieldName == 'date_start' || $fieldName == 'due_date') && !empty($fieldValue)) { if ($fieldName == 'date_start') { $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($requestFieldList['time_start']); $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($fieldValue . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); $fieldValue = Vtiger_Date_UIType::getDisplayDateValue($startDate); } else { $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($requestFieldList['time_end']); $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($fieldValue . " " . $endTime); list($endDate, $endTime) = explode(' ', $endDateTime); $fieldValue = Vtiger_Date_UIType::getDisplayDateValue($endDate); } } if ($fieldModel->isEditable() || $specialField) { $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue)); } } $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT); $viewMode = $request->get('view_mode'); if (!empty($viewMode)) { $viewer->assign('VIEW_MODE', $viewMode); } $userChangedEndDateTime = $request->get('userChangedEndDateTime'); //If followup value is passed from request to process the value and sent to client $requestFollowUpDate = $request->get('followup_date_start'); $requestFollowUpTime = $request->get('followup_time_start'); $followUpStatus = $request->get('followup'); $eventStatus = $request->get('eventstatus'); if (!empty($requestFollowUpDate)) { $followUpDate = $requestFollowUpDate; } if (!empty($requestFollowUpTime)) { $followUpTime = $requestFollowUpTime; } if ($followUpStatus == 'on') { $viewer->assign('FOLLOW_UP_STATUS', TRUE); } if ($eventStatus == 'Held') { $viewer->assign('SHOW_FOLLOW_UP', TRUE); } else { $viewer->assign('SHOW_FOLLOW_UP', FALSE); } $viewer->assign('USER_CHANGED_END_DATE_TIME', $userChangedEndDateTime); $viewer->assign('FOLLOW_UP_DATE', $followUpDate); $viewer->assign('FOLLOW_UP_TIME', $followUpTime); $viewer->assign('RECURRING_INFORMATION', $recordModel->getRecurrenceInformation()); $viewer->assign('TOMORROWDATE', Vtiger_Date_UIType::getDisplayDateValue(date('Y-m-d', time() + 86400))); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('MODULE', $moduleName); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $existingRelatedContacts = $recordModel->getRelatedContactInfo(); //To add contact ids that is there in the request . Happens in gotoFull form mode of quick create $requestContactIdValue = $request->get('contact_id'); if (!empty($requestContactIdValue)) { $existingRelatedContacts[] = array('name' => Vtiger_Util_Helper::getRecordName($requestContactIdValue), 'id' => $requestContactIdValue); } $viewer->assign('RELATED_CONTACTS', $existingRelatedContacts); $isRelationOperation = $request->get('relationOperation'); //if it is relation edit $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation); if ($isRelationOperation) { $viewer->assign('SOURCE_MODULE', $request->get('sourceModule')); $viewer->assign('SOURCE_RECORD', $request->get('sourceRecord')); } $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName); $accessibleUsers = $currentUser->getAccessibleUsers(); $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource)); $viewer->assign('ACCESSIBLE_USERS', $accessibleUsers); $viewer->assign('INVITIES_SELECTED', $recordModel->getInvities()); $viewer->assign('CURRENT_USER', $currentUser); $viewer->view('EditView.tpl', $moduleName); }