protected function loadModelById($local_id)
 {
     $user = CRMEntity::getInstance("Users");
     $user->retrieve_entity_info($local_id, "Users");
     vtlib_setup_modulevars("Users", $user);
     $user->id = $local_id;
     $user->mode = 'edit';
     return $user;
 }
    function get_ventas_list($id, $cur_tab_id, $rel_tab_id, $actions = false)
    {
        global $adb;
        $this_module = $currentModule;
        $related_module = vtlib_getModuleNameById($rel_tab_id);
        require_once "modules/{$related_module}/{$related_module}.php";
        $other = new $related_module();
        vtlib_setup_modulevars($related_module, $other);
        $singular_modname = vtlib_toSingular($related_module);
        $parenttab = getParentTab();
        if ($singlepane_view == 'true') {
            $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
        } else {
            $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
        }
        $button = '';
        $button .= '<input type="hidden" name="email_directing_module"><input type="hidden" name="record">';
        $sql = "SELECT registrodeventasid FROM vtiger_registrodepagos WHERE registrodepagosid = ?";
        $result = $adb->pquery($sql, array($id));
        $row = $adb->fetchByAssoc($result);
        $ventaid = $row["registrodeventasid"];
        $query = 'SELECT vtiger_crmentity.crmid,vtiger_registrodeventas.contacto, vtiger_registrodeventas.registrodeventastype, vtiger_crmentity.smownerid, vtiger_registrodeventas.registrodeventasname FROM vtiger_registrodeventas INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_registrodeventas.registrodeventasid INNER JOIN vtiger_crmentityrel ON (vtiger_crmentityrel.relcrmid = vtiger_crmentity.crmid OR vtiger_crmentityrel.crmid = vtiger_crmentity.crmid) LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid  WHERE vtiger_crmentity.deleted = 0 AND (vtiger_crmentityrel.crmid = ' . $ventaid . ' OR vtiger_crmentityrel.relcrmid = ' . $ventaid . ')  
';
        //var_dump($query); exit;
        $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
        return $return_value;
    }
Beispiel #3
0
 /**
  * Create query to export the records.
  */
 function create_export_query($where)
 {
     global $current_user;
     $thismodule = $_REQUEST['module'];
     include "include/utils/ExportUtils.php";
     //To get the Permitted fields query and the permitted fields list
     $sql = getPermittedFieldsQuery($thismodule, "detail_view");
     $fields_list = getFieldsListFromQuery($sql);
     $query = "SELECT {$fields_list}, vtiger_users.user_name AS user_name \n\t\t\t\tFROM vtiger_crmentity INNER JOIN {$this->table_name} ON vtiger_crmentity.crmid={$this->table_name}.{$this->table_index}";
     if (!empty($this->customFieldTable)) {
         $query .= " INNER JOIN " . $this->customFieldTable[0] . " ON " . $this->customFieldTable[0] . '.' . $this->customFieldTable[1] . " = {$this->table_name}.{$this->table_index}";
     }
     $query .= " LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
     $query .= " LEFT JOIN vtiger_users ON vtiger_crmentity.smownerid = vtiger_users.id and vtiger_users.status='Active'";
     $linkedModulesQuery = $this->db->pquery("SELECT distinct fieldname, columnname, relmodule FROM vtiger_field" . " INNER JOIN vtiger_fieldmodulerel ON vtiger_fieldmodulerel.fieldid = vtiger_field.fieldid" . " WHERE uitype='10' AND vtiger_fieldmodulerel.module=?", array($thismodule));
     $linkedFieldsCount = $this->db->num_rows($linkedModulesQuery);
     $rel_mods[$this->table_name] = 1;
     for ($i = 0; $i < $linkedFieldsCount; $i++) {
         $related_module = $this->db->query_result($linkedModulesQuery, $i, 'relmodule');
         $fieldname = $this->db->query_result($linkedModulesQuery, $i, 'fieldname');
         $columnname = $this->db->query_result($linkedModulesQuery, $i, 'columnname');
         $other = CRMEntity::getInstance($related_module);
         vtlib_setup_modulevars($related_module, $other);
         if ($rel_mods[$other->table_name]) {
             $rel_mods[$other->table_name] = $rel_mods[$other->table_name] + 1;
             $alias = $other->table_name . $rel_mods[$other->table_name];
             $query_append = "as {$alias}";
         } else {
             $alias = $other->table_name;
             $query_append = '';
             $rel_mods[$other->table_name] = 1;
         }
         $query .= " LEFT JOIN {$other->table_name} {$query_append} ON {$alias}.{$other->table_index} = {$this->table_name}.{$columnname}";
     }
     $query .= $this->getNonAdminAccessControlQuery($thismodule, $current_user);
     $where_auto = " vtiger_crmentity.deleted=0";
     if ($where != '') {
         $query .= " WHERE ({$where}) AND {$where_auto}";
     } else {
         $query .= " WHERE {$where_auto}";
     }
     return $query;
 }
Beispiel #4
0
        require_once "modules/{$currentModule}/{$currentModule}.php";
        $focus = new $currentModule();
        $smarty->assign("SINGLE_MOD", $currentModule);
        if (isset($_REQUEST['return_module']) && $_REQUEST['return_module'] != '') {
            $smarty->assign("RETURN_MODULE", vtlib_purify($_REQUEST['return_module']));
        }
        $alphabetical = AlphabeticalSearch($currentModule, 'Popup', $focus->def_basicsearch_col, 'true', 'basic', $popuptype, "", "", $url);
        if (isset($_REQUEST['select'])) {
            $smarty->assign("SELECT", 'enable');
        }
        break;
        // END
}
// vtlib customization: Initialize focus to get generic popup
if ($_REQUEST['form'] == 'vtlibPopupView') {
    vtlib_setup_modulevars($currentModule, $focus);
}
// END
$smarty->assign("RETURN_ACTION", vtlib_purify($_REQUEST['return_action']));
//Retreive the list from Database
if ($currentModule == 'PriceBooks') {
    $productid = $_REQUEST['productid'];
    $currency_id = $_REQUEST['currencyid'];
    if ($currency_id == null) {
        $currency_id = fetchCurrency($current_user->id);
    }
    $query = 'select vtiger_pricebook.*, vtiger_pricebookproductrel.productid, vtiger_pricebookproductrel.listprice, ' . 'vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.modifiedtime ' . 'from vtiger_pricebook inner join vtiger_pricebookproductrel on vtiger_pricebookproductrel.pricebookid = vtiger_pricebook.pricebookid ' . 'inner join vtiger_crmentity on vtiger_crmentity.crmid = vtiger_pricebook.pricebookid ' . 'where vtiger_pricebookproductrel.productid=' . $adb->sql_escape_string($productid) . ' and vtiger_crmentity.deleted=0 ' . 'and vtiger_pricebook.currency_id=' . $adb->sql_escape_string($currency_id) . ' and vtiger_pricebook.active=1';
} else {
    if (isset($_REQUEST['recordid']) && $_REQUEST['recordid'] != '') {
        $smarty->assign("RECORDID", vtlib_purify($_REQUEST['recordid']));
        $url_string .= '&recordid=' . vtlib_purify($_REQUEST['recordid']);
Beispiel #5
0
 function get_project_mail($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $currentModule, $app_strings, $singlepane_view;
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     $other = CRMEntity::getInstance($related_module);
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $button = '';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input type='hidden' name='createmode' id='createmode' value='link' />" . "<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EditView\";this.form.module.value=\"{$related_module}\"' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "'>&nbsp;";
         }
     }
     if ($singlepane_view == 'true') {
         $returnset = "&return_module={$this_module}&return_action=DetailView&return_id={$id}";
     } else {
         $returnset = "&return_module={$this_module}&return_action=CallRelatedList&return_id={$id}";
     }
     $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
     $query = "SELECT case when (vtiger_users.user_name not like '') then {$userNameSql} else vtiger_groups.groupname end as user_name,\n\t\t\t\tvtiger_crmentity.*, vtiger_project.*, vtiger_projectcf.*\n\t\t\t\tFROM vtiger_project\n\t\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_project.projectid\n\t\t\t\tLEFT JOIN vtiger_projectcf ON vtiger_projectcf.projectid = vtiger_project.projectid\n\t\t\t\tLEFT JOIN vtiger_ossmailview_project ON vtiger_ossmailview_project.crmid = vtiger_project.projectid\n\t\t\t\tLEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid\n\t\t\t\tLEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\t\tWHERE vtiger_crmentity.deleted = 0 AND vtiger_ossmailview_project.ossmailviewid = '{$id}'";
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     return $return_value;
 }
