File manager - Edit - /home/autoph/public_html/projects/Rating-AutoHub/app/Models/Answer.php
Back
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\DB; class Answer extends Model { use HasFactory; public function getTitles($data){ // dd($data); $q = "SELECT %s FROM questionnaires `qstnn` INNER JOIN `systems` `s` on `s`.`id` = `qstnn`.`s_id` INNER JOIN `templates` `t` on `t`.`id` = `qstnn`.`t_id` WHERE 1 %s "; $fields = " `t`.`title`, `s`.`system_name` "; $query = sprintf( $q, $fields, $data ); // dd($query); return DB::select($query); } public function getQuestionnairesReportQuery(){ return "SELECT %s FROM answers INNER JOIN ( SELECT syst_id FROM answers WHERE 1 GROUP BY syst_id ) as subquery ON answers.syst_id = subquery.syst_id INNER JOIN `systems` ON answers.syst_id = systems.id INNER JOIN `templates` ON answers.tmpt_id = templates.id INNER JOIN `users` ON answers.user_id = users.id %s GROUP BY answers.user_id, answers.qstnn_id, answers.tmpt_id, answers.qst_id, answers.syst_id, answers.rating, `answers`.`created_at` "; } public function reports($array_data){ $fields = " answers.user_id, CONCAT(users.f_name,' ',users.l_name) as user_name, answers.tmpt_id, templates.title as template_title, systems.system_name as system_name, answers.qst_id, answers.qstnn_id, answers.syst_id, answers.rating, `answers`.`created_at` "; $query = sprintf( $this->getQuestionnairesReportQuery(), $fields, $array_data['where'] ); // dd($query); return DB::select($query); } public function countsQuery(){ return "SELECT %s FROM answers `ans` INNER JOIN `systems` `s` on `s`.`id` = `ans`.`syst_id` INNER JOIN `templates` `t` on `t`.`id` = `ans`.`tmpt_id` INNER JOIN `users` `u` on `u`.`id` = `ans`.`user_id` WHERE 1 %s -- GROUP BY qstnn_id, syst_id, tmpt_id, user_name "; } public function reports2($array_data){ // dd($array_data); // $fields = " qstnn_id, syst_id, tmpt_id, CONCAT(users.f_name,' ',users.l_name) as user_name, systems.system_name, templates.title, AVG(SUBSTRING(answers.rating, 2, LENGTH(answers.rating)-2)) as average"; $fields = " `t`.`title`, `s`.`system_name`,CONCAT(`u`.`f_name`,' ',`u`.`l_name`) as `user_name`, `ans`.`rating` as `average`, `ans`.`created_at` "; $query = sprintf( $this->countsQuery(), $fields, $array_data['where'] ); // dd($query); return DB::select($query); } public function commentsQuery(){ return "SELECT %s FROM answers `ans` INNER JOIN `systems` `s` on `s`.`id` = `ans`.`syst_id` INNER JOIN `templates` `t` on `t`.`id` = `ans`.`tmpt_id` INNER JOIN `users` `u` on `u`.`id` = `ans`.`user_id` WHERE 1 %s "; } public function reports3($array_data){ // dd("dito"); $fields = " `t`.`title`, `s`.`system_name`, CONCAT(`u`.`f_name`,' ',`u`.`l_name`) as `user_name`, `ans`.`comment`, `ans`.`created_at` "; $query = sprintf( $this->commentsQuery(), $fields, $array_data['where'] ); return DB::select($query); } public function pdf($results,$type,$comp){ $data = []; $grpData = new \stdClass(); $grpData->list = $results; $grpData->total = sizeOf($results); array_push($data,$grpData); // dd($results[0]['template_title']); $report_title = "Rating Summary"; // ,'Template','System' // ,'template_title','system_name' $reportData = [ 'data' => $data, 'webpage_title' => "Reviews Report", 'company' => $comp->comp_name ?? "", 'template_name' => $results[0]['template_title'] ?? "", 'system_name' => $results[0]['system_name'] ?? "", 'report_title' => $report_title, 'table_headers' => ['No.','User','Response'], 'table_body' => ['user_name'] ]; // dd($data); return $reportData; } public function avgPerQstpdf($results,$result,$comp){ $data = []; // dd($results); $grpData = new \stdClass(); $grpData->list = $results; $grpData->total = sizeOf($results); array_push($data,$grpData); // dd($results[0]['template_title']); $report_title = "Average per Question Summary"; $table_body = []; foreach ($results as $average) { $table_body[] = [ $average['id'], // Question Id $average['question'], // Question $average['count'], // Count number_format($average['average'], 2), // Average ]; } $reportData = [ 'data' => $data, 'webpage_title' => "Reviews Report", 'company' => $comp->comp_name ?? "", 'template_name' => $result[0]['template_title'] ?? "", 'system_name' => $result[0]['system_name'] ?? "", 'report_title' => $report_title, 'table_headers' => ['No.','Question Id', 'Question', 'Count', 'Average'], // 'table_body' => ['id','question','count','average'] 'table_body' => $table_body ]; // dd($reportData); return $reportData; } public function pdf2($results,$titles){ // dd($titles); $data = []; $grpData = new \stdClass(); $grpData->list = $results; $grpData->total = sizeOf($results); array_push($data,$grpData); $report_title = ($results[0]['system_name'] ?? ' ') . " Respondents Count"; $reportData = [ 'data' => $data, 'webpage_title' => "Reviews Report", 'report_title' => $report_title, 'system_name' => $titles[0]->system_name, 'template_name' => $titles[0]->title, 'table_headers' => ['No.','Name','Average'], 'table_body' => ['user_name','rating'] ]; return $reportData; } public function pdf3($results,$titles){ $data = []; $grpData = new \stdClass(); $grpData->list = $results; $grpData->total = sizeOf($results); array_push($data,$grpData); $report_title = ($results[0]['system_name'] ?? ' ') . " Comment Summary Report"; $reportData = [ 'data' => $data, 'webpage_title' => "Comments Summary Report", 'report_title' => $report_title, 'system_name' => $titles[0]->system_name, 'template_name' => $titles[0]->title, 'table_headers' => ['No.','Name','Comment'], 'table_body' => ['user_name','comment'] ]; return $reportData; } // public function csv($result){ // // dd($result); // $inc = 0; // $response = []; // $response[] = [ // 'No.','User','Template Name','System Name', 'Question', 'Rating' // ]; // foreach($result as $key => $row){ // for($i=0; $i < count($row['ratings']); $i++){ // // print_r($row['ratings'][$i]['questions']); // // exit; // $response[] = [ // $inc+=1, // $row['user_name'], // $row['template_title'], // $row['system_name'], // $row['ratings'][$i]['questions'], // $row['ratings'][$i]['rating'] // ]; // } // // foreach($row['ratings'] as $r => $question){ // } // // dd($response); // $file_name = ($result[0]->system_name ?? ' ') . " Respondents_Count-".date('Y-m-d').'.csv'; // // dd($file_name); // header('Content-Type: text/csv'); // header('Content-Disposition: attachment; filename="'.$file_name.'"'); // $f = fopen('php://output', 'wb'); // if($f === false){ // die('Error opening the file '.$file_name); // } // if(empty($response[1])){ // $arr = [ // "No data to show" // ]; // fputcsv($f,$arr); // } else { // foreach($response as $row){ // fputcsv($f, $row, ','); // } // } // fclose($f); // } public function csv($result){ $inc = 0; $response = []; $response[] = [ 'No.','User','Template Name','System Name', 'Question', 'Rating' ]; $totalRatings = 0; $totalCount = 0; foreach($result as $key => $row){ for($i=0; $i < count($row['ratings']); $i++){ $rating = $row['ratings'][$i]['rating']; $totalRatings += $rating; $totalCount++; $response[] = [ $inc+=1, $row['user_name'], $row['template_title'], $row['system_name'], $row['ratings'][$i]['questions'], $rating ]; } } // Calculate average rating $averageRating = ($totalCount > 0) ? ($totalRatings / $totalCount) : 0; // Add row for average rating $response[] = [ '', '', '', '', 'Average Rating', round($averageRating,0) ]; $file_name = ($result[0]->system_name ?? ' ') . " Respondents_Count-".date('Y-m-d').'.csv'; header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); $f = fopen('php://output', 'wb'); if($f === false){ die('Error opening the file '.$file_name); } if(empty($response[1])){ $arr = [ "No data to show" ]; fputcsv($f,$arr); } else { foreach($response as $row){ fputcsv($f, $row, ','); } } fclose($f); } public function csv2($results){ // dd($results); $response = []; $response[] = [ 'No.','User','Average' ]; foreach($results as $key => $result){ $ave = json_decode($result->average); $average = array_reduce($ave, function($carry, $number) { return $carry + $number; }, 0) / count($ave); $round = round($average,0); $response[] = [ $key+=1, $result->user_name, $round ]; } $file_name = ($results[0]->system_name ?? ' ') . " Respondents_Count-".date('Y-m-d').'.csv'; header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); $f = fopen('php://output', 'wb'); if($f === false){ die('Error opening the file '.$file_name); } if(empty($response[1])){ $arr = [ "No data to show" ]; fputcsv($f,$arr); } else { foreach($response as $row){ fputcsv($f, $row, ','); } } fclose($f); } public function csv3($results, $titles){ $response = []; $response[] = [ 'No.','User','Comment' ]; foreach($results as $key => $row){ $response[] = [ $key+=1, $row->user_name, $row->comment ]; } $file_name = "Comment_Summary-".date('Y-m-d').'.csv'; header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); $f = fopen('php://output', 'wb'); if($f === false){ die('Error opening the file '.$file_name); } if(empty($response[1])){ $arr = [ "No data to show" ]; fputcsv($f,$arr); } else { foreach($response as $row){ fputcsv($f, $row, ','); } } fclose($f); } public function avgPerQstcsv($array_data,$result,$comp){ // dd($array_data); $response = []; $response[] = ['No.','Question Id', 'Question', 'Count', 'Average']; $inc = 0; foreach($array_data as $key => $row){ $inc++; $response[] = [ $inc, $row['id'], $row['question'], $row['count'], number_format($row['average'],2), ]; } $file_name = "Average_Per_Question_Summary-".date('Y-m-d').'.csv'; header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); $f = fopen('php://output', 'wb'); if($f === false){ die('Error opening the file '.$file_name); } fputcsv($f,["Template Name:","System Name:","Company:"],','); fputcsv($f,[$result[0]['template_title'],$result[0]['system_name'],$comp->comp_name ?? "None"],','); if(empty($response[1])){ $arr = [ "No data to show" ]; fputcsv($f,$arr); } else { foreach($response as $row){ fputcsv($f, $row, ','); } } fclose($f); } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings