示例#1
0
 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 = Vtiger_Record_Model::getInstanceById($record, $moduleName);
         $viewer->assign('MODE', '');
     } else {
         if (!empty($record)) {
             $recordModel = 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', '');
             $parentId = $request->get('parentId');
             $parentModule = $request->get('parentModule');
             if ($parentId && $parentModule === 'HelpDesk') {
                 $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId, $parentModule);
                 $recordModel = Faq_Record_Model::getInstanceFromHelpDesk($parentRecordModel);
             }
         }
     }
     $moduleModel = $recordModel->getModule();
     $fieldList = $moduleModel->getFields();
     $requestFieldList = array_intersect_key($request->getAll(), $fieldList);
     foreach ($requestFieldList as $fieldName => $fieldValue) {
         $fieldModel = $fieldList[$fieldName];
         if ($fieldModel->isEditable()) {
             $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);
     }
     $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('RECORD', $recordModel);
     $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks());
     $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'));
     $viewer->view('EditView.tpl', $moduleName);
 }
示例#2
0
 public function process(Vtiger_Request $request)
 {
     $adb = PearDatabase::getInstance();
     $metod = $request->get('metod');
     $params = $request->get('params');
     $params['folder'] = urldecode($params['folder']);
     $return = false;
     if (Vtiger_Functions::getModuleId('OSSMailView') && Vtiger_Functions::getModuleId('OSSMailScanner')) {
         $return = 0;
         $account = OSSMail_Record_Model::get_account_detail_by_name($params['username']);
         $result = $adb->pquery("SELECT ossmailviewid FROM vtiger_ossmailview WHERE id = ? AND mbox = ? AND rc_user = ?", array($params['uid'], $params['folder'], $account[0]['user_id']), true);
         if ($adb->num_rows($result) > 0) {
             $return = $adb->query_result($result, 0, 'ossmailviewid');
         } else {
             $scannerModel = Vtiger_Record_Model::getCleanInstance('OSSMailScanner');
             $params['actions'] = '0_created_Email';
             $mail_Scan_mail = $scannerModel->manualScanMail($params);
             if ($mail_Scan_mail['0_created_Email']) {
                 $return = $mail_Scan_mail['0_created_Email']['created_Email'];
             }
         }
     }
     $response = new Vtiger_Response();
     $response->setResult($return);
     $response->emit();
 }
 /**
  * Creates a new file in the directory
  *
  * Data will either be supplied as a stream resource, or in certain cases
  * as a string. Keep in mind that you may have to support either.
  *
  * After successful creation of the file, you may choose to return the ETag
  * of the new file here.
  *
  * The returned ETag must be surrounded by double-quotes (The quotes should
  * be part of the actual string).
  *
  * If you cannot accurately determine the ETag, you should not return it.
  * If you don't store the file exactly as-is (you're transforming it
  * somehow) you should also not return an ETag.
  *
  * This means that if a subsequent GET to this new file does not exactly
  * return the same contents of what was submitted here, you are strongly
  * recommended to omit the ETag.
  *
  * @param string $name Name of the file
  * @param resource|string $data Initial payload
  * @return null|string
  */
 function createFile($name, $data = null)
 {
     include_once 'include/main/WebUI.php';
     global $log, $adb, $current_user;
     $adb = \PearDatabase::getInstance();
     $log = \LoggerManager::getLogger('DavToCRM');
     $user = new \Users();
     $current_user = $user->retrieveCurrentUserInfoFromFile($this->exData->crmUserId);
     $path = trim($this->path, 'files') . '/' . $name;
     $hash = sha1($path);
     $pathParts = pathinfo($path);
     $localPath = $this->localPath . $name;
     $stmt = $this->exData->pdo->prepare('SELECT crmid, smownerid, deleted FROM vtiger_files INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_files.filesid WHERE vtiger_files.hash = ?;');
     $stmt->execute([$hash]);
     $rows = $stmt->fetch(\PDO::FETCH_ASSOC);
     if ($rows != false && ($rows['smownerid'] != $this->exData->crmUserId || $rows['deleted'] == 1)) {
         throw new DAV\Exception\Conflict('File with name ' . $file . ' could not be located');
     }
     file_put_contents($this->exData->localStorageDir . $localPath, $data);
     if ($rows) {
         $rekord = \Vtiger_Record_Model::getInstanceById($rows['crmid'], 'Files');
         $rekord->set('mode', 'edit');
     } else {
         $rekord = \Vtiger_Record_Model::getCleanInstance('Files');
         $rekord->set('assigned_user_id', $this->exData->crmUserId);
     }
     $rekord->set('title', $pathParts['filename']);
     $rekord->set('name', $pathParts['filename']);
     $rekord->set('path', $localPath);
     $rekord->save();
     $id = $rekord->getId();
     $stmt = $this->exData->pdo->prepare('UPDATE vtiger_files SET dirid=?,extension=?,size=?,hash=?,ctime=? WHERE filesid=?;');
     $stmt->execute([$this->dirid, $pathParts['extension'], filesize($this->exData->localStorageDir . $localPath), $hash, date('Y-m-d H:i:s'), $id]);
 }