Beispiel #6
0
 function get_emails($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     $log = vglobal('log');
     $current_user = vglobal('current_user');
     $singlepane_view = vglobal('singlepane_view');
     $currentModule = vglobal('currentModule');
     $log->debug("Entering get_emails(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     $button .= '<input type="hidden" name="email_directing_module"><input type="hidden" name="record">';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "' accessyKey='F' class='crmbutton small create' onclick='fnvshobj(this,\"sendmail_cont\");sendmail(\"{$this_module}\",{$id});' type='button' name='button' value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "'></td>";
         }
     }
     $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
     $query = "SELECT vtiger_ossmailview.*, vtiger_crmentity.modifiedtime, vtiger_crmentity.crmid, vtiger_crmentity.smownerid, case when (vtiger_users.user_name not like '') then {$userNameSql} else vtiger_groups.groupname end as user_name FROM vtiger_ossmailview \n\t\t\tINNER JOIN vtiger_ossmailview_relation ON vtiger_ossmailview_relation.ossmailviewid = vtiger_ossmailview.ossmailviewid\n\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_ossmailview.ossmailviewid \n\t\t\tLEFT JOIN vtiger_groups ON vtiger_groups.groupid=vtiger_crmentity.smownerid \n\t\t\tLEFT JOIN vtiger_users ON vtiger_crmentity.smownerid = vtiger_users.id\n\t\t\tWHERE vtiger_crmentity.deleted = 0 AND vtiger_ossmailview_relation.crmid = " . $id . " ";
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_emails method ...");
     return $return_value;
 }
 public function listQueryNonAdminChange($query, $scope = '')
 {
     //make the module base table as left hand side table for the joins,
     //as mysql query optimizer puts crmentity on the left side and considerably slow down
     $query = preg_replace('/\\s+/', ' ', $query);
     if (strripos($query, ' WHERE ') !== false) {
         vtlib_setup_modulevars($module, $this);
         $query = str_ireplace(' where ', " WHERE {$this->table_name}.{$this->table_index} > 0  AND ", $query);
     }
     return $query;
 }
Beispiel #8
0
 /**
  * Export module base and related tables
  * @access private
  */
 function export_Tables($moduleInstance)
 {
     $_exportedTables = array();
     $modulename = $moduleInstance->name;
     $this->openNode('tables');
     if ($moduleInstance->isentitytype) {
         $focus = CRMEntity::getInstance($modulename);
         // Setup required module variables which is need for vtlib API's
         vtlib_setup_modulevars($modulename, $focus);
         $tables = array($focus->table_name);
         if (!empty($focus->groupTable)) {
             $tables[] = $focus->groupTable[0];
         }
         if (!empty($focus->customFieldTable)) {
             $tables[] = $focus->customFieldTable[0];
         }
         foreach ($tables as $table) {
             $this->openNode('table');
             $this->outputNode($table, 'name');
             $this->outputNode('<![CDATA[' . Vtiger_Utils::CreateTableSql($table) . ']]>', 'sql');
             $this->closeNode('table');
             $_exportedTables[] = $table;
         }
     }
     // Now export table information recorded in schema file
     if (file_exists("modules/{$modulename}/schema.xml")) {
         $schema = simplexml_load_file("modules/{$modulename}/schema.xml");
         if (!empty($schema->tables) && !empty($schema->tables->table)) {
             foreach ($schema->tables->table as $tablenode) {
                 $table = trim($tablenode->name);
                 if (!in_array($table, $_exportedTables)) {
                     $this->openNode('table');
                     $this->outputNode($table, 'name');
                     $this->outputNode('<![CDATA[' . Vtiger_Utils::CreateTableSql($table) . ']]>', 'sql');
                     $this->closeNode('table');
                     $_exportedTables[] = $table;
                 }
             }
         }
     }
     $this->closeNode('tables');
 }
Beispiel #9
0
    /**	function used to get the services which are related to the pricebook
     *	@param int $id - pricebook id
     *      @return array - return an array which will be returned from the function getPriceBookRelatedServices
     **/
    function get_pricebook_services($id, $cur_tab_id, $rel_tab_id, $actions = false)
    {
        $log = vglobal('log');
        $current_user = vglobal('current_user');
        $singlepane_view = vglobal('singlepane_view');
        $currentModule = vglobal('currentModule');
        $log->debug("Entering get_pricebook_services(" . $id . ") method ...");
        $this_module = $currentModule;
        $related_module = vtlib_getModuleNameById($rel_tab_id);
        require_once "modules/{$related_module}/{$related_module}.php";
        $other = new $related_module();
        vtlib_setup_modulevars($related_module, $other);
        $singular_modname = vtlib_toSingular($related_module);
        if ($singlepane_view == 'true') {
            $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
        } else {
            $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
        }
        $button = '';
        if ($actions) {
            if (is_string($actions)) {
                $actions = explode(',', strtoupper($actions));
            }
            if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
                $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='submit' name='button' onclick=\"this.form.action.value='AddServicesToPriceBook';this.form.module.value='{$related_module}';this.form.return_module.value='{$currentModule}';this.form.return_action.value='PriceBookDetailView'\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
            }
        }
        $query = 'SELECT vtiger_service.serviceid, vtiger_service.servicename, vtiger_service.commissionrate,
					vtiger_service.qty_per_unit, vtiger_service.unit_price, vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
					vtiger_pricebookproductrel.listprice
			FROM vtiger_service
			INNER JOIN vtiger_pricebookproductrel on vtiger_service.serviceid = vtiger_pricebookproductrel.productid
			INNER JOIN vtiger_crmentity on vtiger_crmentity.crmid = vtiger_service.serviceid
			INNER JOIN vtiger_pricebook on vtiger_pricebook.pricebookid = vtiger_pricebookproductrel.pricebookid
			LEFT JOIN vtiger_users ON vtiger_users.id=vtiger_crmentity.smownerid
			LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid ' . getNonAdminAccessControlQuery($related_module, $current_user) . '
			WHERE vtiger_pricebook.pricebookid = ' . $id . ' and vtiger_crmentity.deleted = 0';
        $this->retrieve_entity_info($id, $this_module);
        $return_value = $other->getPriceBookRelatedServices($query, $this, $returnset);
        if ($return_value == null) {
            $return_value = array();
        }
        $return_value['CUSTOM_BUTTON'] = $button;
        $log->debug("Exiting get_pricebook_services method ...");
        return $return_value;
    }
 /** Function to get Escapedcolumns for the field in case of multiple parents 
  *  @ param $selectedfields : Type Array 
  *  returns the case query for the escaped columns	
  */
 function getEscapedColumns($selectedfields)
 {
     global $current_user, $adb;
     $fieldname = $selectedfields[3];
     $tmp = split("_", $selectedfields[2]);
     $module = $tmp[0];
     if ($fieldname == "parent_id" && ($module == "HelpDesk" || $module == "Calendar")) {
         if ($module == "HelpDesk" && $selectedfields[0] == "vtiger_crmentityRelHelpDesk") {
             $querycolumn = "case vtiger_crmentityRelHelpDesk.setype when 'Accounts' then vtiger_accountRelHelpDesk.accountname when 'Contacts' then concat(vtiger_contactdetailsRelHelpDesk.lastname,' ',vtiger_contactdetailsRelHelpDesk.firstname) End" . " '" . $selectedfields[2] . "', vtiger_crmentityRelHelpDesk.setype 'Entity_type'";
             return $querycolumn;
         }
         if ($module == "Calendar") {
             $querycolumn = "case vtiger_crmentityRelCalendar.setype when 'Accounts' then vtiger_accountRelCalendar.accountname when 'Leads' then concat(vtiger_leaddetailsRelCalendar.lastname,' ',vtiger_leaddetailsRelCalendar.firstname) when 'Potentials' then vtiger_potentialRelCalendar.potentialname when 'Quotes' then vtiger_quotesRelCalendar.subject when 'PurchaseOrder' then vtiger_purchaseorderRelCalendar.subject when 'Invoice' then vtiger_invoiceRelCalendar.subject when 'SalesOrder' then vtiger_salesorderRelCalendar.subject when 'HelpDesk' then vtiger_troubleticketsRelCalendar.title when 'Campaigns' then vtiger_campaignRelCalendar.campaignname End" . " '" . $selectedfields[2] . "', vtiger_crmentityRelCalendar.setype 'Entity_type'";
         }
     } elseif ($fieldname == "contact_id" && strpos($selectedfields[2], "Contact_Name")) {
         if (($this->primarymodule == 'PurchaseOrder' || $this->primarymodule == 'SalesOrder' || $this->primarymodule == 'Quotes' || $this->primarymodule == 'Invoice' || $this->primarymodule == 'Calendar') && $module == $this->primarymodule) {
             if (getFieldVisibilityPermission("Contacts", $current_user->id, "firstname") == '0') {
                 $querycolumn = " case when vtiger_crmentity.crmid!='' then concat(vtiger_contactdetails" . $this->primarymodule . ".lastname,' ',vtiger_contactdetails" . $this->primarymodule . ".firstname) else '-' end as " . $selectedfields[2];
             } else {
                 $querycolumn = " case when vtiger_crmentity.crmid!='' then vtiger_contactdetails" . $this->primarymodule . ".lastname else '-' end as " . $selectedfields[2];
             }
         }
         if (stristr($this->secondarymodule, $module) && ($module == 'Quotes' || $module == 'SalesOrder' || $module == 'PurchaseOrder' || $module == 'Calendar' || $module == 'Invoice')) {
             if (getFieldVisibilityPermission("Contacts", $current_user->id, "firstname") == '0') {
                 $querycolumn = " case when vtiger_crmentity" . $module . ".crmid!='' then concat(vtiger_contactdetails" . $module . ".lastname,' ',vtiger_contactdetails" . $module . ".firstname) else '-' end as " . $selectedfields[2];
             } else {
                 $querycolumn = " case when vtiger_crmentity" . $module . ".crmid!='' then vtiger_contactdetails" . $module . ".lastname else '-' end as " . $selectedfields[2];
             }
         }
     } else {
         if (stristr($selectedfields[0], "vtiger_crmentityRel")) {
             $module = str_replace("vtiger_crmentityRel", "", $selectedfields[0]);
             $fields_query = $adb->pquery("SELECT vtiger_field.fieldname,vtiger_field.tablename,vtiger_field.fieldid from vtiger_field INNER JOIN vtiger_tab on vtiger_tab.name = ? WHERE vtiger_tab.tabid=vtiger_field.tabid and vtiger_field.fieldname=?", array($module, $selectedfields[3]));
             if ($adb->num_rows($fields_query) > 0) {
                 for ($i = 0; $i < $adb->num_rows($fields_query); $i++) {
                     $field_name = $selectedfields[3];
                     $field_id = $adb->query_result($fields_query, $i, 'fieldid');
                     $tab_name = $selectedfields[1];
                     $ui10_modules_query = $adb->pquery("SELECT relmodule FROM vtiger_fieldmodulerel WHERE fieldid=?", array($field_id));
                     if ($adb->num_rows($ui10_modules_query) > 0) {
                         $querycolumn = " case vtiger_crmentityRel{$module}.setype";
                         for ($j = 0; $j < $adb->num_rows($ui10_modules_query); $j++) {
                             $rel_mod = $adb->query_result($ui10_modules_query, $j, 'relmodule');
                             $rel_obj = CRMEntity::getInstance($rel_mod);
                             vtlib_setup_modulevars($rel_mod, $rel_obj);
                             $rel_tab_name = $rel_obj->table_name;
                             $link_field = $rel_tab_name . "Rel" . $module . "." . $rel_obj->list_link_field;
                             if ($rel_mod == "Contacts" || $rel_mod == "Leads") {
                                 if (getFieldVisibilityPermission($rel_mod, $current_user->id, 'firstname') == 0) {
                                     $link_field = "concat({$link_field},' '," . $rel_tab_name . "Rel{$module}.firstname)";
                                 }
                             }
                             $querycolumn .= " when '{$rel_mod}' then {$link_field} ";
                         }
                         $querycolumn .= "end as '" . $selectedfields[2] . "', vtiger_crmentityRel{$module}.setype as 'Entity_type'";
                     }
                 }
             }
         }
     }
     return $querycolumn;
 }
