public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $srecord = $request->get('srecord'); $smodule = $request->get('smodule'); $type = $request->get('type'); $mode = $request->get('mode'); $record = $request->get('record'); $mailFilter = $request->get('mailFilter'); $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $recordModel_OSSMailScanner = Vtiger_Record_Model::getCleanInstance('OSSMailScanner'); $config = $recordModel_OSSMailScanner->getConfig('email_list'); if ($request->has('limit')) { $config['widget_limit'] = $request->get('limit'); } $viewer = $this->getViewer($request); $viewer->assign('RECOLDLIST', $recordModel->{$mode}($srecord, $smodule, $config, $type, $mailFilter)); $viewer->assign('SENDURLDDATA', $urldata); $viewer->assign('MODULENAME', $moduleName); $viewer->assign('SMODULENAME', $smodule); $viewer->assign('RECORD', $record); $viewer->assign('SRECORD', $srecord); $viewer->assign('TYPE', $type); $viewer->assign('POPUP', $config['popup']); $viewer->view('widgets.tpl', 'OSSMailView'); }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { $moduleName = $this->getModule($request); $sourceModule = $request->get('src_module'); $sourceRecord = $request->get('src_record'); //list of records is narrowed to contacts related to help desks account, only in Help Desk Contacts relation view if ($moduleName == 'Contacts' && $sourceModule == 'HelpDesk' && isRecordExists($sourceRecord) && strpos($_SERVER['QUERY_STRING'], 'module=Contacts&src_module=HelpDesk') === 0) { $request->set('related_parent_module', 'Accounts'); $helpDeskRecord = Vtiger_Record_Model::getInstanceById($sourceRecord, 'HelpDesk'); $request->set('related_parent_id', $helpDeskRecord->get('parent_id')); $viewer->assign('SWITCH', true); } if ($moduleName == 'Contacts' && $sourceModule == 'SSalesProcesses' && isRecordExists($sourceRecord) && strpos($_SERVER['QUERY_STRING'], 'module=Contacts&src_module=SSalesProcesses') === 0) { $request->set('related_parent_module', 'Accounts'); $moduleRecord = Vtiger_Record_Model::getInstanceById($sourceRecord, 'SSalesProcesses'); $request->set('related_parent_id', $moduleRecord->get('related_to')); $viewer->assign('SWITCH', true); } if ($moduleName == 'Contacts' && $sourceModule == 'Project' && isRecordExists($sourceRecord) && strpos($_SERVER['QUERY_STRING'], 'module=Contacts&src_module=Project') === 0) { $request->set('related_parent_module', 'Accounts'); $moduleRecord = Vtiger_Record_Model::getInstanceById($sourceRecord, 'Project'); $request->set('related_parent_id', $moduleRecord->get('linktoaccountscontacts')); $viewer->assign('SWITCH', true); } parent::initializeListViewContents($request, $viewer); }
function postpone(Vtiger_Request $request) { $recordId = $request->get('record'); $module = $request->getModule(); $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $module); $recordModel->updateReminderStatus(0); }
/** * Function that saves SMS records * @param Vtiger_Request $request */ public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $recordIds = $this->getRecordsListFromRequest($request); $phoneFieldList = $request->get('fields'); $message = $request->get('message'); foreach ($recordIds as $recordId) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId); $numberSelected = false; foreach ($phoneFieldList as $fieldname) { $fieldValue = $recordModel->get($fieldname); if (!empty($fieldValue)) { $toNumbers[] = $fieldValue; $numberSelected = true; } } if ($numberSelected) { $recordIds[] = $recordId; } } $response = new Vtiger_Response(); if (!empty($toNumbers)) { SMSNotifier_Record_Model::SendSMS($message, $toNumbers, $currentUserModel->getId(), $recordIds, $moduleName); $response->setResult(true); } else { $response->setResult(false); } return $response; }
public function process(Vtiger_Request $request) { $moduleSettingsName = $request->getModule(false); $moduleName = $request->getModule(); $paymentsIn = array(); $record = Vtiger_Record_Model::getCleanInstance($moduleName); $type = $request->get('type'); $bank = $request->get('bank'); $this->saveFile($_FILES); $recordParse = $record->getSummary($type, $bank, $_FILES["file"]["name"]); // only incomming records (C) $i = 0; $j = array(); foreach ($recordParse->operations as $transfers) { foreach ($transfers as $key => $value) { if ($key == 'indicator' && $value == 'C') { $paymentsIn[] = $transfers; } if ($key == 'third_letter_currency_code') { $j[] = $i; } } $i++; } $json = json_encode($paymentsIn); $viewer = $this->getViewer($request); $viewer->assign('MODULENAME', $moduleName); $viewer->assign('PAYMENTSIN', $paymentsIn); $viewer->assign('COUNT', count($paymentsIn)); $viewer->assign('JSON', $json); echo $viewer->view('step1.tpl', $moduleSettingsName, true); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); if ($request->get('selected_ids') == 'all' && $request->get('mode') == 'FindDuplicates') { $recordIds = Vtiger_FindDuplicate_Model::getMassDeleteRecords($request); } else { $recordIds = $this->getRecordsListFromRequest($request); } foreach ($recordIds as $recordId) { if (Users_Privileges_Model::isPermitted($moduleName, 'Delete', $recordId)) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleModel); $recordModel->delete(); } else { $permission = 'No'; } } if ($permission === 'No') { throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); } $cvId = $request->get('viewname'); $response = new Vtiger_Response(); $response->setResult(array('viewname' => $cvId, 'module' => $moduleName)); $response->emit(); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $documentIdsList = $this->getRecordsListFromRequest($request); $folderId = $request->get('folderid'); if (!empty($documentIdsList)) { foreach ($documentIdsList as $documentId) { $documentModel = Vtiger_Record_Model::getInstanceById($documentId, $moduleName); if (Users_Privileges_Model::isPermitted($moduleName, 'EditView', $documentId)) { $documentModel->set('folderid', $folderId); $documentModel->set('mode', 'edit'); $documentModel->save(); } else { $documentsMoveDenied[] = $documentModel->getName(); } } } if (empty($documentsMoveDenied)) { $result = array('success' => true, 'message' => vtranslate('LBL_DOCUMENTS_MOVED_SUCCESSFULLY', $moduleName)); } else { $result = array('success' => false, 'message' => vtranslate('LBL_DENIED_DOCUMENTS', $moduleName), 'LBL_RECORDS_LIST' => $documentsMoveDenied); } $response = new Vtiger_Response(); $response->setResult($result); $response->emit(); }
function getComposeUrlParam($moduleName = false, $record = false, $view = false) { $url = ''; if (!empty($record) && isRecordExists($record)) { $recordModel_OSSMailView = Vtiger_Record_Model::getCleanInstance('OSSMailView'); $email = $recordModel_OSSMailView->findEmail($record, $moduleName); if ($email) { $url = '&to=' . $email; } $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); if ($moduleName == 'HelpDesk') { $urldata = '&subject=' . $recordModel->get('ticket_no') . ' - ' . $recordModel->get('ticket_title'); } elseif ($moduleName == 'SSalesProcesses') { $urldata = '&subject=' . $recordModel->get('ssalesprocesses_no') . ' - ' . $recordModel->get('subject'); } elseif ($moduleName == 'Project') { $urldata = '&subject=' . $recordModel->get('project_no') . ' - ' . $recordModel->get('projectname'); } $url .= $urldata; } if (!empty($moduleName)) { $url .= '&crmmodule=' . $moduleName; } if (!empty($record)) { $url .= '&crmrecord=' . $record; } if (!empty($view)) { $url .= '&crmview=' . $view; } return $url; }
public function updateEvent(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('id'); $date_start = date('Y-m-d', strtotime($request->get('start'))); $time_start = date('H:i:s', strtotime($request->get('start'))); $due_date = date('Y-m-d', strtotime($request->get('end'))); $time_end = date('H:i:s', strtotime($request->get('end'))); $succes = false; if (!empty($recordId)) { try { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $recordModel->set('id', $recordId); $recordModel->set('mode', 'edit'); $recordModel->set('date_start', $date_start); $recordModel->set('time_start', $time_start); $recordModel->set('due_date', $due_date); $recordModel->set('time_end', $time_end); $recordModel->save(); $succes = true; } catch (Exception $e) { $succes = false; } } $response = new Vtiger_Response(); $response->setResult($succes); $response->emit(); }
function UpdateInvoice($salesId) { $adb = PearDatabase::getInstance(); $moduleBalance = 'Invoice'; $StatusBalance = 'Paid'; if ($salesId == 0 || $salesId == '' || Vtiger_Functions::getCRMRecordType($salesId) != $moduleBalance) { return false; } $sql = 'SELECT SUM(`paymentsvalue`) as suma FROM `vtiger_paymentsin` WHERE `salesid` = ? AND `paymentsin_status` = ?;'; $result = $adb->pquery($sql, array($salesId, $StatusBalance), false); $paymentsIn = $adb->query_result($result, 0, 'suma'); $sql = 'SELECT SUM(`paymentsvalue`) as suma FROM `vtiger_paymentsout` WHERE `salesid` = ? AND `paymentsout_status` = ?;'; $result = $adb->pquery($sql, array($salesId, $StatusBalance), false); $paymentsOut = $adb->query_result($result, 0, 'suma'); $sum = $paymentsIn - $paymentsOut; $model = Vtiger_Record_Model::getInstanceById($salesId, $moduleBalance); $hdnGrandTotal = $model->get('hdnGrandTotal'); $balance = $hdnGrandTotal - $sum; $sql = 'UPDATE `vtiger_invoice` SET `payment_balance` = ? WHERE `invoiceid` = ? LIMIT 1;'; $params = array($balance, $salesId); $adb->pquery($sql, $params, true); $accountId = $model->get('account_id'); $potentialId = $model->get('potentialid'); UpdateAccounts($accountId); UpdatePotential($potentialId); }
public function loadRecord($id) { $recordModel = Vtiger_Record_Model::getInstanceById($id); $this->moduleName = $recordModel->getModuleName(); $this->focus = $recordModel->getEntity(); $this->buildRecordTemplateModel(); }
function process(Vtiger_Request $request) { $currentUserPriviligeModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $viewer = $this->getViewer($request); $recordId = $request->get('record'); $moduleName = $request->getModule(); $recordModel = Vtiger_Record_Model::getInstanceById($recordId); $moduleModel = $recordModel->getModule(); $viewer->assign('MODULE', $moduleName); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('CURRENT_USER_PRIVILEGE', $currentUserPriviligeModel); $viewer->assign('RECORD', $recordModel); $viewer->assign('CONVERT_LEAD_FIELDS', $recordModel->getConvertLeadFields()); $assignedToFieldModel = $moduleModel->getField('assigned_user_id'); $assignedToFieldModel->set('fieldvalue', $recordModel->get('assigned_user_id')); $viewer->assign('ASSIGN_TO', $assignedToFieldModel); $potentialModuleModel = Vtiger_Module_Model::getInstance('Potentials'); $accountField = Vtiger_Field_Model::getInstance('related_to', $potentialModuleModel); $contactField = Vtiger_Field_Model::getInstance('contact_id', $potentialModuleModel); $viewer->assign('ACCOUNT_FIELD_MODEL', $accountField); $viewer->assign('CONTACT_FIELD_MODEL', $contactField); $contactsModuleModel = Vtiger_Module_Model::getInstance('Contacts'); $accountField = Vtiger_Field_Model::getInstance('parent_id', $contactsModuleModel); $viewer->assign('CONTACT_ACCOUNT_FIELD_MODEL', $accountField); $state = Settings_Leads_ConvertToAccount_Model::getState(); $viewer->assign('STATE', $state); $viewer->view('ConvertLead.tpl', $moduleName); }
public function updateEvent(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('id'); $date_start = date('Y-m-d', strtotime($request->get('start'))); $time_start = date('H:i:s', strtotime($request->get('start'))); $succes = false; if (isPermitted($moduleName, 'EditView', $recordId) === 'no') { $succes = false; } else { if (!empty($recordId)) { try { $delta = $request->get('delta'); $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $recordData = $recordModel->entity->column_fields; $end = self::changeDateTime($recordData['due_date'] . ' ' . $recordData['time_end'], $delta); $due_date = $end['date']; $time_end = $end['time']; $recordModel->set('id', $recordId); $recordModel->set('mode', 'edit'); $recordModel->set('date_start', $date_start); $recordModel->set('time_start', $time_start); $recordModel->set('due_date', $due_date); $recordModel->set('time_end', $time_end); $recordModel->save(); $succes = true; } catch (Exception $e) { $succes = false; } } } $response = new Vtiger_Response(); $response->setResult($succes); $response->emit(); }
function amount_in_words($module, $id, $templateid, $content, $tcpdf) { $db = PearDatabase::getInstance(); $current_language = Users_Record_Model::getCurrentUserModel()->get('language'); if (!file_exists("languages/" . $current_language . "/OSSPdf.php")) { $current_language = "en_us"; } $mod = $module; $module = strtolower($module); if ($module == 'quotes') { $idcol = "quoteid"; } else { $idcol = $module . "id"; } $sql = "SELECT total FROM vtiger_{$module} WHERE {$idcol} = " . $id; $result = $db->query($sql, true); $grand_total = $db->query_result($result, 0, 'total'); $currfield = new CurrencyField($grand_total); $grand_total = $currfield->getDBInsertedValue($grand_total); require_once 'include/utils/utils.php'; require_once 'include/utils/CommonUtils.php'; require_once 'modules/' . $mod . '/' . $mod . '.php'; $focus = new $mod(); $focus->retrieve_entity_info($id, $mod); $currency_id = $focus->column_fields['currency_id']; $pobierz = $db->query("select currency_symbol, currency_code from vtiger_currency_info where id = '{$currency_id}'", true); $kod_aktualnej_waluty = $db->query_result($pobierz, 0, "currency_code"); $recordModel = Vtiger_Record_Model::getCleanInstance('OSSPdf'); $kwota = $recordModel->slownie($grand_total, $kod_aktualnej_waluty); return $kwota; }
function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $records = $request->get('records'); $template = $request->get('template'); $targetModuleName = $request->get('target'); $method = $request->get('method'); $success = []; if (!empty($template)) { $templateRecord = Vtiger_MappedFields_Model::getInstanceById($template); foreach ($records as $recordId) { if ($templateRecord->checkFiltersForRecord(intval($recordId))) { if ($method == 0) { $recordModel = Vtiger_Record_Model::getCleanInstance($targetModuleName); $parentRecordModel = Vtiger_Record_Model::getInstanceById($recordId); $recordModel->setRecordFieldValues($parentRecordModel); if ($this->checkMandatoryFields($recordModel)) { continue; } // TODO Add saving fields that exist in advanced module $recordModel->save(); if (isRecordExists($recordModel->getId())) { $success[] = $recordId; } } else { $success[] = $recordId; } } } } $output = ['all' => count($records), 'ok' => $success, 'fail' => array_diff($records, $success)]; $response = new Vtiger_Response(); $response->setResult($output); $response->emit(); }
/** * Static Function to get the list of records matching the search key * @param <String> $searchKey * @return <Array> - List of Vtiger_Record_Model or Module Specific Record Model instances */ public static function getSearchResult($searchKey, $module = false) { $db = PearDatabase::getInstance(); $deletedCondition = parent::getModule()->getDeletedRecordCondition(); $query = 'SELECT * FROM vtiger_crmentity INNER JOIN vtiger_leaddetails ON vtiger_leaddetails.leadid = vtiger_crmentity.crmid WHERE label LIKE ? AND ' . $deletedCondition; $params = array("%{$searchKey}%"); $result = $db->pquery($query, $params); $noOfRows = $db->num_rows($result); $moduleModels = array(); $matchingRecords = array(); for ($i = 0; $i < $noOfRows; ++$i) { $row = $db->query_result_rowdata($result, $i); $row['id'] = $row['crmid']; $moduleName = $row['setype']; if (!array_key_exists($moduleName, $moduleModels)) { $moduleModels[$moduleName] = Vtiger_Module_Model::getInstance($moduleName); } $moduleModel = $moduleModels[$moduleName]; $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Record', $moduleName); $recordInstance = new $modelClassName(); $matchingRecords[$moduleName][$row['id']] = $recordInstance->setData($row)->setModuleFromInstance($moduleModel); } return $matchingRecords; }
public function Footer() { if ($_SESSION['footer_enable'] == 'Yes') { $recordModel = Vtiger_Record_Model::getInstanceById($_SESSION['template_to_perfom']); $height_footer = $recordModel->get('height_footer'); $y = -(int) $height_footer; $bMargin = $this->getBreakMargin(); $auto_page_break = $this->AutoPageBreak; $height_header = (int) $recordModel->get('height_header'); if ($_SESSION['enable_numbering'] == 'NumberFormat' || $_SESSION['enable_numbering'] == 'PageXofY') { $y -= 10; $bMargin += 10; } $this->SetFont($this->font, '', 8); $this->SetY($y); $this->SetAutoPageBreak(false, 0); //$this->writeHTML($this->bMargin.' - '.$this->PageBreakTrigger); $this->writeHTML($_REQUEST['footer_content']); $this->SetFont('helvetica', 'I', 8); if ($_SESSION['enable_numbering'] == 'NumberFormat') { $this->writeHTML('<span align="center">' . $this->getAliasNumPage() . '</span>'); } elseif ($_SESSION['enable_numbering'] == 'PageXofY') { $this->writeHTML('<span align="center">' . vtranslate('Page', 'OSSPdf') . ' ' . $this->getAliasNumPage() . ' ' . vtranslate('of', 'OSSPdf') . ' ' . $this->getAliasNbPages() . '</span>'); } $this->SetFont($this->font, '', 12); $this->SetAutoPageBreak($auto_page_break, $bMargin); $this->setPageMark(); //echo '<pre>';print_r($bMargin);echo '</pre>';exit; } }
public function updateDefaultPicklistValues($pickListFieldName, $oldValue, $newValue) { $db = PearDatabase::getInstance(); if ($pickListFieldName == 'activitytype') { $defaultFieldName = 'defaultactivitytype'; } else { $defaultFieldName = 'defaulteventstatus'; } $queryToGetId = 'SELECT id FROM vtiger_users WHERE ' . $defaultFieldName . ' IN ('; if (is_array($oldValue)) { for ($i = 0; $i < count($oldValue); $i++) { $queryToGetId .= '"' . $oldValue[$i] . '"'; if ($i < count($oldValue) - 1) { $queryToGetId .= ','; } } $queryToGetId .= ')'; } else { $queryToGetId .= '"' . $oldValue . '")'; } $result = $db->pquery($queryToGetId, array()); $rowCount = $db->num_rows($result); for ($i = 0; $i < $rowCount; $i++) { $recordId = $db->query_result_rowdata($result, $i); $recordId = $recordId['id']; $record = Vtiger_Record_Model::getInstanceById($recordId, 'Users'); $record->set('mode', 'edit'); $record->set($defaultFieldName, $newValue); $record->save(); } }
function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $records = $request->get('records'); $primaryRecord = $request->get('primaryRecord'); $primaryRecordModel = Vtiger_Record_Model::getInstanceById($primaryRecord, $moduleName); $fields = $moduleModel->getFields(); foreach ($fields as $field) { $fieldValue = $request->get($field->getName()); if ($field->isEditable()) { $primaryRecordModel->set($field->getName(), $fieldValue); } } $primaryRecordModel->set('mode', 'edit'); $primaryRecordModel->save(); $deleteRecords = array_diff($records, array($primaryRecord)); foreach ($deleteRecords as $deleteRecord) { $recordPermission = Users_Privileges_Model::isPermitted($moduleName, 'Delete', $deleteRecord); if ($recordPermission) { $primaryRecordModel->transferRelationInfoOfRecords(array($deleteRecord)); $record = Vtiger_Record_Model::getInstanceById($deleteRecord); $record->delete(); } } $response = new Vtiger_Response(); $response->setResult(true); $response->emit(); }
public function addRelation($sourcerecordId, $destinationRecordId) { $adb = PearDatabase::getInstance(); $recordModel = Vtiger_Record_Model::getInstanceById($sourcerecordId, 'OSSMailView'); $date = $recordModel->get('date'); $adb->pquery("INSERT INTO vtiger_ossmailview_relation SET ossmailviewid=?, crmid=?, date=?;", [$sourcerecordId, $destinationRecordId, $date]); }
public function showFieldLayout(Vtiger_Request $request) { $sourceModule = $request->get('sourceModule'); $menuModelsList = Vtiger_Module_Model::getQuickCreateModules(); if (empty($sourceModule)) { //To get the first element $firstElement = reset($menuModelsList); $sourceModule = array($firstElement->get('name')); } else { $sourceModule = array($sourceModule); } $quickCreateContents = array(); if (in_array('Calendar', $sourceModule)) { $sourceModule = array('Calendar', 'Events'); } foreach ($sourceModule as $module) { $recordModel = Vtiger_Record_Model::getCleanInstance($module); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_QUICKCREATE); $quickCreateContents[$module] = $recordStructureInstance->getStructure(); } $qualifiedModule = $request->getModule(false); $viewer = $this->getViewer($request); $viewer->assign('SELECTED_MODULE_NAME', $sourceModule[0]); $viewer->assign('SUPPORTED_MODULES', $menuModelsList); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('RECORDS_STRUCTURE', $quickCreateContents); $viewer->assign('QUALIFIED_MODULE', $qualifiedModule); $viewer->view('Index.tpl', $qualifiedModule); }
public function process(Vtiger_Request $request) { $recordModel = Vtiger_Record_Model::getCleanInstance('OSSMailScanner'); $response = new Vtiger_Response(); $response->setResult($recordModel->executeCron(Users_Record_Model::getCurrentUserModel()->user_name)); $response->emit(); }
function _5_bind_HelpDesk($user_id, $mail_detail, $folder, $return) { $ModuleName = 'HelpDesk'; $table_name = 'vtiger_troubletickets'; $table_col = 'ticket_no'; $ossmailviewTab = 'vtiger_ossmailview_tickets'; $answered_status = 'Answered'; require_once "modules/OSSMailScanner/template_actions/prefix.php"; $ids = bind_prefix($user_id, $mail_detail, $folder, $ModuleName, $table_name, $table_col, $ossmailviewTab); if ($ids) { $conf = OSSMailScanner_Record_Model::getConfig('emailsearch'); $type = OSSMailScanner_Record_Model::getTypeEmail($mail_detail); if ($conf['change_ticket_status'] == 'true' && $type == 1) { foreach ($ids as $id) { $ModelInstance = Vtiger_Record_Model::getInstanceById($id, $ModuleName); $ticketstatus = $ModelInstance->get('ticketstatus'); if ($ticketstatus == 'Wait For Response') { $record = new $ModuleName(); $record->retrieve_entity_info($id, $ModuleName); $record->mode = 'edit'; $record->column_fields['ticketstatus'] = $answered_status; $record->save($ModuleName, $id); } } } } return array('bind_HelpDesk' => $ids); }
protected function getRecordModelFromRequest(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); $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'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $modelData = $recordModel->getData(); $recordModel->set('mode', ''); } $fieldModelList = $moduleModel->getFields(); foreach ($fieldModelList as $fieldName => $fieldModel) { if (in_array($fieldName, array('header_content', 'content', 'footer_content'))) { $fieldValue = $request->getRaw($fieldName, null); } else { $fieldValue = $request->get($fieldName, null); } $fieldDataType = $fieldModel->getFieldDataType(); if ($fieldDataType == 'time') { $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } if ($fieldValue !== null) { if (!is_array($fieldValue)) { $fieldValue = trim($fieldValue); } $recordModel->set($fieldName, $fieldValue); } } return $recordModel; }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); $currencyName = $request->get('currency'); if (!empty($recordId)) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $priceDetails = $recordModel->getPriceDetails(); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $priceDetails = $recordModel->getPriceDetails(); foreach ($priceDetails as $key => $currencyDetails) { if ($currencyDetails['curname'] === $currencyName) { $baseCurrencyConversionRate = $currencyDetails['conversionrate']; break; } } foreach ($priceDetails as $key => $currencyDetails) { if ($currencyDetails['curname'] === $currencyName) { $currencyDetails['conversionrate'] = 1; $currencyDetails['is_basecurrency'] = 1; } else { $currencyDetails['conversionrate'] = $currencyDetails['conversionrate'] / $baseCurrencyConversionRate; $currencyDetails['is_basecurrency'] = 0; } $priceDetails[$key] = $currencyDetails; } } $viewer = $this->getViewer($request); $viewer->assign('MODULE', $moduleName); $viewer->assign('PRICE_DETAILS', $priceDetails); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->view('MoreCurrenciesList.tpl', 'Products'); }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $srecord = $request->get('srecord'); $smodule = $request->get('smodule'); $type = $request->get('type'); $mode = $request->get('mode'); $record = $request->get('record'); $module = $request->get('module'); $currentUser = Users_Record_Model::getCurrentUserModel(); $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $recordModel_OSSMailScanner = Vtiger_Record_Model::getCleanInstance('OSSMailScanner'); $Config = $recordModel_OSSMailScanner->getConfig('email_list'); $emailModuleModel = Vtiger_Module_Model::getInstance('OSSMail'); $config = $emailModuleModel->getComposeParameters(); $urldata = $emailModuleModel->getComposeUrl($smodule, $srecord, 'Detail', $config['popup']); $viewer = $this->getViewer($request); $viewer->assign('RECOLDLIST', $recordModel->{$mode}($srecord, $smodule, $Config, $type)); $viewer->assign('SENDURLDDATA', $urldata); $viewer->assign('MODULENAME', $moduleName); $viewer->assign('SMODULENAME', $smodule); $viewer->assign('RECORD', $record); $viewer->assign('SRECORD', $srecord); $viewer->assign('TYPE', $type); $viewer->assign('POPUP', $config['popup']); $viewer->view('widgets.tpl', 'OSSMailView'); }
public function requestForgotPassword($request) { $request = new Vtiger_Request($request); $adb = PearDatabase::getInstance(); $username = vtlib_purify($request->get('user_name')); $result = $adb->pquery('select id,email1 from vtiger_users where user_name = ? ', array($username)); if ($adb->num_rows($result) > 0) { $email = $adb->query_result($result, 0, 'email1'); } if (strcasecmp($request->get('emailId'), $email) === 0) { $userId = $adb->query_result($result, 0, 'id'); $time = time(); $options = array('handler_path' => 'modules/Users/handlers/ForgotPassword.php', 'handler_class' => 'Users_ForgotPassword_Handler', 'handler_function' => 'changePassword', 'handler_data' => array('username' => $username, 'email' => $email, 'time' => $time, 'hash' => md5($username . $time))); $trackURL = Vtiger_ShortURL_Helper::generateURL($options); $data = ['sysname' => 'UsersForgotPassword', 'to_email' => $email, 'module' => 'Users', 'record' => $userId, 'trackURL' => $trackURL]; $recordModel = Vtiger_Record_Model::getCleanInstance('OSSMailTemplates'); $status = $recordModel->sendMailFromTemplate($data); $site_URL = vglobal('site_URL') . 'index.php?modules=Users&view=Login'; if ($status === 1) { header('Location: ' . $site_URL . '&status=1'); } else { header('Location: ' . $site_URL . '&statusError=1'); } } else { $site_URL = vglobal('site_URL') . 'index.php?modules=Users&view=Login'; header('Location: ' . $site_URL . '&fpError=1'); } }
public function process(Vtiger_Request $request) { $recordId = $request->get('record'); $modules = $request->get('modules'); $assignId = $request->get('assigned_user_id'); $currentUser = Users_Record_Model::getCurrentUserModel(); $entityValues = array(); $entityValues['transferRelatedRecordsTo'] = $request->get('transferModule'); //■権限なぜか、エラーになるので権限を固定するinouchi //$entityValues['assignedTo'] = vtws_getWebserviceEntityId(vtws_getOwnerType($assignId), $assignId); $entityValues['assignedTo'] = vtws_getWebserviceEntityId(vtws_getOwnerType(1), 1); $entityValues['leadId'] = vtws_getWebserviceEntityId($request->getModule(), $recordId); $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $request->getModule()); $convertLeadFields = $recordModel->getConvertLeadFields(); $availableModules = array('Accounts', 'Contacts', 'Potentials'); foreach ($availableModules as $module) { if (vtlib_isModuleActive($module) && in_array($module, $modules)) { $entityValues['entities'][$module]['create'] = true; $entityValues['entities'][$module]['name'] = $module; foreach ($convertLeadFields[$module] as $fieldModel) { $fieldName = $fieldModel->getName(); $fieldValue = $request->get($fieldName); //Potential Amount Field value converting into DB format if ($fieldModel->getFieldDataType() === 'currency') { $fieldValue = Vtiger_Currency_UIType::convertToDBFormat($fieldValue); } elseif ($fieldModel->getFieldDataType() === 'date') { $fieldValue = DateTimeField::convertToDBFormat($fieldValue); } elseif ($fieldModel->getFieldDataType() === 'reference' && $fieldValue) { $ids = vtws_getIdComponents($fieldValue); if (count($ids) === 1) { $fieldValue = vtws_getWebserviceEntityId(getSalesEntityType($fieldValue), $fieldValue); } } $entityValues['entities'][$module][$fieldName] = $fieldValue; } } } try { $result = vtws_convertlead($entityValues, $currentUser); } catch (Exception $e) { $this->showError($request, $e); exit; } if (!empty($result['Accounts'])) { $accountIdComponents = vtws_getIdComponents($result['Accounts']); $accountId = $accountIdComponents[1]; } if (!empty($result['Contacts'])) { $contactIdComponents = vtws_getIdComponents($result['Contacts']); $contactId = $contactIdComponents[1]; } if (!empty($accountId)) { header("Location: index.php?view=Detail&module=Accounts&record={$accountId}"); } elseif (!empty($contactId)) { header("Location: index.php?view=Detail&module=Contacts&record={$contactId}"); } else { $this->showError($request); exit; } }
function addRelation($request) { $sourceModule = $request->getModule(); $sourceRecordId = $request->get('src_record'); $relatedModule = $request->get('related_module'); if (is_numeric($relatedModule)) { $relatedModule = Vtiger_Functions::getModuleName($relatedModule); } $relatedRecordIdList = $request->get('related_record_list'); $sourceModuleModel = Vtiger_Module_Model::getInstance($sourceModule); $relatedModuleModel = Vtiger_Module_Model::getInstance($relatedModule); $relationModel = Vtiger_Relation_Model::getInstance($sourceModuleModel, $relatedModuleModel); foreach ($relatedRecordIdList as $relatedRecordId) { $relationModel->addRelation($sourceRecordId, $relatedRecordId, $listPrice); if ($relatedModule == 'PriceBooks') { $recordModel = Vtiger_Record_Model::getInstanceById($relatedRecordId); if ($sourceRecordId && ($sourceModule === 'Products' || $sourceModule === 'Services')) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($sourceRecordId, $sourceModule); $recordModel->updateListPrice($sourceRecordId, $parentRecordModel->get('unit_price')); } } } $response = new Vtiger_Response(); $response->setResult(true); $response->emit(); }
/** * Function to load record * @param <Number> $recordId * @return <Vtiger_Record_Model> */ protected function loadRecord($recordId) { $moduleName = $this->module->getName(); // Preparation to pull required tool-tip field values. $referenceFields = array(); $fieldNames = array(); foreach ($this->fields as $fieldModel) { $fieldType = $fieldModel->getFieldDataType(); $fieldName = $fieldModel->get('name'); $fieldNames[] = $fieldName; if ($fieldType == 'reference' || $fieldType == 'owner') { $referenceFields[] = $fieldName; } } $wsid = vtws_getWebserviceEntityId($moduleName, $recordId); $q = sprintf("SELECT %s FROM %s WHERE id='%s' LIMIT 1;", implode(',', $fieldNames), $moduleName, $wsid); // Retrieves only required fields of the record with permission check. try { $data = array_shift(vtws_query($q, Users_Record_Model::getCurrentUserModel())); if ($data) { // De-transform the webservice ID to CRM ID. foreach ($data as $key => $value) { if (in_array($key, $referenceFields)) { $value = array_pop(explode('x', $value)); } $data[$key] = $value; } } $this->record = Vtiger_Record_Model::getCleanInstance($moduleName); $this->record->setData($data); } catch (WebServiceException $wex) { // Error retrieving information ! } return $this; }