Example #1
1
 public function process(Vtiger_Request $request)
 {
     //To stop saveing the value of salutation as '--None--'
     $salutationType = $request->get('salutationtype');
     if ($salutationType === '--None--') {
         $request->set('salutationtype', '');
     }
     parent::process($request);
 }
 public function process(Vtiger_Request $request)
 {
     // SalesPlatform.ru begin
     require_once 'includes/SalesPlatform/NetIDNA/idna_convert.class.php';
     // SalesPlatform.ru end
     $outgoingServerSettingsModel = Settings_Vtiger_Systems_Model::getInstanceFromServerType('email', 'OutgoingServer');
     $loadDefaultSettings = $request->get('default');
     if ($loadDefaultSettings == "true") {
         $outgoingServerSettingsModel->loadDefaultValues();
     } else {
         $outgoingServerSettingsModel->setData($request->getAll());
     }
     $response = new Vtiger_Response();
     // SalesPlatform.ru begin
     $idn = new idna_convert();
     $server_username = $idn->encode(vtlib_purify($request->get('server')));
     $from_email_field = $idn->encode(vtlib_purify($request->get('from_email_field')));
     $request->set('server_username', $server_username);
     $request->set('from_email_field', $from_email_field);
     // SalesPlatform.ru end
     try {
         $id = $outgoingServerSettingsModel->save($request);
         $data = $outgoingServerSettingsModel->getData();
         $response->setResult($data);
     } catch (Exception $e) {
         $response->setError($e->getCode(), $e->getMessage());
     }
     $response->emit();
 }
Example #3
0
 public function process(Vtiger_Request $request)
 {
     ${"GLOBALS"}["ekosczsy"] = "tabid";
     ${${"GLOBALS"}["ekosczsy"]} = getTabId($request->get("workflowModule"));
     ${"GLOBALS"}["mhuirymtoy"] = "tabid";
     ${${"GLOBALS"}["hvamuhbnnwu"]} = \PearDatabase::getInstance();
     if ($request->get("hidden") == true) {
         ob_start();
     }
     if (!empty(${${"GLOBALS"}["mhuirymtoy"]})) {
         ${"GLOBALS"}["outajbzyo"] = "result";
         ${${"GLOBALS"}["rnhwfqjyx"]} = "SELECT linkid FROM vtiger_links WHERE linktype = 'DETAILVIEWSIDEBARWIDGET' AND linklabel = 'Workflows' AND tabid = " . ${${"GLOBALS"}["bxwgaby"]};
         ${${"GLOBALS"}["dsrfsmvy"]} = $adb->query(${${"GLOBALS"}["rnhwfqjyx"]});
         ${${"GLOBALS"}["xdyqgnxwn"]} = $request->get("MODE");
         $xyxnkgw = "mode";
         if (${${"GLOBALS"}["xdyqgnxwn"]} == "ADD" && $adb->num_rows(${${"GLOBALS"}["outajbzyo"]}) > 1) {
             ${"GLOBALS"}["cnubqpsfrtf"] = "tabid";
             $adb->query("DELETE FROM vtiger_links WHERE (linktype = 'DETAILVIEWSIDEBARWIDGET' OR linktype = 'LISTVIEWSIDEBARWIDGET') AND linklabel = 'Workflows' AND tabid = " . ${${"GLOBALS"}["bxwgaby"]}, true);
             ${${"GLOBALS"}["rnhwfqjyx"]} = "SELECT linkid FROM vtiger_links WHERE linktype = 'DETAILVIEWSIDEBARWIDGET' AND linklabel = 'Workflows' AND tabid = " . ${${"GLOBALS"}["cnubqpsfrtf"]};
             ${${"GLOBALS"}["dsrfsmvy"]} = $adb->query(${${"GLOBALS"}["rnhwfqjyx"]});
         }
         if (${${"GLOBALS"}["xdyqgnxwn"]} == "DEL" || empty(${$xyxnkgw}) && $adb->num_rows(${${"GLOBALS"}["dsrfsmvy"]}) > 0) {
             ${"GLOBALS"}["jywgricc"] = "tabid";
             $lxcddedp = "mode";
             ${$lxcddedp} = "DEL";
             $adb->query("DELETE FROM vtiger_links WHERE (linktype = 'DETAILVIEWSIDEBARWIDGET' OR linktype = 'LISTVIEWSIDEBARWIDGET') AND linklabel = 'Workflows' AND tabid = " . ${${"GLOBALS"}["jywgricc"]}, true);
             echo getTranslatedString("LBL_ACTIVATE_SIDEBAR", "Settings:Workflow2");
         } elseif ($adb->num_rows(${${"GLOBALS"}["dsrfsmvy"]}) == 0) {
             ${"GLOBALS"}["ocotbv"] = "mode";
             ${${"GLOBALS"}["ocotbv"]} = "ADD";
             ${"GLOBALS"}["hdlxhrdrllur"] = "linkid";
             ${${"GLOBALS"}["rzgmacoc"]} = $adb->getUniqueID("vtiger_links");
             $adb->query("INSERT INTO vtiger_links SET linkid = '" . ${${"GLOBALS"}["rzgmacoc"]} . "',linktype = 'DETAILVIEWSIDEBARWIDGET', linklabel = 'Workflows', tabid = " . ${${"GLOBALS"}["bxwgaby"]} . ",linkurl='" . "module=Workflow2&view=SidebarWidget" . "'", true);
             ${${"GLOBALS"}["rzgmacoc"]} = $adb->getUniqueID("vtiger_links");
             $qcahtlck = "tabid";
             $adb->query("INSERT INTO vtiger_links SET linkid = '" . ${${"GLOBALS"}["hdlxhrdrllur"]} . "',linktype = 'LISTVIEWSIDEBARWIDGET', linklabel = 'Workflows', tabid = " . ${$qcahtlck} . ",linkurl='" . "module=Workflow2&src_module=" . $request->get("workflowModule") . "&view=SidebarListWidget" . "'", true);
             echo getTranslatedString("LBL_DEACTIVATE_SIDEBAR", "Settings:Workflow2");
         }
     }
     if ($request->get("hidden") == true) {
         ob_end_clean();
     }
     if ($request->get("workflowModule") == "Calendar") {
         ${"GLOBALS"}["jrpyqoyvdoz"] = "request2";
         ${${"GLOBALS"}["jrpyqoyvdoz"]} = ${${"GLOBALS"}["ognxjavta"]};
         $request->set("MODE", ${${"GLOBALS"}["xdyqgnxwn"]});
         $request->set("workflowModule", "Events");
         $request->set("hidden", true);
         $this->process(${${"GLOBALS"}["ognxjavta"]});
     }
 }
Example #4
0
 public function process(Vtiger_Request $request)
 {
     global $log, $adb, $moduleName;
     $currentUserModel = Users_Record_Model::getCurrentUserModel();
     $request->set('assigned_user_id', $currentUserModel->getId());
     $request->set('userid', $currentUserModel->getId());
     $recordModel = $this->saveRecord($request);
     $fieldModelList = $recordModel->getModule()->getFields();
     $result = array();
     foreach ($fieldModelList as $fieldName => $fieldModel) {
         $fieldValue = $recordModel->get($fieldName);
         $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $fieldModel->getDisplayValue($fieldValue));
     }
     $result['id'] = $recordModel->getId();
     $result['_recordLabel'] = $recordModel->getName();
     $result['_recordId'] = $recordModel->getId();
     //modify by jmangarret 11jun2015 Enviar email
     $idCaso = $request->get("related_to");
     $userid = $request->get("userid");
     $comment = $request->get("commentcontent");
     $query = $adb->pquery("select smcreatorid, smownerid from vtiger_crmentity where setype='HelpDesk' and crmid = ? ", array($idCaso));
     $row = $adb->fetchByAssoc($query);
     $idowner = $row['smownerid'];
     $idcreator = $row['smcreatorid'];
     if ($userid == $idowner) {
         $userid = $idcreator;
     } else {
         $userid = $idowner;
     }
     $query = $adb->pquery("select * from vtiger_troubletickets where ticketid = ? ", array($idCaso));
     $row = $adb->fetchByAssoc($query);
     $title = $row['title'];
     //Para Validar si es un comentario de un caso
     $ticket = $row['ticket_no'];
     //Para Validar si es un comentario de un caso
     if ($title && $idowner != $idcreator) {
         $query = $adb->pquery("select * from vtiger_users where id = ? ", array($userid));
         $row = $adb->fetchByAssoc($query);
         $email = $row["email1"];
         $nombre = $row["first_name"];
         $asunto = "Informacion";
         $mensaje = " \n\t\t\t\t<html> \n\t\t\t\t<head> \n\t\t\t\t<title>Info - Tu Agencia 24</title> \n\t\t\t\t</head> \n\t\t\t\t<body> \n\t\t\t\t<p>" . $nombre . ",</p>\n\t\t\t\t<p>El siguiente caso ha sido comentado:</p>\n\t\t\t\t<p><b>Nro. Ticket: </b>" . $ticket . "</p>\n\t\t\t\t<p><b>Caso: </b>" . $title . "</p>\n\t\t\t\t<p><b>Comentario: </b>" . $comment . "</p>\n\t\t\t\t<BR><BR><BR>\n\t\t\t\t<i>\n\t\t\t\tGracias,\t\t\n\t\t\t\t<p>Equipo TuAgencia24.com</p>\n\t\t\t\t</i>\n\t\t\t\t</body> \n\t\t\t\t</html> ";
         enviarEmail($email, $asunto, $mensaje);
     }
     //Fin enviar email
     $response = new Vtiger_Response();
     $response->setEmitType(Vtiger_Response::$EMIT_JSON);
     $response->setResult($result);
     $response->emit();
 }
Example #5
0
 public function process(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $scannerId = $request->get('scannerId');
     $action = $request->get('action1');
     $request->set('action', $action);
     $qualifiedModuleName = $request->getModule(false);
     if ($recordId) {
         $recordModel = Settings_MailConverter_RuleRecord_Model::getInstanceById($recordId);
     } else {
         $recordModel = Settings_MailConverter_RuleRecord_Model::getCleanInstance($scannerId);
     }
     $recordModel->assignedTo = $request->get('assignedTo');
     $recordModel->cc = $request->get('cc');
     $recordModel->bcc = $request->get('bcc');
     $fieldsList = $recordModel->getFields();
     foreach ($fieldsList as $fieldName) {
         $recordModel->set($fieldName, $request->get($fieldName));
     }
     $recordModel->set('newAction', $request->get('action'));
     $ruleId = $recordModel->save();
     $response = new Vtiger_Response();
     $response->setResult(array('message' => vtranslate('LBL_SAVED_SUCCESSFULLY', $qualifiedModuleName), 'id' => $ruleId, 'scannerId' => $scannerId));
     $response->emit();
 }
Example #6
0
 public function process(Vtiger_Request $request)
 {
     //the new values are added to $_REQUEST for Ajax Save, are removing the Tax details depend on the 'ajxaction' value
     $_REQUEST['ajxaction'] = 'DETAILVIEW';
     $request->set('ajaxaction', 'DETAILVIEW');
     parent::process($request);
 }
Example #7
0
 public function preProcess(Vtiger_Request $request)
 {
     date_default_timezone_set('Europe/London');
     // to overcome the pre configuration settings
     // Added to redirect to default module if already installed
     $request->set('module', 'Install');
     $configFileName = 'config/config.inc.php';
     if (is_file($configFileName) && filesize($configFileName) > 0) {
         $defaultModule = vglobal('default_module');
         $defaultModuleInstance = Vtiger_Module_Model::getInstance($defaultModule);
         $defaultView = $defaultModuleInstance->getDefaultViewName();
         header('Location:../index.php?module=' . $defaultModule . '&view=' . $defaultView);
         exit;
     }
     $request = $this->setLanguage($request);
     $_SESSION['default_language'] = $defaultLanguage = $request->get('lang') ? $request->get('lang') : 'en_us';
     vglobal('default_language', $defaultLanguage);
     $viewer = new Vtiger_Viewer();
     $viewer->setTemplateDir('install/tpl/');
     $viewer->assign('LANGUAGE_STRINGS', $this->getJSLanguageStrings($request));
     $viewer->assign('HTMLLANG', Vtiger_Language_Handler::getShortLanguageName());
     define('INSTALLATION_MODE', true);
     define('INSTALLATION_MODE_DEBUG', $this->debug);
     echo $viewer->fetch('InstallPreProcess.tpl');
 }
 public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
 {
     //src_module value is added just to stop showing inactive services
     $request->set('src_module', $request->getModule());
     parent::initializeListViewContents($request, $viewer);
     $viewer->assign('MODULE', $request->getModule());
     //$viewer->assign('GETURL', 'getTaxesURL');
     $viewer->assign('VIEW', 'CalculationsPopup');
 }
Example #9
0
 public function process(Vtiger_Request $request)
 {
     //the new values are added to $_REQUEST for MassSave, are removing the Tax details depend on the 'action' value
     $_REQUEST['action'] = 'MassEditSave';
     $request->set('action', 'MassEditSave');
     //the new values are added to $_REQUEST for MassSave, the unit price depend on the 'mass_edit_check' value
     $_REQUEST['unit_price_mass_edit_check'] = 'off';
     parent::process($request);
 }
Example #10
0
 public function process(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $currentUserModel = Users_Record_Model::getCurrentUserModel();
     $request->set('assigned_user_id', $currentUserModel->getId());
     $request->set('userid', $currentUserModel->getId());
     $this->saveRecord($request);
     $recordModel = ModComments_Record_Model::getInstanceById($recordId);
     $result['success'] = true;
     $result['reasontoedit'] = $recordModel->get('reasontoedit');
     $result['commentcontent'] = $recordModel->get('commentcontent');
     $result['modifiedtime'] = Vtiger_Util_Helper::formatDateDiffInStrings($recordModel->get('modifiedtime'));
     $result['modifiedtimetitle'] = Vtiger_Util_Helper::formatDateTimeIntoDayString($recordModel->get('modifiedtime'));
     $response = new Vtiger_Response();
     $response->setEmitType(Vtiger_Response::$EMIT_JSON);
     $response->setResult($result);
     $response->emit();
 }
Example #11
0
 public function process(Vtiger_Request $request)
 {
     //Restrict to store indirect relationship from Potentials to Contacts
     $sourceModule = $request->get('sourceModule');
     $relationOperation = $request->get('relationOperation');
     if ($relationOperation && $sourceModule === 'Contacts') {
         $request->set('relationOperation', false);
     }
     parent::process($request);
 }
Example #12
0
 public function process(Vtiger_Request $request)
 {
     $currentUserModel = Users_Record_Model::getCurrentUserModel();
     $request->set('assigned_user_id', $currentUserModel->getId());
     $request->set('userid', $currentUserModel->getId());
     $recordModel = $this->saveRecord($request);
     $fieldModelList = $recordModel->getModule()->getFields();
     $result = array();
     foreach ($fieldModelList as $fieldName => $fieldModel) {
         $fieldValue = $recordModel->get($fieldName);
         $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $fieldModel->getDisplayValue($fieldValue));
     }
     $result['id'] = $recordModel->getId();
     $result['_recordLabel'] = $recordModel->getName();
     $result['_recordId'] = $recordModel->getId();
     $response = new Vtiger_Response();
     $response->setEmitType(Vtiger_Response::$EMIT_JSON);
     $response->setResult($result);
     $response->emit();
 }
Example #13
0
 public function process(Vtiger_Request $request)
 {
     $result = Vtiger_Util_Helper::transformUploadedFiles($_FILES, true);
     $_FILES = $result['imagename'];
     //To stop saveing the value of salutation as '--None--'
     $salutationType = $request->get('salutationtype');
     if ($salutationType === '--None--') {
         $request->set('salutationtype', '');
     }
     parent::process($request);
 }
 public function process(Vtiger_Request $request)
 {
     global $current_user;
     ${"GLOBALS"}["yiresb"] = "active";
     ${"GLOBALS"}["knunfcsjumu"] = "workflowID";
     $kzjdunyh = "sql";
     ${"GLOBALS"}["jjsjrqhhjneu"] = "workflowID";
     ${${"GLOBALS"}["opwcyadpqbwr"]} = PearDatabase::getInstance();
     ${${"GLOBALS"}["jjsjrqhhjneu"]} = intval($request->get("workflow"));
     ${${"GLOBALS"}["yiresb"]} = intval($request->get("value"));
     ${${"GLOBALS"}["qiklrvjvw"]} = "UPDATE vtiger_wf_settings SET `active` = ? WHERE id = ?";
     $adb->pquery(${$kzjdunyh}, array(${${"GLOBALS"}["ljpwhfqap"]}, intval(${${"GLOBALS"}["knunfcsjumu"]})));
     ${"GLOBALS"}["vztwzy"] = "active";
     if (${${"GLOBALS"}["ljpwhfqap"]} == "1") {
         $tvsadaoea = "result";
         ${${"GLOBALS"}["qiklrvjvw"]} = "SELECT module_name FROM vtiger_wf_settings WHERE id = ?";
         $rdlqurtccaf = "request";
         ${"GLOBALS"}["ovgycf"] = "sidebar";
         $ncascfhhoju = "result";
         ${$tvsadaoea} = $adb->pquery(${${"GLOBALS"}["qiklrvjvw"]}, array(intval(${${"GLOBALS"}["yhvtuimi"]})));
         ${${"GLOBALS"}["redluzuev"]} = $adb->fetchByAssoc(${$ncascfhhoju});
         $request->set("workflowModule", ${${"GLOBALS"}["redluzuev"]}["module_name"]);
         $request->set("hidden", true);
         $request->set("MODE", "ADD");
         ${${"GLOBALS"}["ovgycf"]} = new Settings_Workflow2_SidebarToggle_Action();
         $sidebar->process(${$rdlqurtccaf});
     }
     if (${${"GLOBALS"}["vztwzy"]} != "1") {
         ${"GLOBALS"}["lofseigxsa"] = "workflowObj";
         ${"GLOBALS"}["ncfqhsgvlvp"] = "runningCounter";
         ${${"GLOBALS"}["lofseigxsa"]} = new \Workflow\Main(${${"GLOBALS"}["yhvtuimi"]});
         ${${"GLOBALS"}["ncfqhsgvlvp"]} = $workflowObj->countRunningInstances();
         if (${${"GLOBALS"}["noevuiecun"]} > 0) {
             echo json_encode(array("show_warning" => 1));
             exit;
         }
     }
     echo json_encode(array("show_warning" => 0));
     exit;
 }
Example #15
0
 public function process(Vtiger_Request $request)
 {
     $recordId = $request->get('record');
     $currentUserModel = Users_Record_Model::getCurrentUserModel();
     $request->set('assigned_user_id', $currentUserModel->getId());
     $request->set('userid', $currentUserModel->getId());
     $recordModel = $this->saveRecord($request);
     $responseFieldsToSent = array('reasontoedit', 'commentcontent');
     $fieldModelList = $recordModel->getModule()->getFields();
     foreach ($responseFieldsToSent as $fieldName) {
         $fieldModel = $fieldModelList[$fieldName];
         $fieldValue = $recordModel->get($fieldName);
         $result[$fieldName] = $fieldModel->getDisplayValue(Vtiger_Util_Helper::toSafeHTML($fieldValue));
     }
     $result['success'] = true;
     $result['modifiedtime'] = Vtiger_Util_Helper::formatDateDiffInStrings($recordModel->get('modifiedtime'));
     $result['modifiedtimetitle'] = Vtiger_Util_Helper::formatDateTimeIntoDayString($recordModel->get('modifiedtime'));
     $response = new Vtiger_Response();
     $response->setEmitType(Vtiger_Response::$EMIT_JSON);
     $response->setResult($result);
     $response->emit();
 }
Example #16
0
 public function process(Vtiger_Request $request)
 {
     global $root_directory;
     $relatedModule = $request->get('relatedModule');
     $relatedView = $request->get('relatedView');
     include_once "modules/Vtiger/views/{$relatedView}.php";
     if (file_exists($root_directory . "modules/{$relatedModule}/views/{$relatedView}.php")) {
         include_once "modules/{$relatedModule}/views/{$relatedView}.php";
         $viewName = ucwords($relatedModule) . "_" . ucwords($relatedView) . "_View";
     } else {
         $viewName = "Vtiger_" . ucwords($relatedView) . "_View";
     }
     $viewInstance = new $viewName();
     $request->set('module', $relatedModule);
     $request->set('view', $relatedView);
     $headerScriptInstances = $viewInstance->getHeaderScripts($request);
     $jsList = array();
     foreach ($headerScriptInstances as $key => $jsModel) {
         $jsList[] = $jsModel->getSrc();
     }
     $response = new Vtiger_Response();
     $response->setResult($jsList);
     $response->emit();
 }
