Server IP : 213.176.29.180 / Your IP : 3.137.168.126 Web Server : Apache System : Linux 213.176.29.180.hostiran.name 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64 User : webtaragh ( 1001) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/webtaragh/public_html/.tmb/../whmcs/modules/reports/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php use WHMCS\Carbon; use WHMCS\Database\Capsule; if (!defined("WHMCS")) { die("This file cannot be accessed directly"); } $reportdata["title"] = "Ticket Feedback Scores"; $reportdata["description"] = "This report provides a summary of scores received on a per staff member basis for a given date range"; $range = App::getFromRequest('range'); if (!$range) { $today = Carbon::today()->endOfDay(); $lastWeek = Carbon::today()->subDays(6)->startOfDay(); $range = $lastWeek->toAdminDateFormat() . ' - ' . $today->toAdminDateFormat(); } $module = App::getFromRequest('module'); $moduleString = ''; if ($module) { $moduleString = 'module=' . $module . '&'; } $reportdata['headertext'] = ''; if (!$print) { $reportdata['headertext'] = <<<HTML <form method="post" action="?{$moduleString}report={$report}¤cyid={$currencyid}&calculate=true"> <div class="report-filters-wrapper"> <div class="inner-container"> <h3>Filters</h3> <div class="row"> <div class="col-md-3 col-sm-6"> <div class="form-group"> <label for="inputFilterDate">{$dateRangeText}</label> <div class="form-group date-picker-prepend-icon"> <label for="inputFilterDate" class="field-icon"> <i class="fal fa-calendar-alt"></i> </label> <input id="inputFilterDate" type="text" name="range" value="{$range}" class="form-control date-picker-search" /> </div> </div> </div> </div> <button type="submit" class="btn btn-primary"> {$aInt->lang('reports', 'generateReport')} </button> </div> </div> </form> HTML; } $reportdata["tableheadings"][] = "Staff Name"; for ( $rating = 1; $rating <= 10; $rating++ ) $reportdata["tableheadings"][] = $rating; $reportdata["tableheadings"][] = "Total Ratings"; $reportdata["tableheadings"][] = "Average Rating"; $dateRange = Carbon::parseDateRangeValue($range); $fromdate = $dateRange['from']->toDateTimeString(); $todate = $dateRange['to']->endOfDay()->toDateTimeString(); $adminnames = $ratingstats = array(); $query = Capsule::table('tblticketfeedback') ->select( [ Capsule::raw('CONCAT_WS(\' \', `firstname`, `lastname`) as adminname'), 'adminid', 'rating', Capsule::raw('count(rating) as counts'), ] ) ->where('adminid', '>', 0) ->where('datetime', '>=', $fromdate) ->where('datetime', '<=', $todate) ->join( 'tbladmins', 'tbladmins.id', '=', 'tblticketfeedback.adminid' ) ->groupBy( [ 'rating', 'adminid', ] ); foreach ($query->get() as $data) { $adminname = $data->adminname; $adminid = $data->adminid; $rating = $data->rating; $count = $data->counts; $adminnames[$adminid] = $adminname; $ratingstats[$adminid][$rating] = $count; } foreach ($adminnames AS $adminid=>$adminname) { $rowtotal = $rowcount = 0; $row = array(); $row[] = '<a href="'.$_SERVER['PHP_SELF'].'?'.((isset($_REQUEST['module']))?'module='.$_REQUEST['module'].'&':'').'report=ticket_feedback_comments&'.((isset($_REQUEST['module']))?'module='.$_REQUEST['module'].'&':'').'staffid='.$adminid.'">'.$adminname.'</a>'; for ( $rating = 1; $rating <= 10; $rating++ ) { $count = $ratingstats[$adminid][$rating]; $row[] = $count; $rowcount += $count; $rowtotal += $count*$rating; } $average = round($rowtotal/$rowcount,2); $row[] = $rowcount; $row[] = $average; $reportdata["tablevalues"][] = $row; $chartdata['rows'][] = array('c'=>array(array('v'=>$adminname),array('v'=>$average,'f'=>$average))); } $chartdata['cols'][] = array('label'=>'Staff Name','type'=>'string'); $chartdata['cols'][] = array('label'=>'Average Rating','type'=>'number'); $args = array(); $args['colors'] = '#F9D88C,#3070CF'; $args['minyvalue'] = '0'; $args['maxyvalue'] = '10'; $args['gridlinescount'] = '11'; $args['minorgridlinescount'] = '3'; $args['ylabel'] = 'Average Rating'; $args['xlabel'] = 'Staff Name'; $args['legendpos'] = 'none'; $reportdata["headertext"] .= $chart->drawChart('Column',$chartdata,$args,'500px');