Beispiel #1
0
 public function updateConfig(Vtiger_Request $request)
 {
     $param = $request->get('param');
     $moduleModel = Settings_MarketingProcesses_Module_Model::getCleanInstance();
     $response = new Vtiger_Response();
     $response->setResult(array('success' => $moduleModel->setConfig($param), 'message' => vtranslate('LBL_SAVE_CONFIG', $request->getModule(false))));
     $response->emit();
 }
    /**
     * Function returns Leads grouped by Status
     * @param type $data
     * @return <Array>
     */
    public function getLeadsByStatus($owner, $dateFilter)
    {
        $db = PearDatabase::getInstance();
        $vtigerModel = new Vtiger_Module_Model();
        $ownerSql = $vtigerModel->getOwnerWhereConditionForDashBoards($owner);
        $currentUser = Users_Record_Model::getCurrentUserModel();
        $module = 'Leads';
        $instance = CRMEntity::getInstance($module);
        $securityParameter = $instance->getUserAccessConditionsQuerySR($module, $currentUser);
        $leadsClosed = Settings_MarketingProcesses_Module_Model::getConfig('lead');
        if (!empty($ownerSql)) {
            $ownerSql = ' AND ' . $ownerSql;
        }
        $response = [];
        $params = array();
        if (!empty($dateFilter)) {
            $dateFilterSql = ' AND createdtime BETWEEN ? AND ? ';
            //client is not giving time frame so we are appending it
            $params[] = $dateFilter['start'] . ' 00:00:00';
            $params[] = $dateFilter['end'] . ' 23:59:59';
        }
        $sql = 'SELECT COUNT(*) as count, CASE WHEN vtiger_leadstatus.leadstatus IS NULL OR vtiger_leadstatus.leadstatus = "" THEN "" ELSE 
						vtiger_leadstatus.leadstatus END AS leadstatusvalue
				FROM vtiger_leaddetails 
				INNER JOIN vtiger_crmentity
					ON vtiger_leaddetails.leadid = vtiger_crmentity.crmid
					AND deleted=0 AND converted = 0 ' . $ownerSql . ' ' . $dateFilterSql . 'INNER JOIN vtiger_leadstatus ON vtiger_leaddetails.leadstatus = vtiger_leadstatus.leadstatus ';
        if ($securityParameter != '') {
            $sql .= $securityParameter;
        }
        if (!empty($leadsClosed['status'])) {
            $leadStatusSearch = implode("','", $leadsClosed['status']);
            $sql .= " AND vtiger_leaddetails.leadstatus NOT IN ('{$leadStatusSearch}')";
        }
        $sql .= ' GROUP BY leadstatusvalue ORDER BY vtiger_leadstatus.sortorderid ';
        $result = $db->pquery($sql, $params);
        $response = array();
        $numRows = $db->num_rows($result);
        if ($numRows > 0) {
            for ($i = 0; $i < $numRows; $i++) {
                $row = $db->query_result_rowdata($result, $i);
                $data[$i]['label'] = vtranslate($row['leadstatusvalue'], 'Leads');
                $ticks[$i][0] = $i;
                $ticks[$i][1] = vtranslate($row['leadstatusvalue'], 'Leads');
                $data[$i]['data'][0][0] = $i;
                $data[$i]['data'][0][1] = $row['count'];
                $name[] = $row['leadstatusvalue'];
            }
            $response['chart'] = $data;
            $response['ticks'] = $ticks;
            $response['name'] = $name;
        }
        return $response;
    }
Beispiel #3
0
 public function process(Vtiger_Request $request)
 {
     $log = vglobal('log');
     $log->debug('Start ' . __CLASS__ . ':' . __FUNCTION__);
     $qualifiedModule = $request->getModule(false);
     $moduleModel = Settings_MarketingProcesses_Module_Model::getCleanInstance();
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $viewer = $this->getViewer($request);
     $viewer->assign('QUALIFIED_MODULE', $qualifiedModule);
     $viewer->assign('USER_MODEL', $currentUser);
     $viewer->assign('MODULE_MODEL', $moduleModel);
     $viewer->view('Index.tpl', $qualifiedModule);
     $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__);
 }
Beispiel #4
0
 /**
  * Function that checks if lead record can be converted
  * @param <String> $status - lead status
  * @return <boolean> if or not allowed to convert
  */
 public static function checkIfAllowedToConvert($status)
 {
     $leadConfig = Settings_MarketingProcesses_Module_Model::getConfig('lead');
     if (empty($leadConfig['convert_status'])) {
         return true;
     } else {
         return in_array($status, $leadConfig['convert_status']);
     }
 }