Beispiel #11
0
 static function get_payments($module, $id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_contacts(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $parenttab = getParentTab();
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}&parenttab={$parenttab}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString('SINGLE_Accounting', 'Accounting') . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EditView\";this.form.module.value=\"{$related_module}\"' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString('SINGLE_Accounting', 'Accounting') . "'>&nbsp;";
         }
     }
     if ($module == "Invoice") {
         $rel_tabla = "vtiger_invoice";
         $rel_id = "invoiceid";
         $acc_rel_field = "accountingrelated2";
     } else {
         if ($module == "SalesOrder") {
             $rel_tabla = "vtiger_salesorder";
             $rel_id = "salesorderid";
             $acc_rel_field = "accountingrelated2";
         } else {
             if ($module == "PurchaseOrder") {
                 $rel_tabla = "vtiger_purchaseorder";
                 $rel_id = "purchaseorderid";
                 $acc_rel_field = "accountingrelated2";
             } else {
                 if ($module == "Accounts") {
                     $rel_tabla = "vtiger_account";
                     $rel_id = "accountid";
                     $acc_rel_field = "accountingrelated1";
                 } else {
                     if ($module == "Contacts") {
                         $rel_tabla = "vtiger_contactdetails";
                         $rel_id = "contactid";
                         $acc_rel_field = "accountingrelated1";
                     } else {
                         if ($module == "Vendors") {
                             $rel_tabla = "vtiger_vendor";
                             $rel_id = "vendorid";
                             $acc_rel_field = "accountingrelated1";
                         } else {
                             if ($module == "Project") {
                                 $rel_tabla = "vtiger_project";
                                 $rel_id = "projectid";
                                 $acc_rel_field = "accountingrelated1";
                             } else {
                                 if ($module == "Potentials") {
                                     $rel_tabla = "vtiger_potential";
                                     $rel_id = "potentialid";
                                     $acc_rel_field = "accountingrelated1";
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $query = "SELECT vtiger_accounting.*,\n\t\t\t\tvtiger_crmentity.crmid,\n\t                        vtiger_crmentity.smownerid,\n\t\t\t\tvtiger_accounting.paymentref,\n\t\t\t\tcase when (vtiger_users.user_name not like '') then vtiger_users.user_name else vtiger_groups.groupname end as user_name\n\t\t\t\tFROM vtiger_accounting\n\t\t\t\tINNER JOIN vtiger_crmentity\n\t\t\t\t\tON vtiger_crmentity.crmid = vtiger_accounting.accountingid\n\t\t\t\tLEFT JOIN " . $rel_tabla . "\n\t\t\t\t\tON " . $rel_tabla . "." . $rel_id . " = vtiger_accounting.accountingid\n\t\t\t\tLEFT JOIN vtiger_groups\n\t\t\t\t\tON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\t\tLEFT JOIN vtiger_users\n\t\t\t\t\tON vtiger_crmentity.smownerid = vtiger_users.id\n\t\t\t\tWHERE vtiger_crmentity.deleted = 0\n\t\t\t\tAND vtiger_accounting." . $acc_rel_field . " = " . $id;
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if (($module == "Invoice" || $module == "PurchaseOrder" || $module == "SalesOrder") && count($return_value['entries']) > 0) {
         $button = "";
     }
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_contacts method ...");
     return $return_value;
 }
 function generateRelatedListModels($model)
 {
     global $adb;
     $lists = $adb->pquery("select vtiger_tab.name as relmodulename, vtiger_relatedlists.name as listtype from vtiger_relatedlists inner join vtiger_tab on vtiger_tab.tabid=vtiger_relatedlists.related_tabid where vtiger_relatedlists.tabid=? and vtiger_relatedlists.name in ('get_related_list', 'get_dependents_list')", array(getTabid($this->moduleName)));
     for ($i = 0; $i < $adb->num_rows($lists); $i++) {
         $relmodulename = $adb->query_result($lists, $i, 'relmodulename');
         $listtype = $adb->query_result($lists, $i, 'listtype');
         if ($listtype == 'get_related_list') {
             $listrecords = $adb->pquery('select vtiger_crmentityrel.relcrmid from vtiger_crmentityrel inner join vtiger_crmentity on (vtiger_crmentity.crmid=vtiger_crmentityrel.crmid and vtiger_crmentity.deleted=0) where vtiger_crmentityrel.crmid=? and vtiger_crmentityrel.relmodule=?', array($this->focus->id, $relmodulename));
             for ($j = 0; $j < 10; $j++) {
                 $entity = CRMEntity::getInstance($relmodulename);
                 if ($j < $adb->num_rows($listrecords)) {
                     $relcrmid = $adb->query_result($listrecords, $j, 'relcrmid');
                     $entity->retrieve_entity_info($relcrmid, $relmodulename);
                 }
                 $this->generateEntityModel($entity, $relmodulename, 'Related' . $relmodulename . ($j + 1) . '_', $model);
             }
         } else {
             if ($listtype == 'get_dependents_list') {
                 $dependentFieldSql = $adb->pquery("SELECT tabid, fieldname, columnname FROM vtiger_field WHERE uitype='10' AND" . " fieldid IN (SELECT fieldid FROM vtiger_fieldmodulerel WHERE relmodule=? AND module=?)", array($this->moduleName, $relmodulename));
                 $numOfFields = $adb->num_rows($dependentFieldSql);
                 if ($numOfFields > 0) {
                     $dependentColumn = $adb->query_result($dependentFieldSql, 0, 'columnname');
                     $dependentField = $adb->query_result($dependentFieldSql, 0, 'fieldname');
                     $thisModule = $this->focus;
                     $other = CRMEntity::getInstance($relmodulename);
                     vtlib_setup_modulevars($this->moduleName, $this->focus);
                     vtlib_setup_modulevars($relmodulename, $other);
                     $query = "SELECT vtiger_crmentity.*";
                     $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
                     $query .= ", CASE WHEN (vtiger_users.user_name NOT LIKE '') THEN {$userNameSql} ELSE vtiger_groups.groupname END AS user_name";
                     $more_relation = '';
                     if (!empty($other->related_tables)) {
                         foreach ($other->related_tables as $tname => $relmap) {
                             $query .= ", {$tname}.*";
                             // Setup the default JOIN conditions if not specified
                             if (empty($relmap[1])) {
                                 $relmap[1] = $other->table_name;
                             }
                             if (empty($relmap[2])) {
                                 $relmap[2] = $relmap[0];
                             }
                             $more_relation .= " LEFT JOIN {$tname} ON {$tname}.{$relmap['0']} = {$relmap['1']}.{$relmap['2']}";
                         }
                     }
                     $query .= " FROM {$other->table_name}";
                     $query .= " INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = {$other->table_name}.{$other->table_index}";
                     $query .= " INNER  JOIN {$thisModule->table_name}   ON {$thisModule->table_name}.{$thisModule->table_index} = {$other->table_name}.{$dependentColumn}";
                     $query .= $more_relation;
                     $query .= " LEFT  JOIN vtiger_users        ON vtiger_users.id = vtiger_crmentity.smownerid";
                     $query .= " LEFT  JOIN vtiger_groups       ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
                     $query .= " WHERE vtiger_crmentity.deleted = 0 AND {$thisModule->table_name}.{$thisModule->table_index} = {$thisModule->id}";
                     if ($relmodulename != 'Faq' && $relmodulename != 'PriceBook' && $relmodulename != 'Users') {
                         global $current_user;
                         $secQuery = getNonAdminAccessControlQuery($relmodulename, $current_user);
                         if (strlen($secQuery) > 1) {
                             $query = appendFromClauseToQuery($query, $secQuery);
                         }
                     }
                     $listrecords = $adb->pquery($query, array());
                     for ($j = 0; $j < 10; $j++) {
                         $entity = CRMEntity::getInstance($relmodulename);
                         if ($j < $adb->num_rows($listrecords)) {
                             $relcrmid = $adb->query_result($listrecords, $j, 'crmid');
                             $entity->retrieve_entity_info($relcrmid, $relmodulename);
                         }
                         $this->generateEntityModel($entity, $relmodulename, 'Related' . $relmodulename . ($j + 1) . '_', $model);
                     }
                 }
             }
         }
     }
 }
 /**
  * Function to get Account related Products 
  * @param  integer   $id      - accountid
  * returns related Products record in array format
  */
 function get_products($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_products(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $parenttab = getParentTab();
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}&parenttab={$parenttab}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EditView\";this.form.module.value=\"{$related_module}\"' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "'>&nbsp;";
         }
     }
     $query = "SELECT vtiger_products.productid, vtiger_products.productname,\n\t\t\tvtiger_products.productcode, vtiger_products.commissionrate,\n\t\t\tvtiger_products.qty_per_unit, vtiger_products.unit_price,\n\t\t\tvtiger_crmentity.crmid, vtiger_crmentity.smownerid\n\t\t\tFROM vtiger_products\n\t\t\tINNER JOIN vtiger_seproductsrel ON vtiger_products.productid = vtiger_seproductsrel.productid and vtiger_seproductsrel.setype='Accounts'\n\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_products.productid\n\t\t\tINNER JOIN vtiger_account ON vtiger_account.accountid = vtiger_seproductsrel.crmid\n\t\t\tWHERE vtiger_crmentity.deleted = 0 AND vtiger_account.accountid = {$id}";
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_products method ...");
     return $return_value;
 }
Beispiel #14
0
    /**
     * Create query to export the records.
     */
    function create_export_query($where)
    {
		global $current_user;

		include("include/utils/ExportUtils.php");

		//To get the Permitted fields query and the permitted fields list
		$sql = getPermittedFieldsQuery('ProjectTask', "detail_view");

		$fields_list = getFieldsListFromQuery($sql);

		$query = "SELECT $fields_list, vtiger_users.user_name AS user_name
					FROM vtiger_crmentity INNER JOIN $this->table_name ON vtiger_crmentity.crmid=$this->table_name.$this->table_index";

		if(!empty($this->customFieldTable)) {
			$query .= " INNER JOIN ".$this->customFieldTable[0]." ON ".$this->customFieldTable[0].'.'.$this->customFieldTable[1] .
				      " = $this->table_name.$this->table_index";
		}

		$query .= " LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
		$query .= " LEFT JOIN vtiger_users ON vtiger_crmentity.smownerid = vtiger_users.id and vtiger_users.status='Active'";

		$linkedModulesQuery = $this->db->pquery("SELECT distinct fieldname, columnname, relmodule FROM vtiger_field" .
				" INNER JOIN vtiger_fieldmodulerel ON vtiger_fieldmodulerel.fieldid = vtiger_field.fieldid" .
				" WHERE uitype='10' AND vtiger_fieldmodulerel.module=?", array($thismodule));
		$linkedFieldsCount = $this->db->num_rows($linkedModulesQuery);

		for($i=0; $i<$linkedFieldsCount; $i++) {
			$related_module = $this->db->query_result($linkedModulesQuery, $i, 'relmodule');
			$fieldname = $this->db->query_result($linkedModulesQuery, $i, 'fieldname');
			$columnname = $this->db->query_result($linkedModulesQuery, $i, 'columnname');

			$other = CRMEntity::getInstance($related_module);
			vtlib_setup_modulevars($related_module, $other);

			$query .= " LEFT JOIN $other->table_name ON $other->table_name.$other->table_index = $this->table_name.$columnname";
		}

		$query .= $this->getNonAdminAccessControlQuery($thismodule,$current_user);
		$where_auto = " vtiger_crmentity.deleted=0";

		if($where != '') $query .= " WHERE ($where) AND $where_auto";
		else $query .= " WHERE $where_auto";

		return $query;
    }
Beispiel #15
0
            $tablename = $normal_tabs[$type];
        }
        if ($type == "Users") {
            $q = "select {$fieldname} from {$tablename} where id=?";
        } elseif ($type == "Leads") {
            $q = "select {$fieldname} from {$tablename} where leadid=?";
        } elseif ($type == "Contacts") {
            $q = "select {$fieldname} from {$tablename} where contactid=?";
        } elseif ($type == "Accounts") {
            $q = "select {$fieldname} from {$tablename} where accountid=?";
        } elseif ($type == "Vendors") {
            $q = "select {$fieldname} from {$tablename} where vendorid=?";
        } else {
            // vtlib customization: Support for email-type custom field for other modules.
            $module_focus = CRMEntity::getInstance($type);
            vtlib_setup_modulevars($type, $module_focus);
            if (!empty($module_focus->customFieldTable)) {
                $q = "select {$fieldname} from " . $module_focus->customFieldTable[0] . " where " . $module_focus->customFieldTable[1] . "= ?";
            }
            // END
        }
        $email1 = $adb->query_result($adb->pquery($q, array($rec_id)), 0, $fieldname);
    } elseif ($rec_type == "email_addy") {
        $email1 = $_REQUEST["email_addy"];
    }
    $smarty->assign('TO_MAIL', trim($email1, ",") . ",");
}
//handled for replying emails
if ($_REQUEST['reply'] == "true") {
    $fromadd = $_REQUEST['record'];
    $query = "select from_email,idlists,cc_email,bcc_email from vtiger_emaildetails where emailid =?";
Beispiel #16
0
 /**
  * Function to get Product's related Products
  * @param  integer   $id      - productid
  * returns related Products record in array format
  */
 function get_services($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     $log = vglobal('log');
     $current_user = vglobal('current_user');
     $singlepane_view = vglobal('singlepane_view');
     $currentModule = vglobal('currentModule');
     $log->debug("Entering get_products(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     if ($actions && $this->ismember_check() === 0) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input type='hidden' name='createmode' id='createmode' value='link' />" . "<input title='" . getTranslatedString('LBL_NEW') . " " . getTranslatedString($singular_modname) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EditView\";this.form.module.value=\"{$related_module}\";' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "'>&nbsp;";
         }
     }
     $query = "SELECT vtiger_service.serviceid, vtiger_service.servicename,\n\t\t\tvtiger_service.service_no, vtiger_service.commissionrate,\n\t\t\tvtiger_service.service_usageunit, vtiger_service.unit_price,\n\t\t\tvtiger_crmentity.crmid, vtiger_crmentity.smownerid\n\t\t\tFROM vtiger_service\n\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_service.serviceid\n\t\t\tINNER JOIN vtiger_servicecf\n\t\t\t\tON vtiger_service.serviceid = vtiger_servicecf.serviceid\n\t\t\tLEFT JOIN vtiger_crmentityrel ON vtiger_crmentityrel.relcrmid = vtiger_service.serviceid AND vtiger_crmentityrel.module='Services'\n\t\t\tLEFT JOIN vtiger_users\n\t\t\t\tON vtiger_users.id=vtiger_crmentity.smownerid\n\t\t\tLEFT JOIN vtiger_groups\n\t\t\t\tON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\tWHERE vtiger_crmentity.deleted = 0 AND vtiger_crmentityrel.crmid = {$id} ";
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_products method ...");
     return $return_value;
 }
Beispiel #17
0
 /** Returns a list of the associated emails
  * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc..
  * All Rights Reserved..
  * Contributor(s): ______________________________________..
  */
 function get_emails($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_emails(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $parenttab = getParentTab();
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     $button .= '<input type="hidden" name="email_directing_module"><input type="hidden" name="record">';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "' accessyKey='F' class='crmbutton small create' onclick='fnvshobj(this,\"sendmail_cont\");sendmail(\"{$this_module}\",{$id});' type='button' name='button' value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "'></td>";
         }
     }
     $userNameSql = getSqlForNameInDisplayFormat(array('f' => 'vtiger_users.first_name', 'l' => 'vtiger_users.last_name'));
     $query = "SELECT case when (vtiger_users.user_name not like '') then {$userNameSql} else vtiger_groups.groupname end as user_name,\n\t\t\tvtiger_activity.activityid, vtiger_activity.subject,\n\t\t\tvtiger_activity.activitytype, vtiger_crmentity.modifiedtime,\n\t\t\tvtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_activity.date_start, vtiger_seactivityrel.crmid as parent_id \n\t\t\tFROM vtiger_activity, vtiger_seactivityrel, vtiger_vendor, vtiger_users, vtiger_crmentity\n\t\t\tLEFT JOIN vtiger_groups\n\t\t\t\tON vtiger_groups.groupid=vtiger_crmentity.smownerid\n\t\t\tWHERE vtiger_seactivityrel.activityid = vtiger_activity.activityid\n\t\t\t\tAND vtiger_vendor.vendorid = vtiger_seactivityrel.crmid\n\t\t\t\tAND vtiger_users.id=vtiger_crmentity.smownerid\n\t\t\t\tAND vtiger_crmentity.crmid = vtiger_activity.activityid\n\t\t\t\tAND vtiger_vendor.vendorid = " . $id . "\n\t\t\t\tAND vtiger_activity.activitytype='Emails'\n\t\t\t\tAND vtiger_crmentity.deleted = 0";
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_emails method ...");
     return $return_value;
 }
Beispiel #18
0
 public static function getListViewNavigation($currentRecordId)
 {
     global $currentModule, $current_user, $adb, $log, $list_max_entries_per_page;
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $reUseData = false;
     $displayBufferRecordCount = 10;
     $bufferRecordCount = 15;
     if ($currentModule == 'Documents') {
         $sql = "select folderid from vtiger_notes where notesid=?";
         $params = array($currentRecordId);
         $result = $adb->pquery($sql, $params);
         $folderId = $adb->query_result($result, 0, 'folderid');
     }
     $cv = new CustomView();
     $viewId = $cv->getViewId($currentModule);
     if (!empty($_SESSION[$currentModule . '_DetailView_Navigation' . $viewId])) {
         $recordNavigationInfo = Zend_Json::decode($_SESSION[$currentModule . '_DetailView_Navigation' . $viewId]);
         $pageNumber = 0;
         if (count($recordNavigationInfo) == 1) {
             foreach ($recordNavigationInfo as $recordIdList) {
                 if (in_array($currentRecordId, $recordIdList)) {
                     $reUseData = true;
                 }
             }
         } else {
             $recordList = array();
             $recordPageMapping = array();
             foreach ($recordNavigationInfo as $start => $recordIdList) {
                 foreach ($recordIdList as $index => $recordId) {
                     $recordList[] = $recordId;
                     $recordPageMapping[$recordId] = $start;
                     if ($recordId == $currentRecordId) {
                         $searchKey = count($recordList) - 1;
                     }
                 }
             }
             if ($searchKey > $displayBufferRecordCount - 1 && $searchKey < count($recordList) - $displayBufferRecordCount) {
                 $reUseData = true;
             }
         }
     }
     if ($reUseData === false) {
         $recordNavigationInfo = array();
         if (!empty($_REQUEST['start'])) {
             $start = ListViewSession::getRequestStartPage();
         } else {
             $start = ListViewSession::getCurrentPage($currentModule, $viewId);
         }
         $startRecord = ($start - 1) * $list_max_entries_per_page - $bufferRecordCount;
         if ($startRecord < 0) {
             $startRecord = 0;
         }
         $list_query = $_SESSION[$currentModule . '_listquery'];
         $instance = CRMEntity::getInstance($currentModule);
         $instance->getNonAdminAccessControlQuery($currentModule, $current_user);
         vtlib_setup_modulevars($currentModule, $instance);
         if ($currentModule == 'Documents' && !empty($folderId)) {
             $list_query = preg_replace("/[\n\r\\s]+/", " ", $list_query);
             $hasOrderBy = stripos($list_query, 'order by');
             if ($hasOrderBy > 0) {
                 $list_query = substr($list_query, 0, $hasOrderBy - 1) . " AND vtiger_notes.folderid={$folderId} " . substr($list_query, $hasOrderBy);
             } else {
                 $list_query .= " AND vtiger_notes.folderid={$folderId}";
                 $order_by = $instance->getOrderByForFolder($folderId);
                 $sorder = $instance->getSortOrderForFolder($folderId);
                 $tablename = getTableNameForField($currentModule, $order_by);
                 $tablename = $tablename != '' ? $tablename . "." : '';
                 if (!empty($order_by)) {
                     $list_query .= ' ORDER BY ' . $tablename . $order_by . ' ' . $sorder;
                 }
             }
         }
         if ($start != 1) {
             $recordCount = $list_max_entries_per_page + 2 * $bufferRecordCount;
         } else {
             $recordCount = $list_max_entries_per_page + $bufferRecordCount;
         }
         $list_query .= " LIMIT {$startRecord}, {$recordCount}";
         $resultAllCRMIDlist_query = $adb->pquery($list_query, array());
         $navigationRecordList = array();
         while ($forAllCRMID = $adb->fetch_array($resultAllCRMIDlist_query)) {
             $navigationRecordList[] = $forAllCRMID[$instance->table_index];
         }
         $pageCount = 0;
         $current = $start;
         if ($start == 1) {
             $firstPageRecordCount = $list_max_entries_per_page;
         } else {
             $firstPageRecordCount = $bufferRecordCount;
             $current -= 1;
         }
         $searchKey = array_search($currentRecordId, $navigationRecordList);
         $recordNavigationInfo = array();
         if ($searchKey !== false) {
             foreach ($navigationRecordList as $index => $recordId) {
                 if (!is_array($recordNavigationInfo[$current])) {
                     $recordNavigationInfo[$current] = array();
                 }
                 if ($index == $firstPageRecordCount || $index == $firstPageRecordCount + $pageCount * $list_max_entries_per_page) {
                     $current++;
                     $pageCount++;
                 }
                 $recordNavigationInfo[$current][] = $recordId;
             }
         }
         $_SESSION[$currentModule . '_DetailView_Navigation' . $viewId] = Zend_Json::encode($recordNavigationInfo);
     }
     return $recordNavigationInfo;
 }
Beispiel #19
0
	/**
	 * Function to handle the related list for the module.
	 * NOTE: Vtiger_Module::setRelatedList sets reference to this function in vtiger_relatedlists table
	 * if function name is not explicitly specified.
	 */
	function get_related_list($id, $cur_tab_id, $rel_tab_id, $actions = false)
	{
		global $currentModule, $app_strings, $singlepane_view;

		$current_module = vtlib_getModuleNameById($cur_tab_id);
		$related_module = vtlib_getModuleNameById($rel_tab_id);
		$other = CRMEntity::getInstance($related_module);

		// Some standard module class doesn't have required variables
		// that are used in the query, they are defined in this generic API
		vtlib_setup_modulevars($current_module, $this);
		vtlib_setup_modulevars($related_module, $other);

		$singular_modname = 'SINGLE_' . $related_module;

		$button = '';
		if ($actions) {
			if (is_string($actions))
				$actions = explode(',', strtoupper($actions));
			if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
				$button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' " .
					" type='button' onclick=\"return window.open('index.php?module=$related_module&return_module=$current_module&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid=$id','test','width=640,height=602,resizable=0,scrollbars=0');\"" .
					" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module, $related_module) . "'>&nbsp;";
			}
			if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
				$button .= "<input type='hidden' name='createmode' id='createmode' value='link' />" .
					"<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "' class='crmbutton small create'" .
					" onclick='this.form.action.value=\"EditView\";this.form.module.value=\"$related_module\"' type='submit' name='button'" .
					" value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname, $related_module) . "'>&nbsp;";
			}
		}

		// To make the edit or del link actions to return back to same view.
		if ($singlepane_view == 'true') {
			$returnset = "&return_module=$current_module&return_action=DetailView&return_id=$id";
		} else {
			$returnset = "&return_module=$current_module&return_action=CallRelatedList&return_id=$id";
		}

		$more_relation = '';
		if (!empty($other->related_tables)) {
			foreach ($other->related_tables as $tname => $relmap) {
				$query .= ", $tname.*";

				// Setup the default JOIN conditions if not specified
				if (empty($relmap[1]))
					$relmap[1] = $other->table_name;
				if (empty($relmap[2]))
					$relmap[2] = $relmap[0];
				$more_relation .= " LEFT JOIN $tname ON $tname.$relmap[0] = $relmap[1].$relmap[2]";
			}
		}

		$entityIds = $this->getRelatedContactsIds();
		array_push($entityIds, $id);
		$entityIds = implode(',', $entityIds);

		$userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');

		$query = "SELECT vtiger_crmentity.*, $other->table_name.*,
				CASE WHEN (vtiger_users.user_name NOT LIKE '') THEN $userNameSql ELSE vtiger_groups.groupname END AS user_name FROM $other->table_name
				INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = $other->table_name.$other->table_index
				INNER JOIN vtiger_crmentityrel ON (vtiger_crmentityrel.relcrmid = vtiger_crmentity.crmid OR vtiger_crmentityrel.crmid = vtiger_crmentity.crmid)
				$more_relation
				LEFT  JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid
				LEFT  JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid
				WHERE vtiger_crmentity.deleted = 0 AND (vtiger_crmentityrel.crmid IN (" . $entityIds . ") OR vtiger_crmentityrel.relcrmid IN (" . $entityIds . "))";

		$return_value = GetRelatedList($current_module, $related_module, $other, $query, $button, $returnset);

		if ($return_value == null)
			$return_value = Array();
		$return_value['CUSTOM_BUTTON'] = $button;

		return $return_value;
	}