示例#4
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $recordId = $request->get('record');
     $recordModel = $this->record;
     if (!$recordModel) {
         if (!empty($recordId)) {
             $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
         } else {
             $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
         }
         $this->record = $recordModel;
     }
     $viewer = $this->getViewer($request);
     $viewer->assign('IMAGE_DETAILS', $recordModel->getImageDetails());
     $salutationFieldModel = Vtiger_Field_Model::getInstance('salutationtype', $recordModel->getModule());
     // Fix for http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/7851
     $salutationType = $request->get('salutationtype');
     if (!empty($salutationType)) {
         $salutationFieldModel->set('fieldvalue', $request->get('salutationtype'));
     } else {
         $salutationFieldModel->set('fieldvalue', $recordModel->get('salutationtype'));
     }
     $viewer->assign('SALUTATION_FIELD_MODEL', $salutationFieldModel);
     parent::process($request);
 }
示例#5
0
 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;
 }
示例#6
0
 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');
     }
 }
 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();
 }
示例#8
0
 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');
 }
示例#9
0
 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);
 }
示例#10
0
 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();
 }
示例#11
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $relatedLoad = $request->get('relatedLoad');
     $data = '';
     if ($relatedLoad) {
         $postData = $request->get('postData');
         $relatedModuleName = $request->get('relatedModuleName');
         $selected_ids = json_decode($postData['selected_ids'], true);
         $OSSMailModel = Vtiger_Record_Model::getCleanInstance('OSSMail');
         $data = $OSSMailModel->getEmailsFromModule($selected_ids, $relatedModuleName);
     } else {
         $selectedFields = $request->get('selectedFields');
         $selected_ids = $request->get('selected_ids');
         foreach ($selected_ids as $key => $value) {
             $recordModel = Vtiger_Record_Model::getInstanceById($value);
             if ($data == '') {
                 $data = $recordModel->get($selectedFields[$key]);
             } else {
                 $data .= ',' . $recordModel->get($selectedFields[$key]);
             }
         }
     }
     $result = array('success' => true, 'data' => $data);
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
示例#12
0
 function handleEvent($eventName, $entityData)
 {
     global $log, $adb, $current;
     $moduleName = $entityData->getModuleName();
     $currentUserModel = Users_Record_Model::getCurrentUserModel();
     if ($moduleName == 'OSSPasswords') {
         if ($eventName == 'vtiger.entity.aftersave.final') {
             $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
             $conf = $recordModel->getConfiguration();
             $sql = "SELECT basic.id FROM `vtiger_modtracker_basic` basic LEFT JOIN `vtiger_modtracker_detail` detail ON detail.`id` = basic.`id` \n                    WHERE basic.module = 'OSSPasswords' AND basic.`whodid` = '{$currentUserModel->id}'  \n                    AND basic.changedon > CURDATE() AND detail.fieldname = 'password' ORDER BY basic.id DESC LIMIT 1;";
             $result = $adb->query($sql, true);
             $num = $adb->num_rows($result);
             if ($num > 0) {
                 $toUpdate = array();
                 for ($i = 0; $i < $num; $i++) {
                     $toUpdate[] = (int) $adb->query_result($result, $i, 'id');
                 }
                 // register changes: show prevalue, hide postvalue
                 if ($conf['register_changes'] == 1) {
                     $sql = "UPDATE `vtiger_modtracker_detail` SET `postvalue` = '**********' WHERE `id` IN (" . implode(',', $toUpdate) . ") AND `fieldname` = 'password';";
                 } else {
                     $sql = "UPDATE `vtiger_modtracker_detail` SET `prevalue` = '**********', `postvalue` = '**********' WHERE `id` IN (" . implode(',', $toUpdate) . ") AND `fieldname` = 'password';";
                 }
                 $adb->query($sql, true);
             }
         }
     }
 }
