172 lines
5.7 KiB
PHP
172 lines
5.7 KiB
PHP
|
<?php
|
||
|
/*********************************************************************************
|
||
|
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||
|
* ("License"); You may not use this file except in compliance with the License
|
||
|
* The Original Code is: vtiger CRM Open Source
|
||
|
* The Initial Developer of the Original Code is vtiger.
|
||
|
* Portions created by vtiger are Copyright (C) vtiger.
|
||
|
* All Rights Reserved.
|
||
|
*
|
||
|
*****************************************************>***************************/
|
||
|
|
||
|
require_once('Smarty_setup.php');
|
||
|
require_once("data/Tracker.php");
|
||
|
require_once('include/logging.php');
|
||
|
require_once('include/utils/utils.php');
|
||
|
require_once('modules/Reports/Reports.php');
|
||
|
|
||
|
global $app_strings;
|
||
|
global $app_list_strings;
|
||
|
global $mod_strings;
|
||
|
$current_module_strings = return_module_language($current_language, 'Reports');
|
||
|
global $list_max_entries_per_page;
|
||
|
global $urlPrefix;
|
||
|
|
||
|
$log = LoggerManager::getLogger('report_type');
|
||
|
global $currentModule;
|
||
|
global $image_path;
|
||
|
global $theme;
|
||
|
global $current_user;
|
||
|
|
||
|
$report_std_filter = new vtigerCRM_Smarty;
|
||
|
$report_std_filter->assign("MOD", $mod_strings);
|
||
|
$report_std_filter->assign("APP", $app_strings);
|
||
|
$report_std_filter->assign("IMAGE_PATH",$image_path);
|
||
|
$report_std_filter->assign("DATEFORMAT",$current_user->date_format);
|
||
|
$report_std_filter->assign("JS_DATEFORMAT",parse_calendardate($app_strings['NTC_DATE_FORMAT']));
|
||
|
|
||
|
$roleid = $current_user->column_fields['roleid'];
|
||
|
$user_array = getAllUserName();
|
||
|
$userIdStr = "";
|
||
|
$userNameStr = "";
|
||
|
$m=0;
|
||
|
foreach($user_array as $userid=>$username){
|
||
|
|
||
|
if($userid!=$current_user->id){
|
||
|
if($m!=0){
|
||
|
$userIdStr .= ",";
|
||
|
$userNameStr .= ",";
|
||
|
}
|
||
|
$userIdStr .="'".$userid."'";
|
||
|
$userNameStr .="'".escape_single_quotes(decode_html($username))."'";
|
||
|
$m++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$user_groups = getAllGroupName();
|
||
|
$groupIdStr = "";
|
||
|
$groupNameStr = "";
|
||
|
$l=0;
|
||
|
foreach($user_groups as $grpid=>$groupname){
|
||
|
if($l!=0){
|
||
|
$groupIdStr .= ",";
|
||
|
$groupNameStr .= ",";
|
||
|
}
|
||
|
$groupIdStr .= "'".$grpid."'";
|
||
|
$groupNameStr .= "'".escape_single_quotes(decode_html($groupname))."'";
|
||
|
$l++;
|
||
|
}
|
||
|
if(isset($_REQUEST["record"]) && $_REQUEST['record']!='')
|
||
|
{
|
||
|
$reportid = vtlib_purify($_REQUEST["record"]);
|
||
|
$visiblecriteria=getVisibleCriteria($recordid);
|
||
|
$report_std_filter->assign("VISIBLECRITERIA", $visiblecriteria);
|
||
|
$member = getShareInfo($recordid);
|
||
|
$report_std_filter->assign("MEMBER", $member);
|
||
|
} else {
|
||
|
$visiblecriteria=getVisibleCriteria();
|
||
|
$report_std_filter->assign("VISIBLECRITERIA", $visiblecriteria);
|
||
|
}
|
||
|
$report_std_filter->assign("GROUPNAMESTR", $groupNameStr);
|
||
|
$report_std_filter->assign("USERNAMESTR", $userNameStr);
|
||
|
$report_std_filter->assign("GROUPIDSTR", $groupIdStr);
|
||
|
$report_std_filter->assign("USERIDSTR", $userIdStr);
|
||
|
|
||
|
|
||
|
//include("modules/Reports/StandardFilter.php");
|
||
|
//include("modules/Reports/AdvancedFilter.php");
|
||
|
|
||
|
$report_std_filter->display('ReportSharing.tpl');
|
||
|
|
||
|
/** Function to get visible criteria for a report
|
||
|
* This function accepts The reportid as an argument
|
||
|
* It returns a array of selected option of sharing along with other options
|
||
|
*/
|
||
|
function getVisibleCriteria($recordid='')
|
||
|
{
|
||
|
global $mod_strings;
|
||
|
global $app_strings;
|
||
|
global $adb,$current_user;
|
||
|
//print_r("i am here");die;
|
||
|
$filter = array();
|
||
|
$selcriteria = "";
|
||
|
if($recordid!='')
|
||
|
{
|
||
|
$result = $adb->pquery("select sharingtype from vtiger_report where reportid=?",array($recordid));
|
||
|
$selcriteria=$adb->query_result($result,0,"sharingtype");
|
||
|
}
|
||
|
if($selcriteria == ""){
|
||
|
$selcriteria = 'Public';
|
||
|
}
|
||
|
$filter_result = $adb->query("select * from vtiger_reportfilters");
|
||
|
$numrows = $adb->num_rows($filter_result);
|
||
|
for($j=0;$j<$numrows;$j++)
|
||
|
{
|
||
|
$filter_id = $adb->query_result($filter_result,$j,"filterid");
|
||
|
$filtername = $adb->query_result($filter_result,$j,"name");
|
||
|
$name=str_replace(' ','_',$filtername);
|
||
|
if($filtername == 'Private') {
|
||
|
$FilterKey='Private';
|
||
|
$FilterValue=getTranslatedString('PRIVATE_FILTER');
|
||
|
}elseif($filtername=='Shared')
|
||
|
{
|
||
|
$FilterKey='Shared';
|
||
|
$FilterValue=getTranslatedString('SHARE_FILTER');
|
||
|
}else{
|
||
|
$FilterKey='Public';
|
||
|
$FilterValue=getTranslatedString('PUBLIC_FILTER');
|
||
|
}
|
||
|
if($FilterKey == $selcriteria)
|
||
|
{
|
||
|
$shtml['value'] = $FilterKey;
|
||
|
$shtml['text'] = $FilterValue;
|
||
|
$shtml['selected'] = "selected";
|
||
|
}else
|
||
|
{
|
||
|
$shtml['value'] = $FilterKey;
|
||
|
$shtml['text'] = $FilterValue;
|
||
|
$shtml['selected'] = "";
|
||
|
}
|
||
|
$filter[] = $shtml;
|
||
|
}
|
||
|
return $filter;
|
||
|
}
|
||
|
|
||
|
function getShareInfo($recordid=''){
|
||
|
global $adb;
|
||
|
$member_query = $adb->pquery("SELECT vtiger_reportsharing.setype,vtiger_users.id,vtiger_users.user_name FROM vtiger_reportsharing INNER JOIN vtiger_users on vtiger_users.id = vtiger_reportsharing.shareid WHERE vtiger_reportsharing.setype='users' AND vtiger_reportsharing.reportid = ?",array($recordid));
|
||
|
$noofrows = $adb->num_rows($member_query);
|
||
|
if($noofrows > 0){
|
||
|
for($i=0;$i<$noofrows;$i++){
|
||
|
$userid = $adb->query_result($member_query,$i,'id');
|
||
|
$username = $adb->query_result($member_query,$i,'user_name');
|
||
|
$setype = $adb->query_result($member_query,$i,'setype');
|
||
|
$member_data[] = Array('id'=>$setype."::".$userid,'name'=>$setype."::".$username);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$member_query = $adb->pquery("SELECT vtiger_reportsharing.setype,vtiger_groups.groupid,vtiger_groups.groupname FROM vtiger_reportsharing INNER JOIN vtiger_groups on vtiger_groups.groupid = vtiger_reportsharing.shareid WHERE vtiger_reportsharing.setype='groups' AND vtiger_reportsharing.reportid = ?",array($recordid));
|
||
|
$noofrows = $adb->num_rows($member_query);
|
||
|
if($noofrows > 0){
|
||
|
for($i=0;$i<$noofrows;$i++){
|
||
|
$grpid = $adb->query_result($member_query,$i,'groupid');
|
||
|
$grpname = $adb->query_result($member_query,$i,'groupname');
|
||
|
$setype = $adb->query_result($member_query,$i,'setype');
|
||
|
$member_data[] = Array('id'=>$setype."::".$grpid,'name'=>$setype."::".$grpname);
|
||
|
}
|
||
|
}
|
||
|
return $member_data;
|
||
|
}
|
||
|
|
||
|
?>
|