Beispiel #20
0
 /**	function used to get the list of invoices which are related to the service
  *	@param int $id - service id
  *	@return array - array which will be returned from the function GetRelatedList
  */
 function get_invoices($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_invoices(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $parenttab = getParentTab();
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}&parenttab={$parenttab}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EditView\";this.form.module.value=\"{$related_module}\"' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "'>&nbsp;";
         }
     }
     $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
     $query = "SELECT vtiger_crmentity.*,\n\t\t\tvtiger_invoice.*,\n\t\t\tvtiger_account.accountname,\n\t\t\tcase when (vtiger_users.user_name not like '') then {$userNameSql}\n\t\t\t\telse vtiger_groups.groupname end as user_name\n\t\t\tFROM vtiger_invoice\n\t\t\tINNER JOIN vtiger_crmentity\n\t\t\t\tON vtiger_crmentity.crmid = vtiger_invoice.invoiceid\n\t\t\tLEFT OUTER JOIN vtiger_account\n\t\t\t\tON vtiger_account.accountid = vtiger_invoice.accountid\n\t\t\tINNER JOIN (SELECT DISTINCT(vtiger_inventoryproductrel.id) as id FROM vtiger_inventoryproductrel WHERE vtiger_inventoryproductrel.productid = {$id}) as invrel\n\t\t\t\tON invrel.id = vtiger_invoice.invoiceid\n\t\t\tLEFT JOIN vtiger_groups\n\t\t\t\tON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\tLEFT JOIN vtiger_users\n\t\t\t\tON  vtiger_users.id = vtiger_crmentity.smownerid\n\t\t\tWHERE vtiger_crmentity.deleted = 0";
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_invoices method ...");
     return $return_value;
 }
Beispiel #21
0
 /** Returns a list of the associated tasks
  * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc..
  * All Rights Reserved..
  * Contributor(s): _MSL_____________________________________..
  */
 function get_activities($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_activities(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/Activity.php";
     $other = new Activity();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $parenttab = getParentTab();
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     $button .= '<input type="hidden" name="activity_mode">';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             if (getFieldVisibilityPermission('Calendar', $current_user->id, 'parent_id', 'readwrite') == '0') {
                 $button .= "<input title='" . getTranslatedString('LBL_NEW') . " " . getTranslatedString('LBL_TODO', $related_module) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EventEditView\";this.form.module.value=\"Calendar4You\";this.form.return_module.value=\"{$this_module}\";this.form.activity_mode.value=\"Task\";' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString('LBL_TODO', $related_module) . "'>&nbsp;";
             }
             if (getFieldVisibilityPermission('Events', $current_user->id, 'parent_id', 'readwrite') == '0') {
                 $button .= "<input title='" . getTranslatedString('LBL_NEW') . " " . getTranslatedString('LBL_TODO', $related_module) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EventEditView\";this.form.module.value=\"Calendar4You\";this.form.return_module.value=\"{$this_module}\";this.form.activity_mode.value=\"Events\";' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString('LBL_EVENT', $related_module) . "'>";
             }
         }
     }
     $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
     $query = "SELECT vtiger_activity.*,\n\t\t\tvtiger_seactivityrel.*,vtiger_vendor.vendorname,\n\t\t\tvtiger_crmentity.crmid, vtiger_crmentity.smownerid,vtiger_vendor.vendorid as parent_id,\n\t\t\tvtiger_crmentity.modifiedtime,\n\t\t\tcase when (vtiger_users.user_name not like '') then {$userNameSql} else vtiger_groups.groupname end as user_name,\n\t\t\tvtiger_recurringevents.recurringtype\n\t\t\tFROM vtiger_activity\n\t\t\tINNER JOIN vtiger_seactivityrel ON vtiger_seactivityrel.activityid = vtiger_activity.activityid\n\t\t\tinner join vtiger_vendor on vtiger_vendor.vendorid=vtiger_seactivityrel.crmid\n\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_activity.activityid\n\t\t\tLEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid\n\t\t\tLEFT OUTER JOIN vtiger_recurringevents ON vtiger_recurringevents.activityid = vtiger_activity.activityid\n\t\t\tLEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\tWHERE vtiger_seactivityrel.crmid = " . $id . "\n\t\t\tAND vtiger_crmentity.deleted = 0\n\t\t\tAND ((vtiger_activity.activitytype='Task' and vtiger_activity.status not in ('Completed','Deferred'))\n\t\t\tOR (vtiger_activity.activitytype not in ('Emails','Task') and vtiger_activity.eventstatus not in ('','Held'))) ";
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_activities method ...");
     return $return_value;
 }