示例#13
0
    public function getTimeEmployee($id)
    {
        $db = PearDatabase::getInstance();
        $moduleModel = Vtiger_Record_Model::getCleanInstance('OSSTimeControl');
        $Ids = $moduleModel->getProjectRelatedIDS($id);
        foreach ($Ids as $module) {
            foreach ($module as $moduleId) {
                $idArray .= $moduleId . ',';
            }
        }
        $idArray = substr($idArray, 0, -1);
        $addSql = '';
        if ($idArray) {
            $addSql = ' WHERE vtiger_osstimecontrol.osstimecontrolid IN (' . $idArray . ') ';
        }
        //TODO need to handle security
        $result = $db->pquery('SELECT count(*) AS count, concat(vtiger_users.first_name, " " ,vtiger_users.last_name) as name, vtiger_users.id as id, SUM(vtiger_osstimecontrol.sum_time) as time  FROM vtiger_osstimecontrol
						INNER JOIN vtiger_crmentity ON vtiger_osstimecontrol.osstimecontrolid = vtiger_crmentity.crmid
						INNER JOIN vtiger_users ON vtiger_users.id=vtiger_crmentity.smownerid AND vtiger_users.status="ACTIVE"
						AND vtiger_crmentity.deleted = 0' . Users_Privileges_Model::getNonAdminAccessControlQuery($this->getName()) . $addSql . ' GROUP BY smownerid', array());
        $data = array();
        for ($i = 0; $i < $db->num_rows($result); $i++) {
            $row = $db->query_result_rowdata($result, $i);
            $data[] = $row;
        }
        return $data;
    }
示例#14
0
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;
}
 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');
 }
示例#16
0
 /**
  * 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;
 }
示例#17
0
 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');
 }
示例#18
0
 public function process(Vtiger_Request $request)
 {
     global $log;
     $log->debug("Entering ./views/QuickCreateAjax.php::process");
     $moduleName = $request->getModule();
     $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
     $moduleModel = $recordModel->getModule();
     $fieldList = $moduleModel->getFields();
     $requestFieldList = array_intersect_key($request->getAll(), $fieldList);
     foreach ($requestFieldList as $fieldName => $fieldValue) {
         $fieldModel = $fieldList[$fieldName];
         if ($fieldModel->isEditable()) {
             $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue));
         }
     }
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_QUICKCREATE);
     $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName);
     $viewer = $this->getViewer($request);
     $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource));
     $viewer->assign('CURRENTDATE', date('Y-n-j'));
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('SINGLE_MODULE', 'SINGLE_' . $moduleName);
     $viewer->assign('MODULE_MODEL', $moduleModel);
     $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
     $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure());
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->assign('SCRIPTS', $this->getHeaderScripts($request));
     $viewer->assign('MAX_UPLOAD_LIMIT_MB', Vtiger_Util_Helper::getMaxUploadSize());
     $viewer->assign('MAX_UPLOAD_LIMIT', vglobal('upload_maxsize'));
     echo $viewer->view('QuickCreate.tpl', $moduleName, true);
 }
示例#19
0
 /**
  * Function to get Instance of Faq Record Model using TroubleTicket RecordModel
  * @param  HelpDesk_Record_Model
  * @return Faq_Record_Model
  */
 public static function getInstanceFromHelpDesk($parentRecordModel)
 {
     $recordModel = Vtiger_Record_Model::getCleanInstance('Faq');
     $fieldMappingList = Faq_Record_Model::getTicketToFAQMappingFields();
     foreach ($fieldMappingList as $fieldMapping) {
         $ticketField = $fieldMapping['ticketField'];
         $faqField = $fieldMapping['faqField'];
         if (!empty($ticketField)) {
             $faqData[$faqField] = $parentRecordModel->get($ticketField);
         } else {
             $faqData[$faqField] = $fieldMapping['defaultValue'];
         }
     }
     $recordModel->setData($faqData);
     //Updating the answer of Faq
     $answer = $recordModel->get('faq_answer');
     if ($answer) {
         $answer = vtranslate('LBL_SOLUTION', 'Faq') . ":\r\n" . $answer;
     }
     $commentsList = $parentRecordModel->getCommentsList();
     if ($commentsList) {
         $answer .= "\r\n\r\n" . vtranslate('LBL_COMMENTS', 'Faq') . ":";
         foreach ($commentsList as $comment) {
             $answer .= "\r\n{$comment}";
         }
     }
     $recordModel->set('faq_answer', $answer);
     return $recordModel;
 }
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $moduleList = array('Calendar', 'Events');
     $quickCreateContents = array();
     foreach ($moduleList as $module) {
         $info = array();
         $recordModel = Vtiger_Record_Model::getCleanInstance($module);
         $moduleModel = $recordModel->getModule();
         $fieldList = $moduleModel->getFields();
         $requestFieldList = array_intersect_key($request->getAll(), $fieldList);
         foreach ($requestFieldList as $fieldName => $fieldValue) {
             $fieldModel = $fieldList[$fieldName];
             if ($fieldModel->isEditable()) {
                 $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue));
             }
         }
         $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_QUICKCREATE);
         $info['recordStructureModel'] = $recordStructureInstance;
         $info['recordStructure'] = $recordStructureInstance->getStructure();
         $info['moduleModel'] = $moduleModel;
         $quickCreateContents[$module] = $info;
     }
     $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName);
     $viewer = $this->getViewer($request);
     $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource));
     $viewer->assign('CURRENTDATE', date('Y-n-j'));
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('QUICK_CREATE_CONTENTS', $quickCreateContents);
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->assign('SCRIPTS', $this->getHeaderScripts($request));
     $viewer->view('QuickCreate.tpl', $moduleName);
 }
示例#21
0
 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);
 }
示例#22
0
 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)
 {
     $adb = PearDatabase::getInstance();
     // 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');
     $moduleName = $request->getModule();
     $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
     $moduleModel = $recordModel->getModule();
     $fieldList = $moduleModel->getFields();
     $requestFieldList = array_intersect_key($request->getAll(), $fieldList);
     foreach ($requestFieldList as $fieldName => $fieldValue) {
         $fieldModel = $fieldList[$fieldName];
         if ($fieldModel->isEditable()) {
             $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue));
         }
     }
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_QUICKCREATE);
     $recordStructure = $recordStructureInstance->getStructure();
     $sourceRelatedField = $moduleModel->getValuesFromSource($moduleName, $request->get('sourceModule'), $request->get('sourceRecord'));
     foreach ($sourceRelatedField as $field => $value) {
         if (isset($recordStructure[$field])) {
             $fieldvalue = $recordStructure[$field]->get('fieldvalue');
             if (empty($fieldvalue)) {
                 $recordStructure[$field]->set('fieldvalue', $value);
                 unset($sourceRelatedField[$field]);
             }
         }
     }
     $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName);
     $relatedModule = 'OSSPasswords';
     $viewer = $this->getViewer($request);
     $viewer->assign('RELATEDMODULE', $relatedModule);
     $viewer->assign('GENERATEPASS', 'Generate Password');
     $viewer->assign('VIEW', $request->get('view'));
     $viewer->assign('GENERATEONCLICK', 'generate_password(' . $min . ',' . $max . ',\'' . $allow_chars . '\'); return false;');
     $viewer->assign('VALIDATE_STRINGS', vtranslate('Very Weak', $relatedModule) . ',' . vtranslate('Weak', $relatedModule) . ',' . vtranslate('Better', $relatedModule) . ',' . vtranslate('Medium', $relatedModule) . ',' . vtranslate('Strong', $relatedModule) . ',' . vtranslate('Very Strong', $relatedModule));
     $viewer->assign('Very Weak', 'Very Weak');
     $viewer->assign('Weak', 'Weak');
     $viewer->assign('Better', 'Better');
     $viewer->assign('Medium', 'Medium');
     $viewer->assign('Strong', 'Strong');
     $viewer->assign('Very Strong', 'Very Strong');
     $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource));
     $mappingRelatedField = $moduleModel->getMappingRelatedField($moduleName);
     $viewer->assign('MAPPING_RELATED_FIELD', Zend_Json::encode($mappingRelatedField));
     $viewer->assign('CURRENTDATE', date('Y-n-j'));
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('SINGLE_MODULE', 'SINGLE_' . $moduleName);
     $viewer->assign('MODULE_MODEL', $moduleModel);
     $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
     $viewer->assign('RECORD_STRUCTURE', $recordStructure);
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->assign('SCRIPTS', $this->getFooterScripts($request));
     echo $viewer->view('QuickCreate.tpl', $moduleName, true);
 }