Example #17
0
 public function process(Vtiger_Request $request)
 {
     $user = Users_Record_Model::getCurrentUserModel();
     $allDay = $request->get('allday');
     if ('on' == $allDay) {
         $request->set('time_start', NULL);
         $request->set('time_end', NULL);
     }
     $recordModel = $this->saveRecord($request);
     $fieldModelList = $recordModel->getModule()->getFields();
     $result = array();
     foreach ($fieldModelList as $fieldName => $fieldModel) {
         $fieldValue = Vtiger_Util_Helper::toSafeHTML($recordModel->get($fieldName));
         $result[$fieldName] = array();
         if ($fieldName == 'date_start') {
             $timeStart = $recordModel->get('time_start');
             $dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeStart);
             $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
             $dateTimeComponents = explode(' ', $userDateTimeString);
             $dateComponent = $dateTimeComponents[0];
             //Conveting the date format in to Y-m-d . since full calendar expects in the same format
             $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
             $result[$fieldName]['value'] = $fieldValue;
             $result[$fieldName]['display_value'] = $dataBaseDateFormatedString;
         } else {
             if ($fieldName == 'due_date') {
                 $timeEnd = $recordModel->get('time_end');
                 $dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeEnd);
                 $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
                 $dateTimeComponents = explode(' ', $userDateTimeString);
                 $dateComponent = $dateTimeComponents[0];
                 //Conveting the date format in to Y-m-d . since full calendar expects in the same format
                 $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format'));
                 $result[$fieldName]['value'] = $fieldValue;
                 $result[$fieldName]['display_value'] = $dataBaseDateFormatedString;
             } else {
                 if ($fieldName == 'time_end') {
                     $dueDate = $recordModel->get('due_date');
                     $dateTimeFieldInstance = new DateTimeField($dueDate . ' ' . $fieldValue);
                     $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
                     $dateTimeComponents = explode(' ', $userDateTimeString);
                     $result[$fieldName]['value'] = $fieldValue;
                     $result[$fieldName]['display_value'] = $dateTimeComponents[1];
                 } else {
                     if ($fieldName == 'time_start') {
                         $startDate = $recordModel->get('date_start');
                         $dateTimeFieldInstance = new DateTimeField($startDate . ' ' . $fieldValue);
                         $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue();
                         $dateTimeComponents = explode(' ', $userDateTimeString);
                         $result[$fieldName]['value'] = $fieldValue;
                         $result[$fieldName]['display_value'] = $dateTimeComponents[1];
                     } else {
                         if ('time_start' != $fieldName && 'time_end' != $fieldName && 'duration_hours' != $fieldName) {
                             $result[$fieldName]['value'] = $fieldValue;
                             $result[$fieldName]['display_value'] = decode_html($fieldModel->getDisplayValue($fieldValue));
                         } else {
                             $result[$fieldName]['value'] = $result[$fieldName]['display_value'] = $fieldValue;
                         }
                     }
                 }
             }
         }
     }
     $result['_recordLabel'] = $recordModel->getName();
     $result['_recordId'] = $recordModel->getId();
     // Handled to save follow up event
     $followupMode = $request->get('followup');
     if ($followupMode == 'on') {
         //Start Date and Time values
         $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('followup_time_start'));
         $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('followup_date_start') . " " . $startTime);
         list($startDate, $startTime) = explode(' ', $startDateTime);
         $subject = $request->get('subject');
         if ($startTime != '' && $startDate != '') {
             $recordModel->set('eventstatus', 'Planned');
             $recordModel->set('subject', '[Followup] ' . $subject);
             $recordModel->set('date_start', $startDate);
             $recordModel->set('time_start', $startTime);
             $currentUser = Users_Record_Model::getCurrentUserModel();
             $activityType = $recordModel->get('activitytype');
             if ($activityType == 'Call') {
                 $minutes = $currentUser->get('callduration');
             } else {
                 $minutes = $currentUser->get('othereventduration');
             }
             $dueDateTime = date('Y-m-d H:i:s', strtotime("{$startDateTime}+{$minutes} minutes"));
             list($endDate, $endTime) = explode(' ', $dueDateTime);
             $recordModel->set('due_date', $endDate);
             $recordModel->set('time_end', $endTime);
             $recordModel->set('mode', 'create');
             $recordModel->save();
         }
     }
     $response = new Vtiger_Response();
     $response->setEmitType(Vtiger_Response::$EMIT_JSON);
     $response->setResult($result);
     $response->emit();
 }
Example #18
0
 public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
 {
     //src_module value is added to just to stop showing inactive products
     $request->set('src_module', $request->getModule());
     $moduleName = $this->getModule($request);
     $cvId = $request->get('cvid');
     $pageNumber = $request->get('page');
     $orderBy = $request->get('orderby');
     $sortOrder = $request->get('sortorder');
     $sourceModule = $request->get('src_module');
     $sourceField = $request->get('src_field');
     $sourceRecord = $request->get('src_record');
     $searchKey = $request->get('search_key');
     $searchValue = $request->get('search_value');
     $currencyId = $request->get('currency_id');
     $potentialId = $request->get('potentialid');
     $searchParams = $request->get('search_params');
     //To handle special operation when selecting record from Popup
     $getUrl = $request->get('get_url');
     //Check whether the request is in multi select mode
     $multiSelectMode = $request->get('multi_select');
     if (empty($multiSelectMode)) {
         $multiSelectMode = false;
     }
     if (empty($cvId)) {
         $cvId = '0';
     }
     if (empty($pageNumber)) {
         $pageNumber = '1';
     }
     $pagingModel = new Vtiger_Paging_Model();
     $pagingModel->set('page', $pageNumber);
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule);
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel);
     if (empty($orderBy) && empty($sortOrder)) {
         $moduleInstance = CRMEntity::getInstance($moduleName);
         $orderBy = $moduleInstance->default_order_by;
         $sortOrder = $moduleInstance->default_sort_order;
     }
     if (!empty($orderBy)) {
         $listViewModel->set('orderby', $orderBy);
         $listViewModel->set('sortorder', $sortOrder);
     }
     if (!empty($sourceModule)) {
         $listViewModel->set('src_module', $sourceModule);
         $listViewModel->set('src_field', $sourceField);
         $listViewModel->set('src_record', $sourceRecord);
     }
     if (!empty($searchKey) && !empty($searchValue)) {
         $listViewModel->set('search_key', $searchKey);
         $listViewModel->set('search_value', $searchValue);
     }
     $searchParmams = $request->get('search_params');
     if (empty($searchParmams)) {
         $searchParmams = array();
     }
     $transformedSearchParams = Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParmams, $moduleModel);
     $listViewModel->set('search_params', $transformedSearchParams);
     //To make smarty to get the details easily accesible
     foreach ($searchParmams as $fieldListGroup) {
         foreach ($fieldListGroup as $fieldSearchInfo) {
             $fieldSearchInfo['searchValue'] = $fieldSearchInfo[2];
             $fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0];
             $searchParmams[$fieldName] = $fieldSearchInfo;
         }
     }
     if (Settings_SalesProcesses_Module_Model::checkRelatedToPotentialsLimit() && Settings_SalesProcesses_Module_Model::isLimitForModule($sourceModule)) {
         if ($potentialId == '') {
             $potentialId = -1;
         }
         $listViewModel->set('potential_id', $potentialId);
         $viewer->assign('INVENTORY_LIMITED_FROM_POTENTIALS', true);
     }
     $productModel = Vtiger_Module_Model::getInstance('Products');
     if (!$this->listViewHeaders) {
         $this->listViewHeaders = $listViewModel->getListViewHeaders();
     }
     if (!$this->listViewEntries && $productModel->isActive()) {
         $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
     }
     if (!$productModel->isActive()) {
         $this->listViewEntries = array();
         $viewer->assign('LBL_MODULE_DISABLED', true);
     }
     foreach ($this->listViewEntries as $key => $listViewEntry) {
         $productId = $listViewEntry->getId();
         $subProducts = $listViewModel->getSubProducts($productId);
         if ($subProducts) {
             $listViewEntry->set('subProducts', $subProducts);
         }
     }
     $noOfEntries = count($this->listViewEntries);
     if (empty($sortOrder)) {
         $sortOrder = "ASC";
     }
     if ($sortOrder == "ASC") {
         $nextSortOrder = "DESC";
         $sortImage = "downArrowSmall.png";
     } else {
         $nextSortOrder = "ASC";
         $sortImage = "upArrowSmall.png";
     }
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('MODULE_NAME', $moduleName);
     $viewer->assign('RELATED_MODULE', $moduleName);
     $viewer->assign('SOURCE_MODULE', $sourceModule);
     $viewer->assign('SOURCE_FIELD', $sourceField);
     $viewer->assign('SOURCE_RECORD', $sourceRecord);
     $viewer->assign('SEARCH_KEY', $searchKey);
     $viewer->assign('SEARCH_VALUE', $searchValue);
     $viewer->assign('ORDER_BY', $orderBy);
     $viewer->assign('SORT_ORDER', $sortOrder);
     $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
     $viewer->assign('SORT_IMAGE', $sortImage);
     $viewer->assign('GETURL', $getUrl);
     $viewer->assign('CURRENCY_ID', $currencyId);
     $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
     $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure());
     $viewer->assign('PAGING_MODEL', $pagingModel);
     $viewer->assign('PAGE_NUMBER', $pageNumber);
     $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
     $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
     $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
     $viewer->assign('POPUPTYPE', vglobal('popupType'));
     if (AppConfig::performance('LISTVIEW_COMPUTE_PAGE_COUNT')) {
         if (!$this->listViewCount) {
             $this->listViewCount = $listViewModel->getListViewCount();
         }
         $totalCount = $this->listViewCount;
         $pageLimit = $pagingModel->getPageLimit();
         $pageCount = ceil((int) $totalCount / (int) $pageLimit);
         if ($pageCount == 0) {
             $pageCount = 1;
         }
         $viewer->assign('PAGE_COUNT', $pageCount);
         $viewer->assign('LISTVIEW_COUNT', $totalCount);
     }
     $viewer->assign('MULTI_SELECT', $multiSelectMode);
     $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->assign('TARGET_MODULE', $moduleName);
     $viewer->assign('MODULE', $request->getModule());
     $viewer->assign('GETURL', 'getTaxesURL');
     $viewer->assign('VIEW', 'ProductsPopup');
     $viewer->assign('SEARCH_DETAILS', $searchParmams);
 }
Example #19
0
 public function process(Vtiger_Request $request)
 {
     $db = PearDatabase::getInstance();
     $log = vglobal('log');
     $log->debug('Starting Quick Edit OSSPasswords');
     // czy to 'password'????
     $isPassword = $request->get('field') == 'password' ? true : false;
     // check if password was added thrue related module view
     $isRelatedPassword = $request->get('password') != '' && $request->get('password') != '**********' ? true : false;
     // check if encryption is enabled
     $config == false;
     if (file_exists('modules/OSSPasswords/config.ini.php')) {
         $config = parse_ini_file('modules/OSSPasswords/config.ini.php');
     }
     // force updateing password
     if ($isPassword) {
         $recordId = $request->get('record');
         $properPassword = $isPassword ? $request->get('value') : '**********';
         $log->debug('recordid: ' . $recordId . ' properpass:'******'**********') == 0) {
             $log->debug('Hidden password...');
             if ($config) {
                 // when encryption is on
                 $log->debug('Get encrypted password.');
                 $sql = "SELECT AES_DECRYPT(`password`, '" . $config['key'] . "') AS pass FROM `vtiger_osspasswords` WHERE `osspasswordsid` = ?;";
                 $result = $db->pquery($sql, array($recordId), true);
                 $properPassword = $db->query_result($result, 0, 'pass');
             } else {
                 // encryption mode is off
                 $log->debug('Get plain text password.');
                 $sql = "SELECT `password` AS pass FROM `vtiger_osspasswords` WHERE `osspasswordsid` = ?;";
                 $result = $db->pquery($sql, array($recordId), true);
                 $properPassword = $db->query_result($result, 0, 'pass');
                 $log->debug('Plain text pass: '******'value', $properPassword);
     }
     $recordModel = $this->saveRecord($request);
     // apply encryption if encryption mode is on
     if ($isPassword && $config) {
         $log->debug('Encrypt new password: '******'key'], $recordId), true);
     } else {
         if ($isRelatedPassword && $config) {
             $record = $recordModel->getId();
             $properPassword = $request->get('password');
             $log->debug('Encrypt new related module password: '******'key'], $record), true);
         }
     }
     $fieldModelList = $recordModel->getModule()->getFields();
     $result = array();
     foreach ($fieldModelList as $fieldName => $fieldModel) {
         $recordFieldValue = $recordModel->get($fieldName);
         if (is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') {
             $recordFieldValue = implode(' |##| ', $recordFieldValue);
         }
         $fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue);
         if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'time' && $fieldModel->getFieldDataType() !== 'date') {
             $displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId());
         }
         $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue);
     }
     // Handling salutation type
     if ($request->get('field') === 'firstname' && in_array($request->getModule(), array('Contacts', 'Leads'))) {
         $salutationType = $recordModel->getDisplayValue('salutationtype');
         $firstNameDetails = $result['firstname'];
         $firstNameDetails['display_value'] = $salutationType . " " . $firstNameDetails['display_value'];
         if ($salutationType != '--None--') {
             $result['firstname'] = $firstNameDetails;
         }
     }
     $result['_recordLabel'] = $recordModel->getName();
     $result['_recordId'] = $recordModel->getId();
     $response = new Vtiger_Response();
     $response->setEmitType(Vtiger_Response::$EMIT_JSON);
     $response->setResult($result);
     $response->emit();
 }
Example #20
0
 public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
 {
     $request->set('src_module', $request->getModule());
     //
     $moduleName = $this->getModule($request);
     $cvId = $request->get('cvid');
     $pageNumber = $request->get('page');
     $orderBy = $request->get('orderby');
     $sortOrder = $request->get('sortorder');
     $sourceModule = $request->get('src_module');
     $sourceField = $request->get('src_field');
     $sourceRecord = $request->get('src_record');
     $searchKey = $request->get('search_key');
     $searchValue = $request->get('search_value');
     $currencyId = $request->get('currency_id');
     $relatedParentModule = $request->get('related_parent_module');
     $relatedParentId = $request->get('related_parent_id');
     $potentialId = $request->get('potentialid');
     //To handle special operation when selecting record from Popup
     $getUrl = $request->get('get_url');
     //Check whether the request is in multi select mode
     $multiSelectMode = $request->get('multi_select');
     if (empty($multiSelectMode)) {
         $multiSelectMode = false;
     }
     if (empty($cvId)) {
         $cvId = '0';
     }
     if (empty($pageNumber)) {
         $pageNumber = '1';
     }
     $pagingModel = new Vtiger_Paging_Model();
     $pagingModel->set('page', $pageNumber);
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel);
     $isRecordExists = Vtiger_Util_Helper::checkRecordExistance($relatedParentId);
     if ($isRecordExists) {
         $relatedParentModule = '';
         $relatedParentId = '';
     } else {
         if ($isRecordExists === NULL) {
             $relatedParentModule = '';
             $relatedParentId = '';
         }
     }
     if (!empty($relatedParentModule) && !empty($relatedParentId)) {
         $parentRecordModel = Vtiger_Record_Model::getInstanceById($relatedParentId, $relatedParentModule);
         $listViewModel = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $moduleName, $label);
     } else {
         $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule);
     }
     if (empty($orderBy) && empty($sortOrder)) {
         $moduleInstance = CRMEntity::getInstance($moduleName);
         $orderBy = $moduleInstance->default_order_by;
         $sortOrder = $moduleInstance->default_sort_order;
     }
     if (!empty($orderBy)) {
         $listViewModel->set('orderby', $orderBy);
         $listViewModel->set('sortorder', $sortOrder);
     }
     if (!empty($sourceModule)) {
         $listViewModel->set('src_module', $sourceModule);
         $listViewModel->set('src_field', $sourceField);
         $listViewModel->set('src_record', $sourceRecord);
     }
     if (!empty($searchKey) && !empty($searchValue)) {
         $listViewModel->set('search_key', $searchKey);
         $listViewModel->set('search_value', $searchValue);
     }
     if (!empty($potentialId) && vglobal('inventory_popup_limited_from_potentials')) {
         $listViewModel->set('potential_id', $potentialId);
         $viewer->assign('INVENTORY_LIMITED_FROM_POTENTIALS', true);
     }
     if (!empty($relatedParentModule) && !empty($relatedParentId)) {
         $this->listViewHeaders = $listViewModel->getHeaders();
         $models = $listViewModel->getEntries($pagingModel);
         $noOfEntries = count($models);
         foreach ($models as $recordId => $recordModel) {
             foreach ($this->listViewHeaders as $fieldName => $fieldModel) {
                 $recordModel->set($fieldName, $recordModel->getDisplayValue($fieldName));
             }
             $models[$recordId] = $recordModel;
         }
         $this->listViewEntries = $models;
         if (count($this->listViewEntries) > 0) {
             $parent_related_records = true;
         }
     } else {
         $this->listViewHeaders = $listViewModel->getListViewHeaders();
         $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
     }
     // If there are no related records with parent module then, we should show all the records
     if (!$parent_related_records && !empty($relatedParentModule) && !empty($relatedParentId)) {
         $relatedParentModule = null;
         $relatedParentId = null;
         $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule);
         if (!empty($orderBy)) {
             $listViewModel->set('orderby', $orderBy);
             $listViewModel->set('sortorder', $sortOrder);
         }
         if (!empty($sourceModule)) {
             $listViewModel->set('src_module', $sourceModule);
             $listViewModel->set('src_field', $sourceField);
             $listViewModel->set('src_record', $sourceRecord);
         }
         if (!empty($searchKey) && !empty($searchValue)) {
             $listViewModel->set('search_key', $searchKey);
             $listViewModel->set('search_value', $searchValue);
         }
         $this->listViewHeaders = $listViewModel->getListViewHeaders();
         $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
     }
     // End
     $noOfEntries = count($this->listViewEntries);
     if (empty($sortOrder)) {
         $sortOrder = "ASC";
     }
     if ($sortOrder == "ASC") {
         $nextSortOrder = "DESC";
         $sortImage = "downArrowSmall.png";
     } else {
         $nextSortOrder = "ASC";
         $sortImage = "upArrowSmall.png";
     }
     $viewer->assign('MODULE', $request->getModule());
     //
     $viewer->assign('RELATED_MODULE', $moduleName);
     $viewer->assign('MODULE_NAME', $moduleName);
     $viewer->assign('SOURCE_MODULE', $sourceModule);
     $viewer->assign('SOURCE_FIELD', $sourceField);
     $viewer->assign('SOURCE_RECORD', $sourceRecord);
     $viewer->assign('RELATED_PARENT_MODULE', $relatedParentModule);
     $viewer->assign('RELATED_PARENT_ID', $relatedParentId);
     $viewer->assign('SEARCH_KEY', $searchKey);
     $viewer->assign('SEARCH_VALUE', $searchValue);
     $viewer->assign('ORDER_BY', $orderBy);
     $viewer->assign('SORT_ORDER', $sortOrder);
     $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
     $viewer->assign('SORT_IMAGE', $sortImage);
     $viewer->assign('GETURL', 'getTaxesURL');
     //
     $viewer->assign('CURRENCY_ID', $currencyId);
     $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
     $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure());
     $viewer->assign('PAGING_MODEL', $pagingModel);
     $viewer->assign('PAGE_NUMBER', $pageNumber);
     $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
     $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
     $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
     if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
         if (!$this->listViewCount) {
             $this->listViewCount = $listViewModel->getListViewCount();
         }
         $totalCount = $this->listViewCount;
         $pageLimit = $pagingModel->getPageLimit();
         $pageCount = ceil((int) $totalCount / (int) $pageLimit);
         if ($pageCount == 0) {
             $pageCount = 1;
         }
         $viewer->assign('PAGE_COUNT', $pageCount);
         $viewer->assign('LISTVIEW_COUNT', $totalCount);
     }
     $viewer->assign('MULTI_SELECT', $multiSelectMode);
     $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->assign('VIEW', 'ServicesPopup');
 }
 function process(Vtiger_Request $request)
 {
     $Vtiger_Utils_Log = true;
     include_once 'vtlib/Vtiger/Module.php';
     $adb = PearDatabase::getInstance();
     $module = Vtiger_Module::getInstance('PDFMaker');
     if ($module) {
         $PDFMakerModel = new PDFMaker_PDFMaker_Model();
         $request->set('key', $PDFMakerModel->GetLicenseKey());
         $PDFMaker_License_Action_Model = new PDFMaker_License_Action();
         $PDFMaker_License_Action_Model->deactivateLicense($request);
         $module->delete();
         @shell_exec('rm -r modules/PDFMaker');
         @shell_exec('rm -r layouts/vlayout/modules/PDFMaker');
         @shell_exec('rm -f languages/ae_ae/PDFMaker.php');
         @shell_exec('rm -f languages/cz_cz/PDFMaker.php');
         @shell_exec('rm -f languages/de_de/PDFMaker.php');
         @shell_exec('rm -f languages/en_gb/PDFMaker.php');
         @shell_exec('rm -f languages/en_us/PDFMaker.php');
         @shell_exec('rm -f languages/es_es/PDFMaker.php');
         @shell_exec('rm -f languages/es_mx/PDFMaker.php');
         @shell_exec('rm -f languages/fr_fr/PDFMaker.php');
         @shell_exec('rm -f languages/hi_hi/PDFMaker.php');
         @shell_exec('rm -f languages/hu_hu/PDFMaker.php');
         @shell_exec('rm -f languages/it_it/PDFMaker.php');
         @shell_exec('rm -f languages/nl_nl/PDFMaker.php');
         @shell_exec('rm -f languages/pl_pl/PDFMaker.php');
         @shell_exec('rm -f languages/pt_br/PDFMaker.php');
         @shell_exec('rm -f languages/ro_ro/PDFMaker.php');
         @shell_exec('rm -f languages/ru_ru/PDFMaker.php');
         @shell_exec('rm -f languages/sk_sk/PDFMaker.php');
         @shell_exec('rm -f languages/sv_se/PDFMaker.php');
         @shell_exec('rm -f languages/tr_tr/PDFMaker.php');
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_seq", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_settings", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_breakline", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_images", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_releases", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_userstatus", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblocks", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblocks_seq", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblockcol", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblockcriteria", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblockcriteria_g", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblockdatefilter", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblocksortcol", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_productbloc_tpl", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_ignorepicklistvalues", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_license", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_version", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_profilespermissions", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_sharing", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_labels", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_label_keys", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_label_vals", array());
         $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_usersettings", array());
         $result = array('success' => true);
     } else {
         $result = array('success' => false);
     }
     ob_clean();
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
Example #22
0
 function process(Vtiger_Request $request)
 {
     vglobal('log', LoggerManager::getLogger('System'));
     Vtiger_Session::init();
     $forceSSL = vglobal('forceSSL');
     if ($forceSSL && !Vtiger_Functions::getBrowserInfo()->https) {
         header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}");
     }
     // Better place this here as session get initiated
     //skipping the csrf checking for the forgot(reset) password
     $csrfProtection = vglobal('csrfProtection');
     if ($csrfProtection) {
         if ($request->get('mode') != 'reset' && $request->get('action') != 'Login') {
             require_once 'libraries/csrf-magic/csrf-magic.php';
         }
         require_once 'config/csrf_config.php';
     }
     // TODO - Get rid of global variable $current_user
     // common utils api called, depend on this variable right now
     $currentUser = $this->getLogin();
     vglobal('current_user', $currentUser);
     $currentLanguage = Vtiger_Language_Handler::getLanguage();
     vglobal('current_language', $currentLanguage);
     $module = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     if ($currentUser && $qualifiedModuleName) {
         $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage, $qualifiedModuleName);
         vglobal('mod_strings', $moduleLanguageStrings['languageStrings']);
     }
     if ($currentUser) {
         $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage);
         vglobal('app_strings', $moduleLanguageStrings['languageStrings']);
     }
     $view = $request->get('view');
     $action = $request->get('action');
     $response = false;
     try {
         if ($this->isInstalled() === false && $module != 'Install') {
             header('Location:install/Install.php');
             exit;
         }
         if (empty($module)) {
             if ($this->hasLogin()) {
                 $defaultModule = vglobal('default_module');
                 if (!empty($defaultModule) && $defaultModule != 'Home') {
                     $module = $defaultModule;
                     $qualifiedModuleName = $defaultModule;
                     $view = 'List';
                     if ($module == 'Calendar') {
                         // To load MyCalendar instead of list view for calendar
                         //TODO: see if it has to enhanced and get the default view from module model
                         $view = 'Calendar';
                     }
                 } else {
                     $module = 'Home';
                     $qualifiedModuleName = 'Home';
                     $view = 'DashBoard';
                 }
             } else {
                 $module = 'Users';
                 $qualifiedModuleName = 'Settings:Users';
                 $view = 'Login';
             }
             $request->set('module', $module);
             $request->set('view', $view);
         }
         if (!empty($action)) {
             $componentType = 'Action';
             $componentName = $action;
         } else {
             $componentType = 'View';
             if (empty($view)) {
                 $view = 'Index';
             }
             $componentName = $view;
         }
         $handlerClass = Vtiger_Loader::getComponentClassName($componentType, $componentName, $qualifiedModuleName);
         $handler = new $handlerClass();
         if ($handler) {
             vglobal('currentModule', $module);
             $csrfProtection = vglobal('csrfProtection');
             if ($csrfProtection) {
                 // Ensure handler validates the request
                 $handler->validateRequest($request);
             }
             if ($handler->loginRequired()) {
                 $this->checkLogin($request);
             }
             //TODO : Need to review the design as there can potential security threat
             $skipList = array('Users', 'Home', 'CustomView', 'Import', 'Export', 'Inventory', 'Vtiger', 'PriceBooks', 'Migration', 'Install');
             if (!in_array($module, $skipList) && stripos($qualifiedModuleName, 'Settings') === false) {
                 $this->triggerCheckPermission($handler, $request);
             }
             // Every settings page handler should implement this method
             if (stripos($qualifiedModuleName, 'Settings') === 0 || $module == 'Users') {
                 $handler->checkPermission($request);
             }
             $notPermittedModules = array('ModComments', 'Integration', 'DashBoard');
             if (in_array($module, $notPermittedModules) && $view == 'List') {
                 header('Location:index.php?module=Home&view=DashBoard');
             }
             $this->triggerPreProcess($handler, $request);
             $response = $handler->process($request);
             $this->triggerPostProcess($handler, $request);
         } else {
             throw new AppException(vtranslate('LBL_HANDLER_NOT_FOUND'));
         }
     } catch (Exception $e) {
         if ($view) {
             // Log for developement.
             error_log($e->getTraceAsString(), E_NOTICE);
             Vtiger_Functions::throwNewException($e->getMessage());
         } else {
             $response = new Vtiger_Response();
             $response->setEmitType(Vtiger_Response::$EMIT_JSON);
             $response->setError($e->getMessage());
             //Vtiger_Functions::throwNewException($e->getMessage());
         }
     }
     if ($response) {
         $response->emit();
     }
 }
Example #23
0
 function process(Vtiger_Request $request)
 {
     Vtiger_Session::init();
     // Better place this here as session get initiated
     //skipping the csrf checking for the forgot(reset) password
     if ($request->get('mode') != 'reset' && $request->get('action') != 'Login') {
         require_once 'libraries/csrf-magic/csrf-magic.php';
     }
     // TODO - Get rid of global variable $current_user
     // common utils api called, depend on this variable right now
     $currentUser = $this->getLogin();
     vglobal('current_user', $currentUser);
     global $default_language;
     vglobal('default_language', $default_language);
     $currentLanguage = Vtiger_Language_Handler::getLanguage();
     vglobal('current_language', $currentLanguage);
     $module = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     if ($currentUser && $qualifiedModuleName) {
         $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage, $qualifiedModuleName);
         vglobal('mod_strings', $moduleLanguageStrings['languageStrings']);
     }
     if ($currentUser) {
         $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage);
         vglobal('app_strings', $moduleLanguageStrings['languageStrings']);
     }
     $view = $request->get('view');
     $action = $request->get('action');
     $response = false;
     try {
         if ($this->isInstalled() === false && $module != 'Install') {
             header('Location:index.php?module=Install&view=Index');
             exit;
         }
         if (empty($module)) {
             if ($this->hasLogin()) {
                 $defaultModule = vglobal('default_module');
                 if (!empty($defaultModule) && $defaultModule != 'Home') {
                     $module = $defaultModule;
                     $qualifiedModuleName = $defaultModule;
                     $view = 'List';
                     if ($module == 'Calendar') {
                         // To load MyCalendar instead of list view for calendar
                         //TODO: see if it has to enhanced and get the default view from module model
                         $view = 'Calendar';
                     }
                 } else {
                     $module = 'Home';
                     $qualifiedModuleName = 'Home';
                     $view = 'DashBoard';
                 }
             } else {
                 $module = 'Users';
                 $qualifiedModuleName = 'Settings:Users';
                 $view = 'Login';
             }
             $request->set('module', $module);
             $request->set('view', $view);
         }
         if (!empty($action)) {
             $componentType = 'Action';
             $componentName = $action;
         } else {
             $componentType = 'View';
             if (empty($view)) {
                 $view = 'Index';
             }
             $componentName = $view;
         }
         $handlerClass = Vtiger_Loader::getComponentClassName($componentType, $componentName, $qualifiedModuleName);
         $handler = new $handlerClass();
         if ($handler) {
             vglobal('currentModule', $module);
             // Ensure handler validates the request
             $handler->validateRequest($request);
             if ($handler->loginRequired()) {
                 $this->checkLogin($request);
             }
             //TODO : Need to review the design as there can potential security threat
             $skipList = array('Users', 'Home', 'CustomView', 'Import', 'Export', 'Inventory', 'Vtiger', 'PriceBooks', 'Migration', 'Install');
             if (!in_array($module, $skipList) && stripos($qualifiedModuleName, 'Settings') === false) {
                 $this->triggerCheckPermission($handler, $request);
             }
             // Every settings page handler should implement this method
             if (stripos($qualifiedModuleName, 'Settings') === 0 || $module == 'Users') {
                 $handler->checkPermission($request);
             }
             $notPermittedModules = array('ModComments', 'Integration', 'DashBoard');
             if (in_array($module, $notPermittedModules) && $view == 'List') {
                 header('Location:index.php?module=Home&view=DashBoard');
             }
             $this->triggerPreProcess($handler, $request);
             /** EventHandler START */
             list($handler, $request) = EventHandler_Module_Model::do_filter(array("vtiger.filter.process." . strtolower($module . '.' . $componentName . "." . $componentType) . ".before", "vtiger.filter.process." . strtolower($componentName . "." . $componentType) . ".before"), array($handler, $request));
             /** EventHandler ENDE */
             $response = $handler->process($request);
             /** EventHandler START */
             list($handler, $request) = EventHandler_Module_Model::do_filter(array("vtiger.filter.process." . strtolower($module . '.' . $componentName . "." . $componentType) . ".after", "vtiger.filter.process." . strtolower($componentName . "." . $componentType) . ".after"), array($handler, $request));
             /** EventHandler ENDE */
             $this->triggerPostProcess($handler, $request);
         } else {
             throw new AppException(vtranslate('LBL_HANDLER_NOT_FOUND'));
         }
     } catch (Exception $e) {
         if ($view) {
             // Log for developement.
             error_log($e->getTraceAsString(), E_NOTICE);
             $viewer = new Vtiger_Viewer();
             $viewer->assign('MESSAGE', $e->getMessage());
             $viewer->view('OperationNotPermitted.tpl', 'Vtiger');
         } else {
             $response = new Vtiger_Response();
             $response->setEmitType(Vtiger_Response::$EMIT_JSON);
             $response->setError($e->getMessage());
         }
     }
     /** EventHandler START */
     EventHandler_Module_Model::do_action("vtiger.process.finish", array($module, $componentName, $componentType));
     EventHandler_Module_Model::do_action("vtiger.process." . strtolower($module . '.' . $componentName . "." . $componentType) . ".finish", array($module, $componentName, $componentType));
     /** EventHandler ENDE */
     if ($response) {
         $response->emit();
     }
 }
Example #24
0
 public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
 {
     //src_module value is added to just to stop showing inactive products
     $request->set('src_module', $request->getModule());
     $moduleName = $this->getModule($request);
     $cvId = $request->get('cvid');
     $pageNumber = $request->get('page');
     $orderBy = $request->get('orderby');
     $sortOrder = $request->get('sortorder');
     $sourceField = $request->get('src_field');
     $sourceRecord = $request->get('src_record');
     $searchKey = $request->get('search_key');
     $searchValue = $request->get('search_value');
     $currencyId = $request->get('currency_id');
     //To handle special operation when selecting record from Popup
     $getUrl = $request->get('get_url');
     // To handle subproducts in popup view
     $subProductsPopup = $request->get('subProductsPopup');
     $parentProductId = $request->get('productid');
     //Check whether the request is in multi select mode
     $multiSelectMode = $request->get('multi_select');
     if (empty($multiSelectMode)) {
         $multiSelectMode = false;
     }
     if (empty($cvId)) {
         $cvId = '0';
     }
     if (empty($pageNumber)) {
         $pageNumber = '1';
     }
     $pagingModel = new Vtiger_Paging_Model();
     $pagingModel->set('page', $pageNumber);
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName);
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel);
     if (!empty($orderBy)) {
         $listViewModel->set('orderby', $orderBy);
         $listViewModel->set('sortorder', $sortOrder);
     }
     if (!empty($sourceModule)) {
         $listViewModel->set('src_module', $sourceModule);
         $listViewModel->set('src_field', $sourceField);
         $listViewModel->set('src_record', $sourceRecord);
     }
     if (!empty($searchKey) && !empty($searchValue)) {
         $listViewModel->set('search_key', $searchKey);
         $listViewModel->set('search_value', $searchValue);
     }
     if ($subProductsPopup && $parentProductId) {
         $listViewModel->set('subProductsPopup', true);
         $listViewModel->set('productId', $parentProductId);
         $viewer->assign('SUBPRODUCTS_POPUP', $subProductsPopup);
         $viewer->assign('PARENT_PRODUCT_ID', $parentProductId);
     }
     if (!$this->listViewHeaders) {
         $this->listViewHeaders = $listViewModel->getListViewHeaders();
     }
     if (!$this->listViewEntries) {
         $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
     }
     $noOfEntries = count($this->listViewEntries);
     if (empty($sortOrder)) {
         $sortOrder = "ASC";
     }
     if ($sortOrder == "ASC") {
         $nextSortOrder = "DESC";
         $sortImage = "downArrowSmall.png";
     } else {
         $nextSortOrder = "ASC";
         $sortImage = "upArrowSmall.png";
     }
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('SOURCE_MODULE', $sourceModule);
     $viewer->assign('SOURCE_FIELD', $sourceField);
     $viewer->assign('SOURCE_RECORD', $sourceRecord);
     $viewer->assign('SEARCH_KEY', $searchKey);
     $viewer->assign('SEARCH_VALUE', $searchValue);
     $viewer->assign('ORDER_BY', $orderBy);
     $viewer->assign('SORT_ORDER', $sortOrder);
     $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
     $viewer->assign('SORT_IMAGE', $sortImage);
     $viewer->assign('GETURL', $getUrl);
     $viewer->assign('CURRENCY_ID', $currencyId);
     $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
     $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure());
     $viewer->assign('PAGING_MODEL', $pagingModel);
     $viewer->assign('PAGE_NUMBER', $pageNumber);
     $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
     $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
     $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
     if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
         if (!$this->listViewCount) {
             $this->listViewCount = $listViewModel->getListViewCount();
         }
         $totalCount = $this->listViewCount;
         $pageLimit = $pagingModel->getPageLimit();
         $pageCount = ceil((int) $totalCount / (int) $pageLimit);
         if ($pageCount == 0) {
             $pageCount = 1;
         }
         $viewer->assign('PAGE_COUNT', $pageCount);
         $viewer->assign('LISTVIEW_COUNT', $totalCount);
     }
     $viewer->assign('MULTI_SELECT', $multiSelectMode);
     $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->assign('MODULE', $request->getModule());
     $viewer->assign('GETURL', 'getTaxesURL');
     $viewer->assign('VIEW', 'SubProductsPopup');
     $viewer->assign('MAIN_PRODUCT_POPUP', true);
 }
Example #25
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
  */
 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;
 }