Beispiel #22
0
 /**
  * Invoked when special actions are performed on the module.
  * @param String Module name
  * @param String Event Type (module.postinstall, module.disabled, module.enabled, module.preuninstall)
  */
 function get_osstimecontrol($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_osstimecontrol(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $record = Vtiger_Record_Model::getInstanceById($id);
     $userId = $record->get('assigned_user_id');
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     if ($actions && getFieldVisibilityPermission($related_module, $current_user->id, 'parent_id', 'readwrite') == '0') {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EditView\";this.form.module.value=\"{$related_module}\"' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "'>&nbsp;";
         }
     }
     $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
     $query = "SELECT case when (vtiger_users.user_name not like '') then {$userNameSql} else vtiger_groups.groupname end as user_name, vtiger_users.id,\n\t\t\t\tvtiger_osstimecontrol.name, vtiger_osstimecontrol.osstimecontrolid as crmid, vtiger_osstimecontrol.osstimecontrol_status, vtiger_osstimecontrol.payment,\n\t\t\t\tvtiger_osstimecontrol.osstimecontrol_no, vtiger_osstimecontrol.date_start, vtiger_osstimecontrol.due_date, vtiger_osstimecontrol.time_end, vtiger_osstimecontrol.sum_time, vtiger_crmentity.smownerid, vtiger_crmentity.modifiedtime\n\t\t\t\tFROM vtiger_osstimecontrol\n\t\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_osstimecontrol.osstimecontrolid\n\t\t\t\tLEFT JOIN vtiger_users ON vtiger_users.id=vtiger_crmentity.smownerid\n\t\t\t\tLEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\t\tWHERE  vtiger_crmentity.deleted = 0 AND vtiger_crmentity.`smownerid`= " . $userId;
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_osstimecontrol method ...");
     return $return_value;
 }