示例#24
0
 /**
  * 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)
 {
     $moduleName = $request->getModule();
     $recordId = $request->get('record');
     if (!empty($recordId)) {
         $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
         $recordModel->set('id', $recordId);
         $recordModel->set('mode', 'edit');
         $fieldModelList = $recordModel->getModule()->getFields();
         foreach ($fieldModelList as $fieldName => $fieldModel) {
             //For not converting craetedtime and modified time to user format
             $uiType = $fieldModel->get('uitype');
             if ($uiType == 70) {
                 $fieldValue = $recordModel->get($fieldName);
             } else {
                 $fieldValue = $fieldModel->getUITypeModel()->getUserRequestValue($recordModel->get($fieldName));
             }
             if ($fieldName === $request->get('field')) {
                 $fieldValue = $request->get('value');
             }
             $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);
             }
             $recordModel->set($fieldName, $fieldValue);
         }
     } else {
         $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
         $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
         $recordModel->set('mode', '');
         $fieldModelList = $moduleModel->getFields();
         foreach ($fieldModelList as $fieldName => $fieldModel) {
             if ($request->has($fieldName)) {
                 $fieldValue = $request->get($fieldName, null);
             } else {
                 $fieldValue = $fieldModel->getDefaultFieldValue();
             }
             $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;
 }
示例#25
0
 public function process(Vtiger_Request $request)
 {
     $param = $request->get('updatedFields');
     $recordModel = Vtiger_Record_Model::getCleanInstance('OSSMail');
     $result = array('success' => true, 'data' => $recordModel->setConfigData($param));
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
示例#26
0
 public function process(Vtiger_Request $request)
 {
     $id = $request->get('id');
     $recordModel_OSSMailScanner = Vtiger_Record_Model::getCleanInstance('OSSMailScanner');
     $recordModel_OSSMailScanner->AccontDelete($id);
     $response = new Vtiger_Response();
     $response->setResult(array('success' => true, 'data' => vtranslate('AccontDeleteOK', 'OSSMailScanner')));
     $response->emit();
 }
示例#27
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $OSSMailScanner_Record_Model = Vtiger_Record_Model::getCleanInstance('OSSMailScanner');
     $WidgetCfg = $OSSMailScanner_Record_Model->getConfig(false);
     $viewer = $this->getViewer($request);
     $viewer->assign('MODULENAME', $moduleName);
     $viewer->assign('WIDGET_CFG', $WidgetCfg);
     echo $viewer->view('index.tpl', $moduleName, true);
 }
示例#28
0
 public function process(Vtiger_Request $request)
 {
     $startNumber = $request->get('start_number');
     $moduleName = $request->getModule();
     $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
     $log = $recordModel->get_scan_history($startNumber);
     $response = new Vtiger_Response();
     $response->setResult($log);
     $response->emit();
 }
示例#29
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $newSequence = $request->get('newSequence');
     $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
     $result = $recordModel->updateBlocks($newSequence);
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
示例#30
0
 public function process(Vtiger_Request $request)
 {
     $moduleName = $request->getModule();
     $id = $request->get('id');
     $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
     $recordModel->deleteIdentities($id);
     $response = new Vtiger_Response();
     $response->setResult(true);
     $response->emit();
 }