Beispiel #23
0
 public function generateReportsQuery($module)
 {
     global $adb;
     $primary = CRMEntity::getInstance($module);
     vtlib_setup_modulevars($module, $primary);
     $moduletable = $primary->table_name;
     $moduleindex = $primary->table_index;
     $modulecftable = $primary->customFieldTable[0];
     $modulecfindex = $primary->customFieldTable[1];
     if (isset($modulecftable)) {
         $cfquery = "inner join {$modulecftable} as {$modulecftable} on {$modulecftable}.{$modulecfindex}={$moduletable}.{$moduleindex}";
     } else {
         $cfquery = '';
     }
     $query = "from {$moduletable} {$cfquery}\n                inner join vtiger_crmentity on vtiger_crmentity.crmid={$moduletable}.{$moduleindex}\n                left join vtiger_groups as vtiger_groups" . $module . " on vtiger_groups" . $module . ".groupid = vtiger_crmentity.smownerid\n                left join vtiger_users as vtiger_users" . $module . " on vtiger_users" . $module . ".id = vtiger_crmentity.smownerid\n                left join vtiger_users as vtiger_lastModifiedBy" . $module . " on vtiger_lastModifiedBy" . $module . ".id = vtiger_crmentity.modifiedby\n                left join vtiger_groups on vtiger_groups.groupid = vtiger_crmentity.smownerid\n                left join vtiger_users on vtiger_users.id = vtiger_crmentity.smownerid";
     $fields_query = $adb->pquery("SELECT vtiger_field.fieldname,vtiger_field.tablename,vtiger_field.fieldid from vtiger_field INNER JOIN vtiger_tab on vtiger_tab.name = ? WHERE vtiger_tab.tabid=vtiger_field.tabid AND vtiger_field.uitype IN (10) and vtiger_field.presence in (0,2)", array($module));
     if ($adb->num_rows($fields_query) > 0) {
         for ($i = 0; $i < $adb->num_rows($fields_query); $i++) {
             $field_name = $adb->query_result($fields_query, $i, 'fieldname');
             $field_id = $adb->query_result($fields_query, $i, 'fieldid');
             $tab_name = $adb->query_result($fields_query, $i, 'tablename');
             $ui10_modules_query = $adb->pquery("SELECT relmodule FROM vtiger_fieldmodulerel WHERE fieldid=?", array($field_id));
             if ($adb->num_rows($ui10_modules_query) > 0) {
                 $query .= " left join vtiger_crmentity as vtiger_crmentityRel{$module}{$field_id} on vtiger_crmentityRel{$module}{$field_id}.crmid = {$tab_name}.{$field_name} and vtiger_crmentityRel{$module}{$field_id}.deleted=0";
                 for ($j = 0; $j < $adb->num_rows($ui10_modules_query); $j++) {
                     $rel_mod = $adb->query_result($ui10_modules_query, $j, 'relmodule');
                     $rel_obj = CRMEntity::getInstance($rel_mod);
                     vtlib_setup_modulevars($rel_mod, $rel_obj);
                     $rel_tab_name = $rel_obj->table_name;
                     $rel_tab_index = $rel_obj->table_index;
                     $query .= " left join {$rel_tab_name} as " . $rel_tab_name . "Rel{$module}{$field_id} on " . $rel_tab_name . "Rel{$module}{$field_id}.{$rel_tab_index} = vtiger_crmentityRel{$module}{$field_id}.crmid";
                 }
             }
         }
     }
     return $query;
 }
Beispiel #24
0
 /**
  * Create query to export the records.
  */
 function create_export_query($where)
 {
     global $current_user;
     $thismodule = $_REQUEST['module'];
     include "include/utils/ExportUtils.php";
     //To get the Permitted fields query and the permitted fields list
     $sql = getPermittedFieldsQuery($thismodule, "detail_view");
     $fields_list = getFieldsListFromQuery($sql);
     $query = "SELECT {$fields_list}, vtiger_users.user_name AS user_name \n\t\t\t\t\tFROM vtiger_crmentity INNER JOIN {$this->table_name} ON vtiger_crmentity.crmid={$this->table_name}.{$this->table_index}";
     if (!empty($this->customFieldTable)) {
         $query .= " INNER JOIN " . $this->customFieldTable[0] . " ON " . $this->customFieldTable[0] . '.' . $this->customFieldTable[1] . " = {$this->table_name}.{$this->table_index}";
     }
     $query .= " LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
     $query .= " LEFT JOIN vtiger_users ON vtiger_crmentity.smownerid = vtiger_users.id and vtiger_users.status='Active'";
     $linkedModulesQuery = $this->db->pquery("SELECT distinct fieldname, columnname, relmodule FROM vtiger_field" . " INNER JOIN vtiger_fieldmodulerel ON vtiger_fieldmodulerel.fieldid = vtiger_field.fieldid" . " WHERE uitype='10' AND vtiger_fieldmodulerel.module=?", array($thismodule));
     $linkedFieldsCount = $this->db->num_rows($linkedModulesQuery);
     for ($i = 0; $i < $linkedFieldsCount; $i++) {
         $related_module = $this->db->query_result($linkedModulesQuery, $i, 'relmodule');
         $fieldname = $this->db->query_result($linkedModulesQuery, $i, 'fieldname');
         $columnname = $this->db->query_result($linkedModulesQuery, $i, 'columnname');
         $other = CRMEntity::getInstance($related_module);
         vtlib_setup_modulevars($related_module, $other);
         $query .= " LEFT JOIN {$other->table_name} ON {$other->table_name}.{$other->table_index} = {$this->table_name}.{$columnname}";
     }
     $where_auto = " vtiger_crmentity.deleted=0";
     if ($where != '') {
         $query .= " WHERE ({$where}) AND {$where_auto}";
     } else {
         $query .= " WHERE {$where_auto}";
     }
     require 'user_privileges/user_privileges_' . $current_user->id . '.php';
     require 'user_privileges/sharing_privileges_' . $current_user->id . '.php';
     // Security Check for Field Access
     if ($is_admin == false && $profileGlobalPermission[1] == 1 && $profileGlobalPermission[2] == 1 && $defaultOrgSharingPermission[7] == 3) {
         //Added security check to get the permitted records only
         $query = $query . " " . getListViewSecurityParameter($thismodule);
     }
     return $query;
 }
/**
 * Function to get customfield table and index field from a given module
 * @param $module :: Module name -- Type string
 * returns the corresponding custom field table name and index
 */
function getCustomFieldTableInfo($module)
{
    global $log;
    $log->debug("Entering getCustomFieldTableInfo({$module}) method ...");
    $primary = CRMEntity::getInstance($module);
    vtlib_setup_modulevars($module, $primary);
    if (isset($primary->customFieldTable)) {
        $cfinfo = $primary->customFieldTable;
    } else {
        $cfinfo = '';
    }
    $log->debug("Exiting getCustomFieldTableInfo method ...");
    return $cfinfo;
}
Beispiel #26
0
 /**	function used to get the list of activities which are related to the Quotes
  *	@param int $id - quote id
  *	@return array - return an array which will be returned from the function GetRelatedList
  */
 function get_activities($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_activities(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/Activity.php";
     $other = new Activity();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $parenttab = getParentTab();
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     $button .= '<input type="hidden" name="activity_mode">';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_NEW') . " " . getTranslatedString('LBL_TODO', $related_module) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EditView\";this.form.module.value=\"{$related_module}\";this.form.return_module.value=\"{$this_module}\";this.form.activity_mode.value=\"Task\";' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString('LBL_TODO', $related_module) . "'>&nbsp;";
         }
     }
     $query = "SELECT case when (vtiger_users.user_name not like '') then vtiger_users.user_name else vtiger_groups.groupname end as user_name, vtiger_contactdetails.contactid, vtiger_contactdetails.lastname, vtiger_contactdetails.firstname, vtiger_activity.*,vtiger_seactivityrel.*,vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.modifiedtime,vtiger_recurringevents.recurringtype from vtiger_activity inner join vtiger_seactivityrel on vtiger_seactivityrel.activityid=vtiger_activity.activityid inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_activity.activityid left join vtiger_cntactivityrel on vtiger_cntactivityrel.activityid= vtiger_activity.activityid left join vtiger_contactdetails on vtiger_contactdetails.contactid = vtiger_cntactivityrel.contactid left join vtiger_users on vtiger_users.id=vtiger_crmentity.smownerid left outer join vtiger_recurringevents on vtiger_recurringevents.activityid=vtiger_activity.activityid left join vtiger_groups on vtiger_groups.groupid=vtiger_crmentity.smownerid where vtiger_seactivityrel.crmid=" . $id . " and vtiger_crmentity.deleted=0 and activitytype='Task' and (vtiger_activity.status is not NULL and vtiger_activity.status != 'Completed') and (vtiger_activity.status is not NULL and vtiger_activity.status != 'Deferred')";
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_activities method ...");
     return $return_value;
 }
Beispiel #27
0
 /**
  * Function to get Potential related SalesOrder
  * @param  integer   $id  - potentialid
  * returns related SalesOrder record in array format
  */
 function get_salesorder($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_salesorder(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $parenttab = getParentTab();
     if ($singlepane_view == 'true') {
         $returnset = '&return_module=' . $this_module . '&return_action=DetailView&return_id=' . $id;
     } else {
         $returnset = '&return_module=' . $this_module . '&return_action=CallRelatedList&return_id=' . $id;
     }
     $button = '';
     if ($actions && getFieldVisibilityPermission($related_module, $current_user->id, 'potential_id', 'readwrite') == '0') {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}&parenttab={$parenttab}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
         if (in_array('ADD', $actions) && isPermitted($related_module, 1, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "' class='crmbutton small create'" . " onclick='this.form.action.value=\"EditView\";this.form.module.value=\"{$related_module}\"' type='submit' name='button'" . " value='" . getTranslatedString('LBL_ADD_NEW') . " " . getTranslatedString($singular_modname) . "'>&nbsp;";
         }
     }
     $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
     $query = "select vtiger_crmentity.*, vtiger_salesorder.*, vtiger_quotes.subject as quotename\n\t\t\t, vtiger_account.accountname, vtiger_potential.potentialname,case when\n\t\t\t(vtiger_users.user_name not like '') then {$userNameSql} else vtiger_groups.groupname\n\t\t\tend as user_name from vtiger_salesorder\n\t\t\tinner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_salesorder.salesorderid\n\t\t\tleft outer join vtiger_quotes on vtiger_quotes.quoteid=vtiger_salesorder.quoteid\n\t\t\tleft outer join vtiger_account on vtiger_account.accountid=vtiger_salesorder.accountid\n\t\t\tleft outer join vtiger_potential on vtiger_potential.potentialid=vtiger_salesorder.potentialid\n\t\t\tleft join vtiger_groups on vtiger_groups.groupid=vtiger_crmentity.smownerid\n\t\t\tleft join vtiger_users on vtiger_users.id=vtiger_crmentity.smownerid\n\t\t\t where vtiger_crmentity.deleted=0 and vtiger_potential.potentialid = " . $id;
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_salesorder method ...");
     return $return_value;
 }
Beispiel #28
0
 /**
  * Function to get Activity related Contacts
  * @param  integer   $id      - activityid
  * returns related Contacts record in array format
  */
 function get_contacts($id, $cur_tab_id, $rel_tab_id, $actions = false)
 {
     global $log, $singlepane_view, $currentModule, $current_user;
     $log->debug("Entering get_contacts(" . $id . ") method ...");
     $this_module = $currentModule;
     $related_module = vtlib_getModuleNameById($rel_tab_id);
     require_once "modules/{$related_module}/{$related_module}.php";
     $other = new $related_module();
     vtlib_setup_modulevars($related_module, $other);
     $singular_modname = vtlib_toSingular($related_module);
     $parenttab = getParentTab();
     $returnset = '&return_module=' . $this_module . '&return_action=DetailView&activity_mode=Events&return_id=' . $id;
     $search_string = '';
     $button = '';
     if ($actions) {
         if (is_string($actions)) {
             $actions = explode(',', strtoupper($actions));
         }
         if (in_array('SELECT', $actions) && isPermitted($related_module, 4, '') == 'yes') {
             $button .= "<input title='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module={$related_module}&return_module={$currentModule}&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid={$id}&parenttab={$parenttab}{$search_string}','test','width=640,height=602,resizable=0,scrollbars=0');\" value='" . getTranslatedString('LBL_SELECT') . " " . getTranslatedString($related_module) . "'>&nbsp;";
         }
     }
     $query = 'select vtiger_users.user_name,vtiger_contactdetails.accountid,vtiger_contactdetails.contactid, vtiger_contactdetails.firstname,vtiger_contactdetails.lastname, vtiger_contactdetails.department, vtiger_contactdetails.title, vtiger_contactdetails.email, vtiger_contactdetails.phone, vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.modifiedtime from vtiger_contactdetails inner join vtiger_cntactivityrel on vtiger_cntactivityrel.contactid=vtiger_contactdetails.contactid inner join vtiger_crmentity on vtiger_crmentity.crmid = vtiger_contactdetails.contactid left join vtiger_users on vtiger_users.id = vtiger_crmentity.smownerid left join vtiger_groups on vtiger_groups.groupid = vtiger_crmentity.smownerid where vtiger_cntactivityrel.activityid=' . $id . ' and vtiger_crmentity.deleted=0';
     $return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
     if ($return_value == null) {
         $return_value = array();
     }
     $return_value['CUSTOM_BUTTON'] = $button;
     $log->debug("Exiting get_contacts method ...");
     return $return_value;
 }
Beispiel #29
0
 /**
  * Get list view query.
  */
 function getListQuery($module, $where = '')
 {
     $query = "SELECT vtiger_crmentity.*, {$this->table_name}.*";
     // Select Custom Field Table Columns if present
     if (!empty($this->customFieldTable)) {
         $query .= ", " . $this->customFieldTable[0] . ".* ";
     }
     $query .= " FROM {$this->table_name}";
     $query .= "\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = {$this->table_name}.{$this->table_index}";
     // Consider custom table join as well.
     if (!empty($this->customFieldTable)) {
         $query .= " INNER JOIN " . $this->customFieldTable[0] . " ON " . $this->customFieldTable[0] . '.' . $this->customFieldTable[1] . " = {$this->table_name}.{$this->table_index}";
     }
     $query .= " LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid";
     $query .= " LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid";
     $linkedModulesQuery = $this->db->pquery("SELECT distinct fieldname, columnname, relmodule FROM vtiger_field" . " INNER JOIN vtiger_fieldmodulerel ON vtiger_fieldmodulerel.fieldid = vtiger_field.fieldid" . " WHERE uitype='10' AND vtiger_fieldmodulerel.module=?", array($module));
     $linkedFieldsCount = $this->db->num_rows($linkedModulesQuery);
     for ($i = 0; $i < $linkedFieldsCount; $i++) {
         $related_module = $this->db->query_result($linkedModulesQuery, $i, 'relmodule');
         $fieldname = $this->db->query_result($linkedModulesQuery, $i, 'fieldname');
         $columnname = $this->db->query_result($linkedModulesQuery, $i, 'columnname');
         $other = CRMEntity::getInstance($related_module);
         vtlib_setup_modulevars($related_module, $other);
         $query .= " LEFT JOIN {$other->table_name} ON {$other->table_name}.{$other->table_index} = {$this->table_name}.{$columnname}";
     }
     $query .= "\tWHERE vtiger_crmentity.deleted = 0 " . $where;
     $query .= $this->getListViewSecurityParameter($module);
     return $query;
 }